]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
pass extradata through ffm
authorbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 9 Jun 2008 00:36:27 +0000 (00:36 +0000)
committerbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Mon, 9 Jun 2008 00:36:27 +0000 (00:36 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@13721 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/ffmdec.c
libavformat/ffmenc.c

index 9c0ea89eb48b3c479b444a967f4e3a7f9a144d2c..dd9fa9789b7b20c81734cdd6c178687eb4b3ac4f 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 906152f97896f639439433055d401de7d5c05b8a..738d3101dae7d2c9c6d832795eb722f40ea2ec26 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 */