Re: [webrtc-extensions] Add API to control encode complexity (#191)

While it could be used as a way to prioritize resources when you have multiple streams, it's not just that as you may decide that a single stream still needs the setting.

And applying it to the whole page doesn't work either as it may need to be dynamic during the application lifetime and I don't see how a global setting will be an effective API for that.

Another use case is when the application detects a bad network quality and that resources are available, it may ask for more resources to be spent on encoding some important media stream. While the user-agent can try to do some of that automatically, it is unreasonable to expect it to go past some threshold that could be negatively impacting some metrics as it's usually a trade-off.

The application may decide that in some circumstances, this is ok and this would be the setting to allow that. But you need to have local knowledge of the application and usage in order to turn it in and I believe a user-agent to be too high level to be able to infer it all.

Also, FYI, I'd expect this setting to be mapped to VideoToolbox's [PrioritizeEncodingSpeedOverQuality setting](https://developer.apple.com/documentation/videotoolbox/kvtcompressionpropertykey_prioritizeencodingspeedoverquality) and maybe QP settings like [MinAllowedFrameQP](https://developer.apple.com/documentation/videotoolbox/kvtcompressionpropertykey_minallowedframeqp) and [MaxAllowedFrameQP](https://developer.apple.com/documentation/videotoolbox/kvtcompressionpropertykey_maxallowedframeqp).

-- 
GitHub Notification of comment by Orphis
Please view or discuss this issue at https://github.com/w3c/webrtc-extensions/issues/191#issuecomment-1895566507 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 17 January 2024 10:54:33 UTC