I’m new to Linux, Qt, GStreamer, qmake, cmake… My goal is to learn all of
the above while creating something that is personally useful and challenging for myself. I have installed both Qt 5.15.2 and GStreamer 1.18.0 on an Ubuntu 20.10 PC. Both Qt and GStreamer are working as expected. I have been able to build and run any desired Qt Example without issue. I have also been able to compile and run all of the GStreamer tutorials as well as my own custom pipelines using C and gst-launch-1.0. I’m attempting to use the example from: https://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/tests/examples/qt/qmlsink To get a test video to display in a QML application. The qmlsink example compiles and runs BUT I have one problem that I have not been able to resolve. Within the main.qml file is an import that is not found. import org.freedesktop.gstreamer.GLVideoItem 1.0 Err = QML module not found (org.freedesktop.gstreamer.GLVideoItem 1.0) See screen shot below: <http://gstreamer-devel.966125.n4.nabble.com/file/t379857/Integrate_Qt_and_GStreamer.png> If I comment out the import line, then the line with GstGLVideoItem errors with Unknown component and the app will not run. *I cannot find any documentation regarding GLVideoItem or GstGLVideoItem in any web search. It would be great if someone has information-documentation regarding this feature and how best to use it and could share it.* This problem spawns several noob questions regarding how to troubleshoot GStreamer and Qt import issues. 1) Is there a way to find which GStreamer file that this import is in? 2) Is there a way to search the system for this import and what would I look for? 3) How can the app compile and run with this error? 4) What needs to be installed or settings changed to satisfy the error. Below is a list of everything “GStreamer related” installed on the system. $ pkg-config --list-all | grep gstreamer gstreamer-1.0 GStreamer - Streaming media framework gstreamer-allocators-1.0 GStreamer Allocators Library - Allocators implementation gstreamer-app-1.0 GStreamer Application Library - Helper functions and base classes for application integration gstreamer-audio-1.0 GStreamer Audio library - Audio helper functions and base classes gstreamer-base-1.0 GStreamer base classes - Base classes for GStreamer elements gstreamer-check-1.0 GStreamer check unit testing - Unit testing helper library for GStreamer modules gstreamer-controller-1.0 GStreamer controller - Dynamic parameter control for GStreamer elements gstreamer-fft-1.0 GStreamer FFT Library - FFT implementation gstreamer-gl-1.0 GStreamer OpenGL Plugins Libraries - Streaming media framework, OpenGL plugins libraries gstreamer-gl-egl-1.0 GStreamer OpenGL Plugins Libraries (Wayland specifics) - Streaming media framework, OpenGL plugins libraries (EGL specifics) gstreamer-gl-prototypes-1.0 GStreamer OpenGL Plugins Libraries (OpenGL Prototypes) - Streaming media framework, OpenGL plugins libraries (OpenGL Prototypes) gstreamer-gl-wayland-1.0 GStreamer OpenGL Plugins Libraries (Wayland specifics) - Streaming media framework, OpenGL plugins libraries (Wayland specifics) gstreamer-gl-x11-1.0 GStreamer OpenGL Plugins Libraries (X11 specifics) - Streaming media framework, OpenGL plugins libraries (X11 specifics) gstreamer-net-1.0 GStreamer networking library - Network-enabled GStreamer plug-ins and clocking gstreamer-pbutils-1.0 GStreamer Base Utils Library - General utility functions gstreamer-plugins-base-1.0 GStreamer Base Plugins Libraries - Streaming media framework, base plugins libraries gstreamer-riff-1.0 GStreamer RIFF Library - RIFF helper functions gstreamer-rtp-1.0 GStreamer RTP Library - RTP base classes and helper functions gstreamer-rtsp-1.0 GStreamer RTSP Library - RTSP base classes and helper functions gstreamer-sdp-1.0 GStreamer SDP Library - SDP helper functions gstreamer-tag-1.0 GStreamer Tag Library - Tag base classes and helper functions gstreamer-video-1.0 GStreamer Video Library - Video base classes and helper functions Thanks in advance for any assistance. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Update: I have totally rebuilt my system trying to resolve this. Reinstalled
Qt 5.15.2 using the online installer and GStreamer 1.18.0 following the instructions on the GStreamer website into an Ubuntu 20.10 PC. Both Qt and GStreamer are working as expected. I have been able to build and run any desired Qt Example without issue. I have also been able to compile and run any of the GStreamer tutorials as well as my own custom pipelines using C and gst-launch-1.0. The Error persists. I have no idea as to how to fix this. I don’t know what kind of files QML imports look for. Are there tools or utilities available that would help debug this? Does someone have this working and could offer some suggestions. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi,
It sounds like you don't have the required qmlglsink GStreamer element available. That is what provides the necessary GLVideoItem for Qt to use. Instantiating the first qmlglsink is what registers the necessary Qt item for Qt to use as mentioned in the qmlsink example. On Ubuntu 20.10 you want the gstreamer1.0-qt5 package. Then 'gst-inspect-1.0 qmlglsink' should output the element's details. On 6/4/21 6:30 am, iotsystek wrote: > Update: I have totally rebuilt my system trying to resolve this. Reinstalled > Qt 5.15.2 using the online installer and GStreamer 1.18.0 following the > instructions on the GStreamer website into an Ubuntu 20.10 PC. Both Qt and > GStreamer are working as expected. I have been able to build and run any > desired Qt Example without issue. I have also been able to compile and run > any of the GStreamer tutorials as well as my own custom pipelines using C > and gst-launch-1.0. > > The Error persists. I have no idea as to how to fix this. I don’t know what > kind of files QML imports look for. Are there tools or utilities available > that would help debug this? Does someone have this working and could offer > some suggestions. > > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel OpenPGP_signature (505 bytes) Download Attachment |
Thank you for your input, its greatly appreciated.
When I attempted to install using: sudo apt install gstreamer1.0-qt5 as expected it shows as already being installed. /[sudo] password for ubuntu: Reading package lists... Done Building dependency tree Reading state information... Done gstreamer1.0-qt5 is already the newest version (1.14.5-0ubuntu1~18.04.1). The following packages were automatically installed and are no longer required: linux-headers-5.4.0-62-generic linux-hwe-5.4-headers-5.4.0-42 linux-hwe-5.4-headers-5.4.0-58 linux-hwe-5.4-headers-5.4.0-59 linux-hwe-5.4-headers-5.4.0-60 linux-hwe-5.4-headers-5.4.0-62 linux-image-5.4.0-62-generic linux-modules-5.4.0-62-generic linux-modules-extra-5.4.0-62-generic Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded. / When I run: gst-inspect-1.0 qmlglsink I get the expected output. /Factory Details: Rank none (0) Long-name Qt Video Sink Klass Sink/Video Description A video sink that renders to a QQuickItem Author Matthew Waters <[hidden email]> Plugin Details: Name qmlgl Description Qt gl plugin Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstqmlgl.so Version 1.14.5 License LGPL Source module gst-plugins-good Source release date 2019-05-29 Binary package GStreamer Good Plugins (Ubuntu) Origin URL https://launchpad.net/distros/ubuntu/+source/gst-plugins-good1.0 GObject +----GInitiallyUnowned +----GstObject.............................You get the idea. / I say expected because my simple test code compiles and runs as expected displaying a video in a QML window. This error is preventing me from being able to do any UI development using the designer. I found a short video regarding imports on Youtube. From that and what I have read on other sites, could this problem be related to NOT having either plugins.qmltypes or qmldir files in the folder with the libgstqmlgl.so file? If so do you know where I could find those files? Do you have a working example? Thanks in advance for any further assistance. <http://gstreamer-devel.966125.n4.nabble.com/file/t379857/2021-04-05_180452.jpg> -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Ah, so your problem is use with the Qt designer not showing finding the
relevant qml code. That use case is currently not supported by qmlglsink. The issue is that the necessary QML item is contained within the qmlglsink element itself and is registered dynamically when the element itself is instantiated. Qt designer doesn't know anything about GStreamer so cannot perform this initialisation for you. There are no qmldir or qmltype files for qmlglsink. The 'fix' involves are rather complicated restructure of the qmlglsink element to support placing the qml part/plugin in a separate .so that is findable with Qt tools (using qmldir or whatever). Cheers -Matt On 6/4/21 11:22 am, iotsystek wrote: > Thank you for your input, its greatly appreciated. > > When I attempted to install using: sudo apt install gstreamer1.0-qt5 as > expected it shows as already being installed. > > /[sudo] password for ubuntu: > Reading package lists... Done > Building dependency tree > Reading state information... Done > gstreamer1.0-qt5 is already the newest version (1.14.5-0ubuntu1~18.04.1). > The following packages were automatically installed and are no longer > required: > linux-headers-5.4.0-62-generic linux-hwe-5.4-headers-5.4.0-42 > linux-hwe-5.4-headers-5.4.0-58 linux-hwe-5.4-headers-5.4.0-59 > linux-hwe-5.4-headers-5.4.0-60 > linux-hwe-5.4-headers-5.4.0-62 linux-image-5.4.0-62-generic > linux-modules-5.4.0-62-generic linux-modules-extra-5.4.0-62-generic > Use 'sudo apt autoremove' to remove them. > 0 upgraded, 0 newly installed, 0 to remove and 26 not upgraded. > / > > When I run: gst-inspect-1.0 qmlglsink I get the expected output. > > /Factory Details: > Rank none (0) > Long-name Qt Video Sink > Klass Sink/Video > Description A video sink that renders to a QQuickItem > Author Matthew Waters <[hidden email]> > > Plugin Details: > Name qmlgl > Description Qt gl plugin > Filename > /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstqmlgl.so > Version 1.14.5 > License LGPL > Source module gst-plugins-good > Source release date 2019-05-29 > Binary package GStreamer Good Plugins (Ubuntu) > Origin URL > https://launchpad.net/distros/ubuntu/+source/gst-plugins-good1.0 > > GObject > +----GInitiallyUnowned > +----GstObject.............................You get the idea. > / > > I say expected because my simple test code compiles and runs as expected > displaying a video in a QML window. This error is preventing me from being > able to do any UI development using the designer. > > I found a short video regarding imports on Youtube. From that and what I > have read on other sites, could this problem be related to NOT having either > plugins.qmltypes or qmldir files in the folder with the libgstqmlgl.so file? > If so do you know where I could find those files? > > Do you have a working example? > > Thanks in advance for any further assistance. > > <http://gstreamer-devel.966125.n4.nabble.com/file/t379857/2021-04-05_180452.jpg> > > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel OpenPGP_signature (505 bytes) Download Attachment |
Wow!!! Thank You!!!
I have spent over a week researching and trying to figure this out. It always seemed like it should be fixable if I could just find the missing parts pieces - settings. I guess not. As I said at the beginning of the thread I’m new to Linux, Qt, GStreamer, qmake, cmake therefor I do not think that that time was wasted as I have learned a lot. If you don’t mind a few more questions. Was this information available somewhere on the Qt or GStreamer web sites? If so, where? How could I have missed it? Time to move on. Thank you again. Jim -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |