SDL: Fixed audio dropouts when plenty of audio is queued on Android

From 54ff1f35bd38af338a30191007be094a3fa1d7b2 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Thu, 7 Nov 2024 19:29:51 -0800
Subject: [PATCH] Fixed audio dropouts when plenty of audio is queued on
 Android

---
 src/audio/aaudio/SDL_aaudio.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/audio/aaudio/SDL_aaudio.c b/src/audio/aaudio/SDL_aaudio.c
index 64d77dfaca5f2..2ce1f6cc0c5ca 100644
--- a/src/audio/aaudio/SDL_aaudio.c
+++ b/src/audio/aaudio/SDL_aaudio.c
@@ -355,8 +355,9 @@ static bool BuildAAudioStream(SDL_AudioDevice *device)
 
     SDL_UpdatedAudioDeviceFormat(device);
 
-    // Allocate a double buffered mixing buffer
-    hidden->num_buffers = 2;
+    // Allocate a triple buffered mixing buffer
+    // Two buffers can be in the process of being filled while the third is being read
+    hidden->num_buffers = 3;
     hidden->mixbuf_bytes = (hidden->num_buffers * device->buffer_size);
     hidden->mixbuf = (Uint8 *)SDL_aligned_alloc(SDL_GetSIMDAlignment(), hidden->mixbuf_bytes);
     if (!hidden->mixbuf) {