From 63a3b568ad2b49778f73d9d8fbec8e281b5f1291 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Tue, 12 Aug 2014 11:46:46 +0200 Subject: [PATCH] PS: fix length computation Should close #9412 Ref #7303 #8180 #7889 #10123 #2608 --- modules/demux/ps.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/demux/ps.c b/modules/demux/ps.c index a7d96b501b..0fc678d34f 100644 --- a/modules/demux/ps.c +++ b/modules/demux/ps.c @@ -255,11 +255,11 @@ static void FindLength( demux_t *p_demux ) /* Check end */ i_size = stream_Size( p_demux->s ); - i_end = VLC_CLIP( i_size, 0, 20000 ); + i_end = VLC_CLIP( i_size, 0, 200000 ); stream_Seek( p_demux->s, i_size - i_end ); i = 0; - while( vlc_object_alive (p_demux) && i < 40 && Demux2( p_demux, true ) > 0 ) i++; + while( vlc_object_alive (p_demux) && i < 400 && Demux2( p_demux, true ) > 0 ) i++; if( i_current_pos >= 0 ) stream_Seek( p_demux->s, i_current_pos ); } @@ -267,7 +267,7 @@ static void FindLength( demux_t *p_demux ) for( int i = 0; i < PS_TK_COUNT; i++ ) { ps_track_t *tk = &p_sys->tk[i]; - if( tk->i_first_pts >= 0 && tk->i_last_pts > 0 && + if( tk->i_last_pts > 0 && tk->i_last_pts > tk->i_first_pts ) { int64_t i_length = (int64_t)tk->i_last_pts - tk->i_first_pts; -- 2.39.2