Commit graph

11055 commits

Author SHA1 Message Date
Wim Taymans 4bf526ddf4 module-netjack2: handle NULL socket
The socket might be NULL when it got destroyed due to an error.
2023-06-09 20:49:27 +02:00
Théo Lebrun 59756a7c5d examples: fix indent 2023-06-09 17:06:25 +00:00
Jordi Mas 7fc83ea417 Update Catalan translation 2023-06-09 17:05:01 +00:00
Wim Taymans 4e070c90aa module-profiler: ignore peer targets
Only log the targets of the node, ignoring the peers of the driver or
else we will log some nodes twice.

Fixes #3278
2023-06-09 17:06:48 +02:00
Wim Taymans f0e8b95d76 module-netjack2: do some more checks
Check packet size and avoid overflows when receiving data.
2023-06-09 13:37:39 +02:00
Wim Taymans d35e514549 module-netjack2: samples are transmitted in little endian
So swap them on big endian.
2023-06-09 12:26:39 +02:00
Wim Taymans 9dd5bab535 module-netjack2: add MIDI send and receive 2023-06-08 16:38:53 +02:00
Wim Taymans 98acb0d62d mixer: add some more debug 2023-06-08 16:35:08 +02:00
Wim Taymans c2860477c3 module-raop: add default 1 sec of latency
Make NTP timestamps based on CLOCK_REALTIME.

Handle socket errors.

Some devices want at least 1 second of latency between RTP and NTP
timestamps or they stay silent. A a raop.latency.ms property for this
purpose that defaults to 1 second.

It is said that all devices seem to add 250ms of extra playback delay,
so include that into the delay reporting.

Fixes #3247
2023-06-07 16:51:34 +02:00
Wim Taymans 9a93a60fbf raop: log last error on connection failure 2023-06-07 16:45:56 +02:00
Wim Taymans de211f4e89 examples: add another example
See #3272
2023-06-06 19:50:58 +02:00
Wim Taymans f9b2df25c7 docs: clarify writefd in transport 2023-06-06 11:02:43 +02:00
Wim Taymans c3b01eee97 doc: clarify proxy/resource 2023-06-06 10:54:53 +02:00
Wim Taymans 2a00b784fa doc: small improvement 2023-06-06 10:44:39 +02:00
Wim Taymans 14fd7f7bf7 module-raop: fix deduplication
Also check duplicate entries in the resolve callback because we might
not have created a tunnel earlier.
2023-06-06 10:23:52 +02:00
Wim Taymans 6b6f3432fe alsa: htimestamp needs an operation to sync with hw
So use snd_pcm_avail
2023-06-05 17:15:30 +02:00
Wim Taymans 29e6544bae alsa: enable htimestamp mode
Use snd_pcm_htimestamp to get both the available space and the timestamp
when this was calculated. We can then use this to get a better estimate
of the delay in the device against the graph start and get a more
reliable delay between capture and playback.
2023-06-05 16:49:58 +02:00
Wim Taymans 90e2f4a139 alsa: fix impossible timeouts
Use the avail and read_size to calculate the next timeout, not delay and
target, which could give a negative value and impossible timeout.
2023-06-05 16:49:02 +02:00
Wim Taymans 61ce16b19f alsa: decouple delay from avail
Use separate values for the number of available samples in the
ringbuffer and the delay in the device.

When using htimestamp we can use the tstamp to get a more accurate delay
value against the graph start time.
2023-06-05 16:33:12 +02:00
Wim Taymans 04e17a8b1c module-netjack2: handle driver reconnect
Let the driver keep announcing.
Keep track of when a message was received in the driver. If we don't
receive anything for a while, reconnect.

Don't connect twide in the manager.
2023-06-05 13:30:16 +02:00
Wim Taymans 8db98b114d module-protocol-native: close fds from zombie clients
When a client is zombie, close the fds we got in the discarded message
or else we leak them.

See #1840
2023-06-05 13:28:04 +02:00
Wim Taymans 22acf94f7d docs: add netjack2 manager 2023-06-05 10:44:07 +02:00
Wim Taymans a70a89289b module-netjack2: fix driver name 2023-06-05 10:36:30 +02:00
Wim Taymans f2a0df9ac2 module-netjack2: lock and force rate and quantum 2023-06-05 10:36:08 +02:00
Wim Taymans 407ee3940c module-netjack2: set latency param 2023-06-05 10:21:18 +02:00
Wim Taymans 7de7a620f3 module-ffado: fix latency configuration
Don't deref the port before we created it.
2023-06-05 10:21:18 +02:00
Wim Taymans cc82715325 module-netjack2: refactor
Move common code to a separate file.
2023-06-05 10:20:43 +02:00
Wim Taymans 7bd74a67f4 module-netjack2: use frames from graph and sync
The params are the initial period_size, use the ones used to
encode the packets.
2023-06-02 15:43:34 +02:00
Wim Taymans 629e322fac module-netjack2: clear empty buffers 2023-06-02 15:09:31 +02:00
Wim Taymans 287566937e module-netjack2: improve node names 2023-06-02 13:31:38 +02:00
Wim Taymans 2988d9c831 module-netjack2: small improvements
Improve node properties
Improve module parameters and docs
Send send and recv buffer sizes.
Stop follower on connection errors.
2023-06-02 13:24:49 +02:00
Wim Taymans 2d253de359 module-profiler: add per client xrun count in profiler data
So that pw-top can show the client xruns instead of the driver xruns
2023-06-02 13:23:55 +02:00
Wim Taymans 9727bf3c4b modules: fix some compiler warnings 2023-06-01 19:01:25 +02:00
Barnabás Pőcze 4e370151b0 pipewire: introspect: do not leave spa_param_infos uninitialized
`pw_reallocarray()` leaves the newly allocated storage (if any)
uninitialized, so fill the bytes of the new `spa_param_info` objects
with zeros in `pw_{node,port,device}_info_merge()` to avoid handing
out pointers to uninitialized storage.
2023-06-01 16:57:42 +00:00
Barnabás Pőcze 212c574821 pipewire: module-ffado-driver: don't have labels at the end
Labels are only allowed before statements before C23,
and clang does not support them as an extension in
gnu11 that pipewire uses, so add `break`s.
2023-06-01 16:56:59 +00:00
Wim Taymans 2cc0fe0b3c module-netjack2: add netjack2 manager
This module listens for messages from netjack2 drivers and makes a sink
and source filter to send and receive data from the remote driver.
2023-06-01 18:36:07 +02:00
Wim Taymans f8aa18c88b module-netjack2: small improvements 2023-06-01 18:36:07 +02:00
Wim Taymans 52bc7451fd filter: add support for TRIGGER 2023-06-01 18:36:07 +02:00
Barnabás Pőcze 7fb7c679d0 ci: fix quotation in MESON_OPTIONS
Fix quotation in `MESON_OPTIONS` because it is not expanded the way we want it.

Fixes: 44367eef12 ("ci: add `-UFASTPATH` to build_all")
2023-05-31 19:08:39 +02:00
Wim Taymans fe99990e0f doc: update with netjack2 driver 2023-05-31 17:38:05 +02:00
Barnabás Pőcze 44367eef12 ci: add -UFASTPATH to build_all
To catch issue in from `spa_log_trace_fp()` and
`pw_log_trace_fp()` macro invocations.
2023-05-31 15:29:12 +00:00
Barnabás Pőcze b89942017b ci: install libffado-devel on fedora
To build test `libpipewire-module-ffado-driver`.
2023-05-31 15:29:12 +00:00
Wim Taymans 991a1558dc module: add a netjack2 driver module
The module advertizes itself on multicast and will trigger a new client
in the netjack2 manager. Tested with jack2 and 'jack_load netmanager'.

The driver will receive and send data (no midi yet) from and to the
manager in sync with the manager, without resampling and with a fixed
latency.
2023-05-31 17:22:05 +02:00
Wim Taymans d9e29e70f3 module-ffado: fix compilation with -UFASTPATH 2023-05-30 15:57:07 +02:00
Wim Taymans 3626b1e90e module-ffado: add docs 2023-05-29 09:19:29 +02:00
Wim Taymans 149bb3eee8 module-ffado: set playback buffers as well 2023-05-29 09:17:08 +02:00
Wim Taymans a4f6c02a7d modules-ffado: add properties 2023-05-28 19:17:41 +02:00
Wim Taymans 3c44634dd8 modules: add ffado driver module 2023-05-28 15:53:58 +02:00
Piotr Drąg 6a0df592f2 Update Polish translation 2023-05-28 12:47:07 +02:00
Sabri Ünal 5aac3d0dd6 Update Turkish translation
Use "art alan hizmeti" for the daemon translation.
2023-05-26 23:39:56 +03:00