Module: libav
Branch: master
Commit: 68e57cde68f3da4c557ca15491fda74d1ea6321e

Author:    Martin Storsjö <[email protected]>
Committer: Martin Storsjö <[email protected]>
Date:      Thu Jul 11 16:30:18 2013 +0300

ac3dec: Increment channel pointers only once per channel

If the channel mapping map multiple output channels to one
input channel, we should only increment the actual pointer once.

Cc: [email protected]
Signed-off-by: Martin Storsjö <[email protected]>

---

 libavcodec/ac3dec.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index abfd380..01da328 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -1393,10 +1393,10 @@ static int ac3_decode_frame(AVCodecContext * avctx, 
void *data,
         if (err)
             for (ch = 0; ch < s->out_channels; ch++)
                 memcpy(s->outptr[channel_map[ch]], output[ch], 1024);
-        for (ch = 0; ch < s->out_channels; ch++) {
+        for (ch = 0; ch < s->out_channels; ch++)
             output[ch] = s->outptr[channel_map[ch]];
-            s->outptr[channel_map[ch]] += AC3_BLOCK_SIZE;
-        }
+        for (ch = 0; ch < s->channels; ch++)
+            s->outptr[ch] += AC3_BLOCK_SIZE;
     }
 
     /* keep last block for error concealment in next frame */

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to