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.
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.