- From: Robin Raymond <robin@hookflash.com>
- Date: Tue, 5 Aug 2014 22:33:40 -0400
- To: Peter Thatcher <pthatcher@google.com>, Bernard Aboba <bernard.aboba@microsoft.com>
- Cc: public-ortc@w3.org
- Message-ID: <etPan.53e19404.3db012b3.cdff@macmini.local>
Over all it’s a good strategy. I would also be okay if the browser just picked a new SSRC and evented the old failed SSRC and the new SSRC. But I can appreciate if a JS developer may want to allocate their own new SSRC from JS and then signal that before attempting to send with it. -- Robin Raymond On August 5, 2014 at 7:20:29 PM, Peter Thatcher (pthatcher@google.com) wrote: Sorry, I replied to github.com instead of here. This is a repost: It sounds like all the browser needs to do is: 1. Stop sending with SSRC X and send RTCP BYE. 2. Tell the JS that it can't send with SSRC X anymore. 3. Let the JS take it from there. And the JS only needs to handle this event/error if it specifies SSRCs. If it doesn't specify SSRCs and relies on payload type or muxId for demux (which I hope will be most of the time), then the browser can change the SSRC and not tell the JS. If the JS has specified the SSRCs, then if it does so correctly, there shouldn't be a collision in the first place. I think that in practice this error/event will basically never get fired. And if it is and the JS doesn't handle it, the worst case is that media fails. But there 100 other more likely reasons that media will fail, that I'm really not that worried about this one. On Aug 5, 2014 2:32 PM, "Bernard Aboba" <Bernard.Aboba@microsoft.com> wrote: As noted in RFC 3550 Section 8.2: Although the probability of SSRC identifier collision is low, all RTP implementations MUST be prepared to detect collisions and take the appropriate actions to resolve them. If a source discovers at any time that another source is using the same SSRC identifier as its own, it MUST send an RTCP BYE packet for the old identifier and choose another random one. (As explained below, this step is taken only once in case of a loop.) If a receiver discovers that two other sources are colliding, it MAY keep the packets from one and discard the packets from the other when this can be detected by different source transport addresses or CNAMEs. The two sources are expected to resolve the collision so that the situation doesn't last. This implies that the SSRC provided in RTCRtpEncodingParameters could be reset by the browser at any time. Do we need an event to indicate that an SSRC collision has been detected, and that a new value has been assigned?
Received on Wednesday, 6 August 2014 02:34:11 UTC