g723_1: clip argument for 15-bit version of normalize_bits()

It expects maximum value to be 32767 but calculations in scale_vector()
which uses this function can give it ABS(-32768) which leads to wrong
result and thus clipping is needed.
This commit is contained in:
Kostya Shishkov 2012-08-07 19:32:20 +02:00
parent f86b2f3661
commit e78e6c37ef
1 changed files with 1 additions and 0 deletions

View File

@ -290,6 +290,7 @@ static int scale_vector(int16_t *vector, int length)
for (i = 0; i < length; i++) for (i = 0; i < length; i++)
max = FFMAX(max, FFABS(vector[i])); max = FFMAX(max, FFABS(vector[i]));
max = FFMIN(max, 0x7FFF);
bits = normalize_bits(max, 15); bits = normalize_bits(max, 15);
scale = (bits == 15) ? 0x7FFF : (1 << bits); scale = (bits == 15) ? 0x7FFF : (1 << bits);