Hi,

These patches add support for libsoxr resampler library to PulseAudio. The 
resampler is exposed in four selectable quality presets: lq, mq, hq and vhq (in 
the order of increasing quality). The patches update the code, build system and 
docs.

libsoxr[1] is a resampler library extracted from the SoX utility[2]. It offers 
very good output quality and is very fast. Quality comparisons are available 
here:

- http://src.infinitewave.ca/ - "SoX 14.4 High Quality" corresponds to hq 
quality. "SoX 14.4 VHQ Linear Phase" is close to vhq, the passband for vhq is 
slightly lower.
- http://sox.sourceforge.net/SoX/Resampling - there are graphs for impulse 
response comparison with libsamplerate available at the bottom of the page.
- http://lastique.github.io/src_test/ - I ran some more tests to compare with 
Speex resampler at different levels. Some performance measurments are also 
present at the end.

In short, libsoxr is almost always faster than speex, and introduces much less 
distortions. Its passband frequency is slightly lower than speex though, and it 
can add a delay up to 20 ms in some cases.

Thanks.

[1]: https://sourceforge.net/projects/soxr/
[2]: http://sox.sourceforge.net/Main/HomePage

Andrey Semashev (4):
  Added libsoxr resampler backend.
  Enabled libsoxr resampler backend.
  Added libsoxr detection and optional build of soxr resampler backend.
  Added documentation for soxr resampling methods.

 configure.ac                   |  17 +++++
 man/pulse-daemon.conf.5.xml.in |  12 ++-
 src/Makefile.am                |   6 ++
 src/pulsecore/resampler.c      |  32 +++++++-
 src/pulsecore/resampler.h      |   5 ++
 src/pulsecore/resampler/soxr.c | 168 +++++++++++++++++++++++++++++++++++++++++
 6 files changed, 235 insertions(+), 5 deletions(-)
 create mode 100644 src/pulsecore/resampler/soxr.c

-- 
2.1.0

_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to