diff options
author | Chris Robinson <[email protected]> | 2015-10-15 07:29:25 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2015-10-15 07:29:25 -0700 |
commit | 97f53d941c32b24470a0f589853ce60cfbe7f15b (patch) | |
tree | 06ced97b1b83511279a5a237d5e2721ac14bbda2 /OpenAL32/Include | |
parent | 3c54ba3901d93093406a7e5129bb43badcc6cf50 (diff) |
Store the source's previous samples with the voice
This helps avoid different results when looping is toggled within a couple
samples of the loop point, or when a processed buffer is removed while the
source is only a couple samples into the next buffer.
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r-- | OpenAL32/Include/alSource.h | 2 | ||||
-rw-r--r-- | OpenAL32/Include/alu.h | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h index 89c210b9..34c3575b 100644 --- a/OpenAL32/Include/alSource.h +++ b/OpenAL32/Include/alSource.h @@ -35,6 +35,8 @@ typedef struct ALvoice { ALuint Offset; /* Number of output samples mixed since starting. */ + alignas(16) ALfloat PrevSamples[MAX_INPUT_CHANNELS][MAX_PREVIOUS_SAMPLES]; + DirectParams Direct; SendParams Send[MAX_SENDS]; } ALvoice; diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index 051a0f0d..ba7afedb 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -32,6 +32,9 @@ #define MAX_PITCH (255) +/* Maximum number of previous buffer samples needed for resampling. */ +#define MAX_PREVIOUS_SAMPLES 4 + #ifdef __cplusplus extern "C" { |