[farsight2/master] Rename it back to FsRtpSpecialSource (its more descriptive)

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


---
 gst/fsrtpconference/Makefile.am             |    4 +-
 gst/fsrtpconference/fs-rtp-special-codec.c  |  233 ---------------------------
 gst/fsrtpconference/fs-rtp-special-codec.h  |   95 -----------
 gst/fsrtpconference/fs-rtp-special-source.c |  233 +++++++++++++++++++++++++++
 gst/fsrtpconference/fs-rtp-special-source.h |   95 +++++++++++
 5 files changed, 330 insertions(+), 330 deletions(-)
 delete mode 100644 gst/fsrtpconference/fs-rtp-special-codec.c
 delete mode 100644 gst/fsrtpconference/fs-rtp-special-codec.h
 create mode 100644 gst/fsrtpconference/fs-rtp-special-source.c
 create mode 100644 gst/fsrtpconference/fs-rtp-special-source.h

diff --git a/gst/fsrtpconference/Makefile.am b/gst/fsrtpconference/Makefile.am
index 003cb0a..8cc0ffd 100644
--- a/gst/fsrtpconference/Makefile.am
+++ b/gst/fsrtpconference/Makefile.am
@@ -10,7 +10,7 @@ libfsrtpconference_la_SOURCES = gstfsrtpconference.c \
 	fs-rtp-codec-cache.c \
 	fs-rtp-codec-negotiation.c \
 	fs-rtp-specific-nego.c \
-	fs-rtp-special-codec.c
+	fs-rtp-special-source.c
 
 libfsrtpconference_la_CFLAGS = $(FS2_INTERNAL_CFLAGS) $(FS2_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 libfsrtpconference_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
@@ -29,4 +29,4 @@ noinst_HEADERS = \
 	fs-rtp-codec-cache.h \
 	fs-rtp-codec-negotiation.h \
 	fs-rtp-specific-nego.h \
-	fs-rtp-special-codec.h
+	fs-rtp-special-source.h
diff --git a/gst/fsrtpconference/fs-rtp-special-codec.c b/gst/fsrtpconference/fs-rtp-special-codec.c
deleted file mode 100644
index f0cc5b6..0000000
--- a/gst/fsrtpconference/fs-rtp-special-codec.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Farsight2 - Farsight RTP Special Codec
- *
- * Copyright 2007 Collabora Ltd.
- *  @author: Olivier Crete <olivier.crete at collabora.co.uk>
- * Copyright 2007 Nokia Corp.
- *
- * fs-rtp-substream.c - A Farsight RTP Substream gobject
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "fs-rtp-special-codec.h"
-
-#define GST_CAT_DEFAULT fsrtpconference_debug
-
-/**
- * SECTION:fs-rtp-special-codec
- * @short_description: Base class to abstract how special codecs are handled
- *
- * This class defines how special codecs can be handled, it is the base
- * for DMTF and CN sources.
- *
- */
-
-
-#define DEFAULT_NO_RTCP_TIMEOUT (7000)
-
-struct _FsRtpSpecialCodecPrivate {
-  gboolean disposed;
-};
-
-static GObjectClass *parent_class = NULL;
-
-static GList *classes = NULL;
-
-G_DEFINE_ABSTRACT_TYPE(FsRtpSpecialCodec, fs_rtp_special_codec, G_TYPE_OBJECT);
-
-#define FS_RTP_SPECIAL_CODEC_GET_PRIVATE(o)                                 \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((o), FS_TYPE_RTP_SPECIAL_CODEC,             \
-   FsRtpSpecialCodecPrivate))
-
-static void fs_rtp_special_codec_dispose (GObject *object);
-
-static FsRtpSpecialCodec *
-fs_rtp_special_codec_new (FsRtpSpecialCodecClass *klass,
-    GList *negotiated_codecs,
-    GError **error);
-static gboolean
-fs_rtp_special_codec_update (FsRtpSpecialCodec *codec,
-    GList *negotiated_codecs);
-
-static void
-fs_rtp_special_codec_class_init (FsRtpSpecialCodecClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-  parent_class = fs_rtp_special_codec_parent_class;
-
-  gobject_class->dispose = fs_rtp_special_codec_dispose;
-
-  if (!classes)
-  {
-    //classes = g_list_prepend (classes, g_type_ref_class(GTYPE1));
-  }
-}
-
-
-static void
-fs_rtp_special_codec_init (FsRtpSpecialCodec *self)
-{
-  self->priv = FS_RTP_SPECIAL_CODEC_GET_PRIVATE (self);
-  self->priv->disposed = FALSE;
-}
-
-static void
-fs_rtp_special_codec_dispose (GObject *object)
-{
-  FsRtpSpecialCodec *self = FS_RTP_SPECIAL_CODEC (object);
-
-  if (self->priv->disposed)
-    return;
-
-  self->priv->disposed = TRUE;
-  G_OBJECT_CLASS (fs_rtp_special_codec_parent_class)->dispose (object);
-}
-
-
-static GList*
-fs_rtp_special_codec_class_add_blueprint (FsRtpSpecialCodecClass *klass,
-    GList *blueprints)
-{
-  if (klass->add_blueprint)
-    return klass->add_blueprint (klass, blueprints);
-
-  return blueprints;
-}
-
-static gboolean
-fs_rtp_special_codec_class_want_codec (FsRtpSpecialCodecClass *klass,
-    GList *negotiated_codecs)
-{
-  if (klass->want_codec)
-    return klass->want_codec (klass, negotiated_codecs);
-
-  return FALSE;
-}
-
-GList *
-fs_rtp_special_codecs_add_blueprints (GList *blueprints)
-{
-  GList *item = NULL;
-
-  for (item = g_list_first (classes);
-       item;
-       item = g_list_next (item))
-  {
-    FsRtpSpecialCodecClass *klass = item->data;
-    blueprints = fs_rtp_special_codec_class_add_blueprint (klass, blueprints);
-  }
-
-  return blueprints;
-}
-
-/**
- * fs_rtp_special_codecs_update:
- * @current_extra_codecs: The #GList returned by previous calls to this function
- * @negotiated_codecs: A #GList of current negotiated #FsCodec
- * @error: NULL or the local of a #GError
- *
- * This function checks which extra codecs are currently being used and
- * which should be used according to currently negotiated codecs. It then
- * creates, destroys or modifies the list accordingly
- *
- * Returns: A #GList to be passed to other functions in this class
- */
-
-GList *
-fs_rtp_special_codecs_update (
-    GList *current_extra_codecs,
-    GList *negotiated_codecs,
-    GError **error)
-{
-  GList *klass_item = NULL;
-
-  for (klass_item = g_list_first (classes);
-       klass_item;
-       klass_item = g_list_next (klass_item))
-  {
-    FsRtpSpecialCodecClass *klass = klass_item->data;
-    GList *obj_item;
-    FsRtpSpecialCodec *obj = NULL;
-
-    /* Check if we already have an object for this type */
-    for (obj_item = g_list_first (current_extra_codecs);
-         obj_item;
-         obj_item = g_list_next (obj_item))
-    {
-      obj = obj_item->data;
-      if (G_OBJECT_TYPE(obj) == G_OBJECT_CLASS_TYPE(klass))
-        break;
-    }
-
-    if (obj_item)
-    {
-      if (fs_rtp_special_codec_class_want_codec (klass, negotiated_codecs))
-      {
-        if (!fs_rtp_special_codec_update (obj, negotiated_codecs))
-        {
-          current_extra_codecs = g_list_remove (current_extra_codecs, obj);
-          g_object_unref (obj);
-          obj = fs_rtp_special_codec_new (klass, negotiated_codecs, error);
-          if (!obj)
-            goto error;
-          current_extra_codecs = g_list_prepend (current_extra_codecs, obj);
-        }
-      }
-      else
-      {
-        current_extra_codecs = g_list_remove (current_extra_codecs, obj);
-        g_object_unref (obj);
-      }
-    }
-    else
-    {
-      if (fs_rtp_special_codec_class_want_codec (klass, negotiated_codecs))
-      {
-        obj = fs_rtp_special_codec_new (klass, negotiated_codecs, error);
-        if (!obj)
-          goto error;
-        current_extra_codecs = g_list_prepend (current_extra_codecs, obj);
-      }
-    }
-  }
-
-  error:
-
-  return current_extra_codecs;
-}
-
-
-static FsRtpSpecialCodec *
-fs_rtp_special_codec_new (FsRtpSpecialCodecClass *klass,
-    GList *negotiated_codecs,
-    GError **error)
-{
-  /* STUB */
-  return NULL;
-}
-
-static gboolean
-fs_rtp_special_codec_update (FsRtpSpecialCodec *codec,
-    GList *negotiated_codecs)
-{
-  return FALSE;
-}
diff --git a/gst/fsrtpconference/fs-rtp-special-codec.h b/gst/fsrtpconference/fs-rtp-special-codec.h
deleted file mode 100644
index 2c9f9b2..0000000
--- a/gst/fsrtpconference/fs-rtp-special-codec.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Farsight2 - Farsight RTP Special Codec
- *
- * Copyright 2007 Collabora Ltd.
- *  @author: Olivier Crete <olivier.crete at collabora.co.uk>
- * Copyright 2007 Nokia Corp.
- *
- * fs-rtp-substream.h - A Farsight RTP Substream gobject
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
- */
-
-
-#ifndef __FS_RTP_SPECIAL_CODEC_H__
-#define __FS_RTP_SPECIAL_CODEC_H__
-
-#include <gst/gst.h>
-
-G_BEGIN_DECLS
-
-/* TYPE MACROS */
-#define FS_TYPE_RTP_SPECIAL_CODEC \
-  (fs_rtp_special_codec_get_type())
-#define FS_RTP_SPECIAL_CODEC(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj), FS_TYPE_RTP_SPECIAL_CODEC, \
-      FsRtpSpecialCodec))
-#define FS_RTP_SPECIAL_CODEC_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST((klass), FS_TYPE_RTP_SPECIAL_CODEC, \
-     FsRtpSpecialCodecClass))
-#define FS_IS_RTP_SPECIAL_CODEC(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj), FS_TYPE_RTP_SPECIAL_CODEC))
-#define FS_IS_RTP_SPECIAL_CODEC_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), FS_TYPE_RTP_SPECIAL_CODEC))
-#define FS_RTP_SPECIAL_CODEC_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), FS_TYPE_RTP_SPECIAL_CODEC,   \
-    FsRtpSpecialCodecClass))
-#define FS_RTP_SPECIAL_CODEC_CAST(obj) ((FsRtpSpecialCodec*) (obj))
-
-typedef struct _FsRtpSpecialCodec FsRtpSpecialCodec;
-typedef struct _FsRtpSpecialCodecClass FsRtpSpecialCodecClass;
-typedef struct _FsRtpSpecialCodecPrivate FsRtpSpecialCodecPrivate;
-
-struct _FsRtpSpecialCodecClass
-{
-  GObjectClass parent_class;
-
-  /* Object methods */
-
-  gboolean (*update) (FsRtpSpecialCodec *codec,
-      GList *negotiated_codecs);
-
-  /* Class methods */
-  gboolean (*want_codec) (FsRtpSpecialCodecClass *klass,
-      GList *negotiated_codecs);
-
-  GList* (*add_blueprint) (FsRtpSpecialCodecClass *klass,
-      GList *blueprints);
-};
-
-/**
- * FsRtpSpecialCodec:
- *
- */
-struct _FsRtpSpecialCodec
-{
-  GObject parent;
-  FsRtpSpecialCodecPrivate *priv;
-};
-
-GType fs_rtp_special_codec_get_type (void);
-
-GList *
-fs_rtp_special_codecs_update (
-    GList *current_extra_codecs,
-    GList *negotiated_codecs,
-    GError **error);
-
-GList *
-fs_rtp_special_codecs_add_blueprints (GList *blueprints);
-
-G_END_DECLS
-
-#endif /* __FS_RTP_SPECIAL_CODEC_H__ */
diff --git a/gst/fsrtpconference/fs-rtp-special-source.c b/gst/fsrtpconference/fs-rtp-special-source.c
new file mode 100644
index 0000000..d1d94d4
--- /dev/null
+++ b/gst/fsrtpconference/fs-rtp-special-source.c
@@ -0,0 +1,233 @@
+/*
+ * Farsight2 - Farsight RTP Special Codec
+ *
+ * Copyright 2007 Collabora Ltd.
+ *  @author: Olivier Crete <olivier.crete at collabora.co.uk>
+ * Copyright 2007 Nokia Corp.
+ *
+ * fs-rtp-substream.c - A Farsight RTP Substream gobject
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "fs-rtp-special-source.h"
+
+#define GST_CAT_DEFAULT fsrtpconference_debug
+
+/**
+ * SECTION:fs-rtp-special-source
+ * @short_description: Base class to abstract how special sources are handled
+ *
+ * This class defines how special sources can be handled, it is the base
+ * for DMTF and CN sources.
+ *
+ */
+
+
+#define DEFAULT_NO_RTCP_TIMEOUT (7000)
+
+struct _FsRtpSpecialSourcePrivate {
+  gboolean disposed;
+};
+
+static GObjectClass *parent_class = NULL;
+
+static GList *classes = NULL;
+
+G_DEFINE_ABSTRACT_TYPE(FsRtpSpecialSource, fs_rtp_special_source, G_TYPE_OBJECT);
+
+#define FS_RTP_SPECIAL_SOURCE_GET_PRIVATE(o)                                 \
+  (G_TYPE_INSTANCE_GET_PRIVATE ((o), FS_TYPE_RTP_SPECIAL_SOURCE,             \
+   FsRtpSpecialSourcePrivate))
+
+static void fs_rtp_special_source_dispose (GObject *object);
+
+static FsRtpSpecialSource *
+fs_rtp_special_source_new (FsRtpSpecialSourceClass *klass,
+    GList *negotiated_sources,
+    GError **error);
+static gboolean
+fs_rtp_special_source_update (FsRtpSpecialSource *source,
+    GList *negotiated_sources);
+
+static void
+fs_rtp_special_source_class_init (FsRtpSpecialSourceClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  parent_class = fs_rtp_special_source_parent_class;
+
+  gobject_class->dispose = fs_rtp_special_source_dispose;
+
+  if (!classes)
+  {
+    //classes = g_list_prepend (classes, g_type_ref_class(GTYPE1));
+  }
+}
+
+
+static void
+fs_rtp_special_source_init (FsRtpSpecialSource *self)
+{
+  self->priv = FS_RTP_SPECIAL_SOURCE_GET_PRIVATE (self);
+  self->priv->disposed = FALSE;
+}
+
+static void
+fs_rtp_special_source_dispose (GObject *object)
+{
+  FsRtpSpecialSource *self = FS_RTP_SPECIAL_SOURCE (object);
+
+  if (self->priv->disposed)
+    return;
+
+  self->priv->disposed = TRUE;
+  G_OBJECT_CLASS (fs_rtp_special_source_parent_class)->dispose (object);
+}
+
+
+static GList*
+fs_rtp_special_source_class_add_blueprint (FsRtpSpecialSourceClass *klass,
+    GList *blueprints)
+{
+  if (klass->add_blueprint)
+    return klass->add_blueprint (klass, blueprints);
+
+  return blueprints;
+}
+
+static gboolean
+fs_rtp_special_source_class_want_source (FsRtpSpecialSourceClass *klass,
+    GList *negotiated_sources)
+{
+  if (klass->want_source)
+    return klass->want_source (klass, negotiated_sources);
+
+  return FALSE;
+}
+
+GList *
+fs_rtp_special_sources_add_blueprints (GList *blueprints)
+{
+  GList *item = NULL;
+
+  for (item = g_list_first (classes);
+       item;
+       item = g_list_next (item))
+  {
+    FsRtpSpecialSourceClass *klass = item->data;
+    blueprints = fs_rtp_special_source_class_add_blueprint (klass, blueprints);
+  }
+
+  return blueprints;
+}
+
+/**
+ * fs_rtp_special_sources_update:
+ * @current_extra_sources: The #GList returned by previous calls to this function
+ * @negotiated_codecs: A #GList of current negotiated #FsCodec
+ * @error: NULL or the local of a #GError
+ *
+ * This function checks which extra sources are currently being used and
+ * which should be used according to currently negotiated codecs. It then
+ * creates, destroys or modifies the list accordingly
+ *
+ * Returns: A #GList to be passed to other functions in this class
+ */
+
+GList *
+fs_rtp_special_sources_update (
+    GList *current_extra_sources,
+    GList *negotiated_codecs,
+    GError **error)
+{
+  GList *klass_item = NULL;
+
+  for (klass_item = g_list_first (classes);
+       klass_item;
+       klass_item = g_list_next (klass_item))
+  {
+    FsRtpSpecialSourceClass *klass = klass_item->data;
+    GList *obj_item;
+    FsRtpSpecialSource *obj = NULL;
+
+    /* Check if we already have an object for this type */
+    for (obj_item = g_list_first (current_extra_sources);
+         obj_item;
+         obj_item = g_list_next (obj_item))
+    {
+      obj = obj_item->data;
+      if (G_OBJECT_TYPE(obj) == G_OBJECT_CLASS_TYPE(klass))
+        break;
+    }
+
+    if (obj_item)
+    {
+      if (fs_rtp_special_source_class_want_source (klass, negotiated_codecs))
+      {
+        if (!fs_rtp_special_source_update (obj, negotiated_codecs))
+        {
+          current_extra_sources = g_list_remove (current_extra_sources, obj);
+          g_object_unref (obj);
+          obj = fs_rtp_special_source_new (klass, negotiated_codecs, error);
+          if (!obj)
+            goto error;
+          current_extra_sources = g_list_prepend (current_extra_sources, obj);
+        }
+      }
+      else
+      {
+        current_extra_sources = g_list_remove (current_extra_sources, obj);
+        g_object_unref (obj);
+      }
+    }
+    else
+    {
+      if (fs_rtp_special_source_class_want_source (klass, negotiated_codecs))
+      {
+        obj = fs_rtp_special_source_new (klass, negotiated_codecs, error);
+        if (!obj)
+          goto error;
+        current_extra_sources = g_list_prepend (current_extra_sources, obj);
+      }
+    }
+  }
+
+  error:
+
+  return current_extra_sources;
+}
+
+
+static FsRtpSpecialSource *
+fs_rtp_special_source_new (FsRtpSpecialSourceClass *klass,
+    GList *negotiated_sources,
+    GError **error)
+{
+  /* STUB */
+  return NULL;
+}
+
+static gboolean
+fs_rtp_special_source_update (FsRtpSpecialSource *source,
+    GList *negotiated_sources)
+{
+  return FALSE;
+}
diff --git a/gst/fsrtpconference/fs-rtp-special-source.h b/gst/fsrtpconference/fs-rtp-special-source.h
new file mode 100644
index 0000000..52f4899
--- /dev/null
+++ b/gst/fsrtpconference/fs-rtp-special-source.h
@@ -0,0 +1,95 @@
+/*
+ * Farsight2 - Farsight RTP Special Source
+ *
+ * Copyright 2007 Collabora Ltd.
+ *  @author: Olivier Crete <olivier.crete at collabora.co.uk>
+ * Copyright 2007 Nokia Corp.
+ *
+ * fs-rtp-substream.h - A Farsight RTP Substream gobject
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA
+ */
+
+
+#ifndef __FS_RTP_SPECIAL_SOURCE_H__
+#define __FS_RTP_SPECIAL_SOURCE_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+/* TYPE MACROS */
+#define FS_TYPE_RTP_SPECIAL_SOURCE \
+  (fs_rtp_special_source_get_type())
+#define FS_RTP_SPECIAL_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj), FS_TYPE_RTP_SPECIAL_SOURCE, \
+      FsRtpSpecialSource))
+#define FS_RTP_SPECIAL_SOURCE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), FS_TYPE_RTP_SPECIAL_SOURCE, \
+     FsRtpSpecialSourceClass))
+#define FS_IS_RTP_SPECIAL_SOURCE(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj), FS_TYPE_RTP_SPECIAL_SOURCE))
+#define FS_IS_RTP_SPECIAL_SOURCE_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass), FS_TYPE_RTP_SPECIAL_SOURCE))
+#define FS_RTP_SPECIAL_SOURCE_GET_CLASS(obj) \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj), FS_TYPE_RTP_SPECIAL_SOURCE,   \
+    FsRtpSpecialSourceClass))
+#define FS_RTP_SPECIAL_SOURCE_CAST(obj) ((FsRtpSpecialSource*) (obj))
+
+typedef struct _FsRtpSpecialSource FsRtpSpecialSource;
+typedef struct _FsRtpSpecialSourceClass FsRtpSpecialSourceClass;
+typedef struct _FsRtpSpecialSourcePrivate FsRtpSpecialSourcePrivate;
+
+struct _FsRtpSpecialSourceClass
+{
+  GObjectClass parent_class;
+
+  /* Object methods */
+
+  gboolean (*update) (FsRtpSpecialSource *source,
+      GList *negotiated_codecs);
+
+  /* Class methods */
+  gboolean (*want_source) (FsRtpSpecialSourceClass *klass,
+      GList *negotiated_codecs);
+
+  GList* (*add_blueprint) (FsRtpSpecialSourceClass *klass,
+      GList *blueprints);
+};
+
+/**
+ * FsRtpSpecialSource:
+ *
+ */
+struct _FsRtpSpecialSource
+{
+  GObject parent;
+  FsRtpSpecialSourcePrivate *priv;
+};
+
+GType fs_rtp_special_source_get_type (void);
+
+GList *
+fs_rtp_special_sources_update (
+    GList *current_extra_sources,
+    GList *negotiated_codecs,
+    GError **error);
+
+GList *
+fs_rtp_special_sources_add_blueprints (GList *blueprints);
+
+G_END_DECLS
+
+#endif /* __FS_RTP_SPECIAL_SOURCE_H__ */
-- 
1.5.6.5




More information about the farsight-commits mailing list