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.
This commit is contained in:
bunnei
2020-02-22 22:26:16 -05:00
parent d4da52bbd9
commit 1989e1b9ac
2 changed files with 38 additions and 23 deletions

View File

@ -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.