avformat/mov: Dont blindly trust the stream duration in seting chapter times
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 23 May 2014 02:39:55 +0000 (04:39 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 23 May 2014 02:39:55 +0000 (04:39 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mov.c

index 26fb0ed..7f72db9 100644 (file)
@@ -3303,6 +3303,11 @@ static void mov_read_chapters(AVFormatContext *s)
         uint16_t ch;
         int len, title_len;
 
+        if (end < sample->timestamp) {
+            av_log(s, AV_LOG_WARNING, "ignoring stream duration which is shorter than chapters\n");
+            end = AV_NOPTS_VALUE;
+        }
+
         if (avio_seek(sc->pb, sample->pos, SEEK_SET) != sample->pos) {
             av_log(s, AV_LOG_ERROR, "Chapter %d not found in file\n", i);
             goto finish;