4 ms·
I've worked on a couple of d-pad only uis using QtQuick, Including for a set top box. Gstreamer's qmlglsink works quite well with zero copy video playback. So
by saidinesh5 6y ago
I've worked on a couple of d-pad only uis using QtQuick,
Including for a set top box.
Gstreamer's qmlglsink works quite well with zero copy video playback. So CPU usage sits at 5-10% for a nice UI overlaid on top of a 1080p video stream on an embedded system. There are other third-party qt wrappers for gstreamer, but we didn't feel the need for it. Some were outdated too.
https://github.com/GStreamer/gst-plugins-good/tree/master/tests/examples/qt https://github.com/GStreamer/gst-plugins-good/tree/master/te...
Those examples show how to do basic video playback using gstreamer.
The key navigation really isn't that difficult either: https://doc.qt.io/qt-5/qtquick-input-focus.html https://doc.qt.io/qt-5/qtquick-input-focus.html
Just build your UI with a PageStack of Pages consisting of ListViews and GridViews, and that takes care of 90% of your navigation issues without you having to do anything.
For eg.
* filesystem explorer: ListView
* playback controls: GridView
Video Player Page: filesystem explorer + playback controls + video item and the page determines which item should get keyboard focus, based on certain actions/conditions.
So far, the main pain point was licensing. Some of the very useful qt quick components (like layouts for one) are licensed under LGPL v3, so you have to be careful if you're including then in your system - because then you'd have to provide a way for the user to swap out qt libraries or have to go for the commercial version.
Another pain point was CI. We had to manually build our own container with the Qt version we needed. The situation for CI improved recently i think.
- tpmx 6y agoThis gives me some starting points. Licensing: Thanks for that warning. I get that they want to make money, primarily off embedded customers. Haven't figured out my licensing model for this project yet, might even go full GPL.