[SCM] libav/experimental: search for hdlr atom in meta, some files do not store version+flags

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:41:27 UTC 2013


The following commit has been merged in the experimental branch:
commit df8843c65f4d23ceadfc8f78a63d4d1632e55c38
Author: Baptiste Coudurier <baptiste.coudurier at gmail.com>
Date:   Sun Mar 15 23:54:53 2009 +0000

    search for hdlr atom in meta, some files do not store version+flags
    
    Originally committed as revision 17996 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/mov.c b/libavformat/mov.c
index fac6d0c..10aaac2 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -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)

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list