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