wasapi2: Add support for process loopback capture
authorSeungha Yang <seungha@centricular.com>
Sun, 16 Oct 2022 15:40:46 +0000 (00:40 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 17 Oct 2022 23:28:48 +0000 (23:28 +0000)
commitcb7958e710e52b756fe9a0b389aff9434092b8b3
treeea263b072f62b34a24d2ae2e0d00df29641262b2
parent2c3f9d4587fadacb2fabbddbb73953ec161c1b79
wasapi2: Add support for process loopback capture

Adding loopback capture mode for specified PID.

Note that this feature requires Windows 10 build 20348
(Windows 11/Windows Server 2022 or later),
and any process loopback related properties will not be exposed
if OS does not support it.

Example launch lines:
* wasapi2src loopback-mode=include-process-tree loopback-target-pid=<PID>
 Captures audio generated by an application (specified by PID)
 and its child process
* wasapi2src loopback-mode=exclude-process-tree loopback-target-pid=<PID>
 Captures desktop audio excluding PID and its child process

Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1278
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3195>
subprojects/gst-plugins-bad/docs/plugins/gst_plugins_cache.json
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2client.cpp
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2client.h
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2device.c
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2ringbuffer.cpp
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2ringbuffer.h
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2sink.c
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2src.c
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2util.c
subprojects/gst-plugins-bad/sys/wasapi2/gstwasapi2util.h