From 4ef8674df13699d81b26d2820af9d1f9fa17cfbd Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 27 Jul 2021 14:18:44 -0400 Subject: [PATCH] Revert "wasapi: Open capture devices the way we used to." This reverts commit 0d0fee7569803ddc41985bfc249418b02dd8cd97. --- src/audio/wasapi/SDL_wasapi.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/src/audio/wasapi/SDL_wasapi.c b/src/audio/wasapi/SDL_wasapi.c index 190cf8192..72b2ca911 100644 --- a/src/audio/wasapi/SDL_wasapi.c +++ b/src/audio/wasapi/SDL_wasapi.c @@ -496,7 +496,6 @@ WASAPI_PrepDevice(_THIS, const SDL_bool updatestream) const SDL_AudioSpec oldspec = this->spec; const AUDCLNT_SHAREMODE sharemode = AUDCLNT_SHAREMODE_SHARED; UINT32 bufsize = 0; /* this is in sample frames, not samples, not bytes. */ - REFERENCE_TIME duration = 0; REFERENCE_TIME default_period = 0; IAudioClient *client = this->hidden->client; IAudioRenderClient *render = NULL; @@ -546,11 +545,7 @@ WASAPI_PrepDevice(_THIS, const SDL_bool updatestream) return SDL_SetError("WASAPI: Unsupported audio format"); } - if (this->iscapture) { - ret = IAudioClient_GetDevicePeriod(client, NULL, &duration); - } else { - ret = IAudioClient_GetDevicePeriod(client, &default_period, NULL); - } + ret = IAudioClient_GetDevicePeriod(client, &default_period, NULL); if (FAILED(ret)) { return WIN_SetErrorFromHRESULT("WASAPI can't determine minimum device period", ret); } @@ -572,12 +567,7 @@ WASAPI_PrepDevice(_THIS, const SDL_bool updatestream) #endif streamflags |= AUDCLNT_STREAMFLAGS_EVENTCALLBACK; - if (this->iscapture) { - ret = IAudioClient_Initialize(client, sharemode, streamflags, duration, sharemode == AUDCLNT_SHAREMODE_SHARED ? 0 : duration, waveformat, NULL); - } else { - ret = IAudioClient_Initialize(client, sharemode, streamflags, 0, 0, waveformat, NULL); - } - + ret = IAudioClient_Initialize(client, sharemode, streamflags, 0, 0, waveformat, NULL); if (FAILED(ret)) { return WIN_SetErrorFromHRESULT("WASAPI can't initialize audio client", ret); } @@ -594,9 +584,7 @@ WASAPI_PrepDevice(_THIS, const SDL_bool updatestream) /* Match the callback size to the period size to cut down on the number of interrupts waited for in each call to WaitDevice */ - if (this->iscapture) { - this->spec.samples = ((Uint16) bufsize) / 2; /* fill half of the DMA buffer on each run. */ - } else { + { const float period_millis = default_period / 10000.0f; const float period_frames = period_millis * this->spec.freq / 1000.0f; this->spec.samples = (Uint16)SDL_ceilf(period_frames);