Преглед на файлове

Don't hang if IAudioRenderClient_GetBuffer() fails indefinitely

Sam Lantinga преди 2 години
родител
ревизия
b2b548a1fc
променени са 1 файла, в които са добавени 3 реда и са изтрити 4 реда
  1. 3 4
      src/audio/wasapi/SDL_wasapi.c

+ 3 - 4
src/audio/wasapi/SDL_wasapi.c

@@ -403,11 +403,10 @@ static Uint8 *WASAPI_GetDeviceBuf(SDL_AudioDevice *device, int *buffer_size)
     // get an endpoint buffer from WASAPI.
     BYTE *buffer = NULL;
 
-    while (RecoverWasapiIfLost(device) && device->hidden->render) {
-        if (!WasapiFailed(device, IAudioRenderClient_GetBuffer(device->hidden->render, device->sample_frames, &buffer))) {
-            return (Uint8 *)buffer;
+    if (RecoverWasapiIfLost(device) && device->hidden->render) {
+        if (WasapiFailed(device, IAudioRenderClient_GetBuffer(device->hidden->render, device->sample_frames, &buffer))) {
+            SDL_assert(buffer == NULL);
         }
-        SDL_assert(buffer == NULL);
     }
 
     return (Uint8 *)buffer;