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
Romain Vimont
32e692d5d2
Replace delay by deadline in timedwait()
...
The function sc_cond_timedwait() accepted a parameter representing the
max duration to wait, because it internally uses SDL_CondWaitTimeout().
Instead, accept a deadline, to be consistent with
pthread_cond_timedwait().
2021-07-14 14:22:32 +02:00
Romain Vimont
ec871dd3f5
Wrap tick API
...
This avoids to use the SDL timer API directly, and will allow to handle
generic ticks (possibly negative).
2021-07-14 14:22:32 +02:00
Romain Vimont
5524f378c8
Add missing error log
...
Log video buffer initialization failure in v4l2_sink.
2021-07-14 00:39:35 +02:00
Romain Vimont
4ed3aa3604
Move include fps_counter
...
The fps_counter is not used from video_buffer.
2021-07-14 00:35:10 +02:00
Romain Vimont
40cea1f677
Remove obsolete comment
...
Commit 2a94a2b119
removed video_buffer
callbacks, the comment is now meaningless.
2021-07-14 00:35:10 +02:00
Romain Vimont
099cba07f0
Rename queue to sc_queue
...
Add a scrcpy-specific prefix.
2021-07-14 00:35:10 +02:00
Romain Vimont
af8a21ed7c
Fix manpage formatting
2021-07-06 18:33:04 +02:00
Romain Vimont
5938e862a1
Fix --lock-video-orientation syntax in help
...
Commit f76fe2c0d4
fixed README and tests.
Fix command line help and manpage.
2021-07-06 18:32:40 +02:00
Romain Vimont
e9096e3e34
Remove unnecessary calls to av_packet_unref()
...
av_packet_free() already calls av_packet_unref().
2021-07-04 12:19:52 +02:00