|
|
|
@ -34,7 +34,7 @@
|
|
|
|
|
#include "util/log.h"
|
|
|
|
|
#include "util/net.h"
|
|
|
|
|
|
|
|
|
|
static struct server server = SERVER_INITIALIZER;
|
|
|
|
|
static struct server server;
|
|
|
|
|
static struct screen screen = SCREEN_INITIALIZER;
|
|
|
|
|
static struct fps_counter fps_counter;
|
|
|
|
|
static struct video_buffer video_buffer;
|
|
|
|
@ -304,6 +304,19 @@ av_log_callback(void *avcl, int level, const char *fmt, va_list vl) {
|
|
|
|
|
|
|
|
|
|
bool
|
|
|
|
|
scrcpy(const struct scrcpy_options *options) {
|
|
|
|
|
if (!server_init(&server)) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool server_started = false;
|
|
|
|
|
bool fps_counter_initialized = false;
|
|
|
|
|
bool video_buffer_initialized = false;
|
|
|
|
|
bool file_handler_initialized = false;
|
|
|
|
|
bool recorder_initialized = false;
|
|
|
|
|
bool stream_started = false;
|
|
|
|
|
bool controller_initialized = false;
|
|
|
|
|
bool controller_started = false;
|
|
|
|
|
|
|
|
|
|
bool record = !!options->record_filename;
|
|
|
|
|
struct server_params params = {
|
|
|
|
|
.log_level = options->log_level,
|
|
|
|
@ -322,18 +335,10 @@ scrcpy(const struct scrcpy_options *options) {
|
|
|
|
|
.force_adb_forward = options->force_adb_forward,
|
|
|
|
|
};
|
|
|
|
|
if (!server_start(&server, options->serial, ¶ms)) {
|
|
|
|
|
return false;
|
|
|
|
|
goto end;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool ret = false;
|
|
|
|
|
|
|
|
|
|
bool fps_counter_initialized = false;
|
|
|
|
|
bool video_buffer_initialized = false;
|
|
|
|
|
bool file_handler_initialized = false;
|
|
|
|
|
bool recorder_initialized = false;
|
|
|
|
|
bool stream_started = false;
|
|
|
|
|
bool controller_initialized = false;
|
|
|
|
|
bool controller_started = false;
|
|
|
|
|
server_started = true;
|
|
|
|
|
|
|
|
|
|
if (!sdl_init_and_configure(options->display, options->render_driver,
|
|
|
|
|
options->disable_screensaver)) {
|
|
|
|
@ -444,7 +449,7 @@ scrcpy(const struct scrcpy_options *options) {
|
|
|
|
|
|
|
|
|
|
input_manager_init(&input_manager, options);
|
|
|
|
|
|
|
|
|
|
ret = event_loop(options);
|
|
|
|
|
bool ret = event_loop(options);
|
|
|
|
|
LOGD("quit...");
|
|
|
|
|
|
|
|
|
|
screen_destroy(&screen);
|
|
|
|
@ -465,8 +470,10 @@ end:
|
|
|
|
|
fps_counter_interrupt(&fps_counter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// shutdown the sockets and kill the server
|
|
|
|
|
server_stop(&server);
|
|
|
|
|
if (server_started) {
|
|
|
|
|
// shutdown the sockets and kill the server
|
|
|
|
|
server_stop(&server);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// now that the sockets are shutdown, the stream and controller are
|
|
|
|
|
// interrupted, we can join them
|
|
|
|
|