|
|
|
@@ -2013,12 +2013,15 @@ static int matroska_read_header(AVFormatContext *s) |
|
|
|
matroska->ctx = s; |
|
|
|
|
|
|
|
/* First read the EBML header. */ |
|
|
|
if (ebml_parse(matroska, ebml_syntax, &ebml) || |
|
|
|
ebml.version > EBML_VERSION || |
|
|
|
if (ebml_parse(matroska, ebml_syntax, &ebml) || !ebml.doctype) { |
|
|
|
av_log(matroska->ctx, AV_LOG_ERROR, "EBML header parsing failed\n"); |
|
|
|
ebml_free(ebml_syntax, &ebml); |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
} |
|
|
|
if (ebml.version > EBML_VERSION || |
|
|
|
ebml.max_size > sizeof(uint64_t) || |
|
|
|
ebml.id_length > sizeof(uint32_t) || |
|
|
|
ebml.doctype_version > 3 || |
|
|
|
!ebml.doctype) { |
|
|
|
ebml.doctype_version > 3) { |
|
|
|
av_log(matroska->ctx, AV_LOG_ERROR, |
|
|
|
"EBML header using unsupported features\n" |
|
|
|
"(EBML version %"PRIu64", doctype %s, doc version %"PRIu64")\n", |
|
|
|
|