Add flag to always assign a node to a driver. This makes sure that
even when the node is not linked to anything, it will still be
scheduled by an active driver. This is needed for JACK support.
clean_convert() removes the internally negotiated formats but
it does not set the format (or buffers) of the externally visible
ports. Therefore, don't clear the buffers_set flags.
Instead, clear the buffers_set flag when we explicitly reconfigure
the ports, when we also clear the format.
Also clear the port buffers when we set a NULL format.
Fixes#178
Makes a device with a source and sink that automatically
proxies all physical ports from jack. Jack then drives our
PipeWire pipeline from its own thread.
Getting SO_PEERSEC on distributions that do not use a LSM by default,
results always in a "protocol error", which is just annoying and not
a real problem for pipewire's operation.
Remove the parent_id from the global event. Remove the parent
and owner from the global object.
Use properties instead to mark parents and owners of objects.
Properties are easier to control for client exported objects and
usually a simple parent/child is not enough. For example, a client
exported node has the client as a parent but also the factory that
created the node.
Set the drained flag.
If the server calls us and we're out of buffers and the drained
flag is set, emit the drained signal.
Deactivate the node on disconnect.
Make sure we have no more pending process callbacks in the invoke
queue before when we pause.
When we do invoke from the loop thread, first process the pending
invoke items before handling ours. This can be used to sync the
invoke queue before cleanup.
Keep the output port buffers in a special mix info. They should
stay there even when the mix is removed and should only be cleared
explicitly with a NULL Format or 0 use_buffers.