Commit 73fadf61 authored by Laurent Aimar's avatar Laurent Aimar

* ts: clean my last commit for SPU. Btw, report any regression.

parent 4ce35216
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* ts.c: MPEG-II TS Muxer * ts.c: MPEG-II TS Muxer
***************************************************************************** *****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN * 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 <fenrir@via.ecp.fr> * Authors: Laurent Aimar <fenrir@via.ecp.fr>
* Eric Petit <titer@videolan.org> * Eric Petit <titer@videolan.org>
...@@ -700,8 +700,8 @@ static int TSFill( sout_mux_t *p_mux, sout_input_t *p_input ) ...@@ -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_pcr_stream = (ts_stream_t*)p_sys->p_pcr_input->p_sys;
ts_stream_t *p_stream = (ts_stream_t*)p_input->p_sys; ts_stream_t *p_stream = (ts_stream_t*)p_input->p_sys;
mtime_t i_dts, i_dts_next,i_length; mtime_t i_dts, i_length;
sout_buffer_t *p_data, *p_next; sout_buffer_t *p_data;
vlc_bool_t b_pcr = VLC_FALSE; vlc_bool_t b_pcr = VLC_FALSE;
vlc_bool_t b_pcr_soft = 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 ) ...@@ -716,8 +716,9 @@ static int TSFill( sout_mux_t *p_mux, sout_input_t *p_input )
/* We need more data */ /* We need more data */
return VLC_EGENERIC; return VLC_EGENERIC;
} }
else else if( p_input->p_fifo->i_depth <= 0 )
{ {
/* spu, only one packet is needed */
return VLC_SUCCESS; return VLC_SUCCESS;
} }
} }
...@@ -725,14 +726,17 @@ static int TSFill( sout_mux_t *p_mux, sout_input_t *p_input ) ...@@ -725,14 +726,17 @@ static int TSFill( sout_mux_t *p_mux, sout_input_t *p_input )
i_dts = p_data->i_dts; i_dts = p_data->i_dts;
i_length = p_data->i_length; 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 && if( p_stream->i_pid == p_pcr_stream->i_pid &&
p_stream->chain_ts.p_first == NULL ) p_stream->chain_ts.p_first == NULL )
{ {
/* I need that length == dts_next - dts, but be carefull if /* I need that length == dts_next - dts, but be carefull if
* some dts are broken length >= 0.5s are suspicious */ * 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 && if( i_dts_next > i_dts &&
i_dts_next - i_dts < (mtime_t)500000 ) i_dts_next - i_dts < (mtime_t)500000 )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment