[Bug]: CBCS encrypted CMAF decoding issue (Widevine DRM)
Categories
(Core :: Audio/Video, defect)
Tracking
()
People
(Reporter: kbrosnan, Unassigned, NeedInfo)
Details
Attachments
(1 obsolete file)
From github: https://github.com/mozilla-mobile/fenix/issues/25127.
Steps to reproduce
Expected behaviour
Playback starts
Actual behaviour
Playback fails
MediaError::GetMessage: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - OnErrorDevice name
Googel Pixel 5
Android version
Android 12
Firefox release type
Firefox
Firefox version
99.2.0
Device logs
Media resource blob:https://demo.cf.castlabs.com/c9ad0bad-146f-430a-a37f-64febb71b3b0 could not be decoded. dashjs-cbcs.html
[24601][StreamController] A MEDIA_ERR_DECODE occured: Resetting the MediaSource dash.all.debug.js:18001:19
[24610][StreamController] MediaSource has been resetted. Resuming playback from time 0 dash.all.debug.js:18001:19
Media resource blob:https://demo.cf.castlabs.com/c9ad0bad-146f-430a-a37f-64febb71b3b0 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005)
Details: OnError dashjs-cbcs.html
Media resource blob:https://demo.cf.castlabs.com/f9ece675-4524-4c86-9f0c-5fedbe266c6a could not be decoded. dashjs-cbcs.html
[25359][StreamController] A MEDIA_ERR_DECODE occured: Resetting the MediaSource dash.all.debug.js:18001:19
[25361][StreamController] MediaSource has been resetted. Resuming playback from time 0 dash.all.debug.js:18001:19
Uncaught (in promise) DOMException: The fetching process for the media resource was aborted by the user agent at the user's request. dash.all.debug.js:51189
Media resource blob:https://demo.cf.castlabs.com/fa2e23aa-3c17-4889-b781-4e6a58c8b9a8 could not be decoded. dashjs-cbcs.html
[26054][StreamController] A MEDIA_ERR_DECODE occured: Resetting the MediaSource dash.all.debug.js:18001:19
[26059][StreamController] MediaSource has been resetted. Resuming playback from time 0 dash.all.debug.js:18001:19
Media resource blob:https://demo.cf.castlabs.com/c9ad0bad-146f-430a-a37f-64febb71b3b0 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005)
Details: OnError dashjs-cbcs.html
Media resource blob:https://demo.cf.castlabs.com/1c133e94-310e-4a79-8937-556372764cb2 could not be decoded. dashjs-cbcs.html
[26820][StreamController] A MEDIA_ERR_DECODE occured: Resetting the MediaSource dash.all.debug.js:18001:19
[26823][StreamController] MediaSource has been resetted. Resuming playback from time 0 dash.all.debug.js:18001:19
Media resource blob:https://demo.cf.castlabs.com/c9ad0bad-146f-430a-a37f-64febb71b3b0 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005)
Details: OnError dashjs-cbcs.html
Media resource blob:https://demo.cf.castlabs.com/28208e4b-bc6f-4d46-a831-dd3535e1662d could not be decoded. dashjs-cbcs.html
[27559][StreamController] A MEDIA_ERR_DECODE occured: Resetting the MediaSource dash.all.debug.js:18001:19
[27562][StreamController] MediaSource has been resetted. Resuming playback from time 0 dash.all.debug.js:18001:19
Media resource blob:https://demo.cf.castlabs.com/64406406-6c6b-4477-8871-f2f898d14a6a could not be decoded. dashjs-cbcs.html
This error message will be blank when privacy.resistFingerprinting = true. If it is really necessary, please add it to the whitelist in MediaError::GetMessage: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - OnError dash.all.debug.js:44596:9
This error message will be blank when privacy.resistFingerprinting = true. If it is really necessary, please add it to the whitelist in MediaError::GetMessage: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - OnError dash.all.debug.js:44597:7
[28258][StreamController] Video Element Error: MEDIA_ERR_DECODE (NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) - OnError) dash.all.debug.js:18001:19
[28260][StreamController] [object MediaError] dash.all.debug.js:18001:19
Media resource blob:https://demo.cf.castlabs.com/c9ad0bad-146f-430a-a37f-64febb71b3b0 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005)
Details: OnErrorAdditional information
Works:
- when using AES-CTR encryption instead (CENC) i.e. https://demo.cf.castlabs.com/public/SUPPORT/Firefox-Mobile/dashjs-cenc.html
- with Firefox Desktop
This stream uses the same encryption info for all representations (CEK, KID, IV = 16 Bytes each)
Reducing Manifest to video-only does not throw the error and playback starts, but video decoder output is garbage (IV handling?)EME capabilities check indicates support for Widevine CENC and CBCS (SW_SECURE_CRYPTO)
Fails on all Android devices and this browser tested so far
Change performed by the Move to Bugzilla add-on.
Comment 1•2 years ago
|
||
Hey John, this might be Android related. Would you mind taking a look?
Comment hidden (spam) |
Updated•4 months ago
|
Description
•