From 4760aec6a09ceb1572e462941c016d699c1c5afc Mon Sep 17 00:00:00 2001
From: Justin Ruggles <justin.ruggles@gmail.com>
Date: Sat, 19 Jul 2008 22:01:46 +0000
Subject: [PATCH] read 'coupling in use' parameter from bitstream into decoder
 context first, then copy to the local variable.

Originally committed as revision 14311 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/ac3dec.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index 8f62d7f5ca8..d76597afc12 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -753,8 +753,8 @@ static int ac3_parse_audio_block(AC3DecodeContext *s, int blk)
     /* 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 @@ static int ac3_parse_audio_block(AC3DecodeContext *s, int blk)
         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) {
-- 
GitLab