160 Commits

Author SHA1 Message Date
pngocthach
8ced132538 Add support for VP8 and VP9 video encoders
Fixes #6763 <https://github.com/Genymobile/scrcpy/issues/6763>
PR #6769 <https://github.com/Genymobile/scrcpy/pull/6769>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-05-27 23:06:26 +02:00
Romain Vimont
4d79fb5b26 Improve protocol documentation schema
For consistency, name the "client resize" flag 'R' and add the "frame
header" arrow to make the schemas in `app/src/demuxer.c` and
`doc/develop.md` identical.

Refs #6772 comment <https://github.com/Genymobile/scrcpy/pull/6772#discussion_r3305729151>
Refs #6772 comment <https://github.com/Genymobile/scrcpy/pull/6772#discussion_r3305729425>
2026-05-27 21:30:51 +02:00
Romain Vimont
2322868e9e Update links to 4.0 2026-05-12 21:35:47 +02:00
Romain Vimont
2c3d5cbfd9 Remove experimental note for static builds
The static builds have been used for a long time, so the "experimental"
wording is no longer accurate.
2026-05-12 19:54:59 +02:00
Romain Vimont
a34e121a2b Update doc/develop.md links to latest version
Refs #6772 comment <https://github.com/Genymobile/scrcpy/pull/6772#issuecomment-4413041141>
Refs #6776 comment <https://github.com/Genymobile/scrcpy/pull/6776#discussion_r3105677909>
2026-05-12 00:12:26 +02:00
Jah-yee
19057b48af Fix multiple issues in documentation
Fixes #6817 <https://github.com/Genymobile/scrcpy/issues/6817>
PR #6819 <https://github.com/Genymobile/scrcpy/pull/6819>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-05-11 23:38:27 +02:00
Romain Vimont
d678988a5a Merge branch 'master' into dev 2026-05-11 23:27:27 +02:00
Romain Vimont
5830dedbe4 Restore retry capture at lower resolution
The mechanism to retry capture at a lower resolution on error was
removed in favor of using video encoder capabilities instead.

However, an encoder configuration that is compatible with the declared
capabilities may still fail, either because the declared capabilities
are incorrect or because some resources are unavailable.

Restore the downsize-on-error behavior for such cases.

This reverts commit 4f97e2e30b.

Refs #2947 <https://github.com/Genymobile/scrcpy/pull/2947>
Refs #6766 <https://github.com/Genymobile/scrcpy/pull/6766>
PR #6822 <https://github.com/Genymobile/scrcpy/pull/6822>
2026-05-11 23:06:57 +02:00
Romain Vimont
8691113682 Complete --max-size documentation
The `--max-size` option behaves slightly differently depending on the
mode.

Refs #6772 comment <https://github.com/Genymobile/scrcpy/pull/6772#issuecomment-4364562978>
PR #6772 <https://github.com/Genymobile/scrcpy/pull/6772>
2026-05-09 17:28:52 +02:00
Romain Vimont
9b4ede0919 Document render fit
PR #6772 <https://github.com/Genymobile/scrcpy/pull/6772>
2026-05-09 17:28:52 +02:00
Romain Vimont
f0b11a3d9e Document flex display
PR #6772 <https://github.com/Genymobile/scrcpy/pull/6772>
2026-05-09 17:28:52 +02:00
Romain Vimont
9e0d2a1bc9 Signal client resize in session packets
So far, scrcpy always resized the window whenever a frame with a new
size was received. However, with the upcoming "flex display" feature,
the size of the virtual display can change either on its own (e.g.,
due to app rotation) or as a result of a client window resize.

Track the cause of each resize and signal it in the session metadata.

Resize the window only if the change was not triggered by a client
request to prevent resize loops and stuttering.

PR #6772 <https://github.com/Genymobile/scrcpy/pull/6772>
2026-05-09 17:28:52 +02:00
Romain Vimont
7577871480 Set default background color to dark gray
Refs #6772 comment <https://github.com/Genymobile/scrcpy/pull/6772#issuecomment-4374943892>
PR #6807 <https://github.com/Genymobile/scrcpy/pull/6807>
2026-05-05 23:39:46 +02:00
Romain Vimont
b4d5dd753b Add option to change the background color
Introduce a `--background-color` option that accepts hexadecimal color
codes (3-digit or 6-digit formats):

    scrcpy --background-color=#234567
    scrcpy --background-color=234567  # leading '#' is optional
    scrcpy --background-color=#567    # equivalent to #556677

Fixes #5855 <https://github.com/Genymobile/scrcpy/issues/5855>
Refs #6772 comment <https://github.com/Genymobile/scrcpy/pull/6772#issuecomment-4374943892>
PR #6807 <https://github.com/Genymobile/scrcpy/pull/6807>
2026-05-05 23:39:22 +02:00
zhanlong9890
693ee7aa36 Add bash language identifiers to docs snippets
Fixes #6790 <https://github.com/Genymobile/scrcpy/issues/6790>
PR #6797 <https://github.com/Genymobile/scrcpy/pull/6797>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-05-01 11:46:53 +02:00
Doehyun Baek
3de3325b98 Add missing dependency libv4l-dev to doc/build.md
Fixes #6803 <https://github.com/Genymobile/scrcpy/issues/6803>
PR #6804 <https://github.com/Genymobile/scrcpy/pull/6804>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-05-01 11:09:48 +02:00
Romain Vimont
19c4d0b4e9 Document release signature verification
Fixes #6800 <https://github.com/Genymobile/scrcpy/issues/6800>
PR #6801 <https://github.com/Genymobile/scrcpy/pull/6801>
2026-05-01 10:58:54 +02:00
Romain Vimont
bf8bff430f Rename virtual_display.md to virtual-display.md 2026-04-30 12:59:09 +02:00
Romain Vimont
9b2498c852 Add --keep-active
An an option to simulate user activity to prevent the screen from
turning off due to inactivity.

Fixes #6787 <https://github.com/Genymobile/scrcpy/issues/6787>
PR #6792 <https://github.com/Genymobile/scrcpy/pull/6792>
2026-04-27 09:26:07 +02:00
Romain Vimont
6235289e77 Update protocol documentation
The protocol changed in commit 78cba1b7c2.

Update the documentation accordingly.

Refs #6159 <https://github.com/Genymobile/scrcpy/pull/6159>
PR #6776 <https://github.com/Genymobile/scrcpy/pull/6776>
2026-04-24 12:16:12 +02:00
Romain Vimont
330b4c439f Replace v2.0 with 2.0 in doc
Refs #6776 comment <https://github.com/Genymobile/scrcpy/pull/6776#discussion_r3105660913>
PR #6776 <https://github.com/Genymobile/scrcpy/pull/6776>
2026-04-24 12:15:53 +02:00
Romain Vimont
12b129a17d Add MOD+q shortcut to quit
Fixes #6612 <https://github.com/Genymobile/scrcpy/issues/6612>
PR #6780 <https://github.com/Genymobile/scrcpy/pull/6780>
2026-04-24 12:11:41 +02:00
Romain Vimont
175134c0ca Add F11 as fullscreen shortcut
PR #6777 <https://github.com/Genymobile/scrcpy/pull/6777>
2026-04-20 18:38:53 +02:00
Romain Vimont
4671927c34 Add missing language identifier in v4l2.md
Refs #6725 comment <https://github.com/Genymobile/scrcpy/pull/6725#discussion_r3105651796>
2026-04-19 11:19:30 +02:00
Satyam Kashyap
cbc5917050 Clarify MSYS2 MinGW terminal requirement
PR #6254 <https://github.com/Genymobile/scrcpy/pull/6254>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-04-17 23:11:11 +02:00
Romain Vimont
db013aa7a7 Fix macOS spelling in documentation 2026-04-17 23:06:34 +02:00
Managor
158cae3237 Add instructions for creating v4l2loopback device
PR #6725 <https://github.com/Genymobile/scrcpy/pull/6725>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-04-17 22:22:20 +02:00
Romain Vimont
b5cc6f2be5 Set default audio-output-buffer to 10ms
Change the default value of `--audio-output-buffer` from 5ms to 10ms.

In practice, the audio output backends do not support values below 10ms.
When the setting is set to 5ms, several successive calls are made every
10ms or more.

Additionally, a 5ms output buffer can cause audio glitches on some
computers.

Refs SDL/#13319 <https://github.com/libsdl-org/SDL/issues/13319>
Refs SDL/#13397 <https://github.com/libsdl-org/SDL/issues/13397>
Fixes #3793 <https://github.com/Genymobile/scrcpy/issues/3793>
PR #6775 <https://github.com/Genymobile/scrcpy/pull/6775>
2026-04-17 21:34:18 +02:00
Romain Vimont
4f97e2e30b Disable retry capture at lower resolution
A mechanism was introduced to retry capture at a lower resolution to
support devices unable to encode at the device screen resolution.

While useful, this approach is inherently limited and will not be able
to handle the dynamic resizing required for resizable virtual displays.

Disable this mechanism entirely. Further commits will add support for
adjusting the size in advance according to video encoder capabilities.

Refs #2947 <https://github.com/Genymobile/scrcpy/pull/2947>
PR #6766 <https://github.com/Genymobile/scrcpy/pull/6766>
2026-04-14 22:50:28 +02:00
Tech-Tac
65153a09c3 Add option to disable window aspect ratio lock
By default, the window aspect ratio is preserved when resizing.

Add `--no-window-aspect-ratio-lock` to disable this behavior.

PR #6761 <https://github.com/Genymobile/scrcpy/pull/6761>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-04-10 19:35:43 +02:00
Romain Vimont
de3db42997 Document video codec alignment
PR #6746 <https://github.com/Genymobile/scrcpy/pull/6746>
2026-04-07 19:47:21 +02:00
Benjamin Loison
247a37d57b Fix typo in doc/develop.md
PR #6752 <https://github.com/Genymobile/scrcpy/pull/6752>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-04-06 11:40:35 +02:00
Romain Vimont
10e0c3226c Fix typo in documentation
Refs #6667 comment <https://github.com/Genymobile/scrcpy/pull/6667#pullrequestreview-3848495119>

Suggested-by: anotheruserofgithub
2026-02-24 16:01:00 +01:00
Romain Vimont
8b0206f7be Keep Windows terminal open on error
If scrcpy is launched by double-clicking scrcpy.exe in Windows Explorer,
automatically set --pause-on-exit=if-error.

Without this, the terminal would close immediately, preventing the user
from seeing the error.

Also remove scrcpy-console.bat, which is now useless.

PR #6667 <https://github.com/Genymobile/scrcpy/pull/6667>
2026-02-21 12:17:31 +01:00
Almog Kurtser
3fcc177da5 Use OpenJDK instead of Adoptium on Mac
PR #6621 <https://github.com/Genymobile/scrcpy/pull/6621>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-02-12 17:59:11 +01:00
Romain Vimont
5607f12f2a Document camera torch and zoom features
PR #6243 <https://github.com/Genymobile/scrcpy/pull/6243>
2026-01-13 20:41:09 +01:00
Tommie
8ac04d39f4 Add shortcuts to change the camera zoom
MOD+up and MOD+zoom change the camera zoom.

PR #6243 <https://github.com/Genymobile/scrcpy/pull/6243>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2026-01-13 20:40:58 +01:00
Romain Vimont
48fcfdd104 Add shortcuts to switch the camera torch
MOD+t turns on the camera torch, MOD+Shift+t turns it off.

PR #6243 <https://github.com/Genymobile/scrcpy/pull/6243>

Co-authored-by: Tommie <teh420@gmail.com>
2026-01-13 20:35:52 +01:00
Romain Vimont
1015b42e53 Rename "codec meta" to "stream meta"
The stream metadata will contain both:
 - the codec ID at the start of the stream
 - the session metadata (video width and height) at the start of each
   "session" (typically on rotation)

PR #6159 <https://github.com/Genymobile/scrcpy/pull/6159>
2026-01-10 11:53:22 +01:00
Romain Vimont
02989249f6 Migrate from SDL2 to SDL3
Refs <https://wiki.libsdl.org/SDL3/README-migration>
PR #6216 <https://github.com/Genymobile/scrcpy/pull/6216>
2026-01-06 16:22:48 +01:00
Romain Vimont
db2f72a58a Merge branch 'master' into dev 2025-12-17 20:27:11 +01:00
Romain Vimont
fb6381f5b9 Upgrade links to 3.3.4 2025-12-17 20:21:05 +01:00
paradoxskin
b08093d1c0 Fix incorrect icon filename in build documentation
The installed icon was listed as `icon.png`, but the actual
filename is `scrcpy.png`.

PR #6490 <https://github.com/Genymobile/scrcpy/pull/6490>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2025-11-19 17:13:40 +01:00
Romain Vimont
e5e58b1b30 Upgrade links to 3.3.3 2025-09-27 16:10:10 +02:00
Romain Vimont
f663bbec12 Update links to 3.3.2 2025-09-06 14:54:36 +02:00
Romain Vimont
f01231dff8 Update links to 3.3.1 2025-06-20 20:14:42 +02:00
Romain Vimont
696402c68c Update links to 3.3 2025-06-11 22:15:30 +02:00
Romain Vimont
db9dc6ae83 Make the snap version as obsolete
The version of scrcpy packaged in snap is currently 1.25.

Refs <https://snapcraft.io/scrcpy>
2025-04-01 11:04:34 +02:00
Romain Vimont
e0f37f834b Update links to 3.2 2025-03-29 16:15:14 +01:00
Romain Vimont
79227af89f Merge branch 'master' into release 2025-03-29 15:44:29 +01:00