[FFmpeg-cvslog] aacenc_is: ignore PNS band types

Rostislav Pehlivanov git at videolan.org
Sun Sep 6 16:31:40 CEST 2015


ffmpeg | branch: master | Rostislav Pehlivanov <atomnuker at gmail.com> | Sun Sep  6 15:09:22 2015 +0100| [a71f7de95bf34dcf2df7f7adf9e21bd0ed0e4f61] | committer: Rostislav Pehlivanov

aacenc_is: ignore PNS band types

It's better to trust that the coefficients generated will be
closer than the coefficients derived, and the new PNS implementation
makes sure that this happens.

Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a71f7de95bf34dcf2df7f7adf9e21bd0ed0e4f61
---

 libavcodec/aacenc_is.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/aacenc_is.c b/libavcodec/aacenc_is.c
index bb201f6..95ba3f8 100644
--- a/libavcodec/aacenc_is.c
+++ b/libavcodec/aacenc_is.c
@@ -107,6 +107,11 @@ void ff_aac_search_for_is(AACEncContext *s, AVCodecContext *avctx, ChannelElemen
                 cpe->ch[1].band_type[w*16+g] != NOISE_BT && !cpe->ch[1].zeroes[w*16+g]) {
                 float ener0 = 0.0f, ener1 = 0.0f, ener01 = 0.0f;
                 struct AACISError ph_err1, ph_err2, *erf;
+                if (sce0->band_type[w*16+g] == NOISE_BT ||
+                    sce1->band_type[w*16+g] == NOISE_BT) {
+                    start += sce0->ics.swb_sizes[g];
+                    continue;
+                }
                 for (w2 = 0; w2 < sce0->ics.group_len[w]; w2++) {
                     for (i = 0; i < sce0->ics.swb_sizes[g]; i++) {
                         float coef0 = sce0->pcoeffs[start+(w+w2)*128+i];



More information about the ffmpeg-cvslog mailing list