AAC encoder: fix wrong gain sacalefactor being set

In some conditions, where the first band was being zeroed
mainly, the wrong global gain scalefactor would be written
to the stream since it's always taken from the first band
regardless of whether it's been marked as zero or not.

So, always make sure it contians something useful.
This commit is contained in:
Claudio Freire 2015-11-26 03:37:29 -03:00
parent fc36d852ee
commit 3b1cab9351
1 changed files with 3 additions and 0 deletions

View File

@ -693,6 +693,9 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx,
if (prev != -1) {
int sfdiff = sce->sf_idx[w*16+g] - prev + SCALE_DIFF_ZERO;
av_assert1(sfdiff >= 0 && sfdiff <= 2*SCALE_MAX_DIFF);
} else if (sce->zeroes[0]) {
/** Set global gain to something useful */
sce->sf_idx[0] = sce->sf_idx[w*16+g];
}
prev = sce->sf_idx[w*16+g];
}