[FFmpeg-cvslog] ogg: relax demuxer conformance checks

Luca Barbato git at videolan.org
Sun Jun 23 13:46:02 CEST 2013


ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Thu Jun 20 11:36:04 2013 +0200| [f963f701d90bd7bb03e39aab4e59bd137084e082] | committer: Luca Barbato

ogg: relax demuxer conformance checks

Some samples in the wild are missing headers that are expected by the
specification but in practice do not affect decoding.

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

 libavformat/oggdec.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
index d8f89b8..2ab7301 100644
--- a/libavformat/oggdec.c
+++ b/libavformat/oggdec.c
@@ -478,8 +478,11 @@ static int ogg_get_headers(AVFormatContext *s)
         if (os->codec && os->codec->nb_header &&
             os->nb_header < os->codec->nb_header) {
             av_log(s, AV_LOG_ERROR,
-                   "Headers mismatch for stream %d\n", i);
-            return AVERROR_INVALIDDATA;
+                   "Headers mismatch for stream %d: "
+                   "expected %d received %d.\n",
+                   i, os->codec->nb_header, os->nb_header);
+            if (s->error_recognition & AV_EF_EXPLODE)
+                return AVERROR_INVALIDDATA;
         }
         if (os->start_granule != OGG_NOGRANULE_VALUE)
             os->lastpts = s->streams[i]->start_time =



More information about the ffmpeg-cvslog mailing list