pipewire/src/modules
Wim Taymans 46f71b1cd2 Rework how targets are managed
Manage them like we do on the client and reuse logic. Make a node
function to safely add and remove a target.

Activate the targets from the process loop when we can be sure that we
can resume them. This avoids incrementing the pending state when we are
not going to be able to resume the nodes (like when the cycle is ongoing
and we have already been scheduled) and avoids glitches and xruns.

When a node is added to the poll loop, it can activate its own targets.
This is mostly for driver so that they have something to schedule and
can then activate the other targets.

Try to resume the target when it is removed and we are supposed to be
scheduled.

Also add targets to the target_list when the node is remote to make sure
the profiler can see the targets as well.

Keep the node in the INACTIVE state as long as the eventfd of the node
is not added to the loop. Skip nodes in the INACTIVE state from going to
the NOT_TRIGGERED status, which avoids scheduling the node.

Make sure we remove any local targets we have in a node when we export
it, we will receive new targets from the server.

This should eliminate any glitches when adding and removing nodes from
the graph.

See #4026, #2468
2024-06-05 15:37:15 +02:00
..
module-adapter adapter: remove factory.mode property 2024-02-23 16:28:11 +01:00
module-avb conf: support property rules 2024-03-15 12:10:41 +01:00
module-client-device pipewire: module-client-device: include "client-device.h" in "resource-device.c" 2023-07-03 19:40:31 +02:00
module-client-node Rework how targets are managed 2024-06-05 15:37:15 +02:00
module-filter-chain filter-chain: fix arguments of calloc 2024-04-28 09:53:08 +02:00
module-jack-tunnel jack-tunnel: convert JACK time to MONOTONIC 2024-03-04 15:34:42 +01:00
module-metadata metadata: Added context monitor for removed globals 2024-02-12 08:40:49 +00:00
module-netjack2 spa: small cleanups 2024-01-10 15:51:01 +01:00
module-profiler treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
module-protocol-native protocol-native: clean up security context on unload 2024-03-15 13:00:30 +01:00
module-protocol-pulse pipewire: remove cleanup.h 2024-05-16 17:35:58 +02:00
module-raop pipewire: rtsp-client: use flexible array member for outgoing message content 2023-09-29 16:55:54 +00:00
module-roc pipewire: module-roc-{sink,source}: add rudimentary ROC_INTERFACE_AUDIO_CONTROL support 2023-11-23 17:21:39 +01:00
module-rt doc: clarify rlimits conf file 2024-01-05 10:22:28 +01:00
module-rtp modules: use acquire/release loop 2024-04-22 16:19:02 +02:00
module-session-manager Ensure all globals have PW_KEY_OBJECT_SERIAL prop 2024-02-09 14:45:05 +00:00
module-vban modules: move some spa_debug_mem to the log 2024-01-11 17:49:50 +01:00
module-zeroconf-discover treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
spa pipewire: remove cleanup.h 2024-05-16 17:35:58 +02:00
flatpak-utils.h module-access: move EACCES check to pw_check_flatpak 2023-10-07 16:06:19 +03:00
meson.build snapcast-discover: add snapcast discover module 2024-05-23 12:41:53 +02:00
module-access.c pipewire: remove cleanup.h 2024-05-16 17:35:58 +02:00
module-adapter.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-avb.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-client-device.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-client-node.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-combine-stream.c Fix typos 2024-05-22 09:19:34 +02:00
module-echo-cancel.c module-echo-cancel: Don't call _run() when inactive 2024-03-25 14:55:10 +00:00
module-example-filter.c doc: fix some doxygen warnings 2024-01-29 08:50:32 +00:00
module-example-sink.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-example-source.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-fallback-sink.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-ffado-driver.c module-ffado: keep track of transfered data 2024-06-04 16:53:56 +02:00
module-filter-chain.c Fix typos 2024-05-22 09:19:34 +02:00
module-jack-tunnel.c jack-tunnel: convert JACK time to MONOTONIC 2024-03-04 15:34:42 +01:00
module-jackdbus-detect.c Fix typos 2024-05-22 09:19:34 +02:00
module-link-factory.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-loopback.c module-loopback: only enable delay with valid rate and channels 2024-04-16 11:16:00 +02:00
module-metadata.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-netjack2-driver.c modules: use acquire/release loop 2024-04-22 16:19:02 +02:00
module-netjack2-manager.c modules: use acquire/release loop 2024-04-22 16:19:02 +02:00
module-parametric-equalizer.c parametric-equalizer: Use field widths in sscanf 2024-05-07 15:43:10 +05:30
module-pipe-tunnel.c protocol-simple: add per stream properties and formats 2024-05-14 17:30:05 +02:00
module-portal.c pipewire: module-portal: watch only relevant NameOwnerChanged signals 2024-02-05 13:03:20 +00:00
module-profiler.c profiler: Decrease memory usage 2024-05-31 07:29:47 +00:00
module-protocol-native.c Fix typos 2024-05-22 09:19:34 +02:00
module-protocol-pulse.c Fix typos 2024-05-22 09:19:34 +02:00
module-protocol-simple.c snapcast-discover: add snapcast discover module 2024-05-23 12:41:53 +02:00
module-pulse-tunnel.c modules: add reconnect support to module-pulse-tunnel 2024-01-05 13:34:19 +01:00
module-raop-discover.c Fix typos 2024-05-22 09:19:34 +02:00
module-raop-sink.c pipewire: remove cleanup.h 2024-05-16 17:35:58 +02:00
module-roc-sink.c pipewire: remove cleanup.h 2024-05-16 17:35:58 +02:00
module-roc-source.c pipewire: remove cleanup.h 2024-05-16 17:35:58 +02:00
module-rt.c Fix typos 2024-05-22 09:19:34 +02:00
module-rtp-sap.c Fix typos 2024-05-22 09:19:34 +02:00
module-rtp-session.c Fix typos 2024-05-22 09:19:34 +02:00
module-rtp-sink.c Fix typos 2024-05-22 09:19:34 +02:00
module-rtp-source.c modules: use acquire/release loop 2024-04-22 16:19:02 +02:00
module-session-manager.c Fix typos 2024-05-22 09:19:34 +02:00
module-snapcast-discover.c snapcast-discover: add snapcast discover module 2024-05-23 12:41:53 +02:00
module-vban-recv.c modules: use acquire/release loop 2024-04-22 16:19:02 +02:00
module-vban-send.c modules: prefix network-utils methods with pw_net 2024-02-26 15:17:48 +01:00
module-x11-bell.c module-x11-bell: force pulse backend 2023-12-05 16:20:40 +01:00
module-zeroconf-discover.c modules: add options to discover local services as well 2024-05-15 15:39:27 +02:00
network-utils.h raop: use pw_net utils to parse address 2024-05-15 11:26:12 +02:00