Seungha Yang
0f4bddc9a9
wasapi2: Add support for format negotiation
...
Enumerate supported formats during open so that src/sink can
report them via get_caps(). The format is then fixated and
initialized on acquire(), allowing users to select their
preferred format
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586 >
2025-08-22 22:10:28 +00:00
Seungha Yang
d9279a5145
wasapi2: Enumerate supported shared mode formats
...
... and report it via device provider property
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586 >
2025-08-22 22:10:28 +00:00
Seungha Yang
0d94713288
wasapi2: Demote S24_32LE in exclusive-mode format ordering
...
Some endpoints accept 24-bit in 32-bit PCM (S24_32LE) in exclusive mode
but playback at very low volume. Until the root cause is identified,
push S24_32LE to the end of the candidate list
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586 >
2025-08-22 22:10:27 +00:00
Seungha Yang
f2aabd6a71
wasapi2: Add support for exclusive mode device switching
...
Because of APO/OS mixer bypass in exclusive mode, we should
convert samples if new device has different format.
The conversion with additional buffering is implemented in this patch
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586 >
2025-08-22 22:10:26 +00:00
Seungha Yang
370499875c
wasapi2: Probe exclusive mode formats
...
... and report it via device provider props
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9586 >
2025-08-22 22:10:25 +00:00
Seungha Yang
e515b1aee8
wasapi2enumerator: Log IMMNotificationClient callback details
...
... and add wasapi2enumerator debug category
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9468 >
2025-08-05 13:40:28 +00:00
Seungha Yang
37637d9611
wasapi2: Use 48kHz default sample rate
...
That's most common default value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326 >
2025-07-24 17:04:53 +00:00
Seungha Yang
9dbc7a491e
wasapi2: Add support for dynamic device switch
...
Ringbuffer implementation is re-written to support "device" property
change in playing state
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9326 >
2025-07-24 17:04:53 +00:00
Seungha Yang
df45c088ad
waapi2: Remove unused WinRT deps and implementations
...
Removing unused WinRT API based implementations
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307 >
2025-07-02 18:18:18 +00:00
Seungha Yang
ba41200c96
wasapi2: Implement IMMDeviceEnumerator based enumerator
...
... and merge wasapi2{capture,render}deviceprovider into single
wasapi2deviceprovider since we can enumerate input/output audio
devices at once using IMMDeviceEnumerator
This is a preparation for complete porting to Win32 API
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9307 >
2025-07-02 18:18:18 +00:00