diff options
| author | bunnei <bunneidev@gmail.com> | 2018-12-11 11:45:53 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-11 11:45:53 -0500 |
| commit | 2c6679bb013af6c153e36b35606dddcc75f129dc (patch) | |
| tree | dbf9d1c2c1cb8daa2b7e7de86391612b519072ae /src/audio_core/audio_renderer.cpp | |
| parent | d63c883e6647267e8627c0e54c3aac2f39b6b198 (diff) | |
| parent | 117b1f3ec1bae4d9be68cf401f739fc7d35fcc40 (diff) | |
Merge pull request #1877 from heapo/audio_interp
Perf: 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 2e59894ab..2683f3a5f 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; } |
