Browse Source

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>
tags/n1.0
Mans Rullgard 13 years ago
parent
commit
05c36e0e5f
2 changed files with 2 additions and 2 deletions
  1. +1
    -1
      libavcodec/g723_1.c
  2. +1
    -1
      tests/ref/fate/g723_1-dec-3

+ 1
- 1
libavcodec/g723_1.c View File

@@ -979,7 +979,7 @@ static void formant_postfilter(G723_1_Context *p, int16_t *lpc, int16_t *buf)

/* Compensation filter */
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) *
temp << 1)) >> 16;
}


+ 1
- 1
tests/ref/fate/g723_1-dec-3 View File

@@ -13,7 +13,7 @@
0, 2640, 2640, 240, 480, 0xe253c7e1
0, 2880, 2880, 240, 480, 0x672cbf0a
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, 3840, 3840, 240, 480, 0x423dec60
0, 4080, 4080, 240, 480, 0xafefe289


Loading…
Cancel
Save