GNOME Bugzilla – Bug 762946
gst-omx is unusable with Qt 5.6 on Raspberry Pi
Last modified: 2016-03-30 06:51:08 UTC
Created attachment 322797 [details] QML playback test I've built Qt 5.6 with gstreamer 1.0 support on Raspberry Pi B. I've used gstreamer v1.7.2 with latest gst-omx. Also I applied this patches: https://bugzilla.gnome.org/show_bug.cgi?id=753886#c13 https://bugzilla.gnome.org/show_bug.cgi?id=760916 I tried to play 1080p video but framerate is very low (nearly 1 frame per 5 seconds). During playback I noticed that omxh264dec thread consumes up to 60% CPU. Although playback with "gst-launch-1.0 playbin uri=file:///<video>" has no issues. You can find QML file I used for tests in attachment.
This sounds like a Qt/QtMultimedia issue then? Did you try using GStreamer's qml sink?
Yes, I observe the same issue with qmlsink. I used QtGstreamer for test. Although 720p video playback is working properly. I'll attach debug logs generated with GST_DEBUG=*omx*:5
Created attachment 324914 [details] 1080p playback log
Created attachment 324915 [details] 720p playback log
Just in case: I used "less -R <log>" for view with parsed colors.
Interesting thing: I've converted 1080p media to 1920x1200 and tried to play it. Framerate seems to be as good as for 720p video (~30fps).
What application did you use to generate these logs? Can you share the source?
It's in attachments: "QML playback test" GST_DEBUG=*omx*:5 qmlscene playback-test.qml &> log.txt
That is not using qmlglsink then and the previous question of what happens when you use qmlglsink still stands. QtMultimedia is not really associated with or developed by the GStreamer developers.
For qmlglsink test I was using qt-gstreamer master branch: I've also tried to build qmlsink bundled with gst-plugins-bad with some configure.ac changes (removed check for HAVE_QT_WINDOWING). But have no success to use it with gst-player/qt example: > 0:00:06.604918080 1590 0x1b7e230 ERROR qtglwidget qtitem.cc:422:qt_item_init_winsys: 0x1c53b48 failed to retrieve wrapped context (NULL) > 0:00:06.605937045 1590 0x1b7e230 WARN qtsink gstqtsink.cc:326:gst_qt_sink_change_state:<sink> error: Could not initialize window system > 0:00:06.607208001 1590 0x1b7e230 ERROR playbin gstplaybin2.c:5421:activate_group:<playbin> failed to activate sinks > 0:00:06.611821840 1590 0x1b7e230 ERROR gst-player gstplayer.c:871:emit_error:<player0> Error: Failed to pause (gst-player-error-quark, 0)
You probably want bug 763044 then for the RPi.
Thanks! Now playback is working without issues. Seems that it was really Qt issue.