mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
gst/realmedia/rdtmanager.*: Implement some more signals that rtspsrc connects to.
Original commit message from CVS: * gst/realmedia/rdtmanager.c: (gst_rdt_manager_marshal_VOID__UINT_UINT), (gst_rdt_manager_class_init): * gst/realmedia/rdtmanager.h: Implement some more signals that rtspsrc connects to. Fixes #504671.
This commit is contained in:
parent
341dbe135f
commit
2ea2d25c52
4 changed files with 108 additions and 3 deletions
|
@ -1,3 +1,12 @@
|
|||
2007-12-21 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||
|
||||
* gst/realmedia/rdtmanager.c:
|
||||
(gst_rdt_manager_marshal_VOID__UINT_UINT),
|
||||
(gst_rdt_manager_class_init):
|
||||
* gst/realmedia/rdtmanager.h:
|
||||
Implement some more signals that rtspsrc connects to.
|
||||
Fixes #504671.
|
||||
|
||||
2007-12-18 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
* Makefile.am:
|
||||
|
|
2
common
2
common
|
@ -1 +1 @@
|
|||
Subproject commit 67b8f4e3c576945f4d778c9040876af3a5a0756e
|
||||
Subproject commit 970759077c95ee4e85650db023ac6f974e2aa5e1
|
|
@ -72,6 +72,15 @@ enum
|
|||
{
|
||||
SIGNAL_REQUEST_PT_MAP,
|
||||
SIGNAL_CLEAR_PT_MAP,
|
||||
|
||||
SIGNAL_ON_NEW_SSRC,
|
||||
SIGNAL_ON_SSRC_COLLISION,
|
||||
SIGNAL_ON_SSRC_VALIDATED,
|
||||
SIGNAL_ON_SSRC_ACTIVE,
|
||||
SIGNAL_ON_SSRC_SDES,
|
||||
SIGNAL_ON_BYE_SSRC,
|
||||
SIGNAL_ON_BYE_TIMEOUT,
|
||||
SIGNAL_ON_TIMEOUT,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
|
@ -251,6 +260,37 @@ gst_rdt_manager_marshal_BOXED__UINT_UINT (GClosure * closure,
|
|||
g_value_take_boxed (return_value, v_return);
|
||||
}
|
||||
|
||||
void
|
||||
gst_rdt_manager_marshal_VOID__UINT_UINT (GClosure * closure,
|
||||
GValue * return_value,
|
||||
guint n_param_values,
|
||||
const GValue * param_values,
|
||||
gpointer invocation_hint, gpointer marshal_data)
|
||||
{
|
||||
typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer data1,
|
||||
guint arg_1, guint arg_2, gpointer data2);
|
||||
register GMarshalFunc_VOID__UINT_UINT callback;
|
||||
register GCClosure *cc = (GCClosure *) closure;
|
||||
register gpointer data1, data2;
|
||||
|
||||
g_return_if_fail (n_param_values == 3);
|
||||
|
||||
if (G_CCLOSURE_SWAP_DATA (closure)) {
|
||||
data1 = closure->data;
|
||||
data2 = g_value_peek_pointer (param_values + 0);
|
||||
} else {
|
||||
data1 = g_value_peek_pointer (param_values + 0);
|
||||
data2 = closure->data;
|
||||
}
|
||||
callback =
|
||||
(GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->
|
||||
callback);
|
||||
|
||||
callback (data1,
|
||||
g_marshal_value_peek_uint (param_values + 1),
|
||||
g_marshal_value_peek_uint (param_values + 2), data2);
|
||||
}
|
||||
|
||||
static void
|
||||
gst_rdt_manager_class_init (GstRDTManagerClass * g_class)
|
||||
{
|
||||
|
@ -285,11 +325,58 @@ gst_rdt_manager_class_init (GstRDTManagerClass * g_class)
|
|||
NULL, NULL, gst_rdt_manager_marshal_BOXED__UINT_UINT, GST_TYPE_CAPS, 2,
|
||||
G_TYPE_UINT, G_TYPE_UINT);
|
||||
|
||||
/**
|
||||
* GstRDTManager::clear-pt-map:
|
||||
* @rtpbin: the object which received the signal
|
||||
*
|
||||
* Clear all previously cached pt-mapping obtained with
|
||||
* GstRDTManager::request-pt-map.
|
||||
*/
|
||||
gst_rdt_manager_signals[SIGNAL_CLEAR_PT_MAP] =
|
||||
g_signal_new ("clear-pt-map", G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRDTManagerClass, clear_pt_map),
|
||||
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
|
||||
|
||||
/**
|
||||
* GstRDTManager::on-bye-ssrc:
|
||||
* @rtpbin: the object which received the signal
|
||||
* @session: the session
|
||||
* @ssrc: the SSRC
|
||||
*
|
||||
* Notify of an SSRC that became inactive because of a BYE packet.
|
||||
*/
|
||||
gst_rdt_manager_signals[SIGNAL_ON_BYE_SSRC] =
|
||||
g_signal_new ("on-bye-ssrc", G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRDTManagerClass, on_bye_ssrc),
|
||||
NULL, NULL, gst_rdt_manager_marshal_VOID__UINT_UINT, G_TYPE_NONE, 2,
|
||||
G_TYPE_UINT, G_TYPE_UINT);
|
||||
/**
|
||||
* GstRDTManager::on-bye-timeout:
|
||||
* @rtpbin: the object which received the signal
|
||||
* @session: the session
|
||||
* @ssrc: the SSRC
|
||||
*
|
||||
* Notify of an SSRC that has timed out because of BYE
|
||||
*/
|
||||
gst_rdt_manager_signals[SIGNAL_ON_BYE_TIMEOUT] =
|
||||
g_signal_new ("on-bye-timeout", G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRDTManagerClass, on_bye_timeout),
|
||||
NULL, NULL, gst_rdt_manager_marshal_VOID__UINT_UINT, G_TYPE_NONE, 2,
|
||||
G_TYPE_UINT, G_TYPE_UINT);
|
||||
/**
|
||||
* GstRDTManager::on-timeout:
|
||||
* @rtpbin: the object which received the signal
|
||||
* @session: the session
|
||||
* @ssrc: the SSRC
|
||||
*
|
||||
* Notify of an SSRC that has timed out
|
||||
*/
|
||||
gst_rdt_manager_signals[SIGNAL_ON_TIMEOUT] =
|
||||
g_signal_new ("on-timeout", G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRDTManagerClass, on_timeout),
|
||||
NULL, NULL, gst_rdt_manager_marshal_VOID__UINT_UINT, G_TYPE_NONE, 2,
|
||||
G_TYPE_UINT, G_TYPE_UINT);
|
||||
|
||||
gstelement_class->provide_clock =
|
||||
GST_DEBUG_FUNCPTR (gst_rdt_manager_provide_clock);
|
||||
gstelement_class->change_state =
|
||||
|
|
|
@ -69,9 +69,18 @@ struct _GstRDTManagerClass {
|
|||
GstElementClass parent_class;
|
||||
|
||||
/* get the caps for pt */
|
||||
GstCaps* (*request_pt_map) (GstRDTManager *rtpdec, guint session, guint pt);
|
||||
GstCaps* (*request_pt_map) (GstRDTManager *rtpdec, guint session, guint pt);
|
||||
|
||||
void (*clear_pt_map) (GstRDTManager *rtpdec);
|
||||
void (*clear_pt_map) (GstRDTManager *rtpdec);
|
||||
|
||||
void (*on_new_ssrc) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
void (*on_ssrc_collision) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
void (*on_ssrc_validated) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
void (*on_ssrc_active) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
void (*on_ssrc_sdes) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
void (*on_bye_ssrc) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
void (*on_bye_timeout) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
void (*on_timeout) (GstRDTManager *rtpdec, guint session, guint32 ssrc);
|
||||
};
|
||||
|
||||
GType gst_rdt_manager_get_type(void);
|
||||
|
|
Loading…
Reference in a new issue