Reland "Implement transceiver.stop()"
This is a reland of 11dc6571cb4ff3e71dee1557dfff8d9076e108d3
One fix that makes Web Platform Tests pass in debug mode is applied.
Original change's description:
> Implement transceiver.stop()
>
> This adds RtpTransceiver.StopStandard(), which behaves according to
> the specification at
> https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-stop
>
> It modifies RTCPeerConnection.getTransceivers() to return only
> transceivers that have not been stopped.
>
> Rebase of armax' https://webrtc-review.googlesource.com/c/src/+/172762
>
> Bug: chromium:980879
> Change-Id: I7d383ee874ccc0a006fdcf280496b5d4235425ce
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180580
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31893}
Bug: chromium:980879
Change-Id: Ide31d929ac5ea118d83fdf6a35a592af23f7dfa7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/181263
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31907}
diff --git a/api/rtp_transceiver_interface.cc b/api/rtp_transceiver_interface.cc
index e795e51..1dc0fcc 100644
--- a/api/rtp_transceiver_interface.cc
+++ b/api/rtp_transceiver_interface.cc
@@ -25,6 +25,23 @@
return absl::nullopt;
}
+bool RtpTransceiverInterface::stopping() const {
+ return false;
+}
+
+void RtpTransceiverInterface::Stop() {
+ StopInternal();
+}
+
+RTCError RtpTransceiverInterface::StopStandard() {
+ RTC_NOTREACHED() << "DEBUG: RtpTransceiverInterface::StopStandard called";
+ return RTCError::OK();
+}
+
+void RtpTransceiverInterface::StopInternal() {
+ RTC_NOTREACHED() << "DEBUG: RtpTransceiverInterface::StopInternal called";
+}
+
RTCError RtpTransceiverInterface::SetCodecPreferences(
rtc::ArrayView<RtpCodecCapability>) {
RTC_NOTREACHED() << "Not implemented";
@@ -47,4 +64,17 @@
return webrtc::RTCError(webrtc::RTCErrorType::UNSUPPORTED_OPERATION);
}
+// TODO(bugs.webrtc.org/11839) Remove default implementations when clients
+// are updated.
+void RtpTransceiverInterface::SetDirection(
+ RtpTransceiverDirection new_direction) {
+ SetDirectionWithError(new_direction);
+}
+
+RTCError RtpTransceiverInterface::SetDirectionWithError(
+ RtpTransceiverDirection new_direction) {
+ RTC_NOTREACHED() << "Default implementation called";
+ return RTCError::OK();
+}
+
} // namespace webrtc