pipewire/spa/plugins
Takashi Sakamoto e3b6534872 acp: avoid assertion at alsa-lib mixer API when element removal
PipeWire v0.3.7 or later hits assertion at alsa-lib mixer API due to
wrong handling of removal event for mixer element.

wireplumber: mixer.c:149: hctl_elem_event_handler: Assertion `bag_empty(bag)' failed.

The removal event is defined as '~0U', thus it's not distinguished from
the other type of event just by bitwise operator.

At the removal event, class implementator for mixer API should detach
mixer element from hcontrol element in callback handler since alsa-lib
has assertion to check the list of mixer elements for a hcontrol element
is empty or not after calling all of handlers. In detail, please refer to
MR to alsa-lib:

 * https://github.com/alsa-project/alsa-lib/pull/244

This commit fixes the above two issues. The issue can be regenerated by
`samples/ctl` Python 3 script of alsa-gobject.

 * https://github.com/alsa-project/alsa-gobject/

It adds some user-defined elements into sound card 0. When terminated by
SIGINT signal, it removes the elements. Then PulseAudio dies due to the
assertion.

Fixes: 1612f5e4d2 ("alsa-acp: Add libacp based card device")
2022-06-27 10:17:30 +09:00
..
aec Cleanup argument names in methods and events interfaces: object/data, 2nd pass. 2022-04-18 07:49:35 +00:00
alsa acp: avoid assertion at alsa-lib mixer API when element removal 2022-06-27 10:17:30 +09:00
audioconvert spa: audioconvert: ensure that noise::intesity is not too big 2022-06-24 16:27:43 +02:00
audiomixer buffer: add EMPTY chunk flag 2022-06-24 11:09:01 +02:00
audiotestsrc spa: set port flags on port info 2022-05-26 10:39:31 +02:00
bluez5 bluez5: Fix LC3plus plugin build 2022-06-10 18:16:49 +02:00
control buffers: make alignment optional 2022-01-03 12:32:26 +01:00
ffmpeg spa: ffmpeg: set spa_handle_factory::version 2022-06-16 17:29:42 +02:00
jack buffers: make alignment optional 2022-01-03 12:32:26 +01:00
libcamera libcamera: advertise the device.product.name and not some random description 2022-05-26 19:18:35 +03:00
support Add support for MidnightBSD 2022-06-19 18:22:47 +00:00
test spa: set port flags on port info 2022-05-26 10:39:31 +02:00
v4l2 v4l2: fix port param enumeration for devices without controls 2022-06-24 12:16:05 +00:00
videoconvert buffers: make alignment optional 2022-01-03 12:32:26 +01:00
videotestsrc spa: set port flags on port info 2022-05-26 10:39:31 +02:00
volume spa: Improve PropInfo fields 2022-03-30 17:09:08 +02:00
vulkan Add support for MidnightBSD 2022-06-19 18:22:47 +00:00
meson.build module-echo-cancel: Move backends to dynamic libaries 2022-02-15 15:45:46 +00:00