Add signaling to support ICE renomination.
By default, this will tell the remote side that I am supporting ICE renomination.
It does not use ICE renomination yet even if the remote side supports it.
R=deadbeef@webrtc.org, pthatcher@webrtc.org, skvlad@webrtc.org
Review URL: https://codereview.webrtc.org/2224563004 .
Cr-Commit-Position: refs/heads/master@{#13998}
diff --git a/webrtc/api/peerconnection.cc b/webrtc/api/peerconnection.cc
index b13113a..bdd33d7 100644
--- a/webrtc/api/peerconnection.cc
+++ b/webrtc/api/peerconnection.cc
@@ -633,6 +633,8 @@
stats_.reset(new StatsCollector(this));
+ enable_ice_renomination_ = configuration.enable_ice_renomination;
+
// Initialize the WebRtcSession. It creates transport channels etc.
if (!session_->Initialize(factory_->options(), std::move(cert_generator),
configuration)) {
@@ -1262,6 +1264,8 @@
// TODO(deadbeef): Shouldn't have to hop to the worker thread twice...
session_->SetIceConfig(session_->ParseIceConfig(configuration));
+
+ enable_ice_renomination_ = configuration.enable_ice_renomination;
return true;
}
@@ -1615,6 +1619,8 @@
cricket::TransportOptions();
}
}
+ session_options->enable_ice_renomination = enable_ice_renomination_;
+
if (!ExtractMediaSessionOptions(rtc_options, true, session_options)) {
return false;
}
@@ -1651,6 +1657,13 @@
return true;
}
+void PeerConnection::InitializeOptionsForAnswer(
+ cricket::MediaSessionOptions* session_options) {
+ session_options->recv_audio = false;
+ session_options->recv_video = false;
+ session_options->enable_ice_renomination = enable_ice_renomination_;
+}
+
void PeerConnection::FinishOptionsForAnswer(
cricket::MediaSessionOptions* session_options) {
// TODO(deadbeef): Once we have transceivers, enumerate them here instead of
@@ -1685,8 +1698,7 @@
bool PeerConnection::GetOptionsForAnswer(
const MediaConstraintsInterface* constraints,
cricket::MediaSessionOptions* session_options) {
- session_options->recv_audio = false;
- session_options->recv_video = false;
+ InitializeOptionsForAnswer(session_options);
if (!ParseConstraintsForAnswer(constraints, session_options)) {
return false;
}
@@ -1699,8 +1711,7 @@
bool PeerConnection::GetOptionsForAnswer(
const RTCOfferAnswerOptions& options,
cricket::MediaSessionOptions* session_options) {
- session_options->recv_audio = false;
- session_options->recv_video = false;
+ InitializeOptionsForAnswer(session_options);
if (!ExtractMediaSessionOptions(options, false, session_options)) {
return false;
}