2021-03-16 07:17:43 +00:00
|
|
|
// Project64 - A Nintendo 64 emulator
|
2021-05-18 11:51:36 +00:00
|
|
|
// https://www.pj64-emu.com/
|
2021-03-16 07:17:43 +00:00
|
|
|
// Copyright(C) 2001-2021 Project64
|
|
|
|
// Copyright(C) 2014 Bobby Smiles
|
|
|
|
// GNU/GPLv2 licensed: https://gnu.org/licenses/gpl-2.0.html
|
|
|
|
|
2016-04-28 07:09:44 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
extern const int16_t RESAMPLE_LUT[64 * 4];
|
|
|
|
|
|
|
|
int32_t rdot(size_t n, const int16_t *x, const int16_t *y);
|
|
|
|
|
|
|
|
static inline int16_t adpcm_predict_sample(uint8_t byte, uint8_t mask,
|
|
|
|
unsigned lshift, unsigned rshift)
|
|
|
|
{
|
|
|
|
int16_t sample = (uint16_t)(byte & mask) << lshift;
|
2021-05-18 11:51:36 +00:00
|
|
|
sample >>= rshift; // Signed
|
2016-04-28 07:09:44 +00:00
|
|
|
return sample;
|
|
|
|
}
|
|
|
|
|
|
|
|
void adpcm_compute_residuals(int16_t* dst, const int16_t* src,
|
|
|
|
const int16_t* cb_entry, const int16_t* last_samples, size_t count);
|