]> git.sesse.net Git - vlc/blobdiff - modules/demux/ps.c
MKV: the Block duration is for the whole Block, not each frame
[vlc] / modules / demux / ps.c
index a7d96b501bc4c4295235fa4fb846424366440308..96597f4b7358e14fc2ec4ffb14d8f4be06b25c41 100644 (file)
@@ -251,15 +251,15 @@ static void FindLength( demux_t *p_demux )
         /* Check beginning */
         int i = 0;
         i_current_pos = stream_Tell( p_demux->s );
-        while( vlc_object_alive (p_demux) && i < 40 && Demux2( p_demux, false ) > 0 ) i++;
+        while( i < 40 && Demux2( p_demux, false ) > 0 ) i++;
 
         /* 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( 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;