Closed Bug 1944386 Opened 22 days ago Closed 21 days ago

Use CDM v11 interface if supported by plugin

Categories

(Core :: Audio/Video: GMP, enhancement)

Desktop
All
enhancement

Tracking

()

RESOLVED FIXED
136 Branch
Tracking Status
firefox136 --- fixed

People

(Reporter: aosmond, Assigned: aosmond)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

We have the header in place already with the relevant structs:
https://searchfox.org/mozilla-central/rev/a965e3c683ecc035dee1de72bd33a8d91b1203ed/dom/media/gmp/widevine-adapter/content_decryption_module.h#1212

But we should probably pull in the latest header since there are a few changes (11 wasn't declared as stable when we last pulled):
https://source.chromium.org/chromium/chromium/src/+/main:media/cdm/api/content_decryption_module.h;drc=27d34700b83f381c62e3a348de2e6dfdc08364b8;bpv=1;bpt=1;l=1

Here we should bump it to version 11, and the backwards compat to version 10:
https://searchfox.org/mozilla-central/rev/a965e3c683ecc035dee1de72bd33a8d91b1203ed/dom/media/gmp/GMPUtils.h#19-20

And here we should switch to accepting either:
https://searchfox.org/mozilla-central/rev/a965e3c683ecc035dee1de72bd33a8d91b1203ed/dom/media/gmp/ChromiumCDMAdapter.cpp#119

And when we create the host, we need to support creating the correct version requested, either 10 or 11:
https://searchfox.org/mozilla-central/rev/a965e3c683ecc035dee1de72bd33a8d91b1203ed/dom/media/gmp/ChromiumCDMAdapter.cpp#140

If only version 10 is supported, we should use a compatibility wrapper like we did in bug 1487811:
https://phabricator.services.mozilla.com/D5631

So that we are able to convert usage of the interfaces to the 11 variants:
https://searchfox.org/mozilla-central/rev/a965e3c683ecc035dee1de72bd33a8d91b1203ed/dom/media/gmp/widevine-adapter/content_decryption_module.h#868
https://searchfox.org/mozilla-central/rev/a965e3c683ecc035dee1de72bd33a8d91b1203ed/dom/media/gmp/widevine-adapter/content_decryption_module.h#1212

We should also update Clearkey to use the 11 variant as part of this work, so that when we want to drop 10, we are ready.

It may be possible to avoid supporting 10 if the plugins we are shipping with (4.10.2830.0) already support 11.

Depends on: 1944402
Summary: Use CDM Host_11 if plugin supports updated interface → Use CDM v11 interface if supported by plugin

It appears the current Widevine CDM does not support version 11, so we need to support both at the same time.

This patch adds support for v11 to ensure forwards compatibility with
new CDM plugin versions. It uses a compatibility layer for v10 plugins.

Assignee: nobody → aosmond
Status: NEW → ASSIGNED
Pushed by aosmond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d459910a82f3 Add support for Chromium CDM interface v11. r=media-playback-reviewers,padenot https://hg.mozilla.org/integration/autoland/rev/11d73209a2e0 1944402, 1944456: apply code formatting via Lando
Status: ASSIGNED → RESOLVED
Closed: 21 days ago
Resolution: --- → FIXED
Target Milestone: --- → 136 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: