diff options
author | heapo <heapo3@gmail.com> | 2018-12-06 09:15:47 -0800 |
---|---|---|
committer | heapo <heapo3@gmail.com> | 2018-12-06 09:46:08 -0800 |
commit | 117b1f3ec1bae4d9be68cf401f739fc7d35fcc40 (patch) | |
tree | 1baa2c45bf3c1f63b0820a10ef8cae69c410bcd4 /src/audio_core/audio_renderer.cpp | |
parent | 9390452195a1c1bccaab8561bc39b9100061a079 (diff) |
Avoid (expensive) audio interpolation when sample rates already match
Diffstat (limited to 'src/audio_core/audio_renderer.cpp')
-rw-r--r-- | src/audio_core/audio_renderer.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/audio_core/audio_renderer.cpp b/src/audio_core/audio_renderer.cpp index 2e59894ab4..2683f3a5fa 100644 --- a/src/audio_core/audio_renderer.cpp +++ b/src/audio_core/audio_renderer.cpp @@ -285,8 +285,11 @@ void AudioRenderer::VoiceState::RefreshBuffer() { break; } - samples = - Interpolate(interp_state, std::move(samples), GetInfo().sample_rate, STREAM_SAMPLE_RATE); + // Only interpolate when necessary, expensive. + if (GetInfo().sample_rate != STREAM_SAMPLE_RATE) { + samples = Interpolate(interp_state, std::move(samples), GetInfo().sample_rate, + STREAM_SAMPLE_RATE); + } is_refresh_pending = false; } |