From 79179703e44dafa38cdf8fcd5ff9128794c4ae16 Mon Sep 17 00:00:00 2001 From: David Reid Date: Tue, 6 Sep 2022 14:42:32 +1000 Subject: [PATCH] WASAPI: Try fixing an issue with loopback mode. Public issue https://github.com/mackron/miniaudio/issues/533 --- miniaudio.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/miniaudio.h b/miniaudio.h index da27b515..f776e1c9 100644 --- a/miniaudio.h +++ b/miniaudio.h @@ -22155,7 +22155,14 @@ static ma_result ma_device_read__wasapi(ma_device* pDevice, void* pFrames, ma_ui loopback mode, in which case a timeout probably just means the nothing is playing through the speakers. */ - if (WaitForSingleObject(pDevice->wasapi.hEventCapture, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + + /* Experiment: Use a shorter timeout for loopback mode. */ + DWORD timeoutInMilliseconds = MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS; + if (pDevice->type == ma_device_type_loopback) { + timeoutInMilliseconds = 10; + } + + if (WaitForSingleObject(pDevice->wasapi.hEventCapture, timeoutInMilliseconds) != WAIT_OBJECT_0) { if (pDevice->type == ma_device_type_loopback) { continue; /* Keep waiting in loopback mode. */ } else {