Romain Vimont
cd2894570d
Allocate AVPacket for v4l2_sink
...
From FFmpeg/doc/APIchanges:
2021-03-17 - f7db77bd87 - lavc 58.133.100 - codec.h
Deprecated av_init_packet(). Once removed, sizeof(AVPacket) will
no longer be a part of the public ABI.
Refs #2302 <https://github.com/Genymobile/scrcpy/issues/2302 >
2021-06-14 09:07:49 +02:00
Romain Vimont
4af317d40d
Allocate AVPacket for recorder
...
From FFmpeg/doc/APIchanges:
2021-03-17 - f7db77bd87 - lavc 58.133.100 - codec.h
Deprecated av_init_packet(). Once removed, sizeof(AVPacket) will
no longer be a part of the public ABI.
Refs #2302 <https://github.com/Genymobile/scrcpy/issues/2302 >
2021-06-14 09:07:49 +02:00
Romain Vimont
318b6a572e
Allocate AVPacket for local stream packet
...
From FFmpeg/doc/APIchanges:
2021-03-17 - f7db77bd87 - lavc 58.133.100 - codec.h
Deprecated av_init_packet(). Once removed, sizeof(AVPacket) will
no longer be a part of the public ABI.
Refs #2302 <https://github.com/Genymobile/scrcpy/issues/2302 >
2021-06-14 09:07:49 +02:00
Romain Vimont
e8b053ad2f
Allocate AVPacket for stream->pending
...
From FFmpeg/doc/APIchanges:
2021-03-17 - f7db77bd87 - lavc 58.133.100 - codec.h
Deprecated av_init_packet(). Once removed, sizeof(AVPacket) will
no longer be a part of the public ABI.
Remove the has_pending boolean, which can be replaced by:
stream->pending != NULL
Refs #2302 <https://github.com/Genymobile/scrcpy/issues/2302 >
2021-06-14 09:07:49 +02:00
Romain Vimont
a5d71eee45
Clarify --no-display usage with v4l2
2021-06-14 08:16:05 +02:00
Romain Vimont
af228706f1
Fix compatibility with old FFmpeg
...
V4L2 sink used a "url" field format AVFormatContext which has been
introduced in lavf 58.7.100.
Fixes #2382 <https://github.com/Genymobile/scrcpy/issues/2382 >
Refs <ea3672b7d6
>
Refs <fa8308d3d4
>
2021-06-13 19:20:57 +02:00
Romain Vimont
f76fe2c0d4
Fix --lock-video-orientation syntax
...
The argument for option --lock-video-orientation has been made optional
by 5af9d0ee0f
.
With getopt_long(), contrary to mandatory arguments, optional arguments
must be given with a '=':
--lock-video-orientation 2 # wrong, parse error
--lock-video-orientation=2 # correct
2021-06-11 18:40:12 +02:00
Romain Vimont
16a63e0917
Use non-secure display for Android 12 preview
...
Android 12 preview identifies as Android 11, but its codename is "S".
Refs #2129 <https://github.com/Genymobile/scrcpy/issues/2129 >
2021-06-11 10:02:52 +02:00
Romain Vimont
f7533e8896
Use non-secure display for Android >= 12
...
Since Android 12, secure displays could not be created with shell
permissions anymore.
Refs commit 1fdde490fd
Fixes #2129 <https://github.com/Genymobile/scrcpy/issues/2129 >
2021-06-11 09:37:29 +02:00
Romain Vimont
969bfd4374
Serialize clean-up configuration
...
This avoids to pass each option as individual parameter and parse them
manually (it's still "manual" in the Parcelable implementation).
Refs #824 <https://github.com/Genymobile/scrcpy/pull/824#issuecomment-780319422 >
Reviewed-by: Yu-Chen Lin <npes87184@gmail.com>
2021-06-11 09:33:29 +02:00
Romain Vimont
506f918fb7
Group components into struct scrcpy
...
This avoids to refer to many structs globally.
2021-05-28 21:29:14 +02:00
Romain Vimont
6fd7e89da1
Explicitly initialize decoder sink_count
...
The zero-initialization relied on the fact that the decoder instance is
static.
2021-05-28 21:23:18 +02:00
Romain Vimont
4c31911df2
Pass serial within struct server_params
...
This was the only option passed separately.
2021-05-28 21:21:54 +02:00
Secreto31126
d3d955f67b
Translate README.md into Spanish
...
PR #2318 <https://github.com/Genymobile/scrcpy/pull/2318 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-05-28 10:19:17 +02:00
Alberto Pasqualetto
8121b0b7e7
FAQ in Italian
...
PR #2316 <https://github.com/Genymobile/scrcpy/pull/2316 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-05-28 10:19:17 +02:00
Alberto Pasqualetto
2e9d520080
README in Italian
...
PR #2316 <https://github.com/Genymobile/scrcpy/pull/2316 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-05-28 10:18:49 +02:00
Romain Vimont
1b7c9b3e1c
Reference translations from FAQ.md
2021-05-28 10:18:36 +02:00
Romain Vimont
9bed8cf3f4
Fix syntax highlighting in README
2021-05-28 10:06:26 +02:00
Romain Vimont
6adc97198b
Provide device info directly on server connection
...
This avoids to retrieve them in a separate step.
2021-05-17 08:52:08 +02:00
Romain Vimont
6a2cd089a1
Initialize input manager dynamically
...
The input manager was partially initialized statically, but a call to
input_manager_init() was needed anyway, so initialize all the fields
from the "constructor".
This is consistent with the initialization of the other structs.
2021-05-17 08:48:51 +02:00
Romain Vimont
dcee7c0f7f
Factorize screen_init() error management
2021-05-16 18:48:04 +02:00
Romain Vimont
e604e8a752
Move fps_counter to screen
...
The FPS counter specifically count frames from the screen video buffer,
so it is specific to the screen.
2021-05-16 18:47:16 +02:00
Romain Vimont
f19c455110
Fix leak on error
...
Destroy video buffer if screen window creation failed.
2021-05-16 18:46:47 +02:00
Romain Vimont
83116fc199
Notify end-of-stream via callback
...
Do not send a SDL event directly, to make stream independent of SDL.
2021-05-16 15:48:07 +02:00
Alberto Pasqualetto
72081a241b
Fix visualization of comment in code block
...
PR #2315 <https://github.com/Genymobile/scrcpy/pull/2315 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-05-15 18:58:04 +02:00
LYK
42b3d1e66e
Reformat README.ko.md
...
PR #2311 <https://github.com/Genymobile/scrcpy/pull/2311 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-05-15 18:56:45 +02:00
Romain Vimont
1e64f0f931
Use ARRAY_LEN() macro
2021-05-09 11:06:02 +02:00
Romain Vimont
8fb5715740
Add libavdevice-dev in BUILD instructions
...
On Linux, scrcpy now depends on libavdevice for v4l2.
2021-05-09 11:01:16 +02:00
Romain Vimont
f062dfd30b
Merge branch 'master' into dev
2021-05-09 11:00:30 +02:00
Haren S
644a5ef14a
Add MacPorts documentation
...
PR #2299 <https://github.com/Genymobile/scrcpy/pull/2299 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-05-09 10:55:59 +02:00
Romain Vimont
1b9dcce23c
Fix double-free on error
...
On error, server->serial was freed twice: immediately and in
server_destroy().
Refs #2292 <https://github.com/Genymobile/scrcpy/issues/2292#issuecomment-831424820 >
2021-05-03 20:43:45 +02:00
Romain Vimont
233f8e6cc4
Rename keycode injection method
...
Make it explicit that it injects both "press" and "release" events.
2021-04-30 23:07:37 +02:00
Romain Vimont
9a7d351d67
Simplify non-static injectEvent() implementation
...
Just call the static version (having a displayId) from the non-static
version (using the displayId field).
2021-04-30 23:07:37 +02:00
Romain Vimont
d00ee640c0
Simplify Device.java
...
Remove useless intermediate method with a "mode" parameter (it's always
called with the same mode).
This also avoids the need for a specific injectEventOnDisplay() method,
since it does not conflict with another injectEvent() method anymore.
2021-04-30 23:07:29 +02:00
Romain Vimont
ae6ec7a194
Unref decoder AVFrame immediately
...
The frame can be unref immediately after it is pushed to the frame
sinks.
It was not really a memory leak because the frame was unref every time
by avcodec_receive_frame() (and freed on close), but a reference was
unnecessarily kept for too long.
2021-04-26 18:05:43 +02:00
Romain Vimont
84f17fdeab
Fix v4l2 AVPacket memory leak on error
...
Unref v4l2 AVPacket even if writing failed.
2021-04-26 18:05:11 +02:00
Romain Vimont
1cde68a1fa
Fix v4l2 AVFrame memory leak
...
Unref frame immediately once encoded.
Fixes #2279 <https://github.com/Genymobile/scrcpy/pull/2279 >
2021-04-26 18:04:51 +02:00
Romain Vimont
45e7280148
Rename --v4l2_sink to --v4l2-sink
...
This was a rebase issue, the previous version in #2268 was correct.
Refs #2268 <https://github.com/Genymobile/scrcpy/pull/2268 >
2021-04-26 17:59:35 +02:00
Romain Vimont
41a0383d7c
Document v4l2 sink in README
2021-04-25 15:00:56 +02:00
Marco Martinelli
d39161f753
Add support for v4l2loopback
...
It allows to send the video stream to /dev/videoN, so that it can be
captured (like a webcam) by any v4l2-capable tool.
PR #2232 <https://github.com/Genymobile/scrcpy/pull/2232 >
PR #2233 <https://github.com/Genymobile/scrcpy/pull/2233 >
PR #2268 <https://github.com/Genymobile/scrcpy/pull/2268 >
Co-authored-by: Romain Vimont <rom@rom1v.com>
2021-04-25 14:59:10 +02:00
Romain Vimont
5af9d0ee0f
Make --lock-video-orientation argument optional
...
If the option is set without argument, lock the initial device
orientation (as if the value "initial" was passed).
2021-04-25 14:55:54 +02:00
Romain Vimont
fd0dc6c0cd
Add --lock-video-orientation=initial
...
Add a new mode to the --lock-video-orientation option, to lock the
initial orientation of the device.
This avoids to pass an explicit value (0, 1, 2 or 3) and think about
which is the right one.
2021-04-25 14:55:54 +02:00
Romain Vimont
151bc16644
Use strlist_contains() to find a muxer
...
The AVOutputFormat name is a string list: it contains names separated by
',' (possibly only one).
2021-04-25 14:55:19 +02:00
Romain Vimont
ffc00210e9
Add strlist_contains()
...
Add a function to know if a string list, using some separator, contains
a specific string.
2021-04-25 14:38:42 +02:00
Romain Vimont
243854a408
Fix recorder comment
2021-04-25 14:38:42 +02:00
Romain Vimont
8b90dc61b9
Handle EAGAIN on send_packet in decoder
...
EAGAIN was only handled on receive_frame.
In practice, it should not be necessary, since one packet always
contains one frame. But just in case.
2021-04-25 14:38:42 +02:00
Romain Vimont
2a5dfc1c17
Handle errors using gotos in recorder_open()
...
There are many initializations in recorder_open(). Handle RAII-like
deinitialization using gotos.
2021-04-25 14:38:42 +02:00
Romain Vimont
e3fccc5a5e
Initialize recorder fields on open
...
Only initialize ops and parameters copy from recorder_init(). It was
inconsistent to initialize some fields from _init() and some others from
_open().
2021-04-25 14:38:42 +02:00
Romain Vimont
0541f1bff2
Hide the window immediately on close
...
The screen may not be destroyed immediately on close to avoid undefined
behavior, because it may still receive events from the decoder.
But the visual window must still be closed immediately.
2021-04-25 14:38:42 +02:00
Romain Vimont
0272e6dc77
Assert screen closed on destroy
...
The destruction order is important, but tricky, because the screen is
open/close by the decoder, but destroyed by scrcpy.c on the main thread.
Add assertions to guarantee that the screen is not destroyed before
being closed.
2021-04-25 14:38:42 +02:00