aboutsummaryrefslogtreecommitdiff
path: root/pc/media_session.cc
diff options
context:
space:
mode:
authorBjorn Mellem <mellem@webrtc.org>2019-06-07 06:13:42 +0000
committerCommit Bot <commit-bot@chromium.org>2019-06-07 06:17:50 +0000
commit7e8de0bf2db3810587d64c6bb12cd482c4c84868 (patch)
tree3e18d103002f1136c11482270c0a05bcdd1d4164 /pc/media_session.cc
parentb4f3f370b2e7d4536e85fb54091a79199334fe8d (diff)
downloadwebrtc-7e8de0bf2db3810587d64c6bb12cd482c4c84868.tar.gz
Revert "Implement true negotiation for DatagramTransport with fallback to RTP."
This reverts commit 71c6482baf0ff17141c635e6a7639493db68a65c. Reason for revert: Lands too much at once and breaks downstream tests that need to implement new interfaces first. Original change's description: > Implement true negotiation for DatagramTransport with fallback to RTP. > > In short, the caller places a x-opaque line in SDP for each m= section that > uses datagram transport. If the answerer supports datagram transport, it will > parse this line and create a datagram transport. It will then echo the x-opaque > line into the answer (to indicate that it accepted use of datagram transport). > > If the offer and answer contain exactly the same x-opaque line, both peers will > use datagram transport. If the x-opaque line is omitted from the answer (or is > different in the answer) they will fall back to RTP. > > Note that a different x-opaque line in the answer means the answerer did not > understand something in the negotiation proto. Since WebRTC cannot know what > was misunderstood, or whether it's still possible to use the datagram transport, > it must fall back to RTP. This may change in the future, possibly by passing > the answer to the datagram transport, but it's good enough for now. > > Negotiation consists of four parts: > 1. DatagramTransport exposes transport parameters for both client and server > perspectives. The client just echoes what it received from the server (modulo > any fields it might not have understood). > > 2. SDP adds a x-opaque line for opaque transport parameters. Identical to > x-mt, but this is specific to datagram transport and goes in each m= section, > and appears in the answer as well as the offer. > - This is propagated to Jsep as part of the TransportDescription. > - SDP files: transport_description.h,cc, transport_description_factory.h,cc, > media_session.cc, webrtc_sdp.cc > > 3. JsepTransport/Controller: > - Exposes opaque parameters for each mid (m= section). On offerer, this means > pre-allocating a datagram transport and getting its parameters. On the > answerer, this means echoing the offerer's parameters. > - Uses a composite RTP transport to receive from either default RTP or > datagram transport until both offer and answer arrive. > - If a provisional answer arrives, sets the composite to send on the > provisionally selected transport. > - Once both offer and answer are set, deletes the unneeded transports and > keeps whichever transport is selected. > > 4. PeerConnection pulls transport parameters out of Jsep and adds them to SDP. > > Bug: webrtc:9719 > Change-Id: Id8996eb1871e79d93b7923a5d7eb3431548c798d > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140700 > Commit-Queue: Bjorn Mellem <mellem@webrtc.org> > Reviewed-by: Steve Anton <steveanton@webrtc.org> > Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#28182} TBR=steveanton@webrtc.org,mellem@webrtc.org,sukhanov@webrtc.org Change-Id: I0d502c4a6d27516c35ed85154f3fa5869f88b3b7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9719 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140822 Commit-Queue: Bjorn Mellem <mellem@webrtc.org> Reviewed-by: Bjorn Mellem <mellem@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28188}
Diffstat (limited to 'pc/media_session.cc')
-rw-r--r--pc/media_session.cc3
1 files changed, 0 insertions, 3 deletions
diff --git a/pc/media_session.cc b/pc/media_session.cc
index f989d28f72..fe11d44702 100644
--- a/pc/media_session.cc
+++ b/pc/media_session.cc
@@ -540,15 +540,12 @@ static bool UpdateTransportInfoForBundle(const ContentGroup& bundle_group,
selected_transport_info->description.ice_pwd;
ConnectionRole selected_connection_role =
selected_transport_info->description.connection_role;
- const absl::optional<OpaqueTransportParameters>& selected_opaque_parameters =
- selected_transport_info->description.opaque_parameters;
for (TransportInfo& transport_info : sdesc->transport_infos()) {
if (bundle_group.HasContentName(transport_info.content_name) &&
transport_info.content_name != selected_content_name) {
transport_info.description.ice_ufrag = selected_ufrag;
transport_info.description.ice_pwd = selected_pwd;
transport_info.description.connection_role = selected_connection_role;
- transport_info.description.opaque_parameters = selected_opaque_parameters;
}
}
return true;