Contact emails
gui...@chromium.org, c.p...@samsung.com
Explainer
https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API/Constraints
Spec
https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack-getcapabilities()
https://w3c.github.io/mediacapture-main/#dom-inputdeviceinfo
TAG review: https://github.com/w3ctag/design-reviews/issues/57
Summary
getCapabilities() provides a list of the capabilities supported by sources used for MediaStreamTrack objects. This gives applications the ability to, for example, enable or disable features based on the capabilities of installed devices.
There are two versions of getCapabilities(), one for MediaStreamTrack and one for InputDeviceInfo.
InputDeviceInfo is an extension of MediaDeviceInfo that adds the getCapabilities() method. InputDeviceInfo objects are returned as the result of the enumerateDevices() method. If a MediaStreamTrack is backed by a device reported by enumerateDevices(), both versions of getCapabilities() return the same value.
Motivation
Interoperability with other engines and spec compliance.
Risks
Interoperability and Compatibility
The compatibility risk is low. This API has already shipped in Blink as part of the Image Capture API, which exposes capabilities for constrainable properties that apply only to image capture. This intent covers support for the constrainable properties described in the main spec for MediaStreams. The new implementation will not interfere with the existing Image Capture feature.
The interoperability risk is low. The MediaStreamTrack version of the API is already shipped by Edge and Safari, so interoperability with those browsers is expected to improve. This feature is under development in Firefox.
Edge: Shipped (MediaStreamTrack version)
Firefox: In development
Safari: Shipped (MediaStreamTrack version)
Web developers: Positive. The general Constraints API launch bug has 45 stars, and the specific bug for getCapabilities() has 10 stars.
Ergonomics
Are there any other platform APIs this feature will frequently be used in tandem with?
getCapabilities() is expected to be used frequently together with getUserMedia() and other MediaStreamTrack operations.
Could the default usage of this API make it hard for Chrome to maintain good performance (i.e. synchronous return, must run on a certain thread, guaranteed return timing)?
No.
Activation
Will it be challenging for developers to take advantage of this feature immediately, as-is?
No.
Would this feature benefit from having polyfills, significant documentation and outreach, and/or libraries built on top of it to make it easier to use?
Since this API is already supported by other browsers and is from a relatively mature spec, there is a reasonable amount of documentation on how to use this API. No polyfills or libraries are expected to be needed.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
Is this feature fully tested by web-platform-tests?
Currently, there is limited testing for getCapabilities in WPT (mostly to verify that the API exists). We will expand WPT coverage as part of the development effort.
Link to entry on the feature dashboard
https://www.chromestatus.com/feature/5145556682801152
Requesting approval to ship?
Yes.
Tracking bug
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CA%2BBuZxa9v3NeLLUnV-APp7BrJA6dBbEB2icNjKAmVd7b0oGPgg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYfkJ%2BhBdMDHz%2Bq-SbO7FDmJuZv72BH6UgGXA5wMDYJS_Q%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAFUtAY_ECu4ubrd%2BSRiJf1kTtLYXrg52ptyfO-86CCgk%2B8RydQ%40mail.gmail.com.