maiku.vv: 7d13b1d8: Fix GStreamer assertion.
maiku at soc.pidgin.im
maiku at soc.pidgin.im
Wed Aug 20 21:50:36 EDT 2008
-----------------------------------------------------------------
Revision: 7d13b1d8a0484fdf843df1925030b2bd026518df
Ancestor: 9c6f09d14c59fb8b3dbe131aa6b023db077afd49
Author: maiku at soc.pidgin.im
Date: 2008-08-21T00:53:58
Branch: im.pidgin.maiku.vv
URL: http://d.pidgin.im/viewmtn/revision/info/7d13b1d8a0484fdf843df1925030b2bd026518df
Modified files:
libpurple/media.c pidgin/gtkmedia.c
ChangeLog:
Fix GStreamer assertion.
-------------- next part --------------
============================================================
--- libpurple/media.c 52acd7efe75a802a0df6da69f2dfd1e8114b42ab
+++ libpurple/media.c c33b513563ce60195791c7f60709ca926fa2f825
@@ -269,6 +269,9 @@ purple_media_finalize (GObject *media)
}
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 @@ purple_media_get_pipeline(PurpleMedia *m
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));
============================================================
--- pidgin/gtkmedia.c 4543a7684e0209c8083506313d6db55011afdc68
+++ pidgin/gtkmedia.c fc5dafd0e42a74ca0411894d4cc2b2029a4d2619
@@ -444,11 +444,9 @@ pidgin_media_accept_cb(PurpleMedia *medi
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);
More information about the Commits
mailing list