gst/rtpmanager/: Added custom marshallers for signals.

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.
This commit is contained in:
Wim Taymans 2007-04-10 09:14:07 +00:00 committed by Tim-Philipp Müller
parent a6aa41dc21
commit 8c67b5d7dd
7 changed files with 42 additions and 9 deletions

2
gst/rtpmanager/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
gstrtpbin-marshal.h
gstrtpbin-marshal.c

View file

@ -1,6 +1,15 @@
plugin_LTLIBRARIES = libgstrtpmanager.la 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 \ libgstrtpmanager_la_SOURCES = gstrtpmanager.c \
gstrtpbin.c \ gstrtpbin.c \
gstrtpclient.c \ gstrtpclient.c \
@ -10,6 +19,9 @@ libgstrtpmanager_la_SOURCES = gstrtpmanager.c \
gstrtpssrcdemux.c \ gstrtpssrcdemux.c \
gstrtpsession.c gstrtpsession.c
nodist_libgstrtpmanager_la_SOURCES = \
$(built_sources)
noinst_HEADERS = gstrtpbin.h \ noinst_HEADERS = gstrtpbin.h \
gstrtpclient.h \ gstrtpclient.h \
async_jitter_queue.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_LIBADD = $(GST_LIBS_LIBS)
libgstrtpmanager_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstrtp-@GST_MAJORMINOR@ 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

View file

@ -0,0 +1,2 @@
BOXED:UINT
VOID:UINT,OBJECT

View file

@ -41,6 +41,7 @@
#endif #endif
#include <string.h> #include <string.h>
#include "gstrtpbin-marshal.h"
#include "gstrtpbin.h" #include "gstrtpbin.h"
GST_DEBUG_CATEGORY_STATIC (gst_rtp_bin_debug); GST_DEBUG_CATEGORY_STATIC (gst_rtp_bin_debug);
@ -108,7 +109,7 @@ struct _GstRTPBinPrivate
/* signals and args */ /* signals and args */
enum enum
{ {
/* FILL ME */ SIGNAL_REQUEST_PT_MAP,
LAST_SIGNAL LAST_SIGNAL
}; };
@ -319,7 +320,7 @@ static GstPad *gst_rtp_bin_request_new_pad (GstElement * element,
GstPadTemplate * templ, const gchar * name); GstPadTemplate * templ, const gchar * name);
static void gst_rtp_bin_release_pad (GstElement * element, GstPad * pad); 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); 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->set_property = gst_rtp_bin_set_property;
gobject_class->get_property = gst_rtp_bin_get_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 = gstelement_class->provide_clock =
GST_DEBUG_FUNCPTR (gst_rtp_bin_provide_clock); GST_DEBUG_FUNCPTR (gst_rtp_bin_provide_clock);
gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_bin_change_state); gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_bin_change_state);

View file

@ -50,6 +50,9 @@ struct _GstRTPBin {
struct _GstRTPBinClass { struct _GstRTPBinClass {
GstBinClass parent_class; GstBinClass parent_class;
/* get the caps for pt */
GstCaps (*request_pt_map) (GstRTPBin *rtpbin, guint pt);
}; };
GType gst_rtp_bin_get_type (void); GType gst_rtp_bin_get_type (void);

View file

@ -48,9 +48,11 @@
#include <string.h> #include <string.h>
#include <gst/gst.h> #include <gst/gst.h>
#include "gstrtpptdemux.h"
#include <gst/rtp/gstrtpbuffer.h> #include <gst/rtp/gstrtpbuffer.h>
#include "gstrtpbin-marshal.h"
#include "gstrtpptdemux.h"
/* generic templates */ /* generic templates */
static GstStaticPadTemplate rtp_pt_demux_sink_template = static GstStaticPadTemplate rtp_pt_demux_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink", GST_STATIC_PAD_TEMPLATE ("sink",
@ -138,14 +140,14 @@ gst_rtp_pt_demux_class_init (GstRTPPtDemuxClass * klass)
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstRTPPtDemuxClass, new_payload_type), G_STRUCT_OFFSET (GstRTPPtDemuxClass, new_payload_type),
NULL, NULL, 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); G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_PAD);
gst_rtp_pt_demux_signals[SIGNAL_PAYLOAD_TYPE_CHANGE] = gst_rtp_pt_demux_signals[SIGNAL_PAYLOAD_TYPE_CHANGE] =
g_signal_new ("payload-type-change", g_signal_new ("payload-type-change",
G_TYPE_FROM_CLASS (klass), G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstRTPPtDemuxClass, payload_type_change), 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); gobject_klass->finalize = GST_DEBUG_FUNCPTR (gst_rtp_pt_demux_finalize);

View file

@ -26,6 +26,7 @@
#include <string.h> #include <string.h>
#include <gst/rtp/gstrtpbuffer.h> #include <gst/rtp/gstrtpbuffer.h>
#include "gstrtpbin-marshal.h"
#include "gstrtpssrcdemux.h" #include "gstrtpssrcdemux.h"
GST_DEBUG_CATEGORY_STATIC (gst_rtp_ssrc_demux_debug); GST_DEBUG_CATEGORY_STATIC (gst_rtp_ssrc_demux_debug);
@ -87,6 +88,7 @@ struct _GstRTPSsrcDemuxPad
{ {
GstPad *pad; GstPad *pad;
guint32 ssrc; guint32 ssrc;
GstCaps *caps;
}; };
/* find a src pad for a given SSRC, returns NULL if the SSRC was not found /* 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_signal_new ("new-ssrc-pad",
G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstRTPSsrcDemuxClass, new_ssrc_pad), G_STRUCT_OFFSET (GstRTPSsrcDemuxClass, new_ssrc_pad),
NULL, NULL, g_cclosure_marshal_VOID__UINT_POINTER, NULL, NULL, gst_rtp_bin_marshal_VOID__UINT_OBJECT,
G_TYPE_NONE, 2, G_TYPE_INT, GST_TYPE_PAD); G_TYPE_NONE, 2, G_TYPE_UINT, GST_TYPE_PAD);
gstelement_klass->change_state = gstelement_klass->change_state =
GST_DEBUG_FUNCPTR (gst_rtp_ssrc_demux_change_state); GST_DEBUG_FUNCPTR (gst_rtp_ssrc_demux_change_state);