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.