matroskadec: extract read_level_up out of ebml_read_element_id
authorAurelien Jacobs <aurel@gnuage.org>
Tue, 5 Aug 2008 00:41:40 +0000 (00:41 +0000)
committerAurelien Jacobs <aurel@gnuage.org>
Tue, 5 Aug 2008 00:41:40 +0000 (00:41 +0000)
Originally committed as revision 14585 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/matroskadec.c

index 3b67621..498e3d9 100644 (file)
@@ -559,10 +559,6 @@ ebml_read_element_id (MatroskaDemuxContext *matroska,
         return read;
     *id = matroska->peek_id  = total | (1 << (read * 7));
 
-    /* level tracking */
-    if (level_up)
-        *level_up = ebml_read_element_level_up(matroska);
-
     return read;
 }
 
@@ -591,10 +587,15 @@ ebml_peek_id (MatroskaDemuxContext *matroska,
               int                  *level_up)
 {
     uint32_t id;
+    int res;
 
-    if (ebml_read_element_id(matroska, &id, level_up) < 0)
+    res = ebml_read_element_id(matroska, &id, NULL);
+    if (res < 0)
         return 0;
 
+    if (res > 0 && level_up)
+        *level_up = ebml_read_element_level_up(matroska);
+
     return id;
 }