commit | 7e8de0bf2db3810587d64c6bb12cd482c4c84868 | [log] [tgz] |
---|---|---|
author | Bjorn Mellem <mellem@webrtc.org> | Fri Jun 07 06:13:42 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Fri Jun 07 06:17:50 2019 |
tree | 3e18d103002f1136c11482270c0a05bcdd1d4164 | |
parent | b4f3f370b2e7d4536e85fb54091a79199334fe8d [diff] |
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}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.