Module: libav
Branch: master
Commit: 8bbdd20a293eab2cfac9f332613ead02a4e3c0c2

Author:    Claudio Freire <[email protected]>
Committer: Martin Storsjö <[email protected]>
Date:      Sun May 12 09:38:40 2013 +0200

aacenc: Fix erasure of surround channels

This was due to a miscomputation of s->cur_channel, which led to
psy-based encoders using the psy coefficients for the wrong channel.

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

---

 libavcodec/aacenc.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c
index 60eca59..b2ad47b 100644
--- a/libavcodec/aacenc.c
+++ b/libavcodec/aacenc.c
@@ -597,7 +597,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket 
*avpkt,
                 coeffs[ch] = cpe->ch[ch].coeffs;
             s->psy.model->analyze(&s->psy, start_ch, coeffs, wi);
             for (ch = 0; ch < chans; ch++) {
-                s->cur_channel = start_ch * 2 + ch;
+                s->cur_channel = start_ch + ch;
                 s->coder->search_for_quantizers(avctx, s, &cpe->ch[ch], 
s->lambda);
             }
             cpe->common_window = 0;
@@ -613,7 +613,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket 
*avpkt,
                     }
                 }
             }
-            s->cur_channel = start_ch * 2;
+            s->cur_channel = start_ch;
             if (s->options.stereo_mode && cpe->common_window) {
                 if (s->options.stereo_mode > 0) {
                     IndividualChannelStream *ics = &cpe->ch[0].ics;

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

Reply via email to