- From: jan-ivar via GitHub <sysbot+gh@w3.org>
- Date: Mon, 12 Feb 2018 16:38:45 +0000
- To: public-webrtc-logs@w3.org
The reasons are coming back to me: SRD is timing-critical. If users delay calling SRD(offer), the peer connection [won't be ready to receive ICE candidates](https://stackoverflow.com/questions/36839080/webrtc-onicecandidate-am-getting-ice-candidates-with-sdpmid-audio-only-but-not/36851163#36851163). So e.g. if users were to write: ```js let getMyTransceiver() = pc.getTransceivers())[0] || pc.addTransceiver("video"); signalingChannel.onmessage = async ({data: {sdp, candidate}}) => { if (sdp) { await getMyTransceiver().sender.replaceTrack(myVideoTrack); // Delays SRD! await pc.setRemoteDescription(sdp); if (sdp.type == "offer") { await pc.setLocalDescription(await pc.createAnswer()); sc.send({sdp: pc.localDescription}); } } else if (candidate) await pc.addIceCandidate(candidate); } ``` ...they might occasionally miss ICE candidates, [a hard-to-find bug](https://stackoverflow.com/questions/36839080/webrtc-onicecandidate-am-getting-ice-candidates-with-sdpmid-audio-only-but-not/36851163#36851163). Possible solutions may be to either: 1. Enqueue replaceTrack, or 2. Allow `sender.track = myVideoTrack` IFF "transceiver is not yet associated with a media description" -- GitHub Notification of comment by jan-ivar Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/1769#issuecomment-364981383 using your GitHub account
Received on Monday, 12 February 2018 16:38:50 UTC