libpurple/mediamanager.c

branch
soc.2013.gobjectification.plugins
changeset 37158
96b5ab42da00
parent 37144
8b63b9948107
parent 36281
017310ea69c0
child 37160
8300c06145d8
--- a/libpurple/mediamanager.c	Tue Oct 07 00:57:07 2014 +0530
+++ b/libpurple/mediamanager.c	Wed Nov 26 16:01:25 2014 +0530
@@ -441,7 +441,11 @@
 
 		if (src) {
 			GstElement *capsfilter = gst_bin_get_by_name(GST_BIN(src), "protocol_video_caps");
-			g_object_set(G_OBJECT(capsfilter), "caps", caps, NULL);
+			if (capsfilter) {
+				g_object_set(G_OBJECT(capsfilter), "caps", caps, NULL);
+				gst_object_unref (capsfilter);
+			}
+			gst_object_unref (src);
 		}
 
 		g_free(id);
@@ -556,6 +560,11 @@
 	} else {
 		ret = purple_media_element_info_call_create(info,
 				media, session_id, participant);
+		if (element_type & PURPLE_MEDIA_ELEMENT_SRC) {
+			gst_object_ref(ret);
+			gst_bin_add(GST_BIN(purple_media_manager_get_pipeline(manager)),
+				ret);
+		}
 	}
 
 	if (ret == NULL)

mercurial