All pastes #2088490 Raw Edit

Someone

public text v1 · immutable
#2088490 ·published 2011-10-09 21:53 UTC
rendered paste body
--- a/gst/fsrtpconference/fs-rtp-session.c
+++ b/gst/fsrtpconference/fs-rtp-session.c
@@ -268,7 +268,7 @@ static GType fs_rtp_session_get_stream_transmitter_type (FsSession *session,
 static void _substream_no_rtcp_timedout_cb (FsRtpSubStream *substream,
     FsRtpSession *session);
 static GstElement *_substream_get_codec_bin (FsRtpSubStream *substream,
-    FsRtpStream *stream, FsCodec *current_codec, FsCodec **new_codec,
+    FsRtpStream *stream, FsCodec **new_codec,
     guint current_builder_hash, guint *new_builder_hash,
     GError **error, FsRtpSession *session);
 
@@ -3916,7 +3916,7 @@ fs_rtp_session_verify_send_codec_bin (FsRtpSession *self)
 
 static GstElement *
 _substream_get_codec_bin (FsRtpSubStream *substream,
-    FsRtpStream *stream, FsCodec *current_codec, FsCodec **new_codec,
+    FsRtpStream *stream, FsCodec **new_codec,
     guint current_builder_hash, guint *new_builder_hash,
     GError **error, FsRtpSession *session)
 {
@@ -3940,12 +3940,6 @@ _substream_get_codec_bin (FsRtpSubStream *substream,
       current_builder_hash, new_builder_hash, error);
   g_free (name);
 
-  if (!codecbin)
-  {
-    fs_codec_destroy (*new_codec);
-    *new_codec = NULL;
-  }
-
  out:
 
   fs_rtp_session_has_disposed_exit (session);
diff --git a/gst/fsrtpconference/fs-rtp-substream.c b/gst/fsrtpconference/fs-rtp-substream.c
index c5c8183..fadafd9 100644
--- a/gst/fsrtpconference/fs-rtp-substream.c
+++ b/gst/fsrtpconference/fs-rtp-substream.c
@@ -394,9 +394,9 @@ fs_rtp_sub_stream_class_init (FsRtpSubStreamClass *klass)
       0,
       NULL,
       NULL,
-      _fs_rtp_marshal_POINTER__POINTER_POINTER_POINTER_UINT_POINTER_POINTER,
-      G_TYPE_POINTER, 6, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER,
-      G_TYPE_UINT, G_TYPE_POINTER, G_TYPE_POINTER);
+      _fs_rtp_marshal_POINTER__POINTER_POINTER_UINT_POINTER_POINTER,
+      G_TYPE_POINTER, 5, G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_UINT,
+      G_TYPE_POINTER, G_TYPE_POINTER);
 
 
  /**
@@ -925,12 +925,6 @@ fs_rtp_sub_stream_set_codecbin (FsRtpSubStream *substream,
     FS_RTP_SESSION_LOCK (substream->priv->session);
     substream->priv->codecbin = NULL;
     substream->priv->builder_hash = 0;
-    if (substream->codec)
-    {
-      fs_codec_destroy (substream->codec);
-      substream->codec = NULL;
-    }
-
     FS_RTP_SESSION_UNLOCK (substream->priv->session);
   }
 
@@ -989,7 +983,6 @@ fs_rtp_sub_stream_set_codecbin (FsRtpSubStream *substream,
   FS_RTP_SESSION_LOCK (substream->priv->session);
   substream->priv->codecbin = codecbin;
   substream->priv->builder_hash = builder_hash;
-  substream->codec = codec;
   codec = NULL;
 
   if (substream->priv->stream && !substream->priv->output_ghostpad)
@@ -1346,7 +1339,7 @@ _rtpbin_pad_blocked_callback (GstPad *pad, gboolean blocked, gpointer user_data)
   gst_pad_set_blocked_async (pad, FALSE, do_nothing_blocked_callback, NULL);
 
   g_signal_emit (substream, signals[GET_CODEC_BIN], 0,
-      substream->priv->stream, substream->codec, &codec,
+      substream->priv->stream, &codec,
       substream->priv->builder_hash, &new_builder_hash, &error, &codecbin);
 
   if (error)
@@ -1359,6 +1352,10 @@ _rtpbin_pad_blocked_callback (GstPad *pad, gboolean blocked, gpointer user_data)
     GstCaps *caps;
     gchar *tmp;
 
+    if (substream->codec)
+      fs_codec_destroy (substream->codec);
+    substream->codec = codec;
+
     caps = fs_codec_to_gst_caps (codec);
     tmp = gst_caps_to_string (caps);
     GST_DEBUG ("Setting caps %s on recv substream", tmp);
@@ -1369,7 +1366,6 @@ _rtpbin_pad_blocked_callback (GstPad *pad, gboolean blocked, gpointer user_data)
   }
   FS_RTP_SESSION_UNLOCK (substream->priv->session);
 
-
   if (codecbin)
     if (!fs_rtp_sub_stream_set_codecbin (substream, codec, codecbin,
             new_builder_hash, &error))