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.
This commit is contained in:
Wim Taymans 2012-10-17 13:15:48 +02:00
parent f4eef3f48d
commit f17db5c4ed
3 changed files with 23 additions and 0 deletions

View file

@ -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;
}

View file

@ -2454,6 +2454,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

View file

@ -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);