aboutsummaryrefslogtreecommitdiff
path: root/src/audio_core/algorithm
diff options
context:
space:
mode:
authorheapo <heapo3@gmail.com>2018-12-06 09:15:47 -0800
committerheapo <heapo3@gmail.com>2018-12-06 09:46:08 -0800
commit117b1f3ec1bae4d9be68cf401f739fc7d35fcc40 (patch)
tree1baa2c45bf3c1f63b0820a10ef8cae69c410bcd4 /src/audio_core/algorithm
parent9390452195a1c1bccaab8561bc39b9100061a079 (diff)
Avoid (expensive) audio interpolation when sample rates already match
Diffstat (limited to 'src/audio_core/algorithm')
-rw-r--r--src/audio_core/algorithm/interpolate.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/audio_core/algorithm/interpolate.cpp b/src/audio_core/algorithm/interpolate.cpp
index 3aea9b0f2c..5005ba5199 100644
--- a/src/audio_core/algorithm/interpolate.cpp
+++ b/src/audio_core/algorithm/interpolate.cpp
@@ -54,8 +54,9 @@ std::vector<s16> Interpolate(InterpolationState& state, std::vector<s16> input,
double l = 0.0;
double r = 0.0;
for (std::size_t j = 0; j < h.size(); j++) {
- l += Lanczos(taps, pos + j - taps + 1) * h[j][0];
- r += Lanczos(taps, pos + j - taps + 1) * h[j][1];
+ const double lanczos_calc = Lanczos(taps, pos + j - taps + 1);
+ l += lanczos_calc * h[j][0];
+ r += lanczos_calc * h[j][1];
}
output.emplace_back(static_cast<s16>(std::clamp(l, -32768.0, 32767.0)));
output.emplace_back(static_cast<s16>(std::clamp(r, -32768.0, 32767.0)));