[FFmpeg-cvslog] r14600 - trunk/libavformat/matroskadec.c

aurel subversion
Tue Aug 5 02:42:27 CEST 2008


Author: aurel
Date: Tue Aug  5 02:42:26 2008
New Revision: 14600

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

Modified:
   trunk/libavformat/matroskadec.c

Modified: trunk/libavformat/matroskadec.c
==============================================================================
--- trunk/libavformat/matroskadec.c	(original)
+++ trunk/libavformat/matroskadec.c	Tue Aug  5 02:42:26 2008
@@ -1631,7 +1631,15 @@ static int matroska_parse_cluster(Matros
     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++)




More information about the ffmpeg-cvslog mailing list