cpu: Add force_generic_code flag to cpu_info struct

The remapper and channel mixing code have (faster) specialized and (slower)
generic code certain code path. The flag force_generic_code can be set to
force the generic code path which is useful for testing. Code duplication
(such as in mix-special-test) can be avoided, cleanup patches follow.

Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
This commit is contained in:
Peter Meerwald 2014-04-18 09:59:32 +02:00 committed by Peter Meerwald
parent 61c888dc93
commit f4ab8bd835
4 changed files with 31 additions and 0 deletions

View file

@ -32,6 +32,7 @@
#include <pulsecore/g711.h>
#include <pulsecore/endianmacros.h>
#include "cpu.h"
#include "mix.h"
#define VOLUME_PADDING 32
@ -606,6 +607,13 @@ static pa_do_mix_func_t do_mix_table[] = {
[PA_SAMPLE_S24_32RE] = (pa_do_mix_func_t) pa_mix_s24_32re_c
};
void pa_mix_func_init(const pa_cpu_info *cpu_info) {
if (cpu_info->force_generic_code)
do_mix_table[PA_SAMPLE_S16NE] = (pa_do_mix_func_t) pa_mix_generic_s16ne;
else
do_mix_table[PA_SAMPLE_S16NE] = (pa_do_mix_func_t) pa_mix_s16ne_c;
}
size_t pa_mix(
pa_mix_info streams[],
unsigned nstreams,