Fix timestamps.
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 11 Feb 2010 22:32:46 +0000 (22:32 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 11 Feb 2010 22:32:46 +0000 (22:32 +0000)
Originally committed as revision 21761 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/iv8.c

index 33894ad..299de45 100644 (file)
@@ -55,9 +55,9 @@ static int read_header(AVFormatContext *s, AVFormatParameters *ap)
 
 static int read_packet(AVFormatContext *s, AVPacket *pkt)
 {
 
 static int read_packet(AVFormatContext *s, AVPacket *pkt)
 {
-    int ret, size, pts;
-
-    get_be16(s->pb); // 257
+    int ret, size, pts, type;
+retry:
+    type= get_be16(s->pb); // 257 or 258
     size= get_be16(s->pb);
 
     get_be16(s->pb); //some flags, 0x80 indicates end of frame
     size= get_be16(s->pb);
 
     get_be16(s->pb); //some flags, 0x80 indicates end of frame
@@ -69,9 +69,14 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     if(size<1)
         return -1;
 
     if(size<1)
         return -1;
 
+    if(type==258){
+        url_fskip(s->pb, size);
+        goto retry;
+    }
+
     ret= av_get_packet(s->pb, pkt, size);
 
     ret= av_get_packet(s->pb, pkt, size);
 
-    pkt->pts= pkt->dts= pts;
+    pkt->pts= pts;
     pkt->pos-=16;
 
     pkt->stream_index = 0;
     pkt->pos-=16;
 
     pkt->stream_index = 0;