summaryrefslogtreecommitdiffstats
path: root/src/gsttools/qgstreamerplayercontrol.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-08 03:00:24 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-09-08 03:00:24 +0200
commit1ca79e8645f9f3cf471c32cf9fd2894a4b41bcb1 (patch)
treeb35436ae81924383c43f03f0fc00e6a72ebe6cb3 /src/gsttools/qgstreamerplayercontrol.cpp
parent871a097d0c6e8203f82b398e21dcfd8151bdae27 (diff)
parentc5400d31a40847e2905b11759090400653624a94 (diff)
Merge remote-tracking branch 'origin/5.11' into 5.12v5.12.0-alpha1
Diffstat (limited to 'src/gsttools/qgstreamerplayercontrol.cpp')
-rw-r--r--src/gsttools/qgstreamerplayercontrol.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/gsttools/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp
index 91ba39ad9..053e5e408 100644
--- a/src/gsttools/qgstreamerplayercontrol.cpp
+++ b/src/gsttools/qgstreamerplayercontrol.cpp
@@ -308,7 +308,12 @@ void QGstreamerPlayerControl::stop()
if (m_currentState != QMediaPlayer::StoppedState) {
m_currentState = QMediaPlayer::StoppedState;
m_session->showPrerollFrames(false); // stop showing prerolled frames in stop state
- if (m_resources->isGranted())
+ // Since gst is not going to send GST_STATE_PAUSED
+ // when pipeline is already paused,
+ // needs to update media status directly.
+ if (m_session->state() == QMediaPlayer::PausedState)
+ updateMediaStatus();
+ else if (m_resources->isGranted())
m_session->pause();
if (m_mediaStatus != QMediaPlayer::EndOfMedia) {