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 <christian.stromme@digia.com>
This commit is contained in:
committed by
The Qt Project
parent
329d9d4563
commit
be7a6241e7
@@ -62,7 +62,8 @@ ANDROID_BUNDLED_FILES += \
|
||||
lib/libQt5MultimediaQuick_p.so
|
||||
MODULE_PLUGIN_TYPES = \
|
||||
mediaservice \
|
||||
audio
|
||||
audio \
|
||||
video/videonode
|
||||
|
||||
win32:LIBS += -luuid
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ private:
|
||||
int m_orientation;
|
||||
};
|
||||
|
||||
class QSGVideoNodeFactoryInterface
|
||||
class Q_MULTIMEDIAQUICK_EXPORT QSGVideoNodeFactoryInterface
|
||||
{
|
||||
public:
|
||||
virtual QList<QVideoFrame::PixelFormat> 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)
|
||||
|
||||
Reference in New Issue
Block a user