summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp')
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp b/src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp
index b93cb9eac..878b4d410 100644
--- a/src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp
+++ b/src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp
@@ -88,16 +88,18 @@ QT_BEGIN_NAMESPACE
QGstVideoBuffer::QGstVideoBuffer(GstBuffer *buffer, const GstVideoInfo &info, QGstreamerVideoSink *sink,
const QVideoFrameFormat &frameFormat,
QGstCaps::MemoryFormat format)
- : QAbstractVideoBuffer((sink->rhi() && format != QGstCaps::CpuMemory) ?
- QVideoFrame::RhiTextureHandle : QVideoFrame::NoHandle, sink->rhi())
+ : QAbstractVideoBuffer((sink && sink->rhi() && format != QGstCaps::CpuMemory) ?
+ QVideoFrame::RhiTextureHandle : QVideoFrame::NoHandle, sink ? sink->rhi() : nullptr)
, memoryFormat(format)
, m_frameFormat(frameFormat)
, m_videoInfo(info)
, m_buffer(buffer)
{
gst_buffer_ref(m_buffer);
- eglDisplay = sink->eglDisplay();
- eglImageTargetTexture2D = sink->eglImageTargetTexture2D();
+ if (sink) {
+ eglDisplay = sink->eglDisplay();
+ eglImageTargetTexture2D = sink->eglImageTargetTexture2D();
+ }
}
QGstVideoBuffer::~QGstVideoBuffer()