Contact emails
Spec
Summary
Transceivers allow the sending and/or receiving of media in WebRTC. These are negotiated with SDP, and once negotiated a port is allocated for the transceiver. Stopping a transceiver makes it permanently inactive, which means the port is freed.
Motivation
Stopping a transceiver releases the network port and allows the browser to release any encoder or decoder resources. It also allows recycling m= section in the SDP so that future transceivers (future media) can be negotiated over this session without the list of m= section growing indefinitely. This API is important to reduce resources used by transceivers and to limit the amount of bloat signaled in the SDP, which is important when you have a large number of them in a session. Use cases: large video conference or long-lasting sessions where media is repeatedly added and removed.
Risks
Interoperability and Compatibility
Low, this is already shipped in Firefox and Safari and all major browsers have positive signals towards it.
Ergonomics
"Could the default usage of this API make it hard for Chrome to maintain good performance?" No, but *not* supporting it could lead to performance issues; if thousands of transceivers are allocated but never stopped this could lead to OOM crashes unless special optimization logic is implemented.
Activation
N/A
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
Link to entry on the feature dashboard
Requesting approval to ship?
Yes.