Closed ibc closed 5 years ago
Note that the "audio/video legacy SDP with no a=msid fires ontrack without any stream" bug is referring to a test failure bug which fails because the test is testing non-compliant behavior, so the status of that bug is reflecting whether or not we fix the test to test the right thing.
A request to fire streams even if no stream was signaled (for backwards compatibility reasons etc) would be better tracked in an issue on the spec or as a feature request.
@henbos its a change in behaviour which was only noticed because Harald asked for that test. Whether the test is non-compliant remains to be seen.
The spec says under set the associated remote streams to:
For each MSID in msids, unless a MediaStream object has previously been created with that id for this connection, create a MediaStream object with that id.
From setRemoteDescription when applying a remote description...
If direction is "sendrecv" or "recvonly", let msids be a list of the MSIDs that the media description indicates transceiver.[[Receiver]].[[ReceiverTrack]] is to be associated with. Otherwise, let msids be an empty list.
In other words, only create MediaStreams for MSIDs that "the media description indicates", otherwise don't create any. If this requires more discussion let's give it its own bug? Just wanted to say as an FYI that the bug referenced here might not reflect the status of the behavior but the status of a particular wpt test.
another one, in Chrome 68, apparently fixed in 69 so I can't file a bug...
const pc = new RTCPeerConnection({sdpSemantics: 'unified-plan'});
pc.ontrack = (e) => console.log('ontrack', e.track, e.streams)
navigator.mediaDevices.getUserMedia({audio: true, video: true})
.then(stream => {
pc.addStream(stream);
return pc.createOffer();
})
.then(offer => pc.setLocalDescription(offer))
.then(() => {
pc.setRemoteDescription({type: 'answer', sdp: 'v=0\no=mozilla...THIS_IS_SDPARTA-61.0.1 5705122052253158451 0 IN IP4 0.0.0.0\ns=-\nt=0 0\na=fingerprint:sha-256 27:17:EE:9F:74:5D:B0:18:35:74:22:78:25:A5:DB:63:3F:BF:EC:FE:C6:81:D7:EF:39:CE:6D:29:0E:4F:2E:76\na=group:BUNDLE 0 1\na=ice-options:trickle\na=msid-semantic:WMS *\nm=audio 9 UDP/TLS/RTP/SAVPF 111 126\nc=IN IP4 0.0.0.0\na=recvonly\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\na=fmtp:111 maxplaybackrate=48000;stereo=1;useinbandfec=1\na=fmtp:126 0-15\na=ice-pwd:55573ae045d807cf3371d5298a471547\na=ice-ufrag:70c24009\na=mid:0\na=rtcp-mux\na=rtpmap:111 opus/48000/2\na=rtpmap:126 telephone-event/8000/1\na=setup:active\na=ssrc:3446861999 cname:{597d79b8-fe34-4da5-8e7f-82af59e8eee5}\nm=video 9 UDP/TLS/RTP/SAVPF 96\nc=IN IP4 0.0.0.0\na=recvonly\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\na=fmtp:96 max-fs=12288;max-fr=60\na=ice-pwd:55573ae045d807cf3371d5298a471547\na=ice-ufrag:70c24009\na=mid:1\na=rtcp-fb:96 nack\na=rtcp-fb:96 nack pli\na=rtcp-fb:96 ccm fir\na=rtcp-fb:96 goog-remb\na=rtcp-mux\na=rtpmap:96 VP8/90000\na=setup:active\na=ssrc:4220074420 cname:{597d79b8-fe34-4da5-8e7f-82af59e8eee5}\n'});
})
.then(() => {
console.log('yay');
})
.catch(e => console.error(e));
ontrack is triggered for a recvonly stream, with no streams. would still love to see that in the release notes ;-)
Also Firefox 61 and Firefox 62 (stable-2) are still affected by this issue which happens when Chrome is in unified-plan mode. Classic interop bug, workaround is to disable the mid extension with SDP munging before setRemoteDescription of the offer
Good to see that all transceiver related bugs in Safari have been fixed in latest Safari Tech Preview 12.1, WebKit 14607.1.15.
well... go @henbos!
All the transceiver related issues that affect mediasoup-client have been solved in latest browser versions, so let's close this issue.
New affecting issues in Safari, reopening.
False alarm, it's fixed in master.
Unified-Plan issues in all browsers (with the collaboration of @fippo):
And some items not clear in the spec: