diff options
author | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2010-03-07 07:31:16 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2010-03-29 23:36:24 +0800 |
commit | bcbcb511ce03d1bfde0096830f28bfa21c703569 (patch) | |
tree | b43cb4e97784f8c6c029d67f2d39232b71a3c8ef /libempathy | |
parent | b860ad599ff905a735ca00f4f256c43411c09a85 (diff) | |
download | gsoc2013-empathy-bcbcb511ce03d1bfde0096830f28bfa21c703569.tar.gz gsoc2013-empathy-bcbcb511ce03d1bfde0096830f28bfa21c703569.tar.zst gsoc2013-empathy-bcbcb511ce03d1bfde0096830f28bfa21c703569.zip |
telepathy-glib sucks, need to send stream error from the main thread
Diffstat (limited to 'libempathy')
-rw-r--r-- | libempathy/empathy-call-handler.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libempathy/empathy-call-handler.c b/libempathy/empathy-call-handler.c index 31b66f3f4..3b7ce546c 100644 --- a/libempathy/empathy-call-handler.c +++ b/libempathy/empathy-call-handler.c @@ -329,6 +329,18 @@ empathy_call_handler_tf_channel_session_created_cb (TfChannel *tfchannel, GST_ELEMENT (conference)); } +static gboolean +src_pad_added_error_idle (gpointer data) +{ + TfStream *stream = data; + + tf_stream_error (stream, TP_MEDIA_STREAM_ERROR_MEDIA_ERROR, + "Could not link sink"); + g_object_unref (stream); + + return FALSE; +} + static void empathy_call_handler_tf_stream_src_pad_added_cb (TfStream *stream, GstPad *pad, FsCodec *codec, EmpathyCallHandler *handler) @@ -342,8 +354,7 @@ empathy_call_handler_tf_stream_src_pad_added_cb (TfStream *stream, pad, media_type, &retval); if (!retval) - tf_stream_error (stream, TP_MEDIA_STREAM_ERROR_MEDIA_ERROR, - "Could not link sink"); + g_idle_add (src_pad_added_error_idle, g_object_ref (stream)); } |