[farsight2/master] Make the result of the rtpbin_blocked_cb only depend on the state of the substream

Olivier Crête olivier.crete at collabora.co.uk
Tue Dec 23 15:22:45 PST 2008


---
 gst/fsrtpconference/fs-rtp-substream.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/gst/fsrtpconference/fs-rtp-substream.c b/gst/fsrtpconference/fs-rtp-substream.c
index c18a5d5..79ffe91 100644
--- a/gst/fsrtpconference/fs-rtp-substream.c
+++ b/gst/fsrtpconference/fs-rtp-substream.c
@@ -974,7 +974,6 @@ _rtpbin_pad_have_data_callback (GstPad *pad, GstMiniObject *miniobj,
   FsCodec *codec = NULL;
   gboolean ret = TRUE;
   GError *error = NULL;
-  gboolean success = FALSE;
 
   FS_RTP_SESSION_LOCK (self->priv->session);
 
@@ -995,10 +994,7 @@ _rtpbin_pad_have_data_callback (GstPad *pad, GstMiniObject *miniobj,
   g_clear_error (&error);
 
   if (fs_codec_are_equal (codec, self->priv->codec))
-  {
-    success = TRUE;
     goto done;
-  }
 
 
   if (!fs_rtp_session_substream_add_codec_bin (self->priv->session,
@@ -1016,12 +1012,15 @@ _rtpbin_pad_have_data_callback (GstPad *pad, GstMiniObject *miniobj,
 
   g_clear_error (&error);
 
-  success = TRUE;
-
  done:
-  if (success && GST_IS_BUFFER (miniobj))
+
+  if (!self->priv->codecbin || !self->priv->codec)
+  {
+    ret = FALSE;
+  }
+  else if (GST_IS_BUFFER (miniobj))
   {
-    GstCaps *caps = fs_codec_to_gst_caps (codec);
+    GstCaps *caps = fs_codec_to_gst_caps (self->priv->codec);
     GstCaps *intersection = gst_caps_intersect (GST_BUFFER_CAPS (miniobj),
         caps);
 
-- 
1.5.6.5




More information about the farsight-commits mailing list