git.videolan.org
/
ffmpeg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improve precision in mdct.c using double for some temporaries
[ffmpeg.git]
/
libavcodec
/
mdct.c
diff --git
a/libavcodec/mdct.c
b/libavcodec/mdct.c
index
e809fcd
..
c51f809
100644
(file)
--- a/
libavcodec/mdct.c
+++ b/
libavcodec/mdct.c
@@
-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;
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;
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) \
{\
/* 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;\
}
(pre) = _are * _bre - _aim * _bim;\
(pim) = _are * _bim + _aim * _bre;\
}