summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/multimediawidgets/player/player.cpp1
-rw-r--r--src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp21
-rw-r--r--src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h1
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp102
-rw-r--r--src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h2
-rw-r--r--src/multimedia/platform/qplatformmediaplayer.cpp3
-rw-r--r--src/multimedia/platform/qplatformmediaplayer_p.h3
-rw-r--r--src/multimedia/platform/windows/player/mfplayercontrol.cpp1
-rw-r--r--src/multimedia/platform/windows/player/mfplayersession.cpp12
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp25
-rw-r--r--src/multimedia/playback/qmediaplayer.h1
-rw-r--r--src/multimedia/playback/qmediaplayer_p.h2
-rw-r--r--tests/auto/unit/mockbackend/qmockmediaplayer.h20
-rw-r--r--tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp8
14 files changed, 48 insertions, 154 deletions
diff --git a/examples/multimediawidgets/player/player.cpp b/examples/multimediawidgets/player/player.cpp
index 0afa721a1..367211b2c 100644
--- a/examples/multimediawidgets/player/player.cpp
+++ b/examples/multimediawidgets/player/player.cpp
@@ -395,7 +395,6 @@ void Player::statusChanged(QMediaPlayer::MediaStatus status)
// handle status message
switch (status) {
- case QMediaPlayer::UnknownMediaStatus:
case QMediaPlayer::NoMedia:
case QMediaPlayer::LoadedMedia:
setStatusInfo(QString());
diff --git a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
index b080d9e8d..4794dd3e0 100644
--- a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
+++ b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol.cpp
@@ -79,7 +79,6 @@ QAndroidMediaPlayerControl::QAndroidMediaPlayerControl(QMediaPlayer *parent)
: QPlatformMediaPlayer(parent),
mMediaPlayer(new AndroidMediaPlayer),
mCurrentState(QMediaPlayer::StoppedState),
- mCurrentMediaStatus(QMediaPlayer::NoMedia),
mMediaStream(0),
mVideoOutput(0),
mSeekable(true),
@@ -126,11 +125,6 @@ QMediaPlayer::PlaybackState QAndroidMediaPlayerControl::state() const
return mCurrentState;
}
-QMediaPlayer::MediaStatus QAndroidMediaPlayerControl::mediaStatus() const
-{
- return mCurrentMediaStatus;
-}
-
qint64 QAndroidMediaPlayerControl::duration() const
{
if ((mState & (AndroidMediaPlayer::Prepared
@@ -146,7 +140,7 @@ qint64 QAndroidMediaPlayerControl::duration() const
qint64 QAndroidMediaPlayerControl::position() const
{
- if (mCurrentMediaStatus == QMediaPlayer::EndOfMedia)
+ if (mediaStatus() == QMediaPlayer::EndOfMedia)
return duration();
if ((mState & (AndroidMediaPlayer::Prepared
@@ -171,7 +165,7 @@ void QAndroidMediaPlayerControl::setPosition(qint64 position)
StateChangeNotifier notifier(this);
- if (mCurrentMediaStatus == QMediaPlayer::EndOfMedia)
+ if (mediaStatus() == QMediaPlayer::EndOfMedia)
setMediaStatus(QMediaPlayer::LoadedMedia);
if ((mState & (AndroidMediaPlayer::Prepared
@@ -654,7 +648,7 @@ void QAndroidMediaPlayerControl::onStateChanged(qint32 state)
break;
case AndroidMediaPlayer::Error:
setState(QMediaPlayer::StoppedState);
- setMediaStatus(QMediaPlayer::UnknownMediaStatus);
+ setMediaStatus(QMediaPlayer::InvalidMedia);
mMediaPlayer->release();
Q_EMIT positionChanged(0);
break;
@@ -717,10 +711,7 @@ void QAndroidMediaPlayerControl::setState(QMediaPlayer::PlaybackState state)
void QAndroidMediaPlayerControl::setMediaStatus(QMediaPlayer::MediaStatus status)
{
- if (mCurrentMediaStatus == status)
- return;
-
- mCurrentMediaStatus = status;
+ mediaStatusChanged(status);
if (status == QMediaPlayer::NoMedia || status == QMediaPlayer::InvalidMedia)
Q_EMIT durationChanged(0);
@@ -805,8 +796,8 @@ void QAndroidMediaPlayerControl::flushPendingStates()
void QAndroidMediaPlayerControl::updateBufferStatus()
{
- bool bufferFilled = (mCurrentMediaStatus == QMediaPlayer::BufferedMedia
- || mCurrentMediaStatus == QMediaPlayer::BufferingMedia);
+ auto status = mediaStatus();
+ bool bufferFilled = (status == QMediaPlayer::BufferedMedia || status == QMediaPlayer::BufferingMedia);
if (mBufferFilled != bufferFilled) {
mBufferFilled = bufferFilled;
diff --git a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
index 6c544501f..b194cc7fd 100644
--- a/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
+++ b/src/multimedia/platform/android/mediaplayer/qandroidmediaplayercontrol_p.h
@@ -113,7 +113,6 @@ private:
AndroidMediaPlayer *mMediaPlayer;
QAndroidMediaPlayerVideoRendererControl *mVideoRendererControl = nullptr;
QMediaPlayer::PlaybackState mCurrentState;
- QMediaPlayer::MediaStatus mCurrentMediaStatus;
QUrl mMediaContent;
QIODevice *mMediaStream;
QAndroidVideoOutput *mVideoOutput;
diff --git a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp
index 34bd2f8db..410e8d493 100644
--- a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp
+++ b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer.cpp
@@ -107,7 +107,7 @@ QGstreamerMediaPlayer::~QGstreamerMediaPlayer()
qint64 QGstreamerMediaPlayer::position() const
{
- if (playerPipeline.isNull())
+ if (playerPipeline.isNull() || m_url.isEmpty())
return 0;
return playerPipeline.position()/1e6;
@@ -123,11 +123,6 @@ QMediaPlayer::PlaybackState QGstreamerMediaPlayer::state() const
return m_state;
}
-QMediaPlayer::MediaStatus QGstreamerMediaPlayer::mediaStatus() const
-{
- return m_mediaStatus;
-}
-
float QGstreamerMediaPlayer::bufferProgress() const
{
return m_bufferProgress/100.;
@@ -180,6 +175,7 @@ void QGstreamerMediaPlayer::play()
qCDebug(qLcMediaPlayer) << "Unable to set the pipeline to the playing state.";
m_state = QMediaPlayer::PlayingState;
emit stateChanged(m_state);
+ mediaStatusChanged(QMediaPlayer::BufferedMedia);
}
void QGstreamerMediaPlayer::pause()
@@ -199,6 +195,7 @@ void QGstreamerMediaPlayer::stop()
playerPipeline.seek(0, m_playbackRate);
m_state = QMediaPlayer::StoppedState;
emit stateChanged(m_state);
+ mediaStatusChanged(QMediaPlayer::LoadedMedia);
}
void QGstreamerMediaPlayer::setVolume(int vol)
@@ -249,6 +246,7 @@ bool QGstreamerMediaPlayer::processBusMessage(const QGstreamerMessage &message)
int progress = 0;
gst_message_parse_buffering(gm, &progress);
m_bufferProgress = progress;
+ mediaStatusChanged(m_bufferProgress == 100 ? QMediaPlayer::BufferedMedia : QMediaPlayer::BufferingMedia);
emit bufferProgressChanged(m_bufferProgress/100.);
break;
}
@@ -302,6 +300,7 @@ bool QGstreamerMediaPlayer::processBusMessage(const QGstreamerMessage &message)
if (m_state != prevState)
emit stateChanged(m_state);
+ mediaStatusChanged(QMediaPlayer::LoadedMedia);
break;
}
@@ -320,6 +319,7 @@ bool QGstreamerMediaPlayer::processBusMessage(const QGstreamerMessage &message)
emit error(QMediaPlayer::FormatError, tr("Cannot play stream of type: <unknown>"));
else
emit error(QMediaPlayer::ResourceError, QString::fromUtf8(err->message));
+ mediaStatusChanged(QMediaPlayer::InvalidMedia);
g_error_free(err);
g_free(debug);
break;
@@ -365,84 +365,6 @@ bool QGstreamerMediaPlayer::processBusMessage(const QGstreamerMessage &message)
break;
}
-#if 0
- } else if (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ERROR) {
- GError *err;
- gchar *debug;
- gst_message_parse_error(gm, &err, &debug);
- // If the source has given up, so do we.
- if (qstrcmp(GST_OBJECT_NAME(GST_MESSAGE_SRC(gm)), "source") == 0) {
- bool everPlayed = m_everPlayed;
- // Try and differentiate network related resource errors from the others
- if (!m_request.url().isRelative() && m_request.url().scheme().compare(QLatin1String("file"), Qt::CaseInsensitive) != 0 ) {
- if (everPlayed ||
- (err->domain == GST_RESOURCE_ERROR && (
- err->code == GST_RESOURCE_ERROR_BUSY ||
- err->code == GST_RESOURCE_ERROR_OPEN_READ ||
- err->code == GST_RESOURCE_ERROR_READ ||
- err->code == GST_RESOURCE_ERROR_SEEK ||
- err->code == GST_RESOURCE_ERROR_SYNC))) {
- processInvalidMedia(QMediaPlayer::NetworkError, QString::fromUtf8(err->message));
- } else {
- processInvalidMedia(QMediaPlayer::ResourceError, QString::fromUtf8(err->message));
- }
- }
- else
- processInvalidMedia(QMediaPlayer::ResourceError, QString::fromUtf8(err->message));
- } else if (err->domain == GST_STREAM_ERROR
- && (err->code == GST_STREAM_ERROR_DECRYPT || err->code == GST_STREAM_ERROR_DECRYPT_NOKEY)) {
- processInvalidMedia(QMediaPlayer::AccessDeniedError, QString::fromUtf8(err->message));
- } else {
- handlePlaybin2 = true;
- }
- if (!handlePlaybin2)
- qWarning() << "Error:" << QString::fromUtf8(err->message);
- g_error_free(err);
- g_free(debug);
- } else if (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ELEMENT
- && qstrcmp(GST_OBJECT_NAME(GST_MESSAGE_SRC(gm)), "source") == 0
- && m_sourceType == UDPSrc
- && gst_structure_has_name(gst_message_get_structure(gm), "GstUDPSrcTimeout")) {
- //since udpsrc will not generate an error for the timeout event,
- //we need to process its element message here and treat it as an error.
- processInvalidMedia(m_everPlayed ? QMediaPlayer::NetworkError : QMediaPlayer::ResourceError,
- tr("UDP source timeout"));
- } else {
- handlePlaybin2 = true;
- }
- if (handlePlaybin2) {
- if (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_WARNING) {
- GError *err;
- gchar *debug;
- gst_message_parse_warning(gm, &err, &debug);
- if (err->domain == GST_STREAM_ERROR && err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND)
- emit error(int(QMediaPlayer::FormatError), tr("Cannot play stream of type: <unknown>"));
- // GStreamer shows warning for HTTP playlists
- if (err && err->message)
- qWarning() << "Warning:" << QString::fromUtf8(err->message);
- g_error_free(err);
- g_free(debug);
- } else if (GST_MESSAGE_TYPE(gm) == GST_MESSAGE_ERROR) {
- GError *err;
- gchar *debug;
- gst_message_parse_error(gm, &err, &debug);
-
- // Nearly all errors map to ResourceError
- QMediaPlayer::Error qerror = QMediaPlayer::ResourceError;
- if (err->domain == GST_STREAM_ERROR
- && (err->code == GST_STREAM_ERROR_DECRYPT
- || err->code == GST_STREAM_ERROR_DECRYPT_NOKEY)) {
- qerror = QMediaPlayer::AccessDeniedError;
- }
- processInvalidMedia(qerror, QString::fromUtf8(err->message));
- if (err && err->message)
- qWarning() << "Error:" << QString::fromUtf8(err->message);
-
- g_error_free(err);
- g_free(debug);
- }
- }
-#endif
return false;
}
@@ -571,6 +493,7 @@ void QGstreamerMediaPlayer::setMedia(const QUrl &content, QIODevice *stream)
m_url = content;
m_stream = stream;
m_metaData.clear();
+ m_duration = 0;
if (!src.isNull())
playerPipeline.remove(src);
@@ -579,6 +502,17 @@ void QGstreamerMediaPlayer::setMedia(const QUrl &content, QIODevice *stream)
src = QGstElement();
decoder = QGstElement();
+ if (content.isEmpty()) {
+ if (m_state != QMediaPlayer::StoppedState) {
+ m_state = QMediaPlayer::StoppedState;
+ stateChanged(m_state);
+ }
+ mediaStatusChanged(QMediaPlayer::NoMedia);
+ return;
+ }
+
+ mediaStatusChanged(QMediaPlayer::LoadingMedia);
+
if (m_stream) {
if (!m_appSrc)
m_appSrc = new QGstAppSrc(this);
diff --git a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h
index 6bdce0cf2..7328003d6 100644
--- a/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h
+++ b/src/multimedia/platform/gstreamer/common/qgstreamermediaplayer_p.h
@@ -77,7 +77,6 @@ public:
~QGstreamerMediaPlayer();
QMediaPlayer::PlaybackState state() const override;
- QMediaPlayer::MediaStatus mediaStatus() const override;
qint64 position() const override;
qint64 duration() const override;
@@ -140,7 +139,6 @@ private:
QList<QGstPad> m_streams[3];
QMediaPlayer::PlaybackState m_state = QMediaPlayer::StoppedState;
- QMediaPlayer::MediaStatus m_mediaStatus = QMediaPlayer::NoMedia;
int m_bufferProgress = -1;
QUrl m_url;
diff --git a/src/multimedia/platform/qplatformmediaplayer.cpp b/src/multimedia/platform/qplatformmediaplayer.cpp
index 303cd47dc..ba3b1d66f 100644
--- a/src/multimedia/platform/qplatformmediaplayer.cpp
+++ b/src/multimedia/platform/qplatformmediaplayer.cpp
@@ -108,6 +108,9 @@ void QPlatformMediaPlayer::stateChanged(QMediaPlayer::PlaybackState newState)
*/
void QPlatformMediaPlayer::mediaStatusChanged(QMediaPlayer::MediaStatus status)
{
+ if (m_status == status)
+ return;
+ m_status = status;
player->d_func()->setStatus(status);
}
diff --git a/src/multimedia/platform/qplatformmediaplayer_p.h b/src/multimedia/platform/qplatformmediaplayer_p.h
index e5abd6565..b35b1cca6 100644
--- a/src/multimedia/platform/qplatformmediaplayer_p.h
+++ b/src/multimedia/platform/qplatformmediaplayer_p.h
@@ -68,7 +68,7 @@ public:
virtual ~QPlatformMediaPlayer();
virtual QMediaPlayer::PlaybackState state() const = 0;
- virtual QMediaPlayer::MediaStatus mediaStatus() const = 0;
+ virtual QMediaPlayer::MediaStatus mediaStatus() const { return m_status; };
virtual qint64 duration() const = 0;
@@ -144,6 +144,7 @@ protected:
{}
private:
QMediaPlayer *player = nullptr;
+ QMediaPlayer::MediaStatus m_status = QMediaPlayer::NoMedia;
};
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/windows/player/mfplayercontrol.cpp b/src/multimedia/platform/windows/player/mfplayercontrol.cpp
index f09da5cc0..df481715f 100644
--- a/src/multimedia/platform/windows/player/mfplayercontrol.cpp
+++ b/src/multimedia/platform/windows/player/mfplayercontrol.cpp
@@ -85,7 +85,6 @@ void MFPlayerControl::play()
m_session->load(m_media, m_stream);
switch (m_session->status()) {
- case QMediaPlayer::UnknownMediaStatus:
case QMediaPlayer::NoMedia:
case QMediaPlayer::InvalidMedia:
return;
diff --git a/src/multimedia/platform/windows/player/mfplayersession.cpp b/src/multimedia/platform/windows/player/mfplayersession.cpp
index 7603ac4d2..99a893292 100644
--- a/src/multimedia/platform/windows/player/mfplayersession.cpp
+++ b/src/multimedia/platform/windows/player/mfplayersession.cpp
@@ -276,7 +276,7 @@ void MFPlayerSession::setupPlaybackTopology(IMFMediaSource *source, IMFPresentat
DWORD cSourceStreams = 0;
hr = sourcePD->GetStreamDescriptorCount(&cSourceStreams);
if (FAILED(hr)) {
- changeStatus(QMediaPlayer::UnknownMediaStatus);
+ changeStatus(QMediaPlayer::InvalidMedia);
emit error(QMediaPlayer::ResourceError, tr("Failed to get stream count."), true);
return;
}
@@ -284,7 +284,7 @@ void MFPlayerSession::setupPlaybackTopology(IMFMediaSource *source, IMFPresentat
IMFTopology *topology;
hr = MFCreateTopology(&topology);
if (FAILED(hr)) {
- changeStatus(QMediaPlayer::UnknownMediaStatus);
+ changeStatus(QMediaPlayer::InvalidMedia);
emit error(QMediaPlayer::ResourceError, tr("Failed to create topology."), true);
return;
}
@@ -363,7 +363,7 @@ void MFPlayerSession::setupPlaybackTopology(IMFMediaSource *source, IMFPresentat
hr = m_session->SetTopology(MFSESSION_SETTOPOLOGY_IMMEDIATE, topology);
if (FAILED(hr)) {
- changeStatus(QMediaPlayer::UnknownMediaStatus);
+ changeStatus(QMediaPlayer::InvalidMedia);
emit error(QMediaPlayer::ResourceError, tr("Failed to set topology."), true);
}
}
@@ -1048,14 +1048,14 @@ void MFPlayerSession::createSession()
Q_ASSERT(m_session == NULL);
HRESULT hr = MFCreateMediaSession(NULL, &m_session);
if (FAILED(hr)) {
- changeStatus(QMediaPlayer::UnknownMediaStatus);
+ changeStatus(QMediaPlayer::InvalidMedia);
emit error(QMediaPlayer::ResourceError, tr("Unable to create mediasession."), true);
}
hr = m_session->BeginGetEvent(this, m_session);
if (FAILED(hr)) {
- changeStatus(QMediaPlayer::UnknownMediaStatus);
+ changeStatus(QMediaPlayer::InvalidMedia);
emit error(QMediaPlayer::ResourceError, tr("Unable to pull session events."), false);
}
@@ -1528,7 +1528,7 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
changeStatus(QMediaPlayer::InvalidMedia);
break;
case MEError:
- changeStatus(QMediaPlayer::UnknownMediaStatus);
+ changeStatus(QMediaPlayer::InvalidMedia);
qWarning() << "handleSessionEvent: serious error = " << hrStatus;
emit error(QMediaPlayer::ResourceError, tr("Media session serious error."), true);
break;
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index 6fbd5c091..bd5933750 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -87,15 +87,7 @@ void QMediaPlayerPrivate::setStatus(QMediaPlayer::MediaStatus s)
{
Q_Q(QMediaPlayer);
- if (int(s) == ignoreNextStatusChange) {
- ignoreNextStatusChange = -1;
- return;
- }
-
- if (s != status) {
- status = s;
- emit q->mediaStatusChanged(s);
- }
+ emit q->mediaStatusChanged(s);
}
void QMediaPlayerPrivate::setError(int error, const QString &errorString)
@@ -125,14 +117,10 @@ void QMediaPlayerPrivate::setMedia(const QUrl &media, QIODevice *stream)
file.reset(new QFile(QLatin1Char(':') + media.path()));
if (!file->open(QFile::ReadOnly)) {
- setError(QMediaPlayer::ResourceError, QMediaPlayer::tr("Attempting to play invalid Qt resource"));
- setStatus(QMediaPlayer::InvalidMedia);
file.reset();
- // Ignore the next NoMedia status change, we just want to clear the current media
- // on the backend side since we can't load the new one and we want to be in the
- // InvalidMedia status.
- ignoreNextStatusChange = QMediaPlayer::NoMedia;
control->setMedia(QUrl(), nullptr);
+ control->mediaStatusChanged(QMediaPlayer::InvalidMedia);
+ control->error(QMediaPlayer::ResourceError, QMediaPlayer::tr("Attempting to play invalid Qt resource"));
} else if (control->streamPlaybackSupported()) {
control->setMedia(media, file.data());
@@ -211,7 +199,6 @@ QMediaPlayer::QMediaPlayer(QObject *parent)
Q_ASSERT(d->control);
d->state = d->control->state();
- d->status = d->control->mediaStatus();
}
@@ -259,7 +246,7 @@ QMediaPlayer::PlaybackState QMediaPlayer::playbackState() const
// In case if EndOfMedia status is already received
// but state is not.
if (d->control != nullptr
- && d->status == QMediaPlayer::EndOfMedia
+ && d->control->mediaStatus() == QMediaPlayer::EndOfMedia
&& d->state != d->control->state()) {
return d->control->state();
}
@@ -269,7 +256,8 @@ QMediaPlayer::PlaybackState QMediaPlayer::playbackState() const
QMediaPlayer::MediaStatus QMediaPlayer::mediaStatus() const
{
- return d_func()->status;
+ Q_D(const QMediaPlayer);
+ return d->control ? d->control->mediaStatus() : NoMedia;
}
qint64 QMediaPlayer::duration() const
@@ -740,7 +728,6 @@ bool QMediaPlayer::autoPlay() const
Defines the status of a media player's current media.
- \value UnknownMediaStatus The status of the media cannot be determined.
\value NoMedia The is no current media. The player is in the StoppedState.
\value LoadingMedia The current media is being loaded. The player may be in any state.
\value LoadedMedia The current media has been loaded. The player is in the StoppedState.
diff --git a/src/multimedia/playback/qmediaplayer.h b/src/multimedia/playback/qmediaplayer.h
index f3564bfd4..03bae9595 100644
--- a/src/multimedia/playback/qmediaplayer.h
+++ b/src/multimedia/playback/qmediaplayer.h
@@ -87,7 +87,6 @@ public:
enum MediaStatus
{
- UnknownMediaStatus,
NoMedia,
LoadingMedia,
LoadedMedia,
diff --git a/src/multimedia/playback/qmediaplayer_p.h b/src/multimedia/playback/qmediaplayer_p.h
index ab12e236e..9c609de28 100644
--- a/src/multimedia/playback/qmediaplayer_p.h
+++ b/src/multimedia/playback/qmediaplayer_p.h
@@ -83,9 +83,7 @@ public:
QIODevice *stream = nullptr;
QMediaPlayer::PlaybackState state = QMediaPlayer::StoppedState;
- QMediaPlayer::MediaStatus status = QMediaPlayer::UnknownMediaStatus;
QMediaPlayer::Error error = QMediaPlayer::NoError;
- int ignoreNextStatusChange = -1;
bool autoPlay = false;
QAudio::Role audioRole = QAudio::UnknownRole;
diff --git a/tests/auto/unit/mockbackend/qmockmediaplayer.h b/tests/auto/unit/mockbackend/qmockmediaplayer.h
index 30dbbbcc8..b07210846 100644
--- a/tests/auto/unit/mockbackend/qmockmediaplayer.h
+++ b/tests/auto/unit/mockbackend/qmockmediaplayer.h
@@ -40,7 +40,6 @@ public:
QMockMediaPlayer(QMediaPlayer *parent)
: QPlatformMediaPlayer(parent)
, _state(QMediaPlayer::StoppedState)
- , _mediaStatus(QMediaPlayer::NoMedia)
, _error(QMediaPlayer::NoError)
, _duration(0)
, _position(0)
@@ -61,17 +60,11 @@ public:
QMediaPlayer::PlaybackState state() const { return _state; }
void updateState(QMediaPlayer::PlaybackState state) { setState(state); }
- QMediaPlayer::MediaStatus mediaStatus() const { return _mediaStatus; }
- void updateMediaStatus(QMediaPlayer::MediaStatus status)
- {
- emit mediaStatusChanged(_mediaStatus = status);
- }
void updateMediaStatus(QMediaPlayer::MediaStatus status, QMediaPlayer::PlaybackState state)
{
- _mediaStatus = status;
_state = state;
- emit mediaStatusChanged(_mediaStatus);
+ mediaStatusChanged(status);
stateChanged(_state);
}
@@ -114,9 +107,8 @@ public:
{
_stream = stream;
_media = content;
- _mediaStatus = _media.isEmpty() ? QMediaPlayer::NoMedia : QMediaPlayer::LoadingMedia;
setState(QMediaPlayer::StoppedState);
- emit mediaStatusChanged(_mediaStatus);
+ mediaStatusChanged(_media.isEmpty() ? QMediaPlayer::NoMedia : QMediaPlayer::LoadingMedia);
}
QIODevice *mediaStream() const { return _stream; }
@@ -159,15 +151,11 @@ public:
void setState(QMediaPlayer::PlaybackState state, QMediaPlayer::MediaStatus status)
{
_state = state;
- _mediaStatus = status;
- emit mediaStatusChanged(status);
+ mediaStatusChanged(status);
stateChanged(state);
}
void setMediaStatus(QMediaPlayer::MediaStatus status)
{
- if (_mediaStatus == status)
- return;
- _mediaStatus = status;
if (status == QMediaPlayer::StalledMedia || status == QMediaPlayer::BufferingMedia)
bufferProgressChanged(_bufferProgress);
mediaStatusChanged(status);
@@ -181,7 +169,6 @@ public:
void reset()
{
_state = QMediaPlayer::StoppedState;
- _mediaStatus = QMediaPlayer::UnknownMediaStatus;
_error = QMediaPlayer::NoError;
_duration = 0;
_position = 0;
@@ -203,7 +190,6 @@ public:
QAudio::Role m_audioRole = QAudio::UnknownRole;
QMediaPlayer::PlaybackState _state;
- QMediaPlayer::MediaStatus _mediaStatus;
QMediaPlayer::Error _error;
qint64 _duration;
qint64 _position;
diff --git a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
index d3b3b860a..0a069b664 100644
--- a/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
+++ b/tests/auto/unit/multimedia/qmediaplayer/tst_qmediaplayer.cpp
@@ -177,13 +177,13 @@ void tst_QMediaPlayer::setupCommonTestData()
QTest::addColumn<QMediaPlayer::Error>("error");
QTest::addColumn<QString>("errorString");
- QTest::newRow("invalid") << false << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
+ QTest::newRow("invalid") << false << QMediaPlayer::StoppedState << QMediaPlayer::InvalidMedia <<
QUrl() << qint64(0) << qint64(0) << false << 0 << false << false << 0 <<
qreal(0) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+null") << true << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
+ QTest::newRow("valid+null") << true << QMediaPlayer::StoppedState << QMediaPlayer::InvalidMedia <<
QUrl() << qint64(0) << qint64(0) << false << 0 << false << false << 50 <<
qreal(0) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+content+stopped") << true << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
+ QTest::newRow("valid+content+stopped") << true << QMediaPlayer::StoppedState << QMediaPlayer::InvalidMedia <<
QUrl(QUrl("file:///some.mp3")) << qint64(0) << qint64(0) << false << 50 << false << false << 0 <<
qreal(1) << QMediaPlayer::NoError << QString();
QTest::newRow("valid+content+playing") << true << QMediaPlayer::PlayingState << QMediaPlayer::LoadedMedia <<
@@ -195,7 +195,7 @@ void tst_QMediaPlayer::setupCommonTestData()
QTest::newRow("valud+streaming") << true << QMediaPlayer::PlayingState << QMediaPlayer::LoadedMedia <<
QUrl(QUrl("http://example.com/stream")) << qint64(10000) << qint64(10000) << false << 50 << false << true << 0 <<
qreal(1) << QMediaPlayer::NoError << QString();
- QTest::newRow("valid+error") << true << QMediaPlayer::StoppedState << QMediaPlayer::UnknownMediaStatus <<
+ QTest::newRow("valid+error") << true << QMediaPlayer::StoppedState << QMediaPlayer::InvalidMedia <<
QUrl(QUrl("http://example.com/stream")) << qint64(0) << qint64(0) << false << 50 << false << false << 0 <<
qreal(0) << QMediaPlayer::ResourceError << QString("Resource unavailable");
}