# HG changeset patch # User michael # Date 1216381133 0 # Node ID 3d8cf33fbafbc10f4188c873d19e3047081f8f93 # Parent aab7f1fb59eaebb9e963caa0b5612f601f990bf2 Only realloc() bitstream buffer when the needed size increased, this is needed to prevent loosing bitstream data with large metadata. diff -r aab7f1fb59ea -r 3d8cf33fbafb flac.c --- a/flac.c Fri Jul 18 11:08:15 2008 +0000 +++ b/flac.c Fri Jul 18 11:38:53 2008 +0000 @@ -139,7 +139,8 @@ 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,