From cadff0f6c17dc4055f972b434c9a9f8bdbf330f3 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 24 Feb 2019 16:13:51 -0800 Subject: Reduce BUFFERSIZE to match the default period size Also adds a bit more space to the temp source data buffer, to avoid needing to loop on matching sample rates. --- OpenAL32/Include/alMain.h | 11 +++++++++-- OpenAL32/Include/alu.h | 5 ----- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'OpenAL32') diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index b696d7d9..f5d25926 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -547,7 +547,13 @@ struct BFChannelConfig { * to be a sensible size, however, as it constrains the max stepping value used * for mixing, as well as the maximum number of samples per mixing iteration. */ -#define BUFFERSIZE 2048 +#define BUFFERSIZE 1024 + +/* Maximum number of samples to pad on either end of a buffer for resampling. + * Note that both the beginning and end need padding! + */ +#define MAX_RESAMPLE_PADDING 24 + struct MixParams { /* Coefficient channel mapping for mixing to the buffer. */ @@ -632,7 +638,8 @@ struct ALCdevice { std::chrono::nanoseconds FixedLatency{0}; /* Temp storage used for mixer processing. */ - alignas(16) ALfloat TempBuffer[4][BUFFERSIZE]; + alignas(16) ALfloat SourceData[BUFFERSIZE + MAX_RESAMPLE_PADDING*2]; + alignas(16) ALfloat TempBuffer[3][BUFFERSIZE]; /* Mixing buffer used by the Dry mix, FOAOut, and Real out. */ al::vector, 16> MixBuffer; diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index 6713c490..13362dea 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -31,11 +31,6 @@ enum class DistanceModel; #define MAX_PITCH 255 #define MAX_SENDS 16 -/* Maximum number of samples to pad on either end of a buffer for resampling. - * Note that both the beginning and end need padding! - */ -#define MAX_RESAMPLE_PADDING 24 - struct BSincTable; struct ALsource; -- cgit v1.2.3