diff options
author | Yoann Lopes <yoann.lopes@qt.io> | 2016-07-14 16:34:11 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@qt.io> | 2016-08-23 09:17:52 +0000 |
commit | e84c511702bb53517378fa451d40aa5b25217a2a (patch) | |
tree | dfaebb8874c8682f677cdefcebde5df110d17dd6 /src/plugins/gstreamer/camerabin | |
parent | 155aa8555b436f547fb73c4de11164d4d166e80d (diff) | |
download | qtmultimedia-e84c511702bb53517378fa451d40aa5b25217a2a.tar.gz |
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/gstreamer/camerabin')
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabincontainer.cpp | 36 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabincontainer.h | 3 | ||||
-rw-r--r-- | src/plugins/gstreamer/camerabin/camerabinsession.cpp | 2 |
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); |