aboutsummaryrefslogtreecommitdiffstats
path: root/alc/mixvoice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alc/mixvoice.cpp')
-rw-r--r--alc/mixvoice.cpp14
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>;