mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-26 02:00:33 +00:00
qmlglsink: Add Wayland support
Don't use gstgldisplay to get wayland display. Should use QPA on wayland to get wayland display for QT. https://bugzilla.gnome.org/show_bug.cgi?id=767553
This commit is contained in:
parent
acb1b44ee0
commit
a07a9b0bc3
2 changed files with 13 additions and 0 deletions
|
@ -26,6 +26,7 @@ libgstqtsink_la_SOURCES = \
|
||||||
libgstqtsink_la_CXXFLAGS = \
|
libgstqtsink_la_CXXFLAGS = \
|
||||||
-I$(top_srcdir)/gst-libs \
|
-I$(top_srcdir)/gst-libs \
|
||||||
-I$(top_builddir)/gst-libs \
|
-I$(top_builddir)/gst-libs \
|
||||||
|
-I$(QPA_INCLUDE_PATH) \
|
||||||
$(GST_CXXFLAGS) \
|
$(GST_CXXFLAGS) \
|
||||||
$(GST_BASE_CFLAGS) \
|
$(GST_BASE_CFLAGS) \
|
||||||
$(GST_PLUGINS_BASE_CFLAGS) \
|
$(GST_PLUGINS_BASE_CFLAGS) \
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include <QtGui/QGuiApplication>
|
#include <QtGui/QGuiApplication>
|
||||||
#include <QtQuick/QQuickWindow>
|
#include <QtQuick/QQuickWindow>
|
||||||
#include <QtQuick/QSGSimpleTextureNode>
|
#include <QtQuick/QSGSimpleTextureNode>
|
||||||
|
#include <qpa/qplatformnativeinterface.h>
|
||||||
|
|
||||||
#if GST_GL_HAVE_WINDOW_X11 && GST_GL_HAVE_PLATFORM_GLX && defined (HAVE_QT_X11)
|
#if GST_GL_HAVE_WINDOW_X11 && GST_GL_HAVE_PLATFORM_GLX && defined (HAVE_QT_X11)
|
||||||
#include <QX11Info>
|
#include <QX11Info>
|
||||||
|
@ -147,6 +148,17 @@ QtGLVideoItem::QtGLVideoItem()
|
||||||
this->priv->display = (GstGLDisplay *)
|
this->priv->display = (GstGLDisplay *)
|
||||||
gst_gl_display_x11_new_with_display (QX11Info::display ());
|
gst_gl_display_x11_new_with_display (QX11Info::display ());
|
||||||
#endif
|
#endif
|
||||||
|
#if GST_GL_HAVE_WINDOW_WAYLAND && GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_WAYLAND)
|
||||||
|
if (QString::fromUtf8 ("wayland") == app->platformName()){
|
||||||
|
struct wl_display * wayland_display;
|
||||||
|
QPlatformNativeInterface *native =
|
||||||
|
QGuiApplication::platformNativeInterface();
|
||||||
|
wayland_display = (struct wl_display *)
|
||||||
|
native->nativeResourceForWindow("display", NULL);
|
||||||
|
this->priv->display = (GstGLDisplay *)
|
||||||
|
gst_gl_display_wayland_new_with_display (wayland_display);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#if GST_GL_HAVE_WINDOW_ANDROID && GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_ANDROID)
|
#if GST_GL_HAVE_WINDOW_ANDROID && GST_GL_HAVE_PLATFORM_EGL && defined (HAVE_QT_ANDROID)
|
||||||
if (QString::fromUtf8 ("android") == app->platformName())
|
if (QString::fromUtf8 ("android") == app->platformName())
|
||||||
this->priv->display = (GstGLDisplay *) gst_gl_display_egl_new ();
|
this->priv->display = (GstGLDisplay *) gst_gl_display_egl_new ();
|
||||||
|
|
Loading…
Reference in a new issue