summaryrefslogtreecommitdiff
path: root/libavcodec
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
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')
-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 */