pulseaudio/src/modules
Alper Nebi Yasak ed3d4f0837 alsa-ucm: Replace port device UCM context assertion with an error
The pa_alsa_ucm_set_port() function is passed both a mapping context and
a device port, and both of these refer to their respective UCM device.
While switching over to having one port per mapping per UCM device, I
expected both of these to be the same device struct, so added an assert
checking so.

This assertion gets triggered when we have multiple UCM verbs declaring
the same UCM device name. The root cause here is that the ports' UCM
device references are set once while creating the ports for the card, so
they happen to be those of a specific verb and may not match those from
a different UCM verb's profiles' mappings.

Solving the root cause necessitates a larger refactor. What we actually
assume here is that name of the UCM device is same for both the port and
the UCM context, which ends up always true in practice. For now, replace
the assert with a check and error.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/802>
2024-01-12 20:34:54 +00:00
..
alsa alsa-ucm: Replace port device UCM context assertion with an error 2024-01-12 20:34:54 +00:00
bluetooth backend-native: Handle multi AT commands in a buffer 2024-01-05 23:12:18 +08:00
dbus treewide: Use DBus defines instead of direct string literals 2021-02-01 16:10:11 +00:00
echo-cancel echo-cancel: add webrtc AEC3 support 2023-05-25 18:40:13 -04:00
gsettings build-sys: meson: Make glib and fftw common dependencies 2021-11-17 16:06:23 +00:00
jack jackdbus-detect: Allow to configure multiple sinks/sources 2021-12-16 11:25:41 +00:00
macosx macos: Add missing import statement 2020-09-28 15:44:38 +03:00
oss oss: parse device names correctly on FreeBSD 2021-01-18 16:33:53 +00:00
raop raop-client: Fix typo 2022-07-18 14:47:38 +00:00
rtp rtp-recv: Use getaddrinfo to improve support for ipv6. 2023-02-08 20:50:48 +00:00
x11 x11: Close session manager connection on ICE I/O error callback 2021-11-03 15:29:02 +00:00
ladspa.h update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
meson.build build-sys: Fix macOS build 2022-12-07 10:57:01 +00:00
module-allow-passthrough.c allow-passthrough: fix hook return value 2018-05-07 16:53:57 +03:00
module-always-sink.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-always-source.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-augment-properties.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-card-restore.c card-restore: setting preferred ports in entry_from_card 2021-11-18 12:04:16 +08:00
module-cli.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-combine-sink.c module-combine-sink: Suspend while unloading to fix crash moving sinks 2022-11-27 22:47:30 +03:00
module-combine.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-console-kit.c set exit_idle_time to 0 when we detect a session 2018-06-21 06:02:21 +05:30
module-default-device-restore.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-detect.c detect: fix/improve FreeBSD support 2021-01-18 16:33:53 +00:00
module-devd-detect.c module-devd-detect: new module for soundcard hotplug on FreeBSD 2021-01-18 16:33:53 +00:00
module-device-manager.c database: extract common method to handle machine id and architecture 2021-01-07 23:27:16 +00:00
module-device-restore.c module-device-destore: Log restored port name 2022-05-16 18:08:16 +00:00
module-equalizer-sink.c various places: Include resampler delay to latency reports and calculations 2022-05-28 14:30:59 +00:00
module-esound-compat-spawnfd.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-esound-compat-spawnpid.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-esound-sink.c esound-sink: Allow module-esound-sink to use alternative smoother code 2021-11-03 21:13:38 +00:00
module-filter-apply.c filter-apply: Look for filter parameters also in device properties 2020-12-14 21:01:16 +00:00
module-filter-heuristics.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-hal-detect-compat.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-intended-roles.c source: move the streams to the default_source when the source unlink 2019-12-14 18:40:19 +00:00
module-ladspa-sink.c various places: Include resampler delay to latency reports and calculations 2022-05-28 14:30:59 +00:00
module-lirc.c lirc: Fix module version 2021-11-06 13:45:30 +03:00
module-loopback.c loopback: Add log_interval parameter 2021-11-07 18:17:37 +00:00
module-match.c module-match: Allow loading module more than once 2020-12-07 21:38:05 +05:30
module-mmkbd-evdev.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-native-protocol-fd.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-null-sink.c null-sink: Recalculate max_request and max_rewind while resuming sink 2021-11-03 15:59:22 +00:00
module-null-source.c null-source: Change max_rewind when the latency changes 2021-02-01 16:03:46 +00:00
module-pipe-sink.c core, modules: Remove useless EINTR tests 2020-12-09 10:28:15 +00:00
module-pipe-source.c core, modules: Remove useless EINTR tests 2020-12-09 10:28:15 +00:00
module-position-event-sounds.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-protocol-stub.c win32: Fix (interim) esound paths in module-protocol-stub.c 2020-12-16 11:05:28 -05:00
module-remap-sink.c various places: Include resampler delay to latency reports and calculations 2022-05-28 14:30:59 +00:00
module-remap-source.c virtual sources: Include resampler delay in latency reports 2021-11-03 18:37:31 +00:00
module-rescue-streams.c source: move the streams to the default_source when the source unlink 2019-12-14 18:40:19 +00:00
module-role-cork.c role-ducking, role-cork: Add use_source_trigger argument 2019-03-26 14:54:15 +00:00
module-role-ducking.c role-ducking, role-cork: Add use_source_trigger argument 2019-03-26 14:54:15 +00:00
module-rygel-media-server.c treewide: Use DBus defines instead of direct string literals 2021-02-01 16:10:11 +00:00
module-sine-source.c pass pa_suspend_cause_t to set_state_in_io_thread() callbacks 2018-03-20 13:00:44 +02:00
module-sine.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-solaris.c solaris: Allow module-solaris to use alternative smoother code 2021-11-03 21:13:38 +00:00
module-stream-restore.c stream-restore: make version check stricter when dropping old entries 2021-07-09 12:32:27 +03:00
module-suspend-on-idle.c module-suspend-on-idle: Allow suspending a sink when the monitor source becomes idle 2022-05-16 18:05:03 +00:00
module-switch-on-connect.c switch-on-connect: Do not overwrite user configured default sink/source 2023-03-16 20:19:39 +00:00
module-switch-on-port-available.c card: handle sticky profile flag 2021-06-10 10:30:58 +00:00
module-systemd-login.c set exit_idle_time to 0 when we detect a session 2018-06-21 06:02:21 +05:30
module-tunnel-sink-new.c tunnel-sink-new: Fix hang when used in combination with module-combine-sink 2023-02-07 09:25:48 +00:00
module-tunnel-source-new.c tunnel-sink-new: Fix hang when used in combination with module-combine-sink 2023-02-07 09:25:48 +00:00
module-tunnel.c pstream: Pass frame size to keep split memblock parts aligned 2023-02-10 12:45:48 +00:00
module-udev-detect.c ucm: add possibility to skip the UCM card completely (Linked) 2020-09-17 14:52:50 +00:00
module-virtual-sink.c various places: Include resampler delay to latency reports and calculations 2022-05-28 14:30:59 +00:00
module-virtual-source.c virtual sources: Include resampler delay in latency reports 2021-11-03 18:37:31 +00:00
module-virtual-surround-sink.c various places: Include resampler delay to latency reports and calculations 2022-05-28 14:30:59 +00:00
module-volume-restore.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-waveout.c Win32: Use WAVEFORMATEX for multi-channel audio output on Windows. 2021-03-23 13:12:38 -04:00
module-zeroconf-discover.c build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30
module-zeroconf-publish.c zeroconf-publish: Fix crash when avahi_client_new() fails 2022-05-26 16:41:21 +00:00
reserve-monitor.c treewide: Use DBus defines instead of direct string literals 2021-02-01 16:10:11 +00:00
reserve-monitor.h More spelling fixes 2011-08-25 11:27:47 +01:00
reserve-wrap.c update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
reserve-wrap.h update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00
reserve.c treewide: Use DBus defines instead of direct string literals 2021-02-01 16:10:11 +00:00
reserve.h reserve: Move get_name_owner() to the public rd_device API 2013-01-31 13:56:25 +02:00
restart-module.c tunnel modules: Fix crash when the module was unloaded while waiting for re-init 2022-05-25 07:04:09 +00:00
restart-module.h tunnel modules: Fix crash when the module was unloaded while waiting for re-init 2022-05-25 07:04:09 +00:00
stdin-util.c module-gsettings: Handle I/O hangup 2021-07-04 11:14:37 +03:00
stdin-util.h gconf, gsettings: fix config.h includes 2018-04-19 14:38:18 +03:00
stream-interaction.c stream-interaction: Fix regression when a trigger role is also a cork role 2023-01-21 10:06:57 +00:00
stream-interaction.h role-cork: prepare merge with role-ducking: replace "cork" with "interact" where appropriate 2016-03-15 13:02:04 +02:00
udev-util.c Revert "udev: use ID_MODEL/ID_VENDOR to give friendly name for FireWire devices" 2021-08-11 15:04:07 +00:00
udev-util.h update FSF addresses to FSF web page 2015-01-14 22:20:40 +02:00