It's possible that the last ref to a source-output is removed with
the remove signal, in that case, remove the object from the client
watched objects to avoid freeing it twice.
Use installed gstreamer and fix library name
Pass GError around for things that can fail and report the errors back
to the client.
Improve shutdown of pipeline when no clients are consuming.
Make GStreamer elements handle all kinds of data and not just video
because we can.
Use generic byte blobs for formats. We currently use them to store
gstreamer caps but we could also use them to exchange serialized
GVariants if we want.
Make properties a variant dictionary
Add the beginnings of a pulsevideosink
Make a new client-source object for every client that wants to provide
a stream. The client will have a handle to write the stream to.
Move source and source-output to the server side again.
Make the daemon track objects per sender so that we can remove them
when the sender disappears.
Track senders in the subscribe object and aggregate events from all
connected clients. This allows each client to get a complete view of all
the objects of pulsevideo. With all the source objects available, we can
then to the selection of the source on each client.
Remove the CreatSourceOutput on the Client1 object but let the client
select a good source and call CreateSourceOutput directly on the source.
This avoid going through the server to get a connection and the client
can just as well select a source.
Add a state property to the source and make it such that it can do async
state changes.
Remove the source provider object, each client can now directly see the
objects of another clients so there is no need for intermediate objects
in the server.
Track remote and local sources separately and make SourceProvider1
interfaces for remote objects so that we get the subscription right.
Move disconnect from the Manager1 to Client1 interface and implement
in the context.
Watch client object-manager and keep the remote source object in a
SourceProvider object. Keep a list of all sources in the daemon.
Handle the Client CreateSourceOutput by calling the method on a
registered source in the daemon.
Pass GDBusObject in the subscription signal so that we can get to more
details.
Rework subscription so that we can use it for client and server.
Move source and source-output to client to allow client provided
sources. Still needs some work but registration seems to work partly.
Rework DBUS API: move CreateSourceOutput to Client1 interface, remove
Add/RemoveProvider and Device1 interface. Rework SourceOutput1 to
allow for reconfigure.
Add a client to test v4l2 source.