Browse Source

wasapi: don't mark capture devices as failed for AUDCLNT_S_BUFFER_EMPTY.

Fixes Bugzilla #3633.
Ryan C. Gordon 8 years ago
parent
commit
91e6054b03
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/audio/wasapi/SDL_wasapi.c

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

@@ -563,7 +563,9 @@ WASAPI_CaptureFromDevice(_THIS, void *buffer, int buflen)
         DWORD flags = 0;
 
         ret = IAudioCaptureClient_GetBuffer(this->hidden->capture, &ptr, &frames, &flags, NULL, NULL);
-        WasapiFailed(this, ret); /* mark device lost/failed if necessary. */
+        if (ret != AUDCLNT_S_BUFFER_EMPTY) {
+            WasapiFailed(this, ret); /* mark device lost/failed if necessary. */
+        }
 
         if ((ret == AUDCLNT_S_BUFFER_EMPTY) || !frames) {
             WASAPI_WaitDevice(this);