commit | 755c65d8b5cc5a82fbf1674db49c5d7c4c33aca2 | [log] [tgz] |
---|---|---|
author | Markus Handell <handellm@webrtc.org> | Wed Jun 24 01:06:10 2020 +0200 |
committer | Commit Bot <commit-bot@chromium.org> | Wed Jun 24 10:38:30 2020 +0000 |
tree | 1ee7747fe4fd2d2736bc123da4c5958f0574b3b9 | |
parent | 96115cfcddff5a4e47c67092740caccef6cadda0 [diff] [blame] |
Reland 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 Tested: new unit tests in CL and manual tests with downstream project. Bug: chromium:1051821 Change-Id: I7a4c2f979a5e50e88d49598eacb76d24e81c7c7a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177348 Commit-Queue: Markus Handell <handellm@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31554}
diff --git a/api/rtp_transceiver_interface.h b/api/rtp_transceiver_interface.h index 9dbafd4..13277d9 100644 --- a/api/rtp_transceiver_interface.h +++ b/api/rtp_transceiver_interface.h
@@ -133,6 +133,13 @@ virtual std::vector<RtpHeaderExtensionCapability> HeaderExtensionsToOffer() const; + // The SetOfferedRtpHeaderExtensions method modifies the next SDP negotiation + // so that it negotiates use of header extensions which are not kStopped. + // https://w3c.github.io/webrtc-extensions/#rtcrtptransceiver-interface + virtual webrtc::RTCError SetOfferedRtpHeaderExtensions( + rtc::ArrayView<const RtpHeaderExtensionCapability> + header_extensions_to_offer); + protected: ~RtpTransceiverInterface() override = default; };