summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform
diff options
context:
space:
mode:
authorArtem Dyomin <artem.dyomin@qt.io>2024-03-07 16:25:23 +0100
committerArtem Dyomin <artem.dyomin@qt.io>2024-03-17 16:37:41 +0000
commit45d7e7f1b6d8c7d2de7fac4ae90067904ec27fbc (patch)
treeda019f65037339addd70d818e0bf0cb902fb0cf3 /src/multimedia/platform
parent40b2e2dc07532e080918e9874218635f5b045110 (diff)
Move logic of finding actual media location to a separate function
The change is need to ensure better backport compatibility with changes related to 'setOutputDevice'. The function might be reused in other media backends, so it should be in the base class. Task-number: QTBUG-121827 Pick-to: 6.7 6.6 6.5 Change-Id: I8be73598f949f07fc75df0874797cb96967c49fe Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Diffstat (limited to 'src/multimedia/platform')
-rw-r--r--src/multimedia/platform/qplatformmediarecorder.cpp17
-rw-r--r--src/multimedia/platform/qplatformmediarecorder_p.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/src/multimedia/platform/qplatformmediarecorder.cpp b/src/multimedia/platform/qplatformmediarecorder.cpp
index 6aa76e066..ba9ea0165 100644
--- a/src/multimedia/platform/qplatformmediarecorder.cpp
+++ b/src/multimedia/platform/qplatformmediarecorder.cpp
@@ -2,6 +2,8 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "qplatformmediarecorder_p.h"
+#include "qstandardpaths.h"
+#include "qmediastoragelocation_p.h"
#include <QObject>
QT_BEGIN_NAMESPACE
@@ -55,4 +57,19 @@ void QPlatformMediaRecorder::metaDataChanged()
emit q->metaDataChanged();
}
+QString QPlatformMediaRecorder::findActualLocation(const QMediaEncoderSettings &settings) const
+{
+ const auto audioOnly = settings.videoCodec() == QMediaFormat::VideoCodec::Unspecified;
+
+ const auto primaryLocation =
+ audioOnly ? QStandardPaths::MusicLocation : QStandardPaths::MoviesLocation;
+ const QString suffix = settings.mimeType().preferredSuffix();
+ const QString location = QMediaStorageLocation::generateFileName(
+ outputLocation().toString(QUrl::PreferLocalFile), primaryLocation, suffix);
+
+ Q_ASSERT(!location.isEmpty());
+
+ return location;
+}
+
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qplatformmediarecorder_p.h b/src/multimedia/platform/qplatformmediarecorder_p.h
index 31df21710..214510a29 100644
--- a/src/multimedia/platform/qplatformmediarecorder_p.h
+++ b/src/multimedia/platform/qplatformmediarecorder_p.h
@@ -136,6 +136,8 @@ protected:
QMediaRecorder *mediaRecorder() { return q; }
+ QString findActualLocation(const QMediaEncoderSettings &settings) const;
+
private:
QMediaRecorder *q = nullptr;
QErrorInfo<QMediaRecorder::Error> m_error;