[webrtc-pc] Mismatch between RID restrictions and RTPEncodingParameters (#2054)

amithilbuch has just created a new issue for https://github.com/w3c/webrtc-pc:

== Mismatch between RID restrictions and RTPEncodingParameters ==
There is a mismatch between how clients set up streams and how they communicate the created state. This is relevant to the case of Unified Plan and RIDs and is highlighted in the case of simulcast.

A client sets up their streams with a call to `addTransceiver()` in which they provide 'RTPEncodingParameters' also known as `send_encodings`. These encodings describe the layers.
Some of the parameters in `send_encodings` (such as `max_bitrate_bps` and `max_framerate`) match RID restrictions (such as `max-br` and `max-fr`).
However some of the parameters do not match. Specifically the parameters that indicate the resolution of the layer, which are of utmost importance to the simulcast scenario do not match.
In the RID description, they are `max-width` and `max-height` but in the `send_encodings` they are `scale_resolution_down_by`.
This makes communicating the setup during negotiation harder than it needs to be.
This is even harder when the offer is coming from the SFU which does not necessarily know the resolution of the imaging device on the other end. In such a case, there could also be performance impact from choosing "bad" values.

Some possible options to resolve (in no particular order):
1. Offers are only initiated by the simulcast sender.
2. Synchronize the parameters between the two specs (not strictly possible because new restrictions can be added in the future).
3. Fix this in the implementation layer (by passing on the values to the engine) and ignore send_encodings.
4. Put the onus of translating between the two 'formats' on the user that should set up the transceivers accordingly.
5. Ignore incoming restrictions as if they are 'not understood' removing them from the answer (using RIDs only as identifiers).
6.  Signal the information out-of-band and only use the RIDs as identifiers.

Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2054 using your GitHub account

Received on Saturday, 12 January 2019 01:32:20 UTC