From b99d637ab7d86e10624ee428d962cc3051f3308a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 10 Dec 2007 15:34:19 +0000 Subject: gst/rtpmanager/: Add signal to notify of an SDES change. Original commit message from CVS: * gst/rtpmanager/gstrtpbin.c: (on_ssrc_sdes), (create_session), (gst_rtp_bin_class_init): * gst/rtpmanager/gstrtpbin.h: * gst/rtpmanager/gstrtpclient.c: * gst/rtpmanager/gstrtpclient.h: * gst/rtpmanager/gstrtpjitterbuffer.h: * gst/rtpmanager/gstrtpmanager.c: * gst/rtpmanager/gstrtpptdemux.c: * gst/rtpmanager/gstrtpptdemux.h: * gst/rtpmanager/gstrtpsession.c: (on_ssrc_sdes), (gst_rtp_session_class_init), (gst_rtp_session_init): * gst/rtpmanager/gstrtpsession.h: * gst/rtpmanager/gstrtpssrcdemux.c: * gst/rtpmanager/gstrtpssrcdemux.h: * gst/rtpmanager/rtpjitterbuffer.c: * gst/rtpmanager/rtpjitterbuffer.h: * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), (on_ssrc_sdes), (rtp_session_process_sdes): * gst/rtpmanager/rtpsession.h: * gst/rtpmanager/rtpsource.c: * gst/rtpmanager/rtpsource.h: * gst/rtpmanager/rtpstats.c: * gst/rtpmanager/rtpstats.h: Add signal to notify of an SDES change. Fix object type in the signal callbacks. --- gst/rtpmanager/gstrtpsession.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'gst/rtpmanager/gstrtpsession.c') diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index 610bd55c..456f3abc 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -1,5 +1,5 @@ /* GStreamer - * Copyright (C) <2007> Wim Taymans + * Copyright (C) <2007> Wim Taymans * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -146,7 +146,7 @@ static const GstElementDetails rtpsession_details = GST_ELEMENT_DETAILS ("RTP Session", "Filter/Network/RTP", "Implement an RTP session", - "Wim Taymans "); + "Wim Taymans "); /* sink pads */ static GstStaticPadTemplate rtpsession_recv_rtp_sink_template = @@ -209,6 +209,7 @@ enum 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, @@ -337,6 +338,13 @@ on_ssrc_active (RTPSession * session, RTPSource * src, GstRtpSession * sess) src->ssrc); } +static void +on_ssrc_sdes (RTPSession * session, RTPSource * src, GstRtpSession * sess) +{ + g_signal_emit (sess, gst_rtp_session_signals[SIGNAL_ON_SSRC_SDES], 0, + src->ssrc); +} + static void on_bye_ssrc (RTPSession * session, RTPSource * src, GstRtpSession * sess) { @@ -471,6 +479,17 @@ gst_rtp_session_class_init (GstRtpSessionClass * klass) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpSessionClass, on_ssrc_active), NULL, NULL, g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT); + /** + * GstRtpSession::on-ssrc-sdes: + * @session: the object which received the signal + * @src: the SSRC + * + * Notify that a new SDES was received for SSRC. + */ + gst_rtp_session_signals[SIGNAL_ON_SSRC_SDES] = + g_signal_new ("on-ssrc-sdes", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRtpSessionClass, on_ssrc_sdes), + NULL, NULL, g_cclosure_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT); /** * GstRtpSession::on-bye-ssrc: @@ -596,6 +615,8 @@ gst_rtp_session_init (GstRtpSession * rtpsession, GstRtpSessionClass * klass) (GCallback) on_ssrc_validated, rtpsession); g_signal_connect (rtpsession->priv->session, "on-ssrc-active", (GCallback) on_ssrc_active, rtpsession); + g_signal_connect (rtpsession->priv->session, "on-ssrc-sdes", + (GCallback) on_ssrc_sdes, rtpsession); g_signal_connect (rtpsession->priv->session, "on-bye-ssrc", (GCallback) on_bye_ssrc, rtpsession); g_signal_connect (rtpsession->priv->session, "on-bye-timeout", -- cgit v1.2.1