Closed Bug 1724027 Opened 3 years ago Closed 1 years ago

DRM protected content on Apple TV+ does not play

Categories

(Core :: Audio/Video: Playback, defect, P3)

Unspecified
Android
defect

Tracking

()

RESOLVED FIXED
115 Branch
Webcompat Priority P1
Tracking Status
firefox-esr102 --- unaffected
firefox106 --- wontfix
firefox107 --- wontfix
firefox108 --- wontfix
firefox113 --- wontfix
firefox114 --- wontfix
firefox115 --- fixed

People

(Reporter: petru, Assigned: az)

References

Details

Attachments

(2 files)

From github: https://github.com/mozilla-mobile/fenix/issues/20676.

Steps to reproduce

  1. Go to tv.apple.com and login with your apple credentials
  2. Play any tv show or movie. It does not play past the Apple logo at the beginning of the movie, it just displays a grey screen

Expected behaviour

It should play movies on apple tv+

Actual behaviour

The player displays a grey screen

Device name

Samsung Galaxy S20

Android version

Android 11

Firefox release type

Firefox

Firefox version

90.1.3

Device logs

No response

Additional information

No response

Change performed by the Move to Bugzilla add-on.

Component: General → Audio/Video: Playback
Product: GeckoView → Core

I don't have an account to test this with at the moment.

My suspicion is this could be related to android cbcs (bug 1519236), but I'm not able to verify that.

John, any further thoughts on this one?

Assignee: nobody → bvandyk
Severity: -- → S2
Flags: needinfo?(jolin)
Priority: -- → P3

According to the log, Widevine CDM returned error(#176?)
08-06 13:25:39.228 657 26572 D WVCdm : Instantiating CDM.
08-06 13:25:39.251 659 26556 I WVCdm : [cdm_engine.cpp(110):OpenSession] CdmEngine::OpenSession
08-06 13:25:39.252 659 26556 D WVCdm : [crypto_session.cpp(646):Open] CryptoSession::Open: Lock: requested_security_level: L3
08-06 13:25:39.287 659 26556 I WVCdm : [device_files.cpp(166):ExtractDeviceInfo] ExtractDeviceInfo Entry
08-06 13:25:39.313 659 26556 I WVCdm : [cdm_engine.cpp(147):OpenSession] CdmEngine::OpenSession: sid14
08-06 13:25:39.313 659 26556 I WVCdm : [cdm_engine.cpp(742):QueryOemCryptoSessionId] CdmEngine::QueryOemCryptoSessionId
08-06 13:25:39.333 657 26572 D WVCdm : Instantiating CDM.
08-06 13:25:43.367 659 26556 I WVCdm : [cdm_engine.cpp(110):OpenSession] CdmEngine::OpenSession>
08-06 13:25:43.368 659 26556 D WVCdm : [crypto_session.cpp(646):Open] CryptoSession::Open: Lock: requested_security_level: L3
08-06 13:25:43.373 659 26556 I WVCdm : [device_files.cpp(166):ExtractDeviceInfo] ExtractDeviceInfo Entry
08-06 13:25:43.391 659 26556 I WVCdm : [cdm_engine.cpp(147):OpenSession] CdmEngine::OpenSession: sid15
08-06 13:25:43.391 659 26556 I WVCdm : [cdm_engine.cpp(742):QueryOemCryptoSessionId] CdmEngine::QueryOemCryptoSessionId
08-06 13:25:43.392 659 26556 I WVCdm : [cdm_engine.cpp(233):GenerateKeyRequest] CdmEngine::GenerateKeyRequest
08-06 13:25:43.398 659 26556 D WVCdm : [license.cpp(355):PrepareKeyRequest] PrepareKeyRequest: nonce=1063991848
08-06 13:25:43.876 659 26556 I WVCdm : [cdm_engine.cpp(110):OpenSession] CdmEngine::OpenSession
08-06 13:25:43.876 659 26556 D WVCdm : [crypto_session.cpp(646):Open] CryptoSession::Open: Lock: requested_security_level: L3
08-06 13:25:43.879 659 26556 I WVCdm : [device_files.cpp(166):ExtractDeviceInfo] ExtractDeviceInfo Entry
08-06 13:25:43.893 659 26556 I WVCdm : [cdm_engine.cpp(147):OpenSession] CdmEngine::OpenSession: sid16
08-06 13:25:43.893 659 26556 I WVCdm : [cdm_engine.cpp(742):QueryOemCryptoSessionId] CdmEngine::QueryOemCryptoSessionId
08-06 13:25:43.894 659 26556 I WVCdm : [cdm_engine.cpp(233):GenerateKeyRequest] CdmEngine::GenerateKeyRequest
08-06 13:25:43.897 659 26556 D WVCdm : [license.cpp(355):PrepareKeyRequest] PrepareKeyRequest: nonce=934413101
08-06 13:25:44.261 659 26556 I WVCdm : [cdm_engine.cpp(312):AddKey] CdmEngine::AddKey
08-06 13:25:44.618 659 26556 I WVCdm : [cdm_engine.cpp(312):AddKey] CdmEngine::AddKey
08-06 13:25:45.056 659 26556 W WVCdm : Returns UNKNOWN error for legacy status: 176
08-06 13:25:45.056 659 26556 E WVCdm : Decrypt error result in session sid14 during encrypted block: 176
08-06 13:25:45.133 659 26556 W WVCdm : Returns UNKNOWN error for legacy status: 176
08-06 13:25:45.134 659 26556 E WVCdm : Decrypt error result in session sid14 during encrypted block: 176

Bryce, do you know how we can find out what the error means?

Flags: needinfo?(jolin) → needinfo?(bvandyk)

I don't know what to make of the legacy status error. The decrypt error doesn't say much aside from that some issue happened with decryption. It could be caused by lack of cbcs support, but it doesn't explicitly say that.

Flags: needinfo?(bvandyk)

After passing the cbcs info to Java code, the protected content starts to play. Unfortunately, only audio plays normally and video shows garbage. I will continue the investigation to see what needs to be done.

Depends on: 1519236
Assignee: bvandyk → jolin

Any update on this? I see the dependent bug is closed., but I tried in a fresh Nightly (95) and it is still busted.

Flags: needinfo?(petru.lingurar)

(In reply to Jan-Ivar Bruaroey [:jib] (needinfo? me) from comment #5)

Any update on this? I see the dependent bug is closed., but I tried in a fresh Nightly (95) and it is still busted.

This seems in line with comment 4.
Nothing to add from me.

Flags: needinfo?(petru.lingurar)

Ah sorry, I meant to ni? John

Flags: needinfo?(jolin)
Summary: [Bug]: DRM protected content on apple tv+ does not play → DRM protected content on apple tv+ does not play

Looks like John fixed the cbcs issue but we are still getting playback errors. We have a discussion list with the widevine cdm engineers - if we can figure out where / when these errors are being generated, we can ask widevine for more info. I'd like to be sure the errors are coming from the cdm vs. Firefox first though.

Flags: needinfo?(jolin) → needinfo?(azebrowski)

I see the following in my console output:

2022-10-14 09:23:26.329 7020-7077 DrmUtils org.mozilla.geckoview_example I found IDrmFactory. Instance name:[android.hardware.drm.IDrmFactory/clearkey]
2022-10-14 09:23:26.331 7020-7077 DrmUtils org.mozilla.geckoview_example I found IDrmFactory. Instance name:[android.hardware.drm.IDrmFactory/widevine]
2022-10-14 09:23:26.332 465-465 hwservicemanager pid-465 I getTransport: Cannot find entry android.hardware.drm@1.0::ICryptoFactory/default in either framework or device VINTF manifest.
2022-10-14 09:23:26.332 7020-7077 CryptoHalHidl org.mozilla.geckoview_example E Failed to find any crypto factories
2022-10-14 09:23:26.332 874-874 WVCdm pid-874 I [cdm_engine.cpp(994):IsSecurityLevelSupported] level = L1
2022-10-14 09:23:26.333 7020-7077 DrmHalHidl org.mozilla.geckoview_example I No hidl drm factories found
2022-10-14 09:23:26.333 465-465 hwservicemanager pid-465 I getTransport: Cannot find entry android.hardware.drm@1.0::IDrmFactory/default in either framework or device VINTF manifest.
2022-10-14 09:23:26.333 7020-7077 DrmHalHidl org.mozilla.geckoview_example E Failed to find passthrough drm factories
2022-10-14 09:23:26.335 7020-7077 DrmUtils org.mozilla.geckoview_example I found IDrmFactory. Instance name:[android.hardware.drm.IDrmFactory/clearkey]
2022-10-14 09:23:26.335 7020-7077 DrmUtils org.mozilla.geckoview_example I found IDrmFactory. Instance name:[android.hardware.drm.IDrmFactory/widevine]
2022-10-14 09:23:26.335 874-874 WVCdm pid-874 I [cdm_engine.cpp(994):IsSecurityLevelSupported] level = L1
2022-10-14 09:23:26.335 7020-7077 DrmHalHidl org.mozilla.geckoview_example I No hidl drm factories found
2022-10-14 09:23:26.336 465-465 hwservicemanager pid-465 I getTransport: Cannot find entry android.hardware.drm@1.0::IDrmFactory/default in either framework or device VINTF manifest.
2022-10-14 09:23:26.336 7020-7077 DrmHalHidl org.mozilla.geckoview_example E Failed to find passthrough drm factories

This is interesting -

2022-10-14 09:23:26.335 874-874 WVCdm pid-874 I [cdm_engine.cpp(994):IsSecurityLevelSupported] level = L1

I wonder if Apple requires Level 1 support?

Summary: DRM protected content on apple tv+ does not play → DRM protected content on Apple TV+ does not play

Can verify black screen/corruption on my end as well with a Pixel 6a running Android 12 and Firefox nightly.

(In reply to Jim Mathies [:jimm] from comment #11)

This is interesting -

2022-10-14 09:23:26.335 874-874 WVCdm pid-874 I [cdm_engine.cpp(994):IsSecurityLevelSupported] level = L1

I wonder if Apple requires Level 1 support?

This is coming from the cdm codebase vs mozilla's.

Flags: needinfo?(azebrowski)

Hey, mind retesting after we fixed that pixel bug?

Flags: needinfo?(jib)

Still busted. Note that the first 2:30 minutes of ads play fine, but the main feature remains garbled as shown in comment 5. Sound is fine.

Flags: needinfo?(jib)
Webcompat Priority: --- → ?
Webcompat Priority: ? → P1
Blocks: media-triage
No longer blocks: media-triage
Assignee: jolin → azebrowski
Attachment #9335072 - Attachment description: Bug 1724027 - Forward CSBC crypto pattern to remote decoding process on Android r=jolin → Bug 1724027 - Forward CBCS crypto pattern to remote decoding process on Android r=jolin
Pushed by azebrowski@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/aacd89e0e6d2 Forward CBCS crypto pattern to remote decoding process on Android r=jolin,geckoview-reviewers,m_kato
Status: NEW → RESOLVED
Closed: 1 years ago
Resolution: --- → FIXED
Target Milestone: --- → 115 Branch

The patch landed in nightly and beta is affected.
:az, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox114 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(azebrowski)
Flags: needinfo?(azebrowski)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: