We are in the process of implementing transceiver.stop() as per specification on the Javascript interface.
If you don’t use transceiver.stop() at the C++ / Java / Swift interface, you can stop reading now.
This will lead to some changes at the WebRTC C++ interface; these will be introduced in a phased manner. The end goal is that transceiver.stop() should be identical on the C++ and Javascript interfaces.
We will be adding some new functions to the transceiver API:
StopStandard() - this will be the standards compliant stop() function.
StopInternal() - this will be functionally equivalent (except as noted) to today’s Stop() function
stopping() - will query the internal state of the transceiver. Returns true if stopping or stopped.
SetDirectionWithError - like SetDirection(), but returns an RTCError, since the function can fail.
Stop() will be marked RTC_DEPRECATED.
There will be some behavior changes - in particular, the transceiver will be disassociated from its PeerConnection as soon as setLocalDescription or setRemoteDescription(answer SDP with rejected transceiver) is called; previously, it would remain in the PeerConnection’s transceiver list with a null MID value.
The timing of the OnRemoveTrack observer callback has also changed.
SetDirection() and Stop() will be removed.
The names SetDirection() and Stop() will be reintroduced, as equivalents to StopStandard() and SetDirectionWithError().
StopStandard() and SetDirectionWithError() will be marked RTC_DEPRECATED.
StopStandard() and SetDirectionWithError() will be removed.