Re: Should pc.getRemoteStreams() include all remote tracks after pcsetRemoteDescription() ?

    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