Merge branch 'upstream/1.16' into tizen_gst_1.16.2
[platform/upstream/gstreamer.git] / gst / gstelementfactory.c
index 4caa310..b538613 100644 (file)
@@ -391,6 +391,12 @@ gst_element_factory_create (GstElementFactory * factory, const gchar * name)
     /* This ref will never be dropped as the class is never destroyed */
     GST_OBJECT_FLAG_SET (factory, GST_OBJECT_FLAG_MAY_BE_LEAKED);
 
+  /* Ensure that the reference is floating. Bindings might have a hard time
+   * making sure that the reference is indeed still floating after returning
+   * here */
+  if (element)
+    g_object_force_floating ((GObject *) element);
+
   GST_DEBUG ("created element \"%s\"", GST_OBJECT_NAME (factory));
 
   return element;
@@ -514,6 +520,8 @@ const gchar *
 gst_element_factory_get_metadata (GstElementFactory * factory,
     const gchar * key)
 {
+  g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), NULL);
+
   return gst_structure_get_string ((GstStructure *) factory->metadata, key);
 }