summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-06-09 00:36:27 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2008-06-09 00:36:27 +0000
commit7080cbe2c828271fd75f9281b8b62020778db79a (patch)
tree9cd93a99038bb5fbd9f753551a6b5016f607bebd /libavformat
parentd8b1dffbc55c33ed91f65764cdad9547574f6ccf (diff)
pass extradata through ffm
Originally committed as revision 13721 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/ffmdec.c8
-rw-r--r--libavformat/ffmenc.c4
2 files changed, 11 insertions, 1 deletions
diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c
index 9c0ea89eb4..dd9fa9789b 100644
--- a/libavformat/ffmdec.c
+++ b/libavformat/ffmdec.c
@@ -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 */
diff --git a/libavformat/ffmenc.c b/libavformat/ffmenc.c
index 906152f978..738d3101da 100644
--- a/libavformat/ffmenc.c
+++ b/libavformat/ffmenc.c
@@ -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 */