g723.1: fix addition overflow

This addition must be done as 64-bit to avoid overflow and for
the subsequent clipping to be meaningful.

Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard 2012-08-10 01:17:20 +01:00
parent 52aa3015a3
commit 05c36e0e5f
2 changed files with 2 additions and 2 deletions

View File

@ -979,7 +979,7 @@ static void formant_postfilter(G723_1_Context *p, int16_t *lpc, int16_t *buf)
/* Compensation filter */ /* Compensation filter */
for (j = 0; j < SUBFRAME_LEN; j++) { for (j = 0; j < SUBFRAME_LEN; j++) {
buf_ptr[j] = av_clipl_int32(signal_ptr[j] + buf_ptr[j] = av_clipl_int32((int64_t)signal_ptr[j] +
((signal_ptr[j - 1] >> 16) * ((signal_ptr[j - 1] >> 16) *
temp << 1)) >> 16; temp << 1)) >> 16;
} }

View File

@ -13,7 +13,7 @@
0, 2640, 2640, 240, 480, 0xe253c7e1 0, 2640, 2640, 240, 480, 0xe253c7e1
0, 2880, 2880, 240, 480, 0x672cbf0a 0, 2880, 2880, 240, 480, 0x672cbf0a
0, 3120, 3120, 240, 480, 0x5f32aa27 0, 3120, 3120, 240, 480, 0x5f32aa27
0, 3360, 3360, 240, 480, 0x8646a245 0, 3360, 3360, 240, 480, 0x0b3da147
0, 3600, 3600, 240, 480, 0x4819e5bc 0, 3600, 3600, 240, 480, 0x4819e5bc
0, 3840, 3840, 240, 480, 0x423dec60 0, 3840, 3840, 240, 480, 0x423dec60
0, 4080, 4080, 240, 480, 0xafefe289 0, 4080, 4080, 240, 480, 0xafefe289