fix handling of packet loss when the output buffer is full

Originally committed as revision 19766 to svn://svn.ffmpeg.org/ffmpeg/trunk
release/0.6
Sascha Sommer 16 years ago
parent 9244370a7c
commit bbb0bdd533
  1. 5
      libavcodec/wmaprodec.c

@ -1461,7 +1461,8 @@ static int decode_packet(AVCodecContext *avctx,
s->samples_end = (float*)((int8_t*)data + *data_size); s->samples_end = (float*)((int8_t*)data + *data_size);
*data_size = 0; *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; s->buf_bit_size = buf_size << 3;
/** sanity check for the buffer length */ /** 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; *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;
} }
/** /**

Loading…
Cancel
Save