summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp')
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp b/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp
index a74fa1b4b..2c15d71dc 100644
--- a/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp
+++ b/src/multimedia/platform/gstreamer/common/qgstvideorenderersink.cpp
@@ -332,11 +332,15 @@ bool QGstVideoRenderer::handleEvent(QMutexLocker<QMutex> *locker)
}
}
- QGstVideoBuffer *videoBuffer = new QGstVideoBuffer(buffer, m_videoInfo, m_sink, m_format, memoryFormat);
- QVideoFrame frame(videoBuffer, m_format);
- QGstUtils::setFrameTimeStamps(&frame, buffer);
+ if (m_sink->inStoppedState()) {
+ m_sink->setVideoFrame(QVideoFrame());
+ } else {
+ QGstVideoBuffer *videoBuffer = new QGstVideoBuffer(buffer, m_videoInfo, m_sink, m_format, memoryFormat);
+ QVideoFrame frame(videoBuffer, m_format);
+ QGstUtils::setFrameTimeStamps(&frame, buffer);
- m_sink->setVideoFrame(frame);
+ m_sink->setVideoFrame(frame);
+ }
gst_buffer_unref(buffer);