diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index b971fd3e3c..65b4b11db4 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -1883,15 +1883,9 @@ gst_rtp_session_setcaps_send_rtp (GstPad * pad, GstRtpSession * rtpsession, GstCaps * caps) { GstRtpSessionPrivate *priv; - GstStructure *s = gst_caps_get_structure (caps, 0); - guint ssrc; priv = rtpsession->priv; - if (gst_structure_get_uint (s, "ssrc", &ssrc)) { - 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 29bf7b6ea2..14edc55922 100644 --- a/gst/rtpmanager/rtpsession.c +++ b/gst/rtpmanager/rtpsession.c @@ -2440,11 +2440,19 @@ ignore: void rtp_session_update_send_caps (RTPSession * sess, GstCaps * caps) { + GstStructure *s; + guint ssrc; + g_return_if_fail (RTP_IS_SESSION (sess)); g_return_if_fail (GST_IS_CAPS (caps)); GST_LOG ("received caps %" GST_PTR_FORMAT, caps); + s = gst_caps_get_structure (caps, 0); + + if (gst_structure_get_uint (s, "ssrc", &ssrc)) + rtp_session_set_internal_ssrc (sess, ssrc); + RTP_SESSION_LOCK (sess); rtp_source_update_caps (sess->source, caps); RTP_SESSION_UNLOCK (sess);