[FFmpeg-cvslog] avfilter/avf_showfreqs: avoid wasteful pow

Ganesh Ajjanagadde git at videolan.org
Thu Dec 10 02:10:43 CET 2015


ffmpeg | branch: master | Ganesh Ajjanagadde <gajjanagadde at gmail.com> | Wed Dec  9 18:02:22 2015 -0500| [e5d771c84deaa70ce9fab5951eee831cbe5e82a9] | committer: Ganesh Ajjanagadde

avfilter/avf_showfreqs: avoid wasteful pow

pow is a ridiculous function for computing a simple Gaussian.

Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e5d771c84deaa70ce9fab5951eee831cbe5e82a9
---

 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 a3665ef..3ed0155 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:



More information about the ffmpeg-cvslog mailing list