google / google/ExoPlayer

PlayReady on Chromecast with Google TV fails if two key requests are in-flight at once

Open
#9,038 14 comments 0 reactions 1 assignee Assigned to @icbaker View on GitHub
bug: device specific
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

Hello,

I need to protect DASH content with multiple keys, and unfortunately I have to use license servers that can return only one key at a time
Apparently, EXO is supposed to deal with this scenario (just setting drm_multi_session to true), and indeed I see that multiple, correct invocations to the License Server are generated, one for each key, and the license server consistently serves them.
However, playback fails.
Digging into the past issues and googling around, the only hint I found is in https://github.com/SRGSSR/srgcontentprotection-apple/issues/5 and relates to the need to remove key persistence in Android (???)

I have performed tests using version 2.11.8, and verified that the problem persists also in 2.14.0
I have performed tests with both Widevine and Playready, on multiple devices.
In the logs I see errors due to Crypto key not available, but the first alerting log is:
- on Fire TV Stick 2020, for both WV and PR:
_W/mediaErrorLogger: MediaError:MMSW_Metrics7.0:com.google.android.exoplayer2.TTF_demo.DRM_NO_LICENSE=-2001 from decrypt_
on Samsung S10, for WV:
_W/MediaCodec: Log queueSecureInputBuffer error: -2001_

I attach:
- A log of a failed session (two keys) with Playready in Firestick (file logA1V2_KO.txt)
- A log of a correct session (single key) with Playready in Firestick – for comparison, since there are warnings that sounds bad but are normal (file logA1V1_OK.txt)
- The bugreport related to the failed session

To reproduce the problem, I will share via e-mail a test content using Playready (the Widevine license server would require extra parameters to be computed by the app). This content material has been verified successfully on Edge browser with shaka player.
You would need a device with Playready support, such as an Amazon Firestick (I used a Fire TV Stick 2020)

Thanks in advance

[bugreport-sheldonp-PS7234-2021-06-09-09-36-17.zip](https://github.com/google/ExoPlayer/files/6626088/bugreport-sheldonp-PS7234-2021-06-09-09-36-17.zip)
[logA1V1_OK.txt](https://github.com/google/ExoPlayer/files/6626090/logA1V1_OK.txt)
[logA1V2_KO.txt](https://github.com/google/ExoPlayer/files/6626091/logA1V2_KO.txt)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.