Romain Vimont
cc8e6133b0
Upgrade default versions in bug report template
2024-07-06 00:00:56 +02:00
Romain Vimont
126da0cb18
Rework bug report template checks
...
Remove explicit checkboxes, and add a link to prerequisites.
2024-07-06 00:00:55 +02:00
Fr_Dae
1d3b6dac69
Improve bug report template
...
Use titles and capital letters.
PR #5051 <https://github.com/Genymobile/scrcpy/pull/5051 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2024-07-05 23:57:53 +02:00
Romain Vimont
a8871bfad7
Update links to 2.5
2024-06-29 17:51:36 +02:00
Romain Vimont
89df38f641
Bump version to 2.5
2024-06-29 16:52:45 +02:00
Romain Vimont
c95e6964c5
Merge branch 'master' into release
2024-06-29 16:52:32 +02:00
Romain Vimont
343f715323
Upgrade platform-tools (35.0.0) for Windows
2024-06-29 13:10:45 +02:00
Romain Vimont
f13f00021f
Upgrade SDL (2.30.4) for Windows
2024-06-29 13:10:45 +02:00
Romain Vimont
48c2c03093
Upgrade FFmpeg (7.0.1) for Windows
2024-06-29 13:10:45 +02:00
Romain Vimont
1e3deabd6c
Do not call avcodec_close()
...
The documentation of avcodec_close() says:
> Do not use this function. Use avcodec_free_context() to destroy a
> codec context (either open or closed).
It was deprecated in FFmpeg 7 by commit
1cc24d749569a42510399a29b034f7a77bdec34e:
<1cc24d7495
>
> Its use has been discouraged since 2016, but now is no longer used in
> avformat, so there is no reason to keep it public.
2024-06-29 13:10:45 +02:00
Romain Vimont
7633228278
Forward mouse hover events
...
Also add an option --no-mouse-hover to get the old behavior.
Fixes #2743 <https://github.com/Genymobile/scrcpy/issues/2743 >
Fixes #3070 <https://github.com/Genymobile/scrcpy/issues/3070 >
PR #5039 <https://github.com/Genymobile/scrcpy/pull/5039 >
2024-06-29 12:42:19 +02:00
Romain Vimont
f5e6b8092a
Forward all clicks by default for UHID/AOA
...
By default, only the left click is forwarded to the device, and
secondary clicks trigger shortcuts (the behavior can be configured by
--mouse-bind=xxxx).
But when the mouse mode is relative (AOA and UHID modes), forward all
clicks by default. This makes more sense since the cursor is handled on
the device side, the user expects all mouse buttons to be forwarded.
Refs <https://github.com/Genymobile/scrcpy/issues/4727#issuecomment-2069869750 >
PR #5022 <https://github.com/Genymobile/scrcpy/pull/5022 >
2024-06-24 23:17:59 +02:00
Romain Vimont
035d60cf5d
Add option to configure mouse bindings
...
Add a new option --mouse-bind=xxxx.
The argument must be exactly 4 characters, one for each secondary click:
--mouse-bind=xxxx
^^^^
||||
||| `- 5th click
|| `-- 4th click
| `--- middle click
`---- right click
Each character must be one of the following:
- `+`: forward the click to the device
- `-`: ignore the click
- `b`: trigger shortcut BACK (or turn screen on if off)
- `h`: trigger shortcut HOME
- `s`: trigger shortcut APP_SWITCH
- `n`: trigger shortcut "expand notification panel"
This deprecates --forward-all-clicks (use --mouse-bind=++++ instead).
Refs <https://github.com/Genymobile/scrcpy/pull/2258#issuecomment-2182394460 >
PR #5022 <https://github.com/Genymobile/scrcpy/pull/5022 >
2024-06-24 23:17:23 +02:00
Romain Vimont
40493dff60
Fix "resize to fit" when all clicks are forwarded
...
To resize the window to fit the device screen, it is possible to
double-click in the "black bars".
This feature was mistakenly disabled when --forward-all-clicks was set.
Instead, disable it only if mouse relative mode is enabled (AOA or
UHID), because in that case the mouse cursor is on the device.
2024-06-24 23:00:33 +02:00
Romain Vimont
09ce0307fe
Fix zsh completion script
...
An '=' was missing for some options with an argument.
2024-06-24 22:56:49 +02:00
Romain Vimont
9fa30ab1ae
Fix error message parameter
...
Use the local argument value, not the global optarg variable (even if it
has the same value in practice, as it's passed as argument).
2024-06-24 22:55:24 +02:00
Romain Vimont
0b926922bc
Ignore shortcut keycodes
...
Never inject keycodes used as shortcut modifiers.
Refs #4732 <https://github.com/Genymobile/scrcpy/issues/4732 >
PR #4741 <https://github.com/Genymobile/scrcpy/pull/4741 >
2024-06-23 19:15:56 +02:00
Romain Vimont
24bcc3fa2b
Simplify shortcut modifiers
...
Restrict shortcut modifiers to be composed of only one item each.
Before, it was possible to select a list of multiple combinations of
modifier keys, like --shortcut-mod='lctrl+lalt,rctrl+rsuper', meaning
that shortcuts would be triggered either by LCtrl+LAlt+key or
RCtrl+RSuper+key.
This was overly generic, probably not used very much, and it prevents to
solve inconsistencies between UP and DOWN events of modifier keys sent
to the device.
Refs #4732 <https://github.com/Genymobile/scrcpy/issues/4732 >
PR #4741 <https://github.com/Genymobile/scrcpy/pull/4741 >
2024-06-23 19:15:45 +02:00
wuderek
592ca0b59b
Try newer display API first
...
The old createDisplay() API has been removed from Android. Try the newer
API first, since more and more devices will use that version.
PR #5008 <https://github.com/Genymobile/scrcpy/pull/5008 >
2024-06-21 14:25:47 +02:00
wuderek
30e42af2d4
Add missing virtual display release()
...
PR #5008 <https://github.com/Genymobile/scrcpy/pull/5008 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2024-06-21 14:20:33 +02:00
Romain Vimont
9030bd8be4
Upgrade AGP from 8.1.3 to 8.3.0
2024-06-21 12:12:13 +02:00
Romain Vimont
576e7552a2
Mention that the Debian package is obsolete
...
It cannot be updated until the android-framework-XX Debian package is
fixed.
Refs <https://tracker.debian.org/pkg/scrcpy >
2024-06-13 09:14:40 +02:00
Romain Vimont
24b9e0a970
Retrieve icon decoder directly
...
The call to av_find_best_stream() gives the decoder directly, this
avoids to retrieve it afterwards in a separate step.
2024-06-11 10:04:27 +02:00
Romain Vimont
9ea4446369
Release the audio lock early
...
The final write from the writer thread does not require a lock: it is
guaranteed that enough space is available since the reader thread never
writes.
2024-06-09 19:25:32 +02:00
Romain Vimont
5d1d5bdc16
Fix thread leak on Windows
...
Fixes #4973 <https://github.com/Genymobile/scrcpy/issues/4973 >
2024-06-09 18:27:30 +02:00
Romain Vimont
fd9498e07c
Avoid zero-length copies
...
Return early if there is nothing to read/write.
2024-05-30 15:56:37 +02:00
Romain Vimont
c27ab46efb
Remove suggestion to install from winget
...
It does not work.
Refs #4027 <https://github.com/Genymobile/scrcpy/issues/4027 >
Refs #4389 <https://github.com/Genymobile/scrcpy/issues/4389 >
Refs #4956 <https://github.com/Genymobile/scrcpy/issues/4956 >
2024-05-30 08:23:42 +02:00
Romain Vimont
b5849db32f
Document missing package to build for Windows
...
To build ffmpeg, libz is necessary.
Refs #4955 <https://github.com/Genymobile/scrcpy/issues/4955 >
2024-05-29 10:32:58 +02:00
Romain Vimont
09e8c20168
Rename streamScreen() to streamCapture()
...
The capture source may be either the screen or the camera.
2024-05-14 08:23:57 +02:00
Romain Vimont
da484b7ab9
Reject recording with control only
...
If video and audio are disabled, there is nothing to record.
2024-05-12 10:44:27 +02:00
Romain Vimont
063a8339ed
Terminate on controller error
...
This is particularly important to react to server socket disconnection
since video and audio may be disabled.
PR #4868 <https://github.com/Genymobile/scrcpy/pull/4868 >
2024-05-11 17:12:00 +02:00
Romain Vimont
b5c8de08e0
Update documentation for --no-window
...
PR #4868 <https://github.com/Genymobile/scrcpy/pull/4868 >
2024-05-11 17:12:00 +02:00
Romain Vimont
45fe6b602b
Add scrcpy window without video playback
...
Add the possibility to solely control the device without screen
mirroring:
scrcpy --no-video --no-audio
This is different from OTG mode, which does not require USB debugging at
all. Here, the standard mode is used but with the possibility to disable
video playback.
By default, always open a window (even without video playback), and add
an option --no-window.
Fixes #4727 <https://github.com/Genymobile/scrcpy/issues/4727 >
Fixes #4793 <https://github.com/Genymobile/scrcpy/issues/4793 >
PR #4868 <https://github.com/Genymobile/scrcpy/pull/4868 >
2024-05-11 17:06:16 +02:00
Romain Vimont
cca2c9ffb7
Disable FPS counter when no video playback
...
There is no frame rate to count.
2024-04-19 12:57:18 +02:00
Romain Vimont
22d78e8a82
Fix boolean condition
...
Use the short-circuit operator && between booleans.
2024-04-19 12:49:03 +02:00
Romain Vimont
bcb8503b26
Handle reported camera sizes array is null
...
The array of sizes may be null. Handle this case gracefully.
Fixes #4852 <https://github.com/Genymobile/scrcpy/issues/4852 >
2024-04-17 10:45:18 +02:00
Romain Vimont
9aa6cc71be
Forbid --no-control in OTG mode
...
The whole purpose of OTG is to only control the device.
2024-04-16 15:50:44 +02:00
Romain Vimont
54e08b4eae
Fix code style
...
Limit to 80 columns.
2024-04-16 15:50:41 +02:00
Romain Vimont
bd8b945bb3
Register rotation watcher only when possible
...
Old Android versions may not be able to register a rotation watcher for
a secondary display. In that case, report the error instead of
registering a rotation watcher for the default display.
Refs <https://github.com/Genymobile/scrcpy/pull/4740#issuecomment-2051245633 >
Suggested by: Kaiming Hu <huxxx1234@gmail.com>
2024-04-12 17:22:45 +02:00
Kaiming Hu
a73bf932d6
Fix could not rotate secondary display
...
The version of the methods with the display id parameter must be tried
first, otherwise they will never be used (since the old versions without
the display id are still present).
Regression introduced by ee6620d123
.
Refs #4740 <https://github.com/Genymobile/scrcpy/pull/4740 >
PR #4841 <https://github.com/Genymobile/scrcpy/pull/4841 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2024-04-12 17:20:15 +02:00
Stepan Salenikovich
7011dd1ef0
Fix freeze and thaw rotation for Android 14
...
Changed since AOSP/framework_base commit
670fb7f5c0d23cf51ead25538bcb017e03ed73ac, included in tag
android-14.0.0_r29.
Refs <670fb7f5c0
%5E%21/>
PR #4740 <https://github.com/Genymobile/scrcpy/pull/4740 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2024-04-06 17:38:24 +02:00
Romain Vimont
ee6620d123
Refactor WindowManager methods
...
Select the available method to invoke the same way as in other wrappers
(using a version field).
Refs d894e270a7
Refs #4740 <https://github.com/Genymobile/scrcpy/pull/4740 >
2024-04-06 17:38:21 +02:00
Romain Vimont
aa34d63171
Fix segfault on close with --no-video
...
Do not call sc_screen_hide_window() if screen is not initialized.
To reproduce:
scrcpy --no-video --record=file.mp4
This only segfaults in debug mode since commit
fd0f432e87
.
2024-04-04 08:52:32 +02:00
Romain Vimont
206809a99a
Fix typo in documentation
2024-04-02 18:01:21 +02:00
Simon Chan
bf625790fa
Request limited color range by default
...
Most devices currently use limited color range, but some recent devices
encode in full color range, which is currently not supported by the SDL
opengl render driver.
Fixes #4756 <https://github.com/Genymobile/scrcpy/issues/4756 >
Refs <https://github.com/Genymobile/scrcpy/issues/4756#issuecomment-2003710860 >
Refs libusb/#9311 <https://github.com/libsdl-org/SDL/issues/9311 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2024-03-30 15:28:57 +01:00
Romain Vimont
db55edb196
Fix YUV conversion for full color range
...
Take the color range (full vs limited) into account to render the
picture.
Note that with the current version of SDL, it has no impact with the SDL
opengl render driver.
Fixes #4756 <https://github.com/Genymobile/scrcpy/issues/4756 >
Refs <https://github.com/Genymobile/scrcpy/issues/4756#issuecomment-2003228916 >
Refs libusb/#9311 <https://github.com/libsdl-org/SDL/issues/9311 >
Suggested-by: Simon Chan <1330321+yume-chan@users.noreply.github.com>
2024-03-30 15:28:09 +01:00
Romain Vimont
1c3801a0b1
Add a shortcut to pause/unpause display
...
Pause/unpause display on MOD+z and MOD+Shift+z.
It only impacts rendering, the device is still captured, the video
stream continues to be transmitted to the device and recorded (if
recording is enabled).
Fixes #1632 <https://github.com/Genymobile/scrcpy/issues/1632 >
PR #4748 <https://github.com/Genymobile/scrcpy/pull/4748 >
2024-03-30 14:20:51 +01:00
Romain Vimont
be3d357a6d
Use source repo tarball for libusb
...
Legitimate or not, we should not use sources that do not match the
repository.
Refs <https://github.com/libusb/libusb/issues/1468#issuecomment-1974787595 >
Refs <https://news.ycombinator.com/item?id=39866309 >
Refs #4713 <https://github.com/Genymobile/scrcpy/pull/4713 >
2024-03-30 14:18:47 +01:00
Romain Vimont
79968a0ae6
Reorder documentation
...
Present the --tcpip option without arguments first.
2024-03-11 18:05:27 +01:00
Romain Vimont
7f23ff3f2c
Add videos for pinch-to-zoom and tilt
...
A video is worth a thousand words.
2024-03-03 00:06:54 +01:00