[FFmpeg-cvslog] avformat/matroskadec: correct spurious keyframe warnings in webm

Monty Montgomery git at videolan.org
Fri Sep 20 03:49:55 CEST 2013


ffmpeg | branch: master | Monty Montgomery <monty at xiph.org> | Wed Sep 11 02:00:31 2013 -0400| [f6622f9610af513bc3277da09dcd2d9777f00343] | committer: Michael Niedermayer

avformat/matroskadec: correct spurious keyframe warnings in webm

Minor change to fix for Trac #1003 to avoid squawking about files
with valid keyframes that aren't marked (as opposed to frames that are
marked as keyframes and aren't).

Change correctly surpresses the spurious warnings, while still complaining
about (and handling) the genuinely broken file attached to bug #1003.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6622f9610af513bc3277da09dcd2d9777f00343
---

 libavformat/matroskadec.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 8bbbf68..2482c6d 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -2558,12 +2558,12 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data,
     if (matroska->skip_to_keyframe && track->type != MATROSKA_TRACK_TYPE_SUBTITLE) {
         if (timecode < matroska->skip_to_timecode)
             return res;
-        if (!st->skip_to_keyframe) {
+        if (is_keyframe)
+            matroska->skip_to_keyframe = 0;
+        else if (!st->skip_to_keyframe) {
             av_log(matroska->ctx, AV_LOG_ERROR, "File is broken, keyframes not correctly marked!\n");
             matroska->skip_to_keyframe = 0;
         }
-        if (is_keyframe)
-            matroska->skip_to_keyframe = 0;
     }
 
     res = matroska_parse_laces(matroska, &data, &size, (flags & 0x06) >> 1,



More information about the ffmpeg-cvslog mailing list