This makes it easier to figure out if a particular module was missing
from the build. Example output:
Optional Modules
rt : YES
rtkit : YES
portal : YES
pulse-tunnel : YES
zeroconf-discover : YES
roc-sink : NO
roc-source : NO
We need to first mark the removed port as invalid, and then look for the
last valid port in the port array otherwise last_port becomes 0 and
midi dataflow stops.
Fixes#1601
When the node support transport sync. That is, when it will clear the
pending_sync flag from its activation area when it completed a new
seek.
Before this patch, the pending sync was always automatically cleared,
which broke some applications that are time masters such as bitwig.
Fixes#1589
Whenever a timebase owner is moved to a new driver, try to install it as
a timebase owner on the driver.
Before this patch, the timebase owner would only be installed on the
first driver is was assigned to, which was most likely a dummy driver.
See #1589
Use the core.info clock rate as the default sample rate as soon as the
manager exposes the core object. Otherwise the default sample rate is 0
until someone calls GET_SERVER_INFO, which as a side effect sets the
default sample rate.
Fixes issues with sinks not appearing right away.
Fixes#1588
Change the buffer_size and sample_rate when we are sure the proces
callback is not running.
Delay process callback until we have called the buffer_size or
samplerate callback. Otherwise the jack application might be called with
the new buffer_size/sample_rate before the callback has been called.
Allow one of "XEWIDT" to refer to none, errors, warnings, info, debug
and trace, respectively because they're immediately recognizable. Well,
except maybe the X.
PIPEWIRE_DEBUG="I" is equivalent to PIPEWIRE_DEBUG="3" for example.
When none of the nodes have a valid passthrough format, don't check if
passthrough is possible.
Without the check, it is possible that a node has a common format with
the peer that is not a passthrough format, like a raw audio format.
Fixes#1587
If WirePlumber is built as a subproject this calls the wireplumber's
`wp-uninstalled.sh` command to be able to run PW and WP commands from
the uninstalled shell.
Some applications might expect the process function to run concurrently
with the callbacks. PipeWire tries to avoid this by using a lock for the
duration of the process callback. Make an option to disable this.
See #1576
When the node is suspended, don't take into account the lock-quantum
settings or else the graph would not want to change to the requested
quantum of the node.
Say we have a jack node with node.lock-quantum = true and
node.latency=256/48000. When it joins the graph and is suspended, the
lock-quantum is ignored and the node.latency is set on the graph.
After that, the lock-quantum ensures the graph quantum doesn't change
anymore until the node is suspended.
When we move a node from one driver to another, move the quantum and
rate if the target driver was idle so that we can mostly continue
uninterupted until a quantum/rate change is calculated.
When the driver is going to be idle or not running, avoid updating
the quantum.
This is mostly when a node is moved to another driver. Changing the
quantum of the old driver would have the clients briefly see the useless
quantum before being moved to the new driver.
We just check the initial size of the buffer and remember that, we
should not emit (or schedule) a bufsize change callback.
Emiting the callback should really only be done after the buffer size
changes after activate completed.
Fixes some jconvolver startup problems.
default-session-manager is only used in the pw-uninstalled.sh developer
script. c25cec230c added the ability to
use the system-installed wireplumber but other than that this option is
largely superfluous.
Drop it and pick whichever the first entry to session-manager is. For
the vast use-case of either MS or WP this will just work fine and for
the niche case of building both SMs one just needs to make sure the
order is as desired.
And in the case of no session manager, the config line to start the SM
is now commented out.
The sources are used by the documentation, so rather than duplicating
the checks for whether to build it or not, just define it as
always-present empty array and fill it when needed.
Otherwise we get a meson error if media-session is disabled but
documentation is enabled.
Upstream libcamera commit 32635054bc76e2ababd8ea2177fca1f88229541a
changed "planes" on `FrameMetadata` to be a function. Adapt
the plugin code accordingly.
Keep track of the last scheduled sync operation and wake up listeners
when it completes.
The waiters also compare against the last issued sync so that when multiple
syncs are pending from multiple threads, they will all wakeup instead of
just one.
Fixes some lockups with ardour6.