Wim Taymans
c73c852413
pulse-tunnel: improve debug
2022-04-18 16:48:10 +02:00
Wim Taymans
3c38794886
pulse-tunnel: recover from xruns better
2022-03-30 17:59:25 +02:00
Wim Taymans
da6687e6ec
module-pulse-tunnel: use dll to keep latency under control
...
Assign half the latency to the internal ringbuffer and half on the
network and remote end.
Use a dll to calculate the drift from our target ringbuffer fill
level and use the stream rate property to driver the resampler.
This should reduce uncontrolled latency over the tunnel.
PulseAudio wants us to be a driver will pull requests from the remote
side. We would need to provide a clock based on the remote end and
also try to follow it when we are not a driver. It would be slightly
better because in the normal playback case we would be able to
avoid resampling. We might do this eventually.
2022-03-30 17:23:09 +02:00
Wim Taymans
4ae94a6ca6
modules: use NODE_WANT_DRIVER=true instead of NODE_GROUP
...
For the modules that require a driver, don't add ourselves to
the pipewire.dummy group but instead just use the NODE_WANT_DRIVER
property to be assigned to a driver.
This makes it possible for the nodes to move to another driver than the
dummy driver (which has very high priority) and it avoids resampling in
cases where the nodes are linked to an audio source or sink.
2022-03-30 14:56:28 +02:00
Barnabás Pőcze
45bd8532eb
pipewire: use newly added function for deferred module destroy
...
Use the newly introduced `pw_impl_module_schedule_destroy()`
for deferred module destroy in all modules except
module-example-{sink,source}.
2022-02-18 12:30:53 +01:00
Barnabás Pőcze
4d4c6f20df
pipewire: remove work queue checks
...
Since now `pw_context_get_work_queue()` cannot
fail, the checks can be removed.
2022-02-18 12:30:53 +01:00
Wim Taymans
8c346ab3a7
pulse-server: list NETWORK flag on devices
...
Mark network sinks and sources with node.network.
2021-10-14 13:45:58 +02:00
Peter Hutterer
1d8d7e90ce
modules: switch a few modules to the new property helpers
2021-10-13 07:12:00 +00:00
Nicolai Syvertsen
dea1755b68
pulse-tunnel: follow pulseaudio for default format
2021-10-07 15:39:11 +02:00
Nicolai Syvertsen
28c2e8ca56
pulse-tunnel: use format, channels and rate props
2021-10-07 13:00:24 +02:00
Wim Taymans
696dbf7cd6
pulse-tunnel: pass latency as msec
2021-09-30 09:49:00 +02:00
Peter Hutterer
14112fd168
modules: use the new topic-based logging from various pipewire modules
2021-09-28 09:35:39 +02:00
Wim Taymans
cb474043fa
pulse-tunnel: add pulse.latency option
...
Add a pulse.latency option to override the default 100ms latency.
2021-09-23 13:11:52 +02:00
Wim Taymans
88ba3014d6
pulse-tunnel: increase default latency to 100ms
...
20ms is too small and might be a typo from the pulseaudio 200ms default
latency.
2021-09-23 13:00:15 +02:00
Wim Taymans
9f57341699
module-pulse-tunnel: set the bufferattr right
...
tlength for playack and fragsize for capture.
See #1434
2021-08-30 21:26:33 +02:00
Wim Taymans
6e44c081b0
modules: silence some useless warnings
...
Fixes #1423
2021-07-19 18:30:22 +02:00
Wim Taymans
aa4de60032
modules: pulse-tunnel can use RT_PROCESS
...
It writes samples to a ringbuffer and will not do any rt-unsafe
methods.
2021-06-25 15:51:30 +02:00
Peter Hutterer
f181232a61
doc: add the documentation infrastructure for pipewire modules
...
All empty pages for now but at least this makes them show up in the
documentation.
2021-06-25 08:42:24 +00:00
Wim Taymans
1f04e911c5
module: handle work queue create errors
...
Handle NULL when creating a work queue instead of crashing. The
create can fail when we run out of fds.
2021-06-18 16:29:23 +02:00
Peter Hutterer
e0471c6757
pipewire: allow NULL pointers in pw_properties_free()
...
Just like the real free() we should just ignore a NULL pointer, makes the
caller code easier for those instances where properties are optional.
Patch generated with concinelle with a few manual fixes.
2021-06-02 10:56:46 +00:00
Wim Taymans
b9efb25605
pulse-tunnel: handle latency a little better
...
Set a limit on the buffer size.
Announce our latency on the streams.
2021-05-28 11:19:05 +02:00
Peter Hutterer
7697ed0757
treewide: replace strcmp() == 0 with spa_streq()
...
This change is only done in source files for now, header files will be done
separately.
2021-05-18 22:10:27 +10:00
Wim Taymans
5c152bab23
zeroconf: improve stream properties
2021-05-14 11:19:02 +02:00
Wim Taymans
a428228ebf
pulse-tunnel: handle holes in record stream
...
Holes in the stream return a NULL ptr. Write silence to the
ringbuffer in that case.
2021-05-14 09:51:51 +02:00
Wim Taymans
09cba1e4de
module-pulse-tunnel: use SPA_UNLIKELY instead of PA_UNLIKELY
2021-05-13 14:53:39 +02:00
Wim Taymans
938e193987
pulse-tunnel: support node.target
...
Pass the node.target as the target on the remote.
Make a nicer stream name on the remote.
2021-05-12 16:49:19 +02:00
Wim Taymans
44f326013b
module-pulse-tunner: add module to tunnel to PulseAudio
...
Add a module that can make a source or sink that tunnels audio
to or from a (remote) PulseAudio server.
2021-05-12 15:56:59 +02:00