Closed Bug 1825142 Opened 1 year ago Closed 4 months ago

[wmfme] Support MediaFoundation clear key CDM

Categories

(Core :: Audio/Video: Playback, task, P2)

task

Tracking

()

RESOLVED FIXED
123 Branch
Tracking Status
firefox123 --- fixed

People

(Reporter: alwu, Assigned: alwu)

References

(Blocks 2 open bugs)

Details

Attachments

(9 files, 9 obsolete files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

Depends on D174986

Depends on D174988

Blocks: 1828018

Depends on D174989

Depends on D175720

Attachment #9327627 - Attachment description: WIP: Bug 1825142 - part5 : add a mechanism to load CDM from the external library. → WIP: Bug 1825142 - part7 : add a mechanism to load CDM from the external library.
Attachment #9327628 - Attachment description: WIP: Bug 1825142 - part6 : implement an external library to expose MF ClearKey CDM. → WIP: Bug 1825142 - part8 : implement an external library to expose MF ClearKey CDM.
Attachment #9327627 - Attachment description: WIP: Bug 1825142 - part7 : add a mechanism to load CDM from the external library. → WIP: Bug 1825142 - part5 : add a mechanism to load CDM from the external library.
Attachment #9327628 - Attachment description: WIP: Bug 1825142 - part8 : implement an external library to expose MF ClearKey CDM. → WIP: Bug 1825142 - part6 : implement an external library to expose MF ClearKey CDM.
Attachment #9328956 - Attachment is obsolete: true
Attachment #9328957 - Attachment is obsolete: true

We need these attributes in the clearkey descryptor.

Depends on D174991

Our clearkey implemenation requires these libs.

Depends on D179150

Attached file Bug 1825142 - part7 : init NSS lib. (obsolete) —

Nss lib is used by descryption and it needs to be initialized
explicitly.

Depends on D179151

Attachment #9327626 - Attachment is obsolete: true
Attachment #9327627 - Attachment is obsolete: true
Attachment #9327628 - Attachment description: WIP: Bug 1825142 - part6 : implement an external library to expose MF ClearKey CDM. → WIP: Bug 1825142 - part4 : implement an external library to expose MF ClearKey CDM.
Attachment #9335995 - Attachment description: WIP: Bug 1825142 - part7: add crypt_byte_block and skip_byte_block attributes. → WIP: Bug 1825142 - part5 : add crypt_byte_block and skip_byte_block attributes.
Attachment #9335996 - Attachment description: WIP: Bug 1825142 - part8 : preload clear key related libs. → WIP: Bug 1825142 - part6 : preload clear key related libs.
Attachment #9335997 - Attachment description: WIP: Bug 1825142 - part9 : init NSS lib. → WIP: Bug 1825142 - part7 : init NSS lib.

Depends on D179152

When using clearkey CDM, enabling dcomp surface would cause crash inside
Windows dlls. So creating this pref in order to workaround the crash
problem which will allow us to create some basic EME test cases.

However, this pref should not be disabled in the normal situation
because we didn't implement a texture pool for the frame-server mode,
which will be used if we disable dcomp surface rendering.

Depends on D196240

The reason of introducing this pref was to fix the test failure in bug
1851914 where the PlayReady CDM did not return correct type support on
CI.

In part10, we already changed our test to make it rely on our mock CDM
so that we don't need to worry about that failure. Therefore, we want to
re-enable this pref in order to get correct type support for PlayReady.

Depends on D196509

Attachment #9327623 - Attachment description: WIP: Bug 1825142 - part1 : use WMFCDMProxy for clearkey system when the pref is on. → Bug 1825142 - part1 : use WMFCDMProxy for clearkey system when the pref is on.
Attachment #9327624 - Attachment description: WIP: Bug 1825142 - part2 : allow clearkey system being used in the MFCDM process. → Bug 1825142 - part2 : allow clearkey system being used in the MFCDM process.
Attachment #9327625 - Attachment description: WIP: Bug 1825142 - part3 : use RelaxedAtomicBool for the pref 'media.clearkey.test-key-systems.enabled'. → Bug 1825142 - part3 : use RelaxedAtomicBool for the pref 'media.clearkey.test-key-systems.enabled'.
Attachment #9327628 - Attachment description: WIP: Bug 1825142 - part4 : implement an external library to expose MF ClearKey CDM. → Bug 1825142 - part4 : implement an external library to expose MF ClearKey CDM.
Attachment #9335995 - Attachment description: WIP: Bug 1825142 - part5 : add crypt_byte_block and skip_byte_block attributes. → Bug 1825142 - part5 : add crypt_byte_block and skip_byte_block attributes.
Attachment #9335996 - Attachment description: WIP: Bug 1825142 - part6 : preload clear key related libs. → Bug 1825142 - part6 : preload clear key related libs.
Attachment #9335997 - Attachment description: WIP: Bug 1825142 - part7 : init NSS lib. → Bug 1825142 - part7 : init NSS lib.
Attachment #9368317 - Attachment description: WIP: Bug 1825142 - part8 : load clearkey dll. → Bug 1825142 - part8 : load clearkey dll.
Attachment #9368785 - Attachment description: WIP: Bug 1825142 - part9 : add a pref to control dcomp surface rendering for the media engine playback. → Bug 1825142 - part9 : add a pref to control dcomp surface rendering for the media engine playback.
Attachment #9368786 - Attachment description: WIP: Bug 1825142 - part10 : use mock CDM (clearkey) to test all supported key systems in testing. → Bug 1825142 - part10 : use mock CDM (clearkey) to test all supported key systems in testing.
Attachment #9368787 - Attachment description: WIP: Bug 1825142 - part11 : enable the pref 'media.eme.playready.istypesupportedex'. → Bug 1825142 - part11 : enable the pref 'media.eme.playready.istypesupportedex'.
Blocks: 1870722
Attachment #9327623 - Attachment description: Bug 1825142 - part1 : use WMFCDMProxy for clearkey system when the pref is on. → Bug 1825142 - part1 : use Media Foundation Clearkey CDM when the pref is on.
Attachment #9327625 - Attachment description: Bug 1825142 - part3 : use RelaxedAtomicBool for the pref 'media.clearkey.test-key-systems.enabled'. → Bug 1825142 - part2 : use RelaxedAtomicBool for the pref 'media.clearkey.test-key-systems.enabled'.
Attachment #9327628 - Attachment description: Bug 1825142 - part4 : implement an external library to expose MF ClearKey CDM. → Bug 1825142 - part3 : implement Media Foundation ClearKey CDM in an external dll.
Attachment #9368317 - Attachment description: Bug 1825142 - part8 : load clearkey dll. → Bug 1825142 - part4 : load clearkey dll.
Attachment #9368785 - Attachment description: Bug 1825142 - part9 : add a pref to control dcomp surface rendering for the media engine playback. → Bug 1825142 - part5 : add a pref to control dcomp surface rendering for the media engine playback.
Attachment #9368786 - Attachment description: Bug 1825142 - part10 : use mock CDM (clearkey) to test all supported key systems in testing. → Bug 1825142 - part6 : use mock CDM (clearkey) to test all supported key systems.
Attachment #9327624 - Attachment is obsolete: true
Attachment #9368787 - Attachment description: Bug 1825142 - part11 : enable the pref 'media.eme.playready.istypesupportedex'. → Bug 1825142 - part7 : enable the pref 'media.eme.playready.istypesupportedex'.

Comment on attachment 9335995 [details]
Bug 1825142 - part5 : add crypt_byte_block and skip_byte_block attributes.

Revision D179150 was moved to bug 1870722. Setting attachment 9335995 [details] to obsolete.

Attachment #9335995 - Attachment is obsolete: true

Comment on attachment 9335996 [details]
Bug 1825142 - part6 : preload clear key related libs.

Revision D179151 was moved to bug 1870722. Setting attachment 9335996 [details] to obsolete.

Attachment #9335996 - Attachment is obsolete: true

Comment on attachment 9335997 [details]
Bug 1825142 - part7 : init NSS lib.

Revision D179152 was moved to bug 1870722. Setting attachment 9335997 [details] to obsolete.

Attachment #9335997 - Attachment is obsolete: true
Attachment #9368786 - Attachment description: Bug 1825142 - part6 : use mock CDM (clearkey) to test all supported key systems. → Bug 1825142 - part5 : use mock CDM (clearkey) to test all supported key systems.
Attachment #9368787 - Attachment description: Bug 1825142 - part7 : enable the pref 'media.eme.playready.istypesupportedex'. → Bug 1825142 - part6 : enable the pref 'media.eme.playready.istypesupportedex'.

Comment on attachment 9368785 [details]
Bug 1825142 - part5 : add a pref to control dcomp surface rendering for the media engine playback.

Revision D196508 was moved to bug 1870722. Setting attachment 9368785 [details] to obsolete.

Attachment #9368785 - Attachment is obsolete: true

Depends on D196510

Depends on D197000

Depends on D197403

Pushed by alwu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/cfa5c87b2785
part1 : use Media Foundation Clearkey CDM when the pref is on. r=jolin
https://hg.mozilla.org/integration/autoland/rev/f268790f444a
part2 : use RelaxedAtomicBool for the pref 'media.clearkey.test-key-systems.enabled'. r=media-playback-reviewers,aosmond
https://hg.mozilla.org/integration/autoland/rev/6ee026742799
part3 : implement Media Foundation ClearKey CDM in an external dll. r=jolin
https://hg.mozilla.org/integration/autoland/rev/9c144acd1ef1
part4 : load clearkey dll. r=jolin
https://hg.mozilla.org/integration/autoland/rev/27ce210ac31a
part5 : use mock CDM (clearkey) to test all supported key systems. r=jolin
https://hg.mozilla.org/integration/autoland/rev/1aabf8155584
part6 : enable the pref 'media.eme.playready.istypesupportedex'. r=media-playback-reviewers,jolin
https://hg.mozilla.org/integration/autoland/rev/86e7ca85cf58
part7 : modify log messages. r=media-playback-reviewers,aosmond
https://hg.mozilla.org/integration/autoland/rev/cc9226d67bda
part8 : print error message. r=media-playback-reviewers,aosmond
https://hg.mozilla.org/integration/autoland/rev/f60458822ae1
part9 : fix string leaking in testing. r=media-playback-reviewers,aosmond
Blocks: 1872973
Regressions: 1873011
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: