update_initial_durations: add some checks to ensure things match up.
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 14 May 2012 15:14:44 +0000 (17:14 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 14 May 2012 15:14:44 +0000 (17:14 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/utils.c

index 28693e0..a3b3895 100644 (file)
@@ -938,6 +938,14 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st,
                 cur_dts -= duration;
             }
         }
+        if(pktl && pktl->pkt.dts != st->first_dts) {
+            av_log(s, AV_LOG_DEBUG, "first_dts %"PRIi64" not matching first dts %"PRIi64" in que\n", st->first_dts, pktl->pkt.dts);
+            return;
+        }
+        if(!pktl) {
+            av_log(s, AV_LOG_DEBUG, "first_dts %"PRIi64" but no packet with dts in ques\n", st->first_dts);
+            return;
+        }
         pktl= s->parse_queue ? s->parse_queue : s->packet_buffer;
         st->first_dts = cur_dts;
     }else if(st->cur_dts != RELATIVE_TS_BASE)