More checks for RTCRtpSender.setParameters()?

Issue 1834 [1] discusses that more checks should be performed at 
RTCRtpSender.setParameters(). We discussed this at the April VI [2].

Currently the only check is if scaleResolutionDownBy is smaller than 
1.0, a range error is reported in that case.

[1] and the discussion at [2] concluded that we should make maxFramerate 
and scaleResolutionDownBy unsigned, and [3] is a PR for that. But there 
there is also some discussion around having more checks, like

- if maxBitrate is too low, i.e. the codec in use can not operate at 
such low bitrates
- if scaleResolutionDownBy is to large, leading to a video that is 
smaller than 1by1 pixel
- maxFramerate is too small (e.g. 0)

We could have checks added to the 'addTransceiver' and 
sender.setParameters algorithms (that is where the check 
scaleResolutionDownBy >= 1.0 is currently done).

However, I think it is hard to make such checks reliable. The codec in 
use may change at the next negotiation. The resolution being scaled down 
from may change, etc.

OTOH, I think we're not properly defining what should happen if these 
parameters have extreme settings. What is supposed to happen if 
maxFramerate is set to 0?

I lean towards specifying what should happen in such conditions rather 
than having more checks on 'addTransceiver' and sender.setParameters.

WDYT?

Br,
Stefan


[1] https://github.com/w3c/webrtc-pc/issues/1834
[2] 
https://www.w3.org/2011/04/webrtc/wiki/images/5/54/WebRTCWG-2018-05-22.pdf
[3] https://github.com/w3c/webrtc-pc/pull/1948

Received on Monday, 30 July 2018 08:18:39 UTC