pipewire/spa/plugins
Torkel Niklasson f174b4e688 audioconvert: sync filter-graphs out of data loop before forced rebuild
A forced setup_filter_graphs() deactivates and re-instantiates every graph,
which frees and recreates the underlying plugin handles (node_cleanup sets
node->hndl[i] = NULL before re-instantiating). This was done on a graph that
was still referenced by the RT data-loop snapshot (filter_graph[]), so the
RT thread could run a graph whose handles were NULL mid-rebuild, leading to a
NULL handle dereference in the filter-graph process path.

Mirror the safe ordering already used by load_filter_graph()/clean_filter_handles():
before reconfiguring, mark the graphs not-setup and sync_filter_graph() so the
data loop drops them from filter_graph[] under the loop lock. They are
republished by the sync that follows setup. The cheap snapshot swap is done
under the lock; the heavy re-instantiation stays off the RT path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-29 08:17:07 +00:00
..
aec Please replace the comma operator with the correct semicolon when setting aec.name and aec.latency. This will help avoid syntax errors and improve readability. 2026-06-22 17:40:01 +08:00
alsa compress-offload: fix fragment count validation in set_params 2026-06-16 09:38:19 +00:00
audioconvert audioconvert: sync filter-graphs out of data loop before forced rebuild 2026-06-29 08:17:07 +00:00
audiomixer mixer-dsp: fade-in/out on xrun as well 2026-06-18 11:06:44 +02:00
audiotestsrc plugins: handle some fd allocation errors 2026-05-05 11:36:45 +02:00
avb avb: use safer strbuf to construct strings 2026-05-06 13:09:03 +02:00
bluez5 bluez5: backend-native: fix multiple profile registration 2026-06-25 18:21:46 +03:00
control test: update copyright 2026-06-23 09:33:23 +02:00
ffmpeg spa: use log topics everywhere 2024-03-11 18:45:21 +02:00
filter-graph filter-graph: add normalize option for sofa 2026-06-25 16:24:38 +02:00
jack *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
libcamera spa: {libcamera,v4l2}: device: remove params 2026-06-25 12:05:04 +02:00
support node-driver: Add sync.force-tracking property 2026-06-11 20:34:22 +02:00
test plugins: handle some fd allocation errors 2026-05-05 11:36:45 +02:00
v4l2 spa: {libcamera,v4l2}: device: remove params 2026-06-25 12:05:04 +02:00
videoconvert modules: handle allocation errors gracefully 2026-05-05 13:10:21 +02:00
videotestsrc spa: do not use SPA_PROP_live 2026-03-27 18:03:24 +01:00
volume treewide: access the position information using helpers 2025-10-21 13:06:25 +02:00
vulkan vulkan: check for fcntl errors 2026-05-06 12:45:37 +02:00
meson.build spa/plugins: revert "Disable alsa plugin on !Linux platforms." 2026-03-12 09:20:05 +00:00