pass extradata through ffm
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 9 Jun 2008 00:36:27 +0000 (00:36 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Mon, 9 Jun 2008 00:36:27 +0000 (00:36 +0000)
Originally committed as revision 13721 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/ffmdec.c
libavformat/ffmenc.c

index 9c0ea89..dd9fa97 100644 (file)
@@ -320,7 +320,13 @@ static int ffm_read_header(AVFormatContext *s, AVFormatParameters *ap)
         default:
             goto fail;
         }
-
+        if (codec->flags & CODEC_FLAG_GLOBAL_HEADER) {
+            codec->extradata_size = get_be32(pb);
+            codec->extradata = av_malloc(codec->extradata_size);
+            if (!codec->extradata)
+                return AVERROR(ENOMEM);
+            get_buffer(pb, codec->extradata, codec->extradata_size);
+        }
     }
 
     /* get until end of block reached */
index 906152f..738d310 100644 (file)
@@ -168,6 +168,10 @@ static int ffm_write_header(AVFormatContext *s)
         default:
             return -1;
         }
+        if (codec->flags & CODEC_FLAG_GLOBAL_HEADER) {
+            put_be32(pb, codec->extradata_size);
+            put_buffer(pb, codec->extradata, codec->extradata_size);
+        }
     }
 
     /* flush until end of block reached */