summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVal Doroshchuk <valentyn.doroshchuk@qt.io>2019-04-12 08:58:11 +0200
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-07-17 11:40:04 +0200
commit073d3ea91c4c3f3fe7227e7335d35fc53dc630b3 (patch)
treeabdaca130d968d13203bce58d236162044051353
parent411bd814849dace75ec755c46f668604eb6f4821 (diff)
DirectShow: Set QMediaPlayer::NoMedia if empty url is provided
In case of clearing current playlist by passing nullptr to QMediaPlayer::setPlaylist, empty url is passed to a backend: QMediaContent m(playlist, QUrl(), false); setMedia(m); The status should be updated by QMediaPlayer::NoMedia if empty url is passed. Fixes tst_QMediaPlayerBackend::playlistObject() Task-number: QTBUG-65574 Change-Id: Iea03e3fcb8d74c9b1b482aa06b42686cf8c9e9a7 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.cpp10
-rw-r--r--src/plugins/directshow/player/directshowplayerservice.h1
2 files changed, 3 insertions, 8 deletions
diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp
index 3c81881fa..0d44da722 100644
--- a/src/plugins/directshow/player/directshowplayerservice.cpp
+++ b/src/plugins/directshow/player/directshowplayerservice.cpp
@@ -297,7 +297,8 @@ void DirectShowPlayerService::load(const QMediaContent &media, QIODevice *stream
if (m_graph)
releaseGraph();
- m_resources = media.resources();
+ m_url = media.canonicalUrl();
+
m_stream = stream;
m_error = QMediaPlayer::NoError;
m_errorString = QString();
@@ -312,11 +313,9 @@ void DirectShowPlayerService::load(const QMediaContent &media, QIODevice *stream
m_dontCacheNextSeekResult = false;
m_metaDataControl->reset();
- if (m_resources.isEmpty() && !stream) {
+ if (m_url.isEmpty() && !stream) {
m_pendingTasks = 0;
m_graphStatus = NoMedia;
-
- m_url.clear();
} else if (stream && (!stream->isReadable() || stream->isSequential())) {
m_pendingTasks = 0;
m_graphStatus = InvalidMedia;
@@ -348,9 +347,6 @@ void DirectShowPlayerService::doSetUrlSource(QMutexLocker *locker)
{
IBaseFilter *source = 0;
- QMediaResource resource = m_resources.takeFirst();
- m_url = resource.url();
-
HRESULT hr = E_FAIL;
if (m_url.scheme() == QLatin1String("http") || m_url.scheme() == QLatin1String("https")) {
static const GUID clsid_WMAsfReader = {
diff --git a/src/plugins/directshow/player/directshowplayerservice.h b/src/plugins/directshow/player/directshowplayerservice.h
index 4a9e25678..d48b0575a 100644
--- a/src/plugins/directshow/player/directshowplayerservice.h
+++ b/src/plugins/directshow/player/directshowplayerservice.h
@@ -224,7 +224,6 @@ private:
qint64 m_duration;
QMediaTimeRange m_playbackRange;
QUrl m_url;
- QMediaResourceList m_resources;
QString m_errorString;
QMutex m_mutex;
bool m_buffering;