Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Unified Diff: webrtc/pc/channel.h

Issue 2761143002: Support encrypted RTP extensions (RFC 6904) (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/pc/channel.h
diff --git a/webrtc/pc/channel.h b/webrtc/pc/channel.h
index 6ff0556c9798525ffbe3d29b739dc55085c8681c..2fb10edfa49c17f5e82b73605a68aa11f2b5ccc3 100644
--- a/webrtc/pc/channel.h
+++ b/webrtc/pc/channel.h
@@ -303,7 +303,8 @@ class BaseChannel
// Do the DTLS key expansion and impose it on the SRTP/SRTCP filters.
// |rtcp_channel| indicates whether to set up the RTP or RTCP filter.
bool SetupDtlsSrtp_n(bool rtcp);
- void MaybeSetupDtlsSrtp_n();
+ // Returns true if DTLS-SRTP has been setup.
+ bool MaybeSetupDtlsSrtp_n();
// Set the DTLS-SRTP cipher policy on this channel as appropriate.
bool SetDtlsSrtpCryptoSuites_n(DtlsTransportInternal* transport, bool rtcp);
@@ -341,6 +342,8 @@ class BaseChannel
// present in remote supported extensions list.
void MaybeCacheRtpAbsSendTimeHeaderExtension_w(
const std::vector<webrtc::RtpExtension>& extensions);
+ void PrepareHeaderExtensions_w(ContentSource source,
+ const std::vector<webrtc::RtpExtension>& extensions);
pthatcher1 2017/03/21 07:07:06 void PrepareRtpHeaderExtensions_w would be a bette
joachim 2017/03/23 00:04:33 Method has been removed.
bool CheckSrtpConfig_n(const std::vector<CryptoParams>& cryptos,
bool* dtls,
@@ -385,6 +388,8 @@ class BaseChannel
void SignalSentPacket_w(const rtc::SentPacket& sent_packet);
bool IsReadyToSendMedia_n() const;
void CacheRtpAbsSendTimeHeaderExtension_n(int rtp_abs_sendtime_extn_id);
+ void PrepareHeaderExtensions_n(ContentSource source,
+ const std::vector<webrtc::RtpExtension> encrypted_headers);
int GetTransportOverheadPerPacket() const;
void UpdateTransportOverhead();
@@ -423,6 +428,15 @@ class BaseChannel
const bool srtp_required_ = true;
rtc::CryptoOptions crypto_options_;
int rtp_abs_sendtime_extn_id_ = -1;
+ std::vector<webrtc::RtpExtension> rtp_local_encrypted_headers_;
+ std::vector<webrtc::RtpExtension> rtp_remote_encrypted_headers_;
+
+ static const int kNoEncryptedHeadersReady = 0;
+ static const int kLocalEncryptedHeadersReady = 1;
+ static const int kRemoteEncryptedHeadersReady = 2;
+ static const int kAllEncryptedHeadersReady =
+ kLocalEncryptedHeadersReady | kRemoteEncryptedHeadersReady;
+ int rtp_encrypted_headers_ready_ = kNoEncryptedHeadersReady;
Taylor Brandstetter 2017/03/22 18:00:11 Can this extra state be derived from existing info
joachim 2017/03/23 00:04:33 I completely removed the extra state.
// MediaChannel related members that should be accessed from the worker
// thread.

Powered by Google App Engine
This is Rietveld 408576698