# HG changeset patch # User jbr # Date 1216504906 0 # Node ID 9309e19c2b98993fba476744d0a9bba9a61d3cc0 # Parent 483421b11d98e3286b519caf967d607d3a024b26 read 'coupling in use' parameter from bitstream into decoder context first, then copy to the local variable. diff -r 483421b11d98 -r 9309e19c2b98 ac3dec.c --- a/ac3dec.c Sat Jul 19 21:53:54 2008 +0000 +++ b/ac3dec.c Sat Jul 19 22:01:46 2008 +0000 @@ -753,8 +753,8 @@ /* coupling strategy */ if (get_bits1(gbc)) { memset(bit_alloc_stages, 3, AC3_MAX_CHANNELS); - cpl_in_use = get_bits1(gbc); - if (cpl_in_use) { + s->cpl_in_use[blk] = get_bits1(gbc); + if (s->cpl_in_use[blk]) { /* coupling in use */ int cpl_begin_freq, cpl_end_freq; @@ -797,9 +797,9 @@ av_log(s->avctx, AV_LOG_ERROR, "new coupling strategy must be present in block 0\n"); return -1; } else { - cpl_in_use = s->cpl_in_use[blk-1]; + s->cpl_in_use[blk] = s->cpl_in_use[blk-1]; } - s->cpl_in_use[blk] = cpl_in_use; + cpl_in_use = s->cpl_in_use[blk]; /* coupling coordinates */ if (cpl_in_use) {