audiofxbasefirfilter: FFT convolution implementation
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 3 Dec 2009 16:27:13 +0000 (17:27 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 15 Dec 2009 17:12:46 +0000 (18:12 +0100)
commit02960383c1b1b65ead06719fc60db98410afe586
treeae953440b6668e1ced185ca94a20ca454e137cec
parentddafc20b28aacc3c5a685a9b1fedcdea0a2d5c3c
audiofxbasefirfilter: FFT convolution implementation

This provides a great speedup, especially the relationship between kernel
length and processing size is now logarithmic instead of linear. Below a
kernel size of 32 it's a bit slower, afterwards it's much faster:

17     0.788000 -> 0.950000
33     1.208000 -> 1.146000
65     2.166000 -> 1.146000
...
4097 107.444000 -> 1.508000

For sizes smaller 32 the normal time-domain convolution is chosen,
for larger sizes the FFT convolution is automatically used.

Fixes bug #594381.
gst/audiofx/Makefile.am
gst/audiofx/audiofxbasefirfilter.c
gst/audiofx/audiofxbasefirfilter.h