]> git.sesse.net Git - vlc/commitdiff
Workaround for 0 being invalid timestamp.
authorLaurent Aimar <fenrir@videolan.org>
Mon, 27 Jul 2009 19:26:30 +0000 (21:26 +0200)
committerLaurent Aimar <fenrir@videolan.org>
Mon, 27 Jul 2009 19:27:25 +0000 (21:27 +0200)
modules/demux/mkv/mkv.cpp

index fa25d28e855f7f9d1e72791821da1fc57fa1f95b..348b53c99c7cf7e2d21bdc1002382755db1eb3b6 100644 (file)
@@ -603,6 +603,12 @@ msg_Dbg( p_demux, "block i_dts: %"PRId64" / i_pts: %"PRId64, p_block->i_dts, p_b
             p_block->i_length = i_duration * 1000;
         }
 
+        /* FIXME remove when VLC_TS_INVALID work is done */
+        if( i == 0 || p_block->i_dts > 0 )
+            p_block->i_dts++;
+        if( !tk->b_dts_only && ( i == 0 || p_block->i_pts ) )
+            p_block->i_pts++;
+
         es_out_Send( p_demux->out, tk->p_es, p_block );
 
         /* use time stamp only for first block */
@@ -859,7 +865,8 @@ static int Demux( demux_t *p_demux)
         else
             p_sys->i_pts = (p_sys->i_chapter_time + block->GlobalTimecode()) / (mtime_t) 1000;
 
-        es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_sys->i_pts );
+        /* FIXME remove the +1 when VLC_TS_INVALID work is done */
+        es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_sys->i_pts+1 );
 
         if( p_sys->i_pts >= p_sys->i_start_pts  )
         {