pipewire/src/modules
Wim Taymans f3d9b823bd module-ffado: various fixes to make things work
The FFADO source needs to be the driver and the sink the follower so
that captured data can flow to playback without delay.

Instead of starting a new thread for FFADO, use a timer and the data
loop to wait for FFADO. This is not so nice because we do blocking waits
on the data thread but then we can schedule the source and sink without
a context switch from FFADO. We use a timer so that we can set a timeout
period before starting the graph and catch xruns. The timer will be
restarted immediately when the graph completes and we can go back into
the FFADO wait.

FFADO Xrun should result in a new wait() call.

Handle channels better, use AUX for the channels when they don't match
the given positions.

Silence playback when we don't have a sink or sink data.

Stop and start FFADO when the sink/source pause/resume.

PIPEWIRE_CONFIG_NAME=client-rt.conf pw-cli -m load-module
libpipewire-module-ffado-driver '{ ffado.period-size=32 ffado.period-num=2 }
now gives 4.722ms latency measured with jack_iodelay, equal to JACK.

See #3558
2024-03-06 18:01:33 +01:00
..
module-adapter adapter: remove factory.mode property 2024-02-23 16:28:11 +01:00
module-avb treewide: mark some functions static 2023-07-03 19:40:31 +02: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 client-node: clear buffers always when freeing mix 2024-02-04 12:40:34 +02:00
module-filter-chain meson: fix compilation when spa-plugins is disabled 2024-02-06 11:50:54 +01: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 log: add pw_log_topic_custom_enabled() 2024-01-04 17:40:57 +01:00
module-protocol-pulse pulse-server: Make sure peer_sink name is filled 2024-02-19 17:39:39 +01: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 stream: add pw_stream_get_nsec() to get current time 2024-03-04 12:59:26 +01: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 modules: avoid invalid properties access 2024-02-12 17:53:44 +01:00
flatpak-utils.h module-access: move EACCES check to pw_check_flatpak 2023-10-07 16:06:19 +03:00
meson.build meson: fix compilation when spa-plugins is disabled 2024-02-06 11:50:54 +01:00
module-access.c module-access: recognize "allowed" as legacy alias for "unrestricted" 2023-11-29 18:44:49 +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 modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-echo-cancel.c meson: fix compilation when spa-plugins is disabled 2024-02-06 11:50:54 +01: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: various fixes to make things work 2024-03-06 18:01:33 +01:00
module-filter-chain.c doc: remove stray \code 2024-02-19 11:06:45 +01:00
module-jack-tunnel.c jack-tunnel: convert JACK time to MONOTONIC 2024-03-04 15:34:42 +01:00
module-jackdbus-detect.c pipewire: module-jackdbus-detect: do not autostart jackdbus 2024-02-05 13:03:20 +00: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 doc: fix some doxygen warnings 2024-01-29 08:50:32 +00: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 jack-tunnel: convert JACK time to MONOTONIC 2024-03-04 15:34:42 +01:00
module-netjack2-manager.c modules: prefix network-utils methods with pw_net 2024-02-26 15:17:48 +01:00
module-pipe-tunnel.c module-pipe: resync when ringbuffer too full 2024-02-01 16:00:25 +01:00
module-portal.c pipewire: module-portal: watch only relevant NameOwnerChanged signals 2024-02-05 13:03:20 +00:00
module-profiler.c profiler: add transport state in the profile block 2024-02-29 14:07:08 +01:00
module-protocol-native.c Fix uninitialized variable usage 2024-02-10 20:52:31 +03:00
module-protocol-pulse.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-protocol-simple.c module-protocol-simple: do not cleanup client when send returns EAGAIN or EWOULDBLOCK 2024-02-05 13:26:25 +00: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 module-raop-discover: Skip tunnel creation for link-local addresses 2023-12-14 10:14:33 +00:00
module-raop-sink.c module-raop: don't start record in state change 2024-01-30 15:04:01 +01:00
module-roc-sink.c pipewire: module-roc-{sink,source}: add rudimentary ROC_INTERFACE_AUDIO_CONTROL support 2023-11-23 17:21:39 +01:00
module-roc-source.c pipewire: module-roc-{sink,source}: add rudimentary ROC_INTERFACE_AUDIO_CONTROL support 2023-11-23 17:21:39 +01:00
module-rt.c meson: add options to set server and client RT priority 2024-02-15 11:53:32 +01:00
module-rtp-sap.c stream: add pw_stream_get_nsec() to get current time 2024-03-04 12:59:26 +01:00
module-rtp-session.c modules: prefix network-utils methods with pw_net 2024-02-26 15:17:48 +01:00
module-rtp-sink.c modules: prefix network-utils methods with pw_net 2024-02-26 15:17:48 +01:00
module-rtp-source.c modules: prefix network-utils methods with pw_net 2024-02-26 15:17:48 +01:00
module-session-manager.c modules: add Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
module-vban-recv.c modules: prefix network-utils methods with pw_net 2024-02-26 15:17:48 +01: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 Module Name section to the module reference docs 2023-11-20 08:41:13 +00:00
network-utils.h modules: prefix network-utils methods with pw_net 2024-02-26 15:17:48 +01:00