oggdec: print a warning if the number of headers mismatch expectations.
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 25 Sep 2012 13:34:58 +0000 (15:34 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 25 Sep 2012 13:34:58 +0000 (15:34 +0200)
This is based on:
commit 7751e4693dd10ec98c20fbd9887233b575034272
Author: Luca Barbato <lu_zero@gentoo.org>

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

index f565f7e..fc26314 100644 (file)
@@ -600,11 +600,16 @@ static int ogg_read_header(AVFormatContext *s)
     } while (!ogg->headers);
     av_dlog(s, "found headers\n");
 
-    for (i = 0; i < ogg->nstreams; i++)
+    for (i = 0; i < ogg->nstreams; i++) {
+        struct ogg_stream *os = ogg->streams + i;
+
         if (ogg->streams[i].header < 0) {
             av_log(s, AV_LOG_ERROR, "Header parsing failed for stream %d\n", i);
             ogg->streams[i].codec = NULL;
+        } else if (os->codec && os->nb_header < os->codec->nb_header) {
+            av_log(s, AV_LOG_WARNING, "Number of headers (%d) mismatch for stream %d\n", os->nb_header, i);
         }
+    }
 
     //linear granulepos seek from end
     ogg_get_length (s);