diff --git a/gst/realmedia/rdtmanager.c b/gst/realmedia/rdtmanager.c index 1f42dbdea7..3ee7bc159a 100644 --- a/gst/realmedia/rdtmanager.c +++ b/gst/realmedia/rdtmanager.c @@ -77,6 +77,7 @@ enum SIGNAL_ON_BYE_SSRC, SIGNAL_ON_BYE_TIMEOUT, SIGNAL_ON_TIMEOUT, + SIGNAL_ON_NPT_STOP, LAST_SIGNAL }; @@ -480,6 +481,21 @@ gst_rdt_manager_class_init (GstRDTManagerClass * g_class) NULL, NULL, gst_rdt_manager_marshal_VOID__UINT_UINT, G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT); + /** + * GstRDTManager::on-npt-stop: + * @rtpbin: the object which received the signal + * @session: the session + * @ssrc: the SSRC + * + * Notify that SSRC sender has sent data up to the configured NPT stop time. + */ + gst_rdt_manager_signals[SIGNAL_ON_NPT_STOP] = + g_signal_new ("on-npt-stop", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRDTManagerClass, on_npt_stop), + 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 = diff --git a/gst/realmedia/rdtmanager.h b/gst/realmedia/rdtmanager.h index 28168170e3..948c298c91 100644 --- a/gst/realmedia/rdtmanager.h +++ b/gst/realmedia/rdtmanager.h @@ -81,6 +81,7 @@ struct _GstRDTManagerClass { 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); + void (*on_npt_stop) (GstRDTManager *rtpdec, guint session, guint32 ssrc); }; GType gst_rdt_manager_get_type(void);