Index: webrtc/api/peerconnection.cc |
diff --git a/webrtc/api/peerconnection.cc b/webrtc/api/peerconnection.cc |
index c675015ac9bbee705038fa997b716571eb342357..4db3e786112908ba5bbbf2e6f6036c68b8cde22b 100644 |
--- a/webrtc/api/peerconnection.cc |
+++ b/webrtc/api/peerconnection.cc |
@@ -470,6 +470,7 @@ bool ExtractMediaSessionOptions( |
session_options->bundle_enabled = rtc_options.use_rtp_mux; |
for (auto& kv : session_options->transport_options) { |
kv.second.ice_restart = rtc_options.ice_restart; |
+ kv.second.ice_renomination = rtc_options.ice_renomination; |
} |
return true; |
@@ -513,14 +514,13 @@ bool ParseConstraintsForAnswer(const MediaConstraintsInterface* constraints, |
session_options->bundle_enabled = true; |
} |
- bool ice_restart = false; |
- if (FindConstraint(constraints, MediaConstraintsInterface::kIceRestart, |
+ bool ice_renomination = false; |
+ if (FindConstraint(constraints, MediaConstraintsInterface::kIceRenomination, |
&value, &mandatory_constraints_satisfied)) { |
- // kIceRestart defaults to false according to spec. |
- ice_restart = true; |
+ ice_renomination = value; |
} |
for (auto& kv : session_options->transport_options) { |
- kv.second.ice_restart = ice_restart; |
+ kv.second.ice_renomination = ice_renomination; |
} |
if (!constraints) { |
@@ -987,6 +987,11 @@ void PeerConnection::CreateOffer(CreateSessionDescriptionObserver* observer, |
options.ice_restart = value; |
} |
+ if (FindConstraint(constraints, MediaConstraintsInterface::kIceRenomination, |
+ &value, &mandatory_constraints)) { |
+ options.ice_renomination = value; |
+ } |
+ |
if (FindConstraint(constraints, |
MediaConstraintsInterface::kUseRtpMux, |
&value, |
@@ -1649,10 +1654,10 @@ bool PeerConnection::GetOptionsForOffer( |
return true; |
} |
-void PeerConnection::FinishOptionsForAnswer( |
+void PeerConnection::InitializeOptionsForAnswer( |
cricket::MediaSessionOptions* session_options) { |
- // TODO(deadbeef): Once we have transceivers, enumerate them here instead of |
- // ContentInfos. |
+ session_options->recv_audio = false; |
+ session_options->recv_video = false; |
if (session_->remote_description()) { |
// Initialize the transport_options map. |
for (const cricket::ContentInfo& content : |
@@ -1661,6 +1666,12 @@ void PeerConnection::FinishOptionsForAnswer( |
cricket::TransportOptions(); |
} |
} |
+} |
+ |
+void PeerConnection::FinishOptionsForAnswer( |
+ cricket::MediaSessionOptions* session_options) { |
+ // TODO(deadbeef): Once we have transceivers, enumerate them here instead of |
+ // ContentInfos. |
AddSendStreams(session_options, senders_, rtp_data_channels_); |
session_options->bundle_enabled = |
session_options->bundle_enabled && |
@@ -1683,8 +1694,7 @@ void PeerConnection::FinishOptionsForAnswer( |
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; |
} |
@@ -1697,8 +1707,7 @@ bool PeerConnection::GetOptionsForAnswer( |
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; |
} |