Romain Vimont
64930e71b9
Handle camera disconnection
...
Stop mirroring on camera disconnection.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
2023-10-31 15:57:06 +01:00
Romain Vimont
d544e577c0
Automatically select audio source
...
If --audio-source is not specified, select the default value
according to the video source:
- for display mirroring, use device audio by default;
- for camera mirroring, use microphone by default.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
2023-10-31 15:57:06 +01:00
Simon Chan
bfeecc0131
Add camera mirroring
...
Add --video-source=camera, and related options:
- --camera-id=<id>: select the camera by its id (see --list-cameras);
- --camera-size=<width>x<height>: select the capture size.
Fixed #241 <https://github.com/Genymobile/scrcpy/issues/241 >
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-31 15:57:06 +01:00
Romain Vimont
f032262cd7
Add --list-camera-sizes
...
Add an option to list the device camera declared sizes.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
2023-10-31 15:57:06 +01:00
Simon Chan
cd63896d63
Add --list-cameras
...
Add an option to list the device cameras.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-31 15:56:25 +01:00
Romain Vimont
f085765e04
Factorize --list- options handling
...
This will limit code duplication as more list options will be added.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
2023-10-31 12:45:40 +01:00
Simon Chan
a2fb1b40f6
Extract SurfaceCapture from ScreenEncoder
...
Extract an interface SurfaceCapture from ScreenEncoder, representing a
video source which can be rendered to a Surface for encoding.
Split ScreenEncoder into:
- ScreenCapture, implementing SurfaceCapture to capture the device
screen,
- SurfaceEncoder, to encode any SurfaceCapture.
This separation prepares the introduction of another SurfaceCapture
implementation to capture the camera instead of the device screen.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-31 12:45:40 +01:00
Romain Vimont
41ccb5883e
Force server exit at the end of main()
...
By default, the Java process exits when all non-daemon threads are
terminated.
The Android SDK might start some non-daemon threads internally,
preventing the scrcpy server to exit in some cases.
So force the process to exit explicitly.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
2023-10-31 12:45:40 +01:00
Romain Vimont
23e116064d
Rename --display to --display-id
...
The option is named "display id" everywhere.
This will be consistent with --camera-id (there will be many camera
options, so an option --camera would be confusing).
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
2023-10-31 12:45:40 +01:00
Romain Vimont
3432029a3d
Make separator configurable for parsing integers
...
The separator was hardcoded to ':'. This will allow to reuse the
function to parse sizes as WIDTHxHEIGHT.
PR #4213 <https://github.com/Genymobile/scrcpy/pull/4213 >
2023-10-31 12:45:31 +01:00
Romain Vimont
7a2b756f1e
Fix incorrect comment about AV1 constant
...
MediaFormat.MIMETYPE_VIDEO_AV1 has been added in API 29, not 21.
2023-10-31 12:35:04 +01:00
Romain Vimont
b7ad652a75
Move empty string test for crop option parsing
...
For consistency with other options.
2023-10-26 22:42:46 +02:00
Avinash Sonawane
76a99a7fcd
Replace raw number by its name
...
PR #4373 <https://github.com/Genymobile/scrcpy/pull/4373 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-25 16:13:36 +02:00
Avinash Sonawane
68b55ef2fe
Replace sprintf() with safer snprintf()
...
PR #4373 <https://github.com/Genymobile/scrcpy/pull/4373 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-25 16:13:34 +02:00
Avinash Sonawane
bc8913e12b
Use char *
for pointer arithmetic
...
PR #4374 <https://github.com/Genymobile/scrcpy/pull/4374 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-24 23:12:36 +02:00
Romain Vimont
3c2013de10
Enable missing-prototypes warning
...
Warn if a global function is defined without a previous prototype
declaration. It is not enabled by default at warning_level=2.
2023-10-24 23:06:57 +02:00
Avinash Sonawane
8cef8bac94
Declare local functions as static
...
PR #4374 <https://github.com/Genymobile/scrcpy/pull/4374 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-24 23:06:57 +02:00
Avinash Sonawane
0bbe8a7007
Wrap macros in do-while(0)
...
To fix the warnings of stray `;`.
PR #4374 <https://github.com/Genymobile/scrcpy/pull/4374 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-24 22:58:33 +02:00
Romain Vimont
9fdb882509
Fix --pause-on-exit parsing
...
The function incorrectly returned `false` instead of a valid (and
expected) enum value.
2023-10-24 22:53:41 +02:00
Romain Vimont
8e7b041f35
Add missing void
s for empty parameter list
2023-10-23 21:50:40 +02:00
Avinash Sonawane
9ade389069
Make sc_usb_devices_destroy() static
...
It is only called from the implementation file.
PR #4371 <https://github.com/Genymobile/scrcpy/pull/4371 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-23 15:39:19 +02:00
Avinash Sonawane
90ba885547
Remove redundant ;
...
PR #4371 <https://github.com/Genymobile/scrcpy/pull/4371 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-23 15:09:26 +02:00
Avinash Sonawane
7adf98e9d4
Use void
for empty function parameter list
...
PR #4371 <https://github.com/Genymobile/scrcpy/pull/4371 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-10-23 15:07:24 +02:00
Romain Vimont
1c864a88eb
Use --pause-on-exit from launchers
...
The terminal opened by scrcpy-console (.bat or .desktop) must not close
if scrcpy terminates with an error, so that error messages can be read.
Refs #3817 <https://github.com/Genymobile/scrcpy/pull/3817 >
Refs #3822 <https://github.com/Genymobile/scrcpy/pull/3822 >
PR #4130 <https://github.com/Genymobile/scrcpy/pull/4130 >
2023-10-11 09:43:44 +02:00
Romain Vimont
1650b7c058
Add --pause-on-exit
...
Add an option to make scrcpy pause on exit.
Three behaviors are possible:
- always pause on exit:
--pause-on-exit
--pause-on-exit=true
- never pause on exit:
(no option)
--pause-on-exit=false
- pause when scrcpy returns with an error (a non-zero exit code):
--pause-on-exit=if-error
This is useful to prevent the terminal window from automatically
closing, so that error messages can be read.
Refs #3817 <https://github.com/Genymobile/scrcpy/pull/3817 >
Refs #3822 <https://github.com/Genymobile/scrcpy/pull/3822 >
PR #4130 <https://github.com/Genymobile/scrcpy/pull/4130 >
2023-10-11 09:43:44 +02:00
Romain Vimont
a7c3c9a54c
Make fillBaseContext() method private
...
This is consistent with fillAppInfo() and fillAppContext(), which are
also private.
2023-08-22 20:10:06 +02:00
Romain Vimont
111d02fca4
Add missing 'final' in Java classes
...
For consistency.
2023-08-22 18:52:29 +02:00
Romain Vimont
36670dda40
Fix warning typo
...
A parenthesis was missing.
2023-08-07 20:22:17 +02:00
Romain Vimont
0983f0a194
Report device disconnection on audio EOS
...
If --no-video was set, then device disconnection was not reported. To
avoid the problem, report device disconnection also on audio
end-of-stream (EOS).
If both video and audio are enabled, then a device disconnection event
will be sent twice, but only the first one will be handled (since it
makes scrcpy exit).
Fixes #4207 <https://github.com/Genymobile/scrcpy/issues/4207 >
2023-08-01 12:05:16 +02:00
Romain Vimont
110b3a16f6
Do not disable controls without video playback
...
Some control messages can still be used even when video playback is
disabled (i.e. there is no window), for example to turn the screen off.
This reverts commit 92483fe11b
(semantically).
Fixes #4175 <https://github.com/Genymobile/scrcpy/issues/4175 >
2023-07-28 14:45:33 +02:00
Aritz T
1ee46970e3
Fix TCP/IP link in README
...
Refs 328ed3650d
PR #4173 <https://github.com/Genymobile/scrcpy/pull/4173 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-07-26 19:58:13 +02:00
Romain Vimont
fcdf847dd3
Add missing syntax highlighting in audio doc
2023-07-14 23:37:19 +02:00
Romain Vimont
ad05a01800
Add Encoder section
...
This will allow to reference the encoder section directly in issues.
2023-07-14 23:36:21 +02:00
Romain Vimont
328ed3650d
Extract device connection to a separate doc page
...
Create a new "Connection" documentation page.
2023-07-14 23:31:26 +02:00
Romain Vimont
c14668b177
Move display section to video documentation
2023-07-14 23:26:52 +02:00
Romain Vimont
637f48f360
Update links to v2.1.1
2023-07-14 23:09:44 +02:00
Romain Vimont
d391fc3b69
Bump version to 2.1.1
2023-07-14 18:58:58 +02:00
Romain Vimont
75ad925423
Merge branch 'master' into release
2023-07-14 18:58:34 +02:00
Romain Vimont
7e936fa879
Fix meizu deadlock
...
Some devices (Meizu) assume that the video encoding thread has a
Looper. By moving video encoding to a separate thread, commit
feab87053a
broke this assumption.
Call Looper.prepare() from this thread to fix the problem.
Fixes #4143 <https://github.com/Genymobile/scrcpy/issues/4143 >
2023-07-13 21:46:50 +02:00
Romain Vimont
01d785d9a3
Increase attempts to start AudioRecord
...
Making the shell app foreground (specific for Android 11) may take more
than 300ms on some devices, so increase the number of attempts from 3 to
5 (separated by 100ms).
Fixes #4147 <https://github.com/Genymobile/scrcpy/issues/4147 >
Refs #3796 <https://github.com/Genymobile/scrcpy/issues/3796 >
Refs 02f4ff7534
2023-07-07 18:21:17 +02:00
Romain Vimont
fe6e9acb36
Log device selection at INFO level
...
The selected device should be logged by default.
2023-07-04 18:22:33 +02:00
Cédric Skwar
625934fb1b
Fix fedora package in build instructions
...
In Fedora, the package is libusb1-devel.
Fixes #4131 <https://github.com/Genymobile/scrcpy/issues/4131 >
PR #4132 <https://github.com/Genymobile/scrcpy/pull/4132 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-06-30 21:21:13 +02:00
Romain Vimont
85b55b3c4e
Fix possible division by zero
...
On sway (a window manager), SDL_WINDOWEVENT_EXPOSED and
SDL_WINDOWEVENT_SIZE_CHANGED might not be called before a mouse event is
triggered. As a consequence, the "content rectangle" might not be
initialized when the mouse event is processed, causing a division by
zero.
To avoid the problem, initialize the content rect immediately when the
window is shown.
Fixes #4115 <https://github.com/Genymobile/scrcpy/issues/4115 >
2023-06-29 19:18:32 +02:00
Romain Vimont
7b7076ef85
Add direct links to donations
2023-06-28 10:58:00 +02:00
Romain Vimont
808bd14e30
Ignore fold change events for other display ids
...
Scrcpy mirrors a specific display id, it must ignore events for other
display ids.
Fixes #4120 <https://github.com/Genymobile/scrcpy/issues/4120 >
2023-06-27 18:43:22 +02:00
Romain Vimont
0049b3ce07
Remove superfluous log
...
This line was committed by error in commit
a52053421a
.
2023-06-23 08:23:29 +02:00
Romain Vimont
5764f47fee
Update links to v2.1
2023-06-22 01:18:17 +02:00
Romain Vimont
2dab1f7024
Bump version to 2.1
2023-06-22 01:15:44 +02:00
Romain Vimont
744312ec64
Merge branch 'master' into release
2023-06-22 01:15:39 +02:00
Romain Vimont
b9315620e2
Fix adb forward initialization
...
In forward mode, the dummy byte must be written immediately after the
first accept(), otherwise the client will wait indefinitely, causing a
deadlock (or a timeout).
Regression introduced by 8c650e53cd
.
2023-06-22 01:13:53 +02:00