From cfcd396bae11de94ad4a729361bc9b7b05f04c27 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 18 Jul 2008 11:38:53 +0000 Subject: Only realloc() bitstream buffer when the needed size increased, this is needed to prevent loosing bitstream data with large metadata. Originally committed as revision 14279 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/flac.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libavcodec/flac.c') diff --git a/libavcodec/flac.c b/libavcodec/flac.c index a7ba01606e..5745210950 100644 --- a/libavcodec/flac.c +++ b/libavcodec/flac.c @@ -139,7 +139,8 @@ static void allocate_buffers(FLACContext *s){ s->decoded[i] = av_realloc(s->decoded[i], sizeof(int32_t)*s->max_blocksize); } - s->bitstream= av_fast_realloc(s->bitstream, &s->allocated_bitstream_size, s->max_framesize); + if(s->allocated_bitstream_size < s->max_framesize) + s->bitstream= av_fast_realloc(s->bitstream, &s->allocated_bitstream_size, s->max_framesize); } void ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, -- cgit v1.2.3