From: Andre Noll Date: Sat, 30 Jan 2010 13:07:03 +0000 (+0100) Subject: wma: Defer decoding until two data blocks are available. X-Git-Tag: v0.4.2~70 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=48cf708771f7e3d43357ee2717b6052728518006 wma: Defer decoding until two data blocks are available. This avoids buffer underruns caused by frames that span two blocks. --- diff --git a/wmadec_filter.c b/wmadec_filter.c index d78c72bd..96fb5008 100644 --- a/wmadec_filter.c +++ b/wmadec_filter.c @@ -1255,11 +1255,12 @@ next_buffer: fn->min_iqs += 4096; goto next_buffer; } - fn->min_iqs = WMA_FRAME_SKIP + pwd->ahi.block_align; + fn->min_iqs = 2 * (WMA_FRAME_SKIP + pwd->ahi.block_align); fn->private_data = pwd; converted = pwd->ahi.header_len; goto success; } + fn->min_iqs = WMA_FRAME_SKIP + pwd->ahi.block_align; for (;;) { char *out; int out_size = WMA_OUTPUT_BUFFER_SIZE;