[Ffmpeg-cvslog] CVS: ffmpeg/libavformat mov.c,1.111,1.112

Michael Niedermayer CVS michael
Sat Feb 18 10:03:25 CET 2006


Update of /cvsroot/ffmpeg/ffmpeg/libavformat
In directory mail:/var2/tmp/cvs-serv23993

Modified Files:
	mov.c 
Log Message:
add mov_read_ftyp to check iso media file type and set c->mp4 patch by (Baptiste COUDURIER <baptiste.coudurier 0 smartjog o com>)


Index: mov.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavformat/mov.c,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -d -r1.111 -r1.112
--- mov.c	14 Feb 2006 23:21:17 -0000	1.111
+++ mov.c	18 Feb 2006 09:03:22 -0000	1.112
@@ -629,6 +629,33 @@
     return 0; /* now go for moov */
 }
 
+static int mov_read_ftyp(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
+{
+    uint32_t type = get_le32(pb);
+
+    /* from mplayer */
+    switch (type) {
+    case MKTAG('i', 's', 'o', 'm'):
+    case MKTAG('m', 'p', '4', '1'):
+    case MKTAG('m', 'p', '4', '2'):
+    case MKTAG('3', 'g', 'p', '1'):
+    case MKTAG('3', 'g', 'p', '2'):
+    case MKTAG('3', 'g', '2', 'a'):
+    case MKTAG('3', 'g', 'p', '3'):
+    case MKTAG('3', 'g', 'p', '4'):
+    case MKTAG('3', 'g', 'p', '5'):
+    case MKTAG('m', 'm', 'p', '4'): /* Mobile MP4 */
+    case MKTAG('M', '4', 'A', ' '): /* Apple iTunes AAC-LC Audio */
+    case MKTAG('M', '4', 'P', ' '): /* Apple iTunes AAC-LC Protected Audio */
+        c->mp4 = 1;
+    case MKTAG('q', 't', ' ', ' '):
+        av_log(c->fc, AV_LOG_DEBUG, "ISO: File Type Major Brand: %.4s\n",(char *)&type);
+    }
+    get_be32(pb); /* minor version */
+    url_fskip(pb, atom.size - 8);
+    return 0;
+}
+
 /* this atom should contain all header atoms */
 static int mov_read_moov(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom)
 {
@@ -1477,6 +1504,7 @@
 { MKTAG( 'e', 'd', 't', 's' ), mov_read_default },
 { MKTAG( 'e', 'l', 's', 't' ), mov_read_elst },
 { MKTAG( 'f', 'r', 'e', 'e' ), mov_read_leaf },
+{ MKTAG( 'f', 't', 'y', 'p' ), mov_read_ftyp },
 { MKTAG( 'h', 'd', 'l', 'r' ), mov_read_hdlr },
 { MKTAG( 'h', 'i', 'n', 't' ), mov_read_leaf },
 { MKTAG( 'h', 'm', 'h', 'd' ), mov_read_leaf },





More information about the ffmpeg-cvslog mailing list