# HG changeset patch # User Mike Ruprecht # Date 1219280038 0 # Node ID ba609f368dc8ef3c0e4ba18c6a6817baec8a0fd8 # Parent e4261bc6788d96610de3bb11959abb360b6be557 Fix GStreamer assertion. diff -r e4261bc6788d -r ba609f368dc8 libpurple/media.c --- 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)); diff -r e4261bc6788d -r ba609f368dc8 pidgin/gtkmedia.c --- a/pidgin/gtkmedia.c Wed Aug 20 22:49:35 2008 +0000 +++ b/pidgin/gtkmedia.c Thu Aug 21 00:53:58 2008 +0000 @@ -444,11 +444,9 @@ gtk_widget_show(gtkmedia->priv->display); bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); - if (audiorecvbin || audiosendbin) { - gst_bus_add_signal_watch(GST_BUS(bus)); - g_signal_connect(G_OBJECT(bus), "message", + if (audiorecvbin || audiosendbin) + g_signal_connect(G_OBJECT(bus), "message::element", G_CALLBACK(level_message_cb), gtkmedia); - } if (videorecvbin || videosendbin) gst_bus_set_sync_handler(bus, (GstBusSyncHandler)create_window, gtkmedia); gst_object_unref(bus);