WASAPI: Fix an error when stopping a device.

This commit is contained in:
David Reid
2025-02-16 17:44:21 +10:00
parent 856494d253
commit 4c7021e53d
+9 -1
View File
@@ -23197,7 +23197,15 @@ static ma_result ma_device_stop__wasapi_nolock(ma_device* pDevice)
}
/* The audio client needs to be reset otherwise restarting will fail. */
hr = ma_IAudioClient_Reset((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback);
{
ma_int32 retries = 5;
while ((hr = ma_IAudioClient_Reset((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback)) == MA_AUDCLNT_E_BUFFER_OPERATION_PENDING && retries > 0) {
ma_sleep(10);
retries -= 1;
}
}
if (FAILED(hr)) {
ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to reset internal playback device.");
return ma_result_from_HRESULT(hr);