diff options
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp')
-rw-r--r-- | src/multimedia/platform/gstreamer/common/qgstvideobuffer.cpp | 10 |
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() |