[Development] The dark side of QtMultimedia - strikes back
Massimo Callegari
massimocallegari at yahoo.it
Sun Jul 5 13:06:33 CEST 2015
Update.
The message "No m_videoSink available!" is clearly an alarm that something is going wrong.
So I checked the code and...surprise !
The EGLFS platform is not even considered ! Well done !
Code extract from qtmultimedia/src/gsttols/qgstreamervideowindow.cpp line 59:
if (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!";
I tried to add something like:
else if (QGuiApplication::platformName().compare(QLatin1String("eglfs"), Qt::CaseInsensitive) == 0) {
m_videoSink = gst_element_factory_make("eglglessink", NULL);
}
The error message disappears, but I get a black fullscreen result.
I don't even see the player example UI.
I guess it depends on the compositing between the gst window and the main eglfs window.
So I haven't gone any further.
I can tweak the player example to accept a filename from the command line and play it automatically.
At least I can check if the video playback is OK in this way.
This is extremely sad. I thought the gst 1.0 support came especially for the raspberry Pi, since the little dude cannot afford software decoding (thus the need of OMX -> thus the need of gst 1.0)
I can try the same tests on Xorg, but it's out of my scope.
I don't want to use Xorg but instead I will use Wayland.
More information about the Development
mailing list