From ba61ba90a034e47ef1e853c01ddba895c0be5542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> Date: Sat, 10 Oct 2020 14:30:03 +0300 Subject: [PATCH] sout standard: implement SOUT_STREAM_IS_SYNCHRONOUS --- modules/stream_out/standard.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/modules/stream_out/standard.c b/modules/stream_out/standard.c index 20d3f0ba2174..1e54d1bd7b74 100644 --- a/modules/stream_out/standard.c +++ b/modules/stream_out/standard.c @@ -118,6 +118,7 @@ typedef struct { sout_mux_t *p_mux; session_descriptor_t *p_session; + bool synchronous; } sout_stream_sys_t; static void *Add( sout_stream_t *p_stream, const es_format_t *p_fmt ) @@ -315,8 +316,25 @@ static void checkAccessMux( sout_stream_t *p_stream, char *psz_access, } } +static int Control(sout_stream_t *stream, int query, va_list args) +{ + sout_stream_sys_t *sys = stream->p_sys; + + switch (query) + { + case SOUT_STREAM_IS_SYNCHRONOUS: + *va_arg(args, bool *) = sys->synchronous; + break; + + default: + return VLC_EGENERIC; + } + + return VLC_SUCCESS; +} + static const struct sout_stream_operations ops = { - Add, Del, Send, NULL, Flush, + Add, Del, Send, Control, Flush, }; /***************************************************************************** @@ -379,6 +397,7 @@ static int Open( vlc_object_t *p_this ) goto end; } + p_sys->synchronous = !sout_AccessOutCanControlPace(p_access); p_sys->p_mux = sout_MuxNew( p_access, psz_mux ); if( !p_sys->p_mux ) { @@ -404,11 +423,7 @@ static int Open( vlc_object_t *p_this ) create_SDP( p_stream, p_access ); p_stream->ops = &ops; - if( !sout_AccessOutCanControlPace( p_access ) ) - p_stream->pace_nocontrol = true; - ret = VLC_SUCCESS; - msg_Dbg( p_this, "using `%s/%s://%s'", psz_access, psz_mux, psz_url ); end: -- GitLab