[wmfme] Create IPDL for Media Foundation CDM and add PlayReady DRM support in Gecko EME module.
Categories
(Core :: Audio/Video: Playback, task, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox111 | --- | fixed |
People
(Reporter: jhlin, Assigned: jhlin)
References
(Blocks 1 open bug)
Details
Attachments
(7 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 |
A initial implementation to
- Add an IPDL protocol managed by
PRemoteDecoderManager
and runs on the same utility process as the MF media engine - Get the capabilities of the PlayReady CDM and expose them to the EME API (
MediaKeySystemAccess
) - Create the MF CDM (
IMFContentDecryptionModule
) to use later
To test, use the Demo unprefixed EME sample in https://testweb.playready.microsoft.com/Tool/Hwdrm
Updated•1 year ago
|
Assignee | ||
Comment 1•1 year ago
|
||
Assignee | ||
Comment 2•1 year ago
|
||
Assignee | ||
Comment 3•1 year ago
|
||
Assignee | ||
Comment 4•1 year ago
|
||
Assignee | ||
Comment 5•1 year ago
|
||
Assignee | ||
Comment 6•1 year ago
|
||
Assignee | ||
Comment 7•1 year ago
|
||
Assignee | ||
Updated•1 year ago
|
Pushed by jolin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5018bb13f45a p1: move common CDM proxy functions around. r=alwu https://hg.mozilla.org/integration/autoland/rev/cacab6822f87 p2: extract KeySystemConfig. r=alwu https://hg.mozilla.org/integration/autoland/rev/cad21cfbc4e5 p3: initial MFCDM protocol. r=alwu https://hg.mozilla.org/integration/autoland/rev/7090c7757040 p4: initial PlayReady DRM support. r=alwu https://hg.mozilla.org/integration/autoland/rev/66f1559b58e3 p5: implement *Init() for MFCDM protocol. r=alwu https://hg.mozilla.org/integration/autoland/rev/5cb2ad9409db p6: implement WMFCDMImpl::Init(). r=alwu https://hg.mozilla.org/integration/autoland/rev/a2e5f26278a2 p7: implement CDMProxy for MF CDM and create/init it in MediaKeys. r=alwu
Comment 9•1 year ago
|
||
Backed out for causing build bustages on KeySystemConfig.cpp
Failure log: https://treeherder.mozilla.org/logviewer?job_id=404464440&repo=autoland
Backout link: https://hg.mozilla.org/integration/autoland/rev/c5fafe839ab6e460aafc211a880d104283c82e66
Comment 10•1 year ago
|
||
Pushed by jolin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3c7aa682681f p1: move common CDM proxy functions around. r=alwu https://hg.mozilla.org/integration/autoland/rev/0c66474f6010 p2: extract KeySystemConfig. r=alwu https://hg.mozilla.org/integration/autoland/rev/e16e293637cf p3: initial MFCDM protocol. r=alwu https://hg.mozilla.org/integration/autoland/rev/4be39a7ba24f p4: initial PlayReady DRM support. r=alwu https://hg.mozilla.org/integration/autoland/rev/07bcec895e6b p5: implement *Init() for MFCDM protocol. r=alwu https://hg.mozilla.org/integration/autoland/rev/eedaee18c125 p6: implement WMFCDMImpl::Init(). r=alwu https://hg.mozilla.org/integration/autoland/rev/cfbe0be01c67 p7: implement CDMProxy for MF CDM and create/init it in MediaKeys. r=alwu
Comment 11•1 year ago
|
||
Backed out for causing assertion failures on MFCDMParent.cpp
- backout: https://hg.mozilla.org/integration/autoland/rev/e6dda3c394026e3c49eb92e06d0f08f7cec7366a
- push: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&selectedTaskRun=ZMzuJ0f9S22tt8ZnnI5Rdg.0&revision=cfbe0be01c67a7b625e36f2cf63fab13ce8a2c65
- failure log: https://treeherder.mozilla.org/logviewer?job_id=404648436&repo=autoland&lineNumber=9008
[task 2023-02-05T15:30:39.677Z] 15:30:39 INFO - Assertion failure: aKeySystem.EqualsLiteral(kPlayReadyKeySystemName), at /builds/worker/checkouts/gecko/dom/media/ipc/MFCDMParent.cpp:69
[task 2023-02-05T15:30:39.749Z] 15:30:39 INFO - #01: mozilla::MFCDMParent::MFCDMParent(nsTSubstring<char16_t> const&, mozilla::RemoteDecoderManagerParent*, nsISerialEventTarget*) [dom/media/ipc/MFCDMParent.cpp:69]
[task 2023-02-05T15:30:39.760Z] 15:30:39 INFO - #02: mozilla::RemoteDecoderManagerParent::AllocPMFCDMParent(nsTSubstring<char16_t> const&) [dom/media/ipc/RemoteDecoderManagerParent.cpp:263]
[task 2023-02-05T15:30:39.761Z] 15:30:39 INFO - #03: mozilla::PRemoteDecoderManagerParent::OnMessageReceived(IPC::Message const&) [s3:gecko-generated-sources:9f32e8a4f4f70428f411fa1336fc6f98ca492a5f95ae742b7bd08a7c58a266415ef31937f193edffe7ba7221013c5ec17bd5ef1ccfd0ab622ab64aef9487bece/ipc/ipdl/PRemoteDecoderManagerParent.cpp::390]
[task 2023-02-05T15:30:39.762Z] 15:30:39 INFO - #04: mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) [ipc/glue/MessageChannel.cpp:1800]
[task 2023-02-05T15:30:39.763Z] 15:30:39 INFO - #05: mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message,mozilla::DefaultDelete<IPC::Message> >) [ipc/glue/MessageChannel.cpp:1725]
[task 2023-02-05T15:30:39.764Z] 15:30:39 INFO - #06: mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) [ipc/glue/MessageChannel.cpp:1525]
[task 2023-02-05T15:30:39.767Z] 15:30:39 INFO - #07: mozilla::ipc::MessageChannel::MessageTask::Run() [ipc/glue/MessageChannel.cpp:1632]
[task 2023-02-05T15:30:39.768Z] 15:30:39 INFO - #08: mozilla::TaskQueue::Runner::Run() [xpcom/threads/TaskQueue.cpp:266]
[task 2023-02-05T15:30:39.770Z] 15:30:39 INFO - #09: nsThreadPool::Run() [xpcom/threads/nsThreadPool.cpp:342]
[task 2023-02-05T15:30:39.771Z] 15:30:39 INFO - #10: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1220]
[task 2023-02-05T15:30:39.771Z] 15:30:39 INFO - #11: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:477]
[task 2023-02-05T15:30:39.772Z] 15:30:39 INFO - #12: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:300]
[task 2023-02-05T15:30:39.772Z] 15:30:39 INFO - #13: MessageLoop::RunInternal() [ipc/chromium/src/base/message_loop.cc:381]
[task 2023-02-05T15:30:39.773Z] 15:30:39 INFO - #14: MessageLoop::RunHandler() [ipc/chromium/src/base/message_loop.cc:375]
[task 2023-02-05T15:30:39.774Z] 15:30:39 INFO - #15: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:357]
[task 2023-02-05T15:30:39.775Z] 15:30:39 INFO - #16: nsThread::ThreadFunc(void*) [xpcom/threads/nsThread.cpp:386]
[task 2023-02-05T15:30:39.921Z] 15:30:39 INFO - #17: _PR_NativeRunThread(void*) [nsprpub/pr/src/threads/combined/pruthr.c:399]
[task 2023-02-05T15:30:39.936Z] 15:30:39 INFO - #18: pr_root(void*) [nsprpub/pr/src/md/windows/w95thred.c:139]
[task 2023-02-05T15:30:39.939Z] 15:30:39 INFO - fix-stacks: error: failed to read debug info file `ucrtbase.pdb` for `C:\Windows\System32\ucrtbase.dll`
[task 2023-02-05T15:30:39.939Z] 15:30:39 INFO - fix-stacks: note: this is expected and harmless for all PDB files on opt automation runs
[task 2023-02-05T15:30:39.939Z] 15:30:39 INFO - fix-stacks: The system cannot find the file specified. (os error 2)
[task 2023-02-05T15:30:39.940Z] 15:30:39 INFO - #19: o_iswdigit [C:\Windows\System32\ucrtbase.dll + 0x44f9f]
[task 2023-02-05T15:30:39.941Z] 15:30:39 INFO - #20: BaseThreadInitThunk [C:\Windows\System32\KERNEL32.DLL + 0x1fa29]
[task 2023-02-05T15:30:40.036Z] 15:30:40 INFO - #21: DllBlocklist_Initialize [Z:\task_167560217985931\build\application\firefox\mozglue.dll + 0x7db58]
[task 2023-02-05T15:30:40.047Z] 15:30:40 INFO - #22: RtlGetAppContainerNamedObjectPath [C:\Windows\SYSTEM32\ntdll.dll + 0x67a9e]
[task 2023-02-05T15:30:40.048Z] 15:30:40 INFO - #23: RtlGetAppContainerNamedObjectPath [C:\Windows\SYSTEM32\ntdll.dll + 0x67a6e]
[task 2023-02-05T15:30:40.048Z] 15:30:40 INFO - [Parent 4160, IPC I/O Parent] WARNING: [1.1]: Ignoring message 'EVENT_MESSAGE' to unknown peer 82EAAEC008C99DF6.D3700A5569249F74: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:344
[task 2023-02-05T15:30:40.049Z] 15:30:40 INFO - [Parent 4160, IPC I/O Parent] WARNING: [1.1]: Ignoring message 'EVENT_MESSAGE' to unknown peer 82EAAEC008C99DF6.D3700A5569249F74: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:344
[task 2023-02-05T15:30:40.050Z] 15:30:40 INFO - [Parent 4160, IPC I/O Parent] WARNING: [1.1]: Ignoring message 'EVENT_MESSAGE' to unknown peer 82EAAEC008C99DF6.D3700A5569249F74: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:344
[task 2023-02-05T15:30:40.050Z] 15:30:40 INFO - [Parent 4160, IPC I/O Parent] WARNING: [1.1]: Rejecting introduction request from '75B700D48393DA6E.481938EC933081CB' for unknown peer '82EAAEC008C99DF6.D3700A5569249F74': file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:675
[task 2023-02-05T15:30:40.051Z] 15:30:40 INFO - [Child 88, IPC I/O Child] WARNING: [75B700D48393DA6E.481938EC933081CB]: Could not be introduced to peer 82EAAEC008C99DF6.D3700A5569249F74: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:605
[task 2023-02-05T15:30:40.051Z] 15:30:40 INFO - ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to C:\Users\task_167560217985931\AppData\Local\Temp\tmpq08rbfwh.mozrunner\runreftest_leaks_utility_pid2728.log
[task 2023-02-05T15:30:40.052Z] 15:30:40 INFO - [2728, Main Thread] WARNING: XPCOM_MEM_BLOAT_LOG is set, disabling native allocations.: file /builds/worker/checkouts/gecko/tools/profiler/core/platform.cpp:345
[task 2023-02-05T15:30:40.691Z] 15:30:40 INFO - Assertion failure: aAdditionalFeature.Last() == u',', at /builds/worker/checkouts/gecko/dom/media/ipc/MFCDMParent.cpp:121
[task 2023-02-05T15:30:40.757Z] 15:30:40 INFO - #01: mozilla::FactorySupports(Microsoft::WRL::ComPtr<IMFContentDecryptionModuleFactory>&, nsTString<char16_t> const&, nsTString<char> const&, nsTString<char> const&, nsTString<char16_t> const&) [dom/media/ipc/MFCDMParent.cpp:121]
[task 2023-02-05T15:30:40.765Z] 15:30:40 INFO - #02: mozilla::MFCDMParent::RecvGetCapabilities(std::function<void (const mozilla::MFCDMCapabilitiesResult &)>&&) [dom/media/ipc/MFCDMParent.cpp:184]
[task 2023-02-05T15:30:40.766Z] 15:30:40 INFO - #03: mozilla::PMFCDMParent::OnMessageReceived(IPC::Message const&) [s3:gecko-generated-sources:369085b72ee883b509340b432c7600f5e1ffaddf55dbaef3ee8655bf865a1fa94bafd6944dc1c3e7d496a0e45b393c2ffe85c8e9d58b1b3e5a6222945d74834e/ipc/ipdl/PMFCDMParent.cpp::140]
[task 2023-02-05T15:30:40.767Z] 15:30:40 INFO - #04: mozilla::PRemoteDecoderManagerParent::OnMessageReceived(IPC::Message const&) [s3:gecko-generated-sources:9f32e8a4f4f70428f411fa1336fc6f98ca492a5f95ae742b7bd08a7c58a266415ef31937f193edffe7ba7221013c5ec17bd5ef1ccfd0ab622ab64aef9487bece/ipc/ipdl/PRemoteDecoderManagerParent.cpp::291]
[task 2023-02-05T15:30:40.767Z] 15:30:40 INFO - #05: mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) [ipc/glue/MessageChannel.cpp:1800]
[task 2023-02-05T15:30:40.768Z] 15:30:40 INFO - #06: mozilla::ipc::MessageChannel::DispatchMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::UniquePtr<IPC::Message,mozilla::DefaultDelete<IPC::Message> >) [ipc/glue/MessageChannel.cpp:1725]
[task 2023-02-05T15:30:40.770Z] 15:30:40 INFO - #07: mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::ActorLifecycleProxy*, mozilla::ipc::MessageChannel::MessageTask&) [ipc/glue/MessageChannel.cpp:1525]
[task 2023-02-05T15:30:40.772Z] 15:30:40 INFO - #08: mozilla::ipc::MessageChannel::MessageTask::Run() [ipc/glue/MessageChannel.cpp:1632]
[task 2023-02-05T15:30:40.774Z] 15:30:40 INFO - #09: mozilla::TaskQueue::Runner::Run() [xpcom/threads/TaskQueue.cpp:266]
[task 2023-02-05T15:30:40.775Z] 15:30:40 INFO - #10: nsThreadPool::Run() [xpcom/threads/nsThreadPool.cpp:342]
[task 2023-02-05T15:30:40.777Z] 15:30:40 INFO - #11: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1220]
[task 2023-02-05T15:30:40.777Z] 15:30:40 INFO - #12: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:477]
[task 2023-02-05T15:30:40.778Z] 15:30:40 INFO - #13: mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:300]
[task 2023-02-05T15:30:40.778Z] 15:30:40 INFO - #14: MessageLoop::RunInternal() [ipc/chromium/src/base/message_loop.cc:381]
[task 2023-02-05T15:30:40.779Z] 15:30:40 INFO - #15: MessageLoop::RunHandler() [ipc/chromium/src/base/message_loop.cc:375]
[task 2023-02-05T15:30:40.780Z] 15:30:40 INFO - #16: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:357]
[task 2023-02-05T15:30:40.781Z] 15:30:40 INFO - #17: nsThread::ThreadFunc(void*) [xpcom/threads/nsThread.cpp:386]
[task 2023-02-05T15:30:40.781Z] 15:30:40 INFO - #18: _PR_NativeRunThread(void*) [nsprpub/pr/src/threads/combined/pruthr.c:399]
[task 2023-02-05T15:30:40.782Z] 15:30:40 INFO - #19: pr_root(void*) [nsprpub/pr/src/md/windows/w95thred.c:139]
[task 2023-02-05T15:30:40.782Z] 15:30:40 INFO - #20: o_iswdigit [C:\Windows\System32\ucrtbase.dll + 0x44f9f]
[task 2023-02-05T15:30:40.783Z] 15:30:40 INFO - #21: BaseThreadInitThunk [C:\Windows\System32\KERNEL32.DLL + 0x1fa29]
[task 2023-02-05T15:30:40.783Z] 15:30:40 INFO - #22: DllBlocklist_Initialize [Z:\task_167560217985931\build\application\firefox\mozglue.dll + 0x7db58]
[task 2023-02-05T15:30:40.783Z] 15:30:40 INFO - #23: RtlGetAppContainerNamedObjectPath [C:\Windows\SYSTEM32\ntdll.dll + 0x67a9e]
[task 2023-02-05T15:30:40.784Z] 15:30:40 INFO - #24: RtlGetAppContainerNamedObjectPath [C:\Windows\SYSTEM32\ntdll.dll + 0x67a6e]
Comment 12•1 year ago
|
||
Pushed by jolin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/22064d2ea972 p1: move common CDM proxy functions around. r=alwu https://hg.mozilla.org/integration/autoland/rev/f78a668162db p2: extract KeySystemConfig. r=alwu https://hg.mozilla.org/integration/autoland/rev/286e23b2fd09 p3: initial MFCDM protocol. r=alwu https://hg.mozilla.org/integration/autoland/rev/8fb54c90e452 p4: initial PlayReady DRM support. r=alwu https://hg.mozilla.org/integration/autoland/rev/5ef35f4a673a p5: implement *Init() for MFCDM protocol. r=alwu https://hg.mozilla.org/integration/autoland/rev/2761e91e1df9 p6: implement WMFCDMImpl::Init(). r=alwu https://hg.mozilla.org/integration/autoland/rev/a4643bed933b p7: implement CDMProxy for MF CDM and create/init it in MediaKeys. r=alwu
Comment 13•1 year ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/22064d2ea972
https://hg.mozilla.org/mozilla-central/rev/f78a668162db
https://hg.mozilla.org/mozilla-central/rev/286e23b2fd09
https://hg.mozilla.org/mozilla-central/rev/8fb54c90e452
https://hg.mozilla.org/mozilla-central/rev/5ef35f4a673a
https://hg.mozilla.org/mozilla-central/rev/2761e91e1df9
https://hg.mozilla.org/mozilla-central/rev/a4643bed933b
Updated•1 year ago
|
Assignee | ||
Updated•1 year ago
|
Description
•