libpurple/media.c

branch
maiku.vv
changeset 26119
3c849417c108
parent 26118
f0d6b19a7482
child 26120
b4ab036ab9fe
--- a/libpurple/media.c	Wed Aug 20 22:49:35 2008 +0000
+++ b/libpurple/media.c	Thu Aug 21 00:53:58 2008 +0000
@@ -269,6 +269,9 @@
 	}
 
 	if (priv->pipeline) {
+		GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(priv->pipeline));
+		gst_bus_remove_signal_watch(bus);
+		gst_object_unref(bus);
 		gst_element_set_state(priv->pipeline, GST_STATE_NULL);
 		gst_object_unref(priv->pipeline);
 	}
@@ -619,7 +622,8 @@
 		media->priv->pipeline = gst_pipeline_new(media->priv->name);
 		bus = gst_pipeline_get_bus(GST_PIPELINE(media->priv->pipeline));
 		gst_bus_add_signal_watch(GST_BUS(bus));
-		gst_bus_add_watch(bus, media_bus_call, media);
+		g_signal_connect(G_OBJECT(bus), "message",
+				G_CALLBACK(media_bus_call), media);
 		gst_object_unref(bus);
 
 		gst_bin_add(GST_BIN(media->priv->pipeline), GST_ELEMENT(media->priv->conference));

mercurial