Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRM: Check key status before adapting to a different representation #1776

Open
cdongieux opened this issue Oct 3, 2024 · 1 comment
Open
Assignees

Comments

@cdongieux
Copy link

Hi,

This issue follows up issue #4825 created in ExoPlayer repo some times ago. I did not see any issue here about the next steps about this, so I created this issue.

Now that MediaDrm#setOnKeyStatusChangeListener is implemented, do you plan to enhance the player to check a key status before playing the corresponding track? For now, the player just plays what the ABR rules dictate without knowing key status, and thus potentially leading to a playback error with CryptoException.

I see 2 use-cases for which this enhancement would be useful:

  1. The device does not support a certain protection level (for example Widevine L1, but it also could be PlayReady3000).
  2. The user playing a content does not have the right to play a certain protection level (for example a VOD content available with SD and HD representations, the user bought the SD version, so the license he owns only permits to play SD representations even if HD representations are available in the content).

Limiting the resolution on the app side is not flexible enough because we can imagine an app dealing with different stream providers having their own licensing rules, so it would be really better if the player could do that.

Best regards

@icbaker
Copy link
Collaborator

icbaker commented Oct 7, 2024

Thanks, I'll close google/ExoPlayer#4825 as a duplicate of this one and use this one to track the enhancement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants