[pulseaudio-discuss] [PATCH v2] resampler: Support speex resampler compiled with FIXED_POINT

Peter Meerwald pmeerw at pmeerw.net
Sat May 10 10:12:39 PDT 2014


> > > When Speex is compiled with FIXED_POINT defined, it scales float input
> > > to ±32768 instead of ±1. In order to make floating point resampler
> > > work with speex compiled with FIXED_POINT, we need to rescale the input
> > > to speex. This rescaling does not hurt normal speex, so we do it
> > > unconditionally.
> > 
> > floating point multiplication is quite costly on some platforms, I'd
> > rather not force everyone to scale every sample twice for no good reason
> Well, on such platforms (*cough* ARM *cough*) I'd call it a bug to use
> speex-float-* resamplers by default, or even to provide them at all. If we fix
> that, then the extra multiplication in an already-very-slow path would no
> longer be relevant.

speex-float resampler is actually faster than speex-fixed when using the 
NEON patch, or at least on par -- so it depends

but floating point math really sucks on Cortex-A8, doing the same
operation with NEON is quite fast

so how about overriding PA's speex-float choice to speex-fixed when we 
find that speex-float is compiled as FIXED_POINT (and educate the user?)



Peter Meerwald
+43-664-2444418 (mobile)

More information about the pulseaudio-discuss mailing list