Automatically fallback to Widevine L3 in case there is a DRM error
- Dominant language
- Java
- Stars
- 21.9k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
### [REQUIRED] Use case description
Recently some devices had their Widevine L1 license revoked (see #7986, #8075). This causes the affected devices to be unable to play DRM content by default, because ExoPlayer will attempt to use L1 (since the device claims to support it), which will fail (since the device had its license revoked).
### Proposed solution
ExoPlayer should have an option to automatically retry playback with L3 (if the DRM license allows it) instead of throwing a DRM-related exception. Only if playback was also unsuccessful with L3 should an error be thrown.
### Alternatives considered
* Implement this fallback mechanism directly in the app. It would be nice though if ExoPlayer offered this out of the box.
* Include the affected devices in [`needsForceWidevineL3Workaround()`](https://github.com/google/ExoPlayer/blob/59b34ede6165d029d86a677fea73a5dd0dd55c74/library/core/src/main/java/com/google/android/exoplayer2/drm/FrameworkMediaDrm.java#L422-L429). However, this list would have to be manually kept up to date, and it would not cover devices with similar issues that have yet to be discovered.
Contributor guide
Assessment
This issue has not been assessed yet.