From 73fadf618fd4aefeb9733570e787e8401f1a6f0f Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Tue, 26 Aug 2003 01:04:29 +0000 Subject: [PATCH] * ts: clean my last commit for SPU. Btw, report any regression. --- modules/mux/mpeg/ts.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/modules/mux/mpeg/ts.c b/modules/mux/mpeg/ts.c index 6fc8b7f711..5a28f26314 100644 --- a/modules/mux/mpeg/ts.c +++ b/modules/mux/mpeg/ts.c @@ -2,7 +2,7 @@ * ts.c: MPEG-II TS Muxer ***************************************************************************** * Copyright (C) 2001, 2002 VideoLAN - * $Id: ts.c,v 1.30 2003/08/26 00:52:38 fenrir Exp $ + * $Id: ts.c,v 1.31 2003/08/26 01:04:29 fenrir Exp $ * * Authors: Laurent Aimar * Eric Petit @@ -700,8 +700,8 @@ static int TSFill( sout_mux_t *p_mux, sout_input_t *p_input ) ts_stream_t *p_pcr_stream = (ts_stream_t*)p_sys->p_pcr_input->p_sys; ts_stream_t *p_stream = (ts_stream_t*)p_input->p_sys; - mtime_t i_dts, i_dts_next,i_length; - sout_buffer_t *p_data, *p_next; + mtime_t i_dts, i_length; + sout_buffer_t *p_data; vlc_bool_t b_pcr = VLC_FALSE; vlc_bool_t b_pcr_soft = VLC_FALSE; @@ -716,8 +716,9 @@ static int TSFill( sout_mux_t *p_mux, sout_input_t *p_input ) /* We need more data */ return VLC_EGENERIC; } - else + else if( p_input->p_fifo->i_depth <= 0 ) { + /* spu, only one packet is needed */ return VLC_SUCCESS; } } @@ -725,14 +726,17 @@ static int TSFill( sout_mux_t *p_mux, sout_input_t *p_input ) i_dts = p_data->i_dts; i_length = p_data->i_length; - p_next = sout_FifoShow( p_input->p_fifo ); - i_dts_next = p_next->i_dts; - if( p_stream->i_pid == p_pcr_stream->i_pid && p_stream->chain_ts.p_first == NULL ) { /* I need that length == dts_next - dts, but be carefull if * some dts are broken length >= 0.5s are suspicious */ + sout_buffer_t *p_next; + mtime_t i_dts_next; + + p_next = sout_FifoShow( p_input->p_fifo ); + i_dts_next = p_next->i_dts; + if( i_dts_next > i_dts && i_dts_next - i_dts < (mtime_t)500000 ) { -- 2.20.1