[FFmpeg-devel] [PATCHv2 2/2] avcodec/sinewin_tablegen: use sin instead of sinf for fixed point to improve precision

Marton Balint cus at passwd.hu
Sun Mar 13 23:50:54 CET 2016


Signed-off-by: Marton Balint <cus at passwd.hu>
---
 libavcodec/sinewin_tablegen.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/sinewin_tablegen.h b/libavcodec/sinewin_tablegen.h
index 4432135..9c912aa 100644
--- a/libavcodec/sinewin_tablegen.h
+++ b/libavcodec/sinewin_tablegen.h
@@ -50,9 +50,9 @@ SINETABLE(8192);
 #endif
 
 #if USE_FIXED
-#define SIN_FIX(a) (int)floor((a) * 0x80000000 + 0.5)
+#define SIN_FIX(a) (int)floor(sin(a) * 0x80000000 + 0.5)
 #else
-#define SIN_FIX(a) a
+#define SIN_FIX(a) sinf(a)
 #endif
 
 SINETABLE_CONST INTFLOAT * const AAC_RENAME(ff_sine_windows)[] = {
@@ -66,7 +66,7 @@ SINETABLE_CONST INTFLOAT * const AAC_RENAME(ff_sine_windows)[] = {
 av_cold void AAC_RENAME(ff_sine_window_init)(INTFLOAT *window, int n) {
     int i;
     for(i = 0; i < n; i++)
-        window[i] = SIN_FIX(sinf((i + 0.5) * (M_PI / (2.0 * n))));
+        window[i] = SIN_FIX((i + 0.5) * (M_PI / (2.0 * n)));
 }
 
 av_cold void AAC_RENAME(ff_init_ff_sine_windows)(int index) {
-- 
2.6.2



More information about the ffmpeg-devel mailing list