Initialize screen before starting the stream

As soon as the stream is started, the video buffer could notify a new
frame available.

In order to pass this event to the screen without race condition, the
screen must be initialized before the screen is started.
This commit is contained in:
Romain Vimont 2021-02-19 22:40:12 +01:00
parent 441d3fb119
commit c50b958ee4

View file

@ -366,13 +366,6 @@ scrcpy(const struct scrcpy_options *options) {
stream_init(&stream, server.video_socket, dec, rec); stream_init(&stream, server.video_socket, dec, rec);
// now we consumed the header values, the socket receives the video stream
// start the stream
if (!stream_start(&stream)) {
goto end;
}
stream_started = true;
if (options->display) { if (options->display) {
if (options->control) { if (options->control) {
if (!controller_init(&controller, server.control_socket)) { if (!controller_init(&controller, server.control_socket)) {
@ -415,6 +408,13 @@ scrcpy(const struct scrcpy_options *options) {
} }
} }
// now we consumed the header values, the socket receives the video stream
// start the stream
if (!stream_start(&stream)) {
goto end;
}
stream_started = true;
input_manager_init(&input_manager, options); input_manager_init(&input_manager, options);
ret = event_loop(options); ret = event_loop(options);