- From: Byron Campen <docfaraday@gmail.com>
- Date: Wed, 04 Mar 2015 11:03:29 -0800
- To: Iñaki Baz Castillo <ibc@aliax.net>, "public-webrtc@w3.org" <public-webrtc@w3.org>
So, we do indeed fire onaddstream as soon as possible after setRemote. The only thing we could do differently is delay onSetRemoteDescriptionSuccess until the streams/tracks are created, but this would impose delays on ICE (since content needs this callback before trickling ICE candidates). Now, if you are indeed seeing a multi-second delay, there is probably some bug that needs filing, since it should not be that long. Best regards, Byron Campen On 3/4/15 10:54 AM, Iñaki Baz Castillo wrote: > Hi all. > > The spec is unclear about this topic. I will describe the current > "issue" in Firefox (which may be it's not an issue): > > 1) App creates an offer, sends it to the peer and receives a remote > answer with N tracks. > > 2) App calls to pc.setRemoteDescription(). > > 3) Within the success callback the app calls to pc.getRemoteStreams(). > It gets no remote streams or tracks. > > 4) After a few seconds onaddstream fires. > > 5) After that, calling to pc.getRemoteStreams() return the proper > media stream with all its remote tracks. > > > My understanding it that getRemoteStreams() should be deterministic. > Nothing has happened between bullets 3 and 5. The onaddstream event is > just a native event but the real action happened during bullet 2 and > 3, so I consider that bullet 3 should return the full list of remote > tracks without waiting some JS cycles for internal stuff. > > > The point here is that the spec is unclear about onaddstream: > > "It is called any time a MediaStream is added by the remote peer. This > will be fired only as a result of setRemoteDescription. Onaddstream > happens as early as possible after the setRemoteDescription. This > callback does not wait for a given media stream to be accepted or > rejected via SDP negotiation." > > Well, what does "as early as possible" mean? :) > > > Anyhow, the issue above is not about when onaddstream is fired. Since > it is an event there is no need for it to be called at a specific JS > cycle. But my question is: > > > Should pc.getRemoteStreams() return the full list of remote > streams/tracks ONCE setRemoteDescription() succeeded? Currently > Firefox does not behave in that way, and instead getRemoteStreams() > just return the proper data once onaddstream has been emitted. > > > Thanks a lot. > >
Received on Wednesday, 4 March 2015 19:03:59 UTC