-
Notifications
You must be signed in to change notification settings - Fork 6k
Closed
Labels
Description
Issue description
When attempting to play a protected file with DRM encryption, I get the a decryption error. I am able to play successfully except when the base64 key contains a /. I have tried all of the following in my offline key:
"...\"k\":\"sqvlkIJdgicc/AYGBjyBmQ\"...""...\"k\":\"sqvlkIJdgicc\\/AYGBjyBmQ\"...""...\"k\":\"sqvlkIJdgicc_AYGBjyBmQ\"..."
All three produce the following error: ('+'/'-' seems to work fine)
E/ExoPlayerImplInternal: Renderer error.
com.google.android.exoplayer2.ExoPlaybackException
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:765)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:568)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: android.media.MediaCodec$CryptoException: Decryption Error
at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method)
at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2480)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:756)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:568)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:518)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:301)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
Reproduction steps
final byte[] keyResponse = "{\"type\":\"temporary\",\"keys\":[{\"kid\":\"nrQFDeRLSAKTLifXUIPiZg\",\"k\":\"sqvlkIJdgicc\\/AYGBjyBmQ\",\"kty\":\"oct\"}]}".getBytes("UTF-8");
DrmSessionManager<FrameworkMediaCrypto> drmSessionManager = DefaultDrmSessionManager.newFrameworkInstance(C.CLEARKEY_UUID, new LocalMediaDrmCallback(keyResponse), new HashMap<String, String>(), null, null);Version of ExoPlayer being used
ExoPlayer 2.7.0
Device(s) and version(s) of Android being used
6.0.0 Visual Studio Emulator
7.1.1 Nexus 6
Reactions are currently unavailable