ff_clz is faster, and uses an intrinsic (at the moment on GCC). exp2 is a wasteful function for a simple integer exponentiation.
Untested. Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> --- libavfilter/af_sofalizer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavfilter/af_sofalizer.c b/libavfilter/af_sofalizer.c index 6a24cbc..0bd1931 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" @@ -996,8 +997,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]); -- 2.6.4 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel