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