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}
This commit is contained in:
committed by
Commit Bot
parent
582102c9b7
commit
11dc6571cb
@ -206,13 +206,34 @@ public class RtpTransceiver {
|
||||
}
|
||||
|
||||
/**
|
||||
* The Stop method irreversibly stops the RtpTransceiver. The sender of this
|
||||
* transceiver will no longer send, the receiver will no longer receive.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-stop
|
||||
* The Stop method will for the time being call the StopInternal method.
|
||||
* After a migration procedure, stop() will be equivalent to StopStandard.
|
||||
*/
|
||||
public void stop() {
|
||||
checkRtpTransceiverExists();
|
||||
nativeStop(nativeRtpTransceiver);
|
||||
nativeStopInternal(nativeRtpTransceiver);
|
||||
}
|
||||
|
||||
/**
|
||||
* The StopInternal method stops the RtpTransceiver, like Stop, but goes
|
||||
* immediately to Stopped state.
|
||||
*/
|
||||
public void stopInternal() {
|
||||
checkRtpTransceiverExists();
|
||||
nativeStopInternal(nativeRtpTransceiver);
|
||||
}
|
||||
|
||||
/**
|
||||
* The StopStandard method irreversibly stops the RtpTransceiver. The sender
|
||||
* of this transceiver will no longer send, the receiver will no longer
|
||||
* receive.
|
||||
*
|
||||
* <p>The transceiver will enter Stopping state and signal NegotiationNeeded.
|
||||
* https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-stop
|
||||
*/
|
||||
public void stopStandard() {
|
||||
checkRtpTransceiverExists();
|
||||
nativeStopStandard(nativeRtpTransceiver);
|
||||
}
|
||||
|
||||
@CalledByNative
|
||||
@ -237,7 +258,8 @@ public class RtpTransceiver {
|
||||
private static native boolean nativeStopped(long rtpTransceiver);
|
||||
private static native RtpTransceiverDirection nativeDirection(long rtpTransceiver);
|
||||
private static native RtpTransceiverDirection nativeCurrentDirection(long rtpTransceiver);
|
||||
private static native void nativeStop(long rtpTransceiver);
|
||||
private static native void nativeStopInternal(long rtpTransceiver);
|
||||
private static native void nativeStopStandard(long rtpTransceiver);
|
||||
private static native void nativeSetDirection(
|
||||
long rtpTransceiver, RtpTransceiverDirection rtpTransceiverDirection);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user