summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gsttools/qgstreamervideowidget.cpp5
-rw-r--r--src/gsttools/qgstreamervideowindow.cpp5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp
index 9a29d327f..6e65b3065 100644
--- a/src/gsttools/qgstreamervideowidget.cpp
+++ b/src/gsttools/qgstreamervideowidget.cpp
@@ -98,7 +98,10 @@ QGstreamerVideoWidgetControl::QGstreamerVideoWidgetControl(QObject *parent)
, m_widget(0)
, m_fullScreen(false)
{
- m_videoSink = gst_element_factory_make ("xvimagesink", NULL);
+ // The QWidget needs to have 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)
+ if (QGuiApplication::platformName().compare(QLatin1String("xcb"), Qt::CaseInsensitive) == 0)
+ m_videoSink = gst_element_factory_make ("xvimagesink", NULL);
if (m_videoSink) {
// Check if the xv sink is usable
diff --git a/src/gsttools/qgstreamervideowindow.cpp b/src/gsttools/qgstreamervideowindow.cpp
index 7dd6ab253..a0697003a 100644
--- a/src/gsttools/qgstreamervideowindow.cpp
+++ b/src/gsttools/qgstreamervideowindow.cpp
@@ -35,6 +35,7 @@
#include <private/qgstutils_p.h>
#include <QtCore/qdebug.h>
+#include <QtGui/qguiapplication.h>
#include <gst/gst.h>
@@ -57,7 +58,9 @@ QGstreamerVideoWindow::QGstreamerVideoWindow(QObject *parent, const char *elemen
{
if (elementName) {
m_videoSink = gst_element_factory_make(elementName, NULL);
- } else {
+ } 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);
}