pipewire/spa/plugins
Alper Nebi Yasak 507ec0b39a alsa-ucm: Set up hardware volumes again on duplicate port additions
While initializing ALSA cards with UCM, we call pa_alsa_ucm_add_port()
for each UCM device for each UCM verb. This checks if a port has been
already added by name and skips port initialization if it is already
done. Different UCM verbs can have devices with the same name, which
means their port names end up being the same. So, this port creation
step currently is only done for one UCM verb for both UCM devices.

Volume control setup is also part of this process. The UCM devices only
know about the volume mixer information from the UCM verb that they are
defined in, so the volume control setup is done for one UCM verb at a
time. Skipping this setup when a same-named port exists means only the
profiles belonging to the first initialized UCM verb have working
hardware volume control.

Move the volume control setup out of the port initialization block so
that we try to do it every time, therefore for every UCM verb. However,
check that we don't run it twice for the same UCM verb for a port.

In theory, the PlaybackVolume etc. value can be different per-verb
for the same device, so we can't simplify this code to a single volume
setup per port.

Link: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/840
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2024-12-07 18:32:48 +00:00
..
aec spa: add spa_json_begin_array/object and relaxed versions 2024-09-16 09:50:33 +02:00
alsa alsa-ucm: Set up hardware volumes again on duplicate port additions 2024-12-07 18:32:48 +00:00
audioconvert audioconvert: use the same biquad as filter-chain 2024-11-27 16:47:53 +01:00
audiomixer spa: use static inline for interfaces instead of macro 2024-11-26 11:35:49 +01:00
audiotestsrc spa: audiotestsrc: Validate loop and system before using them 2024-10-23 08:25:30 -04:00
avb json: add helper function to parse channel positions 2024-09-18 09:54:34 +02:00
bluez5 bluez5: account for codec internal delay in latency values 2024-12-07 18:28:17 +00:00
control control: add support for mixing to UMP 2024-07-29 18:15:58 +02:00
ffmpeg spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
filter-graph filter-graph: use SPA_MAX instead of fmaxf 2024-12-04 16:40:53 +01:00
jack spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
libcamera v4l2: use dll to track rate difference 2024-11-26 17:14:26 +01:00
support spa: serialize in_thread flushes with a mutex 2024-12-03 16:38:28 +01:00
test spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
v4l2 spa: v4l2: query_ext_ctrl_ioctl(): only check errno on failure 2024-12-03 20:54:20 +01:00
videoconvert spa: use static inline for interfaces instead of macro 2024-11-26 11:35:49 +01:00
videotestsrc Port videotestsrc to LoopUtils 2024-07-01 15:28:14 +00:00
volume spa: fix volume plugin compilation 2024-06-18 15:44:26 +02:00
vulkan treewide: fix more -Wformat issues 2024-06-30 19:22:17 +00:00
meson.build filter-chain: move the filter-graph to plugins 2024-11-13 11:12:06 +01:00