From 0097cbea695e534fce39958ccd103af2fbf65831 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Mon, 26 May 2014 15:51:22 +0200 Subject: [PATCH] flac muxer: accept only STREAMINFO extradata The other format (full flac header blocks) should not be exported by any demuxers anymore. This allows to drop an avpriv_ function and also simplify the following commits. --- libavformat/flacenc_header.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libavformat/flacenc_header.c b/libavformat/flacenc_header.c index 0d19b3c876..a6e2b59f54 100644 --- a/libavformat/flacenc_header.c +++ b/libavformat/flacenc_header.c @@ -22,7 +22,7 @@ #include "libavutil/channel_layout.h" #include "libavcodec/flac.h" -#include "libavcodec/bytestream.h" + #include "avformat.h" #include "flacenc.h" @@ -32,18 +32,17 @@ int ff_flac_write_header(AVIOContext *pb, AVCodecContext *codec, uint8_t header[8] = { 0x66, 0x4C, 0x61, 0x43, 0x00, 0x00, 0x00, 0x22 }; - uint8_t *streaminfo; - enum FLACExtradataFormat format; header[4] = last_block ? 0x80 : 0x00; - if (!avpriv_flac_is_extradata_valid(codec, &format, &streaminfo)) - return -1; + + if (codec->extradata_size < FLAC_STREAMINFO_SIZE) + return AVERROR_INVALIDDATA; /* write "fLaC" stream marker and first metadata block header */ avio_write(pb, header, 8); /* write STREAMINFO */ - avio_write(pb, streaminfo, FLAC_STREAMINFO_SIZE); + avio_write(pb, codec->extradata, FLAC_STREAMINFO_SIZE); return 0; }