v152 · media · encrypted media

MediaCapabilities.decodingInfo.encryptionScheme

The KeySystemTrackConfiguration dictionary in navigator.mediaCapabilities.decodingInfo() gains an encryptionScheme member, so a player can ask — before fetching a single segment — whether this device can decrypt 'cenc' or 'cbcs' content for a given key system, codec, and robustness.

concepts

  1. Scheme support matrix

    Run real decodingInfo() queries for every key-system × encryption-scheme pair and render the live supported / smooth / powerEfficient matrix this browser actually reports.

  2. Ignored-member detector

    Older browsers silently ignore the new dictionary member — the classic false-positive trap. Detect real support by querying a deliberately-unsupported scheme: an implementing browser must say supported: false.

  3. cbcs rollout planner

    A player-engineering decision tool: pick codec and robustness, query 'cenc' and 'cbcs' for real, and get the packaging recommendation this exact device supports.

why it shipped

Chromium previously let encrypted-media players query capabilities only by codec and robustness. The ecosystem is migrating from the 'cenc' (AES-CTR) to the 'cbcs' (AES-CBC pattern) encryption scheme — required for formats like CMAF with sample-aes — but device support is fragmented, especially across hardware decoders and older CDMs. Exposing encryptionScheme in decodingInfo() lets a player detect decryptability up front instead of failing after licence exchange, choosing the right packaging per device.

references