[farsight2/master] Connect the get-recvonly-filter and error signals from the transmitter

Olivier Crête olivier.crete at collabora.co.uk
Thu Feb 5 06:32:04 PST 2009


---
 gst/fsrtpconference/fs-rtp-session.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/gst/fsrtpconference/fs-rtp-session.c b/gst/fsrtpconference/fs-rtp-session.c
index 768bfbd..77fe970 100644
--- a/gst/fsrtpconference/fs-rtp-session.c
+++ b/gst/fsrtpconference/fs-rtp-session.c
@@ -1813,6 +1813,31 @@ _get_request_pad_and_link (GstElement *tee_funnel, const gchar *tee_funnel_name,
   return TRUE;
 }
 
+
+static void
+_transmitter_error (
+    FsStreamTransmitter *stream_transmitter,
+    gint errorno,
+    gchar *error_msg,
+    gchar *debug_msg,
+    gpointer user_data)
+{
+  FsSession *session = FS_SESSION (user_data);
+
+  fs_session_emit_error (session, errorno, error_msg, debug_msg);
+}
+
+static GstElement *
+_get_recvonly_filter (FsTransmitter *transmitter, guint component,
+    gpointer user_data)
+{
+  if (component == FS_COMPONENT_RTCP)
+    return gst_element_factory_make ("fsrtcpfilter", NULL);
+  else
+    return NULL;
+}
+
+
 /**
  * fs_rtp_session_get_new_stream_transmitter:
  * @self: a #FsRtpSession
@@ -1859,6 +1884,11 @@ fs_rtp_session_get_new_stream_transmitter (FsRtpSession *self,
 
   g_object_get (transmitter, "gst-sink", &sink, "gst-src", &src, NULL);
 
+  g_signal_connect (transmitter, "error", G_CALLBACK (_transmitter_error),
+      self);
+  g_signal_connect (transmitter, "get-recvonly-filter",
+      G_CALLBACK (_get_recvonly_filter), NULL);
+
   if (!gst_bin_add (GST_BIN (self->priv->conference), sink))
   {
     g_set_error (error, FS_ERROR, FS_ERROR_CONSTRUCTION,
-- 
1.5.6.5




More information about the farsight-commits mailing list