From 57f20e65ec82b53fee7de43bbeaeaeff0a76ff33 Mon Sep 17 00:00:00 2001 From: Chris Adams Date: Mon, 31 Oct 2016 14:17:32 +1000 Subject: [PATCH] [qtmultimedia] Don't append suggested extension if filename includes extension. Contributes to JB#36676 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. Contributes to JB#36676 --- src/plugins/gstreamer/camerabin/camerabinsession.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp index 7a6cab94..a8108c66 100644 --- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp @@ -1125,11 +1125,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() + ? m_mediaContainerControl->suggestedFileExtension(format) + : fileInfo.suffix(); + + const QString actualFileName = m_mediaStorageLocation.generateFileName(fileName, QMediaStorageLocation::Movies, QLatin1String("clip_"), - m_mediaContainerControl->suggestedFileExtension(format)); + extension); m_recordingActive = true; m_actualSink = QUrl::fromLocalFile(actualFileName);