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);