wasapi: stop infinite loop in audio thread when recording device is unplugged.

This commit is contained in:
Ryan C. Gordon
2026-02-10 09:24:34 -05:00
parent 55d78567b1
commit a806a9092b

View File

@@ -592,7 +592,7 @@ static int WASAPI_RecordDevice(SDL_AudioDevice *device, void *buffer, int buflen
UINT32 frames = 0;
DWORD flags = 0;
while (device->hidden->capture) {
while (device->hidden->capture && !SDL_GetAtomicInt(&device->hidden->device_disconnecting))
const HRESULT ret = IAudioCaptureClient_GetBuffer(device->hidden->capture, &ptr, &frames, &flags, NULL, NULL);
if (ret == AUDCLNT_S_BUFFER_EMPTY) {
return 0; // in theory we should have waited until there was data, but oh well, we'll go back to waiting. Returning 0 is safe in SDL3.