Qmlsink video take 4
This is a complete rewrite of my old video qmlsink work. 1 - It uses a lof of ideas that I had developing the Qml Sink for QGC 2 - It uses a lot of insigths from @patrickpereira
There are two classes and three Qml elements in this, one from GStreamer, two from Kirogi: GStreamerIntegration - This class prepares the pipeline, sink and does all of the work. VideoSurface - This class handles the Pipeline State (pause / play / etc). state must be handled in it because of the render thread.
Whenever we request a state chnge in the pipeline, VideoSurface prepares the logic and calls update(), that will fake a update request on the Render thread - that will in turn call updatePaintNode() - this is the only local that the gstreamer pipeline should change it's status, if we change anywhere else, we get a black screen instead of a playing video.
VideoSurface holds a Pointer to the GStreamerIntegration, and uses that to calls directly when in need.
The pipeline creation is also modified a bit to add support for tee's in the future.