RtpTransceiverInterface: introduce SetOfferedRtpHeaderExtensions.

This change adds exposure of a new transceiver method for
modifying the extensions offered in the next SDP negotiation,
following spec details in https://w3c.github.io/webrtc-extensions/#rtcrtptransceiver-interface.

Features:
- The interface allows to control the negotiated direction as
  per https://tools.ietf.org/html/rfc5285#page-7.
- The interface allows to remove an extension from SDP
  negotiation by modifying the direction to
  RtpTransceiverDirection::kStopped.

Note: support for signalling directionality of header extensions
in the SDP isn't implemented yet.

https://chromestatus.com/feature/5680189201711104.
Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/65YdUi02yZk

Bug: chromium:1051821
Change-Id: Iaabc34446f038c46d93c442e90c2a77f77d542d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176408
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31487}
This commit is contained in:
Markus Handell
2020-06-08 19:48:49 +02:00
committed by Commit Bot
parent 9cbdd6976a
commit 71db9acc40
11 changed files with 558 additions and 208 deletions

View File

@ -222,7 +222,7 @@ struct RTC_EXPORT RtpHeaderExtensionCapability {
bool preferred_encrypt = false;
// The direction of the extension. The kStopped value is only used with
// RtpTransceiverInterface::header_extensions_offered() and
// RtpTransceiverInterface::HeaderExtensionsToOffer() and
// SetOfferedRtpHeaderExtensions().
RtpTransceiverDirection direction = RtpTransceiverDirection::kSendRecv;