gstreamer/sys/wasapi
Seungha Yang a668de747f wasapisrc: Make sure that wasapisrc produces data in loopback mode
An oddness of wasapi loopback feature is that capture client will not
produce any data if there's no outputting sound to corresponding
render client. In other words, if there's no sound to render,
capture task will stall. As an option to solve such issue, we can
add timeout to wake up from capture thread if there's no incoming data
within given time interval. But it seems to be glitch prone.
Another approach is that we can keep pushing silence data into
render client so that capture client can keep capturing data
(even if it's just silence).

This patch will choose the latter one because it's more straightforward
way and it's likely produce glitchless sound than former approach.

A bonus point of this approach is that loopback capture on Windows7/8
will work with this patch. Note that there's an OS bug prior to Windows10
when loopback capture client is running with event-driven mode.
To work around the bug, event signalling should be handled manually
for read thread to wake up.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1588>
2020-09-30 12:57:34 +00:00
..
gstaudioclient3.h
gstwasapi.c
gstwasapidevice.c wasapi: Don't cast GstDeviceProvider to GstElement 2019-10-14 14:43:59 +00:00
gstwasapidevice.h
gstwasapisink.c wasapi: added missing lock release in case of error in gst_wasapi_xxx_reset 2020-07-15 20:11:48 +00:00
gstwasapisink.h wasapi: Fix possible deadlock while downwards state change 2020-06-11 11:40:26 +00:00
gstwasapisrc.c wasapisrc: Make sure that wasapisrc produces data in loopback mode 2020-09-30 12:57:34 +00:00
gstwasapisrc.h wasapisrc: Make sure that wasapisrc produces data in loopback mode 2020-09-30 12:57:34 +00:00
gstwasapiutil.c plugins: Use g_win32_error_message for HRESULT to string conversion 2020-07-18 11:05:52 +09:00
gstwasapiutil.h wasapi: Don't cast GstDeviceProvider to GstElement 2019-10-14 14:43:59 +00:00
meson.build