aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGanesh Ajjanagadde <gajjanagadde@gmail.com>2015-12-29 13:16:08 -0800
committerGanesh Ajjanagadde <gajjanagadde@gmail.com>2016-01-01 12:12:10 -0800
commit9dba3f8f09834b68f4671de37ee67a95c09c4378 (patch)
tree687a7c47938a82cd87f4a7f31f3c1287dc99f103
parent77eeaa2c3dec9d0e374ea5597d002527306261ec (diff)
downloadffmpeg-9dba3f8f09834b68f4671de37ee67a95c09c4378.tar.gz
lavfi/af_sofalizer: remove exp2 and replace clz by ff_clz
ff_clz is faster, and uses an intrinsic (at the moment on GCC). exp2 is a wasteful function for a simple integer exponentiation. Untested. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
-rw-r--r--libavfilter/af_sofalizer.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/libavfilter/af_sofalizer.c b/libavfilter/af_sofalizer.c
index 6a24cbced8..0f1231f884 100644
--- a/libavfilter/af_sofalizer.c
+++ b/libavfilter/af_sofalizer.c
@@ -30,6 +30,7 @@
#include "libavcodec/avfft.h"
#include "libavutil/float_dsp.h"
+#include "libavutil/intmath.h"
#include "libavutil/opt.h"
#include "avfilter.h"
#include "internal.h"
@@ -952,18 +953,6 @@ static av_cold int init(AVFilterContext *ctx)
return 0;
}
-static inline unsigned clz(unsigned x)
-{
- unsigned i = sizeof(x) * 8;
-
- while (x) {
- x >>= 1;
- i--;
- }
-
- return i;
-}
-
static int config_input(AVFilterLink *inlink)
{
AVFilterContext *ctx = inlink->dst;
@@ -996,8 +985,8 @@ static int config_input(AVFilterLink *inlink)
}
/* buffer length is longest IR plus max. delay -> next power of 2
(32 - count leading zeros gives required exponent) */
- s->buffer_length = exp2(32 - clz((uint32_t)n_max));
- s->n_fft = exp2(32 - clz((uint32_t)(n_max + inlink->sample_rate)));
+ s->buffer_length = 1 << (32 - ff_clz(n_max));
+ s->n_fft = 1 << (32 - ff_clz(n_max + inlink->sample_rate));
if (s->type == FREQUENCY_DOMAIN) {
av_fft_end(s->fft[0]);