qml6glsink
-
-
We are using the i.MX8M Plus. We have not been successful getting the Qt6 QML gstreamer plugins built into a Yocto distribution.
-
@nben386 Still not able to get gstreamer working with QML.
I'm considering using another approach and creating my own video sink class.
If your Qt version is 6, there is a QVideoSink class that could help us, but I don't have enough time and it'll take some time to implement it and check if it works -
@nben386 Still not able to get gstreamer working with QML.
I'm considering using another approach and creating my own video sink class.
If your Qt version is 6, there is a QVideoSink class that could help us, but I don't have enough time and it'll take some time to implement it and check if it works@imahgin Maybe try to post your issue to gstreamer forum
https://discourse.gstreamer.org/I tried to build gstreamer 1.22.7 + Qt 6.6 from the source. Because Qt 6.6 is installed under /opt, the include path of Qt is not set properly in gstreamer build script and the build of examples in plugin-good failed. Also tried to disable examples build in plugin-good and could not do it.
It seems that qml6 sink build is not enabled automatically. I enabled it manually and the build of gstreamer did include qml6 sink. I guess the build script of gstreamer still has some issues with Qt. It is likely that qml6 sink build may work with the Qt6 within the distribution of Linux. Have not tried it yet.
-
@imahgin Maybe try to post your issue to gstreamer forum
https://discourse.gstreamer.org/I tried to build gstreamer 1.22.7 + Qt 6.6 from the source. Because Qt 6.6 is installed under /opt, the include path of Qt is not set properly in gstreamer build script and the build of examples in plugin-good failed. Also tried to disable examples build in plugin-good and could not do it.
It seems that qml6 sink build is not enabled automatically. I enabled it manually and the build of gstreamer did include qml6 sink. I guess the build script of gstreamer still has some issues with Qt. It is likely that qml6 sink build may work with the Qt6 within the distribution of Linux. Have not tried it yet.
-
We're moving to Qt6 as we migrate to Yocto Mickledore. We are using i.MX8M Plus devices. Has anyone managed to get the qml6glsink gstreamer plugin built into a Yocto project for i.MX8M Plus devices?
Thanks
@ABest2 said in qml6glsink basketball random:
We're moving to Qt6 as we migrate to Yocto Mickledore. We are using i.MX8M Plus devices. Has anyone managed to get the qml6glsink gstreamer plugin built into a Yocto project for i.MX8M Plus devices?
I'm also in the process of migrating to Qt6 and Yocto Mickledore, and I'm also interested in integrating the qml6glsink GStreamer plugin into my Yocto project for i.MX8M Plus devices. If anyone in the community has insights, tips, or successful experience building the qml6glsink plugin for i.MX8M Plus in the Yocto project, I would greatly appreciate any guidance.
-
@ABest2 said in qml6glsink basketball random:
We're moving to Qt6 as we migrate to Yocto Mickledore. We are using i.MX8M Plus devices. Has anyone managed to get the qml6glsink gstreamer plugin built into a Yocto project for i.MX8M Plus devices?
I'm also in the process of migrating to Qt6 and Yocto Mickledore, and I'm also interested in integrating the qml6glsink GStreamer plugin into my Yocto project for i.MX8M Plus devices. If anyone in the community has insights, tips, or successful experience building the qml6glsink plugin for i.MX8M Plus in the Yocto project, I would greatly appreciate any guidance.
@Dure1966 A very simple way to do this is to build it from the source. The source code is under gstreamer/subprojects/gst-plugins-good/ext/qt6 if you download gstreamer source code from here:
https://gitlab.freedesktop.org/gstreamer/gstreamer.gitTry to build it with Qt 6 and your app. Then you can use it in your app. Sure you will have license issue. Better to build it into a plugin and put it at the right spot. Check where qml5glsink is located.
Take a look at qgroundcontrol project and it uses qml5sink source code for Android build.
If you build gstreamer and link it to your app, it can be messy. Better to use the one from distribution unless that gstreamer version is too old. It is the case for me. But I am still sticking to Qt5 for gstreamer and not keen to upgrade to Qt6.
-
@nben386 Still not able to get gstreamer working with QML.
I'm considering using another approach and creating my own video sink class.
If your Qt version is 6, there is a QVideoSink class that could help us, but I don't have enough time and it'll take some time to implement it and check if it worksHi @imahgin,
>>I'm considering using another approach and creating my own video sink class.I did exactly that using QVideoSink and it works well. There is only one issue:
At some point I need to copy my image buffer to QVideoSink using "memcpy" which appears to cost high amount of CPU.
I am willing to share the code in exchange of hints on how to optimize CPU usage. -
@Dure1966 A very simple way to do this is to build it from the source. The source code is under gstreamer/subprojects/gst-plugins-good/ext/qt6 if you download gstreamer source code from here:
https://gitlab.freedesktop.org/gstreamer/gstreamer.gitTry to build it with Qt 6 and your app. Then you can use it in your app. Sure you will have license issue. Better to build it into a plugin and put it at the right spot. Check where qml5glsink is located.
Take a look at qgroundcontrol project and it uses qml5sink source code for Android build.
If you build gstreamer and link it to your app, it can be messy. Better to use the one from distribution unless that gstreamer version is too old. It is the case for me. But I am still sticking to Qt5 for gstreamer and not keen to upgrade to Qt6.
@JoeCFD Installed Qt 6.6.1 and gstreamer 1.22.8. The prefix in all Qt pkg pc files is wrong. Wrote a script to replace all of them. It seems gstreamer meson build mainly uses pkg files to find Qt5/6. Anyway, my build of gstreamer with qml6 sink seems fine while I got the following files:
libgstqml6.so
in gstreamer/builddir/subprojects/gst-plugins-good/ext/qt6 andgstplugin.cc.o
gstqsg6glnode.cc.o
gstqt6glutility.cc.o
meson-generated_moc_qt6glitem.cpp.o
moc_qt6glitem.cpp
gstqml6glsink.cc.o
gstqt6element.cc.o
meson-generated_moc_gstqsg6glnode.cpp.o
moc_gstqsg6glnode.cpp
qt6glitem.cc.oin gstreamer/builddir/subprojects/gst-plugins-good/ext/qt6/libgstqml6.so.p
libgstqml6.so is installed at the right place as well. A strange thing is gst-inspect-1.0 does not show gstqml6glsink. Need to try an example with gstqml6glsink.
-
@JoeCFD Installed Qt 6.6.1 and gstreamer 1.22.8. The prefix in all Qt pkg pc files is wrong. Wrote a script to replace all of them. It seems gstreamer meson build mainly uses pkg files to find Qt5/6. Anyway, my build of gstreamer with qml6 sink seems fine while I got the following files:
libgstqml6.so
in gstreamer/builddir/subprojects/gst-plugins-good/ext/qt6 andgstplugin.cc.o
gstqsg6glnode.cc.o
gstqt6glutility.cc.o
meson-generated_moc_qt6glitem.cpp.o
moc_qt6glitem.cpp
gstqml6glsink.cc.o
gstqt6element.cc.o
meson-generated_moc_gstqsg6glnode.cpp.o
moc_gstqsg6glnode.cpp
qt6glitem.cc.oin gstreamer/builddir/subprojects/gst-plugins-good/ext/qt6/libgstqml6.so.p
libgstqml6.so is installed at the right place as well. A strange thing is gst-inspect-1.0 does not show gstqml6glsink. Need to try an example with gstqml6glsink.
-
@JoeCFD Asked gstreamer guys.
remove ~/.cache/gstreamer-1.0/
solved the issue.
gst-inspect-1.0 qml6glsink <===ok nowThks @JoeCFD for the info.
I also contacted with NXP to let them know the problem and the good news is that they are aware of the problem and it'll eventually be fixed in upcoming releases.
According to NXP, the issue is related to libqt6-qtlocation ¿?The problem is that new releases are only compatible with the latest i.MX93 SOC, so if you own the first SOC version you won't be able to install it -at least not using their standard building procedure-
BR
-
Thks @JoeCFD for the info.
I also contacted with NXP to let them know the problem and the good news is that they are aware of the problem and it'll eventually be fixed in upcoming releases.
According to NXP, the issue is related to libqt6-qtlocation ¿?The problem is that new releases are only compatible with the latest i.MX93 SOC, so if you own the first SOC version you won't be able to install it -at least not using their standard building procedure-
BR
-
C Christian Ehrlicher locked this topic on