[vlc-commits] stream_output: handle Flushing via sout_MuxFlush()
Steve Lhomme
git at videolan.org
Tue Dec 22 14:39:55 CET 2015
vlc | branch: master | Steve Lhomme <robux4 at videolabs.io> | Fri Dec 18 11:24:48 2015 +0100| [aa505e2cc6f39c646ba0b04e963515d9e11a8a16] | committer: Thomas Guillem
stream_output: handle Flushing via sout_MuxFlush()
Signed-off-by: Thomas Guillem <thomas at gllm.fr>
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=aa505e2cc6f39c646ba0b04e963515d9e11a8a16
---
include/vlc_sout.h | 1 +
modules/stream_out/standard.c | 7 +++++++
src/libvlccore.sym | 1 +
src/stream_output/stream_output.c | 5 +++++
4 files changed, 14 insertions(+)
diff --git a/include/vlc_sout.h b/include/vlc_sout.h
index 0569e28..9523999 100644
--- a/include/vlc_sout.h
+++ b/include/vlc_sout.h
@@ -175,6 +175,7 @@ VLC_API void sout_MuxDeleteStream( sout_mux_t *, sout_input_t * );
VLC_API void sout_MuxDelete( sout_mux_t * );
VLC_API int sout_MuxSendBuffer( sout_mux_t *, sout_input_t *, block_t * );
VLC_API int sout_MuxGetStream(sout_mux_t *, unsigned, mtime_t *);
+VLC_API void sout_MuxFlush( sout_mux_t *, sout_input_t * );
static inline int sout_MuxControl( sout_mux_t *p_mux, int i_query, ... )
{
diff --git a/modules/stream_out/standard.c b/modules/stream_out/standard.c
index c86adf9..e8805ba 100644
--- a/modules/stream_out/standard.c
+++ b/modules/stream_out/standard.c
@@ -143,6 +143,12 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id,
{
return sout_MuxSendBuffer( p_stream->p_sys->p_mux, (sout_input_t*)id, p_buffer );
}
+
+static void Flush( sout_stream_t *p_stream, sout_stream_id_sys_t *id )
+{
+ sout_MuxFlush( p_stream->p_sys->p_mux, (sout_input_t*)id );
+}
+
static void create_SDP(sout_stream_t *p_stream, sout_access_out_t *p_access)
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
@@ -405,6 +411,7 @@ static int Open( vlc_object_t *p_this )
p_stream->pf_add = Add;
p_stream->pf_del = Del;
p_stream->pf_send = Send;
+ p_stream->pf_flush = Flush;
if( !sout_AccessOutCanControlPace( p_access ) )
p_stream->pace_nocontrol = true;
diff --git a/src/libvlccore.sym b/src/libvlccore.sym
index 432ff07..43b1ba0 100644
--- a/src/libvlccore.sym
+++ b/src/libvlccore.sym
@@ -384,6 +384,7 @@ sout_MuxDeleteStream
sout_MuxGetStream
sout_MuxNew
sout_MuxSendBuffer
+sout_MuxFlush
sout_StreamChainDelete
sout_StreamChainNew
spu_Create
diff --git a/src/stream_output/stream_output.c b/src/stream_output/stream_output.c
index c20f3f1..bc3c502 100644
--- a/src/stream_output/stream_output.c
+++ b/src/stream_output/stream_output.c
@@ -562,6 +562,11 @@ int sout_MuxSendBuffer( sout_mux_t *p_mux, sout_input_t *p_input,
return p_mux->pf_mux( p_mux );
}
+void sout_MuxFlush( sout_mux_t *p_mux, sout_input_t *p_input )
+{
+ VLC_UNUSED(p_mux);
+ block_FifoEmpty( p_input->p_fifo );
+}
/*****************************************************************************
* sout_MuxGetStream: find stream to be muxed
More information about the vlc-commits
mailing list