diff ac3dec.c @ 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
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);