summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorChris Adams <chris.adams@jollamobile.com>2016-10-31 14:17:32 +1000
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2019-01-02 09:59:56 +0000
commit46b10ce610cfa3957ed4be719b9a7f3f1f39dcf0 (patch)
tree523960c39910fb1bbe72c8151921507efdcecc43 /src/plugins
parent6dc19a0b10444f33acb1196f1ff85301cb29faea (diff)
Don't append suggested extension if filename includes extension
Commit 6b19a24b581c9c changed the way that the file name is composed for a video recording, so that a suggested extension for the given media format is appended to the file name. That introduced a bug in the case where the correct extension was already part of the output location (filename) set for the sink, by causing a second (and possibly incorrect) extension to be appended to the filename. This commit ensures that if the filename already has a suffix, no suggested extension is appended. Task-number: QTBUG-65402 Change-Id: I0bedf178b7a2aeec89aeb47002e2bae563ed44cd Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinsession.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
index fdedc5f5a..ebb797189 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
@@ -1177,11 +1177,16 @@ void CameraBinSession::recordVideo()
if (format.isEmpty())
format = m_mediaContainerControl->actualContainerFormat();
- const QString actualFileName = m_mediaStorageLocation.generateFileName(m_sink.isLocalFile() ? m_sink.toLocalFile()
- : m_sink.toString(),
+ const QString fileName = m_sink.isLocalFile() ? m_sink.toLocalFile() : m_sink.toString();
+ const QFileInfo fileInfo(fileName);
+ const QString extension = fileInfo.suffix().isEmpty()
+ ? QGstUtils::fileExtensionForMimeType(format)
+ : fileInfo.suffix();
+
+ const QString actualFileName = m_mediaStorageLocation.generateFileName(fileName,
QMediaStorageLocation::Movies,
QLatin1String("clip_"),
- QGstUtils::fileExtensionForMimeType(format));
+ extension);
m_recordingActive = true;
m_actualSink = QUrl::fromLocalFile(actualFileName);