When we find no valid sample file to read, go through all files and
report why they fail to load. Also display the current working directory
so that we can see where file are loaded from.
See #3223
Don't stop collecting runnable nodes when we find a driver, only a
driving node. Otherwise we would skip nodes between virtual sinks and
the real sink when the virtual sink is not driving.
Fixes#3220
Add some more mentions that modules can not be loaded in a remote
instance in PipeWire.
Also mention the special internal remote name to connect to the local
pw-cli instance.
Fixes#2988
JACK does not automatically generate aliases, so don't do that either.
The problem is that no new ports can be created if one already exists
with the same name or any of the aliases. This causes problems when a
port is renamed and a new port is created with the old name because the
alias might still be the old name and port creation fails.
Add a jack.fill-aliases for this purpose.
Fixes#3154
When a jack client is opened, the thread_utils from the context are
stored globaly. Replace this with a generic thread_utils when we close
the client again to avoid referencing freed memory.
When the first parsed part of the value does not look like a container,
dump the complete length of the value.
If a value would contain 'Tunnel sink', it would previously only
serialize the 'Tunnel' part and ignore the rest.
See #3212
Previously, a client disconnecting while a sample was playing could
lead to issues. For example, if a client disconnected before the
"ready" signal of the sample-play arrives, `operation_new_cb()`
would be called and that would try to use the client's pw_manager,
however, that has previously been destroyed in `client_disconnect()`.
If the client disconnected after the "ready" signal but before the reply
has been sent, then `sample_play_ready_reply()` would never be called
since operations are completed via the client's pw_manager which
would already be destroyed at that point.
Fix this by installing a listener on the client, and properly
cancelling the operation and making sure that the pending_sample
is correctly destroyed.