[FFmpeg-cvslog] g723.1: fix addition overflow

Mans Rullgard git at videolan.org
Fri Aug 10 16:31:45 CEST 2012


ffmpeg | branch: master | Mans Rullgard <mans at mansr.com> | Fri Aug 10 01:17:20 2012 +0100| [05c36e0e5fbf0b75dbbbd327ad2f6a62992f9262] | committer: Mans Rullgard

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 at mansr.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=05c36e0e5fbf0b75dbbbd327ad2f6a62992f9262
---

 libavcodec/g723_1.c         |    2 +-
 tests/ref/fate/g723_1-dec-3 |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/g723_1.c b/libavcodec/g723_1.c
index 53b9ade..7d8a48e 100644
--- a/libavcodec/g723_1.c
+++ b/libavcodec/g723_1.c
@@ -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;
         }
diff --git a/tests/ref/fate/g723_1-dec-3 b/tests/ref/fate/g723_1-dec-3
index eabdd73..d1a2946 100644
--- a/tests/ref/fate/g723_1-dec-3
+++ b/tests/ref/fate/g723_1-dec-3
@@ -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



More information about the ffmpeg-cvslog mailing list