[FFmpeg-devel] [PATCH] ac3enc: fix 16-bit signed overflow in mdct

Mans Rullgard mans
Tue Dec 21 00:40:51 CET 2010


One of the cos table values is -32768 and must not be negated.
---
 libavcodec/ac3enc.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index d372e6a..1191d16 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -405,7 +405,7 @@ static void mdct512(AC3MDCTContext *mdct, int32_t *out, int16_t *in)
     for (i = 0; i < n4; i++) {
         re =  ((int)rot[   2*i] - (int)rot[ n-1-2*i]) >> 1;
         im = -((int)rot[n2+2*i] - (int)rot[n2-1-2*i]) >> 1;
-        CMUL(x[i].re, x[i].im, re, im, -mdct->xcos1[i], mdct->xsin1[i]);
+        CMUL(x[i].re, x[i].im, -re, -im, mdct->xcos1[i], -mdct->xsin1[i]);
     }
 
     fft(mdct, x, mdct->nbits - 2);
-- 
1.7.3.3




More information about the ffmpeg-devel mailing list