[farsight2/master] Implement the various codec lists properties of FsRtpSession

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


---
 gst/fsrtpconference/fs-rtp-session.c |   42 ++++++++++++++++++++++++++++++++-
 1 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/gst/fsrtpconference/fs-rtp-session.c b/gst/fsrtpconference/fs-rtp-session.c
index 08a4daa..5bc0a51 100644
--- a/gst/fsrtpconference/fs-rtp-session.c
+++ b/gst/fsrtpconference/fs-rtp-session.c
@@ -96,12 +96,20 @@ struct _FsRtpSessionPrivate
   GstPad *rtpbin_recv_rtp_sink;
   GstPad *rtpbin_recv_rtcp_sink;
 
-  GError *construction_error;
-
   /* These lists are protected by the session mutex */
   GList *streams;
   GList *free_substreams;
 
+  GList *local_codecs_configuration;
+
+  GList *local_codecs;
+  GHashTable *local_codec_associations;
+
+  GList *negotiated_codecs;
+  GHashTable *negotiated_codec_associations;
+
+  GError *construction_error;
+
   GMutex *mutex;
 
   gboolean disposed;
@@ -372,6 +380,21 @@ fs_rtp_session_finalize (GObject *object)
 
   g_mutex_free (self->priv->mutex);
 
+  if (self->priv->local_codecs_configuration)
+    fs_codec_list_destroy (self->priv->local_codecs_configuration);
+
+  if (self->priv->local_codecs)
+    fs_codec_list_destroy (self->priv->local_codecs);
+
+  if (self->priv->local_codec_associations)
+    g_hash_table_destroy (self->priv->local_codec_associations);
+
+  if (self->priv->negotiated_codecs)
+    fs_codec_list_destroy (self->priv->negotiated_codecs);
+
+  if (self->priv->negotiated_codec_associations)
+    g_hash_table_destroy (self->priv->negotiated_codec_associations);
+
   parent_class->finalize (object);
 }
 
@@ -393,6 +416,15 @@ fs_rtp_session_get_property (GObject *object,
     case PROP_SINK_PAD:
       g_value_set_object (value, self->priv->media_sink_pad);
       break;
+    case PROP_LOCAL_CODECS:
+      g_value_set_boxed (value, self->priv->local_codecs);
+      break;
+    case PROP_LOCAL_CODECS_CONFIG:
+      g_value_set_boxed (value, self->priv->local_codecs_configuration);
+      break;
+    case PROP_NEGOTIATED_CODECS:
+      g_value_set_boxed (value, self->priv->negotiated_codecs);
+      break;
     case PROP_CONFERENCE:
       g_value_take_object (value, self->priv->conference);
       break;
@@ -417,6 +449,9 @@ fs_rtp_session_set_property (GObject *object,
     case PROP_ID:
       self->id = g_value_get_uint (value);
       break;
+    case PROP_LOCAL_CODECS_CONFIG:
+      self->priv->local_codecs_configuration = g_value_get_boxed (value);
+      break;
     case PROP_CONFERENCE:
       self->priv->conference = g_value_get_object (value);
       break;
@@ -1215,3 +1250,6 @@ fs_rtp_session_destroy_substream (FsRtpSession *session,
     substream->codecbin = NULL;
   }
 }
+
+
+
-- 
1.5.6.5




More information about the farsight-commits mailing list