diff options
author | Piotr Srebrny <piotr.srebrny@qt.io> | 2021-10-14 14:42:10 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-10-15 11:27:21 +0000 |
commit | 9d96fd9ee39ff51c15ca43399db5eadc471888c0 (patch) | |
tree | 71c2f7cb0baa7f1ecff0fb00f0d567aa7eadf663 | |
parent | cdad19d2f0145b3532e39070b3692bc9d7693929 (diff) | |
download | qtmultimedia-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.cpp | 5 |
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 |