pipewire/spa/plugins
Martin Geier 9afa0cd270 alsa-pcm: enable interrupts after alsa recovery
Interrupts are disabled in alsa_irq_wakeup_event -> playback_ready method
to not produce another wakeups when waiting for a new data. Interrupts are
enabled again when a new data arrives in a method spa_alsa_write.
In rare cases, when there is multiple streams providing data and one of
them is disconnected, a new data fails to be delivered and the spa_alsa_write
is not called. Not providing data produces underrun and alsa-pcm invokes
recovery process. Recovery process starts a new playback, but without interrupts
enabled is graph not triggered and new data are not delivered (to enable
interrupts). Recovery process keeps running in loop.
Now the interrupts are enabled again after the recovery and the starvation
should not occur.

Signed-off-by: Martin Geier <martin.geier@streamunlimited.com>
2025-06-10 16:28:46 +02:00
..
aec spa: aec: Add support for webrtc-audio-processing-2 2025-01-09 12:06:58 +00:00
alsa alsa-pcm: enable interrupts after alsa recovery 2025-06-10 16:28:46 +02:00
audioconvert adapter: use the right default when filtering default 2025-06-03 11:35:59 +02:00
audiomixer loop: add method to run a function with the lock 2025-05-29 10:17:16 +02:00
audiotestsrc loop: add method to run a function with the lock 2025-05-29 10:17:16 +02:00
avb *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
bluez5 bluez5: aac: disable Perceptual Noise Substitution for MPEG-2 profile 2025-06-03 09:38:28 +00:00
control loop: add method to run a function with the lock 2025-05-29 10:17:16 +02:00
ffmpeg spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
filter-graph filter-chain: document ffmpeg plugin 2025-06-10 10:55:45 +02:00
jack *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
libcamera loop: spa_loop_invoke -> spa_loop_locked where possible 2025-05-30 11:59:35 +02:00
support loop: don't call the hooks around blocking wait 2025-06-10 11:57:38 +02:00
test loop: spa_loop_invoke -> spa_loop_locked where possible 2025-05-30 11:59:35 +02:00
v4l2 *: unify config.h handling 2025-05-30 10:24:13 +00:00
videoconvert adapter: use the right default when filtering default 2025-06-03 11:35:59 +02:00
videotestsrc loop: spa_loop_invoke -> spa_loop_locked where possible 2025-05-30 11:59:35 +02:00
volume spa: fix volume plugin compilation 2024-06-18 15:44:26 +02:00
vulkan loop: spa_loop_invoke -> spa_loop_locked where possible 2025-05-30 11:59:35 +02:00
meson.build filter-chain: move the filter-graph to plugins 2024-11-13 11:12:06 +01:00