From: dmitrykos Date: Wed, 20 Oct 2010 17:32:04 +0000 (+0000) Subject: wasapi: fixed capturing (Input stream) if Polling mode is used, ProcessInputBuffer... X-Git-Tag: pa_stable_v19_20110326_r1647~84 X-Git-Url: https://andrewgundersen.net/repos?a=commitdiff_plain;h=e5b04a89da0bff45c64eca6341420492e4a299c8;p=portaudio wasapi: fixed capturing (Input stream) if Polling mode is used, ProcessInputBuffer was broken erroneously returning AUDCLNT_S_BUFFER_EMPTY and thus breaking Input thread. --- diff --git a/src/hostapi/wasapi/pa_win_wasapi.c b/src/hostapi/wasapi/pa_win_wasapi.c index 3b08abc..cff3abd 100644 --- a/src/hostapi/wasapi/pa_win_wasapi.c +++ b/src/hostapi/wasapi/pa_win_wasapi.c @@ -3719,14 +3719,17 @@ static HRESULT ProcessInputBuffer(PaWasapiStream *stream, PaWasapiHostProcessor for (;;) { // Check if blocking call must be interrupted - if (WaitForSingleObject(stream->hCloseRequest, 1) != WAIT_TIMEOUT) + if (WaitForSingleObject(stream->hCloseRequest, 0) != WAIT_TIMEOUT) break; // Get the available data in the shared buffer. if ((hr = IAudioCaptureClient_GetBuffer(stream->cclient, &data, &frames, &flags, NULL, NULL)) != S_OK) { if (hr == AUDCLNT_S_BUFFER_EMPTY) + { + hr = S_OK; break; // capture buffer exhausted + } return LogHostError(hr); break;