summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/camerabin
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/gstreamer/camerabin')
-rw-r--r--src/plugins/gstreamer/camerabin/camerabincontainer.cpp36
-rw-r--r--src/plugins/gstreamer/camerabin/camerabincontainer.h3
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinsession.cpp2
3 files changed, 4 insertions, 37 deletions
diff --git a/src/plugins/gstreamer/camerabin/camerabincontainer.cpp b/src/plugins/gstreamer/camerabin/camerabincontainer.cpp
index e72bf0e3c..e424f92a1 100644
--- a/src/plugins/gstreamer/camerabin/camerabincontainer.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabincontainer.cpp
@@ -39,6 +39,7 @@
#include "camerabincontainer.h"
#include <QtCore/qregexp.h>
+#include <private/qgstutils_p.h>
#include <QtCore/qdebug.h>
@@ -50,14 +51,6 @@ CameraBinContainer::CameraBinContainer(QObject *parent)
, m_supportedContainers(QGstCodecsInfo::Muxer)
#endif
{
- //extension for containers hard to guess from mimetype
- m_fileExtensions["video/x-matroska"] = "mkv";
- m_fileExtensions["video/quicktime"] = "mov";
- m_fileExtensions["video/x-msvideo"] = "avi";
- m_fileExtensions["video/msvideo"] = "avi";
- m_fileExtensions["audio/mpeg"] = "mp3";
- m_fileExtensions["application/x-shockwave-flash"] = "swf";
- m_fileExtensions["application/x-pn-realmedia"] = "rm";
}
QStringList CameraBinContainer::supportedContainers() const
@@ -127,9 +120,9 @@ GstEncodingContainerProfile *CameraBinContainer::createProfile()
//if format is not in the list of supported gstreamer mime types,
//try to find the mime type with matching extension
if (!supportedFormats.contains(format)) {
- QString extension = suggestedFileExtension(m_actualFormat);
+ QString extension = QGstUtils::fileExtensionForMimeType(m_actualFormat);
for (const QString &formatCandidate : supportedFormats) {
- if (suggestedFileExtension(formatCandidate) == extension) {
+ if (QGstUtils::fileExtensionForMimeType(formatCandidate) == extension) {
format = formatCandidate;
break;
}
@@ -152,27 +145,4 @@ GstEncodingContainerProfile *CameraBinContainer::createProfile()
#endif
-/*!
- Suggest file extension for current container mimetype.
- */
-QString CameraBinContainer::suggestedFileExtension(const QString &containerFormat) const
-{
- //for container names like avi instead of video/x-msvideo, use it as extension
- if (!containerFormat.contains('/'))
- return containerFormat;
-
- QString format = containerFormat.left(containerFormat.indexOf(','));
- QString extension = m_fileExtensions.value(format);
-
- if (!extension.isEmpty() || format.isEmpty())
- return extension;
-
- QRegExp rx("[-/]([\\w]+)$");
-
- if (rx.indexIn(format) != -1)
- extension = rx.cap(1);
-
- return extension;
-}
-
QT_END_NAMESPACE
diff --git a/src/plugins/gstreamer/camerabin/camerabincontainer.h b/src/plugins/gstreamer/camerabin/camerabincontainer.h
index 8e9f21eaf..676d2de66 100644
--- a/src/plugins/gstreamer/camerabin/camerabincontainer.h
+++ b/src/plugins/gstreamer/camerabin/camerabincontainer.h
@@ -72,8 +72,6 @@ public:
void setActualContainerFormat(const QString &containerFormat);
void resetActualContainerFormat();
- QString suggestedFileExtension(const QString &containerFormat) const;
-
#ifdef HAVE_GST_ENCODING_PROFILES
GstEncodingContainerProfile *createProfile();
#endif
@@ -84,7 +82,6 @@ Q_SIGNALS:
private:
QString m_format;
QString m_actualFormat;
- QMap<QString, QString> m_fileExtensions;
#ifdef HAVE_GST_ENCODING_PROFILES
QGstCodecsInfo m_supportedContainers;
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
index 64c8780d3..1e075f58d 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
@@ -1112,7 +1112,7 @@ void CameraBinSession::recordVideo()
: m_sink.toString(),
QMediaStorageLocation::Movies,
QLatin1String("clip_"),
- m_mediaContainerControl->suggestedFileExtension(format));
+ QGstUtils::fileExtensionForMimeType(format));
m_recordingActive = true;
m_actualSink = QUrl::fromLocalFile(actualFileName);