{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":111583593,"defaultBranch":"master","name":"scrcpy","ownerLogin":"Genymobile","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-11-21T18:00:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3427627?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726698712.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"2fbb2a77d122c365c6a2c4e1b780b2fdb3ee70a5","ref":"refs/heads/ga","pushedAt":"2024-09-18T22:31:52.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add GitHub Actions release workflow","shortMessageHtmlLink":"Add GitHub Actions release workflow"}},{"before":"2fbb2a77d122c365c6a2c4e1b780b2fdb3ee70a5","after":null,"ref":"refs/heads/ga","pushedAt":"2024-09-18T22:13:25.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"}},{"before":null,"after":"2fbb2a77d122c365c6a2c4e1b780b2fdb3ee70a5","ref":"refs/heads/ga","pushedAt":"2024-09-18T21:59:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add GitHub Actions release workflow","shortMessageHtmlLink":"Add GitHub Actions release workflow"}},{"before":"21e2e2606e683326d9171afb106a5473f16d8bb9","after":"665ccb32f5306ebd866dc0d99f4d08ed2aeb91c3","ref":"refs/heads/master","pushedAt":"2024-09-15T19:30:52.000Z","pushType":"push","commitsCount":68,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Update links to 2.7","shortMessageHtmlLink":"Update links to 2.7"}},{"before":"4cc4abdcc8b3f0d76a362f450db4cefe96edca5d","after":"665ccb32f5306ebd866dc0d99f4d08ed2aeb91c3","ref":"refs/heads/dev","pushedAt":"2024-09-15T19:30:52.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Update links to 2.7","shortMessageHtmlLink":"Update links to 2.7"}},{"before":"e03888d5877e04cb1f4575099eda54d9c009ca3a","after":"4cc4abdcc8b3f0d76a362f450db4cefe96edca5d","ref":"refs/heads/dev","pushedAt":"2024-09-15T19:17:53.000Z","pushType":"push","commitsCount":45,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Mention issue with AOA and multiple gamepads\n\nAndroid does not support multiple HID gamepads properly over AOA.\n\nPR #5270 ","shortMessageHtmlLink":"Mention issue with AOA and multiple gamepads"}},{"before":"7920f2b1538dc2c4d00b50f110bcb2dcb86727d1","after":"4cc4abdcc8b3f0d76a362f450db4cefe96edca5d","ref":"refs/heads/gamepad","pushedAt":"2024-09-15T19:17:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Mention issue with AOA and multiple gamepads\n\nAndroid does not support multiple HID gamepads properly over AOA.\n\nPR #5270 ","shortMessageHtmlLink":"Mention issue with AOA and multiple gamepads"}},{"before":"8453e3ba7d1b4f8ec55825edef2d4357d35ce8c5","after":"e03888d5877e04cb1f4575099eda54d9c009ca3a","ref":"refs/heads/dev","pushedAt":"2024-09-14T19:24:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Reject arguments containing new line characters\n\nRefs bec3321fff4c6dc3b3dbc61fdc6fd98913988a78","shortMessageHtmlLink":"Reject arguments containing new line characters"}},{"before":"145a9468fdf64196dc42f24b5935ce7d40ea2543","after":"8453e3ba7d1b4f8ec55825edef2d4357d35ce8c5","ref":"refs/heads/dev","pushedAt":"2024-09-14T17:48:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Enable TCP_NODELAY for the control socket\n\nIt is better to disable Nagle's algorithm to avoid unnecessary latency\nfor control messages. (I'm not sure this has any impact for a local TCP\nsocket though.)","shortMessageHtmlLink":"Enable TCP_NODELAY for the control socket"}},{"before":"265a15e0b19f5bfe339ccdae01f30a50457ceecf","after":"145a9468fdf64196dc42f24b5935ce7d40ea2543","ref":"refs/heads/dev","pushedAt":"2024-09-14T12:42:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Fix ifdef _WIN32\n\nWe use _WIN32 across the code base, not __WIN32.","shortMessageHtmlLink":"Fix ifdef _WIN32"}},{"before":"125625ecd167cc05d01489628d0f831a54ceb369","after":"7920f2b1538dc2c4d00b50f110bcb2dcb86727d1","ref":"refs/heads/gamepad","pushedAt":"2024-09-13T20:07:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Enable joystick events in background\n\nCapture the gamepads even when the window is not focused.\n\nNote: In theory, with this flag set, we could capture gamepad events\neven without a window (--no-window). In practice, scrcpy still requires\na window, because --no-window implies --no-control, and the input\nmanager is owned by the sc_screen instance, which does not exist if\nthere is no window. Supporting this use case would require a lot of\nrefactors.\n\nRefs \nPR #5270 \n\nSuggested-by: Luiz Henrique Laurini ","shortMessageHtmlLink":"Enable joystick events in background"}},{"before":null,"after":"7920f2b1538dc2c4d00b50f110bcb2dcb86727d1","ref":"refs/heads/gamepad.draft4","pushedAt":"2024-09-13T20:07:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Enable joystick events in background\n\nCapture the gamepads even when the window is not focused.\n\nNote: In theory, with this flag set, we could capture gamepad events\neven without a window (--no-window). In practice, scrcpy still requires\na window, because --no-window implies --no-control, and the input\nmanager is owned by the sc_screen instance, which does not exist if\nthere is no window. Supporting this use case would require a lot of\nrefactors.\n\nRefs \nPR #5270 \n\nSuggested-by: Luiz Henrique Laurini ","shortMessageHtmlLink":"Enable joystick events in background"}},{"before":"5275e9dbd41f351845d24972495ab1bc6856d171","after":"265a15e0b19f5bfe339ccdae01f30a50457ceecf","ref":"refs/heads/dev","pushedAt":"2024-09-13T20:02:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Accept float values for --max-fps\n\nAndroid accepts a float value, there is no reason to limit the option\nto be an integer.\n\nIn particular, it allows to capture at a rate lower than 1 fps. For\nexample, to capture 1 frame every 5 seconds:\n\n scrcpy --video-source=camera --max-fps=0.2\n\nIt was already possible to pass a float manually:\n\n scrcpy --video-source=camera \\\n --video-codec-options=max-fps-to-encoder:float=0.2\n\nBut accepting a float directly for --max-fps is more convenient.\n\nRefs ","shortMessageHtmlLink":"Accept float values for --max-fps"}},{"before":"6451ad271a0a2a869ceb80836b01e3c35d60cb3d","after":"5275e9dbd41f351845d24972495ab1bc6856d171","ref":"refs/heads/dev","pushedAt":"2024-09-13T19:54:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Accept float values for --max-fps\n\nAndroid accepts a float value, there is no reason to limit the option\nto be an integer.\n\nIn particular, it allows to capture at a rate lower than 1 fps. For\nexample, to capture 1 frame every 5 seconds:\n\n scrcpy --video-source=camera --max-fps=0.2\n\nIt was already possible to pass a float manually:\n\n scrcpy --video-source=camera \\\n --video-codec-options=max-fps-to-encoder:float=0.2\n\nBut accepting a float directly for --max-fps is more convenient.\n\nRefs ","shortMessageHtmlLink":"Accept float values for --max-fps"}},{"before":"bec3321fff4c6dc3b3dbc61fdc6fd98913988a78","after":"6451ad271a0a2a869ceb80836b01e3c35d60cb3d","ref":"refs/heads/dev","pushedAt":"2024-09-13T18:03:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Ignore minBufferSize on error\n\nA negative return value from AudioRecord.getMinBufferSize() represents\nan error. Only consider positive values (0 would be invalid).\n\nRefs #5228 ","shortMessageHtmlLink":"Ignore minBufferSize on error"}},{"before":"a7cae595780de4bde22447fb22a25953426a09fb","after":"bec3321fff4c6dc3b3dbc61fdc6fd98913988a78","ref":"refs/heads/dev","pushedAt":"2024-09-13T17:53:33.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Validate server arguments\n\nSome command line arguments are passed as is to \"adb shell\". Therefore,\nthey must not contain special shell characters.","shortMessageHtmlLink":"Validate server arguments"}},{"before":"f089ea67e17784303f46fe0dc1a4abfccbdd9d26","after":"a7cae595780de4bde22447fb22a25953426a09fb","ref":"refs/heads/dev","pushedAt":"2024-09-12T09:07:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Improve delay buffer startup\n\nThe delay buffer clock estimates the clock offset between the PTS and\nthe frame decoded date using an \"Exponentially Weighted Moving Average\"\n(EWMA).\n\nBut for the first frames, the clock have less than SC_CLOCK_RANGE\npoints to average. Since the timing for the first frames are typically\nthe worst ones, give more weight to the last point for the estimation.\n\nOnce SC_CLOCK_RANGE points are available (i.e. when SC_CLOCK_RANGE ==\nclock->range), the new estimation is equivalent to the previous version.","shortMessageHtmlLink":"Improve delay buffer startup"}},{"before":"903a5aaaf599bf7c9cb9bba0fefbc04aa5ec50bd","after":"f089ea67e17784303f46fe0dc1a4abfccbdd9d26","ref":"refs/heads/dev","pushedAt":"2024-09-11T13:42:28.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add missing flag initialization\n\nThe delay buffer `stopped` field was not initialized.\n\nSince it practice the unique instance of sc_delay_buffer is initialized\nin static memory, the flag was initialized to false as a side effect.\n\nBut with commit fd0f432e877153d83ed435474fb7b04e41de4269, in debug mode\nonly, the delay buffer was broken.","shortMessageHtmlLink":"Add missing flag initialization"}},{"before":"221947be77c32e33fb8238aeb1fa1f57b8a269d8","after":"aaa9284e58ae3f83a09dcb3141f0debc3d0593b6","ref":"refs/heads/tmp","pushedAt":"2024-09-09T16:25:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add gamepad user documentation\n\nMainly copied and adapted from HID keyboard and mouse documentation.","shortMessageHtmlLink":"Add gamepad user documentation"}},{"before":"ddd60c8033b65aa138880215f3b45d24899ec142","after":"221947be77c32e33fb8238aeb1fa1f57b8a269d8","ref":"refs/heads/tmp","pushedAt":"2024-09-09T16:24:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add gamepad user documentation\n\nMainly copied and adapted from HID keyboard and mouse documentation.","shortMessageHtmlLink":"Add gamepad user documentation"}},{"before":"be224de8f0f13090c73a316e26ba8b003783bf70","after":"ddd60c8033b65aa138880215f3b45d24899ec142","ref":"refs/heads/tmp","pushedAt":"2024-09-09T16:23:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add gamepad user documentation\n\nMainly copied and adapted from HID keyboard and mouse documentation.","shortMessageHtmlLink":"Add gamepad user documentation"}},{"before":"49118ebdd1c0159c243a9ef5ea4f2b633496f0f4","after":"be224de8f0f13090c73a316e26ba8b003783bf70","ref":"refs/heads/tmp","pushedAt":"2024-09-09T16:21:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add gamepad user documentation\n\nMainly copied and adapted from HID keyboard and mouse documentation.","shortMessageHtmlLink":"Add gamepad user documentation"}},{"before":"3b0bb6e61542179c37a7513690327e80e5581e48","after":"49118ebdd1c0159c243a9ef5ea4f2b633496f0f4","ref":"refs/heads/tmp","pushedAt":"2024-09-09T16:18:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add gamepad user documentation\n\nMainly copied and adapted from HID keyboard and mouse documentation.","shortMessageHtmlLink":"Add gamepad user documentation"}},{"before":"f4a7219c378eb7da405b48a6f724cc52110e7683","after":"3b0bb6e61542179c37a7513690327e80e5581e48","ref":"refs/heads/tmp","pushedAt":"2024-09-09T16:14:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add gamepad user documentation\n\nMainly copied and adapted from HID keyboard and mouse documentation.","shortMessageHtmlLink":"Add gamepad user documentation"}},{"before":"b587014ccfbd0abc22e40d4b5068f947247b7d5b","after":"125625ecd167cc05d01489628d0f831a54ceb369","ref":"refs/heads/gamepad","pushedAt":"2024-09-09T10:36:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add UHID gamepad rumble WIP","shortMessageHtmlLink":"Add UHID gamepad rumble WIP"}},{"before":null,"after":"b587014ccfbd0abc22e40d4b5068f947247b7d5b","ref":"refs/heads/gamepad.draft3","pushedAt":"2024-09-09T06:43:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add UHID gamepad rumble WIP","shortMessageHtmlLink":"Add UHID gamepad rumble WIP"}},{"before":"dd015431c373d67ad107995861903a37b50ba75f","after":"b587014ccfbd0abc22e40d4b5068f947247b7d5b","ref":"refs/heads/gamepad","pushedAt":"2024-09-09T06:40:06.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add UHID gamepad rumble WIP","shortMessageHtmlLink":"Add UHID gamepad rumble WIP"}},{"before":"21b412cd9879b850e44fc0cf52012e8f8078bc60","after":"903a5aaaf599bf7c9cb9bba0fefbc04aa5ec50bd","ref":"refs/heads/dev","pushedAt":"2024-09-09T06:27:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Replace \"could not\" by \"cannot\" where appropriate\n\n\"Could not\" implies that the system tried to disable the option but\nencountered an issue or failure.\n\n\"Cannot\" indicates a rule or restriction, meaning it's not possible to\nperform the action at all.","shortMessageHtmlLink":"Replace \"could not\" by \"cannot\" where appropriate"}},{"before":"b54b0a6958ad72d4e42a9095140543701917ff3a","after":"dd015431c373d67ad107995861903a37b50ba75f","ref":"refs/heads/gamepad","pushedAt":"2024-09-08T19:55:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"Add UHID gamepad rumble WIP","shortMessageHtmlLink":"Add UHID gamepad rumble WIP"}},{"before":null,"after":"25470a5a167279ece322ea848aff380beb05c5d3","ref":"refs/heads/gamepad.rumblewip","pushedAt":"2024-09-08T09:35:50.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rom1v","name":"Romain Vimont","path":"/rom1v","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/543275?s=80&v=4"},"commit":{"message":"gamepad_hid_output","shortMessageHtmlLink":"gamepad_hid_output"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEujfy8QA","startCursor":null,"endCursor":null}},"title":"Activity ยท Genymobile/scrcpy"}