Mercurial > libavcodec.hg
changeset 5312:2c875e6274d5 libavcodec
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.
author | jbr |
---|---|
date | Sat, 14 Jul 2007 15:59:25 +0000 |
parents | 7742d5411c9d |
children | 4bd60d3bab7e |
files | ac3dec.c |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ac3dec.c Sat Jul 14 15:58:42 2007 +0000 +++ b/ac3dec.c Sat Jul 14 15:59:25 2007 +0000 @@ -1632,9 +1632,11 @@ 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 @@ 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);