"GStreamer-CRITICAL" after loading qmediaplayer's libs and plugins
-
Hi
I am trying to display video on my Linux embedded ARM system (Beaglebone like) using qmediaplayer.
After loading all libraries include gstreamer and qt plugins, I get the below logs(APP:82): GLib-GObject-CRITICAL **: g_object_set assertion G_IS_OBJECT (object) failed
(APP:82): GStreamer-CRITICAL **: gst_object_ref assertion object != NULL failed
(APP:82): GStreamer-CRITICAL **: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed
(APP:82): GStreamer-CRITICAL **: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed
(APP:82): GStreamer-CRITICAL **: gst_bus_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed
(APP:82): GStreamer-CRITICAL **: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed
(APP:82): GStreamer-CRITICAL **: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed
(APP:82): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failedCan anyone help me with it?
Best regards,
IL -
Hi,
Did you installed gstreamer's plugins ?
-
@SGaist Hi,
I think so, what I do is copy libs into my target.
currently I have copied:- libgstbase-1.0.so
- libgsttag-1.0.so
- libgstaudio-1.0.so
- libgstvideo-1.0.so
- libgstreamer-1.0.so
- libgstapp-1.0.so
- libgstpbutils-1.0.so
Did I miss anything?
IL
-
Looks like the libs not the plugins. Search for something like gstreamer1.0-plugins-*
-
It's going to be a silly question but, are these plugins of the right architecture ?
-
@SGaist Hi,
If you asking about gst-plugins compilation, so all of the compilation done with my toolchain of-course.
Is there spacific location for them or /usr/lib is good enough?My target working with Linux FB, is that an issue? Because I have another log that show "No m_videoSink available"
When i have searched for that log i saw the code below in
qtmultimedia/src/gsttols/qgstreamervideowindow.cpp and it concern meif (elementName) {
m_videoSink = gst_element_factory_make(elementName, NULL);
} else if (QGuiApplication::platformName().compare(QLatin1String("xcb"), Qt::CaseInsensitive) == 0) {
// We need a native X window handle to be able to use xvimagesink.
// Bail out if Qt is not using xcb (the control will then be ignored by the plugin)
m_videoSink = gst_element_factory_make("xvimagesink", NULL);
}if (m_videoSink) {
...
}
else
qDebug() << "No m_videoSink available!";
Dose QtMultimedia gstreamer-1.0 support has been written for xcb and No eglfs, linuxfb, directfb, etc is available?Best regards,
IL -
What SGaist asked is: did you compile the plugins for ARM architecture?
Is your toolchain for cross-compilation for ARM? -
AFAIK it't not dependent on the QPA plugin
-
Found the missing plugins
Playing AVI required:- typedefinefunction lib
- inter lib
- autodetect lib
- libav codecs
- avi
And of-course I have new isuue :-(
Failed to start video surface due to main thread blocked
Thanks For the help, I probably start a new thread.
IL -
Glad you could go further !
You can use the "Topic Tool" button for that :)
-
@Ryan-Lee Set QT_DEBUG_PLUGINS variable before starting your app and analysehttps://doc.qt.io/qt-5.10/debug.html its output.
See https://doc.qt.io/qt-5.10/debug.html