summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Srebrny <piotr.srebrny@qt.io>2021-10-14 14:42:10 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-10-15 11:27:21 +0000
commit9d96fd9ee39ff51c15ca43399db5eadc471888c0 (patch)
tree71c2f7cb0baa7f1ecff0fb00f0d567aa7eadf663
parentcdad19d2f0145b3532e39070b3692bc9d7693929 (diff)
downloadqtmultimedia-9d96fd9ee39ff51c15ca43399db5eadc471888c0.tar.gz
Resolve a media file path to an absolute path when calling setMedia
A user provided file path was not resolved to an absolute path, which is required by gstreamer uridecodebin. This patch resolves any type of file path to the absolute path. An input URL without schema is treated as a file path. Fixes: QTBUG-96985 Change-Id: Ibc0ba8b6673e2cc93d428ab19450a0aa44216a9b Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 8a3806f6263f56b5be5b557e321b9b13d1913d5f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp
index 382743d48..f65b6a2a1 100644
--- a/src/multimedia/playback/qmediaplayer.cpp
+++ b/src/multimedia/playback/qmediaplayer.cpp
@@ -213,7 +213,10 @@ void QMediaPlayerPrivate::setMedia(const QUrl &media, QIODevice *stream)
}
} else {
qrcMedia = QUrl();
- control->setMedia(media, stream);
+ QUrl url = media;
+ if (url.scheme().isEmpty() || url.scheme() == QLatin1String("file"))
+ url = QUrl::fromUserInput(media.path(), QDir::currentPath(), QUrl::AssumeLocalFile);
+ control->setMedia(url, stream);
}
qrcFile.swap(file); // Cleans up any previous file