6#if QT_CONFIG(gstreamer_gl) && QT_CONFIG(gstreamer_gl_egl)
8#include <QtCore/qapplicationstatic.h>
9#include <QtCore/qmutex.h>
10#include <QtCore/qthread.h>
11#include <QtGui/qguiapplication.h>
12#include <QtGui/qpa/qplatformnativeinterface.h>
14#if QT_CONFIG(linux_dmabuf)
15# include <QtMultimedia/private/qdmabuftextureimporter_p.h>
23 Qt::HANDLE display =
nullptr;
27 Q_ASSERT(QThread::isMainThread());
28 using namespace Qt::StringLiterals;
29 auto *pni = qGuiApp ? qGuiApp->platformNativeInterface() :
nullptr;
30 display = pni ? pni->nativeResourceForIntegration(
"egldisplay"_ba) :
nullptr;
34Q_APPLICATION_STATIC(EglHolder, s_eglHolder);
36Qt::HANDLE qGstEglDisplay()
38 EglHolder *holder = s_eglHolder();
39 QMutexLocker lock(&holder->mutex);
40 if (!holder->display && QThread::isMainThread())
41 holder->queryDisplay();
42 return holder->display;
45# if QT_CONFIG(linux_dmabuf)
46bool qGstEglCanMapDmaBuf()
48 using namespace QtMultimediaPrivate;
50 EglHolder *holder = s_eglHolder();
51 QMutexLocker lock(&holder->mutex);
52 if (!holder->display && QThread::isMainThread())
53 holder->queryDisplay();
54 return (holder->display && QEglImageFunctions::instance().isValid());