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 | 1989e1b9acab221718e10e1d4aecc6e9cd2acae1 (patch) | |
| tree | 07ea0ec81493eb495729633ef2542c20c776a64b /src/audio_core/algorithm/interpolate.h | |
| parent | d4da52bbd9dea4dc65c92e9b94ec3a2442d4ccae (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 1b9831a75..ab1a31754 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. |
