v152 · media · drm
Scheme support matrix
Every cell below is a real navigator.mediaCapabilities.decodingInfo() call with a keySystemConfiguration naming that key system and encryptionScheme — the browser's actual supported / smooth / powerEfficient answer, not a lookup table.
Key-system availability depends on the platform: Widevine needs the CDM component (absent in many headless/CI builds), PlayReady is Windows/Edge, and Clear Key is required everywhere by the EME spec. A red cell is a real answer for this device, not an error. Browsers older than the Chrome 152 change may ignore
encryptionScheme entirely — the ignored-member detector exposes exactly that.Run the matrix
| Key system | cenc (AES-CTR) | cbcs (AES-CBC pattern) | cbcs-1-9 |
|---|---|---|---|
| Not queried yet. | |||
Click the button to run 9 real decodingInfo() queries.
code path
const info = await navigator.mediaCapabilities.decodingInfo({
type: 'media-source',
video: { contentType: 'video/mp4; codecs="avc1.64001F"',
width: 1280, height: 720, bitrate: 2_500_000, framerate: 30 },
keySystemConfiguration: {
keySystem: 'com.widevine.alpha',
// initDataType deliberately omitted: the query is init-data-UNCONSTRAINED —
// it proves the config works with SOME init-data format, not every format
// (and 'cenc' would be wrong for WebM-container codecs). Re-query with
// initDataType set if packaging depends on a specific format.
video: { robustness: 'SW_SECURE_CRYPTO', encryptionScheme: 'cbcs' },
},
});
// info.supported reflects decrypt+decode for THAT scheme (Chrome 152+)