- 15 9月, 2019 1 次提交
-
-
由 Romain Vimont 提交于
The filename gave no hint about what was converted.
-
- 02 8月, 2019 1 次提交
-
-
由 Romain Vimont 提交于
We need several FIFO queues (a queue of packets, a queue of messages, etc.). Some of them are implemented using cbuf, a generic circular buffer. But for recording, we need to store the packets in an unbounded queue until they are written, so the queue was implemented manually. Create a generic implementation (using macros) to avoid reimplementing it every time.
-
- 11 6月, 2019 3 次提交
-
-
由 Romain Vimont 提交于
In portable builds, scrcpy-server.jar was supposed to be present in the current directory, so in practice it worked only if scrcpy was launched from its own directory. Instead, find the absolute path of the executable and build a suitable path to use scrcpy-server.jar from the same directory.
-
由 Romain Vimont 提交于
To create a portable build (with scrcpy-server.jar accessible from the scrcpy directory), replace OVERRIDE_SERVER_PATH by a simple compilation flag: PORTABLE. This paves the way to use more complex rules to determine the path of scrcpy-server.jar in portable builds.
-
由 Romain Vimont 提交于
The full path of scrcpy-server.jar was partially configured from meson.build then concatenated by C code. Instead, directly write the path in C.
-
- 07 6月, 2019 1 次提交
-
-
由 Romain Vimont 提交于
They are just tiny wrappers.
-
- 06 6月, 2019 1 次提交
-
-
由 Romain Vimont 提交于
Replace the compilation flag SKIP_FRAMES by a runtime flag to force rendering of expired frames. By default, the expired frames are skipped.
-
- 31 5月, 2019 7 次提交
-
-
由 Romain Vimont 提交于
After the recent refactorings, a "control event" is not necessarily an "event" (it may be a "command"). Similarly, the unique "device event" used to send the device clipboard content is more a "reponse" to the request from the client than an "event". Rename both to "message", and rename the message types to better describe their intent.
-
由 Romain Vimont 提交于
Create a separate component to handle device events, managed by the controller.
-
由 Romain Vimont 提交于
Add the first device event, used to forward the device clipboard to the computer.
-
由 Romain Vimont 提交于
This will help to avoid truncating a UTF-8 string in the middle of a code point, producing an invalid UTF-8 result.
-
由 Romain Vimont 提交于
Replace the control_event_queue implementation by cbuf.
-
由 Romain Vimont 提交于
Add a circular buffer implementation, to factorize multiple specific queues implementation.
-
由 Romain Vimont 提交于
-
- 03 3月, 2019 1 次提交
-
-
由 Romain Vimont 提交于
The decoder initially read from the socket, decoded the video and sent the decoded frames to the screen: +---------+ +----------+ socket ---> | decoder | ---> | screen | +---------+ +----------+ The design was simple, but the decoder had several responsabilities. Then we added the recording feature, so we added a recorder, which reused the packets received from the socket managed by the decoder: +----------+ ---> | screen | +---------+ / +----------+ socket ---> | decoder | ---- +---------+ \ +----------+ ---> | recorder | +----------+ This lack of separation of concerns now have concrete implications: we could not (properly) disable the decoder/display to only record the video. Therefore, split the decoder to extract the stream: +----------+ +----------+ ---> | decoder | ---> | screen | +---------+ / +----------+ +----------+ socket ---> | stream | ---- +---------+ \ +----------+ ---> | recorder | +----------+ This will allow to record the stream without decoding the video.
-
- 02 3月, 2019 1 次提交
-
-
由 Romain Vimont 提交于
It better describes the purpose of the structure.
-
- 12 11月, 2018 2 次提交
-
-
由 Romain Vimont 提交于
Make meson aware of the project version, so that it does not print: Project version: undefined
-
由 Pierre Gordon 提交于
Signed-off-by: NRomain Vimont <rom@rom1v.com>
-
- 11 11月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
Implement recording in a separate "class".
-
- 04 10月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
-
- 16 8月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
Rename foobar.ext to foo_bar.ext. <https://github.com/Genymobile/scrcpy/pull/226#discussion_r209454865>
-
- 15 8月, 2018 1 次提交
-
-
由 npes87184 提交于
Signed-off-by: Nnpes87184 <npes87184@gmail.com>
-
- 10 8月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
-
- 06 6月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
Meson decided to crossbuild for Windows as soon as meson.is_cross_build() returned true. This made non-Windows crossbuilds fail. Instead, add an explicit option "crossbuild_windows". Fixes <https://github.com/Genymobile/scrcpy/issues/165>.
-
- 29 5月, 2018 5 次提交
-
-
由 Romain Vimont 提交于
-
由 Romain Vimont 提交于
On Windows, display the output of external commands (adb) when a console is available.
-
由 Romain Vimont 提交于
On Windows, an application is either console or gui, it cannot be both. Scrcpy should be both: it outputs important information to console, but we still want to be able to ignore the console and launch it without a visible cmd.exe window. Therefore, build two binaries: - scrcpy.exe - scrcpy-noconsole.exe
-
由 Romain Vimont 提交于
Build the Windows binary from mingw on Linux, using the official prebuilt binaries for ffmpeg, SDL2 and adb. MSYS2 and all its packaged dll are not necessary anymore.
-
-
- 21 3月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
All headers and sources are in src/. To avoid using relative includes from subdirectories ("../../"), include the source root directory.
-
- 14 3月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
-
- 08 3月, 2018 3 次提交
-
-
由 Romain Vimont 提交于
-
由 Romain Vimont 提交于
The High DPI support is enabled by default, so that the renderer use the full definition of High DPI screens. However, there are still mouse coordinates problems on some MacOS having High DPI support (but not all), so expose a way to disable it.
-
由 Romain Vimont 提交于
Set the default video bitrate to 8Mbps. This greatly increase quality on fast motion, without negative side effects.
-
- 16 2月, 2018 2 次提交
-
-
由 Romain Vimont 提交于
The server is currently a JAR, but it may ba an APK or a DEX, so the variable name should not contain the type. Rename the environment variable, the Meson options and the C definitions.
-
由 Romain Vimont 提交于
SDL_net is not very suitable for scrcpy. For example, SDLNet_TCP_Accept() is non-blocking, so we have to wrap it by calling many SDL_Net-specific functions to make it blocking. But above all, SDLNet_TCP_Open() is a server socket only when no IP is provided; otherwise, it's a client socket. Therefore, it is not possible to create a server socket bound to localhost, so it accepts connections from anywhere. This is a problem for scrcpy, because on start, the application listens for nearly 1 second until it accepts the first connection, supposedly from the device. If someone on the local network manages to connect to the server socket first, then they can stream arbitrary H.264 video. This may be troublesome, for example during a public presentation ;-) Provide our own simplified API (net.h) instead, implemented for the different platforms.
-
- 15 2月, 2018 3 次提交
-
-
由 Romain Vimont 提交于
The "screen control" handled user input, which happened to be only used to control the screen. The controller and screen were passed to every function. Instead, group them in a struct input_manager. The purpose is to add a new shortcut to enable/disable FPS counter. This feature is not related to "screen control", and will require access to the "frames" instance.
-
由 Romain Vimont 提交于
It can be initially configured by: meson builddir -Dskip_frames=false Or on an existing builddir by: mesonconf builddir -Dskip_frames=false
-
由 Romain Vimont 提交于
Remove frame counter from scrcpy.c and add a new FPS counter, logging as INFO the measured frame rate every second (on new frame).
-
- 14 2月, 2018 1 次提交
-
-
由 Romain Vimont 提交于
Older versions of Meson are too limited, and it's simple to install a newer version ("pip3 install meson").
-