matroskadec: Allow unknown EBML doctype

backport r23246 by conrad


Originally committed as revision 23314 to svn://svn.ffmpeg.org/ffmpeg/branches/0.6
This commit is contained in:
Reinhard Tartler 2010-05-25 18:21:59 +00:00
parent 9d3bb3501d
commit 6ae05f541a

View File

@ -858,7 +858,8 @@ static int matroska_probe(AVProbeData *p)
return AVPROBE_SCORE_MAX; return AVPROBE_SCORE_MAX;
} }
return 0; // probably valid EBML header but no recognized doctype
return AVPROBE_SCORE_MAX/2;
} }
static MatroskaTrack *matroska_find_track_by_num(MatroskaDemuxContext *matroska, static MatroskaTrack *matroska_find_track_by_num(MatroskaDemuxContext *matroska,
@ -1155,9 +1156,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
if (!strcmp(ebml.doctype, matroska_doctypes[i])) if (!strcmp(ebml.doctype, matroska_doctypes[i]))
break; break;
if (i >= FF_ARRAY_ELEMS(matroska_doctypes)) { if (i >= FF_ARRAY_ELEMS(matroska_doctypes)) {
av_log(s, AV_LOG_ERROR, "Unknown EBML doctype '%s'\n", ebml.doctype); av_log(s, AV_LOG_WARNING, "Unknown EBML doctype '%s'\n", ebml.doctype);
ebml_free(ebml_syntax, &ebml);
return AVERROR_PATCHWELCOME;
} }
av_metadata_set2(&s->metadata, "doctype", ebml.doctype, 0); av_metadata_set2(&s->metadata, "doctype", ebml.doctype, 0);
ebml_free(ebml_syntax, &ebml); ebml_free(ebml_syntax, &ebml);