Re: [webrtc-pc] `ssrc` in `RTCRtpEncodingParameters` is inconsistent with ORTC (#1174)

> Re. your architecture, I have it also like that, but I do an initial `mid` to `ssrc` mapping at the receiver side and work internally with `ssrc` based on that. You will only need to insert the `mid` (if negotiated) accordingly as you do the normal `ssrc` rewriting when sending to the remote party.

This is not so easy. In my experiments (don't remember now which browser/version):

* If `a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid` is negotiated in the PeerConnection and a RTP packet with a header extension with `id=3` is received, and assuming that the remote SDP signals `a=ssrc` lines:
   * The browser will drop the packet if its SSRC matches the one in `a=ssrc` but its RTP MID does not match the `a=mid` of the corresponding m= section.

* If the packet does not contain RTP MID extension, I don't remember what happens (I hope the browser does not drop it since, according to the spec, RTP header extensions do not need to be included in all packets).

In a SFU scenario sometimes you route packets produced by an endpoint that does not include RTP MID extension into them, or MID was not just negotiated in its signaling leg. If present, the SFU may "just" rewrite the MID `id` in the packet so the receiver does not try to match via MID. Rewriting the MID value itself is tedious since it has dynamic size and mangling a RTP packet to include/extend/delete a header extension is not something "cool" at all.

In summary, this is tricky. I'm super ok with browsers not signaling their SSRCs in the offer because having MID and RID properly implemented in the SFU is the way to go. However I agree that, in the other direction when the SFU sends packets to receivers, this is much more error prune. I avoid having PeerConnections to both send and receive, so I just negotiate MID in sending PeerConnections. But people using bidirectional PeerConnection may encounter many problems as described above.

-- 
GitHub Notification of comment by ibc
Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/1174#issuecomment-469641208 using your GitHub account

Received on Tuesday, 5 March 2019 11:12:57 UTC