Browse Source

matroskadec: don't try to re-read already parsed ID in matroska_parse_cluster()

Originally committed as revision 14600 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Aurelien Jacobs 17 years ago
parent
commit
3879763833
1 changed files with 9 additions and 1 deletions
  1. +9
    -1
      libavformat/matroskadec.c

+ 9
- 1
libavformat/matroskadec.c View File

@@ -1631,7 +1631,15 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska)
MatroskaCluster cluster = { 0 };
EbmlList *blocks_list;
MatroskaBlock *blocks;
int i, res = ebml_parse(matroska, matroska_clusters, &cluster);
int i, res;
if (matroska->has_cluster_id){
/* For the first cluster we parse, it's ID was already read as
part of matroska_read_header(), so don't read it again */
res = ebml_parse_id(matroska, matroska_clusters,
MATROSKA_ID_CLUSTER, &cluster);
matroska->has_cluster_id = 0;
} else
res = ebml_parse(matroska, matroska_clusters, &cluster);
blocks_list = &cluster.blocks;
blocks = blocks_list->elem;
for (i=0; !res && i<blocks_list->nb_elem; i++)


Loading…
Cancel
Save