diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp index caf034d2..ab80ebd9 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp @@ -1068,9 +1068,17 @@ bool QGstreamerPlayerSession::processBusMessage(const QGstreamerMessage &message } case GST_STATE_PLAYING: m_everPlayed = true; - if (m_state != QMediaPlayer::PlayingState) + if (m_state != QMediaPlayer::PlayingState) { emit stateChanged(m_state = QMediaPlayer::PlayingState); + // For rtsp streams duration information might not be available + // until playback starts. + if (m_duration <= 0) { + m_durationQueries = 5; + updateDuration(); + } + } + break; } }