gst/rtpmanager/: Added custom marshallers for signals.
authorWim Taymans <wim.taymans@gmail.com>
Tue, 10 Apr 2007 09:14:07 +0000 (09:14 +0000)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 11 Aug 2009 01:30:24 +0000 (02:30 +0100)
Original commit message from CVS:
* gst/rtpmanager/.cvsignore:
* gst/rtpmanager/Makefile.am:
* gst/rtpmanager/gstrtpbin-marshal.list:
Added custom marshallers for signals.
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
* gst/rtpmanager/gstrtpbin.h:
Prepare for emiting pt map signals.
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init):
* gst/rtpmanager/gstrtpssrcdemux.c:
(gst_rtp_ssrc_demux_class_init):
Fix signals.

gst/rtpmanager/.gitignore [new file with mode: 0644]
gst/rtpmanager/Makefile.am
gst/rtpmanager/gstrtpbin-marshal.list [new file with mode: 0644]
gst/rtpmanager/gstrtpbin.c
gst/rtpmanager/gstrtpbin.h
gst/rtpmanager/gstrtpptdemux.c
gst/rtpmanager/gstrtpssrcdemux.c

diff --git a/gst/rtpmanager/.gitignore b/gst/rtpmanager/.gitignore
new file mode 100644 (file)
index 0000000..0962d99
--- /dev/null
@@ -0,0 +1,2 @@
+gstrtpbin-marshal.h
+gstrtpbin-marshal.c
index dc7f2a7..f844e47 100644 (file)
@@ -1,6 +1,15 @@
-
 plugin_LTLIBRARIES = libgstrtpmanager.la
 
+glib_enum_define = GST_RTP_BIN
+glib_enum_prefix = gst_rtp_bin
+
+include $(top_srcdir)/common/glib-gen.mak
+
+built_sources = gstrtpbin-marshal.c
+built_headers = gstrtpbin-marshal.h
+
+BUILT_SOURCES = $(built_sources) $(built_headers)
+
 libgstrtpmanager_la_SOURCES = gstrtpmanager.c \
                              gstrtpbin.c \
                              gstrtpclient.c \
@@ -10,6 +19,9 @@ libgstrtpmanager_la_SOURCES = gstrtpmanager.c \
                              gstrtpssrcdemux.c \
                              gstrtpsession.c
 
+nodist_libgstrtpmanager_la_SOURCES = \
+      $(built_sources)
+
 noinst_HEADERS = gstrtpbin.h \
                 gstrtpclient.h \
                  async_jitter_queue.h \
@@ -22,5 +34,8 @@ libgstrtpmanager_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(ERROR_CF
 libgstrtpmanager_la_LIBADD = $(GST_LIBS_LIBS)
 libgstrtpmanager_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_MAJORMINOR@
 
-EXTRA_DIST = 
+CLEANFILES = $(BUILT_SOURCES)
+
+EXTRA_DIST = gstrtpbin-marshal.list
+
 
diff --git a/gst/rtpmanager/gstrtpbin-marshal.list b/gst/rtpmanager/gstrtpbin-marshal.list
new file mode 100644 (file)
index 0000000..7ad3f16
--- /dev/null
@@ -0,0 +1,2 @@
+BOXED:UINT
+VOID:UINT,OBJECT
index 5f6551b..68d97f7 100644 (file)
@@ -41,6 +41,7 @@
 #endif
 #include <string.h>
 
+#include "gstrtpbin-marshal.h"
 #include "gstrtpbin.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_rtp_bin_debug);
@@ -108,7 +109,7 @@ struct _GstRTPBinPrivate
 /* signals and args */
 enum
 {
-  /* FILL ME */
+  SIGNAL_REQUEST_PT_MAP,
   LAST_SIGNAL
 };
 
@@ -319,7 +320,7 @@ static GstPad *gst_rtp_bin_request_new_pad (GstElement * element,
     GstPadTemplate * templ, const gchar * name);
 static void gst_rtp_bin_release_pad (GstElement * element, GstPad * pad);
 
-/*static guint gst_rtp_bin_signals[LAST_SIGNAL] = { 0 }; */
+static guint gst_rtp_bin_signals[LAST_SIGNAL] = { 0 };
 
 GST_BOILERPLATE (GstRTPBin, gst_rtp_bin, GstBin, GST_TYPE_BIN);
 
@@ -362,6 +363,12 @@ gst_rtp_bin_class_init (GstRTPBinClass * klass)
   gobject_class->set_property = gst_rtp_bin_set_property;
   gobject_class->get_property = gst_rtp_bin_get_property;
 
+  gst_rtp_bin_signals[SIGNAL_REQUEST_PT_MAP] =
+      g_signal_new ("request-pt-map", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTPBinClass, request_pt_map),
+      NULL, NULL, gst_rtp_bin_marshal_BOXED__UINT, GST_TYPE_CAPS, 1,
+      G_TYPE_UINT);
+
   gstelement_class->provide_clock =
       GST_DEBUG_FUNCPTR (gst_rtp_bin_provide_clock);
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_bin_change_state);
index f9cfdf2..53a1e5a 100644 (file)
@@ -50,6 +50,9 @@ struct _GstRTPBin {
 
 struct _GstRTPBinClass {
   GstBinClass  parent_class;
+
+  /* get the caps for pt */
+  GstCaps (*request_pt_map)  (GstRTPBin *rtpbin, guint pt);
 };
 
 GType gst_rtp_bin_get_type (void);
index d7ff34d..705210b 100644 (file)
 
 #include <string.h>
 #include <gst/gst.h>
-#include "gstrtpptdemux.h"
 #include <gst/rtp/gstrtpbuffer.h>
 
+#include "gstrtpbin-marshal.h"
+#include "gstrtpptdemux.h"
+
 /* generic templates */
 static GstStaticPadTemplate rtp_pt_demux_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -138,14 +140,14 @@ gst_rtp_pt_demux_class_init (GstRTPPtDemuxClass * klass)
       G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstRTPPtDemuxClass, new_payload_type),
       NULL, NULL,
-      g_cclosure_marshal_VOID__UINT_POINTER,
+      gst_rtp_bin_marshal_VOID__UINT_OBJECT,
       G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_PAD);
   gst_rtp_pt_demux_signals[SIGNAL_PAYLOAD_TYPE_CHANGE] =
       g_signal_new ("payload-type-change",
       G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstRTPPtDemuxClass, payload_type_change),
-      NULL, NULL, gst_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
+      NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
 
   gobject_klass->finalize = GST_DEBUG_FUNCPTR (gst_rtp_pt_demux_finalize);
 
index 3237100..17e421f 100644 (file)
@@ -26,6 +26,7 @@
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
 
+#include "gstrtpbin-marshal.h"
 #include "gstrtpssrcdemux.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_rtp_ssrc_demux_debug);
@@ -87,6 +88,7 @@ struct _GstRTPSsrcDemuxPad
 {
   GstPad *pad;
   guint32 ssrc;
+  GstCaps *caps;
 };
 
 /* find a src pad for a given SSRC, returns NULL if the SSRC was not found
@@ -167,8 +169,8 @@ gst_rtp_ssrc_demux_class_init (GstRTPSsrcDemuxClass * klass)
       g_signal_new ("new-ssrc-pad",
       G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstRTPSsrcDemuxClass, new_ssrc_pad),
-      NULL, NULL, g_cclosure_marshal_VOID__UINT_POINTER,
-      G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_PAD);
+      NULL, NULL, gst_rtp_bin_marshal_VOID__UINT_OBJECT,
+      G_TYPE_NONE, 2, G_TYPE_UINT, GST_TYPE_PAD);
 
   gstelement_klass->change_state =
       GST_DEBUG_FUNCPTR (gst_rtp_ssrc_demux_change_state);