demuxer-stream-id

This commit is contained in:
Romain Vimont 2023-02-09 21:52:37 +01:00
commit e93fd94842
3 changed files with 17 additions and 8 deletions

View file

@ -273,10 +273,12 @@ end:
} }
void void
sc_demuxer_init(struct sc_demuxer *demuxer, sc_socket socket, sc_demuxer_init(struct sc_demuxer *demuxer, enum sc_stream_id stream_id,
const struct sc_demuxer_callbacks *cbs, void *cbs_userdata) { sc_socket socket, const struct sc_demuxer_callbacks *cbs,
void *cbs_userdata) {
assert(socket != SC_SOCKET_NONE); assert(socket != SC_SOCKET_NONE);
demuxer->stream_id = stream_id;
demuxer->socket = socket; demuxer->socket = socket;
demuxer->pending = NULL; demuxer->pending = NULL;
demuxer->sink_count = 0; demuxer->sink_count = 0;

View file

@ -14,7 +14,13 @@
#define SC_DEMUXER_MAX_SINKS 2 #define SC_DEMUXER_MAX_SINKS 2
enum sc_stream_id {
SC_STREAM_ID_VIDEO,
SC_STREAM_ID_AUDIO,
};
struct sc_demuxer { struct sc_demuxer {
enum sc_stream_id stream_id;
sc_socket socket; sc_socket socket;
sc_thread thread; sc_thread thread;
@ -36,8 +42,9 @@ struct sc_demuxer_callbacks {
}; };
void void
sc_demuxer_init(struct sc_demuxer *demuxer, sc_socket socket, sc_demuxer_init(struct sc_demuxer *demuxer, enum sc_stream_id stream_id,
const struct sc_demuxer_callbacks *cbs, void *cbs_userdata); sc_socket socket, const struct sc_demuxer_callbacks *cbs,
void *cbs_userdata);
void void
sc_demuxer_add_sink(struct sc_demuxer *demuxer, struct sc_packet_sink *sink); sc_demuxer_add_sink(struct sc_demuxer *demuxer, struct sc_packet_sink *sink);

View file

@ -434,15 +434,15 @@ scrcpy(struct scrcpy_options *options) {
static const struct sc_demuxer_callbacks video_demuxer_cbs = { static const struct sc_demuxer_callbacks video_demuxer_cbs = {
.on_eos = sc_video_demuxer_on_eos, .on_eos = sc_video_demuxer_on_eos,
}; };
sc_demuxer_init(&s->video_demuxer, s->server.video_socket, sc_demuxer_init(&s->video_demuxer, SC_STREAM_ID_VIDEO,
&video_demuxer_cbs, NULL); s->server.video_socket, &video_demuxer_cbs, NULL);
if (options->audio) { if (options->audio) {
static const struct sc_demuxer_callbacks audio_demuxer_cbs = { static const struct sc_demuxer_callbacks audio_demuxer_cbs = {
.on_eos = sc_audio_demuxer_on_eos, .on_eos = sc_audio_demuxer_on_eos,
}; };
sc_demuxer_init(&s->audio_demuxer, s->server.audio_socket, sc_demuxer_init(&s->audio_demuxer, SC_STREAM_ID_AUDIO,
&audio_demuxer_cbs, NULL); s->server.audio_socket, &audio_demuxer_cbs, NULL);
} }
if (dec) { if (dec) {