diff options
| author | bunnei <bunneidev@gmail.com> | 2020-02-22 22:26:16 -0500 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2020-02-22 22:26:16 -0500 |
| commit | dc92c1b1eefceb32519d9f5c7cada781b4fafdde (patch) | |
| tree | 07ea0ec81493eb495729633ef2542c20c776a64b /src/audio_core/algorithm/interpolate.h | |
| parent | 1ad21c841aba41952f03a5a6b990299c0f78e3a7 (diff) | |
audio_core: interpolate: Improvements to fix audio crackling.
- Fixes audio crackling in Crash Team Racing Nitro-Fueled, Super Mario Odyssey, and others.
- Addresses followup issues from #3310.
Diffstat (limited to 'src/audio_core/algorithm/interpolate.h')
| -rw-r--r-- | src/audio_core/algorithm/interpolate.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/audio_core/algorithm/interpolate.h b/src/audio_core/algorithm/interpolate.h index 1b9831a753..ab1a31754e 100644 --- a/src/audio_core/algorithm/interpolate.h +++ b/src/audio_core/algorithm/interpolate.h @@ -6,12 +6,17 @@ #include <array> #include <vector> + #include "common/common_types.h" namespace AudioCore { struct InterpolationState { - int fraction = 0; + static constexpr std::size_t taps{4}; + static constexpr std::size_t history_size{taps * 2 - 1}; + std::array<std::array<s16, 2>, history_size> history{}; + double position{}; + s32 fraction{}; }; /// Interpolates input signal to produce output signal. |
