Goal
Get qml6glsink working on Android with Qt 6.9 (QML + GStreamer).
Context
I’m building GStreamer for Android inside a GitHub Actions runner so the setup is fully reproducible and clean. Workflow is here (exact steps + flags in YAML):
https://github.com/OpenHD/gst-full-android/blob/main/.github/workflows/compile.yml
What happens
The build (or runtime) tells me I need a “windowing backend.” On Android there isn’t a traditional windowing system, so I’m unsure which backend qml6glsink expects and how to enable it in the build.
What I think is going on
qml6glsink uses GStreamer-GL under the hood. On Android that should mean EGL/ANativeWindow rather than X11/Wayland. I suspect I’m missing the correct GStreamer-GL platform toggles (or Qt6 integration bits) when building for Android.
Questions
-
Which Meson/CMake options are required to build
qml6glsinkfor Android?- e.g., GStreamer-GL: do I need to explicitly enable an Android/EGL platform (
-Dgl=enabled,-Dgl_platform=…) for the sink to work?
- e.g., GStreamer-GL: do I need to explicitly enable an Android/EGL platform (
-
Are there Qt6-specific flags or headers I must point to so that
qml6glsinkpicks up the right Qt/GL integration on Android? -
Is
qml6glsinkthe recommended sink on Android with Qt 6.9 today, or should I use a different sink/approach? -
If the “windowing backend” error typically means “GStreamer-GL wasn’t built with the Android platform,” what are the minimal toggles to flip in a headless CI environment?
Build details
-
Target: Android (AAB/APK)
-
Qt: 6.9
-
GStreamer: (from the workflow)
-
Toolchain/NDK: (from the workflow)
-
Repro steps: run the GitHub workflow above
Any pointers on the exact flags or a minimal working example for qml6glsink on Android would be amazing. Thanks!