summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@theqtcompany.com>2015-07-23 15:11:23 +0200
committerYoann Lopes <yoann.lopes@theqtcompany.com>2015-08-13 13:26:26 +0000
commitc9533b5aaf4347875b8296cb6210279af9781f8a (patch)
tree56c73df0a2af8f7f9df1ce701c4d955d62f67317 /src
parent8b85c5a28e08536d2ddb64ff1dc91bc642dad98d (diff)
GStreamer: added convenience function in QGstUtils.
-> qt_gst_element_get_factory_name(GstElement *elem) Change-Id: Icf806488b49fbcdecdd605b6316bd1ef8796a883 Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r--src/gsttools/qgstutils.cpp11
-rw-r--r--src/multimedia/gsttools_headers/qgstutils_p.h1
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinaudioencoder.cpp4
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinsession.cpp6
-rw-r--r--src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp4
5 files changed, 18 insertions, 8 deletions
diff --git a/src/gsttools/qgstutils.cpp b/src/gsttools/qgstutils.cpp
index 61ba09e76..b13038c21 100644
--- a/src/gsttools/qgstutils.cpp
+++ b/src/gsttools/qgstutils.cpp
@@ -1453,6 +1453,17 @@ GstCaps *qt_gst_caps_normalize(GstCaps *caps)
#endif
}
+const gchar *qt_gst_element_get_factory_name(GstElement *element)
+{
+ const gchar *name = 0;
+ const GstElementFactory *factory = 0;
+
+ if (element && (factory = gst_element_get_factory(element)))
+ name = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory));
+
+ return name;
+}
+
QDebug operator <<(QDebug debug, GstCaps *caps)
{
if (caps) {
diff --git a/src/multimedia/gsttools_headers/qgstutils_p.h b/src/multimedia/gsttools_headers/qgstutils_p.h
index d7e26ad82..78b9db3df 100644
--- a/src/multimedia/gsttools_headers/qgstutils_p.h
+++ b/src/multimedia/gsttools_headers/qgstutils_p.h
@@ -147,6 +147,7 @@ GstStructure *qt_gst_structure_new_empty(const char *name);
gboolean qt_gst_element_query_position(GstElement *element, GstFormat format, gint64 *cur);
gboolean qt_gst_element_query_duration(GstElement *element, GstFormat format, gint64 *cur);
GstCaps *qt_gst_caps_normalize(GstCaps *caps);
+const gchar *qt_gst_element_get_factory_name(GstElement *element);
QDebug operator <<(QDebug debug, GstCaps *caps);
diff --git a/src/plugins/gstreamer/camerabin/camerabinaudioencoder.cpp b/src/plugins/gstreamer/camerabin/camerabinaudioencoder.cpp
index 3a921ece0..2ff0bd8d0 100644
--- a/src/plugins/gstreamer/camerabin/camerabinaudioencoder.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinaudioencoder.cpp
@@ -34,6 +34,7 @@
#include "camerabinaudioencoder.h"
#include "camerabincontainer.h"
#include <private/qgstcodecsinfo_p.h>
+#include <private/qgstutils_p.h>
#include <QtCore/qdebug.h>
@@ -120,8 +121,7 @@ GstEncodingProfile *CameraBinAudioEncoder::createProfile()
void CameraBinAudioEncoder::applySettings(GstElement *encoder)
{
GObjectClass * const objectClass = G_OBJECT_GET_CLASS(encoder);
- const char * const name = gst_plugin_feature_get_name(
- GST_PLUGIN_FEATURE(gst_element_get_factory(encoder)));
+ const char * const name = qt_gst_element_get_factory_name(encoder);
const bool isVorbis = qstrcmp(name, "vorbisenc") == 0;
diff --git a/src/plugins/gstreamer/camerabin/camerabinsession.cpp b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
index da317740b..a0e9f753b 100644
--- a/src/plugins/gstreamer/camerabin/camerabinsession.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinsession.cpp
@@ -388,7 +388,7 @@ void CameraBinSession::setupCaptureResolution()
gst_caps_unref(caps);
// Special case when using mfw_v4lsrc
- if (m_videoSrc && qstrcmp(gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(gst_element_get_factory(m_videoSrc))), "mfw_v4lsrc") == 0) {
+ if (m_videoSrc && qstrcmp(qt_gst_element_get_factory_name(m_videoSrc), "mfw_v4lsrc") == 0) {
int capMode = 0;
if (viewfinderResolution == QSize(320, 240))
capMode = 1;
@@ -472,9 +472,7 @@ GstElement *CameraBinSession::buildCameraSource()
#if CAMERABIN_DEBUG
qDebug() << "set camera device" << m_inputDevice;
#endif
- const char *const cameraSrcName = gst_plugin_feature_get_name(
- GST_PLUGIN_FEATURE(gst_element_get_factory(m_cameraSrc)));
- m_usingWrapperCameraBinSrc = qstrcmp(cameraSrcName, "wrappercamerabinsrc") == 0;
+ m_usingWrapperCameraBinSrc = qstrcmp(qt_gst_element_get_factory_name(m_cameraSrc), "wrappercamerabinsrc") == 0;
if (g_object_class_find_property(G_OBJECT_GET_CLASS(m_cameraSrc), "video-source")) {
if (!m_videoSrc) {
diff --git a/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp b/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
index aad059df0..f80ba4a41 100644
--- a/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
+++ b/src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp
@@ -34,6 +34,7 @@
#include "camerabinvideoencoder.h"
#include "camerabinsession.h"
#include "camerabincontainer.h"
+#include <private/qgstutils_p.h>
#include <QtCore/qdebug.h>
@@ -178,8 +179,7 @@ GstEncodingProfile *CameraBinVideoEncoder::createProfile()
void CameraBinVideoEncoder::applySettings(GstElement *encoder)
{
GObjectClass * const objectClass = G_OBJECT_GET_CLASS(encoder);
- const char * const name = gst_plugin_feature_get_name(
- GST_PLUGIN_FEATURE(gst_element_get_factory(encoder)));
+ const char * const name = qt_gst_element_get_factory_name(encoder);
const int bitRate = m_actualVideoSettings.bitRate();
if (bitRate == -1) {