virtual-surround-sink: Use FFTW3 instead of naive approach
authorChristopher Snowhill <kode54@gmail.com>
Fri, 24 Jan 2020 05:21:59 +0000 (21:21 -0800)
committerPulseAudio / PipeWire Marge Bot <pulseaudio-maintainers@lists.freedesktop.org>
Tue, 24 Nov 2020 03:56:02 +0000 (03:56 +0000)
commit00bd8e1ef8e131b05ca7b52b28e4daf0e1086555
tree6a378d2ebb062756d1cb2cdca3d0aeb874bf88ab
parent5f3717f39cc3e373a3caaebd0d1625486fdd3b31
virtual-surround-sink: Use FFTW3 instead of naive approach

This replaces the original virtual surround sink with a total
rewrite, aiming to implement any number of hrir use cases,
including asymmetrical impulses as two separate left and right
output files. It uses FFTW3 FFT convolution, using the overlap-
save method, with full rewind support. It operates in steps
equal to the resampled length of the hrir, and overlaps input
blocks in increments equal to the size of the FFT block. If
using paired hrirs, it requires matched sample spec and sample
rates and channel maps. For best results, the input files should
have speaker maps, rather than expecting the sample loader to
auto detect the mapping.

Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/240>
src/Makefile.am
src/modules/meson.build
src/modules/module-virtual-surround-sink.c