Romain Vimont
22bf0c19d6
Rename --output-file to --record
...
To record the screen to a local file:
scrcpy --record file.mp4
2018-11-11 21:37:31 +01:00
Romain Vimont
70579dc709
Wrap receiver state into separate struct
...
For readability, wrap the state of the receiver in a separate struct
receiver_state.
2018-11-11 21:37:31 +01:00
Romain Vimont
e562837c0b
Avoid partial header reads
...
Use net_recv_all() to avoid partial reads for the "meta" header (this
would break the whole stream).
2018-11-11 21:37:31 +01:00
Romain Vimont
ebe998cf78
Move buffer reader functions to buffer_util.h
2018-11-11 21:37:31 +01:00
Romain Vimont
b98eb7d0fa
Support AVStream.codec for old FFmpeg versions
...
AVStream.codec has been deprecated in favor of AVStream.codecpar.
Due to the FFmpeg/Libav split, this happened in two separate versions:
- 57.33.100 for FFmpeg
- 57.5.0 for Libav
2018-11-11 21:37:31 +01:00
yuchenlin
e361b49b4a
recorder: use av_oformat_next to support older FFmpeg
...
Signed-off-by: yuchenlin <npes87184@gmail.com>
2018-11-11 21:37:31 +01:00
Romain Vimont
d0e090e1f9
Reenable custom SDL signal handlers
...
This partially reverts commit f00c6c5b13
.
On Ctrl+C, we need to execute cleanup code. For instance, if recording
is enabled, we need to write MP4 file trailer on exit.
Custom SDL signal handlers were disabled because it leaded to process
hanging on Ctrl+C during network calls on initialization, but now it
seems to work correctly, the network calls return immediately on signal.
2018-11-11 21:37:31 +01:00
Romain Vimont
475912a39c
Do not transmit MediaCodec flags
...
Since PTS handling has been fixed, the recorder do not associate a PTS
to a wrong frame anymore, so PTS of "configuration packets" (which never
produce a frame), are never read by the recorder. Therefore, there is no
need to ignore them explicitly, so we can remove the MediaCodec flags
completely.
2018-11-11 21:37:31 +01:00
Romain Vimont
27e8a9a79d
Assign PTS to the right frame
...
The PTS was read from the socket and set as the current one even before
the frame was consumed, so it could be assigned to the previous frame
"in advance".
Store the PTS for the current frame and the last PTS read from the
packet header of the next frame in separate fields.
As a side-effect, this fixes the warning on quit:
> Application provided invalid, non monotonically increasing dts to
> muxer in stream 0: 17164020 >= 17164020
2018-11-11 21:37:31 +01:00
Romain Vimont
61db575861
Decode and push frame before recording
...
Handle display before recording, to reduce latency.
2018-11-11 21:37:31 +01:00
Romain Vimont
2cd99e7205
Only set valid PTS/DTS
...
When the PTS is valid, set both PTS and DTS to avoid FFmpeg warnings.
Since configuration packets have no PTS, do not record these packets.
2018-11-11 21:37:26 +01:00
Romain Vimont
27686e9361
Add recorder
...
Implement recording in a separate "class".
2018-11-11 16:30:23 +01:00
Ivan Gorinov
d706c5df39
Enable video output file, with pts set by server
2018-11-11 16:30:23 +01:00
Romain Vimont
cb3cf801c8
Extract bit operations to buffer_util.h
...
Move util functions to a reusable separate header.
2018-11-11 01:01:56 +01:00
Romain Vimont
9160d465ec
Add feature test macro to declare kill()
...
Avoid the following warning on some systems:
> warning: implicit declaration of function 'kill'
> [-Wimplicit-function-declaration]
2018-11-10 16:16:08 +01:00
Romain Vimont
5c739874a4
Fix memory leak on error
...
On decode error, unref the packet.
2018-11-09 16:10:44 +01:00
Romain Vimont
d061c30965
Replace Ctrl by Meta for volume shortcuts on MacOS
...
Ctrl+UP and Ctrl+DOWN are already used by the window manager on MacOS.
Use Cmd key instead (like on VLC).
2018-11-01 16:19:07 +01:00
Romain Vimont
5bf1261364
Refactor to support Meta in shortcuts
...
Move the Ctrl and Meta key down checks to each shortcut individually, so
that we can add a shortcut involving Meta.
2018-11-01 16:19:07 +01:00
yuchenlin
96056e3213
input_manager: fix potential memory leak on text
...
Fix potential memory leak when controller_push_event failed.
Signed-off-by: yuchenlin <npes87184@gmail.com>
2018-10-27 20:07:22 +08:00
Romain Vimont
0b92b93358
Capture Alt and Meta keys
...
Alt and Meta keys should not be forwarded to the device. For now, they
are not used for shortcuts, but they could be.
2018-10-24 19:08:36 +02:00
Romain Vimont
c20245630e
Factorize Windows command building
...
Extract command line building to a separate method.
2018-10-21 18:57:06 +02:00
Romain Vimont
8875955921
Support paths containing spaces on Windows
...
Quote the arguments of "adb push" to support paths which contain spaces
on Windows.
Fixes <https://github.com/Genymobile/scrcpy/issues/288 >.
2018-10-04 21:01:23 +02:00
Romain Vimont
ff4430b2a3
Declare fun(void) functions with no parameters
...
This is not C++.
2018-10-04 17:04:20 +02:00
Romain Vimont
24d107d017
Bump version to 1.4
2018-10-03 23:03:27 +02:00
Romain Vimont
411aa4fcfd
Handle alpha and space chars as raw events
...
To handle special chars, text is handled as text input instead of key
events. However, this breaks the separation of DOWN and UP key events.
As a compromise, send letters and space as key events, to preserve
original DOWN/UP events, but send other text input events as text, to be
able to send "special" characters.
Fixes <https://github.com/Genymobile/scrcpy/issues/87 >.
Suggested-by: pete1414
Suggested-by: King-Slide <kingslide@gmail.com>
2018-10-03 22:07:09 +02:00
yuchenlin
140b1ef6a5
prevent closing console right after process error in windows
...
Signed-off-by: yuchenlin <npes87184@gmail.com>
2018-09-14 20:34:59 +08:00
Romain Vimont
eca99d5af7
Fix header guard name
2018-09-13 16:27:19 +02:00
yuchenlin
27bed948d4
Use specific error for missing binary on Windows
...
Signed-off-by: yuchenlin <npes87184@gmail.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2018-09-09 15:28:25 +02:00
Philipp Sandhaus
af9808cf02
Add option to start in fullscreen
...
Signed-off-by: Romain Vimont <rom@rom1v.com>
2018-09-04 18:51:32 +02:00
Romain Vimont
55d33ddd5f
Do not handle system-specific values in command.c
...
The common command.c handled process errors from system-specific int
values (errno).
Rather, expose a new enum process_result to handle error cause in a
generic way.
2018-09-04 08:57:07 +02:00
yuchenlin
6d2d803003
Notify adb missing
...
There are many user who encounters missing adb.
To stop things happens again, we check it and show
sexy response to user.
Signed-off-by: yuchenlin <npes87184@gmail.com>
2018-09-04 08:46:17 +02:00
Romain Vimont
89e0203682
Add missing include for lock_util.h
...
lock_util.c did not include lock_util.h. This was catched by the gcc
option -Wmissing-prototypes.
2018-08-15 19:30:02 +02:00
Romain Vimont
536b31829a
Separate multi-words filenames by '_'
...
Rename foobar.ext to foo_bar.ext.
<https://github.com/Genymobile/scrcpy/pull/226#discussion_r209454865 >
2018-08-15 19:30:01 +02:00
Romain Vimont
6581f9feb9
Make request_queue functions static
...
These functions are local to file_handler.c.
2018-08-15 17:19:32 +02:00
Romain Vimont
359685b1db
Simplify SDL_assert() calls
...
SDL_assert() already prevents "unused variable" warnings.
2018-08-15 17:19:32 +02:00
Romain Vimont
4527be4cde
Add missing include config.h
...
When config.h is not included, BUILD_DEBUG is not set.
2018-08-15 17:19:32 +02:00
npes87184
66f45f9dae
Support drag&drop a file to transfer it to device
...
Signed-off-by: npes87184 <npes87184@gmail.com>
2018-08-15 17:12:10 +02:00
npes87184
aa97eed24b
installer -> file_handler
...
Signed-off-by: npes87184 <npes87184@gmail.com>
2018-08-15 17:11:41 +02:00
Romain Vimont
2daeb1fd5f
Reset current installer process
...
The current_process field was never reset after an installation is
complete. As a consequence, installer_stop() attempted to terminate it,
leading to a warning, at best.
2018-08-15 17:10:07 +02:00
Grief
cde0b3d248
Return non-zero value on connection loss
...
Make scrscpy to return 0 exit code only in case when the user closes its
app, otherwise, i.e. in case of connection loss, return 1.
2018-08-15 14:20:45 +02:00
Romain Vimont
6fa209fa82
Remove AINPUT_SOURCE_ANY value
...
In the Android input header file, an enum has a value taking more than
31 bits, leading to the following warning:
ISO C restricts enumerator values to range of ‘int’
Since we don't use it, remove it.
2018-08-12 15:35:29 +02:00
Romain Vimont
b37c0f6cd6
Replace Uint32 by int to fix warnings in tinyxpm
2018-08-12 15:35:25 +02:00
npes87184
a3ab92226d
Destroy mutex if strdup failed
...
Signed-off-by: npes87184 <npes87184@gmail.com>
2018-08-12 14:57:36 +02:00
npes87184
f8ef4f1cf7
remove redundant semicolon
...
Signed-off-by: npes87184 <npes87184@gmail.com>
2018-08-11 21:16:36 +08:00
Romain Vimont
7e42358a7b
Bump version to 1.3
2018-08-09 19:14:17 +02:00
Romain Vimont
caa9e30004
Add crop feature
...
Add an option to crop the screen on the server. This allows to mirror
only part of the device screen.
2018-08-09 19:12:27 +02:00
Romain Vimont
8793c104ee
Increase "adb forward" connection attempts
...
5 seconds might not be sufficient:
<https://github.com/Genymobile/scrcpy/issues/213 >
Increase to 10 seconds (it does not harm).
2018-08-09 18:22:42 +02:00
Romain Vimont
fca806e095
Do not call deprecated av_register_all()
...
av_register_all() is deprecated in FFmpeg since this commit:
<http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=0694d8702421e7aff1340038559c438b61bb30dd >
It is now useless to call it:
<https://ffmpeg.org/pipermail/ffmpeg-devel/2018-February/225051.html >
Fixes <https://github.com/Genymobile/scrcpy/issues/203 >.
2018-08-09 18:18:22 +02:00
Romain Vimont
49b2e63d13
Forward repeated volume events
...
Send repeated events when holding volume up/down shortcuts.
2018-06-24 21:51:54 +02:00
Romain Vimont
c12c64ed41
Send separate DOWN/UP key events
...
Shortcuts generated instant DOWN/UP key events. Instead, generate DOWN
event on Ctrl+key down and UP event on Ctrl+key up.
Fixes <https://github.com/Genymobile/scrcpy/issues/166 >.
2018-06-24 21:50:53 +02:00