summaryrefslogtreecommitdiffstats
path: root/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-10-08 03:03:45 +0200
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-10-08 07:29:42 +0000
commit1cb8dcaa90ab5b7e05cced20772caade74f0461b (patch)
tree3a7536e366362952169ca78b03139c925c80c95b /src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
parentfa4d01ae128dd5605910bafda580e856239e36c6 (diff)
parentd2475bdd4cbb9a70abf19db465ddbdbf29591568 (diff)
Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts: src/multimedia/configure.json Change-Id: Ie887a5f4d718cb3e082b0e2ee996c6687af330cb
Diffstat (limited to 'src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp')
-rw-r--r--src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
index 4b68f47a4..e1468fe34 100644
--- a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
@@ -49,6 +49,11 @@
#include <unistd.h>
+#include <QtMultimedia/private/qtmultimediaglobal_p.h>
+#if QT_CONFIG(gstreamer_imxcommon)
+#include "private/qgstvideobuffer_p.h"
+#include <gst/allocators/imx/phys_mem_meta.h>
+#endif
//#define QT_VIVANTE_VIDEO_DEBUG
@@ -224,7 +229,12 @@ GLuint QSGVivanteVideoMaterial::vivanteMapping(QVideoFrame vF)
#endif
GLuint physical = ~0U;
-
+#if QT_CONFIG(gstreamer_imxcommon)
+ auto buffer = reinterpret_cast<QGstVideoBuffer *>(vF.buffer());
+ GstImxPhysMemMeta *meta = GST_IMX_PHYS_MEM_META_GET(buffer->buffer());
+ if (meta && meta->phys_addr)
+ physical = meta->phys_addr;
+#endif
glBindTexture(GL_TEXTURE_2D, tmpTexId);
glTexDirectVIVMap_LOCAL(GL_TEXTURE_2D,
fullWidth, fullHeight,