aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRostislav Pehlivanov <atomnuker@gmail.com>2015-09-06 15:09:22 +0100
committerRostislav Pehlivanov <atomnuker@gmail.com>2015-09-06 15:30:26 +0100
commita71f7de95bf34dcf2df7f7adf9e21bd0ed0e4f61 (patch)
treea33fbbaa6af871e34c2b52093924cc0abffc511e
parentb9b1fd118347746c87a2be372757a30dc1700a6b (diff)
downloadffmpeg-a71f7de95bf34dcf2df7f7adf9e21bd0ed0e4f61.tar.gz
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@gmail.com>
-rw-r--r--libavcodec/aacenc_is.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/aacenc_is.c b/libavcodec/aacenc_is.c
index bb201f628d..95ba3f8d50 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];