gstreamer/gst/audioconvert
Petr Kulhavy 010b9547d3 audio-converter: optimize endian conversion
Optimize LE<->BE conversion by adding a dedicated fast path instead of
using the generic converter. Implement transform_ip function in order to do the
endian swap in place.

This saves buffer allocation for the intermediate format, can be done in place
and also performs the conversion in one step instead of unpack-convert-pack.

For all bit widths the naive algorithm is implemented, which provides the best
performance when compiled with -O3. ORC was considered but eventually removed
as it requires a dedicated function for in-place conversion (due to the
"restrict" parameters).

A more complex algorithm for the 24-bit conversion with unrolled loop and
32-bit processing is implemented in the #if 0 section. It performs better if
compiled with -O2. With -O3 however the naive algorithm performs better.

https://bugzilla.gnome.org/show_bug.cgi?id=773073
2016-11-28 17:24:17 +02:00
..
.gitignore gst/audioconvert/gstaudioconvert.c: create channel conversion matrix when linking 2005-02-13 17:39:22 +00:00
gstaudioconvert.c audio-converter: optimize endian conversion 2016-11-28 17:24:17 +02:00
gstaudioconvert.h audio-converter: move audio converter to audio libs 2015-11-06 17:53:22 +01:00
Makefile.am audio-converter: move audio converter to audio libs 2015-11-06 17:53:22 +01:00
meson.build Add support for Meson as alternative/parallel build system 2016-08-20 11:09:51 +01:00
plugin.c audioconvert: fix build 2015-11-06 18:12:28 +00:00
plugin.h Fix FSF address 2012-11-03 23:05:09 +00:00