Replace gstreamer with tuned decode/render pipelines
GStreamer has a number of quirks and bugs, particularly in specific versions. In particular, the version we use in QOpenHD has a known issue with rendering in QML that causes frame drops and jitter to appear, despite video being received, buffered, decoded and delivered to qmlglsink on time and consistently.
GStreamer also greatly complicates the build process and has a huge number of dependencies it ships with that have to be linked to in the correct order and/or shipped with the app, in part to ensure that most of the elements that decodebin might automatically decide to use, will actually work.
I've written a replacement decoder/renderer already, which has been tested by Justin and Thomas and seems to work great. The new video renderer closely mirrors what hello_video does on the ground station but on other platforms, feeding h264 data directly to the available hardware decoder and letting it render directly to the screen (aka zero copy, no decoded frames handled in the app itself).
Current status on each platform:
- [x] Android
- [ ] Windows
- [x] iOS
- [x] Mac
- [ ] Linux
- [x] Raspberry Pi