androidx / androidx/media

Support Multi-Key Content with Key Rotation

Open
#2,297 2 comments 0 reactions 1 assignee View on GitHub

@icbaker is already working on this.

Since Apr 2, 2025.

bug needs triage
Dominant language
Java
Stars
3k
Forks
955
Avg merge
12d 14h
Merged PRs (30d)
2

Description

Version

Media3 main branch

More version details

I have selected release branch
Videos: v7-MultiDRM-MultiKey 1080p and v7-MultiDRM-MultiKey-MultiPeriod 1080p from the Axinom playlist.

The videos are encrypted using different keys for different tracks (or groups of tracks). See https://github.com/Axinom/dash-test-vectors for more info.
Playback should work fine as according to Media3 documentation it supports key rotation, but playback is not working says crypto key not available

Devices that reproduce the issue

Amazon FireTv 7.6.2, FireStick Lite,
Samsung J7 Prime etc.
I am unable to play the content on Any device

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

Download the axinom playlist and replace the media.exoplaylist in demo, play Videos: v7-MultiDRM-MultiKey 1080p and v7-MultiDRM-MultiKey-MultiPeriod 1080p from the Axinom playlist.

Expected result

Video Should play fine after acquiring license from DRM server.

Actual result

Throwing error and playback doesn't start policy_engine.cpp(55):CanDecryptContent] PolicyEngine::CanDecryptContent Key '1E7784EA2EB98E233F05ABD96E8D46E6' not in license.
androidx.media3.exoplayer.ExoPlaybackException: MediaCodecAudioRenderer error, index=1, format=Format(stream_06, null, null, audio/mp4a-latm, mp4a.40.2, 128000, es, [-1, -1, -1.0, null], [2, 48000]), format_supported=YES
at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:641)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:211)
at android.os.HandlerThread.run(HandlerThread.java:65)
Caused by: android.media.MediaCodec$CryptoException: Crypto key not available

Media

https://raw.githubusercontent.com/Axinom/dash-test-vectors/master/axinom.exolist.json

Bug Report
  • You will email the zip file produced by adb bugreport to android-media-github@google.com after filing this issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.