mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-02 09:01:46 -05:00
sconv: Use optimized conversion function for both directions
for example, the conversion function for convert_from_float32ne(PA_SAMPLE_S16LE) can also be used for convert_to_s16ne(PA_SAMPLE_FLOAT32LE) v2: ARM can potentially be big- or little endian; only apply optimization on LE based on WORDS_BIGENDIAN #define (thanks, Tanu) Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
This commit is contained in:
parent
1499271f46
commit
6d9891e8b9
2 changed files with 6 additions and 1 deletions
|
|
@ -89,4 +89,8 @@ void pa_convert_func_init_neon(pa_cpu_arm_flag_t flags) {
|
|||
pa_log_info("Initialising ARM NEON optimized conversions.");
|
||||
pa_set_convert_from_float32ne_function(PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_neon);
|
||||
pa_set_convert_to_float32ne_function(PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_to_f32ne_neon);
|
||||
#ifndef WORDS_BIGENDIAN
|
||||
pa_set_convert_from_s16ne_function(PA_SAMPLE_FLOAT32LE, (pa_convert_func_t) pa_sconv_s16le_to_f32ne_neon);
|
||||
pa_set_convert_to_s16ne_function(PA_SAMPLE_FLOAT32LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_neon);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -168,10 +168,11 @@ void pa_convert_func_init_sse(pa_cpu_x86_flag_t flags) {
|
|||
if (flags & PA_CPU_X86_SSE2) {
|
||||
pa_log_info("Initialising SSE2 optimized conversions.");
|
||||
pa_set_convert_from_float32ne_function(PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse2);
|
||||
|
||||
pa_set_convert_to_s16ne_function(PA_SAMPLE_FLOAT32LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse2);
|
||||
} else if (flags & PA_CPU_X86_SSE) {
|
||||
pa_log_info("Initialising SSE optimized conversions.");
|
||||
pa_set_convert_from_float32ne_function(PA_SAMPLE_S16LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse);
|
||||
pa_set_convert_to_s16ne_function(PA_SAMPLE_FLOAT32LE, (pa_convert_func_t) pa_sconv_s16le_from_f32ne_sse);
|
||||
}
|
||||
|
||||
#endif /* defined (__i386__) || defined (__amd64__) */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue