pipewire/spa/plugins
Alper Nebi Yasak 833c86d35b alsa-ucm: Make one input/output mapping per UCM device
PulseAudio combines UCM devices that have the same PlaybackPCM or
CapturePCM value into a single mapping with multiple ports. It also
creates ports in the same mapping for each valid combination of those
UCM devices.

Since mappings are the things we put in profiles, we can put in a
profile either all devices of a joint mapping or none of them. This
causes some complications with device conflicts. For example, a
different UCM device might be marked as conflicting with some (but not
all) of the devices in a joint mapping. In this case we can do one of
three things:

- Include all devices in one profile, and hope the conflicting device
  isn't chosen as the mapping's active port. We shouldn't do this as it
  puts conflicting devices in the same profile.

- Make one profile with the joint group, and one with the other device.
  This is somewhat acceptable as we have no conflicts, but we sacrifice
  some compatible combinations of devices.

- Do not group the devices into the same mapping, and make one profile
  for each compatible combination of devices. This appears to be the
  best option, one where we can always have the maximum number of
  working devices.

This patch chooses the third option and makes one input and/or output
mapping per UCM device, by using UCM device names instead of PCM device
strings in the mapping names.

Link: a50330a4a5
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
2023-12-04 15:34:48 +00:00
..
aec aec: support both webrtc versions 2023-09-14 15:35:40 +02:00
alsa alsa-ucm: Make one input/output mapping per UCM device 2023-12-04 15:34:48 +00:00
audioconvert audioadapter: don't clear format when EnumFormat changes 2023-10-16 18:23:49 +02:00
audiomixer audioconvert: avoid unaligned writes and left shift of neagtives 2023-10-15 21:12:23 +02:00
audiotestsrc node: update the duration/rate from the target 2023-03-23 18:39:27 +01:00
avb spa: remove unnecessary indirection for some spa_log_topics 2023-10-06 13:08:24 +00:00
bluez5 Bluez5: backend-native: HSP AG release SCO link on AT+CKPD=200 2023-11-29 15:43:22 +00:00
control tweak number of buffers 2023-10-13 14:00:29 +02:00
ffmpeg treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
jack tweak number of buffers 2023-10-13 14:00:29 +02:00
libcamera libcamera: add latency param query 2023-11-20 17:51:27 +01:00
support evl: add fds to pollfd from rt thread 2023-11-24 11:58:28 +01:00
test spa: deduplicate test-helper.h 2023-10-15 16:20:17 +00:00
v4l2 spa: remove unnecessary indirection for some spa_log_topics 2023-10-06 13:08:24 +00:00
videoconvert spa: remove unnecessary indirection for some spa_log_topics 2023-10-06 13:08:24 +00:00
videotestsrc videotestsrc: implement impl_node_set_io to fix segfault while loading 2023-10-26 15:54:10 +02:00
volume volume: Fix inverted check for buffer validity 2023-03-31 08:19:07 +00:00
vulkan vulkan: fix uninitialized writeDescriptor 2023-08-31 10:08:06 +00:00
meson.build build: Restructure vulkan dependency handling and assert headers 2023-10-15 20:32:57 +00:00