From: Wim Taymans Date: Wed, 17 Oct 2012 11:15:48 +0000 (+0200) Subject: rtpsession: update caps in the source X-Git-Tag: 1.19.3~509^2~6450 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f17db5c4ed79578fd22c95fca12944d4c0f41d7d;p=platform%2Fupstream%2Fgstreamer.git rtpsession: update caps in the source Inform the source when caps changed. This was removed in the port to 1.0 leaving the source unaware of the clock-rate and unable to interpollate rtp timestamps for SR packets. --- diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index dc2d364..271e951 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -1785,6 +1785,8 @@ gst_rtp_session_setcaps_send_rtp (GstPad * pad, GstRtpSession * rtpsession, GST_DEBUG_OBJECT (rtpsession, "setting internal SSRC to %08x", ssrc); rtp_session_set_internal_ssrc (priv->session, ssrc); } + rtp_session_update_send_caps (priv->session, caps); + return TRUE; } diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c index e3fec66..4e27a6a 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -2455,6 +2455,26 @@ ignore: } /** + * rtp_session_update_send_caps: + * @sess: an #RTPSession + * @caps: a #GstCaps + * + * Update the caps of the sender in the rtp session. + */ +void +rtp_session_update_send_caps (RTPSession * sess, GstCaps * caps) +{ + g_return_val_if_fail (RTP_IS_SESSION (sess), GST_FLOW_ERROR); + g_return_val_if_fail (GST_IS_CAPS (caps), GST_FLOW_ERROR); + + GST_LOG ("received caps %" GST_PTR_FORMAT, caps); + + RTP_SESSION_LOCK (sess); + rtp_source_update_caps (sess->source, caps); + RTP_SESSION_UNLOCK (sess); +} + +/** * rtp_session_send_rtp: * @sess: an #RTPSession * @data: pointer to either an RTP buffer or a list of RTP buffers diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h index d1cdcdc..46a2349 100644 --- a/gst/rtpmanager/rtpsession.h +++ b/gst/rtpmanager/rtpsession.h @@ -333,6 +333,7 @@ GstFlowReturn rtp_session_process_rtcp (RTPSession *sess, GstBuffer guint64 ntpnstime); /* processing packets for sending */ +void rtp_session_update_send_caps (RTPSession *sess, GstCaps *caps); GstFlowReturn rtp_session_send_rtp (RTPSession *sess, gpointer data, gboolean is_list, GstClockTime current_time, GstClockTime running_time);