Make it so that the permission of the core determines if a client
can continue or not. When the core is readable, the client is
allowed to continue otherwise it is paused.
Only track the peer of streams. We only care about where we linked
this stream to. There is only one target per stream but the device
we link to can have many peer streams.
Use an intermediate pending state that contains the state currently
in progress and use this to decide if we need to issue start/stop
commands.
Otherwise we might be in the running state, issue a Stop command,
issue a Start command (ignored because already running), then the
Stop completes and the node is stopped.
Add a property to periodically send the last buffer to keep the
stream alive. Useful for sparse streams that need to keep the
encoder busy every once and a while.
Make all sources in the same process with the same fd share the
connection to the server. This makes it possible to set the same
fd on multiple sources/sinks and have them all use the same
connection, like when capturing multiple monitors from screencast
with the portal.
Fixes#241
Don't use the core info to manage the hiden providers, that info
can't be put there anymore because the session manager manages
the devices now.
Look at the object path instead and hide those with well known
prefixes.
Add an option to resend the last buffer on EOS with an updated
timestamp. This can be used to make sure encoders fill up the
gap between last buffer and EOS, like with sparse streams from
screen capture.
The metadata is implemented by the session manager and it can decide
what to do when the defaults change. It can also choose to save
(some of) the metadata to a database.
The metadata is also shared between applications so that changes can
be picked up immediately.
Add a READONLY property flag to makr properties READONLY
Set the base_volume and volume_step in the acp device
Send the base volume and step as REAONLY properties. Use these
in pulse layer.