diff options
author | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-04-10 05:13:17 +0530 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@centricular.com> | 2018-04-10 05:16:54 +0530 |
commit | 5409cd49208cf5fe2cdb9233963f40e21291e01a (patch) | |
tree | ab4fefd238a5d960ed9c9e5855964be3289c033a /sys/wasapi/gstwasapisrc.c | |
parent | 0a518c9be126a6cd016f0896ced4cba7c9b149da (diff) | |
download | gstreamer-plugins-bad-5409cd49208cf5fe2cdb9233963f40e21291e01a.tar.gz |
wasapi: Handle return value of WaitForSingleObject
The wait could've failed for whatever reason, we should handle that.
Diffstat (limited to 'sys/wasapi/gstwasapisrc.c')
-rw-r--r-- | sys/wasapi/gstwasapisrc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/wasapi/gstwasapisrc.c b/sys/wasapi/gstwasapisrc.c index da1e0975e..4c51a4024 100644 --- a/sys/wasapi/gstwasapisrc.c +++ b/sys/wasapi/gstwasapisrc.c @@ -565,10 +565,17 @@ gst_wasapi_src_read (GstAudioSrc * asrc, gpointer data, guint length, GST_OBJECT_UNLOCK (self); while (wanted > 0) { + DWORD dwWaitResult; guint have_frames, n_frames, want_frames, read_len; /* Wait for data to become available */ - WaitForSingleObject (self->event_handle, INFINITE); + dwWaitResult = WaitForSingleObject (self->event_handle, INFINITE); + if (dwWaitResult != WAIT_OBJECT_0) { + GST_ERROR_OBJECT (self, "Error waiting for event handle: %x", + (guint) dwWaitResult); + length = 0; + goto beach; + } hr = IAudioCaptureClient_GetBuffer (self->capture_client, (BYTE **) & from, &have_frames, &flags, NULL, NULL); |