From bbb0bdd533d0f47c658133f0a5530e0de2f7b762 Mon Sep 17 00:00:00 2001 From: Sascha Sommer Date: Sat, 5 Sep 2009 10:59:09 +0000 Subject: [PATCH] fix handling of packet loss when the output buffer is full Originally committed as revision 19766 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/wmaprodec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c index 62f6d12c95..886ff45670 100644 --- a/libavcodec/wmaprodec.c +++ b/libavcodec/wmaprodec.c @@ -1461,7 +1461,8 @@ static int decode_packet(AVCodecContext *avctx, s->samples_end = (float*)((int8_t*)data + *data_size); *data_size = 0; - if (!s->output_buffer_full) { + if (!s->output_buffer_full || s->packet_loss) { + s->output_buffer_full = 0; s->buf_bit_size = buf_size << 3; /** sanity check for the buffer length */ @@ -1537,7 +1538,7 @@ static int decode_packet(AVCodecContext *avctx, *data_size = (int8_t *)s->samples - (int8_t *)data; - return (s->output_buffer_full)?0: avctx->block_align; + return (s->output_buffer_full && !s->packet_loss)?0: avctx->block_align; } /**