summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-04-13 12:52:28 +0200
committerLars Knoll <lars.knoll@qt.io>2021-04-16 11:00:45 +0000
commit516fcd10d203fb02eb067b3911fcbf507693059b (patch)
tree878a62daf54d4a1783b43385aa22e970a4492f67
parentb8bf956c9358c9a597091c366ac05ec71e4e2289 (diff)
API cleanups in QMediaPlayer
Rename some methods with better names and adjust the API so that it also can be used for QML. Change-Id: Ica19675966680416fbe870808336d8fc82065bc1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io>
-rw-r--r--examples/multimediawidgets/player/player.cpp22
-rw-r--r--examples/multimediawidgets/player/player.h2
-rw-r--r--examples/multimediawidgets/player/playercontrols.cpp4
-rw-r--r--examples/multimediawidgets/player/playercontrols.h6
-rw-r--r--examples/multimediawidgets/videographicsitem/videoplayer.cpp8
-rw-r--r--examples/multimediawidgets/videographicsitem/videoplayer.h2
-rw-r--r--examples/multimediawidgets/videowidget/videoplayer.cpp13
-rw-r--r--examples/multimediawidgets/videowidget/videoplayer.h2
-rw-r--r--src/imports/multimedia/qdeclarativeaudio.cpp22
-rw-r--r--src/imports/multimedia/qdeclarativeaudio_p.h21
-rw-r--r--src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp6
-rw-r--r--src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h2
-rw-r--r--src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm16
-rw-r--r--src/multimedia/platform/darwin/mediaplayer/avfmediaplayer_p.h6
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp16
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h6
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp18
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h6
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol.cpp10
-rw-r--r--src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol_p.h2
-rw-r--r--src/multimedia/platform/qplatformmediaplayer.cpp16
-rw-r--r--src/multimedia/platform/qplatformmediaplayer_p.h12
-rw-r--r--src/multimedia/platform/windows/player/mfplayercontrol.cpp4
-rw-r--r--src/multimedia/platform/windows/player/mfplayercontrol_p.h2
-rw-r--r--src/multimedia/platform/windows/player/mfplayersession.cpp10
-rw-r--r--src/multimedia/platform/windows/player/mfplayersession_p.h4
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp111
-rw-r--r--src/multimedia/playback/qmediaplayer.h55
-rw-r--r--src/multimedia/playback/qmediaplayer_p.h7
-rw-r--r--tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp156
-rw-r--r--tests/auto/integration/shared/mediafileselector.h2
-rw-r--r--tests/auto/unit/mockbackend/mockmediaplayer.h22
-rw-r--r--tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp98
-rw-r--r--tests/auto/unit/qml/qdeclarativevideo/tst_qdeclarativevideo.cpp8
34 files changed, 388 insertions, 309 deletions
diff --git a/examples/multimediawidgets/player/player.cpp b/examples/multimediawidgets/player/player.cpp
index f0c48cd18..0afa721a1 100644
--- a/examples/multimediawidgets/player/player.cpp
+++ b/examples/multimediawidgets/player/player.cpp
@@ -87,10 +87,10 @@ Player::Player(QWidget *parent)
connect(m_player, QOverload<>::of(&QMediaPlayer::metaDataChanged), this, &Player::metaDataChanged);
connect(m_playlist, &QMediaPlaylist::currentIndexChanged, this, &Player::playlistPositionChanged);
connect(m_player, &QMediaPlayer::mediaStatusChanged, this, &Player::statusChanged);
- connect(m_player, &QMediaPlayer::bufferStatusChanged, this, &Player::bufferingProgress);
- connect(m_player, &QMediaPlayer::videoAvailableChanged, this, &Player::videoAvailableChanged);
- connect(m_player, QOverload<QMediaPlayer::Error>::of(&QMediaPlayer::error), this, &Player::displayErrorMessage);
- connect(m_player, &QMediaPlayer::stateChanged, this, &Player::stateChanged);
+ connect(m_player, &QMediaPlayer::bufferProgressChanged, this, &Player::bufferingProgress);
+ connect(m_player, &QMediaPlayer::hasVideoChanged, this, &Player::videoAvailableChanged);
+ connect(m_player, &QMediaPlayer::errorChanged, this, &Player::displayErrorMessage);
+ connect(m_player, &QMediaPlayer::playbackStateChanged, this, &Player::stateChanged);
connect(m_player, &QMediaPlayer::tracksChanged, this, &Player::tracksChanged);
m_playlistView = new QListView(this);
@@ -164,7 +164,7 @@ Player::Player(QWidget *parent)
connect(openButton, &QPushButton::clicked, this, &Player::open);
PlayerControls *controls = new PlayerControls(this);
- controls->setState(m_player->state());
+ controls->setState(m_player->playbackState());
controls->setVolume(m_player->volume());
controls->setMuted(controls->isMuted());
@@ -178,7 +178,7 @@ Player::Player(QWidget *parent)
connect(controls, &PlayerControls::changeRate, m_player, &QMediaPlayer::setPlaybackRate);
connect(controls, &PlayerControls::stop, m_videoWidget, QOverload<>::of(&QVideoWidget::update));
- connect(m_player, &QMediaPlayer::stateChanged, controls, &PlayerControls::setState);
+ connect(m_player, &QMediaPlayer::playbackStateChanged, controls, &PlayerControls::setState);
connect(m_player, &QMediaPlayer::volumeChanged, controls, &PlayerControls::setVolume);
connect(m_player, &QMediaPlayer::mutedChanged, controls, &PlayerControls::setMuted);
@@ -381,7 +381,7 @@ void Player::playlistPositionChanged(int currentItem)
{
clearHistogram();
m_playlistView->setCurrentIndex(m_playlistModel->index(currentItem, 0));
- m_player->setMedia(m_playlist->currentMedia());
+ m_player->setSource(m_playlist->currentMedia());
}
void Player::seek(int seconds)
@@ -405,10 +405,10 @@ void Player::statusChanged(QMediaPlayer::MediaStatus status)
break;
case QMediaPlayer::BufferingMedia:
case QMediaPlayer::BufferedMedia:
- setStatusInfo(tr("Buffering %1%").arg(m_player->bufferStatus()));
+ setStatusInfo(tr("Buffering %1%").arg(m_player->bufferProgress()));
break;
case QMediaPlayer::StalledMedia:
- setStatusInfo(tr("Stalled %1%").arg(m_player->bufferStatus()));
+ setStatusInfo(tr("Stalled %1%").arg(m_player->bufferProgress()));
break;
case QMediaPlayer::EndOfMedia:
QApplication::alert(this);
@@ -420,7 +420,7 @@ void Player::statusChanged(QMediaPlayer::MediaStatus status)
}
}
-void Player::stateChanged(QMediaPlayer::State state)
+void Player::stateChanged(QMediaPlayer::PlaybackState state)
{
if (state == QMediaPlayer::StoppedState)
clearHistogram();
@@ -512,6 +512,8 @@ void Player::setStatusInfo(const QString &info)
void Player::displayErrorMessage()
{
+ if (m_player->error() == QMediaPlayer::NoError)
+ return;
setStatusInfo(m_player->errorString());
}
diff --git a/examples/multimediawidgets/player/player.h b/examples/multimediawidgets/player/player.h
index 9ccecb891..4294e909a 100644
--- a/examples/multimediawidgets/player/player.h
+++ b/examples/multimediawidgets/player/player.h
@@ -100,7 +100,7 @@ private slots:
void playlistPositionChanged(int);
void statusChanged(QMediaPlayer::MediaStatus status);
- void stateChanged(QMediaPlayer::State state);
+ void stateChanged(QMediaPlayer::PlaybackState state);
void bufferingProgress(int progress);
void videoAvailableChanged(bool available);
diff --git a/examples/multimediawidgets/player/playercontrols.cpp b/examples/multimediawidgets/player/playercontrols.cpp
index 3c06c01c6..671c7eaf1 100644
--- a/examples/multimediawidgets/player/playercontrols.cpp
+++ b/examples/multimediawidgets/player/playercontrols.cpp
@@ -111,12 +111,12 @@ PlayerControls::PlayerControls(QWidget *parent)
setLayout(layout);
}
-QMediaPlayer::State PlayerControls::state() const
+QMediaPlayer::PlaybackState PlayerControls::state() const
{
return m_playerState;
}
-void PlayerControls::setState(QMediaPlayer::State state)
+void PlayerControls::setState(QMediaPlayer::PlaybackState state)
{
if (state != m_playerState) {
m_playerState = state;
diff --git a/examples/multimediawidgets/player/playercontrols.h b/examples/multimediawidgets/player/playercontrols.h
index bf1f676c1..3021e4859 100644
--- a/examples/multimediawidgets/player/playercontrols.h
+++ b/examples/multimediawidgets/player/playercontrols.h
@@ -67,13 +67,13 @@ class PlayerControls : public QWidget
public:
explicit PlayerControls(QWidget *parent = nullptr);
- QMediaPlayer::State state() const;
+ QMediaPlayer::PlaybackState state() const;
int volume() const;
bool isMuted() const;
qreal playbackRate() const;
public slots:
- void setState(QMediaPlayer::State state);
+ void setState(QMediaPlayer::PlaybackState state);
void setVolume(int volume);
void setMuted(bool muted);
void setPlaybackRate(float rate);
@@ -95,7 +95,7 @@ private slots:
void onVolumeSliderValueChanged();
private:
- QMediaPlayer::State m_playerState = QMediaPlayer::StoppedState;
+ QMediaPlayer::PlaybackState m_playerState = QMediaPlayer::StoppedState;
bool m_playerMuted = false;
QAbstractButton *m_playButton = nullptr;
QAbstractButton *m_stopButton = nullptr;
diff --git a/examples/multimediawidgets/videographicsitem/videoplayer.cpp b/examples/multimediawidgets/videographicsitem/videoplayer.cpp
index d0f5129c9..2f76f2be3 100644
--- a/examples/multimediawidgets/videographicsitem/videoplayer.cpp
+++ b/examples/multimediawidgets/videographicsitem/videoplayer.cpp
@@ -101,7 +101,7 @@ VideoPlayer::VideoPlayer(QWidget *parent)
layout->addLayout(controlLayout);
m_mediaPlayer->setVideoOutput(m_videoItem);
- connect(m_mediaPlayer, &QMediaPlayer::stateChanged,
+ connect(m_mediaPlayer, &QMediaPlayer::playbackStateChanged,
this, &VideoPlayer::mediaStateChanged);
connect(m_mediaPlayer, &QMediaPlayer::positionChanged, this, &VideoPlayer::positionChanged);
connect(m_mediaPlayer, &QMediaPlayer::durationChanged, this, &VideoPlayer::durationChanged);
@@ -133,13 +133,13 @@ void VideoPlayer::openFile()
void VideoPlayer::load(const QUrl &url)
{
- m_mediaPlayer->setMedia(url);
+ m_mediaPlayer->setSource(url);
m_playButton->setEnabled(true);
}
void VideoPlayer::play()
{
- switch (m_mediaPlayer->state()) {
+ switch (m_mediaPlayer->playbackState()) {
case QMediaPlayer::PlayingState:
m_mediaPlayer->pause();
break;
@@ -149,7 +149,7 @@ void VideoPlayer::play()
}
}
-void VideoPlayer::mediaStateChanged(QMediaPlayer::State state)
+void VideoPlayer::mediaStateChanged(QMediaPlayer::PlaybackState state)
{
switch(state) {
case QMediaPlayer::PlayingState:
diff --git a/examples/multimediawidgets/videographicsitem/videoplayer.h b/examples/multimediawidgets/videographicsitem/videoplayer.h
index 87c20c804..9f01e8790 100644
--- a/examples/multimediawidgets/videographicsitem/videoplayer.h
+++ b/examples/multimediawidgets/videographicsitem/videoplayer.h
@@ -78,7 +78,7 @@ public slots:
void play();
private slots:
- void mediaStateChanged(QMediaPlayer::State state);
+ void mediaStateChanged(QMediaPlayer::PlaybackState state);
void positionChanged(qint64 position);
void durationChanged(qint64 duration);
void setPosition(int position);
diff --git a/examples/multimediawidgets/videowidget/videoplayer.cpp b/examples/multimediawidgets/videowidget/videoplayer.cpp
index 4ac868730..ded52499c 100644
--- a/examples/multimediawidgets/videowidget/videoplayer.cpp
+++ b/examples/multimediawidgets/videowidget/videoplayer.cpp
@@ -92,11 +92,11 @@ VideoPlayer::VideoPlayer(QWidget *parent)
setLayout(layout);
m_mediaPlayer->setVideoOutput(videoWidget);
- connect(m_mediaPlayer, &QMediaPlayer::stateChanged,
+ connect(m_mediaPlayer, &QMediaPlayer::playbackStateChanged,
this, &VideoPlayer::mediaStateChanged);
connect(m_mediaPlayer, &QMediaPlayer::positionChanged, this, &VideoPlayer::positionChanged);
connect(m_mediaPlayer, &QMediaPlayer::durationChanged, this, &VideoPlayer::durationChanged);
- connect(m_mediaPlayer, QOverload<QMediaPlayer::Error>::of(&QMediaPlayer::error),
+ connect(m_mediaPlayer, &QMediaPlayer::errorChanged,
this, &VideoPlayer::handleError);
}
@@ -118,13 +118,13 @@ void VideoPlayer::setUrl(const QUrl &url)
{
m_errorLabel->setText(QString());
setWindowFilePath(url.isLocalFile() ? url.toLocalFile() : QString());
- m_mediaPlayer->setMedia(url);
+ m_mediaPlayer->setSource(url);
m_playButton->setEnabled(true);
}
void VideoPlayer::play()
{
- switch (m_mediaPlayer->state()) {
+ switch (m_mediaPlayer->playbackState()) {
case QMediaPlayer::PlayingState:
m_mediaPlayer->pause();
break;
@@ -134,7 +134,7 @@ void VideoPlayer::play()
}
}
-void VideoPlayer::mediaStateChanged(QMediaPlayer::State state)
+void VideoPlayer::mediaStateChanged(QMediaPlayer::PlaybackState state)
{
switch(state) {
case QMediaPlayer::PlayingState:
@@ -163,6 +163,9 @@ void VideoPlayer::setPosition(int position)
void VideoPlayer::handleError()
{
+ if (m_mediaPlayer->error() == QMediaPlayer::NoError)
+ return;
+
m_playButton->setEnabled(false);
const QString errorString = m_mediaPlayer->errorString();
QString message = "Error: ";
diff --git a/examples/multimediawidgets/videowidget/videoplayer.h b/examples/multimediawidgets/videowidget/videoplayer.h
index 62260d167..723df0b6c 100644
--- a/examples/multimediawidgets/videowidget/videoplayer.h
+++ b/examples/multimediawidgets/videowidget/videoplayer.h
@@ -75,7 +75,7 @@ public slots:
void play();
private slots:
- void mediaStateChanged(QMediaPlayer::State state);
+ void mediaStateChanged(QMediaPlayer::PlaybackState state);
void positionChanged(qint64 position);
void durationChanged(qint64 duration);
void setPosition(int position);
diff --git a/src/imports/multimedia/qdeclarativeaudio.cpp b/src/imports/multimedia/qdeclarativeaudio.cpp
index 7fe96666c..ea3a9121e 100644
--- a/src/imports/multimedia/qdeclarativeaudio.cpp
+++ b/src/imports/multimedia/qdeclarativeaudio.cpp
@@ -293,7 +293,7 @@ void QDeclarativeAudio::setSource(const QUrl &url)
emit errorChanged();
}
- m_player->setMedia(m_source, nullptr);
+ m_player->setSource(m_source, nullptr);
m_loaded = true;
}
else
@@ -337,7 +337,7 @@ void QDeclarativeAudio::setLoopCount(int loopCount)
emit loopCountChanged();
}
-void QDeclarativeAudio::setPlaybackState(QMediaPlayer::State playbackState)
+void QDeclarativeAudio::setPlaybackState(QMediaPlayer::PlaybackState playbackState)
{
if (m_playbackState == playbackState)
return;
@@ -346,7 +346,7 @@ void QDeclarativeAudio::setPlaybackState(QMediaPlayer::State playbackState)
switch (playbackState){
case (QMediaPlayer::PlayingState):
if (!m_loaded) {
- m_player->setMedia(m_source, nullptr);
+ m_player->setSource(m_source, nullptr);
m_player->setPosition(m_position);
m_loaded = true;
}
@@ -355,7 +355,7 @@ void QDeclarativeAudio::setPlaybackState(QMediaPlayer::State playbackState)
case (QMediaPlayer::PausedState):
if (!m_loaded) {
- m_player->setMedia(m_source, nullptr);
+ m_player->setSource(m_source, nullptr);
m_player->setPosition(m_position);
m_loaded = true;
}
@@ -421,7 +421,7 @@ void QDeclarativeAudio::setMuted(bool muted)
qreal QDeclarativeAudio::bufferProgress() const
{
- return !m_complete ? 0 : qreal(m_player->bufferStatus()) / 100;
+ return !m_complete ? 0 : qreal(m_player->bufferProgress()) / 100;
}
bool QDeclarativeAudio::isSeekable() const
@@ -692,7 +692,7 @@ QDeclarativeAudio::PlaybackState QDeclarativeAudio::playbackState() const
bool QDeclarativeAudio::hasAudio() const
{
- return !m_complete ? false : m_player->isAudioAvailable();
+ return !m_complete ? false : m_player->hasAudio();
}
/*!
@@ -703,7 +703,7 @@ bool QDeclarativeAudio::hasAudio() const
bool QDeclarativeAudio::hasVideo() const
{
- return !m_complete ? false : m_player->isVideoAvailable();
+ return !m_complete ? false : m_player->hasVideo();
}
/*!
@@ -781,7 +781,7 @@ void QDeclarativeAudio::classBegin()
this, SIGNAL(volumeChanged()));
connect(m_player, SIGNAL(mutedChanged(bool)),
this, SIGNAL(mutedChanged()));
- connect(m_player, SIGNAL(bufferStatusChanged(int)),
+ connect(m_player, SIGNAL(bufferProgressChanged(float)),
this, SIGNAL(bufferProgressChanged()));
connect(m_player, SIGNAL(seekableChanged(bool)),
this, SIGNAL(seekableChanged()));
@@ -816,7 +816,7 @@ void QDeclarativeAudio::componentComplete()
m_player->setAudioRole(QAudio::Role(m_audioRole));
if (!m_source.isEmpty() && (m_autoLoad || m_autoPlay)) {
- m_player->setMedia(m_source, nullptr);
+ m_player->setSource(m_source, nullptr);
m_loaded = true;
if (m_position > 0)
m_player->setPosition(m_position);
@@ -840,9 +840,9 @@ void QDeclarativeAudio::_q_statusChanged()
m_player->play();
}
const QMediaPlayer::MediaStatus oldStatus = m_status;
- const QMediaPlayer::State lastPlaybackState = m_playbackState;
+ const QMediaPlayer::PlaybackState lastPlaybackState = m_playbackState;
- const QMediaPlayer::State state = m_player->state();
+ const QMediaPlayer::PlaybackState state = m_player->playbackState();
m_playbackState = state;
diff --git a/src/imports/multimedia/qdeclarativeaudio_p.h b/src/imports/multimedia/qdeclarativeaudio_p.h
index 085d7e60a..9d64929e3 100644
--- a/src/imports/multimedia/qdeclarativeaudio_p.h
+++ b/src/imports/multimedia/qdeclarativeaudio_p.h
@@ -69,24 +69,25 @@ class QDeclarativeAudio : public QObject, public QQmlParserStatus
{
Q_OBJECT
Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
- Q_PROPERTY(int loops READ loopCount WRITE setLoopCount NOTIFY loopCountChanged)
- Q_PROPERTY(PlaybackState playbackState READ playbackState NOTIFY playbackStateChanged)
- Q_PROPERTY(bool autoPlay READ autoPlay WRITE setAutoPlay NOTIFY autoPlayChanged)
- Q_PROPERTY(bool autoLoad READ isAutoLoad WRITE setAutoLoad NOTIFY autoLoadChanged)
- Q_PROPERTY(Status status READ status NOTIFY statusChanged)
Q_PROPERTY(int duration READ duration NOTIFY durationChanged)
Q_PROPERTY(int position READ position NOTIFY positionChanged)
Q_PROPERTY(qreal volume READ volume WRITE setVolume NOTIFY volumeChanged)
Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged)
+ Q_PROPERTY(Status status READ status NOTIFY statusChanged) // MediaStatus in QMediaPlayer
+ Q_PROPERTY(bool autoPlay READ autoPlay WRITE setAutoPlay NOTIFY autoPlayChanged)
+ Q_PROPERTY(PlaybackState playbackState READ playbackState NOTIFY playbackStateChanged)
Q_PROPERTY(bool hasAudio READ hasAudio NOTIFY hasAudioChanged)
Q_PROPERTY(bool hasVideo READ hasVideo NOTIFY hasVideoChanged)
- Q_PROPERTY(qreal bufferProgress READ bufferProgress NOTIFY bufferProgressChanged)
Q_PROPERTY(bool seekable READ isSeekable NOTIFY seekableChanged)
Q_PROPERTY(qreal playbackRate READ playbackRate WRITE setPlaybackRate NOTIFY playbackRateChanged)
- Q_PROPERTY(Error error READ error NOTIFY errorChanged)
Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
- Q_PROPERTY(QDeclarativeMediaMetaData *metaData READ metaData CONSTANT)
+ Q_PROPERTY(Error error READ error NOTIFY errorChanged)
Q_PROPERTY(AudioRole audioRole READ audioRole WRITE setAudioRole NOTIFY audioRoleChanged REVISION 1)
+ Q_PROPERTY(qreal bufferProgress READ bufferProgress NOTIFY bufferProgressChanged)
+
+ Q_PROPERTY(int loops READ loopCount WRITE setLoopCount NOTIFY loopCountChanged) // not needed
+ Q_PROPERTY(bool autoLoad READ isAutoLoad WRITE setAutoLoad NOTIFY autoLoadChanged) // not needed
+ Q_PROPERTY(QDeclarativeMediaMetaData *metaData READ metaData CONSTANT)
Q_PROPERTY(QVariant videoOutput READ videoOutput WRITE setVideoOutput NOTIFY videoOutputChanged REVISION 15)
Q_ENUMS(Status)
Q_ENUMS(Error)
@@ -155,7 +156,7 @@ public:
Status status() const;
Error error() const;
PlaybackState playbackState() const;
- void setPlaybackState(QMediaPlayer::State playbackState);
+ void setPlaybackState(QMediaPlayer::PlaybackState playbackState);
void classBegin() override;
void componentComplete() override;
@@ -260,7 +261,7 @@ private:
qreal m_playbackRate;
AudioRole m_audioRole;
- QMediaPlayer::State m_playbackState;
+ QMediaPlayer::PlaybackState m_playbackState;
QMediaPlayer::MediaStatus m_status;
QMediaPlayer::Error m_error;
QString m_errorString;
diff --git a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
index b1aaaf0ce..044770572 100644
--- a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
+++ b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
@@ -276,9 +276,9 @@ QMediaMetaData QAndroidMediaPlayerControl::metaData() const
return QAndroidMetaData::extractMetadata(mMediaContent);
}
-int QAndroidMediaPlayerControl::bufferStatus() const
+float QAndroidMediaPlayerControl::bufferProgress() const
{
- return mBufferFilled ? 100 : 0;
+ return mBufferFilled ? 1. : 0;
}
bool QAndroidMediaPlayerControl::isAudioAvailable() const
@@ -810,7 +810,7 @@ void QAndroidMediaPlayerControl::updateBufferStatus()
if (mBufferFilled != bufferFilled) {
mBufferFilled = bufferFilled;
- Q_EMIT bufferStatusChanged(bufferStatus());
+ Q_EMIT bufferProgresChanged();
}
}
diff --git a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
index 4f098bd86..c5d835057 100644
--- a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
+++ b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
@@ -75,7 +75,7 @@ public:
qint64 position() const override;
int volume() const override;
bool isMuted() const override;
- int bufferStatus() const override;
+ float bufferProgress() const override;
bool isAudioAvailable() const override;
bool isVideoAvailable() const override;
bool isSeekable() const override;
diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
index b0fa7b555..5f4da2d04 100644
--- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
+++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer.mm
@@ -493,7 +493,7 @@ AVFMediaPlayer::AVFMediaPlayer(QMediaPlayer *player)
, m_rate(1.0)
, m_requestedPosition(-1)
, m_duration(0)
- , m_bufferStatus(0)
+ , m_bufferProgress(0)
, m_videoAvailable(false)
, m_audioAvailable(false)
, m_seekable(false)
@@ -650,12 +650,12 @@ qint64 AVFMediaPlayer::duration() const
return m_duration;
}
-int AVFMediaPlayer::bufferStatus() const
+float AVFMediaPlayer::bufferProgress() const
{
#ifdef QT_DEBUG_AVF
qDebug() << Q_FUNC_INFO;
#endif
- return m_bufferStatus;
+ return m_bufferProgress/100.;
}
int AVFMediaPlayer::volume() const
@@ -1022,14 +1022,14 @@ void AVFMediaPlayer::processLoadStateFailure()
Q_EMIT stateChanged((m_state = QMediaPlayer::StoppedState));
}
-void AVFMediaPlayer::processBufferStateChange(int bufferStatus)
+void AVFMediaPlayer::processBufferStateChange(int bufferProgress)
{
- if (bufferStatus == m_bufferStatus)
+ if (bufferProgress == m_bufferProgress)
return;
auto status = m_mediaStatus;
// Buffered -> unbuffered.
- if (!bufferStatus) {
+ if (!bufferProgress) {
status = QMediaPlayer::StalledMedia;
} else if (status == QMediaPlayer::StalledMedia) {
status = QMediaPlayer::BufferedMedia;
@@ -1041,8 +1041,8 @@ void AVFMediaPlayer::processBufferStateChange(int bufferStatus)
if (m_mediaStatus != status)
Q_EMIT mediaStatusChanged(m_mediaStatus = status);
- m_bufferStatus = bufferStatus;
- Q_EMIT bufferStatusChanged(bufferStatus);
+ m_bufferProgress = bufferProgress;
+ Q_EMIT bufferProgressChanged(bufferProgress/100.);
}
void AVFMediaPlayer::processDurationChange(qint64 duration)
diff --git a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer_p.h b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer_p.h
index 53d4642f6..eeb372165 100644
--- a/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer_p.h
+++ b/src/multimedia/platform/darwin/mediaplayer/avfmediaplayer_p.h
@@ -91,7 +91,7 @@ public:
qint64 position() const override;
qint64 duration() const override;
- int bufferStatus() const override;
+ float bufferProgress() const override;
int volume() const override;
bool isMuted() const override;
@@ -129,7 +129,7 @@ public Q_SLOTS:
void processLoadStateChange();
void processLoadStateFailure();
- void processBufferStateChange(int bufferStatus);
+ void processBufferStateChange(int bufferProgress);
void processDurationChange(qint64 duration);
@@ -167,7 +167,7 @@ private:
qint64 m_requestedPosition;
qint64 m_duration;
- int m_bufferStatus;
+ int m_bufferProgress;
bool m_videoAvailable;
bool m_audioAvailable;
bool m_seekable;
diff --git a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp
index 0b914abbf..cbee22a15 100644
--- a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp
+++ b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp
@@ -117,7 +117,7 @@ qint64 QGstreamerMediaPlayer::duration() const
return m_duration;
}
-QMediaPlayer::State QGstreamerMediaPlayer::state() const
+QMediaPlayer::PlaybackState QGstreamerMediaPlayer::state() const
{
return m_state;
}
@@ -127,9 +127,9 @@ QMediaPlayer::MediaStatus QGstreamerMediaPlayer::mediaStatus() const
return m_mediaStatus;
}
-int QGstreamerMediaPlayer::bufferStatus() const
+float QGstreamerMediaPlayer::bufferProgress() const
{
- return m_bufferProgress;
+ return m_bufferProgress/100.;
}
int QGstreamerMediaPlayer::volume() const
@@ -248,7 +248,7 @@ bool QGstreamerMediaPlayer::processBusMessage(const QGstreamerMessage &message)
int progress = 0;
gst_message_parse_buffering(gm, &progress);
m_bufferProgress = progress;
- emit bufferStatusChanged(progress);
+ emit bufferProgressChanged(m_bufferProgress/100.);
break;
}
case GST_MESSAGE_STATE_CHANGED: {
@@ -284,7 +284,7 @@ bool QGstreamerMediaPlayer::processBusMessage(const QGstreamerMessage &message)
break;
case GST_STATE_PAUSED:
{
- QMediaPlayer::State prevState = m_state;
+ QMediaPlayer::PlaybackState prevState = m_state;
m_state = QMediaPlayer::PausedState;
if (prerolling) {
@@ -597,9 +597,9 @@ void QGstreamerMediaPlayer::setMedia(const QUrl &content, QIODevice *stream)
decoder.connect("element-added", GCallback(QGstreamerMediaPlayer::uridecodebinElementAddedCallback), this);
decoder.set("uri", content.toEncoded().constData());
- if (m_bufferProgress != -1) {
- m_bufferProgress = -1;
- emit bufferStatusChanged(0);
+ if (m_bufferProgress != 0) {
+ m_bufferProgress = 0;
+ emit bufferProgressChanged(0.);
}
}
decoder.onPadAdded<&QGstreamerMediaPlayer::decoderPadAdded>(this);
diff --git a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h
index fac04ec21..6bdce0cf2 100644
--- a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h
+++ b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h
@@ -76,13 +76,13 @@ public:
QGstreamerMediaPlayer(QMediaPlayer *parent = 0);
~QGstreamerMediaPlayer();
- QMediaPlayer::State state() const override;
+ QMediaPlayer::PlaybackState state() const override;
QMediaPlayer::MediaStatus mediaStatus() const override;
qint64 position() const override;
qint64 duration() const override;
- int bufferStatus() const override;
+ float bufferProgress() const override;
int volume() const override;
bool isMuted() const override;
@@ -139,7 +139,7 @@ private:
QMediaMetaData m_metaData;
QList<QGstPad> m_streams[3];
- QMediaPlayer::State m_state = QMediaPlayer::StoppedState;
+ QMediaPlayer::PlaybackState m_state = QMediaPlayer::StoppedState;
QMediaPlayer::MediaStatus m_mediaStatus = QMediaPlayer::NoMedia;
int m_bufferProgress = -1;
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
index 71474d791..c78f515ef 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
+++ b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp
@@ -128,12 +128,12 @@ void MmRendererMediaPlayerControl::handleMmSuspend(const QString &reason)
setMediaStatus(QMediaPlayer::StalledMedia);
}
-void MmRendererMediaPlayerControl::handleMmSuspendRemoval(const QString &bufferStatus)
+void MmRendererMediaPlayerControl::handleMmSuspendRemoval(const QString &bufferProgress)
{
if (m_state == QMediaPlayer::StoppedState)
return;
- if (bufferStatus == QLatin1String("buffering"))
+ if (bufferProgress == QLatin1String("buffering"))
setMediaStatus(QMediaPlayer::BufferingMedia);
else
setMediaStatus(QMediaPlayer::BufferedMedia);
@@ -244,7 +244,7 @@ void MmRendererMediaPlayerControl::attach()
// mm-renderer has buffer properties "status" and "level"
// QMediaPlayer's buffer status maps to mm-renderer's buffer level
m_bufferLevel = 0;
- emit bufferStatusChanged(m_bufferLevel);
+ emit bufferProgressChanged(m_bufferLevel/100.);
}
void MmRendererMediaPlayerControl::detach()
@@ -407,11 +407,11 @@ void MmRendererMediaPlayerControl::setMuted(bool muted)
}
}
-int MmRendererMediaPlayerControl::bufferStatus() const
+float MmRendererMediaPlayerControl::bufferProgress() const
{
// mm-renderer has buffer properties "status" and "level"
// QMediaPlayer's buffer status maps to mm-renderer's buffer level
- return m_bufferLevel;
+ return m_bufferLevel/100.;
}
bool MmRendererMediaPlayerControl::isAudioAvailable() const
@@ -591,11 +591,11 @@ void MmRendererMediaPlayerControl::setMmPosition(qint64 newPosition)
}
}
-void MmRendererMediaPlayerControl::setMmBufferStatus(const QString &bufferStatus)
+void MmRendererMediaPlayerControl::setMmBufferStatus(const QString &bufferProgress)
{
- if (bufferStatus == QLatin1String("buffering"))
+ if (bufferProgress == QLatin1String("buffering"))
setMediaStatus(QMediaPlayer::BufferingMedia);
- else if (bufferStatus == QLatin1String("playing"))
+ else if (bufferProgress == QLatin1String("playing"))
setMediaStatus(QMediaPlayer::BufferedMedia);
// ignore "idle" buffer status
}
@@ -604,7 +604,7 @@ void MmRendererMediaPlayerControl::setMmBufferLevel(int level, int capacity)
{
m_bufferLevel = capacity == 0 ? 0 : level / static_cast<float>(capacity) * 100.0f;
m_bufferLevel = qBound(0, m_bufferLevel, 100);
- emit bufferStatusChanged(m_bufferLevel);
+ emit bufferProgressChanged(m_bufferLevel/100.);
}
void MmRendererMediaPlayerControl::updateMetaData(const strm_dict *dict)
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h
index 5cb958785..62d7373a4 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h
+++ b/src/multimedia/platform/qnx/mediaplayer/mmrenderermediaplayercontrol_p.h
@@ -88,7 +88,7 @@ public:
bool isMuted() const override;
void setMuted(bool muted) override;
- int bufferStatus() const override;
+ float bufferProgress() const override;
bool isAudioAvailable() const override;
bool isVideoAvailable() const override;
@@ -126,11 +126,11 @@ protected:
void emitMmError(const QString &msg);
void emitPError(const QString &msg);
void setMmPosition(qint64 newPosition);
- void setMmBufferStatus(const QString &bufferStatus);
+ void setMmBufferStatus(const QString &bufferProgress);
void setMmBufferLevel(int level, int capacity);
void handleMmStopped();
void handleMmSuspend(const QString &reason);
- void handleMmSuspendRemoval(const QString &bufferStatus);
+ void handleMmSuspendRemoval(const QString &bufferProgress);
void handleMmPause();
void handleMmPlay();
void updateMetaData(const strm_dict_t *dict);
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol.cpp b/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol.cpp
index f2e2b999b..218fab7e9 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol.cpp
+++ b/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol.cpp
@@ -67,7 +67,7 @@ static std::tuple<int, int, bool> parseBufferLevel(const QByteArray &value)
MmrEventMediaPlayerControl::MmrEventMediaPlayerControl(QObject *parent)
: MmRendererMediaPlayerControl(parent)
, m_eventThread(nullptr)
- , m_bufferStatus("")
+ , m_bufferProgress("")
, m_bufferLevel(0)
, m_bufferCapacity(0)
, m_position(0)
@@ -103,7 +103,7 @@ void MmrEventMediaPlayerControl::stopMonitoring()
void MmrEventMediaPlayerControl::resetMonitoring()
{
- m_bufferStatus = "";
+ m_bufferProgress = "";
m_bufferLevel = 0;
m_bufferCapacity = 0;
m_position = 0;
@@ -139,9 +139,9 @@ void MmrEventMediaPlayerControl::readEvents()
const strm_string_t *value;
value = strm_dict_find_rstr(event->data, "bufferstatus");
if (value) {
- m_bufferStatus = QByteArray(strm_string_get(value));
+ m_bufferProgress = QByteArray(strm_string_get(value));
if (!m_suspended)
- setMmBufferStatus(m_bufferStatus);
+ setMmBufferStatus(m_bufferProgress);
}
value = strm_dict_find_rstr(event->data, "bufferlevel");
@@ -169,7 +169,7 @@ void MmrEventMediaPlayerControl::readEvents()
}
} else if (m_suspended) {
m_suspended = false;
- handleMmSuspendRemoval(m_bufferStatus);
+ handleMmSuspendRemoval(m_bufferProgress);
}
}
diff --git a/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol_p.h b/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol_p.h
index f2cb41561..d8e437b1d 100644
--- a/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol_p.h
+++ b/src/multimedia/platform/qnx/mediaplayer/mmreventmediaplayercontrol_p.h
@@ -78,7 +78,7 @@ private:
MmrEventThread *m_eventThread;
// status properties.
- QByteArray m_bufferStatus;
+ QByteArray m_bufferProgress;
int m_bufferLevel;
int m_bufferCapacity;
qint64 m_position;
diff --git a/src/multimedia/platform/qplatformmediaplayer.cpp b/src/multimedia/platform/qplatformmediaplayer.cpp
index 8b289de04..303cd47dc 100644
--- a/src/multimedia/platform/qplatformmediaplayer.cpp
+++ b/src/multimedia/platform/qplatformmediaplayer.cpp
@@ -55,7 +55,7 @@ QT_BEGIN_NAMESPACE
\l {play()}{start}, \l {pause()} {pause} and \l {stop()}{stop} playback,
\l {setPosition()}{seek}, and control the \l {setVolume()}{volume}.
It also provides feedback on the \l {duration()}{duration} of the media,
- the current \l {position()}{position}, and \l {bufferStatus()}{buffering}
+ the current \l {position()}{position}, and \l {bufferProgress()}{buffering}
progress.
The functionality provided by this control is exposed to application
@@ -87,7 +87,7 @@ QPlatformMediaPlayer::~QPlatformMediaPlayer()
\sa state()
*/
-void QPlatformMediaPlayer::stateChanged(QMediaPlayer::State newState)
+void QPlatformMediaPlayer::stateChanged(QMediaPlayer::PlaybackState newState)
{
player->d_func()->setState(newState);
}
@@ -197,18 +197,18 @@ void QPlatformMediaPlayer::error(int error, const QString &errorString)
*/
/*!
- \fn QPlatformMediaPlayer::bufferStatus() const
+ \fn QPlatformMediaPlayer::bufferProgress() const
- Returns the buffering progress of the current media. Progress is measured in the percentage
- of the buffer filled.
+ Returns the buffering progress of the current media. Progress is measured as a number between
+ 0 and 1.
*/
/*!
- \fn QPlatformMediaPlayer::bufferStatusChanged(int percentFilled)
+ \fn QPlatformMediaPlayer::bufferProgressChanged(float filled)
- Signal the amount of the local buffer filled as a percentage by \a percentFilled.
+ Signal the amount of the local buffer filled as a relative number between 0 and 1.
- \sa bufferStatus()
+ \sa bufferProgress()
*/
/*!
diff --git a/src/multimedia/platform/qplatformmediaplayer_p.h b/src/multimedia/platform/qplatformmediaplayer_p.h
index f972187d8..e5abd6565 100644
--- a/src/multimedia/platform/qplatformmediaplayer_p.h
+++ b/src/multimedia/platform/qplatformmediaplayer_p.h
@@ -66,7 +66,7 @@ class Q_MULTIMEDIA_EXPORT QPlatformMediaPlayer
{
public:
virtual ~QPlatformMediaPlayer();
- virtual QMediaPlayer::State state() const = 0;
+ virtual QMediaPlayer::PlaybackState state() const = 0;
virtual QMediaPlayer::MediaStatus mediaStatus() const = 0;
@@ -81,7 +81,7 @@ public:
virtual bool isMuted() const = 0;
virtual void setMuted(bool mute) = 0;
- virtual int bufferStatus() const = 0;
+ virtual float bufferProgress() const = 0;
virtual bool isAudioAvailable() const = 0;
virtual bool isVideoAvailable() const = 0;
@@ -123,18 +123,18 @@ public:
void durationChanged(qint64 duration) { player->durationChanged(duration); }
void positionChanged(qint64 position) { player->positionChanged(position); }
- void audioAvailableChanged(bool audioAvailable) { player->audioAvailableChanged(audioAvailable); }
- void videoAvailableChanged(bool videoAvailable) { player->videoAvailableChanged(videoAvailable); }
+ void audioAvailableChanged(bool audioAvailable) { player->hasAudioChanged(audioAvailable); }
+ void videoAvailableChanged(bool videoAvailable) { player->hasVideoChanged(videoAvailable); }
void volumeChanged(int volume) { player->volumeChanged(volume); }
void mutedChanged(bool mute) { player->mutedChanged(mute); }
void seekableChanged(bool seekable) { player->seekableChanged(seekable); }
void playbackRateChanged(qreal rate) { player->playbackRateChanged(rate); }
- void bufferStatusChanged(int percentFilled) { player->bufferStatusChanged(percentFilled); }
+ void bufferProgressChanged(float progress) { player->bufferProgressChanged(progress); }
void metaDataChanged() { player->metaDataChanged(); }
void tracksChanged() { player->tracksChanged(); }
void activeTracksChanged() { player->activeTracksChanged(); }
- void stateChanged(QMediaPlayer::State newState);
+ void stateChanged(QMediaPlayer::PlaybackState newState);
void mediaStatusChanged(QMediaPlayer::MediaStatus status);
void error(int error, const QString &errorString);
diff --git a/src/multimedia/platform/windows/player/mfplayercontrol.cpp b/src/multimedia/platform/windows/player/mfplayercontrol.cpp
index f9797c3d7..88fbef38d 100644
--- a/src/multimedia/platform/windows/player/mfplayercontrol.cpp
+++ b/src/multimedia/platform/windows/player/mfplayercontrol.cpp
@@ -274,9 +274,9 @@ void MFPlayerControl::setMuted(bool muted)
m_session->setMuted(muted);
}
-int MFPlayerControl::bufferStatus() const
+float MFPlayerControl::bufferProgress() const
{
- return m_session->bufferStatus();
+ return m_session->bufferProgress() / 100.;
}
bool MFPlayerControl::isAudioAvailable() const
diff --git a/src/multimedia/platform/windows/player/mfplayercontrol_p.h b/src/multimedia/platform/windows/player/mfplayercontrol_p.h
index d3659cf93..05c5482c5 100644
--- a/src/multimedia/platform/windows/player/mfplayercontrol_p.h
+++ b/src/multimedia/platform/windows/player/mfplayercontrol_p.h
@@ -81,7 +81,7 @@ public:
bool isMuted() const override;
void setMuted(bool muted) override;
- int bufferStatus() const override;
+ float bufferProgress() const override;
bool isAudioAvailable() const override;
bool isVideoAvailable() const override;
diff --git a/src/multimedia/platform/windows/player/mfplayersession.cpp b/src/multimedia/platform/windows/player/mfplayersession.cpp
index 3ce531ddb..7603ac4d2 100644
--- a/src/multimedia/platform/windows/player/mfplayersession.cpp
+++ b/src/multimedia/platform/windows/player/mfplayersession.cpp
@@ -1375,7 +1375,7 @@ void MFPlayerSession::setVolumeInternal(int volume)
}
}
-int MFPlayerSession::bufferStatus()
+float MFPlayerSession::bufferProgress()
{
if (!m_netsourceStatistics)
return 0;
@@ -1393,10 +1393,10 @@ int MFPlayerSession::bufferStatus()
}
#ifdef DEBUG_MEDIAFOUNDATION
- qDebug() << "bufferStatus: progress = " << progress;
+ qDebug() << "bufferProgress: progress = " << progress;
#endif
- return progress;
+ return progress/100.;
}
QMediaTimeRange MFPlayerSession::availablePlaybackRanges()
@@ -1630,11 +1630,11 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
switch (meType) {
case MEBufferingStarted:
changeStatus(QMediaPlayer::StalledMedia);
- emit bufferStatusChanged(bufferStatus());
+ emit bufferProgressChanged(bufferProgress());
break;
case MEBufferingStopped:
changeStatus(QMediaPlayer::BufferedMedia);
- emit bufferStatusChanged(bufferStatus());
+ emit bufferProgressChanged(bufferProgress());
break;
case MESessionEnded:
m_pendingState = NoPending;
diff --git a/src/multimedia/platform/windows/player/mfplayersession_p.h b/src/multimedia/platform/windows/player/mfplayersession_p.h
index 493a2f68f..adc20297b 100644
--- a/src/multimedia/platform/windows/player/mfplayersession_p.h
+++ b/src/multimedia/platform/windows/player/mfplayersession_p.h
@@ -116,7 +116,7 @@ public:
void setVolume(int volume);
bool isMuted() const;
void setMuted(bool muted);
- int bufferStatus();
+ float bufferProgress();
QMediaTimeRange availablePlaybackRanges();
void changeStatus(QMediaPlayer::MediaStatus newStatus);
@@ -139,7 +139,7 @@ public:
void playbackRateChanged(qreal rate) { m_playerControl->playbackRateChanged(rate); }
void volumeChanged(int volume) { m_playerControl->volumeChanged(volume); }
void mutedChanged(bool muted) { m_playerControl->mutedChanged(muted); }
- void bufferStatusChanged(int percentFilled) { m_playerControl->bufferStatusChanged(percentFilled); }
+ void bufferProgressChanged(float percentFilled) { m_playerControl->bufferProgressChanged(percentFilled); }
void metaDataChanged() { m_playerControl->metaDataChanged(); }
void positionChanged(qint64 position) { m_playerControl->positionChanged(position); }
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index abe2b4ab4..1db307425 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -40,6 +40,7 @@
#include "qmediaplayer_p.h"
#include <private/qplatformmediaintegration_p.h>
+#include <qvideosink.h>
#include <QtCore/qcoreevent.h>
#include <QtCore/qmetaobject.h>
@@ -72,13 +73,13 @@ QT_BEGIN_NAMESPACE
\sa QVideoWidget
*/
-void QMediaPlayerPrivate::setState(QMediaPlayer::State ps)
+void QMediaPlayerPrivate::setState(QMediaPlayer::PlaybackState ps)
{
Q_Q(QMediaPlayer);
if (ps != state) {
state = ps;
- emit q->stateChanged(ps);
+ emit q->playbackStateChanged(ps);
}
}
@@ -103,7 +104,7 @@ void QMediaPlayerPrivate::setError(int error, const QString &errorString)
this->error = QMediaPlayer::Error(error);
this->errorString = errorString;
- emit q->error(this->error);
+ emit q->errorChanged(this->error);
}
void QMediaPlayerPrivate::setMedia(const QUrl &media, QIODevice *stream)
@@ -175,6 +176,9 @@ void QMediaPlayerPrivate::setMedia(const QUrl &media, QIODevice *stream)
}
qrcFile.swap(file); // Cleans up any previous file
+
+ if (autoPlay)
+ q->play();
}
QList<QMediaMetaData> QMediaPlayerPrivate::trackMetaData(QPlatformMediaPlayer::TrackType s) const
@@ -228,7 +232,7 @@ QMediaPlayer::~QMediaPlayer()
delete d->control;
}
-QUrl QMediaPlayer::media() const
+QUrl QMediaPlayer::source() const
{
Q_D(const QMediaPlayer);
@@ -243,7 +247,7 @@ QUrl QMediaPlayer::media() const
\sa setMedia()
*/
-const QIODevice *QMediaPlayer::mediaStream() const
+const QIODevice *QMediaPlayer::sourceStream() const
{
Q_D(const QMediaPlayer);
@@ -255,7 +259,7 @@ const QIODevice *QMediaPlayer::mediaStream() const
return nullptr;
}
-QMediaPlayer::State QMediaPlayer::state() const
+QMediaPlayer::PlaybackState QMediaPlayer::playbackState() const
{
Q_D(const QMediaPlayer);
@@ -315,17 +319,17 @@ bool QMediaPlayer::isMuted() const
return false;
}
-int QMediaPlayer::bufferStatus() const
+float QMediaPlayer::bufferProgress() const
{
Q_D(const QMediaPlayer);
if (d->control != nullptr)
- return d->control->bufferStatus();
+ return d->control->bufferProgress();
- return 0;
+ return 0.;
}
-bool QMediaPlayer::isAudioAvailable() const
+bool QMediaPlayer::hasAudio() const
{
Q_D(const QMediaPlayer);
@@ -335,7 +339,7 @@ bool QMediaPlayer::isAudioAvailable() const
return false;
}
-bool QMediaPlayer::isVideoAvailable() const
+bool QMediaPlayer::hasVideo() const
{
Q_D(const QMediaPlayer);
@@ -455,6 +459,16 @@ void QMediaPlayer::setMuted(bool muted)
d->control->setMuted(muted);
}
+void QMediaPlayer::setAutoPlay(bool autoPlay)
+{
+ Q_D(QMediaPlayer);
+ if (d->autoPlay == autoPlay)
+ return;
+
+ d->autoPlay = autoPlay;
+ emit autoPlayChanged(autoPlay);
+}
+
void QMediaPlayer::setPlaybackRate(qreal rate)
{
Q_D(QMediaPlayer);
@@ -464,7 +478,7 @@ void QMediaPlayer::setPlaybackRate(qreal rate)
}
/*!
- Sets the current \a media source.
+ Sets the current \a source.
If a \a stream is supplied; media data will be read from it instead of resolving the media
source. In this case the url should be provided to resolve additional information
@@ -481,17 +495,17 @@ void QMediaPlayer::setPlaybackRate(qreal rate)
when an error occurs during loading.
*/
-void QMediaPlayer::setMedia(const QUrl &media, QIODevice *stream)
+void QMediaPlayer::setSource(const QUrl &source, QIODevice *stream)
{
Q_D(QMediaPlayer);
stop();
QUrl oldMedia = d->rootMedia;
- d->rootMedia = media;
+ d->rootMedia = source;
- if (oldMedia != media) {
- d->setMedia(media, stream);
- emit mediaChanged(d->rootMedia);
+ if (oldMedia != source) {
+ d->setMedia(source, stream);
+ emit sourceChanged(d->rootMedia);
}
}
@@ -583,23 +597,64 @@ void QMediaPlayer::setActiveSubtitleTrack(int index)
If the media player has already video output attached,
it will be replaced with a new one.
*/
+void QMediaPlayer::setVideoOutput(const QVariant &output)
+{
+ QVideoSink *s = output.value<QVideoSink *>();
+ if (s) {
+ setVideoOutput(s);
+ return;
+ }
+ QObject *o = output.value<QObject *>();
+ if (o) {
+ setVideoOutput(o);
+ return;
+ }
+}
+
+QVariant QMediaPlayer::videoOutput() const
+{
+ Q_D(const QMediaPlayer);
+ return d->videoOutput;
+}
+
+/*!
+ Attach a video \a output to the media player.
+
+ If the media player has already video output attached,
+ it will be replaced with a new one.
+*/
void QMediaPlayer::setVideoOutput(QObject *output)
{
- auto *mo = output->metaObject();
+ Q_D(QMediaPlayer);
+ if (!d->control)
+ return;
+
QVideoSink *sink = nullptr;
- if (output)
- mo->invokeMethod(output, "videoSink", Q_RETURN_ARG(QVideoSink *, sink));
- setVideoOutput(sink);
+ if (output) {
+ auto *mo = output->metaObject();
+ if (output)
+ mo->invokeMethod(output, "videoSink", Q_RETURN_ARG(QVideoSink *, sink));
+ }
+ QVariant out = QVariant::fromValue(output);
+ if (d->videoOutput == out)
+ return;
+ d->videoOutput = out;
+ d->control->setVideoSink(sink);
+ emit videoOutputChanged();
}
void QMediaPlayer::setVideoOutput(QVideoSink *sink)
{
Q_D(QMediaPlayer);
-
if (!d->control)
return;
+ QVariant out = QVariant::fromValue(sink);
+ if (d->videoOutput == out)
+ return;
+ d->videoOutput = out;
d->control->setVideoSink(sink);
+ emit videoOutputChanged();
}
/*!
@@ -667,6 +722,12 @@ QList<QAudio::Role> QMediaPlayer::supportedAudioRoles() const
return d->control->supportedAudioRoles();
}
+bool QMediaPlayer::autoPlay() const
+{
+ Q_D(const QMediaPlayer);
+ return d->autoPlay;
+}
+
// Enums
/*!
\enum QMediaPlayer::State
@@ -859,7 +920,7 @@ QList<QAudio::Role> QMediaPlayer::supportedAudioRoles() const
*/
/*!
- \property QMediaPlayer::bufferStatus
+ \property QMediaPlayer::bufferProgress
\brief the percentage of the temporary buffer filled before playback begins or resumes, from
\c 0 (empty) to \c 100 (full).
@@ -968,9 +1029,9 @@ QList<QAudio::Role> QMediaPlayer::supportedAudioRoles() const
*/
/*!
- \fn void QMediaPlayer::bufferStatusChanged(int percentFilled)
+ \fn void QMediaPlayer::bufferProgressChanged(float filled)
- Signal the amount of the local buffer filled as a percentage by \a percentFilled.
+ Signal the amount of the local buffer filled as a number between 0 and 1.
*/
QT_END_NAMESPACE
diff --git a/src/multimedia/playback/qmediaplayer.h b/src/multimedia/playback/qmediaplayer.h
index 840e521f1..1cd11989e 100644
--- a/src/multimedia/playback/qmediaplayer.h
+++ b/src/multimedia/playback/qmediaplayer.h
@@ -55,27 +55,30 @@ class QMediaPlayerPrivate;
class Q_MULTIMEDIA_EXPORT QMediaPlayer : public QObject
{
Q_OBJECT
- Q_PROPERTY(QUrl media READ media WRITE setMedia NOTIFY mediaChanged)
+ Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
Q_PROPERTY(qint64 duration READ duration NOTIFY durationChanged)
Q_PROPERTY(qint64 position READ position WRITE setPosition NOTIFY positionChanged)
Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged)
Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged)
- Q_PROPERTY(int bufferStatus READ bufferStatus NOTIFY bufferStatusChanged)
- Q_PROPERTY(bool audioAvailable READ isAudioAvailable NOTIFY audioAvailableChanged)
- Q_PROPERTY(bool videoAvailable READ isVideoAvailable NOTIFY videoAvailableChanged)
+ Q_PROPERTY(float bufferProgress READ bufferProgress NOTIFY bufferProgressChanged)
+ Q_PROPERTY(bool hasAudio READ hasAudio NOTIFY hasAudioChanged)
+ Q_PROPERTY(bool hasVideo READ hasVideo NOTIFY hasVideoChanged)
Q_PROPERTY(bool seekable READ isSeekable NOTIFY seekableChanged)
Q_PROPERTY(qreal playbackRate READ playbackRate WRITE setPlaybackRate NOTIFY playbackRateChanged)
- Q_PROPERTY(State state READ state NOTIFY stateChanged)
+ Q_PROPERTY(PlaybackState playbackState READ playbackState NOTIFY playbackStateChanged)
+ Q_PROPERTY(bool autoPlay READ autoPlay WRITE setAutoPlay NOTIFY autoPlayChanged)
Q_PROPERTY(MediaStatus mediaStatus READ mediaStatus NOTIFY mediaStatusChanged)
Q_PROPERTY(QAudio::Role audioRole READ audioRole WRITE setAudioRole NOTIFY audioRoleChanged)
Q_PROPERTY(QMediaMetaData metaData READ metaData NOTIFY metaDataChanged)
- Q_PROPERTY(QString error READ errorString)
- Q_ENUMS(State)
+ Q_PROPERTY(Error error READ error NOTIFY errorChanged)
+ Q_PROPERTY(QString errorString READ errorString NOTIFY errorChanged)
+ Q_PROPERTY(QVariant videoOutput READ videoOutput WRITE setVideoOutput NOTIFY videoOutputChanged)
+ Q_ENUMS(PlaybackState)
Q_ENUMS(MediaStatus)
Q_ENUMS(Error)
public:
- enum State
+ enum PlaybackState
{
StoppedState,
PlayingState,
@@ -127,14 +130,17 @@ public:
void setActiveVideoTrack(int index);
void setActiveSubtitleTrack(int index);
+ void setVideoOutput(const QVariant &output);
+ QVariant videoOutput() const;
+
void setVideoOutput(QObject *);
void setVideoOutput(const QList<QVideoSink *> &sinks);
void setVideoOutput(QVideoSink *sink);
- QUrl media() const;
- const QIODevice *mediaStream() const;
+ QUrl source() const;
+ const QIODevice *sourceStream() const;
- State state() const;
+ PlaybackState playbackState() const;
MediaStatus mediaStatus() const;
qint64 duration() const;
@@ -142,10 +148,10 @@ public:
int volume() const;
bool isMuted() const;
- bool isAudioAvailable() const;
- bool isVideoAvailable() const;
+ bool hasAudio() const;
+ bool hasVideo() const;
- int bufferStatus() const;
+ float bufferProgress() const;
bool isSeekable() const;
qreal playbackRate() const;
@@ -160,6 +166,8 @@ public:
void setAudioRole(QAudio::Role audioRole);
QList<QAudio::Role> supportedAudioRoles() const;
+ bool autoPlay() const;
+
public Q_SLOTS:
void play();
void pause();
@@ -168,14 +176,15 @@ public Q_SLOTS:
void setPosition(qint64 position);
void setVolume(int volume);
void setMuted(bool muted);
+ void setAutoPlay(bool autoPlay);
void setPlaybackRate(qreal rate);
- void setMedia(const QUrl &media, QIODevice *stream = nullptr);
+ void setSource(const QUrl &media, QIODevice *stream = nullptr);
Q_SIGNALS:
- void mediaChanged(const QUrl &media);
- void stateChanged(QMediaPlayer::State newState);
+ void sourceChanged(const QUrl &media);
+ void playbackStateChanged(QMediaPlayer::PlaybackState newState);
void mediaStatusChanged(QMediaPlayer::MediaStatus status);
void durationChanged(qint64 duration);
@@ -183,10 +192,11 @@ Q_SIGNALS:
void volumeChanged(int volume);
void mutedChanged(bool muted);
- void audioAvailableChanged(bool available);
- void videoAvailableChanged(bool videoAvailable);
+ void autoPlayChanged(bool autoPlay);
+ void hasAudioChanged(bool available);
+ void hasVideoChanged(bool videoAvailable);
- void bufferStatusChanged(int percentFilled);
+ void bufferProgressChanged(float progress);
void seekableChanged(bool seekable);
void playbackRateChanged(qreal rate);
@@ -194,11 +204,12 @@ Q_SIGNALS:
void audioRoleChanged(QAudio::Role role);
void metaDataChanged();
+ void videoOutputChanged();
void tracksChanged();
void activeTracksChanged();
- void error(QMediaPlayer::Error error);
+ void errorChanged(QMediaPlayer::Error error);
private:
Q_DISABLE_COPY(QMediaPlayer)
@@ -208,7 +219,7 @@ private:
QT_END_NAMESPACE
-Q_MEDIA_ENUM_DEBUG(QMediaPlayer, State)
+Q_MEDIA_ENUM_DEBUG(QMediaPlayer, PlaybackState)
Q_MEDIA_ENUM_DEBUG(QMediaPlayer, MediaStatus)
Q_MEDIA_ENUM_DEBUG(QMediaPlayer, Error)
diff --git a/src/multimedia/playback/qmediaplayer_p.h b/src/multimedia/playback/qmediaplayer_p.h
index f0ff1bbd6..7d5b1839a 100644
--- a/src/multimedia/playback/qmediaplayer_p.h
+++ b/src/multimedia/playback/qmediaplayer_p.h
@@ -76,16 +76,17 @@ public:
QPlatformMediaPlayer* control = nullptr;
QString errorString;
- QPointer<QObject> videoOutput;
+ QVariant videoOutput;
QUrl qrcMedia;
QScopedPointer<QFile> qrcFile;
QUrl rootMedia;
- QMediaPlayer::State state = QMediaPlayer::StoppedState;
+ QMediaPlayer::PlaybackState state = QMediaPlayer::StoppedState;
QMediaPlayer::MediaStatus status = QMediaPlayer::UnknownMediaStatus;
QMediaPlayer::Error error = QMediaPlayer::NoError;
int ignoreNextStatusChange = -1;
bool hasStreamPlaybackFeature = false;
+ bool autoPlay = false;
QAudio::Role audioRole = QAudio::UnknownRole;
@@ -93,7 +94,7 @@ public:
QList<QMediaMetaData> trackMetaData(QPlatformMediaPlayer::TrackType s) const;
- void setState(QMediaPlayer::State state);
+ void setState(QMediaPlayer::PlaybackState state);
void setStatus(QMediaPlayer::MediaStatus status);
void setError(int error, const QString &errorString);
};
diff --git a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
index 7095a0cc9..ba3342869 100644
--- a/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
+++ b/tests/auto/integration/qmediaplayerbackend/tst_qmediaplayerbackend.cpp
@@ -140,7 +140,7 @@ QUrl tst_QMediaPlayerBackend::selectVideoFile(const QStringList& mediaCandidates
if (!videoFile.exists())
continue;
QUrl media = QUrl(QUrl::fromLocalFile(videoFile.absoluteFilePath()));
- player.setMedia(media);
+ player.setSource(media);
player.pause();
for (int i = 0; i < 2000 && surface->m_frameList.isEmpty() && errorSpy.isEmpty(); i+=50) {
@@ -204,7 +204,7 @@ void tst_QMediaPlayerBackend::loadMedia()
QMediaPlayer player;
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::NoMedia);
QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
@@ -212,13 +212,13 @@ void tst_QMediaPlayerBackend::loadMedia()
QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QUrl)));
QSignalSpy currentMediaSpy(&player, SIGNAL(currentMediaChanged(QUrl)));
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QVERIFY(player.mediaStatus() != QMediaPlayer::NoMedia);
QVERIFY(player.mediaStatus() != QMediaPlayer::InvalidMedia);
- QVERIFY(player.media() == localWavFile);
+ QVERIFY(player.source() == localWavFile);
QCOMPARE(stateSpy.count(), 0);
QVERIFY(statusSpy.count() > 0);
@@ -228,8 +228,8 @@ void tst_QMediaPlayerBackend::loadMedia()
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
- QVERIFY(player.isAudioAvailable());
- QVERIFY(!player.isVideoAvailable());
+ QVERIFY(player.hasAudio());
+ QVERIFY(!player.hasVideo());
}
void tst_QMediaPlayerBackend::unloadMedia()
@@ -246,7 +246,7 @@ void tst_QMediaPlayerBackend::unloadMedia()
QSignalSpy positionSpy(&player, SIGNAL(positionChanged(qint64)));
QSignalSpy durationSpy(&player, SIGNAL(positionChanged(qint64)));
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
@@ -265,13 +265,13 @@ void tst_QMediaPlayerBackend::unloadMedia()
positionSpy.clear();
durationSpy.clear();
- player.setMedia(QUrl());
+ player.setSource(QUrl());
QVERIFY(player.position() <= 0);
QVERIFY(player.duration() <= 0);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::NoMedia);
- QCOMPARE(player.media(), QUrl());
+ QCOMPARE(player.source(), QUrl());
QVERIFY(!stateSpy.isEmpty());
QVERIFY(!statusSpy.isEmpty());
@@ -286,11 +286,11 @@ void tst_QMediaPlayerBackend::loadMediaInLoadingState()
QSKIP("Sound format is not supported");
QMediaPlayer player;
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
player.play();
QCOMPARE(player.mediaStatus(), QMediaPlayer::LoadingMedia);
// Sets new media while old has not been finished.
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
QCOMPARE(player.mediaStatus(), QMediaPlayer::LoadingMedia);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
}
@@ -310,7 +310,7 @@ void tst_QMediaPlayerBackend::playPauseStop()
// Check play() without a media
player.play();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::NoMedia);
QCOMPARE(player.error(), QMediaPlayer::NoError);
QCOMPARE(player.position(), 0);
@@ -322,7 +322,7 @@ void tst_QMediaPlayerBackend::playPauseStop()
// Check pause() without a media
player.pause();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::NoMedia);
QCOMPARE(player.error(), QMediaPlayer::NoError);
QCOMPARE(player.position(), 0);
@@ -333,18 +333,18 @@ void tst_QMediaPlayerBackend::playPauseStop()
// The rest is with a valid media
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
QCOMPARE(player.position(), qint64(0));
player.play();
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PlayingState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::PlayingState);
QTRY_VERIFY(statusSpy.count() > 0 &&
statusSpy.last()[0].value<QMediaPlayer::MediaStatus>() == QMediaPlayer::BufferedMedia);
@@ -360,11 +360,11 @@ void tst_QMediaPlayerBackend::playPauseStop()
qint64 positionBeforePause = player.position();
player.pause();
- QCOMPARE(player.state(), QMediaPlayer::PausedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PausedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PausedState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::PausedState);
QTest::qWait(2000);
@@ -376,11 +376,11 @@ void tst_QMediaPlayerBackend::playPauseStop()
player.stop();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::StoppedState);
//it's allowed to emit statusChanged() signal async
QTRY_COMPARE(statusSpy.count(), 1);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::LoadedMedia);
@@ -396,10 +396,10 @@ void tst_QMediaPlayerBackend::playPauseStop()
player.play();
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PlayingState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::PlayingState);
QCOMPARE(statusSpy.count(), 1); // Should not go through Loading again when play -> stop -> play
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::BufferedMedia);
@@ -408,24 +408,24 @@ void tst_QMediaPlayerBackend::playPauseStop()
statusSpy.clear();
positionSpy.clear();
- player.setMedia(localWavFile2);
+ player.setSource(localWavFile2);
QTRY_VERIFY(statusSpy.count() > 0);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::LoadedMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(stateSpy.count(), 0);
player.play();
QTRY_VERIFY(player.position() > 100);
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::LoadedMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::StoppedState);
QCOMPARE(player.position(), 0);
QCOMPARE(positionSpy.last()[0].value<qint64>(), 0);
@@ -437,12 +437,12 @@ void tst_QMediaPlayerBackend::playPauseStop()
QTRY_VERIFY(player.position() > 100);
- player.setMedia(QUrl());
+ player.setSource(QUrl());
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::NoMedia);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::NoMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::StoppedState);
QCOMPARE(player.position(), 0);
QCOMPARE(positionSpy.last()[0].value<qint64>(), 0);
QCOMPARE(player.duration(), 0);
@@ -460,7 +460,7 @@ void tst_QMediaPlayerBackend::processEOS()
QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
QSignalSpy positionSpy(&player, SIGNAL(positionChanged(qint64)));
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
player.play();
player.setPosition(900);
@@ -470,9 +470,9 @@ void tst_QMediaPlayerBackend::processEOS()
QVERIFY(statusSpy.count() > 0);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::EndOfMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(stateSpy.count(), 2);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::StoppedState);
//at EOS the position stays at the end of file
QCOMPARE(player.position(), player.duration());
@@ -490,11 +490,11 @@ void tst_QMediaPlayerBackend::processEOS()
QTRY_VERIFY(positionSpy.count() > 0);
QCOMPARE(positionSpy.first()[0].value<qint64>(), 0);
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PlayingState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::PlayingState);
QVERIFY(statusSpy.count() > 0);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::BufferedMedia);
@@ -503,9 +503,9 @@ void tst_QMediaPlayerBackend::processEOS()
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
QVERIFY(statusSpy.count() > 0);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::EndOfMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(stateSpy.count(), 2);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::StoppedState);
//position stays at the end of file
QCOMPARE(player.position(), player.duration());
@@ -528,7 +528,7 @@ void tst_QMediaPlayerBackend::processEOS()
player.setPosition(900);
//wait up to 5 seconds for EOS
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.position(), player.duration());
stateSpy.clear();
@@ -542,11 +542,11 @@ void tst_QMediaPlayerBackend::processEOS()
QTRY_VERIFY(positionSpy.count() > 0);
QCOMPARE(positionSpy.first()[0].value<qint64>(), 0);
- QCOMPARE(player.state(), QMediaPlayer::PausedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PausedState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QCOMPARE(stateSpy.count(), 1);
- QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::State>(), QMediaPlayer::PausedState);
+ QCOMPARE(stateSpy.last()[0].value<QMediaPlayer::PlaybackState>(), QMediaPlayer::PausedState);
QVERIFY(statusSpy.count() > 0);
QCOMPARE(statusSpy.last()[0].value<QMediaPlayer::MediaStatus>(), QMediaPlayer::BufferedMedia);
}
@@ -590,7 +590,7 @@ void tst_QMediaPlayerBackend::deleteLaterAtEOS()
QPointer<QMediaPlayer> player(new QMediaPlayer);
DeleteLaterAtEos deleter(player);
- player->setMedia(localWavFile);
+ player->setSource(localWavFile);
// Create an event loop for verifying deleteLater behavior instead of using
// QTRY_VERIFY or QTest::qWait. QTest::qWait makes extra effort to process
@@ -612,7 +612,7 @@ void tst_QMediaPlayerBackend::volumeAndMuted()
QVERIFY(player.volume() > 0);
QVERIFY(!player.isMuted());
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
player.pause();
QVERIFY(player.volume() > 0);
@@ -687,7 +687,7 @@ void tst_QMediaPlayerBackend::volumeAcrossFiles()
QTRY_COMPARE(player.volume(), volume);
QTRY_COMPARE(player.isMuted(), muted);
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
QCOMPARE(player.volume(), volume);
QCOMPARE(player.isMuted(), muted);
@@ -699,11 +699,11 @@ void tst_QMediaPlayerBackend::volumeAcrossFiles()
QTRY_COMPARE(player.volume(), volume);
QCOMPARE(player.isMuted(), muted);
- player.setMedia(QUrl());
+ player.setSource(QUrl());
QTRY_COMPARE(player.volume(), volume);
QCOMPARE(player.isMuted(), muted);
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
player.pause();
QTRY_COMPARE(player.volume(), volume);
@@ -718,7 +718,7 @@ void tst_QMediaPlayerBackend::initialVolume()
{
QMediaPlayer player;
player.setVolume(1);
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
QCOMPARE(player.volume(), 1);
player.play();
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
@@ -727,7 +727,7 @@ void tst_QMediaPlayerBackend::initialVolume()
{
QMediaPlayer player;
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
QCOMPARE(player.volume(), 100);
player.play();
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
@@ -747,20 +747,20 @@ void tst_QMediaPlayerBackend::seekPauseSeek()
TestVideoSink *surface = new TestVideoSink;
player.setVideoOutput(surface);
- player.setMedia(localVideoFile);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ player.setSource(localVideoFile);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QVERIFY(surface->m_frameList.isEmpty()); // frame must not appear until we call pause() or play()
positionSpy.clear();
qint64 position = 7000;
player.setPosition(position);
QTRY_VERIFY(!positionSpy.isEmpty() && qAbs(player.position() - position) < (qint64)500);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QTest::qWait(250); // wait a bit to ensure the frame is not rendered
QVERIFY(surface->m_frameList.isEmpty()); // still no frame, we must call pause() or play() to see a frame
player.pause();
- QTRY_COMPARE(player.state(), QMediaPlayer::PausedState); // it might take some time for the operation to be completed
+ QTRY_COMPARE(player.playbackState(), QMediaPlayer::PausedState); // it might take some time for the operation to be completed
QTRY_VERIFY_WITH_TIMEOUT(!surface->m_frameList.isEmpty(), 10000); // we must see a frame at position 7000 here
// Make sure that the frame has a timestamp before testing - not all backends provides this
@@ -789,7 +789,7 @@ void tst_QMediaPlayerBackend::seekPauseSeek()
position = 12000;
player.setPosition(position);
QTRY_VERIFY(!positionSpy.isEmpty() && qAbs(player.position() - position) < (qint64)500);
- QCOMPARE(player.state(), QMediaPlayer::PausedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PausedState);
QVERIFY(!surface->m_frameList.isEmpty());
{
@@ -819,9 +819,9 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
QSignalSpy positionSpy(&player, SIGNAL(positionChanged(qint64)));
- player.setMedia(localVideoFile);
+ player.setSource(localVideoFile);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.position(), 0);
QVERIFY(player.isSeekable());
@@ -835,7 +835,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
QCOMPARE(positionSpy.count(), 1);
QVERIFY(qAbs(positionSpy.last()[0].value<qint64>() - position) < qint64(500));
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(stateSpy.count(), 0);
QCOMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
@@ -844,7 +844,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
player.play();
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QVERIFY(qAbs(player.position() - position) < qint64(500));
@@ -858,7 +858,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
// Same tests but after play() --> stop()
player.stop();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
QCOMPARE(player.position(), 0);
@@ -871,7 +871,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
QCOMPARE(positionSpy.count(), 1);
QVERIFY(qAbs(positionSpy.last()[0].value<qint64>() - position) < qint64(500));
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(stateSpy.count(), 0);
QCOMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
@@ -880,7 +880,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
player.play();
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QVERIFY(qAbs(player.position() - position) < qint64(500));
@@ -895,7 +895,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
player.setPosition(player.duration() - 500);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.position(), player.duration());
stateSpy.clear();
@@ -907,7 +907,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
QCOMPARE(positionSpy.count(), 1);
QVERIFY(qAbs(positionSpy.last()[0].value<qint64>() - position) < qint64(500));
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(stateSpy.count(), 0);
QCOMPARE(player.mediaStatus(), QMediaPlayer::LoadedMedia);
@@ -916,7 +916,7 @@ void tst_QMediaPlayerBackend::seekInStoppedState()
player.play();
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::BufferedMedia);
QVERIFY(qAbs(player.position() - position) < qint64(500));
@@ -938,32 +938,32 @@ void tst_QMediaPlayerBackend::subsequentPlayback()
QSKIP("Sound format is not supported");
QMediaPlayer player;
- player.setMedia(localCompressedSoundFile);
+ player.setSource(localCompressedSoundFile);
player.play();
QCOMPARE(player.error(), QMediaPlayer::NoError);
- QTRY_COMPARE(player.state(), QMediaPlayer::PlayingState);
+ QTRY_COMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_COMPARE_WITH_TIMEOUT(player.mediaStatus(), QMediaPlayer::EndOfMedia, 15000);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
// Could differ by up to 1 compressed frame length
QVERIFY(qAbs(player.position() - player.duration()) < 100);
QVERIFY(player.position() > 0);
player.play();
- QTRY_COMPARE(player.state(), QMediaPlayer::PlayingState);
+ QTRY_COMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_VERIFY_WITH_TIMEOUT(player.position() > 2000 && player.position() < 5000, 10000);
player.pause();
- QCOMPARE(player.state(), QMediaPlayer::PausedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PausedState);
// make sure position does not "jump" closer to the end of the file
QVERIFY(player.position() > 2000 && player.position() < 5000);
// try to seek back to zero
player.setPosition(0);
QTRY_COMPARE(player.position(), qint64(0));
player.play();
- QCOMPARE(player.state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PlayingState);
QTRY_VERIFY_WITH_TIMEOUT(player.position() > 2000 && player.position() < 5000, 10000);
player.pause();
- QCOMPARE(player.state(), QMediaPlayer::PausedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::PausedState);
QVERIFY(player.position() > 2000 && player.position() < 5000);
}
@@ -1007,7 +1007,7 @@ void tst_QMediaPlayerBackend::surfaceTest()
TestVideoSink surface(false);
QMediaPlayer player;
player.setVideoOutput(&surface);
- player.setMedia(localVideoFile);
+ player.setSource(localVideoFile);
player.play();
QTRY_VERIFY(player.position() >= 1000);
QVERIFY2(surface.m_totalFrames >= 25, qPrintable(QString("Expected >= 25, got %1").arg(surface.m_totalFrames)));
@@ -1023,7 +1023,7 @@ void tst_QMediaPlayerBackend::multipleSurfaces()
QMediaPlayer player;
player.setVideoOutput(QList<QVideoSink *>() << &surface1 << &surface2);
- player.setMedia(localVideoFile);
+ player.setSource(localVideoFile);
player.play();
QTRY_VERIFY(player.position() >= 1000);
// QVERIFY2(surface1.m_totalFrames >= 25, qPrintable(QString("Expected >= 25, got %1").arg(surface1.m_totalFrames)));
@@ -1040,7 +1040,7 @@ void tst_QMediaPlayerBackend::metadata()
QSignalSpy metadataChangedSpy(&player, SIGNAL(metaDataChanged()));
- player.setMedia(localFileWithMetadata);
+ player.setSource(localFileWithMetadata);
QVERIFY(metadataChangedSpy.count() > 0);
@@ -1050,7 +1050,7 @@ void tst_QMediaPlayerBackend::metadata()
metadataChangedSpy.clear();
- player.setMedia(QUrl());
+ player.setSource(QUrl());
QCOMPARE(metadataChangedSpy.count(), 1);
QVERIFY(player.metaData().isEmpty());
@@ -1066,12 +1066,12 @@ void tst_QMediaPlayerBackend::playerStateAtEOS()
bool endOfMediaReceived = false;
connect(&player, &QMediaPlayer::mediaStatusChanged, [&](QMediaPlayer::MediaStatus status) {
if (status == QMediaPlayer::EndOfMedia) {
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
endOfMediaReceived = true;
}
});
- player.setMedia(localWavFile);
+ player.setSource(localWavFile);
player.play();
QTRY_COMPARE(player.mediaStatus(), QMediaPlayer::EndOfMedia);
@@ -1089,7 +1089,7 @@ void tst_QMediaPlayerBackend::playFromBuffer()
QFile file(localVideoFile.toLocalFile());
if (!file.open(QIODevice::ReadOnly))
QSKIP("Could not open file");
- player.setMedia(localVideoFile, &file);
+ player.setSource(localVideoFile, &file);
player.play();
QTRY_VERIFY(player.position() >= 1000);
QVERIFY2(surface.m_totalFrames >= 25, qPrintable(QString("Expected >= 25, got %1").arg(surface.m_totalFrames)));
diff --git a/tests/auto/integration/shared/mediafileselector.h b/tests/auto/integration/shared/mediafileselector.h
index 5b5c33496..a0b8bc681 100644
--- a/tests/auto/integration/shared/mediafileselector.h
+++ b/tests/auto/integration/shared/mediafileselector.h
@@ -50,7 +50,7 @@ static QUrl selectMediaFile(const QStringList& mediaCandidates)
if (!mediaFile.exists())
continue;
QUrl media = QUrl(QUrl::fromLocalFile(mediaFile.absoluteFilePath()));
- player.setMedia(media);
+ player.setSource(media);
player.play();
for (int i = 0; i < 2000 && player.mediaStatus() != QMediaPlayer::BufferedMedia && errorSpy.isEmpty(); i+=50) {
diff --git a/tests/auto/unit/mockbackend/mockmediaplayer.h b/tests/auto/unit/mockbackend/mockmediaplayer.h
index a761545dc..0ef695e40 100644
--- a/tests/auto/unit/mockbackend/mockmediaplayer.h
+++ b/tests/auto/unit/mockbackend/mockmediaplayer.h
@@ -46,7 +46,7 @@ public:
, _position(0)
, _volume(100)
, _muted(false)
- , _bufferStatus(0)
+ , _bufferProgress(0)
, _audioAvailable(false)
, _videoAvailable(false)
, _isSeekable(true)
@@ -59,14 +59,14 @@ public:
{
}
- QMediaPlayer::State state() const { return _state; }
- void updateState(QMediaPlayer::State state) { emit stateChanged(_state = state); }
+ QMediaPlayer::PlaybackState state() const { return _state; }
+ void updateState(QMediaPlayer::PlaybackState state) { emit stateChanged(_state = state); }
QMediaPlayer::MediaStatus mediaStatus() const { return _mediaStatus; }
void updateMediaStatus(QMediaPlayer::MediaStatus status)
{
emit mediaStatusChanged(_mediaStatus = status);
}
- void updateMediaStatus(QMediaPlayer::MediaStatus status, QMediaPlayer::State state)
+ void updateMediaStatus(QMediaPlayer::MediaStatus status, QMediaPlayer::PlaybackState state)
{
_mediaStatus = status;
_state = state;
@@ -88,8 +88,8 @@ public:
bool isMuted() const { return _muted; }
void setMuted(bool muted) { if (muted != _muted) emit mutedChanged(_muted = muted); }
- int bufferStatus() const { return _bufferStatus; }
- void setBufferStatus(int status) { emit bufferStatusChanged(_bufferStatus = status); }
+ float bufferProgress() const { return _bufferProgress; }
+ void setBufferStatus(float status) { _bufferProgress = status; emit bufferProgressChanged(status); }
bool isAudioAvailable() const { return _audioAvailable; }
bool isVideoAvailable() const { return _videoAvailable; }
@@ -141,8 +141,8 @@ public:
emit error(err, errorString);
}
- void setState(QMediaPlayer::State state) { emit stateChanged(_state = state); }
- void setState(QMediaPlayer::State state, QMediaPlayer::MediaStatus status) {
+ void setState(QMediaPlayer::PlaybackState state) { emit stateChanged(_state = state); }
+ void setState(QMediaPlayer::PlaybackState state, QMediaPlayer::MediaStatus status) {
_state = state;
_mediaStatus = status;
emit mediaStatusChanged(status);
@@ -164,7 +164,7 @@ public:
_position = 0;
_volume = 0;
_muted = false;
- _bufferStatus = 0;
+ _bufferProgress = 0;
_videoAvailable = false;
_isSeekable = false;
_playbackRate = 0.0;
@@ -179,14 +179,14 @@ public:
bool hasAudioRole = true;
QAudio::Role m_audioRole = QAudio::UnknownRole;
- QMediaPlayer::State _state;
+ QMediaPlayer::PlaybackState _state;
QMediaPlayer::MediaStatus _mediaStatus;
QMediaPlayer::Error _error;
qint64 _duration;
qint64 _position;
int _volume;
bool _muted;
- int _bufferStatus;
+ float _bufferProgress;
bool _audioAvailable;
bool _videoAvailable;
bool _isSeekable;
diff --git a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
index b93c57f79..a187fcd5f 100644
--- a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
+++ b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
@@ -165,7 +165,7 @@ private:
void tst_QMediaPlayer::setupCommonTestData()
{
QTest::addColumn<bool>("valid");
- QTest::addColumn<QMediaPlayer::State>("state");
+ QTest::addColumn<QMediaPlayer::PlaybackState>("state");
QTest::addColumn<QMediaPlayer::MediaStatus>("status");
QTest::addColumn<QUrl>("mediaContent");
QTest::addColumn<qint64>("duration");
@@ -174,7 +174,7 @@ void tst_QMediaPlayer::setupCommonTestData()
QTest::addColumn<int>("volume");
QTest::addColumn<bool>("muted");
QTest::addColumn<bool>("videoAvailable");
- QTest::addColumn<int>("bufferStatus");
+ QTest::addColumn<int>("bufferProgress");
QTest::addColumn<qreal>("playbackRate");
QTest::addColumn<QMediaPlayer::Error>("error");
QTest::addColumn<QString>("errorString");
@@ -237,16 +237,16 @@ void tst_QMediaPlayer::testNullService()
const QIODevice *nullDevice = nullptr;
- QCOMPARE(player.media(), QUrl());
- QCOMPARE(player.mediaStream(), nullDevice);
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.source(), QUrl());
+ QCOMPARE(player.sourceStream(), nullDevice);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
QCOMPARE(player.duration(), qint64(-1));
QCOMPARE(player.position(), qint64(0));
QCOMPARE(player.volume(), 0);
QCOMPARE(player.isMuted(), false);
- QCOMPARE(player.isVideoAvailable(), false);
- QCOMPARE(player.bufferStatus(), 0);
+ QCOMPARE(player.hasVideo(), false);
+ QCOMPARE(player.bufferProgress(), 0);
QCOMPARE(player.isSeekable(), false);
QCOMPARE(player.playbackRate(), qreal(0));
QCOMPARE(player.error(), QMediaPlayer::ServiceMissingError);
@@ -259,28 +259,28 @@ void tst_QMediaPlayer::testNullService()
QFile file;
bool changed = !mediaContent.isEmpty();
- player.setMedia(mediaContent, &file);
- QCOMPARE(player.media(), mediaContent);
- QCOMPARE(player.mediaStream(), nullDevice);
+ player.setSource(mediaContent, &file);
+ QCOMPARE(player.source(), mediaContent);
+ QCOMPARE(player.sourceStream(), nullDevice);
QCOMPARE(spy.count(), changed ? 1 : 0);
} {
QSignalSpy stateSpy(&player, SIGNAL(stateChanged(QMediaPlayer::State)));
QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
player.play();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
QCOMPARE(stateSpy.count(), 0);
QCOMPARE(statusSpy.count(), 0);
player.pause();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
QCOMPARE(stateSpy.count(), 0);
QCOMPARE(statusSpy.count(), 0);
player.stop();
- QCOMPARE(player.state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player.playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(player.mediaStatus(), QMediaPlayer::UnknownMediaStatus);
QCOMPARE(stateSpy.count(), 0);
QCOMPARE(statusSpy.count(), 0);
@@ -339,12 +339,12 @@ void tst_QMediaPlayer::testMedia()
QFETCH(QUrl, mediaContent);
mockPlayer->setMedia(mediaContent);
- QCOMPARE(player->media(), mediaContent);
+ QCOMPARE(player->source(), mediaContent);
QBuffer stream;
- player->setMedia(mediaContent, &stream);
- QCOMPARE(player->media(), mediaContent);
- QCOMPARE((QBuffer*)player->mediaStream(), &stream);
+ player->setSource(mediaContent, &stream);
+ QCOMPARE(player->source(), mediaContent);
+ QCOMPARE((QBuffer*)player->sourceStream(), &stream);
}
void tst_QMediaPlayer::testDuration_data()
@@ -484,7 +484,7 @@ void tst_QMediaPlayer::testVideoAvailable()
QFETCH(bool, videoAvailable);
mockPlayer->setVideoAvailable(videoAvailable);
- QVERIFY(player->isVideoAvailable() == videoAvailable);
+ QVERIFY(player->hasVideo() == videoAvailable);
}
void tst_QMediaPlayer::testBufferStatus_data()
@@ -494,10 +494,10 @@ void tst_QMediaPlayer::testBufferStatus_data()
void tst_QMediaPlayer::testBufferStatus()
{
- QFETCH(int, bufferStatus);
+ QFETCH(int, bufferProgress);
- mockPlayer->setBufferStatus(bufferStatus);
- QVERIFY(player->bufferStatus() == bufferStatus);
+ mockPlayer->setBufferStatus(bufferProgress);
+ QVERIFY(player->bufferProgress() == bufferProgress);
}
void tst_QMediaPlayer::testSeekable_data()
@@ -588,24 +588,24 @@ void tst_QMediaPlayer::testPlay()
{
QFETCH(bool, valid);
QFETCH(QUrl, mediaContent);
- QFETCH(QMediaPlayer::State, state);
+ QFETCH(QMediaPlayer::PlaybackState, state);
mockPlayer->setIsValid(valid);
mockPlayer->setState(state);
- player->setMedia(mediaContent);
- QVERIFY(player->state() == state);
- QVERIFY(player->media() == mediaContent);
+ player->setSource(mediaContent);
+ QVERIFY(player->playbackState() == state);
+ QVERIFY(player->source() == mediaContent);
QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
player->play();
if (!valid || mediaContent.isEmpty()) {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player->playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(spy.count(), 0);
}
else {
- QCOMPARE(player->state(), QMediaPlayer::PlayingState);
+ QCOMPARE(player->playbackState(), QMediaPlayer::PlayingState);
QCOMPARE(spy.count(), state == QMediaPlayer::PlayingState ? 0 : 1);
}
}
@@ -619,24 +619,24 @@ void tst_QMediaPlayer::testPause()
{
QFETCH(bool, valid);
QFETCH(QUrl, mediaContent);
- QFETCH(QMediaPlayer::State, state);
+ QFETCH(QMediaPlayer::PlaybackState, state);
mockPlayer->setIsValid(valid);
mockPlayer->setState(state);
mockPlayer->setMedia(mediaContent);
- QVERIFY(player->state() == state);
- QVERIFY(player->media() == mediaContent);
+ QVERIFY(player->playbackState() == state);
+ QVERIFY(player->source() == mediaContent);
QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
player->pause();
if (!valid || mediaContent.isEmpty()) {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player->playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(spy.count(), 0);
}
else {
- QCOMPARE(player->state(), QMediaPlayer::PausedState);
+ QCOMPARE(player->playbackState(), QMediaPlayer::PausedState);
QCOMPARE(spy.count(), state == QMediaPlayer::PausedState ? 0 : 1);
}
}
@@ -649,23 +649,23 @@ void tst_QMediaPlayer::testStop_data()
void tst_QMediaPlayer::testStop()
{
QFETCH(QUrl, mediaContent);
- QFETCH(QMediaPlayer::State, state);
+ QFETCH(QMediaPlayer::PlaybackState, state);
mockPlayer->setState(state);
mockPlayer->setMedia(mediaContent);
- QVERIFY(player->state() == state);
- QVERIFY(player->media() == mediaContent);
+ QVERIFY(player->playbackState() == state);
+ QVERIFY(player->source() == mediaContent);
QSignalSpy spy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
player->stop();
if (mediaContent.isEmpty() || state == QMediaPlayer::StoppedState) {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player->playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(spy.count(), 0);
}
else {
- QCOMPARE(player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(player->playbackState(), QMediaPlayer::StoppedState);
QCOMPARE(spy.count(), 1);
}
}
@@ -677,18 +677,18 @@ void tst_QMediaPlayer::testMediaStatus_data()
void tst_QMediaPlayer::testMediaStatus()
{
- QFETCH(int, bufferStatus);
+ QFETCH(int, bufferProgress);
int bufferSignals = 0;
mockPlayer->setMediaStatus(QMediaPlayer::NoMedia);
- mockPlayer->setBufferStatus(bufferStatus);
+ mockPlayer->setBufferStatus(bufferProgress);
AutoConnection connection(
- player, SIGNAL(bufferStatusChanged(int)),
+ player, SIGNAL(bufferProgressChanged(float)),
&QTestEventLoop::instance(), SLOT(exitLoop()));
QSignalSpy statusSpy(player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
- QSignalSpy bufferSpy(player, SIGNAL(bufferStatusChanged(int)));
+ QSignalSpy bufferSpy(player, SIGNAL(bufferProgressChanged(float)));
QCOMPARE(player->mediaStatus(), QMediaPlayer::NoMedia);
@@ -706,7 +706,7 @@ void tst_QMediaPlayer::testMediaStatus()
QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
QMediaPlayer::LoadedMedia);
- // Verify the bufferStatusChanged() signal isn't being emitted.
+ // Verify the bufferProgressChanged() signal isn't being emitted.
QTestEventLoop::instance().enterLoop(1);
QCOMPARE(bufferSpy.count(), 0);
@@ -717,10 +717,10 @@ void tst_QMediaPlayer::testMediaStatus()
QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
QMediaPlayer::StalledMedia);
- // Verify the bufferStatusChanged() signal is being emitted.
+ // Verify the bufferProgressChanged() signal is being emitted.
QTestEventLoop::instance().enterLoop(1);
QVERIFY(bufferSpy.count() > bufferSignals);
- QCOMPARE(bufferSpy.last().value(0).toInt(), bufferStatus);
+ QCOMPARE(bufferSpy.last().value(0).toInt(), bufferProgress);
bufferSignals = bufferSpy.count();
mockPlayer->setMediaStatus(QMediaPlayer::BufferingMedia);
@@ -730,10 +730,10 @@ void tst_QMediaPlayer::testMediaStatus()
QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
QMediaPlayer::BufferingMedia);
- // Verify the bufferStatusChanged() signal is being emitted.
+ // Verify the bufferProgressChanged() signal is being emitted.
QTestEventLoop::instance().enterLoop(1);
QVERIFY(bufferSpy.count() > bufferSignals);
- QCOMPARE(bufferSpy.last().value(0).toInt(), bufferStatus);
+ QCOMPARE(bufferSpy.last().value(0).toInt(), bufferProgress);
bufferSignals = bufferSpy.count();
mockPlayer->setMediaStatus(QMediaPlayer::BufferedMedia);
@@ -743,7 +743,7 @@ void tst_QMediaPlayer::testMediaStatus()
QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)),
QMediaPlayer::BufferedMedia);
- // Verify the bufferStatusChanged() signal isn't being emitted.
+ // Verify the bufferProgressChanged() signal isn't being emitted.
QTestEventLoop::instance().enterLoop(1);
QCOMPARE(bufferSpy.count(), bufferSignals);
@@ -866,13 +866,13 @@ void tst_QMediaPlayer::testQrc()
QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
QSignalSpy errorSpy(&player, SIGNAL(error(QMediaPlayer::Error)));
- player.setMedia(mediaContent);
+ player.setSource(mediaContent);
QTRY_COMPARE(player.mediaStatus(), status);
QCOMPARE(statusSpy.count(), 1);
QCOMPARE(qvariant_cast<QMediaPlayer::MediaStatus>(statusSpy.last().value(0)), status);
- QCOMPARE(player.media(), mediaContent);
+ QCOMPARE(player.source(), mediaContent);
QCOMPARE(mediaSpy.count(), 1);
QCOMPARE(qvariant_cast<QUrl>(mediaSpy.last().value(0)), mediaContent);
diff --git a/tests/auto/unit/qml/qdeclarativevideo/tst_qdeclarativevideo.cpp b/tests/auto/unit/qml/qdeclarativevideo/tst_qdeclarativevideo.cpp
index f2c5a92b7..7ea4179eb 100644
--- a/tests/auto/unit/qml/qdeclarativevideo/tst_qdeclarativevideo.cpp
+++ b/tests/auto/unit/qml/qdeclarativevideo/tst_qdeclarativevideo.cpp
@@ -80,7 +80,7 @@ public:
, m_position(0)
, m_playbackRate(1.0)
, m_volume(50)
- , m_bufferStatus(0)
+ , m_bufferProgress(0)
, m_muted(false)
, m_audioAvailable(false)
, m_videoAvailable(false)
@@ -115,8 +115,8 @@ public:
bool isMuted() const { return m_muted; }
void setMuted(bool muted) { emit mutedChanged(m_muted = muted); }
- int bufferStatus() const { return m_bufferStatus; }
- void setBufferStatus(int status) { emit bufferStatusChanged(m_bufferStatus = status); }
+ float bufferProgress() const { return m_bufferProgress/100.; }
+ void setBufferStatus(int status) { emit bufferProgressChanged(m_bufferProgress = status); }
bool isAudioAvailable() const { return m_audioAvailable; }
void setAudioAvailable(bool available) {
@@ -160,7 +160,7 @@ private:
qint64 m_position;
qreal m_playbackRate;
int m_volume;
- int m_bufferStatus;
+ int m_bufferProgress;
bool m_muted;
bool m_audioAvailable;
bool m_videoAvailable;