versatica / mediasoup-client

mediasoup client side JavaScript library
https://mediasoup.org
ISC License
591 stars 237 forks source link

Moving to Unified-Plan (list of issues) #50

Closed ibc closed 5 years ago

ibc commented 6 years ago

Unified-Plan issues in all browsers (with the collaboration of @fippo):

And some items not clear in the spec:

henbos commented 6 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.

fippo commented 6 years ago

@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.

henbos commented 6 years ago

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.

fippo commented 5 years ago

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 ;-)

fippo commented 5 years ago

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

ibc commented 5 years ago

Good to see that all transceiver related bugs in Safari have been fixed in latest Safari Tech Preview 12.1, WebKit 14607.1.15.

fippo commented 5 years ago

well... go @henbos!

ibc commented 5 years ago

All the transceiver related issues that affect mediasoup-client have been solved in latest browser versions, so let's close this issue.

ibc commented 5 years ago

New affecting issues in Safari, reopening.

https://bugs.webkit.org/show_bug.cgi?id=192848

ibc commented 5 years ago

False alarm, it's fixed in master.