Luiz Henrique Laurini
160e4759d8
Add support for the legacy uinput interface
2021-10-21 16:24:56 +02:00
Luiz Henrique Laurini
1b9ad0a5d8
Use LastErrorException for native error handling
2021-10-21 16:24:56 +02:00
Luiz Henrique Laurini
1a88f74269
Fix style violations
2021-10-21 16:24:56 +02:00
Luiz Henrique Laurini
a4aeb0a950
Fix no input working if uinput is not supported
2021-10-21 16:24:56 +02:00
Luiz Henrique Laurini
f202e69a31
Use jna.boot.library.path instd of LD_LIBRARY_PATH
2021-10-21 16:24:56 +02:00
Luiz Henrique Laurini
6feb8adfb0
Add --no-game-controller option
2021-10-21 16:24:51 +02:00
Luiz Henrique Laurini
9d50a9e3b4
Cleanup initialization
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
ecbbff452f
Move uinput stuff to UinputDevice
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
7a689b9474
Fix mistake when renaming things
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
f393304a8a
Fix naming scheme
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
326d7253af
Write tests for new messages
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
a066c28a1f
Avoid calls unavailable on API level 21
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
b5e450ce0c
Fix checkstyle errors unrelated to naming scheme
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
54cdd8222f
Remove some unused imports
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
bade53d224
Fix errors caused by improperly done rebase
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
a2886ad94f
Fix axes not working
...
Also do some minor refactoring.
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
12777f5812
Use uinput to emulate game controllers
2021-10-21 16:23:23 +02:00
Luiz Henrique Laurini
0ba031b183
Read controller and send control_msgs to device
2021-10-21 16:23:23 +02:00
zhongkaizhu
1d49bf89ba
Fix "Could not found v4l2 muxer"
...
The AVOutputFormat name is a comma-separated list. In theory, possible
names for V4L2 are:
- "video4linux2,v4l2"
- "v4l2,video4linux2"
- "v4l2"
- "video4linux2"
To find the muxer in all cases, we must request exactly one muxer name
at a time.
PR #2718 <https://github.com/Genymobile/scrcpy/pull/2718 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-10-21 08:42:51 +02:00
Romain Vimont
07d75eb336
Simplify net_send_all()
...
There is no need to declare the variable before the loop.
2021-10-17 16:21:37 +02:00
Romain Vimont
8df42cec82
Fix workarounds for Meizu
...
Workarounds.fillAppInfo() is necessary for Meizu devices even before the
first call to internalStreamScreen(), but it is harmful on other
devices (#940 ).
Therefore, simplify the workaround, by calling fillAppInfo() only if
Build.BRAND equals "meizu" (case insensitive).
Fixes #240 <https://github.com/Genymobile/scrcpy/issues/240 > (again)
Fixes #2656 <https://github.com/Genymobile/scrcpy/issues/2656 >
2021-09-22 15:33:17 +02:00
Romain Vimont
31131039bb
Add missing includes
...
Refs #2616 <https://github.com/Genymobile/scrcpy/issues/2616 >
2021-09-20 18:27:37 +02:00
Romain Vimont
fa100b814b
Add support for expandNotificationsPanel() variant
...
Some custom vendor ROM added an int as a parameter.
Fixes #2551 <https://github.com/Genymobile/scrcpy/issues/2551 >
2021-09-11 10:46:25 +02:00
Romain Vimont
069fe93f74
Update links to v1.19
2021-09-10 22:01:18 +02:00
Romain Vimont
228e2c15f4
Bump version to 1.19
2021-09-10 21:40:08 +02:00
Romain Vimont
9a8f06af65
Merge branch 'master' into dev
2021-09-10 20:26:17 +02:00
Romain Vimont
1d1c9f36f4
Retrieve correct error messages on Windows
...
For sockets functions, Windows does not store error codes in errno, so
perror() does not print any error. Use WSAGetLastError() instead.
Refs #2624 <https://github.com/Genymobile/scrcpy/issues/2624 >
2021-09-09 23:03:35 +02:00
Romain Vimont
4d6dd9d281
Compute scrcpy directory manually
...
The function dirname() does not work correctly everywhere with non-ASCII
characters.
Fixes #2619 <https://github.com/Genymobile/scrcpy/issues/2619 >
2021-09-09 12:51:18 +02:00
a1346054
b5e98db635
Fix typo in manpage
...
PR #2606 <https://github.com/Genymobile/scrcpy/pull/2606 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-09-07 21:41:40 +02:00
Romain Vimont
116acc8d25
Use SOURCE_MOUSE for scroll events
...
This has no practical impact (AFAIK), but a scroll events should come
from a mouse.
Refs #2602 <https://github.com/Genymobile/scrcpy/issues/2602 >
2021-08-28 23:14:56 +02:00
nkh0472
3a39bacb76
Upgrade SDL (2.0.16) for Windows
...
Include the latest version of SDL in Windows releases.
PR #2589 <https://github.com/Genymobile/scrcpy/pull/2589 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-08-28 14:20:17 +02:00
nkh0472
3fdc89ad42
Upgrade platform-tools (31.0.3) for Windows
...
Include the latest version of adb in Windows releases.
PR #2588 <https://github.com/Genymobile/scrcpy/pull/2588 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-08-28 14:12:00 +02:00
Romain Vimont
3761f56c28
Declare callbacks static
...
It was a typo, "static" was missing.
2021-08-26 12:26:44 +02:00
horizon86
c96f5c70e9
Add Simplified Chinese translation of FAQ
...
PR #2568 <https://github.com/Genymobile/scrcpy/pull/2568 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-08-24 19:29:02 +02:00
Romain Vimont
d6aaa5bf9a
Add a FAQ section for Wayland support
...
The video driver might need to be explicitly set to wayland.
Refs #2554 <https://github.com/Genymobile/scrcpy/issues/2554 >
Refs #2559 <https://github.com/Genymobile/scrcpy/issues/2559 >
2021-08-13 12:40:22 +02:00
kosantosbik
4ab3e89c29
Add README file in Turkish
...
PR #2514 <https://github.com/Genymobile/scrcpy/pull/2514 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-08-11 15:42:31 +02:00
Hyperterminal Byte
4bc78244b9
Fix OBS project ref URL
...
PR #2545 <https://github.com/Genymobile/scrcpy/pull/2545 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-08-11 15:29:17 +02:00
Stefan Huber
ea233d811d
Fix typo in DEVELOP.md
...
PR #2540 <https://github.com/Genymobile/scrcpy/pull/2540 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-08-11 15:26:32 +02:00
Romain Vimont
f78608ab29
Fix type for assignment
...
The functions net_send_all() and net_recv_all() return ssize_t, not int.
2021-07-15 18:16:56 +02:00
Romain Vimont
6f03022646
Fix net_send_all()
...
On partial writes, the final result was the number of bytes written by
the last send() rather than the total.
2021-07-15 18:16:26 +02:00
Romain Vimont
daf90d33d5
Fix code style
...
Make the code fit into 80 columns.
2021-07-15 18:07:39 +02:00
Romain Vimont
0ae10f2b39
Improve slope estimation on start
...
The first frames are typically received and decoded with more delay than
the others, causing a wrong slope estimation on start.
To compensate, assume an initial slope of 1, then progressively use the
estimated slope.
2021-07-14 14:54:22 +02:00
Romain Vimont
4c4d02295c
Add buffering debugging tools
...
Output buffering and clock logs by disabling a compilation flag.
2021-07-14 14:54:22 +02:00
Romain Vimont
2f03141e9f
Add clock tests
...
The clock rolling sum is not trivial. Test it.
2021-07-14 14:54:22 +02:00
Romain Vimont
3397720330
Add buffering command line options
...
Add --display-buffer and --v4l2-buffer options to configure buffering
time.
2021-07-14 14:54:22 +02:00
Romain Vimont
79278961b9
Implement buffering
...
To minimize latency (at the cost of jitter), scrcpy always displays a
frame as soon as it available, without waiting.
However, when recording (--record), it still writes the captured
timestamps to the output file, so that the recorded file can be played
correctly without jitter.
Some real-time use cases might benefit from adding a small latency to
compensate for jitter too. For example, few tens of seconds of latency
for live-streaming are not important, but jitter is noticeable.
Therefore, implement a buffering mechanism (disabled by default) to add
a configurable latency delay.
PR #2417 <https://github.com/Genymobile/scrcpy/issues/2417 >
2021-07-14 14:27:33 +02:00
Romain Vimont
408a301201
Notify new frames via callbacks
...
Currently, a frame is available to the consumer as soon as it is pushed
by the producer (which can detect if the previous frame is skipped).
Notify the new frames (and frame skipped) via callbacks instead.
This paves the way to add (optional) buffering, which will introduce a
delay between the time when the frame is produced and the time it is
available to be consumed.
2021-07-14 14:22:32 +02:00
Romain Vimont
4d8bcfc68a
Extract current video_buffer to frame_buffer
...
The current video buffer only stores one pending frame.
In order to add a new buffering feature, move this part to a separate
"frame buffer". Keep the video_buffer, which currently delegates all its
calls to the frame_buffer.
2021-07-14 14:22:32 +02:00
Romain Vimont
336248df08
Rename video_buffer to sc_video_buffer
...
Add a scrcpy-specific prefix.
2021-07-14 14:22:32 +02:00
Romain Vimont
28bce48d47
Relax v4l2_sink lock constraints
...
To fix a data race, commit 5caeab5f6d
called video_buffer_push() and video_buffer_consume() under the
v4l2_sink lock.
Instead, use the previous_skipped indication (initialized with video
buffer locked) to lock only for protecting the has_frame flag.
This enables the possibility for the video_buffer to notify new frames
via callbacks without lock inversion issues.
2021-07-14 14:22:32 +02:00