v3.1
Genymobile/scrcpyv3.1Dec 9, 2024by rom1v
AI Summary
Improves gamepad support and adds AV1 decoder support to release builds, alongside fixes for virtual display content preservation.
Key Highlights
- Added --no-vd-destroy-content to keep apps on main display when closing virtual display.
- Improved gamepad support in games (HID report descriptor).
- Added AV1 decoder (dav1d) support to release builds.
- Fixed 'turn screen off' on some Android 14 devices.
New Features
- --no-vd-destroy-content option
- Improved gamepad support
- AV1 decoder support
- Screen-off fix for Android 14
Full Release Notes
_To receive a notification when a new release is available, click on **Watch > Custom > Releases** at the top._ --- **scrcpy v3.1** Changes since v3.0.2: - Add `--no-vd-destroy-content` (#5615) - Improve gamepad support in games (#5623, #5362) - Inject events to main display (#5614, #5545, #5605, #5616) - Fix "turn screen off" on some devices (#4544, #5274) - Improve cleanup reliability (#5613, #5601) - Add dav1d in release builds (#5644, #4744) - Upgrade SDL to 2.30.10 --- <a id="highlights-v3.1"></a> # Highlights ## Keep virtual display content on close When a virtual display is closed, the running apps are destroyed. A new option (`--no-vd-destroy-content`, #5615) allows moving the apps to the main display instead: ``` scrcpy --new-display --no-vd-destroy-content ``` This is particularly useful for avoiding the loss of work due to unexpected disconnections. The running app can be moved back to a new virtual display afterward. _Note that the running apps follow the standard Android lifecycle. Some apps, especially 3D games, may simply restart on the main display when the virtual display is closed._ ## Gamepad support Gamepad support was implemented by #5270 in scrcpy 2.7. While it worked well with gamepad testers, it was partially or totally incompatible with many games. In this new version, several changes (#5623) allow games to detect and use gamepads correctly: - fixing the gamepad HID report descriptor - declaring the gamepad to be a well-known Xbox 360 controller ## Fix unclickable elements Since the introduction of virtual displays in scrcpy 3.0, the injection of input events has been slightly modified. While the new behavior resolves issues with virtual displays (#4598, #5137), it caused some UI elements in overlays to become unclickable. To fix the problem, this new release restores the previous behavior when mirroring the main display (#5614). ## Fix "turn screen off" on some devices On Android 14, scrcpy uses a specific mechanism to turn the screen off (#4456), but this method failed on some devices. Now, it also works on these devices: https://github.com/Genymobile/scrcpy/issues/4544#issuecomment-2526999714 ## AV1 decoder Recent devices have an AV1 encoder (and it works quite well). On Linux, when building using system libraries, it was already working. But no AV1 decoder was included in release builds. This new version adds [dav1d](https://www.videolan.org/projects/dav1d.html) support to decode AV1 streams (#5644). If your device has an AV1 encoder (`scrcpy --list-encoders`): ``` scrcpy --video-codec=av1 ```  --- - BlueSky: [`@scrcpy.bsky.social`](https://bsky.app/profile/scrcpy.bsky.social) - Twitter: [`@scrcpy_app`](https://twitter.com/scrcpy_app) - Reddit: [`r/scrcpy`](https://www.reddit.com/r/scrcpy)