From c9533b5aaf4347875b8296cb6210279af9781f8a Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Thu, 23 Jul 2015 15:11:23 +0200 Subject: GStreamer: added convenience function in QGstUtils. -> qt_gst_element_get_factory_name(GstElement *elem) Change-Id: Icf806488b49fbcdecdd605b6316bd1ef8796a883 Reviewed-by: Christian Stromme --- src/gsttools/qgstutils.cpp | 11 +++++++++++ src/multimedia/gsttools_headers/qgstutils_p.h | 1 + src/plugins/gstreamer/camerabin/camerabinaudioencoder.cpp | 4 ++-- src/plugins/gstreamer/camerabin/camerabinsession.cpp | 6 ++---- src/plugins/gstreamer/camerabin/camerabinvideoencoder.cpp | 4 ++-- 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 +#include #include @@ -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 #include @@ -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) { -- cgit v1.2.3