]> git.0d.be Git - empathy.git/commitdiff
Send stream error when the src pad can't be linked
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>
Sat, 6 Mar 2010 22:02:32 +0000 (17:02 -0500)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 29 Mar 2010 15:36:23 +0000 (17:36 +0200)
libempathy/empathy-call-handler.c
src/empathy-call-window.c

index 3be5eda0808475446fcfa48d7ecc481c954e8eb0..9cfee1d86c4707d37c7d1f5393a5cb135b5cddf4 100644 (file)
@@ -231,8 +231,8 @@ empathy_call_handler_class_init (EmpathyCallHandlerClass *klass)
   signals[SRC_PAD_ADDED] =
     g_signal_new ("src-pad-added", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST, 0, NULL, NULL,
-      _empathy_marshal_VOID__OBJECT_UINT,
-      G_TYPE_NONE,
+      _empathy_marshal_BOOLEAN__OBJECT_UINT,
+      G_TYPE_BOOLEAN,
       2, GST_TYPE_PAD, G_TYPE_UINT);
 
   signals[SINK_PAD_ADDED] =
@@ -334,11 +334,16 @@ empathy_call_handler_tf_stream_src_pad_added_cb (TfStream *stream,
   GstPad *pad, FsCodec *codec, EmpathyCallHandler  *handler)
 {
   guint media_type;
+  gboolean retval;
 
   g_object_get (stream, "media-type", &media_type, NULL);
 
   g_signal_emit (G_OBJECT (handler), signals[SRC_PAD_ADDED], 0,
-    pad, media_type);
+      pad, media_type, &retval);
+
+  if (!retval)
+      tf_stream_error (stream, TP_MEDIA_STREAM_ERROR_MEDIA_ERROR,
+          "Could not link sink");
 }
 
 
index 5a157ab94d3b26acbc089c83de9dfa3dc62003d7..09197bfe1ef3b96955797b405cd186a767327eac 100644 (file)
@@ -1993,7 +1993,7 @@ empathy_call_window_connected (gpointer user_data)
 
 
 /* Called from the streaming thread */
-static void
+static gboolean
 empathy_call_window_src_added_cb (EmpathyCallHandler *handler,
   GstPad *src, guint media_type, gpointer user_data)
 {
@@ -2029,6 +2029,8 @@ empathy_call_window_src_added_cb (EmpathyCallHandler *handler,
   gst_object_unref (pad);
 
   g_mutex_unlock (priv->lock);
+
+  return TRUE;
 }
 
 /* Called from the streaming thread */