From fde8499f6994ddeb1bc973ceaaa4ef271028d1da Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 18 Sep 2023 09:25:56 -0700
Subject: [PATCH] Use around 20ms for the audio buffer size
This value is well tested in production software. Larger values introduce audio latency and smaller values cause underflows on many setups.
---
src/audio/SDL_audio.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/audio/SDL_audio.c b/src/audio/SDL_audio.c
index 4ea06839f0ac..b235869c9fb2 100644
--- a/src/audio/SDL_audio.c
+++ b/src/audio/SDL_audio.c
@@ -126,17 +126,15 @@ static int GetDefaultSampleFramesFromFreq(const int freq)
}
}
- if (freq <= 11025) {
+ if (freq <= 22050) {
return 512;
- } else if (freq <= 22050) {
- return 1024;
} else if (freq <= 48000) {
- return 2048;
+ return 1024;
} else if (freq <= 96000) {
+ return 2048;
+ } else {
return 4096;
}
-
- return 8192; // shrug
}
@@ -659,7 +657,7 @@ void SDL_QuitAudio(void)
SDL_AtomicSet(¤t_audio.output_device_count, 0);
SDL_AtomicSet(¤t_audio.capture_device_count, 0);
SDL_UnlockRWLock(current_audio.device_list_lock);
-
+
// mark all devices for shutdown so all threads can begin to terminate.
for (SDL_AudioDevice *i = devices; i != NULL; i = i->next) {
SDL_AtomicSet(&i->shutdown, 1);