]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Do not stop audio format enumeration if E_INVALIDARG is returned from IsFormatSupported()
authorToni Wilen <twilen@winuae.net>
Sat, 6 Dec 2025 11:42:32 +0000 (13:42 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 6 Dec 2025 11:42:32 +0000 (13:42 +0200)
od-win32/sounddep/sound.cpp

index 43571cef6e157c112895e72ab5fb88297fba2f30..70822723bad1f2de918cace74bf01d8ec2aea9cf 100644 (file)
@@ -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;