]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
search for hdlr atom in meta, some files do not store version+flags
authorbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 15 Mar 2009 23:54:53 +0000 (23:54 +0000)
committerbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 15 Mar 2009 23:54:53 +0000 (23:54 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@17996 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/mov.c

index fac6d0ccdfd698b89bc2ef779815c086263152a9..10aaac2bd04ed933e681fe3f11dfbd43e0ca2775 100644 (file)
@@ -1338,9 +1338,16 @@ static int mov_read_ilst(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
 
 static int mov_read_meta(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
 {
-    url_fskip(pb, 4); // version + flags
-    atom.size -= 4;
-    return mov_read_default(c, pb, atom);
+    while (atom.size > 8) {
+        uint32_t tag = get_le32(pb);
+        atom.size -= 4;
+        if (tag == MKTAG('h','d','l','r')) {
+            url_fseek(pb, -8, SEEK_CUR);
+            atom.size += 8;
+            return mov_read_default(c, pb, atom);
+        }
+    }
+    return 0;
 }
 
 static int mov_read_trkn(MOVContext *c, ByteIOContext *pb, MOVAtom atom)