VideoDecoder: isConfigSupported() static method
The isConfigSupported()
static method of the VideoDecoder
interface checks if the given config is supported (that is, if VideoDecoder
objects can be successfully configured with the given config).
Syntax
VideoDecoder.isConfigSupported(config)
Parameters
-
config
-
The dictionary object accepted by VideoDecoder.configure
Return value
A Promise
that resolves with an object containing the following members:
-
supported
-
A boolean value which is true
if the given config is supported by the decoder.
-
config
-
A copy of the given config with all the fields recognized by the decoder.
Exceptions
-
TypeError
-
Thrown if the provided config
is invalid; that is, if doesn't have required values (such as an empty codec
field) or has invalid values (such as a negative codedWidth
).
Examples
The following example tests if the browser supports accelerated and un-accelerated versions of several video codecs.
const codecs = ["avc1.42001E", "vp8", "vp09.00.10.08", "av01.0.04M.08"];
const accelerations = ["prefer-hardware", "prefer-software"];
const configs = [];
for (const codec of codecs) {
for (const acceleration of accelerations) {
configs.push({
codec,
hardwareAcceleration: acceleration,
codedWidth: 1280,
codedHeight: 720,
not_supported_field: 123,
});
}
}
for (const config of configs) {
const support = await VideoDecoder.isConfigSupported(config);
console.log(
`VideoDecoder's config ${JSON.stringify(support.config)} support: ${
support.supported
}`,
);
}
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
isConfigSupported_static |
94 |
94 |
No |
No |
80 |
16.4 |
94 |
94 |
No |
66 |
16.4 |
17.0 |