Add instrospection of client and source-output.
Add properties to source-output and to CreateSourceOutput/Input
Add helper to fill properties of context.
Add client-name to pinossrc and pinossink
Improve test-subscribe to show all new introspection details.
Set the active device providers as a property on the daemon. In the
device monitor we can then obsolete the already monitored devices.
Copy all device properties to the source. Set the device class as
a property on the monitored devices.
Keep the client-source in the playing state for as long as the input is
streaming. Pausing the pipeline when there are no more readers causes
data to bunch up in the socket that gets bursted to new clients when
they connect.
Set the format on the client source when it is created so that other
clients can inspect the format. It also makes client sources show up in
the device monitor.
Add a mainloop wrapper that runs the mainloop in a separate thread and
has some synchronization primitives.
Use new mainloop in gstreamer source and sink elements
Emit all notify in the context thread.
Handle error cases better.
Make sure we hold the lock when running the mainloop, this will cause
all of the signals to be emited with the lock. Make sure we call all
methods with the lock.
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
Use device manager to add/remove all video providers dynamically, remove
v4l2 specific code.
Get the client proxy from subscribe instead of waiting for the
subscription callback. This way we can actually make an error on
failure.
Clean up the objects when the server disappears.
Remove subscription from the server, we don't need it. Install server
objects in bus_acquired.
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.