diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2014-11-21 13:45:17 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2014-11-21 13:45:17 +0100 |
commit | f2b3363c119fe2de7253913f7a13fe1395d8d29f (patch) | |
tree | 7f8fdc1bff098a1c562a6aaf47057de6b164ce7b | |
parent | 2020b032e83d1b61736a80a6815635aa7451deed (diff) | |
parent | 96407d8d8980f5dee7a0848366c20584dbd8c321 (diff) | |
download | qtmultimedia-f2b3363c119fe2de7253913f7a13fe1395d8d29f.tar.gz |
Merge remote-tracking branch 'origin/5.4.0' into 5.4
Change-Id: Iec2c793710c95919975aa3c03144d915ca5fa84f
-rw-r--r-- | src/multimedia/qmediaopenglhelper_p.h | 2 | ||||
-rw-r--r-- | src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h | 2 | ||||
-rw-r--r-- | src/plugins/android/videonode/android_videonode.json | 2 | ||||
-rw-r--r-- | src/plugins/videonode/egl/egl.json | 2 | ||||
-rw-r--r-- | src/plugins/videonode/imx6/imx6.json | 2 | ||||
-rw-r--r-- | src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp | 23 |
6 files changed, 23 insertions, 10 deletions
diff --git a/src/multimedia/qmediaopenglhelper_p.h b/src/multimedia/qmediaopenglhelper_p.h index 0dbd79d47..bb445b693 100644 --- a/src/multimedia/qmediaopenglhelper_p.h +++ b/src/multimedia/qmediaopenglhelper_p.h @@ -47,7 +47,7 @@ #include <QtGui/QOpenGLContext> -#if defined(Q_OS_WIN) && (defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_DYNAMIC)) +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) && (defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_DYNAMIC)) #include <EGL/egl.h> #endif diff --git a/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h b/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h index c064f8ed8..8be77ff07 100644 --- a/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h +++ b/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h @@ -43,8 +43,6 @@ QT_BEGIN_NAMESPACE -const QLatin1String QSGVideoNodeFactoryPluginKey("sgvideonodes"); - class Q_MULTIMEDIAQUICK_EXPORT QSGVideoNode : public QSGGeometryNode { public: diff --git a/src/plugins/android/videonode/android_videonode.json b/src/plugins/android/videonode/android_videonode.json index 08bb12c3f..9b359ebac 100644 --- a/src/plugins/android/videonode/android_videonode.json +++ b/src/plugins/android/videonode/android_videonode.json @@ -1,3 +1,3 @@ { - "Keys": ["sgvideonodes"] + "Keys": ["android"] } diff --git a/src/plugins/videonode/egl/egl.json b/src/plugins/videonode/egl/egl.json index 08bb12c3f..54a0519f5 100644 --- a/src/plugins/videonode/egl/egl.json +++ b/src/plugins/videonode/egl/egl.json @@ -1,3 +1,3 @@ { - "Keys": ["sgvideonodes"] + "Keys": ["egl"] } diff --git a/src/plugins/videonode/imx6/imx6.json b/src/plugins/videonode/imx6/imx6.json index 08bb12c3f..2a7fc50cc 100644 --- a/src/plugins/videonode/imx6/imx6.json +++ b/src/plugins/videonode/imx6/imx6.json @@ -1,3 +1,3 @@ { - "Keys": ["sgvideonodes"] + "Keys": ["imx6"] } diff --git a/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp b/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp index 3b07e28c2..608aae5d1 100644 --- a/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp +++ b/src/qtmultimediaquicktools/qdeclarativevideooutput_render.cpp @@ -55,10 +55,21 @@ QDeclarativeVideoRendererBackend::QDeclarativeVideoRendererBackend(QDeclarativeV QObject::connect(m_surface, SIGNAL(surfaceFormatChanged(QVideoSurfaceFormat)), q, SLOT(_q_updateNativeSize()), Qt::QueuedConnection); - foreach (QObject *instance, videoNodeFactoryLoader()->instances(QSGVideoNodeFactoryPluginKey)) { + // Prioritize the plugin requested by the environment + QString requestedVideoNode = QString::fromLatin1(qgetenv("QT_VIDEONODE")); + + foreach (const QString &key, videoNodeFactoryLoader()->keys()) { + QObject *instance = videoNodeFactoryLoader()->instance(key); QSGVideoNodeFactoryInterface* plugin = qobject_cast<QSGVideoNodeFactoryInterface*>(instance); - if (plugin) - m_videoNodeFactories.append(plugin); + if (plugin) { + if (key == requestedVideoNode) + m_videoNodeFactories.prepend(plugin); + else + m_videoNodeFactories.append(plugin); +#ifdef DEBUG_VIDEOITEM + qDebug() << "found videonode plugin" << key << plugin; +#endif + } } // Append existing node factories as fallback if we have no plugins @@ -224,8 +235,12 @@ QSGNode *QDeclarativeVideoRendererBackend::updatePaintNode(QSGNode *oldNode, if (!videoNode) { foreach (QSGVideoNodeFactoryInterface* factory, m_videoNodeFactories) { videoNode = factory->createNode(m_surface->surfaceFormat()); - if (videoNode) + if (videoNode) { +#ifdef DEBUG_VIDEOITEM + qDebug() << "using video node from factory" << factory; +#endif break; + } } } } |