[vlc-commits] sout: mux: flag discontinuity when joining streams
Francois Cartegnie
git at videolan.org
Wed Jun 11 19:12:21 CEST 2014
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Jun 10 14:08:50 2014 +0200| [8f087f2f9476393ec2b95d019ef1a0c98ed8dc5a] | committer: Francois Cartegnie
sout: mux: flag discontinuity when joining streams
Both streams must have same format, but dts/pts/pcr
could start anywhere.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8f087f2f9476393ec2b95d019ef1a0c98ed8dc5a
---
modules/stream_out/gather.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/modules/stream_out/gather.c b/modules/stream_out/gather.c
index 055cdf6..ebad0e1 100644
--- a/modules/stream_out/gather.c
+++ b/modules/stream_out/gather.c
@@ -33,6 +33,7 @@
#include <vlc_plugin.h>
#include <vlc_input.h>
#include <vlc_sout.h>
+#include <vlc_block.h>
/*****************************************************************************
* Module descriptor
@@ -57,6 +58,7 @@ static int Send( sout_stream_t *, sout_stream_id_sys_t *, block_t*
struct sout_stream_id_sys_t
{
bool b_used;
+ bool b_streamswap;
es_format_t fmt;
void *id;
@@ -154,6 +156,7 @@ static sout_stream_id_sys_t * Add( sout_stream_t *p_stream, es_format_t *p_fmt )
/* */
msg_Dbg( p_stream, "reusing already opened output" );
id->b_used = true;
+ id->b_streamswap = true;
return id;
}
@@ -206,5 +209,10 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_sys_t *id )
static int Send( sout_stream_t *p_stream,
sout_stream_id_sys_t *id, block_t *p_buffer )
{
+ if ( id->b_streamswap )
+ {
+ id->b_streamswap = false;
+ p_buffer->i_flags |= BLOCK_FLAG_DISCONTINUITY;
+ }
return sout_StreamIdSend( p_stream->p_next, id->id, p_buffer );
}
More information about the vlc-commits
mailing list