From e5d771c84deaa70ce9fab5951eee831cbe5e82a9 Mon Sep 17 00:00:00 2001 From: Ganesh Ajjanagadde Date: Wed, 9 Dec 2015 18:02:22 -0500 Subject: [PATCH] avfilter/avf_showfreqs: avoid wasteful pow pow is a ridiculous function for computing a simple Gaussian. Reviewed-by: Paul B Mahol Signed-off-by: Ganesh Ajjanagadde --- libavfilter/avf_showfreqs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavfilter/avf_showfreqs.c b/libavfilter/avf_showfreqs.c index a3665ef4bb..3ed0155f01 100644 --- a/libavfilter/avf_showfreqs.c +++ b/libavfilter/avf_showfreqs.c @@ -227,8 +227,9 @@ static void generate_window_func(float *lut, int N, int win_func, float *overlap *overlap = 0.75; break; case WFUNC_GAUSS: +#define SQR(x) ((x)*(x)) for (n = 0; n < N; n++) - lut[n] = pow(M_E,-0.5*pow((n-(N-1)/2)/(0.4*(N-1)/2.f),2)); + lut[n] = exp(-0.5 * SQR((n-(N-1)/2)/(0.4*(N-1)/2.f))); *overlap = 0.75; break; default: