From 8848c8440eb5816d5a9c3d38e0e20342867ef2cc Mon Sep 17 00:00:00 2001 From: Rostislav Pehlivanov Date: Sun, 6 Sep 2015 15:10:28 +0100 Subject: [PATCH] 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 --- libavcodec/aacenc_pred.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 */