avformat/oggparsevorbis: Dont attempt to calculate timestamps from gp=0
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 11 Jun 2014 16:03:45 +0000 (18:03 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 11 Jun 2014 16:12:14 +0000 (18:12 +0200)
Fixes Ticket3710

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/oggparsevorbis.c

index 51c5eb3..8103d9d 100644 (file)
@@ -427,6 +427,10 @@ static int vorbis_packet(AVFormatContext *s, int idx)
         }
         os->lastpts                 =
         os->lastdts                 = os->granule - duration;
+
+        if (!os->granule && duration) //hack to deal with broken files (Ticket3710)
+            os->lastpts = os->lastdts = AV_NOPTS_VALUE;
+
         if (s->streams[idx]->start_time == AV_NOPTS_VALUE) {
             s->streams[idx]->start_time = FFMAX(os->lastpts, 0);
             if (s->streams[idx]->duration != AV_NOPTS_VALUE)