11.05.2014 03:01, Peter Meerwald wrote:
* when PulseAudio starts from s16 samples and decides to use the speex-float
resampler via speex_resampler_process_float(), it has to convert s16 to float
first anyway;
yes, this is handled explicitly in PA's sconv code (and there are
optimizations for SSE and NEON)
doing something like
float *dst=...;
int16_t *src=...;
*dst = *src;
as observed in speex's _process_int() when compiled with FIXED_POINT
#undefined is not a good idea (performance wise)
* it should not matter who converts s16 to float and back - speex or
PulseAudio.
it does, PA can do better
OK, it indeed has SSE/NEON optimizations.
Then, based on the above, let's adopt this plan:
* Autodetect fixed-point speex at runtime.
* Don't change the existing speex-float code.
* If speex is fixed-point, make pulseaudio use speex-fixed if a user
requested speex-float.
* Add a comment about the scaling problem somewhere.
If you prefer, I can do it on the next week, but today I am busy with
another patch.
--
Alexander E. Patrakov
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss