OSDN Git Service

improve precision in mdct.c using double for some temporaries
authorMåns Rullgård <mans@mansr.com>
Sun, 16 Mar 2008 13:15:42 +0000 (13:15 +0000)
committerMåns Rullgård <mans@mansr.com>
Sun, 16 Mar 2008 13:15:42 +0000 (13:15 +0000)
Originally committed as revision 12457 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mdct.c

index e809fcd..c51f809 100644 (file)
@@ -54,7 +54,7 @@ void ff_kbd_window_init(float *window, float alpha, int n)
 int ff_mdct_init(MDCTContext *s, int nbits, int inverse)
 {
     int n, n4, i;
-    float alpha;
+    double alpha;
 
     memset(s, 0, sizeof(*s));
     n = 1 << nbits;
@@ -85,10 +85,10 @@ int ff_mdct_init(MDCTContext *s, int nbits, int inverse)
 /* complex multiplication: p = a * b */
 #define CMUL(pre, pim, are, aim, bre, bim) \
 {\
-    float _are = (are);\
-    float _aim = (aim);\
-    float _bre = (bre);\
-    float _bim = (bim);\
+    double _are = (are);\
+    double _aim = (aim);\
+    double _bre = (bre);\
+    double _bim = (bim);\
     (pre) = _are * _bre - _aim * _bim;\
     (pim) = _are * _bim + _aim * _bre;\
 }