Quellcode durchsuchen

aaudio: We PlayDevice first and WaitDevice after; reduce semaphore count by 1.

Previously, we would WaitDevice first, but that would feed a silent buffer
to AAudio upfront, introducing latency. When this change was made, the
semaphore count should have been adjusted, since we're waiting on one less
buffer.

Fixes #12882.

(cherry picked from commit 2767c1a440fc65184482a3ee0a664609fb6f9ada)
Ryan C. Gordon vor 3 Monaten
Ursprung
Commit
c56a1c664c
1 geänderte Dateien mit 1 neuen und 1 gelöschten Zeilen
  1. 1 1
      src/audio/aaudio/SDL_aaudio.c

+ 1 - 1
src/audio/aaudio/SDL_aaudio.c

@@ -366,7 +366,7 @@ static bool BuildAAudioStream(SDL_AudioDevice *device)
     hidden->processed_bytes = 0;
     hidden->processed_bytes = 0;
     hidden->callback_bytes = 0;
     hidden->callback_bytes = 0;
 
 
-    hidden->semaphore = SDL_CreateSemaphore(recording ? 0 : hidden->num_buffers);
+    hidden->semaphore = SDL_CreateSemaphore(recording ? 0 : hidden->num_buffers - 1);
     if (!hidden->semaphore) {
     if (!hidden->semaphore) {
         LOGI("SDL Failed SDL_CreateSemaphore %s recording:%d", SDL_GetError(), recording);
         LOGI("SDL Failed SDL_CreateSemaphore %s recording:%d", SDL_GetError(), recording);
         return false;
         return false;