diff options
Diffstat (limited to 'alc/mixvoice.cpp')
-rw-r--r-- | alc/mixvoice.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/alc/mixvoice.cpp b/alc/mixvoice.cpp index bfb3b663..58a08ce3 100644 --- a/alc/mixvoice.cpp +++ b/alc/mixvoice.cpp @@ -135,7 +135,7 @@ inline HrtfMixerBlendFunc SelectHrtfBlendMixer() } // namespace -ResamplerFunc SelectResampler(Resampler resampler) +ResamplerFunc SelectResampler(Resampler resampler, ALuint increment) { switch(resampler) { @@ -159,6 +159,18 @@ ResamplerFunc SelectResampler(Resampler resampler) return Resample_<CubicTag,CTag>; case Resampler::BSinc12: case Resampler::BSinc24: + if(increment <= FRACTIONONE) + { +#ifdef HAVE_NEON + if((CPUCapFlags&CPU_CAP_NEON)) + return Resample_<FastBSincTag,NEONTag>; +#endif +#ifdef HAVE_SSE + if((CPUCapFlags&CPU_CAP_SSE)) + return Resample_<FastBSincTag,SSETag>; +#endif + return Resample_<FastBSincTag,CTag>; + } #ifdef HAVE_NEON if((CPUCapFlags&CPU_CAP_NEON)) return Resample_<BSincTag,NEONTag>; |