client-sdk-js
68173869 - Reuse transceivers in subscribe path (#51)

Commit
4 years ago
Reuse transceivers in subscribe path (#51) * Reuse transceivers in subscribe path LK-22 (https://linear.app/livekit/issue/LK-22/feature-pooled-transceivers-to-avoid-re-negotiation) Do not stop remote tracks. That would change `readyState` of track to `ended` and the corresponding transceiver cannot be reused. Instead use the `enabled` attribute of track to enable/disable remote tracks. Bumping up the protocol version that informs the server that client is capable of reusing transceivers. Testing: -------- Connect from Chrome. For remote side, connect/disconnect from Firefox several times and ensure the following - SDP does not grow (it has 4 sections as reported by chrome://webrtc-internals (version, data, audio, video) each time the remote side connects. - Media flows from remote side on every connection. Oddities: --------- - Chrome callback `ontrack` sends a track. When the remote side reconnects and the same transceiver is used, the callback does not contain the new track id. It retains what was returned in the first callback. Don't think it is an issue as we do not use that track id anywhere. * Apply suggestions from code review Co-authored-by: David Zhao <david@davidzhao.com> Co-authored-by: David Zhao <david@davidzhao.com>
Author
Parents
Loading