summaryrefslogtreecommitdiff
path: root/sys/wasapi/meson.build
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2021-08-24 03:54:27 +0900
committerSeungha Yang <seungha@centricular.com>2021-09-21 17:34:35 +0000
commit589ff8ca6dcb16057082fbbc0878413728fd1a9e (patch)
tree261f247b387c165cb10cc2fb022c4135228a4cbc /sys/wasapi/meson.build
parent3c937c8023bc6158f26baebfcce4063e1fbc50f5 (diff)
downloadgstreamer-plugins-bad-589ff8ca6dcb16057082fbbc0878413728fd1a9e.tar.gz
wasapideviceprovider: Add support for dynamic device add/remove
Adding IMMDeviceEnumerator::RegisterEndpointNotificationCallback in order to support device monitoring. On OnDeviceAdded(), OnDeviceRemoved(), and OnDefaultDeviceChanged() callback, wasapi device provider implementation will enumerate devices again and will notify newly added and removed device via GstDeviceProvider API. As a bonus point, this IMMDeviceEnumerator abstraction object will spawn a dedicated internal COM thread, so various COM thread related issues of WASAPI plugin can be resolved by this commit. Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1649 Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1110 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2484>
Diffstat (limited to 'sys/wasapi/meson.build')
-rw-r--r--sys/wasapi/meson.build2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/wasapi/meson.build b/sys/wasapi/meson.build
index 9adc3d690..3fdd73a2f 100644
--- a/sys/wasapi/meson.build
+++ b/sys/wasapi/meson.build
@@ -1,4 +1,5 @@
wasapi_sources = [
+ 'gstmmdeviceenumerator.cpp',
'gstwasapi.c',
'gstwasapisrc.c',
'gstwasapisink.c',
@@ -30,6 +31,7 @@ if ole32_dep.found() and ksuser_dep.found() and have_audioclient_h
gstwasapi = library('gstwasapi',
wasapi_sources,
c_args : gst_plugins_bad_args + wasapi_args,
+ cpp_args: gst_plugins_bad_args,
include_directories : [configinc],
dependencies : [gstaudio_dep, ole32_dep, ksuser_dep],
install : true,