Romain Vimont
6a58891e13
Use current time as initial timestamp on error
...
If the initial timestamp could not be retrieved, use the current time as
returned by System.nanoTime(). In practice, it is the same time base as
AudioRecord timestamps.
Fixes #4536 <https://github.com/Genymobile/scrcpy/issues/4536 >
2023-12-16 20:17:33 +01:00
Romain Vimont
ec41896c85
Fix integer overflow for audio packet duration
...
The result is assigned to a long (64-bit signed integer), but the
intermediate multiplication was stored in an int (32-bit signed
integer).
This value is only used as a fallback when no timestamp could be
retrieved, that's why it did not cause too much harm so far.
Fixes #4536 <https://github.com/Genymobile/scrcpy/issues/4536 >
2023-12-16 20:16:31 +01:00
Romain Vimont
4cd61b5a90
Fix checkstyle violation
...
Reported by checkstyle:
> [ant:checkstyle] [INFO]
> scrcpy/server/src/main/java/com/genymobile/scrcpy/wrappers/ClipboardManager.java:48:
> Line is longer than 150 characters (found 167). [LineLength]
2023-12-16 20:12:58 +01:00
Till Rathmann
d2ed4510a7
Simulate tilt multitouch event by pressing Shift
...
PR #4529 <https://github.com/Genymobile/scrcpy/pull/4529 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-12-15 22:12:07 +01:00
Harsh Shandilya
604dfd7c6b
Fix incorrect compgen usage
...
PR #4532 <https://github.com/Genymobile/scrcpy/pull/4532 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-12-14 17:08:19 +01:00
Harsh Shandilya
af69689ec1
Fix bash completion syntax
...
PR #4532 <https://github.com/Genymobile/scrcpy/pull/4532 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-12-14 17:07:20 +01:00
Romain Vimont
cbce42336d
Fix manpage syntax
...
The '-' character must be escaped.
Fixes #4528 <https://github.com/Genymobile/scrcpy/issues/4528 >
2023-12-13 13:42:57 +01:00
Romain Vimont
c9a4d2b38f
Use up-to-date values on display fold change
...
When a display is folded or unfolded, the maxSize may have been updated
since the option was passed, and deviceSize must be updated.
Refs #4469 <https://github.com/Genymobile/scrcpy/pull/4469 >
2023-12-04 08:50:12 +01:00
Romain Vimont
1beec99f82
Explicitly exit cleanup process
...
This avoids an internal crash reported in `adb logcat`.
Refs #4456 <https://github.com/Genymobile/scrcpy/pull/4456#issuecomment-1837427802 >
2023-12-04 08:45:35 +01:00
Romain Vimont
5ce8672ebc
Add clipboard workaround for IQOO device
...
Fixes #4492 <https://github.com/Genymobile/scrcpy/issues/4492 >
2023-12-04 08:43:31 +01:00
Romain Vimont
3001f8a2d5
Adapt AudioRecord workaround to Android 14
...
Android 14 added a new int parameter "halInputFlags" to an internal
method:
<f6135d75db
>
Fixes #4492 <https://github.com/Genymobile/scrcpy/issues/4492 >
2023-12-03 18:01:11 +01:00
Romain Vimont
c6ff78f414
Update links to v2.3.1
2023-12-02 12:39:05 +01:00
Romain Vimont
40f2560d98
Bump version to 2.3.1
2023-12-02 12:30:19 +01:00
Romain Vimont
26aa28c998
Merge branch 'master' into release
2023-12-02 12:29:31 +01:00
Romain Vimont
ef79fcbbd2
Fix AV1 demuxing
...
For AV1, the config packet must not be merged with the next non-config
packet.
This fixes the following error when passing --video-codec=av1:
> INFO: [FFmpeg] libdav1d 1.3.0
> ERROR: [FFmpeg] Unknown OBU type 0 of size 29393
> ERROR: [FFmpeg] Error parsing OBU data
> ERROR: Decoder 'video': could not send video packet: -1094995529
PR #4487 <https://github.com/Genymobile/scrcpy/pull/4487 >
2023-12-02 12:20:01 +01:00
Romain Vimont
9497f39fb4
Do not fail if SDL_INIT_VIDEO fails without video
...
The SDL video subsystem may be initialized so that clipboard
synchronization works even without video playback.
But if the video subsystem initialization fails (e.g. because no video
device is available), consider it as an error only if video playback is
enabled.
Refs 5e59ed3135
Fixes #4477 <https://github.com/Genymobile/scrcpy/issues/4477 >
2023-11-29 12:16:05 +01:00
Romain Vimont
bf056b1fee
Do not initialize SDL video when not necessary
...
The SDL video subsystem is required for video playback and clipboard
synchronization.
If neither is used, it is not necessary to initialize it.
Refs 5e59ed3135
Refs 110b3a16f6
Refs #4418 <https://github.com/Genymobile/scrcpy/issues/4418 >
Refs #4477 <https://github.com/Genymobile/scrcpy/issues/4477 >
2023-11-29 12:14:07 +01:00
Johannes Neyer
bd9292931e
Mention exclusive_caps mode in v4l2 documentation
...
PR #4435 <https://github.com/Genymobile/scrcpy/pull/4435 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-11-28 08:32:28 +01:00
Romain Vimont
140a49b8be
Add workaround for Samsung devices issues
...
On some Samsung devices, DisplayManagerGlobal.getDisplayInfoLocked()
calls ActivityThread.currentActivityThread().getConfiguration(), which
requires a non-null ConfigurationController.
Fixes <https://github.com/Genymobile/scrcpy/issues/4467 >
2023-11-27 09:29:06 +01:00
Romain Vimont
4135c411af
Fix compilation error
...
Fix the following warning/error:
../app/src/cli.c:2158:17: warning: a label can only be part of a
statement and a declaration is not a statement [-Wpedantic]
With some compilers, this is an error rather than a pedantic warning.
Refs <https://github.com/Genymobile/scrcpy/issues/2256#issuecomment-1467008307 >
2023-11-25 23:56:46 +01:00
Romain Vimont
5e061636f6
Update links to v2.3
2023-11-25 22:15:07 +01:00
Romain Vimont
5f3fb843f5
Bump version to 2.3
...
The previous version bump to 2.2 was incorrect, it was updated by:
./bump_version v2.2
instead of:
./bump_version 2.2
Correctly bump to version 2.3.
Refs #4433 <https://github.com/Genymobile/scrcpy/issues/4433#issuecomment-1816830875 >
2023-11-25 21:40:27 +01:00
Romain Vimont
ce8126f322
Merge branch 'master' into release
2023-11-25 21:37:37 +01:00
Romain Vimont
d037b02cc2
Fix scrcpy-console.desktop
...
The argument passed to scrcpy was not applied, the full command must be
passed as a single argument.
PR #4448 <https://github.com/Genymobile/scrcpy/pull/4448 >
2023-11-25 21:35:04 +01:00
Kid
89761213c3
Do not quote $SHELL in .desktop files
...
This does not work properly on some desktop environments (KDE), and
$SHELL is unlikely to require quoting.
Fixes #4367 <https://github.com/Genymobile/scrcpy/issues/4367 >
PR #4448 <https://github.com/Genymobile/scrcpy/pull/4448 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-11-25 21:28:43 +01:00
Kid
8db4e78b34
Fix Linux desktop files
...
There were too many backslashes in the Exec line.
Fixes #4367 <https://github.com/Genymobile/scrcpy/issues/4367 >
PR #4448 <https://github.com/Genymobile/scrcpy/pull/4448 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-11-25 21:28:43 +01:00
Romain Vimont
5d4b8a7e6d
Fix turn screen off on Android 14
...
On Android 14, the methods to access the display have been moved to
DisplayControl, which is not in the core framework. Use a specific
ClassLoader to access this class and its native dependencies.
Fixes #3927 <https://github.com/Genymobile/scrcpy/issues/3927 >
Refs #3927 comment <https://github.com/Genymobile/scrcpy/issues/3927#issuecomment-1790031953 >
Refs #4446 comment <https://github.com/Genymobile/scrcpy/pull/4446#issuecomment-1824660915 >
PR #4456 <https://github.com/Genymobile/scrcpy/pull/4456 >
Co-authored-by: Simon Chan <1330321+yume-chan@users.noreply.github.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-11-25 21:25:26 +01:00
Romain Vimont
eed06b141a
Upgrade sdl (2.28.5) for Windows
...
Include the latest version of SDL in Windows releases.
2023-11-25 21:06:45 +01:00
Romain Vimont
825d7f72c0
Extract $VERSION for dependency scripts
...
This will allow to update the version only once in these files.
2023-11-25 21:06:45 +01:00
Romain Vimont
2370298b61
Download SDL prebuilt binaries from github
...
The server is faster than libsdl.org.
2023-11-25 21:06:45 +01:00
Romain Vimont
67f356f881
Improve crossbuild
...
Install all the prebuilt dependencies for Windows to a specific folder,
and use meson command line options to specify their location.
This removes crossbuild-specific code from the meson scripts and will
simplify dependency upgrades.
PR #4460 <https://github.com/Genymobile/scrcpy/pull/4460 >
2023-11-25 21:06:37 +01:00
Romain Vimont
c573bd2a33
Fix java code style
2023-11-23 23:50:00 +01:00
sam80180
acb2988837
Do not hardcode server path on the device
...
The path can be retrieved from the classpath.
PR #4416 <https://github.com/Genymobile/scrcpy/pull/4416 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-11-23 23:39:40 +01:00
Romain Vimont
85a94dd4b5
Fix meson deprecated 'pkgconfig' to 'pkg-config'
...
When running ./release.sh:
> DEPRECATION: "pkgconfig" entry is deprecated and should be replaced by
> "pkg-config"
2023-11-23 23:39:40 +01:00
Romain Vimont
94031dfe97
Update documentation about video orientation
...
PR #4441 <https://github.com/Genymobile/scrcpy/pull/4441 >
2023-11-23 23:34:46 +01:00
Romain Vimont
b43a9e8e7a
Add --orientation
...
Add a shortcut to set both the display and record orientations.
PR #4441 <https://github.com/Genymobile/scrcpy/pull/4441 >
2023-11-23 23:34:46 +01:00
Romain Vimont
a9d6cb5837
Add --record-orientation
...
Add an option to store the orientation to apply in a recorded file.
Only rotations are supported (not flips).
PR #4441 <https://github.com/Genymobile/scrcpy/pull/4441 >
2023-11-23 23:34:46 +01:00
Romain Vimont
2f92686930
Pass --lock-video-orientation argument in degrees
...
For consistency with the new --display-orientation option, express the
--lock-video-orientation in degrees clockwise:
* --lock-video-orientation=0 -> --lock-video-orientation=0
* --lock-video-orientation=3 -> --lock-video-orientation=90
* --lock-video-orientation=2 -> --lock-video-orientation=180
* --lock-video-orientation=1 -> --lock-video-orientation=270
PR #4441 <https://github.com/Genymobile/scrcpy/pull/4441 >
2023-11-23 23:27:32 +01:00
Romain Vimont
bb88b60227
Add --display-orientation
...
Deprecate the option --rotation and introduce a new option
--display-orientation with the 8 possible orientations (0, 90, 180, 270,
flip0, flip90, flip180 and flip270).
New shortcuts MOD+Shift+(arrow) dynamically change the display
(horizontal or vertical) flip.
Fixes #1380 <https://github.com/Genymobile/scrcpy/issues/1380 >
Fixes #3819 <https://github.com/Genymobile/scrcpy/issues/3819 >
PR #4441 <https://github.com/Genymobile/scrcpy/pull/4441 >
2023-11-23 23:27:28 +01:00
Romain Vimont
25e33566f5
Mention turning off audio in camera documentation
2023-11-21 08:46:38 +01:00
Romain Vimont
9df92ebe37
Fix manpage style syntax
2023-11-20 14:05:54 +01:00
Romain Vimont
0801cf0627
Fix options alphabetical order
...
Renaming --display to --display-id broke the alphabetical order.
Refs 23e116064d
2023-11-20 14:03:51 +01:00
Romain Vimont
4658c0e5d2
Update record format error message
...
Recording now supports formats other than mp4 and mkv.
Refs e637feba51
2023-11-16 10:02:25 +01:00
Romain Vimont
45a073a333
Do not create Device instance for camera
...
The device instance manages the display and the injection of input
events. It is not necessary for camera capture.
2023-11-16 09:10:28 +01:00
Romain Vimont
7e3b935932
Recreate the display on rotation
...
On Android 14 (Pixel 8), a device rotation while the camera app was
running resulted in an incorrect capture.
Destroying and recreating the display fixes the issue.
2023-11-16 08:56:04 +01:00
Romain Vimont
abcb100597
Upgrade Android SDK to 34
2023-11-15 21:13:12 +01:00
Romain Vimont
e8801cc3c0
Upgrade AGP (8.1.3) and Gradle to 8.4
...
Android Gradle Plugin 8.1.3.
Gradle 8.4.
From now on, Java 17 is required.
2023-11-15 21:13:12 +01:00
Romain Vimont
86808e8114
Upgrade Android checkstyle to 10.12.5
...
Upgrade to the latest version.
2023-11-15 21:13:12 +01:00
Romain Vimont
15a3bad4ab
Log PTS fixing at debug level
...
Audio PTS are retrieved by AudioRecord.getTimestamp(), so they do not
necessarily exactly match the number of samples (this allows to take
drift and lag into account).
As a consequence, two consecutive timestamps in microseconds may
sometimes end up within the same millisecond, causing the warning. This
is particularly true for the Matroska muxer which uses a timebase of
1/1000 (1 ms precision).
Since this is "expected", lower the log level from warning to debug.
2023-11-15 21:06:53 +01:00
Romain Vimont
200488111e
Add support for RAW audio (WAV) recording
...
RAW audio forwarding was supported but not for recording.
Add support for recording a raw audio stream to a `.wav` file (and
`.mkv`).
2023-11-15 21:05:38 +01:00