5

I am trying to use QMediaPlayer class to play videos, but keep getting this error -

`GLib-GObject-WARNING **: cannot register existing type 'GstObject'

GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

 GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed

GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
 GStreamer-CRITICAL **: gst_pad_get_negotiated_caps: assertion 'GST_IS_PAD (pad)' failed`

Using Qt 5.7, with ubuntu 16.04. Installed qt with the install wizard (i.e didn't build anything from source myself), this is the packages I have for Gstreamer -

ii  gir1.2-gstreamer-0.10                       0.10.36-1.5ubuntu1                           amd64        Description: GObject introspection data for the GStreamer library
ii  gir1.2-gstreamer-1.0                        1.8.3-1~ubuntu0.1                            amd64        GObject introspection data for the GStreamer library
ii  gstreamer-qapt                              3.0.2-0ubuntu1.2                             amd64        GStreamer plugin to install codecs using QApt
ii  gstreamer0.10-alsa:amd64                    0.10.36-2ubuntu0.1                           amd64        GStreamer plugin for ALSA
ii  gstreamer0.10-doc                           0.10.36-1.5ubuntu1                           all          GStreamer core documentation and manuals
ii  gstreamer0.10-ffmpeg:amd64                  0.10.13-5ubuntu1~wily                        amd64        FFmpeg plugin for GStreamer
ii  gstreamer0.10-ffmpeg-dbg:amd64              0.10.13-5ubuntu1~wily                        amd64        FFmpeg plugin for GStreamer (debug symbols)
ii  gstreamer0.10-gconf:amd64                   0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugin for getting the sink/source information from GConf
ii  gstreamer0.10-gnomevfs:amd64                0.10.36-2ubuntu0.1                           amd64        GStreamer plugin for GnomeVFS
ii  gstreamer0.10-nice:amd64                    0.1.13-0ubuntu2                              amd64        ICE library (GStreamer 0.10 plugin)
ii  gstreamer0.10-plugins-base:amd64            0.10.36-2ubuntu0.1                           amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-apps             0.10.36-2ubuntu0.1                           amd64        GStreamer helper programs from the "base" set
ii  gstreamer0.10-plugins-base-dbg:amd64        0.10.36-2ubuntu0.1                           amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-doc              0.10.36-2ubuntu0.1                           all          GStreamer documentation for plugins from the "base" set
ii  gstreamer0.10-plugins-good:amd64            0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-good-dbg:amd64        0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-good-doc              0.10.31-3+nmu4ubuntu2.16.04.3                all          GStreamer documentation for plugins from the "good" set
ii  gstreamer0.10-pulseaudio:amd64              0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugin for PulseAudio
ii  gstreamer0.10-qapt                          3.0.2-0ubuntu1.2                             all          transitional dummy package
ii  gstreamer0.10-tools                         0.10.36-1.5ubuntu1                           amd64        Tools for use with GStreamer
ii  gstreamer0.10-x:amd64                       0.10.36-2ubuntu0.1                           amd64        GStreamer plugins for X11 and Pango
ii  gstreamer1.0-alsa:amd64                     1.8.3-1ubuntu0.2                             amd64        GStreamer plugin for ALSA
ii  gstreamer1.0-clutter-3.0                    3.0.18-1                                     amd64        Clutter PLugin for GStreamer 1.0
ii  gstreamer1.0-fluendo-mp3:amd64              0.10.32.debian-1                             amd64        Fluendo mp3 decoder GStreamer 1.0 plugin
ii  gstreamer1.0-libav:amd64                    1.8.3-1ubuntu0.2                             amd64        libav plugin for GStreamer
ii  gstreamer1.0-plugins-bad:amd64              1.8.3-1ubuntu0.2                             amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-bad-faad:amd64         1.8.3-1ubuntu0.2                             amd64        GStreamer faad plugin from the "bad" set
ii  gstreamer1.0-plugins-bad-videoparsers:amd64 1.8.3-1ubuntu0.2                             amd64        GStreamer videoparsers plugin from the "bad" set
ii  gstreamer1.0-plugins-base:amd64             1.8.3-1ubuntu0.2                             amd64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps              1.8.3-1ubuntu0.2                             amd64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-good:amd64             1.8.3-1ubuntu0.4                             amd64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:amd64             1.8.3-1ubuntu0.1                             amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-plugins-ugly-amr:amd64         1.8.3-1ubuntu0.1                             amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:amd64               1.8.3-1ubuntu0.4                             amd64        GStreamer plugin for PulseAudio
ii  gstreamer1.0-tools                          1.8.3-1~ubuntu0.1                            amd64        Tools for use with GStreamer
ii  gstreamer1.0-x:amd64                        1.8.3-1ubuntu0.2                             amd64        GStreamer plugins for X11 and Pango
ii  libgstreamer-plugins-bad1.0-0:amd64         1.8.3-1ubuntu0.2                             amd64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base0.10-0:amd64       0.10.36-2ubuntu0.1                           amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.0-0:amd64        1.8.3-1ubuntu0.2                             amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:amd64        1.8.3-1ubuntu0.4                             amd64        GStreamer development files for libraries from the "good" set
ii  libgstreamer0.10-0:amd64                    0.10.36-1.5ubuntu1                           amd64        Core GStreamer libraries and elements
ii  libgstreamer0.10-0-dbg:amd64                0.10.36-1.5ubuntu1                           amd64        Core GStreamer libraries and elements
ii  libgstreamer0.10-dev                        0.10.36-1.5ubuntu1                           amd64        GStreamer core development files
ii  libgstreamer1.0-0:amd64                     1.8.3-1~ubuntu0.1                            amd64        Core GStreamer libraries and elements
ii  libgstreamer1.0-0-dbg:amd64                 1.8.3-1~ubuntu0.1                            amd64        Core GStreamer libraries and elements
ii  libgstreamer1.0-dev                         1.8.3-1~ubuntu0.1                            amd64        GStreamer core development files
ii  libreoffice-avmedia-backend-gstreamer       1:5.1.6~rc2-0ubuntu1~xenial2                 amd64        GStreamer backend for LibreOffice
ii  qtgstreamer-plugins-qt5:amd64               1.2.0-3                                      amd64        GStreamer plugins from QtGStreamer - Qt 5 build

Also, running gst-launch -v playbin2 uri=file://U1_Test_Test030.avi fails,

Setting pipeline to PAUSED ...
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-size = -1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-duration = -1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: use-buffering = FALSE
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: download = FALSE
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: uri = "file://U1_Test_Test030.avi"
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: connection-speed = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: source = (GstGioSrc) source
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstURIDecodeBin:uridecodebin0/GstGioSrc:source: Could not open resource for reading.
Additional debug info:
gstgiosrc.c(324): gst_gio_src_get_stream (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstGioSrc:source:
Could not open location file://U1_Test_Test030.avi for reading: Operation not supported
Setting pipeline to NULL ...
Freeing pipeline ...

gst-launch-0.10 version 0.10.36 GStreamer 0.10.36 https://launchpad.net/distros/ubuntu/+source/gstreamer0.10

log output when using GST_DEBUG = 4 is in (this link https://pastebin.com/742JBtba)[https://pastebin.com/742JBtba]

JLev
  • 705
  • 1
  • 9
  • 30
  • you have those packages installed? – eyllanesc Dec 10 '17 at 15:18
  • Yes, this is the output for dpkg -l | grep gstreamer – JLev Dec 10 '17 at 15:25
  • Have you tried with the examples provided by Qt? What desktop are you using? Is it based on X11 or wayland? If it is based on wayland have you tried with X11? – Benjamin T Dec 12 '17 at 15:20
  • It's based on X11, and Qt's media player example gives the same errors – JLev Dec 12 '17 at 15:31
  • I'd say log a bug with Ubuntu – ericcurtin Dec 13 '17 at 00:24
  • Do `export GST_DEBUG=4` for the environment where the program running in and provide the complete log file (put it in DropBox or something). Notify me via @name in the comment. I am having that from time to time on different systems. – Alexander V Dec 13 '17 at 01:23
  • @AlexanderVX added it, https://pastebin.com/742JBtba – JLev Dec 13 '17 at 09:15
  • The log you posted to pastedbin does not show a single FAIL? Not even the lines from here? – Alexander V Dec 13 '17 at 16:08
  • Sorry for confusing you, it does contain all the original errors too... ``GLib-GObject-WARNING **: cannot register existing type 'GstObject' GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed GStreamer-CRITICAL **: gst_pad_get_negotiated_caps: assertion 'GST_IS_PAD (pad)' failed` – JLev Dec 13 '17 at 16:12
  • I have downloaded the file and could not find that. – Alexander V Dec 14 '17 at 05:36
  • This is the updated file - https://pastebin.com/tR4M24FN – JLev Dec 14 '17 at 08:12
  • The problem seems seems to be a programmatic error in vaapsink from VA-API. I suggest to remove VA-API from the system or to install fixed version of it. And it has nothing to do with C++ or Qt. Not sure if you can accept this comment as an answer. – Alexander V Dec 14 '17 at 18:01
  • try to use gstreamer1.0 – Pa_ Dec 19 '17 at 11:21
  • @Paul, I've tried it, still getting same errors. – JLev Dec 25 '17 at 08:18

3 Answers3

0

Are you using qt5-styleplugins?
If you do try to modify the /etc/environment override variable to:
QT_STYLE_OVERRIDE=gtk2

r0n9
  • 2,505
  • 1
  • 29
  • 43
0

Its really a pain in the neck to deal with codecs and Qt , So I suggest you use this library it will make the day easier for you!

VLC-Qt

antonyjr
  • 61
  • 1
  • 5
0

Upgrading to Qt 5.10 solved the problem.

JLev
  • 705
  • 1
  • 9
  • 30