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

Reply via email to