Hi, > > > 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?) p. -- Peter Meerwald +43-664-2444418 (mobile)