summaryrefslogtreecommitdiffstats
path: root/src/gsttools
diff options
context:
space:
mode:
Diffstat (limited to 'src/gsttools')
-rw-r--r--src/gsttools/qgstreamerplayercontrol.cpp8
-rw-r--r--src/gsttools/qgstreamerplayersession.cpp3
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