From 9d3f4e4d8839840de6e3a7af150e50ffbc2e83b4 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 6 Dec 2025 13:42:32 +0200 Subject: [PATCH] Do not stop audio format enumeration if E_INVALIDARG is returned from IsFormatSupported() --- od-win32/sounddep/sound.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/od-win32/sounddep/sound.cpp b/od-win32/sounddep/sound.cpp index 43571cef..70822723 100644 --- a/od-win32/sounddep/sound.cpp +++ b/od-win32/sounddep/sound.cpp @@ -1424,8 +1424,9 @@ retry: pwfx ? pwfx->nChannels : -1, pwfx ? pwfx->nSamplesPerSec : -1, pwfx ? pwfx->wBitsPerSample : -1, hr, rncnt, finalround); - if (SUCCEEDED (hr) && hr != S_FALSE) + if (SUCCEEDED (hr) && hr != S_FALSE) { break; + } if (finalround && SUCCEEDED (hr)) { if (pwfx_saved) { sd->channels = pwfx_saved->nChannels; @@ -1442,8 +1443,9 @@ retry: goto retry; } } - if (hr != AUDCLNT_E_UNSUPPORTED_FORMAT && hr != S_FALSE) + if (hr != AUDCLNT_E_UNSUPPORTED_FORMAT && hr != E_INVALIDARG && hr != S_FALSE) { goto error; + } if (hr == S_FALSE && pwfx_saved == NULL) { pwfx_saved = pwfx; pwfx = NULL; -- 2.47.3