this is v2 of the remap patches I've moved original patch 7 which adds the remap state back, before actually using it (as suggested by A. Patrakov) there is a new patch 9 which changes the void argument types of the remap function implementations to int16_t / float for consistency (as suggested by A. Patrakov) pa_set_remap_func() still takes the function pointers with void arguments, this may be changed lateron I intend to push v2 shortly, thanks for review! Peter Meerwald (12): remap: Don't use PA_VOLUME_NORM remap: Rename pa_init_remap() to pa_init_remap_func() remap: Refactor channel remap table computation calc_map_table() remap: Make resampler's remap structure more self-contained remap: Split remapping functions into s16 and float implementation remap: Use float constant instead of double remap: Add helper function to setup channel arrangement information remap: Cleanup remap function selection, add pa_set_remap_func() helper remap: Change remapping function argument type from void to int16_t / float as appropriate remap: Add (optional) state to remap struct remap: Add special remapping case which just re-arranges channels remap: Add stereo to mono and 4-channel special case remapping src/pulsecore/remap.c | 432 ++++++++++++++++++++++++++++++++++------------ src/pulsecore/remap.h | 20 ++- src/pulsecore/remap_mmx.c | 53 +++--- src/pulsecore/remap_sse.c | 53 +++--- src/pulsecore/resampler.c | 38 ++-- src/tests/cpu-test.c | 22 +-- 6 files changed, 418 insertions(+), 200 deletions(-) -- 1.9.1