Mercurial > pidgin
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, |