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 systemcenc (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+)

see also