Просмотр исходного кода

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

Fixes Bugzilla #3633.
Ryan C. Gordon 8 лет назад
Родитель
Сommit
91e6054b03
1 измененных файлов с 3 добавлено и 1 удалено
  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);