diff options
Diffstat (limited to 'src/gsttools')
-rw-r--r-- | src/gsttools/qgstreamerplayercontrol.cpp | 8 | ||||
-rw-r--r-- | src/gsttools/qgstreamerplayersession.cpp | 3 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/gsttools/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp index bd4c90ac5..165978288 100644 --- a/src/gsttools/qgstreamerplayercontrol.cpp +++ b/src/gsttools/qgstreamerplayercontrol.cpp @@ -450,6 +450,10 @@ void QGstreamerPlayerControl::updateSessionState(QMediaPlayer::State state) void QGstreamerPlayerControl::updateMediaStatus() { + //EndOfMedia status should be kept, until reset by pause, play or setMedia + if (m_mediaStatus == QMediaPlayer::EndOfMedia) + return; + pushState(); QMediaPlayer::MediaStatus oldStatus = m_mediaStatus; @@ -477,10 +481,6 @@ void QGstreamerPlayerControl::updateMediaStatus() if (m_currentState == QMediaPlayer::PlayingState && !m_resources->isGranted()) m_mediaStatus = QMediaPlayer::StalledMedia; - //EndOfMedia status should be kept, until reset by pause, play or setMedia - if (oldStatus == QMediaPlayer::EndOfMedia) - m_mediaStatus = QMediaPlayer::EndOfMedia; - popAndNotifyState(); } diff --git a/src/gsttools/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp index b9e1c084f..ed3f16c5f 100644 --- a/src/gsttools/qgstreamerplayersession.cpp +++ b/src/gsttools/qgstreamerplayersession.cpp @@ -265,8 +265,11 @@ void QGstreamerPlayerSession::resetElements() resetGstObject(m_nullVideoSink); resetGstObject(m_videoOutputBin); + m_audioSink = nullptr; m_volumeElement = nullptr; m_videoIdentity = nullptr; + m_pendingVideoSink = nullptr; + m_videoSink = nullptr; } GstElement *QGstreamerPlayerSession::playbin() const |