summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@qt.io>2016-07-14 16:34:11 +0200
committerYoann Lopes <yoann.lopes@qt.io>2016-08-23 09:17:52 +0000
commite84c511702bb53517378fa451d40aa5b25217a2a (patch)
treedfaebb8874c8682f677cdefcebde5df110d17dd6 /src/plugins
parent155aa8555b436f547fb73c4de11164d4d166e80d (diff)
GStreamer: move suggestedFileExtension() out of camerabin plugin
Now in QGstUtils, in order to be used from other places. Change-Id: Id8beae1b804fa22bd648e254a1ff2a1f1e455a02 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'src/plugins')
-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 3cb4c6161..8947af8f1 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
@@ -1105,7 +1105,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);