aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2010-03-07 07:31:16 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2010-03-29 23:36:24 +0800
commitbcbcb511ce03d1bfde0096830f28bfa21c703569 (patch)
treeb43cb4e97784f8c6c029d67f2d39232b71a3c8ef /libempathy
parentb860ad599ff905a735ca00f4f256c43411c09a85 (diff)
downloadgsoc2013-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.c15
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));
}