From be7a6241e77f67e4a19c63ac5683dd7fa566e9d2 Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Fri, 27 Sep 2013 11:24:10 +0200 Subject: Android: refactor video renderer. Removed the overhead of having to create a shared OpenGL context in the GUI thread and pre-render the frame into a FBO. We now directly render the GL_TEXTURE_EXTERNAL_OES in the QtQuick render thread, using an Android-specific QSGVideoNode. We also use a callback from the render thread to create the texture from there and not have to create a separate shared OpenGL context. Change-Id: I6c8eb94b47d0a03329c912701b8af3fb5ebd1876 Reviewed-by: Christian Stromme --- src/multimedia/multimedia.pro | 3 ++- src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/multimedia') diff --git a/src/multimedia/multimedia.pro b/src/multimedia/multimedia.pro index 41a66687a..ef6633b95 100644 --- a/src/multimedia/multimedia.pro +++ b/src/multimedia/multimedia.pro @@ -62,7 +62,8 @@ ANDROID_BUNDLED_FILES += \ lib/libQt5MultimediaQuick_p.so MODULE_PLUGIN_TYPES = \ mediaservice \ - audio + audio \ + video/videonode win32:LIBS += -luuid diff --git a/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h b/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h index 4590e2f96..71230ca35 100644 --- a/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h +++ b/src/multimedia/qtmultimediaquicktools_headers/qsgvideonode_p.h @@ -69,7 +69,7 @@ private: int m_orientation; }; -class QSGVideoNodeFactoryInterface +class Q_MULTIMEDIAQUICK_EXPORT QSGVideoNodeFactoryInterface { public: virtual QList supportedPixelFormats(QAbstractVideoBuffer::HandleType handleType) const = 0; @@ -79,7 +79,7 @@ public: #define QSGVideoNodeFactoryInterface_iid "org.qt-project.qt.sgvideonodefactory/5.0" Q_DECLARE_INTERFACE(QSGVideoNodeFactoryInterface, QSGVideoNodeFactoryInterface_iid) -class QSGVideoNodeFactoryPlugin : public QObject, public QSGVideoNodeFactoryInterface +class Q_MULTIMEDIAQUICK_EXPORT QSGVideoNodeFactoryPlugin : public QObject, public QSGVideoNodeFactoryInterface { Q_OBJECT Q_INTERFACES(QSGVideoNodeFactoryInterface) -- cgit v1.2.3