camerabin2: don't leak element name strings
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 11 Mar 2011 10:34:23 +0000 (10:34 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Fri, 11 Mar 2011 10:34:23 +0000 (10:34 +0000)
Don't leak string copy returned by gst_element_get_name(). Also, check
for certain elements by checking the plugin feature / factory name, not
the assigned object name.

gst/camerabin2/gstcamerabin2.c

index c52e2c2296609eea9c0b97d691da645089897b55..b8c32a537028e20cd5cbf126888fae346ba45a1a 100644 (file)
@@ -682,9 +682,13 @@ static void
 encodebin_element_added (GstElement * encodebin, GstElement * new_element,
     GstCameraBin * camera)
 {
-  if (g_str_has_prefix (gst_element_get_name (new_element), "audiorate") ||
-      g_str_has_prefix (gst_element_get_name (new_element), "videorate")) {
-    g_object_set (new_element, "skip-to-first", TRUE, NULL);
+  GstElementFactory *factory = gst_element_get_factory (new_element);
+
+  if (factory != NULL) {
+    if (strcmp (GST_PLUGIN_FEATURE_NAME (factory), "audiorate") == 0 ||
+        strcmp (GST_PLUGIN_FEATURE_NAME (factory), "videorate") == 0) {
+      g_object_set (new_element, "skip-to-first", TRUE, NULL);
+    }
   }
 }