- From: Peter Thatcher <pthatcher@google.com>
- Date: Fri, 14 Apr 2017 17:37:05 +0000
- To: Iñaki Baz Castillo <ibc@aliax.net>, "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <CAJrXDUFbmidpteTLtSys_e-akBsMM7M43j5bLa9WqWF0fdZQuA@mail.gmail.com>
The simulcast solution we were able to fit into the 1.0 time frame was specifically designed such that the browser/client can offer simulcast, but not (necessarily) answer a simulcast offer. Allowing the server to send an offer to the client and have it answer, as I recall, was too complex to get into 1.0 (we barely got simulcast in at all) and will have to wait for a future version of the spec. I believe a browser/client is free to go beyond the spec and allow answering simulcast offers from the server, but it's not part of the spec. This mostly defined i JSEP, by the way, not the W3C spec. On Fri, Apr 14, 2017 at 4:00 AM Iñaki Baz Castillo <ibc@aliax.net> wrote: > Hi, > > Assuming the browser receives an SDP offer with a m=video section that > invites the browser to send simulcast: > > a=rid:1 recv > a=rid:2 recv > a=simulcast: recv rid=1;2 > > >From previous discussions I understand that, if the browser wishes to > honor the simulcast "invitation", it must create a new Transceiver and > fill `sendEncodings` parameters with the EXACT RID values given in the > offer. This is, something that would generate the following stuff in > the SDP answer (within the same m= section): > > a=rid:1 send > a=rid:2 send > a=simulcast: send rid=1;2 > > > The first "problem" here is obvious: the JS app must "parse" the > received SDP offer in order to figure out the offered simulcast stuff > (offered RID values and directions). > > What would happen if the JS app incorrectly sets the `sendEncodings` > with, for example, RID values not present in the received offer? > > > Here the second problem: After the first SDP O/A (in which the browser > successfully enabled sending simulcast) the remote sends a new SDP > re-offer with some simulcast related params modified, for example: > > a=rid:1 recv > a=rid:4 recv > a=simulcast: recv rid=1;4 > > (RID 2 was was removed and RID 4 was added). > > What should do the JS in this case? and what would happen if it does > nothing but just call setRemoteDescription() + createAnswer() + > setLocalDescription()? > > > > -- > Iñaki Baz Castillo > <ibc@aliax.net> > >
Received on Friday, 14 April 2017 17:37:49 UTC