summaryrefslogtreecommitdiff
path: root/sys/wasapi/gstwasapisrc.c
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2018-04-10 05:13:17 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2018-04-10 05:16:54 +0530
commit5409cd49208cf5fe2cdb9233963f40e21291e01a (patch)
treeab4fefd238a5d960ed9c9e5855964be3289c033a /sys/wasapi/gstwasapisrc.c
parent0a518c9be126a6cd016f0896ced4cba7c9b149da (diff)
downloadgstreamer-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.c9
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);