pipewire/src/modules
Carlos Rafael Giani 1096d63468 module-rtp-source: implement IGMP recovery for multicast subscription loss
Add IGMP recovery mechanism that monitors RTP packet reception and
triggers multicast group refresh when no packets are received if
a deadline is reached. The deadline is configurable via a new stream
property "igmp.deadline.sec" (in seconds), with the default value
being 30 seconds (and a minimum of 5 seconds).

A timer checks regularly if the deadline was reached. That timer's
interval is set by the igmp.check.interval.sec property (in seconds),
with the default value being 5 seconds (and a minimum of 1 second).

When the deadline is reached, the mechanism performs IGMP leave/rejoin
operations to refresh multicast group membership. This ensures RTP
data continues to be received when network conditions cause IGMP
membership to expire or become stale due to router timeouts or
network issues.
2025-10-27 22:40:22 +01:00
..
module-adapter *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-avb modules: port modules to timer-queue 2025-10-15 16:57:24 +02:00
module-client-device protocol-native: check for NULL strings 2025-07-10 14:08:56 +00:00
module-client-node client-node: close SyncObj fd as well 2025-07-22 14:00:09 +02:00
module-jack-tunnel *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
module-metadata metadata: Added context monitor for removed globals 2024-02-12 08:40:49 +00:00
module-netjack2 Don't use SPA_AUDIO_MAX_CHANNELS directly 2025-10-21 09:43:06 +02:00
module-profiler treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
module-protocol-native src: check that POD arrays have the correct size for their type 2025-07-24 16:27:42 -04:00
module-protocol-pulse spa: remove some obsolete functions 2025-10-24 09:35:59 +02:00
module-raop *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
module-roc module-roc: add some more options 2025-02-18 15:51:39 +01:00
module-rt doc: clarify rlimits conf file 2024-01-05 10:22:28 +01:00
module-rtp module-rtp: Get the current stream time in a reusable manner 2025-10-27 22:40:22 +01:00
module-session-manager src: check that POD arrays have the correct size for their type 2025-07-24 16:27:42 -04:00
module-vban treewide: remove some obsolete channel checks 2025-10-24 10:31:45 +02:00
module-zeroconf-discover modules: use timer-queue in avahi-poll 2025-09-26 13:39:49 +02:00
spa doc: move modules around to add to docs 2025-01-28 12:33:47 +01:00
flatpak-utils.h modules: get also instance id for flatpak apps 2025-05-12 09:40:32 +00:00
meson.build modules: remove v0 protocol support 2025-07-10 16:26:01 +02:00
module-access.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-adapter.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-avb.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-client-device.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-client-node.c modules: remove v0 protocol support 2025-07-10 16:26:01 +02:00
module-combine-stream.c spa: remove some obsolete functions 2025-10-24 09:35:59 +02:00
module-echo-cancel.c module-echo-cancel: Avoid discontinuity 2025-10-27 14:39:29 +01:00
module-example-filter.c modules: handle format parsing errors 2025-10-23 18:01:35 +02:00
module-example-sink.c modules: handle format parsing errors 2025-10-23 18:01:35 +02:00
module-example-source.c modules: handle format parsing errors 2025-10-23 18:01:35 +02:00
module-fallback-sink.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-ffado-driver.c treewide: remove some obsolete channel checks 2025-10-24 10:31:45 +02:00
module-filter-chain.c treewide: remove some obsolete channel checks 2025-10-24 10:31:45 +02:00
module-jack-tunnel.c spa: remove some obsolete functions 2025-10-24 09:35:59 +02:00
module-jackdbus-detect.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-link-factory.c modules: nmake dynamic ports work in link-factory 2025-09-03 10:38:59 +02:00
module-loopback.c spa: remove some obsolete functions 2025-10-24 09:35:59 +02:00
module-metadata.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-netjack2-driver.c spa: remove some obsolete functions 2025-10-24 09:35:59 +02:00
module-netjack2-manager.c spa: remove some obsolete functions 2025-10-24 09:35:59 +02:00
module-parametric-equalizer.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-pipe-tunnel.c modules: handle format parsing errors 2025-10-23 18:01:35 +02:00
module-portal.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-profiler.c profiler: avoid null dereference 2025-10-06 14:38:38 +02:00
module-protocol-native.c pod: rework the parser 2025-07-29 15:15:02 +02:00
module-protocol-pulse.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-protocol-simple.c modules: handle format parsing errors 2025-10-23 18:01:35 +02:00
module-pulse-tunnel.c spa: remove some obsolete functions 2025-10-24 09:35:59 +02:00
module-raop-discover.c modules: use timer-queue in avahi-poll 2025-09-26 13:39:49 +02:00
module-raop-sink.c spa: add spa_audio_parse_position_n 2025-10-21 09:59:13 +02:00
module-roc-sink.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-roc-source.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-rt.c pipewire: module-rt: acquire_rt(): return error if thread not found 2025-08-01 21:42:32 +02:00
module-rtp-sap.c module-rtp-sap: implement IGMP recovery for multicast subscription loss 2025-10-27 22:40:22 +01:00
module-rtp-session.c module-rtp: Get the current stream time in a reusable manner 2025-10-27 22:40:22 +01:00
module-rtp-sink.c module-rtp: Replace state_changed callbacks 2025-08-25 10:33:50 +00:00
module-rtp-source.c module-rtp-source: implement IGMP recovery for multicast subscription loss 2025-10-27 22:40:22 +01:00
module-session-manager.c Fix typos 2024-05-22 09:19:34 +02:00
module-snapcast-discover.c modules: handle format parsing errors 2025-10-23 18:01:35 +02:00
module-spa-device-factory.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-spa-device.c doc: move modules around to add to docs 2025-01-28 12:33:47 +01:00
module-spa-node-factory.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-spa-node.c doc: move modules around to add to docs 2025-01-28 12:33:47 +01:00
module-vban-recv.c modules: port modules to timer-queue 2025-10-15 16:57:24 +02:00
module-vban-send.c module-vban: create streams per stream_name 2024-11-13 16:47:34 +01:00
module-x11-bell.c *: unify config.h handling 2025-05-30 10:24:13 +00:00
module-zeroconf-discover.c spa: make a function to make a channel short name 2025-10-22 13:04:53 +02:00
network-utils.h network-utils: handle inet_ntop errors 2025-01-09 16:28:51 +01:00