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.59k stars 377 forks source link

Is there a way in content protection which allows L1 content to decrypt with non secure decoder? #1761

Open akhilesh-dubey opened 2 days ago

akhilesh-dubey commented 2 days ago

I encountered a scenario where L1 content was successfully decoded on a non-secure decoder, contrary to expectations.

When I tried using the Media3 sample app to test "HW secure decode" asset, I found crypto failure when forced the software decoder and encountered an expected failure. However, when testing with my specific asset, I did not receive a crypto error, and the decoder was able to decrypt the content successfully.

So I assume output protection rule can cause this difference. I want to achieve the same behavior like media3 sample where L1 content is only decrypted on secure decoders. Could you suggest suitable license protection rules to achieve this? Specifically, my L1 track fails to decrypt on an L3 CDM, but it decrypts successfully on an L1 CDM. However, it's also being decoded by a software decoder, which contradicts the expected secure decoding behavior of L1 content.

Showing below warnings, but the playback continues without any widevine error.

2024-09-26 15:47:45.191  3597-4605  MediaCodecRenderer      androidx.media3.demo.main            W  Drm session requires secure decoder for video/avc, but no secure decoder available. Trying to proceed with [c2.android.avc.decoder].

Output protection rule query: In which condition we can decode DRM protected video which has L1 key with device designated as widevine L1 (CDM) but decoded as part of software decoder ?

icbaker commented 2 days ago

This is a question about widevine license policies, not about ExoPlayer. If you're a Widevine partner you can get support directly from them: https://www.widevine.com/contact.