summaryrefslogtreecommitdiff
path: root/libavformat/oggenc.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2014-08-28 18:51:51 +0000
committerAnton Khirnov <anton@khirnov.net>2014-11-06 09:04:32 +0100
commite839de0f851535b5e19256b52f9865f0cb768a7c (patch)
treea29cb5a27cfb8f434dce1b5af11025895a51471e /libavformat/oggenc.c
parentc070a8751597e3aa1b443e88464da785d8966b14 (diff)
oggenc: accept only STREAMINFO extradata
The reasoning is the same as for 0097cbea695e534fce39958ccd103af2fbf65831.
Diffstat (limited to 'libavformat/oggenc.c')
-rw-r--r--libavformat/oggenc.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 8f08da189f..c7d6491daf 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -295,12 +295,10 @@ static int ogg_build_flac_headers(AVCodecContext *avctx,
OGGStreamContext *oggstream, int bitexact,
AVDictionary **m)
{
- enum FLACExtradataFormat format;
- uint8_t *streaminfo;
uint8_t *p;
- if (!avpriv_flac_is_extradata_valid(avctx, &format, &streaminfo))
- return -1;
+ if (avctx->extradata_size < FLAC_STREAMINFO_SIZE)
+ return AVERROR(EINVAL);
// first packet: STREAMINFO
oggstream->header_len[0] = 51;
@@ -316,7 +314,7 @@ static int ogg_build_flac_headers(AVCodecContext *avctx,
bytestream_put_buffer(&p, "fLaC", 4);
bytestream_put_byte(&p, 0x00); // streaminfo
bytestream_put_be24(&p, 34);
- bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE);
+ bytestream_put_buffer(&p, avctx->extradata, FLAC_STREAMINFO_SIZE);
// second packet: VorbisComment
p = ogg_write_vorbiscomment(4, bitexact, &oggstream->header_len[1], m, 0);