Когда я пытаюсь запустить приложение для видеовиджетов, оно выдает ошибку:
(videowidget:9305): GLib-GObject-WARNING **: cannot register existing type 'GstObject'
(videowidget:9305): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(videowidget:9305): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed
(videowidget:9305): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
(videowidget:9305): GStreamer-CRITICAL **: gst_element_class_set_details_simple: assertion 'GST_IS_ELEMENT_CLASS (klass)' failed
(videowidget:9305): GStreamer-WARNING **: static caps 0xade3824c string is NULL
(videowidget:9305): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed
(videowidget:9305): GStreamer-WARNING **: static caps 0xade3828c string is NULL
(videowidget:9305): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed
(videowidget:9305): GStreamer-WARNING **: static caps 0xade3824c string is NULL
(videowidget:9305): GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed
У меня есть две версии GStreamer, установленные на моей целевой машине 0.10 и 1.0, которая работает на Jessie 8.2.
Я понял, что при удалении версии 1.0 для версии 0.10 требуется файл .so из gstreamer1.0.
Пример VideoWidget из папки примера Qt работает нормально, но простой пример из doc.qt.io/qt-5/videooverview.html не сработает
1.0 и 0.10 устанавливаются параллельно, и я сомневаюсь, что один пытается использовать файл из другого.
Эти проблемы обычно возникают, когда приложение было связано с обеими версиями. В то время как вы можете иметь оба в своей системе, приложения должны связываться только с одним из них.
когда вы создаете объект, его родитель должен быть Q_NULL_POINTER
,
QFileDialog *pDlg = new QFileDialog();
вместо
QFileDialog *pDlg = new QFileDialog(this);