matroskadec: Allow unknown EBML doctype
authorDavid Conrad <lessen42@gmail.com>
Sat, 22 May 2010 01:41:35 +0000 (01:41 +0000)
committerDavid Conrad <lessen42@gmail.com>
Sat, 22 May 2010 01:41:35 +0000 (01:41 +0000)
Originally committed as revision 23246 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/matroskadec.c

index e5d34d7..45bea61 100644 (file)
@@ -860,7 +860,8 @@ static int matroska_probe(AVProbeData *p)
                 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,
@@ -1157,9 +1158,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
         if (!strcmp(ebml.doctype, matroska_doctypes[i]))
             break;
     if (i >= FF_ARRAY_ELEMS(matroska_doctypes)) {
-        av_log(s, AV_LOG_ERROR, "Unknown EBML doctype '%s'\n", ebml.doctype);
-        ebml_free(ebml_syntax, &ebml);
-        return AVERROR_PATCHWELCOME;
+        av_log(s, AV_LOG_WARNING, "Unknown EBML doctype '%s'\n", ebml.doctype);
     }
     av_metadata_set2(&s->metadata, "doctype", ebml.doctype, 0);
     ebml_free(ebml_syntax, &ebml);