androidx / media

Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
https://developer.android.com/media/media3
Apache License 2.0
1.55k stars 373 forks source link

MediaDrmStateException in FrameworkMediaDrm.getKeyRequest during OfflineLicenseHelper.renewLicense call of ExoPlayer #1604

Open rdutta2020 opened 1 month ago

rdutta2020 commented 1 month ago

We are calling "offlineLicenseHelper.renewLicense" and passing "offlineLicenseKeySetId" same as we got during "downloadLicense" response. Getting the below error: (HLS content):: android.media.MediaDrm$MediaDrmStateException: Failed to get key request: General DRM error at android.media.MediaDrm.getKeyRequest(Native Method) at com.google.android.exoplayer2.drm.FrameworkMediaDrm.getKeyRequest(FrameworkMediaDrm.java:199) at com.google.android.exoplayer2.drm.DefaultDrmSession.postKeyRequest(DefaultDrmSession.java:468) at com.google.android.exoplayer2.drm.DefaultDrmSession.doLicense(DefaultDrmSession.java:433) at com.google.android.exoplayer2.drm.DefaultDrmSession.acquire(DefaultDrmSession.java:303) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSession(DefaultDrmSessionManager.java:785) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSessionWithRetry(DefaultDrmSessionManager.java:686) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:565) at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:511) at com.google.android.exoplayer2.drm.OfflineLicenseHelper.openBlockingKeyRequest(OfflineLicenseHelper.java:284) at com.google.android.exoplayer2.drm.OfflineLicenseHelper.blockingKeyRequest(OfflineLicenseHelper.java:267) at com.google.android.exoplayer2.drm.OfflineLicenseHelper.renewLicense(OfflineLicenseHelper.java:207)

Please help.

icbaker commented 1 month ago

Please take an adb bugreport shortly after seeing this error and send it to android-media-github@google.com with the subject Issue #1604. Please also update this issue to indicate you’ve done this.

rdutta2020 commented 1 month ago

email sent with bugreport, same error as mentioned above

08-09 13:00:12.134 10398 32724 32724 E MediaDrm-JNI: Illegal state exception: Failed to get key request: General DRM error (-2000) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: DRM session error 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: android.media.MediaDrm$MediaDrmStateException: Failed to get key request: General DRM error 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at android.media.MediaDrm.getKeyRequest(Native Method) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.FrameworkMediaDrm.getKeyRequest(FrameworkMediaDrm.java:199) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.DefaultDrmSession.postKeyRequest(DefaultDrmSession.java:468) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.DefaultDrmSession.doLicense(DefaultDrmSession.java:433) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.DefaultDrmSession.acquire(DefaultDrmSession.java:303) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSession(DefaultDrmSessionManager.java:785) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.createAndAcquireSessionWithRetry(DefaultDrmSessionManager.java:686) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:565) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.acquireSession(DefaultDrmSessionManager.java:511) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.OfflineLicenseHelper.openBlockingKeyRequest(OfflineLicenseHelper.java:284) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.OfflineLicenseHelper.blockingKeyRequest(OfflineLicenseHelper.java:267) 08-09 13:00:12.137 10398 32724 32724 E DefaultDrmSession: at com.google.android.exoplayer2.drm.OfflineLicenseHelper.renewLicense(OfflineLicenseHelper.java:207)

icbaker commented 1 month ago

@rrfrias Looks like a WV error in the BR just before the quoted stack trace:

08-09 13:00:11.995 media  5375 26279 D WVCdm   : Instantiating CDM.
08-09 13:00:11.999 media  5375 26279 I WVCdm   : [cdm_engine.cpp(529):QueryStatus] CdmEngine::QueryStatus
08-09 13:00:11.999 media  5375 26279 I WVCdm   : [oemcrypto_adapter_dynamic.cpp(636):Initialize] Level 3 Build Info (v15): OEMCrypto Level3 Code 8158 Apr 18 2019 19:27:36
08-09 13:00:11.999 media  5375   587 I WVCdm   : [(0):] Level3 Library 8158 Apr 18 2019 19:27:36
08-09 13:00:12.010 media  5375 26279 I WVCdm   : [oemcrypto_adapter_dynamic.cpp(650):Initialize] L3 Initialized. Trying L1.
08-09 13:00:12.043 media  5375 26279 D WVCdm   : [oemcrypto_adapter_dynamic.cpp(669):Initialize] OEMCrypto_Initialize Level 1 success. I will use level 1.
08-09 13:00:12.043 media  5375 26279 I WVCdm   : [oemcrypto_adapter_dynamic.cpp(672):Initialize] Level 1 Build Info (v15):  LSI OEMCrypto v15.2 Dec  4 2019 13:44:48
08-09 13:00:12.043 media  5375 26279 D WVCdm   : [crypto_session.cpp(646):Open] CryptoSession::Open: requested_security_level: Default
08-09 13:00:12.043 media  5375 26279 E wv_dash : Add session list sid(1) index(0)
08-09 13:00:12.044 media  5375 26279 I WVCdm   : [usage_table_header.cpp(38):Init] UsageTableHeader::Init: security level: 1
08-09 13:00:12.047 media  5375 26279 I WVCdm   : [usage_table_header.cpp(70):Init] UsageTableHeader::Init: number of usage entries: 0
08-09 13:00:12.050 media  5375 26279 E wv_dash : OEMCrypto_GetDeviceID(): short buffer
08-09 13:00:12.057 media  5375 26279 I WVCdm   : [(0):] L3 Terminate.
08-09 13:00:12.062 media  5375 26279 I WVCdm   : [cdm_engine.cpp(116):OpenSession] CdmEngine::OpenSession
08-09 13:00:12.062 media  5375 26279 I WVCdm   : [oemcrypto_adapter_dynamic.cpp(636):Initialize] Level 3 Build Info (v15): OEMCrypto Level3 Code 8158 Apr 18 2019 19:27:36
08-09 13:00:12.062 media  5375   588 I WVCdm   : [(0):] Level3 Library 8158 Apr 18 2019 19:27:36
08-09 13:00:12.070 media  5375 26279 I WVCdm   : [oemcrypto_adapter_dynamic.cpp(650):Initialize] L3 Initialized. Trying L1.
08-09 13:00:12.102  1002  6513  6681 D BtGatt.GattService: onScanResult to scannerId: 11- eventType=0x1a, addressType=0, address=91:4, primaryPhy=1, secondaryPhy=0, advertisingSid=0xff, txPower=127, rssi=-92, periodicAdvInt=0x0
08-09 13:00:12.110 media  5375 26279 D WVCdm   : [oemcrypto_adapter_dynamic.cpp(669):Initialize] OEMCrypto_Initialize Level 1 success. I will use level 1.
08-09 13:00:12.110 media  5375 26279 I WVCdm   : [oemcrypto_adapter_dynamic.cpp(672):Initialize] Level 1 Build Info (v15):  LSI OEMCrypto v15.2 Dec  4 2019 13:44:48
08-09 13:00:12.110 media  5375 26279 D WVCdm   : [crypto_session.cpp(646):Open] CryptoSession::Open: requested_security_level: Default
08-09 13:00:12.110 media  5375 26279 E wv_dash : Add session list sid(1) index(0)
08-09 13:00:12.110 media  5375 26279 I WVCdm   : [usage_table_header.cpp(38):Init] UsageTableHeader::Init: security level: 1
08-09 13:00:12.112 media  5375 26279 I WVCdm   : [usage_table_header.cpp(70):Init] UsageTableHeader::Init: number of usage entries: 0
08-09 13:00:12.116 media  5375 26279 I WVCdm   : [device_files.cpp(154):ExtractDeviceInfo] ExtractDeviceInfo Entry
08-09 13:00:12.118 media  5375 26279 I WVCdm   : [cdm_engine.cpp(153):OpenSession] CdmEngine::OpenSession: sid38
08-09 13:00:12.118 media  5375 26279 I WVCdm   : [cdm_engine.cpp(829):QueryOemCryptoSessionId] CdmEngine::QueryOemCryptoSessionId: sid38
08-09 13:00:12.119 media  5375 26279 I WVCdm   : [cdm_engine.cpp(409):RestoreKey] CdmEngine::RestoreKey: session ID: sid38, key set ID: ksid24494C36
08-09 13:00:12.134 media  5375 26279 I WVCdm   : [cdm_engine.cpp(529):QueryStatus] CdmEngine::QueryStatus
08-09 13:00:12.134 media  5375 26279 I WVCdm   : [cdm_engine.cpp(240):GenerateKeyRequest] CdmEngine::GenerateKeyRequest: sid38
08-09 13:00:12.134 media  5375 26279 E WVCdm   : [license.cpp(392):PrepareKeyUpdateRequest] CdmLicense::PrepareKeyUpdateRequest: license renewal prohibited
08-09 13:00:12.134 media  5375 26279 E WVCdm   : [cdm_engine.cpp(311):GenerateKeyRequest] CdmEngine::GenerateKeyRequest: key request generation failed, sts = 167
08-09 13:00:12.134 media  5375 26279 W WVCdm   : Returns UNKNOWN error for legacy status: 167
08-09 13:00:12.134 media  5375 26279 W WVCdm   : Returns UNKNOWN error for legacy status: 167
rrfrias commented 3 weeks ago

The license policy has a flag set that disallows renewal. If you or your license provider is a widevine licensee you might want to reach out for support to make sure your licenses are correctly configured: https://widevine.com/contact

google-oss-bot commented 6 days ago

Hey @rdutta2020. We need more information to resolve this issue but there hasn't been an update in 14 weekdays. I'm marking the issue as stale and if there are no new updates in the next 7 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!