I’m looking for the qml6glsink for GStreamer on Windows. On Linux, you can do an ‘apt-get add’ and everything works as expected. On Windows, you have the option of adding Qt6 support which would presumably include the qml6glsink, but when I do a search in the bin directory, there are no DLLs matching qml and when I do a gst-inspect, that returns results without the qml6glsink. Whereas, I see the expected qml6glsink on Linux.
More concerning and perhaps indicative of my issue is I see no difference in the output of gst-inspect in a typical install, a custom install with Qt6, or a full install. I would expect to see at least some different in the output between these 3 installations. I also tried installing on a clean (gstreamer never installed machine) and got the same results - gst-inspect always returning the same results.
It would seem I am missing something basic. And ideas would be appreciated.
GStreamer 1.22.9 (also tried 1.22.8 and 1.22.0)
MSVC 2019 64 Bit
Windows 11 (also tried 10)
None of upstream binaries that the GStreamer project provides contain any qml plugins. This is due to then neededing to ship Qt itself which is a big project in and of itself and also has its own complicated licensing situation.
If you need the qml elements, then you need to build the binaries yourself with the correct configuration. The README for this is here: GStreamer / cerbero · GitLab
Thanks! I was able to create a DLL and get things working. I took a short-cut (or maybe a long-cut) and created my own cmake file instead of using cerbero or meson as cmake is the way to go for Qt on Windows.
Some quick hints for others who have working Linux code, but want to run it on Windows.
In your application, need to make sure render is QSGRendererInterface::OpenGL.Don’t need that for Linux. You can do this via environment variable or hardcode as
Make sure to have debug and release build of DLL or else QtCreator may not see plugin. Also make sure to set relevant environment variables or equivalent paths. I put the DLL in C:\gst-plugins and then set GST_PLUGIN_PATH and QML_IMPORT_PATH to C:\gst-plugins. The DLL created has both the QML plug-in and the GST plug-in. The QML plug-in gets registered in the first call to
So this should be done before
QGuiApplication app(argc, argv);