aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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));
}