mirror of https://git.ffmpeg.org/ffmpeg.git
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:
parent
f86b2f3661
commit
e78e6c37ef
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue