comparison libpurple/media.c @ 26074:1199abde956b

Set the purple_media_connected_cb timeout to a high priority and remove it when stream is freed.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Mon, 02 Feb 2009 05:38:29 +0000
parents 39c1b30b26e2
children 1aed9a92b657
comparison
equal deleted inserted replaced
26073:39c1b30b26e2 26074:1199abde956b
237 static void 237 static void
238 purple_media_stream_free(PurpleMediaStream *stream) 238 purple_media_stream_free(PurpleMediaStream *stream)
239 { 239 {
240 if (stream == NULL) 240 if (stream == NULL)
241 return; 241 return;
242
243 /* Remove the connected_cb timeout */
244 g_source_remove_by_user_data(stream);
242 245
243 g_free(stream->participant); 246 g_free(stream->participant);
244 247
245 if (stream->local_candidates) 248 if (stream->local_candidates)
246 fs_candidate_list_destroy(stream->local_candidates); 249 fs_candidate_list_destroy(stream->local_candidates);
1683 stream->sink); 1686 stream->sink);
1684 sinkpad = gst_element_get_static_pad(stream->sink, "ghostsink"); 1687 sinkpad = gst_element_get_static_pad(stream->sink, "ghostsink");
1685 gst_pad_link(srcpad, sinkpad); 1688 gst_pad_link(srcpad, sinkpad);
1686 gst_element_set_state(stream->sink, GST_STATE_PLAYING); 1689 gst_element_set_state(stream->sink, GST_STATE_PLAYING);
1687 1690
1688 g_timeout_add(0, (GSourceFunc)purple_media_connected_cb, stream); 1691 g_timeout_add_full(G_PRIORITY_HIGH, 0,
1692 (GSourceFunc)purple_media_connected_cb, stream, NULL);
1689 } 1693 }
1690 1694
1691 static gboolean 1695 static gboolean
1692 purple_media_add_stream_internal(PurpleMedia *media, const gchar *sess_id, 1696 purple_media_add_stream_internal(PurpleMedia *media, const gchar *sess_id,
1693 const gchar *who, FsMediaType type, 1697 const gchar *who, FsMediaType type,