summaryrefslogtreecommitdiff
path: root/libavcodec/aacenc_pred.c
diff options
context:
space:
mode:
authorRostislav Pehlivanov <atomnuker@gmail.com>2015-09-06 15:10:28 +0100
committerRostislav Pehlivanov <atomnuker@gmail.com>2015-09-06 15:30:26 +0100
commit8848c8440eb5816d5a9c3d38e0e20342867ef2cc (patch)
treeca7a9b33906717c35825c5c384f78b0221c000bc /libavcodec/aacenc_pred.c
parenta71f7de95bf34dcf2df7f7adf9e21bd0ed0e4f61 (diff)
aacenc_pred: disable PNS SFBs and disable right predictors with IS
Since PNS generates coefficients it doesn't make sense to send the predicted ones as well. Also the specifications explicitly state to disable right channel IS predictors. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Diffstat (limited to 'libavcodec/aacenc_pred.c')
-rw-r--r--libavcodec/aacenc_pred.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/aacenc_pred.c b/libavcodec/aacenc_pred.c
index eb8e7f7d27..c0e5e6e3b6 100644
--- a/libavcodec/aacenc_pred.c
+++ b/libavcodec/aacenc_pred.c
@@ -262,7 +262,9 @@ void ff_aac_search_for_pred(AACEncContext *s, SingleChannelElement *sce)
const int num_coeffs = sce->ics.swb_offset[sfb + 1] - start_coef;
const FFPsyBand *band = &s->psy.ch[s->cur_channel].psy_bands[sfb];
- if (start_coef + num_coeffs > MAX_PREDICTORS)
+ if (start_coef + num_coeffs > MAX_PREDICTORS ||
+ (s->cur_channel && sce->band_type[sfb] >= INTENSITY_BT2) ||
+ sce->band_type[sfb] == NOISE_BT)
continue;
/* Normal coefficients */