# HG changeset patch # User Mike Ruprecht # Date 1237465722 0 # Node ID 5906409c4b695558ad628a8b6a813082cecd759f # Parent 189ac8d13103ca088426c714aead627816ab3c4d Fix some GStreamer timing issues. diff -r 189ac8d13103 -r 5906409c4b69 libpurple/media.c --- a/libpurple/media.c Thu Mar 19 12:26:01 2009 +0000 +++ b/libpurple/media.c Thu Mar 19 12:28:42 2009 +0000 @@ -315,6 +315,7 @@ purple_media_manager_remove_media(priv->manager, PURPLE_MEDIA(media)); if (priv->confbin) { + gst_element_set_locked_state(priv->confbin, TRUE); gst_element_set_state(GST_ELEMENT(priv->confbin), GST_STATE_NULL); gst_bin_remove(GST_BIN(purple_media_manager_get_pipeline( @@ -1140,6 +1141,7 @@ if (session->src) gst_object_unref(session->src); session->src = src; + gst_element_set_locked_state(session->src, TRUE); gst_bin_add(GST_BIN(session->media->priv->confbin), session->src); @@ -1153,6 +1155,7 @@ purple_debug_info("media", "connecting pad: %s\n", gst_pad_link(srcpad, sinkpad) == GST_PAD_LINK_OK ? "success" : "failure"); + gst_element_set_locked_state(session->src, FALSE); } void