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