Some samples in the wild are missing headers that are expected by the specification but in practice do not affect decoding. ---
Lovely ogm files... libavformat/oggdec.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c index d8f89b8..6c87181 100644 --- a/libavformat/oggdec.c +++ b/libavformat/oggdec.c @@ -477,9 +477,13 @@ 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; + if (s->error_recognition & AV_EF_EXPLODE) { + av_log(s, AV_LOG_ERROR, + "Headers mismatch for stream %d: " + "expected %d received %d\n", + i, os->codec->nb_header, os->nb_header); + return AVERROR_INVALIDDATA; + } } if (os->start_granule != OGG_NOGRANULE_VALUE) os->lastpts = s->streams[i]->start_time = -- 1.8.2.1 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel