summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qtmultimediaquicktools/qsgvideonode_rgb.cpp4
-rw-r--r--src/qtmultimediaquicktools/qsgvideonode_texture.cpp4
-rw-r--r--src/qtmultimediaquicktools/qsgvideonode_yuv.cpp3
3 files changed, 11 insertions, 0 deletions
diff --git a/src/qtmultimediaquicktools/qsgvideonode_rgb.cpp b/src/qtmultimediaquicktools/qsgvideonode_rgb.cpp
index 0f682d1e5..5093acb59 100644
--- a/src/qtmultimediaquicktools/qsgvideonode_rgb.cpp
+++ b/src/qtmultimediaquicktools/qsgvideonode_rgb.cpp
@@ -145,6 +145,10 @@ public:
virtual int compare(const QSGMaterial *other) const {
const QSGVideoMaterial_RGB *m = static_cast<const QSGVideoMaterial_RGB *>(other);
+
+ if (!m_textureId)
+ return 1;
+
return m_textureId - m->m_textureId;
}
diff --git a/src/qtmultimediaquicktools/qsgvideonode_texture.cpp b/src/qtmultimediaquicktools/qsgvideonode_texture.cpp
index fd8d8719c..500c1c62f 100644
--- a/src/qtmultimediaquicktools/qsgvideonode_texture.cpp
+++ b/src/qtmultimediaquicktools/qsgvideonode_texture.cpp
@@ -138,6 +138,10 @@ public:
virtual int compare(const QSGMaterial *other) const {
const QSGVideoMaterial_Texture *m = static_cast<const QSGVideoMaterial_Texture *>(other);
+
+ if (!m_textureId)
+ return 1;
+
int diff = m_textureId - m->m_textureId;
if (diff)
return diff;
diff --git a/src/qtmultimediaquicktools/qsgvideonode_yuv.cpp b/src/qtmultimediaquicktools/qsgvideonode_yuv.cpp
index c920ba3b9..af1e98cdf 100644
--- a/src/qtmultimediaquicktools/qsgvideonode_yuv.cpp
+++ b/src/qtmultimediaquicktools/qsgvideonode_yuv.cpp
@@ -171,6 +171,9 @@ public:
virtual int compare(const QSGMaterial *other) const {
const QSGVideoMaterial_YUV *m = static_cast<const QSGVideoMaterial_YUV *>(other);
+ if (!m_textureIds[0])
+ return 1;
+
int d = m_textureIds[0] - m->m_textureIds[0];
if (d)
return d;