summaryrefslogtreecommitdiffstats
path: root/src/multimedia/playback/qplaylistfileparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/playback/qplaylistfileparser.cpp')
-rw-r--r--src/multimedia/playback/qplaylistfileparser.cpp35
1 files changed, 13 insertions, 22 deletions
diff --git a/src/multimedia/playback/qplaylistfileparser.cpp b/src/multimedia/playback/qplaylistfileparser.cpp
index 0d33f040d..92e7f97e8 100644
--- a/src/multimedia/playback/qplaylistfileparser.cpp
+++ b/src/multimedia/playback/qplaylistfileparser.cpp
@@ -273,7 +273,7 @@ class QPlaylistFileParserPrivate
public:
QPlaylistFileParserPrivate(QPlaylistFileParser *q)
: q_ptr(q)
- , m_stream(0)
+ , m_stream(nullptr)
, m_type(QPlaylistFileParser::UNKNOWN)
, m_scanIndex(0)
, m_lineIndex(-1)
@@ -299,9 +299,10 @@ public:
struct ParserJob
{
QIODevice *m_stream;
- QMediaResource m_resource;
- bool isValid() const { return m_stream || !m_resource.isNull(); }
- void reset() { m_stream = 0; m_resource = QMediaResource(); }
+ QMediaContent m_media;
+ QString m_mimeType;
+ bool isValid() const { return m_stream || !m_media.isNull(); }
+ void reset() { m_stream = nullptr; m_media = QMediaContent(); m_mimeType = QString(); }
} m_pendingJob;
int m_scanIndex;
int m_lineIndex;
@@ -498,22 +499,12 @@ QPlaylistFileParser::FileType QPlaylistFileParser::findPlaylistType(const QStrin
/*
* Delegating
*/
-void QPlaylistFileParser::start(const QMediaContent &media, QIODevice *stream)
+void QPlaylistFileParser::start(const QMediaContent &media, QIODevice *stream, const QString &mimeType)
{
- const QMediaResource &mediaResource = media.canonicalResource();
- const QString &mimeType = mediaResource.mimeType();
-
- if (stream) {
- start(stream, mediaResource.mimeType());
- } else {
- const QNetworkRequest &request = mediaResource.request();
- const QUrl &url = mediaResource.url();
-
- if (request.url().isValid())
- start(request, mimeType);
- else
- start(QNetworkRequest(url), mimeType);
- }
+ if (stream)
+ start(stream, mimeType);
+ else
+ start(media.canonicalRequest(), mimeType);
}
void QPlaylistFileParser::start(QIODevice *stream, const QString &mimeType)
@@ -528,7 +519,7 @@ void QPlaylistFileParser::start(QIODevice *stream, const QString &mimeType)
if (!d->m_currentParser.isNull()) {
abort();
- d->m_pendingJob = { stream, QMediaResource(QUrl(), mimeType) };
+ d->m_pendingJob = { stream, QUrl(), mimeType };
return;
}
@@ -551,7 +542,7 @@ void QPlaylistFileParser::start(const QNetworkRequest& request, const QString &m
if (!d->m_currentParser.isNull()) {
abort();
- d->m_pendingJob = { nullptr, QMediaResource(request, mimeType) };
+ d->m_pendingJob = { nullptr, request, mimeType };
return;
}
@@ -604,7 +595,7 @@ void QPlaylistFileParserPrivate::handleParserFinished()
m_source.reset();
if (m_pendingJob.isValid())
- q->start(m_pendingJob.m_resource, m_pendingJob.m_stream);
+ q->start(m_pendingJob.m_media, m_pendingJob.m_stream, m_pendingJob.m_mimeType);
}
void QPlaylistFileParserPrivate::abort()