Make the DtlsSrtpTransport cache the RtpAbsSendTimeHeaderExtension.

Add a method to DtlsSrtpTransport to cache the RTP Absolute Send Time
extension id. The method would be called when using DTLS-SRTP with
external authentication.

TBR=pthatcher@webrtc.org

Bug: webrtc:7013
Change-Id: Ie9edb9382cbb4cf43eea5da3030991a0d20293a5
Reviewed-on: https://webrtc-review.googlesource.com/27260
Commit-Queue: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20947}
This commit is contained in:
Zhi Huang 2017-11-29 15:41:59 -08:00 committed by Commit Bot
parent 90612a681b
commit 2a4d70cc93
3 changed files with 12 additions and 2 deletions

View File

@ -1077,6 +1077,9 @@ void BaseChannel::CacheRtpAbsSendTimeHeaderExtension_n(
if (sdes_transport_) {
sdes_transport_->CacheRtpAbsSendTimeHeaderExtension(
rtp_abs_sendtime_extn_id);
} else if (dtls_srtp_transport_) {
dtls_srtp_transport_->CacheRtpAbsSendTimeHeaderExtension(
rtp_abs_sendtime_extn_id);
} else {
RTC_LOG(LS_WARNING)
<< "Trying to cache the Absolute Send Time extension id "

View File

@ -46,6 +46,13 @@ class DtlsSrtpTransport : public RtpTransportInternalAdapter {
bool IsActive() { return srtp_transport_->IsActive(); }
// Cache RTP Absoulute SendTime extension header ID. This is only used when
// external authentication is enabled.
void CacheRtpAbsSendTimeHeaderExtension(int rtp_abs_sendtime_extn_id) {
srtp_transport_->CacheRtpAbsSendTimeHeaderExtension(
rtp_abs_sendtime_extn_id);
}
// TODO(zhihuang): Remove this when we remove RtpTransportAdapter.
RtpTransportAdapter* GetInternal() override { return nullptr; }

View File

@ -93,8 +93,8 @@ class SrtpTransport : public RtpTransportInternalAdapter {
// Returns rtp auth params from srtp context.
bool GetRtpAuthParams(uint8_t** key, int* key_len, int* tag_len);
// Helper method to get RTP Absoulute SendTime extension header id if
// present in remote supported extensions list.
// Cache RTP Absoulute SendTime extension header ID. This is only used when
// external authentication is enabled.
void CacheRtpAbsSendTimeHeaderExtension(int rtp_abs_sendtime_extn_id) {
rtp_abs_sendtime_extn_id_ = rtp_abs_sendtime_extn_id;
}