OSDN Git Service

Support IFF ANNO (annotation) chunk type
authorPeter Ross <pross@xvid.org>
Tue, 16 Feb 2010 09:55:56 +0000 (09:55 +0000)
committerPeter Ross <pross@xvid.org>
Tue, 16 Feb 2010 09:55:56 +0000 (09:55 +0000)
Originally committed as revision 21847 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/iff.c

index b85ab3f..f087005 100644 (file)
@@ -51,6 +51,7 @@
 #define ID_NAME       MKTAG('N','A','M','E')
 #define ID_TEXT       MKTAG('T','E','X','T')
 #define ID_BODY       MKTAG('B','O','D','Y')
+#define ID_ANNO       MKTAG('A','N','N','O')
 
 #define LEFT    2
 #define RIGHT   4
@@ -99,6 +100,7 @@ static int iff_read_header(AVFormatContext *s,
     uint32_t chunk_id, data_size;
     int padding, done = 0;
     int compression = -1;
+    char *buf;
 
     st = av_new_stream(s, 0);
     if (!st)
@@ -156,6 +158,15 @@ static int iff_read_header(AVFormatContext *s,
             url_fskip(pb, 4); // source page width, height
             break;
 
+        case ID_ANNO:
+            buf = av_malloc(data_size + 1);
+            if (!buf)
+                break;
+            get_buffer(pb, buf, data_size);
+            buf[data_size] = 0;
+            av_metadata_set2(&s->metadata, "comment", buf, AV_METADATA_DONT_STRDUP_VAL);
+            break;
+
         default:
             url_fseek(pb, data_size + padding, SEEK_CUR);
             break;