Intent to Ship: RTCDegradationPreference enum value "maintain-framerate-and-resolution"

23 views
Skip to first unread message

Chromestatus

unread,
7:41 AM (7 hours ago) 7:41 AM
to blin...@chromium.org, hb...@chromium.org, h...@chromium.org, ssi...@chromium.org
Contact emails
ssi...@chromium.org

Specification
https://www.w3.org/TR/mst-content-hint/#dom-rtcdegradationpreference-maintain-framerate-and-resolution

Summary
"maintain-framerate-and-resolution" disables WebRTC's internal video adaptation. This enables the application to implement its own adaptation logic and prevents interference from the internal adaptation. From https://www.w3.org/TR/mst-content-hint/#dom-rtcdegradationpreference-maintain-framerate-and-resolution: Maintain framerate and resolution regardless of video quality. The user agent SHOULD NOT prefer reducing the framerate or resolution for quality and performance reasons, but MAY drop frames before encoding if necessary not to overuse network and encoder resources.

Blink component
Blink>WebRTC>PeerConnection

Web Feature ID
webrtc

Motivation
WebRTC has an internal video adaptation mechanism that optimizes video quality and performance by adjusting encoding settings. This mechanism relies on hardcoded logic and thresholds, which may not yield optimal results across diverse use cases. Application may benefit from implementing and using its own, external adaptation. For the external adaptation to work properly, the internal one needs to be disabled. "maintain-framerate-and-resolution" allows to disable the WebRTC's internal adaptation. WebRTC WG presentation: https://docs.google.com/presentation/d/11rr8X4aOao1AmvyoDLX8o9CPCmnDHkWGRM3nB4Q_104/edit?slide=id.g3657813d9b5_0_0#slide=id.g3657813d9b5_0_0

Initial public proposal
No information provided

TAG review
No information provided

TAG review status
Not applicable

Risks


Interoperability and Compatibility
No information provided

Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

Low risk. This change adds "maintain-framerate-and-resolution" to the RTCDegradationPreference enum. This new mode will not be used as a default or as a fallback option.


Debuggability
No information provided

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
No


Flag name on about://flags
No information provided

Finch feature name
No information provided

Non-finch justification
No information provided

Rollout plan
Will ship enabled for all users

Requires code in //chrome?
False

Estimated milestones
Shipping on desktop144
Shipping on Android144
Shipping on WebView144


Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).

No information provided

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5156290162720768?gate=5857376464928768

This intent message was generated by Chrome Platform Status.

Alex Russell

unread,
11:11 AM (3 hours ago) 11:11 AM
to blink-dev, Chromestatus, Henrik Boström, h...@chromium.org, ssi...@chromium.org
Heya Sergey,

This seems like a great addition, but I'm not sure why we're adding this now? Are there any developers clamouring for it? Any sites that we know will benefit?

A short explainer that explains why this is an important problem to solve would help me here, particularly that there are no signals and we're going first, which raises the first-mover disadvantage risk.

Best,

Alex

Reply all
Reply to author
Forward
0 new messages