[vlc-devel] [PATCH] AVFormat Demux : Reset PCR for streams initialized later on.

Jai Menon jmenon86 at gmail.com
Sat Jul 24 06:20:48 CEST 2010


A situation where this is desirable is when the video stream is
initialized after the audio stream. In this case the PCR must be
reset based on the video stream packet timestamp to avoid dropping
frames.
---
 modules/demux/avformat/demux.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
index a8042b8..86aeb5d 100644
--- a/modules/demux/avformat/demux.c
+++ b/modules/demux/avformat/demux.c
@@ -588,7 +588,8 @@ static int Demux( demux_t *p_demux )
 #endif
 
     if( p_frame->i_dts > VLC_TS_INVALID  &&
-        ( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ) )
+        ( pkt.stream_index == p_sys->i_pcr_tk || p_sys->i_pcr_tk < 0 ||
+          p_frame->i_dts < p_sys->i_pcr ) )
     {
         p_sys->i_pcr_tk = pkt.stream_index;
         p_sys->i_pcr = p_frame->i_dts;
-- 
1.7.1.1




More information about the vlc-devel mailing list