From 556fa071219cb26f79bc40a641aeb3be05846b27 Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Sat, 31 Oct 2015 19:28:23 +0100 Subject: [PATCH] DirectShow: clear current video frame when stopping. Change-Id: I063d8a1b95f3d751f55dfce7fa2cb749177dc906 Reviewed-by: Christian Stromme --- src/plugins/directshow/player/videosurfacefilter.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/directshow/player/videosurfacefilter.cpp b/src/plugins/directshow/player/videosurfacefilter.cpp index 51151b16..901d2e90 100644 --- a/src/plugins/directshow/player/videosurfacefilter.cpp +++ b/src/plugins/directshow/player/videosurfacefilter.cpp @@ -147,6 +147,14 @@ HRESULT VideoSurfaceFilter::Stop() m_sampleScheduler.stop(); + if (thread() == QThread::currentThread()) { + flush(); + } else { + QMutexLocker locker(&m_mutex); + m_loop->postEvent(this, new QEvent(QEvent::Type(FlushSurface))); + m_wait.wait(&m_mutex); + } + return S_OK; }