diff options
author | Lars Knoll <lars.knoll@qt.io> | 2020-12-14 12:53:21 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-01-20 15:08:41 +0000 |
commit | 397cb94d6882940114cb6c96a88e8ac0b64203a4 (patch) | |
tree | d2ac9e1440a208e9fdf2f04d3b2f13d177021c89 /src/gsttools | |
parent | 46381711557aad4f264470e555c77f7d6d07cbb9 (diff) |
Get rid of the unused resource policy and availability control
The only implementation of this was using some Nokia specific
library, that hasn't existed since 2012 anymore.
Change-Id: Ieaec2176ad8e4fc170bb5254944fffc41edccefa
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/gsttools')
-rw-r--r-- | src/gsttools/gsttools.pro | 3 | ||||
-rw-r--r-- | src/gsttools/qgstreamerplayercontrol.cpp | 150 | ||||
-rw-r--r-- | src/gsttools/qgstreamerplayercontrol_p.h | 9 |
3 files changed, 33 insertions, 129 deletions
diff --git a/src/gsttools/gsttools.pro b/src/gsttools/gsttools.pro index 0127cbe92..fea2edca9 100644 --- a/src/gsttools/gsttools.pro +++ b/src/gsttools/gsttools.pro @@ -12,9 +12,6 @@ qtConfig(alsa): \ QMAKE_USE += gstreamer -qtConfig(resourcepolicy): \ - QMAKE_USE += libresourceqt5 - PRIVATE_HEADERS += \ qgstreamerbushelper_p.h \ qgstreamermessage_p.h \ diff --git a/src/gsttools/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp index 689467db8..6edde7bb0 100644 --- a/src/gsttools/qgstreamerplayercontrol.cpp +++ b/src/gsttools/qgstreamerplayercontrol.cpp @@ -41,8 +41,6 @@ #include <private/qgstreamerplayersession_p.h> #include <private/qmediaplaylistnavigator_p.h> -#include <private/qmediaresourcepolicy_p.h> -#include <private/qmediaresourceset_p.h> #include <QtCore/qdir.h> #include <QtCore/qsocketnotifier.h> @@ -61,9 +59,6 @@ QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *sessio : QMediaPlayerControl(parent) , m_session(session) { - m_resources = QMediaResourcePolicy::createResourceSet<QMediaPlayerResourceSetInterface>(); - Q_ASSERT(m_resources); - connect(m_session, &QGstreamerPlayerSession::positionChanged, this, &QGstreamerPlayerControl::positionChanged); connect(m_session, &QGstreamerPlayerSession::durationChanged, this, &QGstreamerPlayerControl::durationChanged); connect(m_session, &QGstreamerPlayerSession::mutedStateChanged, this, &QGstreamerPlayerControl::mutedChanged); @@ -77,24 +72,10 @@ QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *sessio connect(m_session, &QGstreamerPlayerSession::error, this, &QGstreamerPlayerControl::error); connect(m_session, &QGstreamerPlayerSession::invalidMedia, this, &QGstreamerPlayerControl::handleInvalidMedia); connect(m_session, &QGstreamerPlayerSession::playbackRateChanged, this, &QGstreamerPlayerControl::playbackRateChanged); - - connect(m_resources, &QMediaPlayerResourceSetInterface::resourcesGranted, this, &QGstreamerPlayerControl::handleResourcesGranted); - //denied signal should be queued to have correct state update process, - //since in playOrPause, when acquire is call on resource set, it may trigger a resourcesDenied signal immediately, - //so handleResourcesDenied should be processed later, otherwise it will be overwritten by state update later in playOrPause. - connect(m_resources, &QMediaPlayerResourceSetInterface::resourcesDenied, - this, &QGstreamerPlayerControl::handleResourcesDenied, Qt::QueuedConnection); - connect(m_resources, &QMediaPlayerResourceSetInterface::resourcesLost, this, &QGstreamerPlayerControl::handleResourcesLost); } QGstreamerPlayerControl::~QGstreamerPlayerControl() { - QMediaResourcePolicy::destroyResourceSet(m_resources); -} - -QMediaPlayerResourceSetInterface* QGstreamerPlayerControl::resources() const -{ - return m_resources; } qint64 QGstreamerPlayerControl::position() const @@ -230,38 +211,33 @@ void QGstreamerPlayerControl::playOrPause(QMediaPlayer::State newState) m_pendingSeekPosition = 0; } - if (!m_resources->isGranted()) - m_resources->acquire(); - - if (m_resources->isGranted()) { - // show prerolled frame if switching from stopped state - if (m_pendingSeekPosition == -1) { - m_session->showPrerollFrames(true); - } else if (m_session->state() == QMediaPlayer::StoppedState) { - // Don't evaluate the next two conditions. - } else if (m_session->isSeekable()) { - m_session->pause(); - m_session->showPrerollFrames(true); - m_session->seek(m_pendingSeekPosition); - m_pendingSeekPosition = -1; - } else { - m_pendingSeekPosition = -1; - } + // show prerolled frame if switching from stopped state + if (m_pendingSeekPosition == -1) { + m_session->showPrerollFrames(true); + } else if (m_session->state() == QMediaPlayer::StoppedState) { + // Don't evaluate the next two conditions. + } else if (m_session->isSeekable()) { + m_session->pause(); + m_session->showPrerollFrames(true); + m_session->seek(m_pendingSeekPosition); + m_pendingSeekPosition = -1; + } else { + m_pendingSeekPosition = -1; + } - bool ok = false; + bool ok = false; - //To prevent displaying the first video frame when playback is resumed - //the pipeline is paused instead of playing, seeked to requested position, - //and after seeking is finished (position updated) playback is restarted - //with show-preroll-frame enabled. - if (newState == QMediaPlayer::PlayingState && m_pendingSeekPosition == -1) - ok = m_session->play(); - else - ok = m_session->pause(); + //To prevent displaying the first video frame when playback is resumed + //the pipeline is paused instead of playing, seeked to requested position, + //and after seeking is finished (position updated) playback is restarted + //with show-preroll-frame enabled. + if (newState == QMediaPlayer::PlayingState && m_pendingSeekPosition == -1) + ok = m_session->play(); + else + ok = m_session->pause(); - if (!ok) - newState = QMediaPlayer::StoppedState; - } + if (!ok) + newState = QMediaPlayer::StoppedState; if (m_mediaStatus == QMediaPlayer::InvalidMedia) m_mediaStatus = QMediaPlayer::LoadingMedia; @@ -297,7 +273,7 @@ void QGstreamerPlayerControl::stop() // needs to update media status directly. if (m_session->state() == QMediaPlayer::PausedState) updateMediaStatus(); - else if (m_resources->isGranted()) + else m_session->pause(); if (m_mediaStatus != QMediaPlayer::EndOfMedia) { @@ -343,13 +319,6 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice * m_session->showPrerollFrames(false); // do not show prerolled frames until pause() or play() explicitly called m_setMediaPending = false; - if (!content.isNull() || stream) { - if (!m_resources->isGranted()) - m_resources->acquire(); - } else { - m_resources->release(); - } - m_session->stop(); bool userStreamValid = false; @@ -376,8 +345,6 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice * } else { m_mediaStatus = QMediaPlayer::InvalidMedia; emit error(QMediaPlayer::FormatError, tr("Attempting to play invalid user stream")); - if (m_currentState != QMediaPlayer::PlayingState) - m_resources->release(); popAndNotifyState(); return; } @@ -402,9 +369,6 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice * emit positionChanged(position()); - if (content.isNull() && !stream) - m_resources->release(); - popAndNotifyState(); } @@ -480,9 +444,6 @@ void QGstreamerPlayerControl::updateMediaStatus() break; } - if (m_currentState == QMediaPlayer::PlayingState && !m_resources->isGranted()) - m_mediaStatus = QMediaPlayer::StalledMedia; - popAndNotifyState(); } @@ -511,17 +472,15 @@ void QGstreamerPlayerControl::setBufferProgress(int progress) #endif m_bufferProgress = progress; - if (m_resources->isGranted()) { - if (m_currentState == QMediaPlayer::PlayingState && - m_bufferProgress == 100 && - m_session->state() != QMediaPlayer::PlayingState) - m_session->play(); + if (m_currentState == QMediaPlayer::PlayingState && + m_bufferProgress == 100 && + m_session->state() != QMediaPlayer::PlayingState) + m_session->play(); - if (!m_session->isLiveSource() && m_bufferProgress < 100 && - (m_session->state() == QMediaPlayer::PlayingState || - m_session->pendingState() == QMediaPlayer::PlayingState)) - m_session->pause(); - } + if (!m_session->isLiveSource() && m_bufferProgress < 100 && + (m_session->state() == QMediaPlayer::PlayingState || + m_session->pendingState() == QMediaPlayer::PlayingState)) + m_session->pause(); updateMediaStatus(); @@ -537,49 +496,6 @@ void QGstreamerPlayerControl::handleInvalidMedia() popAndNotifyState(); } -void QGstreamerPlayerControl::handleResourcesGranted() -{ - pushState(); - - //This may be triggered when there is an auto resume - //from resource-policy, we need to take action according to m_userRequestedState - //rather than m_currentState - m_currentState = m_userRequestedState; - if (m_currentState != QMediaPlayer::StoppedState) - playOrPause(m_currentState); - else - updateMediaStatus(); - - popAndNotifyState(); -} - -void QGstreamerPlayerControl::handleResourcesLost() -{ - //on resource lost the pipeline should be paused - //player status is changed to paused - pushState(); - QMediaPlayer::State oldState = m_currentState; - - m_session->pause(); - - if (oldState != QMediaPlayer::StoppedState ) - m_currentState = QMediaPlayer::PausedState; - - popAndNotifyState(); -} - -void QGstreamerPlayerControl::handleResourcesDenied() -{ - //on resource denied the pipeline should stay paused - //player status is changed to paused - pushState(); - - if (m_currentState != QMediaPlayer::StoppedState ) - m_currentState = QMediaPlayer::PausedState; - - popAndNotifyState(); -} - void QGstreamerPlayerControl::pushState() { m_stateStack.push(m_currentState); diff --git a/src/gsttools/qgstreamerplayercontrol_p.h b/src/gsttools/qgstreamerplayercontrol_p.h index ef94df925..c4cc2b876 100644 --- a/src/gsttools/qgstreamerplayercontrol_p.h +++ b/src/gsttools/qgstreamerplayercontrol_p.h @@ -57,7 +57,6 @@ QT_BEGIN_NAMESPACE -class QMediaPlayerResourceSetInterface; class QGstreamerPlayerSession; class Q_GSTTOOLS_EXPORT QGstreamerPlayerControl : public QMediaPlayerControl { @@ -94,8 +93,6 @@ public: const QIODevice *mediaStream() const override; void setMedia(const QMediaContent&, QIODevice *) override; - QMediaPlayerResourceSetInterface* resources() const; - public Q_SLOTS: void setPosition(qint64 pos) override; @@ -114,10 +111,6 @@ private Q_SLOTS: void handleInvalidMedia(); - void handleResourcesGranted(); - void handleResourcesLost(); - void handleResourcesDenied(); - private: void playOrPause(QMediaPlayer::State state); @@ -136,8 +129,6 @@ private: bool m_setMediaPending = false; QMediaContent m_currentResource; QIODevice *m_stream = nullptr; - - QMediaPlayerResourceSetInterface *m_resources = nullptr; }; QT_END_NAMESPACE |