mirror of
https://git.videolan.org/git/ffmpeg.git
synced 2024-09-12 02:14:56 +02:00
AC-3 decoder, soc revision 52, Aug 16 22:45:07 2006 UTC by cloud9
Reset the blksw and dithflag to 0 at the begining of each block. Otherwise blockswitching propagates over multiple frames even if block switching is not enabled for that frame. Also reuse rematflg. Originally committed as revision 9660 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
45b0ed13a8
commit
67414da7f7
@ -1632,9 +1632,11 @@ static int ac3_parse_audio_block(AC3DecodeContext * ctx)
|
||||
for (i = 0; i < 5; i++)
|
||||
ctx->chcoeffs[i] = 2.0;
|
||||
|
||||
ctx->blksw = 0;
|
||||
for (i = 0; i < nfchans; i++) /*block switch flag */
|
||||
ctx->blksw |= get_bits1(gb) << i;
|
||||
|
||||
ctx->dithflag = 0;
|
||||
for (i = 0; i < nfchans; i++) /* dithering flag */
|
||||
ctx->dithflag |= get_bits1(gb) << i;
|
||||
|
||||
@ -1886,7 +1888,7 @@ static int ac3_parse_audio_block(AC3DecodeContext * ctx)
|
||||
dump_floats("channel transform coefficients", 10, ctx->transform_coeffs[i + 1], BLOCK_SIZE);*/
|
||||
|
||||
/* recover coefficients if rematrixing is in use */
|
||||
if (ctx->rematstr)
|
||||
if (ctx->rematflg)
|
||||
do_rematrixing(ctx);
|
||||
|
||||
do_imdct(ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user