diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-09-08 03:00:24 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-09-08 03:00:24 +0200 |
commit | 1ca79e8645f9f3cf471c32cf9fd2894a4b41bcb1 (patch) | |
tree | b35436ae81924383c43f03f0fc00e6a72ebe6cb3 /src/gsttools | |
parent | 871a097d0c6e8203f82b398e21dcfd8151bdae27 (diff) | |
parent | c5400d31a40847e2905b11759090400653624a94 (diff) |
Merge remote-tracking branch 'origin/5.11' into 5.12v5.12.0-alpha1
Change-Id: I886c4bda70a2b5a013a445d03487c7e3ef98e858
Diffstat (limited to 'src/gsttools')
-rw-r--r-- | src/gsttools/qgstreamerplayercontrol.cpp | 7 | ||||
-rw-r--r-- | src/gsttools/qgstreamerplayersession.cpp | 8 |
2 files changed, 10 insertions, 5 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) { diff --git a/src/gsttools/qgstreamerplayersession.cpp b/src/gsttools/qgstreamerplayersession.cpp index adf27e4a0..485556275 100644 --- a/src/gsttools/qgstreamerplayersession.cpp +++ b/src/gsttools/qgstreamerplayersession.cpp @@ -137,7 +137,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent) m_videoAvailable(false), m_seekable(false), m_lastPosition(0), - m_duration(-1), + m_duration(0), m_durationQueries(0), m_displayPrerolledFrame(true), m_sourceType(UnknownSrc), @@ -325,7 +325,7 @@ void QGstreamerPlayerSession::loadFromStream(const QNetworkRequest &request, QIO qDebug() << Q_FUNC_INFO; #endif m_request = request; - m_duration = -1; + m_duration = 0; m_lastPosition = 0; if (!m_appSrc) @@ -354,7 +354,7 @@ void QGstreamerPlayerSession::loadFromUri(const QNetworkRequest &request) qDebug() << Q_FUNC_INFO << request.url(); #endif m_request = request; - m_duration = -1; + m_duration = 0; m_lastPosition = 0; #if QT_CONFIG(gstreamer_app) @@ -1500,7 +1500,7 @@ void QGstreamerPlayerSession::updateVideoResolutionTag() void QGstreamerPlayerSession::updateDuration() { gint64 gstDuration = 0; - int duration = -1; + int duration = 0; if (m_pipeline && qt_gst_element_query_duration(m_pipeline, GST_FORMAT_TIME, &gstDuration)) duration = gstDuration / 1000000; |