diff --git a/app/meson.build b/app/meson.build index f5345803..119c042b 100644 --- a/app/meson.build +++ b/app/meson.build @@ -16,6 +16,7 @@ src = [ 'src/opengl.c', 'src/receiver.c', 'src/recorder.c', + 'src/screen_exporter.c', 'src/scrcpy.c', 'src/screen.c', 'src/server.c', diff --git a/app/src/decoder.h b/app/src/decoder.h index 257f751a..1ee6ba68 100644 --- a/app/src/decoder.h +++ b/app/src/decoder.h @@ -8,7 +8,7 @@ #include #include -#define DECODER_MAX_SINKS 2 +#define DECODER_MAX_SINKS 3 struct decoder { struct sc_packet_sink packet_sink; // packet sink trait diff --git a/app/src/scrcpy.c b/app/src/scrcpy.c index 6a285788..ef5dcdc4 100644 --- a/app/src/scrcpy.c +++ b/app/src/scrcpy.c @@ -19,6 +19,7 @@ #include "file_handler.h" #include "input_manager.h" #include "recorder.h" +#include "screen_exporter.h" #include "screen.h" #include "server.h" #include "stream.h" @@ -30,6 +31,7 @@ #endif struct scrcpy { + struct screen_exporter screen_exporter; struct server server; struct screen screen; struct stream stream; @@ -365,6 +367,9 @@ scrcpy(const struct scrcpy_options *options) { } } + screen_exporter_init(&s->screen_exporter); + decoder_add_sink(&s->decoder, &s->screen_exporter.frame_sink); + if (options->display) { const char *window_title = options->window_title ? options->window_title : device_name; diff --git a/app/src/stream.h b/app/src/stream.h index d7047c95..2676cf12 100644 --- a/app/src/stream.h +++ b/app/src/stream.h @@ -11,7 +11,7 @@ #include "util/net.h" #include "util/thread.h" -#define STREAM_MAX_SINKS 2 +#define STREAM_MAX_SINKS 3 struct stream { socket_t socket;