diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index eb2019effd..71437a7f53 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -846,7 +846,7 @@ static int matroska_probe(AVProbeData *p) return 0; } -static int ebml_parse(MatroskaDemuxContext *matroska, EbmlSyntax *syntax, +static int ebml_parse_nest(MatroskaDemuxContext *matroska, EbmlSyntax *syntax, void *data, int once); static int ebml_parse_elem(MatroskaDemuxContext *matroska, @@ -881,8 +881,8 @@ static int ebml_parse_elem(MatroskaDemuxContext *matroska, return res; if (id == MATROSKA_ID_SEGMENT) matroska->segment_start = url_ftell(matroska->ctx->pb); - return ebml_parse(matroska, syntax->def.n, data, 0); - case EBML_PASS: return ebml_parse(matroska, syntax->def.n, data, 1); + return ebml_parse_nest(matroska, syntax->def.n, data, 0); + case EBML_PASS: return ebml_parse_nest(matroska, syntax->def.n, data, 1); case EBML_STOP: *(int *)data = 1; return 1; default: url_fskip(pb, length); return 0; } @@ -905,7 +905,7 @@ static int ebml_parse_id(MatroskaDemuxContext *matroska, EbmlSyntax *syntax, return ebml_parse_elem(matroska, &syntax[i], data); } -static int ebml_parse(MatroskaDemuxContext *matroska, EbmlSyntax *syntax, +static int ebml_parse_nest(MatroskaDemuxContext *matroska, EbmlSyntax *syntax, void *data, int once) { int i, res = 0; @@ -1125,7 +1125,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap) matroska->ctx = s; /* First read the EBML header. */ - if (ebml_parse(matroska, ebml_syntax, &ebml, 1) + if (ebml_parse_nest(matroska, ebml_syntax, &ebml, 1) || ebml.version > EBML_VERSION || ebml.max_size > sizeof(uint64_t) || ebml.id_length > sizeof(uint32_t) || strcmp(ebml.doctype, "matroska") || ebml.doctype_version > 2) { @@ -1138,7 +1138,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap) ebml_free(ebml_syntax, &ebml); /* The next thing is a segment. */ - if (ebml_parse(matroska, matroska_segments, matroska, 1) < 0) + if (ebml_parse_nest(matroska, matroska_segments, matroska, 1) < 0) return -1; matroska_execute_seekhead(matroska); @@ -1628,7 +1628,7 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska) MatroskaCluster cluster = { 0 }; EbmlList *blocks_list; MatroskaBlock *blocks; - int i, res = ebml_parse(matroska, matroska_clusters, &cluster, 1); + int i, res = ebml_parse_nest(matroska, matroska_clusters, &cluster, 1); blocks_list = &cluster.blocks; blocks = blocks_list->elem; for (i=0; !res && inb_elem; i++)