1From cf48f25dffc0a86840bcf6ad36242f66679cdbb5 Mon Sep 17 00:00:00 2001 2From: Jeffy Chen <jeffy.chen@rock-chips.com> 3Date: Wed, 26 Dec 2018 17:51:51 +0800 4Subject: [PATCH 07/17] gstreamer: mediaplayer: Fix hangs when replacing paused 5 video sink 6 7Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 8--- 9 src/gsttools/qgstreamerplayersession.cpp | 5 +++++ 10 1 file changed, 5 insertions(+) 11 12diff --git a/src/gsttools/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp 13index 98b7ffb..76282bc 100755 14--- a/src/gsttools/qgstreamerplayersession.cpp 15+++ b/src/gsttools/qgstreamerplayersession.cpp 16@@ -801,6 +801,11 @@ void QGstreamerPlayerSession::setVideoRenderer(QObject *videoOutput) 17 //while the sink is paused. The pad will be blocked as soon as the current 18 //buffer is processed. 19 if (m_state == QMediaPlayer::PausedState) { 20+ if (!m_everPlayed) { 21+ finishVideoOutputChange(); 22+ seek(m_lastPosition); 23+ } 24+ 25 #ifdef DEBUG_PLAYBIN 26 qDebug() << "Starting video output to avoid blocking in paused state..."; 27 #endif 28-- 292.20.1 30 31