diff options
15 files changed, 43 insertions, 35 deletions
diff --git a/examples/multimediawidgets/player/playlistmodel.cpp b/examples/multimediawidgets/player/playlistmodel.cpp index e5246bc37..718c24d2d 100644 --- a/examples/multimediawidgets/player/playlistmodel.cpp +++ b/examples/multimediawidgets/player/playlistmodel.cpp @@ -94,7 +94,7 @@ QVariant PlaylistModel::data(const QModelIndex &index, int role) const if (index.isValid() && role == Qt::DisplayRole) { QVariant value = m_data[index]; if (!value.isValid() && index.column() == Title) { - QUrl location = m_playlist->media(index.row()).canonicalUrl(); + QUrl location = m_playlist->media(index.row()).request().url(); return QFileInfo(location.path()).fileName(); } diff --git a/src/gsttools/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp index 73f43f0b9..03350a432 100644 --- a/src/gsttools/qgstreamerplayercontrol.cpp +++ b/src/gsttools/qgstreamerplayercontrol.cpp @@ -377,14 +377,10 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice * m_currentResource = content; m_stream = stream; - QNetworkRequest request; + QNetworkRequest request = content.request(); - if (m_stream) { + if (m_stream) userStreamValid = stream->isOpen() && m_stream->isReadable(); - request = content.canonicalRequest(); - } else if (!content.isNull()) { - request = content.canonicalRequest(); - } #if !QT_CONFIG(gstreamer_app) m_session->loadFromUri(request); diff --git a/src/imports/multimedia/qdeclarativeplaylist.cpp b/src/imports/multimedia/qdeclarativeplaylist.cpp index b768f99e3..400e23467 100644 --- a/src/imports/multimedia/qdeclarativeplaylist.cpp +++ b/src/imports/multimedia/qdeclarativeplaylist.cpp @@ -232,7 +232,7 @@ void QDeclarativePlaylist::setPlaybackMode(PlaybackMode mode) */ QUrl QDeclarativePlaylist::currentItemSource() const { - return m_playlist->currentMedia().canonicalUrl(); + return m_playlist->currentMedia().request().url(); } /*! @@ -316,7 +316,7 @@ QString QDeclarativePlaylist::errorString() const */ QUrl QDeclarativePlaylist::itemSource(int index) { - return m_playlist->media(index).canonicalUrl(); + return m_playlist->media(index).request().url(); } /*! @@ -548,7 +548,7 @@ QVariant QDeclarativePlaylist::data(const QModelIndex &index, int role) const if (!index.isValid()) return QVariant(); - return m_playlist->media(index.row()).canonicalUrl(); + return m_playlist->media(index.row()).request().url(); } QHash<int, QByteArray> QDeclarativePlaylist::roleNames() const diff --git a/src/multimedia/playback/qmediacontent.cpp b/src/multimedia/playback/qmediacontent.cpp index 95116d02f..f61511f1c 100644 --- a/src/multimedia/playback/qmediacontent.cpp +++ b/src/multimedia/playback/qmediacontent.cpp @@ -123,8 +123,7 @@ private: which provides the URL of the content. A non-null QMediaContent will always have a reference to - the content available through the canonicalUrl() or canonicalRequest() - methods. + the content available through the request() method. Alternatively QMediaContent can represent a playlist and contain a pointer to a valid QMediaPlaylist object. In this case URL is optional and can either be empty @@ -258,25 +257,34 @@ bool QMediaContent::isNull() const return d.constData() == nullptr; } +QNetworkRequest QMediaContent::request() const +{ + return (d && !d->requests.isEmpty()) ? d->requests.first() : QNetworkRequest(); +} + +#if QT_DEPRECATED_SINCE(6, 0) /*! + \obsolete + Returns a QUrl that represents that canonical resource for this media content. */ QUrl QMediaContent::canonicalUrl() const { - return canonicalRequest().url(); + return request().url(); } /*! + \obsolete + Returns a QNetworkRequest that represents that canonical resource for this media content. */ QNetworkRequest QMediaContent::canonicalRequest() const { - return (d && !d->requests.isEmpty()) ? d->requests.first() : QNetworkRequest(); + return request(); } -#if QT_DEPRECATED_SINCE(6, 0) /*! \obsolete diff --git a/src/multimedia/playback/qmediacontent.h b/src/multimedia/playback/qmediacontent.h index 5193a1fcc..244715b41 100644 --- a/src/multimedia/playback/qmediacontent.h +++ b/src/multimedia/playback/qmediacontent.h @@ -72,10 +72,11 @@ public: bool operator!=(const QMediaContent &other) const; bool isNull() const; + QNetworkRequest request() const; - QUrl canonicalUrl() const; - QNetworkRequest canonicalRequest() const; #if QT_DEPRECATED_SINCE(6, 0) + QT_DEPRECATED_X("Use QMediaContent::request().url()") QUrl canonicalUrl() const; + QT_DEPRECATED_X("Use QMediaContent::request()") QNetworkRequest canonicalRequest() const; QT_DEPRECATED QMediaResource canonicalResource() const; QT_DEPRECATED QMediaResourceList resources() const; #endif diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 81d525ea8..6ff3fc7df 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -183,7 +183,7 @@ bool QMediaPlayerPrivate::isInChain(const QUrl &url) // Check whether a URL is already in the chain of playlists. // Also see a comment in parentPlaylist(). for (QMediaPlaylist *current = rootMedia.playlist(); current && current != playlist; current = current->currentMedia().playlist()) - if (current->currentMedia().canonicalUrl() == url) { + if (current->currentMedia().request().url() == url) { return true; } return false; @@ -345,10 +345,10 @@ void QMediaPlayerPrivate::setMedia(const QMediaContent &media, QIODevice *stream // Backends can't play qrc files directly. // If the backend supports StreamPlayback, we pass a QFile for that resource. // If it doesn't, we copy the data to a temporary file and pass its path. - if (!media.isNull() && !stream && media.canonicalUrl().scheme() == QLatin1String("qrc")) { + if (!media.isNull() && !stream && media.request().url().scheme() == QLatin1String("qrc")) { qrcMedia = media; - file.reset(new QFile(QLatin1Char(':') + media.canonicalUrl().path())); + file.reset(new QFile(QLatin1Char(':') + media.request().url().path())); if (!file->open(QFile::ReadOnly)) { QMetaObject::invokeMethod(q, "_q_error", Qt::QueuedConnection, Q_ARG(int, QMediaPlayer::ResourceError), @@ -464,11 +464,14 @@ void QMediaPlayerPrivate::loadPlaylist() // Do not load a playlist if there are more than MAX_NESTED_PLAYLISTS in the chain already, // or if the playlist URL is already in the chain, i.e. do not allow recursive playlists and loops. - if (nestedPlaylists < MAX_NESTED_PLAYLISTS && !q->currentMedia().canonicalUrl().isEmpty() && !isInChain(q->currentMedia().canonicalUrl())) { - pendingPlaylist = QMediaContent(new QMediaPlaylist, q->currentMedia().canonicalUrl(), true); + if (nestedPlaylists < MAX_NESTED_PLAYLISTS + && !q->currentMedia().request().url().isEmpty() + && !isInChain(q->currentMedia().request().url())) + { + pendingPlaylist = QMediaContent(new QMediaPlaylist, q->currentMedia().request().url(), true); QObject::connect(pendingPlaylist.playlist(), SIGNAL(loaded()), q, SLOT(_q_handlePlaylistLoaded())); QObject::connect(pendingPlaylist.playlist(), SIGNAL(loadFailed()), q, SLOT(_q_handlePlaylistLoadFailed())); - pendingPlaylist.playlist()->load(pendingPlaylist.canonicalRequest()); + pendingPlaylist.playlist()->load(pendingPlaylist.request()); } else if (playlist) { playlist->next(); } diff --git a/src/multimedia/playback/qplaylistfileparser.cpp b/src/multimedia/playback/qplaylistfileparser.cpp index 92e7f97e8..9af447032 100644 --- a/src/multimedia/playback/qplaylistfileparser.cpp +++ b/src/multimedia/playback/qplaylistfileparser.cpp @@ -504,7 +504,7 @@ void QPlaylistFileParser::start(const QMediaContent &media, QIODevice *stream, c if (stream) start(stream, mimeType); else - start(media.canonicalRequest(), mimeType); + start(media.request(), mimeType); } void QPlaylistFileParser::start(QIODevice *stream, const QString &mimeType) diff --git a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp index 13a8cdbbb..82250b654 100644 --- a/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp +++ b/src/plugins/android/src/mediaplayer/qandroidmediaplayercontrol.cpp @@ -384,7 +384,7 @@ void QAndroidMediaPlayerControl::setMedia(const QMediaContent &mediaContent, if ((mMediaPlayer->display() == 0) && mVideoOutput) mMediaPlayer->setDisplay(mVideoOutput->surfaceTexture()); - mMediaPlayer->setDataSource(mediaContent.canonicalRequest()); + mMediaPlayer->setDataSource(mediaContent.request()); mMediaPlayer->prepareAsync(); } diff --git a/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp b/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp index 1185e63dc..ef86af896 100644 --- a/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp +++ b/src/plugins/android/src/mediaplayer/qandroidmetadatareadercontrol.cpp @@ -126,7 +126,7 @@ void QAndroidMetaDataReaderControl::onUpdateMetaData() if (m_mediaContent.isNull()) return; - const QUrl &url = m_mediaContent.canonicalUrl(); + const QUrl &url = m_mediaContent.request().url(); QtConcurrent::run(&extractMetadata, this, url); } @@ -134,7 +134,7 @@ void QAndroidMetaDataReaderControl::updateData(const QVariantMap &metadata, cons { const QMutexLocker l(&m_mtx); - if (m_mediaContent.canonicalUrl() != url) + if (m_mediaContent.request().url() != url) return; const bool oldAvailable = m_available; diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm index 2309221c2..3b3f47a43 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm @@ -491,7 +491,7 @@ const QIODevice *AVFMediaPlayerSession::mediaStream() const void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *stream) { #ifdef QT_DEBUG_AVF - qDebug() << Q_FUNC_INFO << content.canonicalUrl(); + qDebug() << Q_FUNC_INFO << content.request().url(); #endif [static_cast<AVFMediaPlayerSessionObserver*>(m_observer) unloadMedia]; @@ -508,7 +508,7 @@ void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *st const QMediaPlayer::MediaStatus oldMediaStatus = m_mediaStatus; const QMediaPlayer::State oldState = m_state; - if (content.isNull() || content.canonicalUrl().isEmpty()) { + if (content.isNull() || content.request().url().isEmpty()) { m_mediaStatus = QMediaPlayer::NoMedia; if (m_mediaStatus != oldMediaStatus) Q_EMIT mediaStatusChanged(m_mediaStatus); @@ -526,7 +526,7 @@ void AVFMediaPlayerSession::setMedia(const QMediaContent &content, QIODevice *st //Load AVURLAsset //initialize asset using content's URL - NSString *urlString = [NSString stringWithUTF8String:content.canonicalUrl().toEncoded().constData()]; + NSString *urlString = [NSString stringWithUTF8String:content.request().url().toEncoded().constData()]; NSURL *url = [NSURL URLWithString:urlString]; [static_cast<AVFMediaPlayerSessionObserver*>(m_observer) setURL:url]; diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp index 3f7346227..059e253f1 100644 --- a/src/plugins/directshow/player/directshowplayerservice.cpp +++ b/src/plugins/directshow/player/directshowplayerservice.cpp @@ -298,7 +298,7 @@ void DirectShowPlayerService::load(const QMediaContent &media, QIODevice *stream if (m_graph) releaseGraph(); - m_url = media.canonicalUrl(); + m_url = media.request().url(); m_stream = stream; m_error = QMediaPlayer::NoError; m_errorString = QString(); diff --git a/src/plugins/m3u/qm3uhandler.cpp b/src/plugins/m3u/qm3uhandler.cpp index bc5366bf6..017c32d92 100644 --- a/src/plugins/m3u/qm3uhandler.cpp +++ b/src/plugins/m3u/qm3uhandler.cpp @@ -163,7 +163,7 @@ public: virtual bool writeItem(const QMediaContent& item) { - *m_textStream << item.canonicalUrl().toString() << endl; + *m_textStream << item.request().url().toString() << endl; return true; } diff --git a/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp b/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp index c66ac937d..fc48ed818 100644 --- a/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp +++ b/src/plugins/qnx/mediaplayer/mmrenderermediaplayercontrol.cpp @@ -230,7 +230,7 @@ void MmRendererMediaPlayerControl::attach() } } - const QByteArray resourcePath = resourcePathForUrl(m_media.canonicalUrl()); + const QByteArray resourcePath = resourcePathForUrl(m_media.request().url()); if (resourcePath.isEmpty()) { detach(); return; diff --git a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp index 7991f435b..374ff2831 100644 --- a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp +++ b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp @@ -759,7 +759,7 @@ void QWinRTMediaPlayerControl::setMedia(const QMediaContent &media, QIODevice *s } emit mediaChanged(media); - QString urlString = media.canonicalUrl().toString(); + QString urlString = media.request().url().toString(); if (!d->stream) { // If we can read the file via Qt, use the byte stream approach const auto resources = media.resources(); diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp index 9f909252d..10ba25998 100644 --- a/src/plugins/wmf/player/mfplayersession.cpp +++ b/src/plugins/wmf/player/mfplayersession.cpp @@ -197,7 +197,7 @@ void MFPlayerSession::load(const QMediaContent &media, QIODevice *stream) qDebug() << "load"; #endif clear(); - QUrl url = media.canonicalUrl(); + QUrl url = media.request().url(); if (m_status == QMediaPlayer::LoadingMedia && m_sourceResolver) m_sourceResolver->cancel(); |