google / google/ExoPlayer

MediaDrmStateException occurs during download and streaming playback.

Open
#8,691 19 comments 0 reactions 1 assignee Claimed by @fredgc View on GitHub
bug: in platform drm
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

This exception occurs on Pixel devices, but only on certain devices, not all devices.

### Searched documentation and issues
・ExoPlayer Javadoc.
・ExoPlayer Issues

### Question
An exception occurs during streaming and download playback.
This exception occurs on Pixel devices, but only on certain devices, not all devices.
The source code is the same as # 8175.
When I checked the error log, I asked a question because it was different from the error log that occurred in the past.

* Is this exception the same cause as past problems (#8175, #8655)?

Error log during streaming playback

```
ExoPlayerImplInternal: Renderer error: index=0, type=video, format=Format(3, null, null, video/avc, avc1.4d4028, 1000000, null, [800, 450, 29.97003], [-1, -1]), rendererSupport=NO_UNSUPPORTED_DRM
ExoPlayerImplInternal: com.google.android.exoplayer2.ExoPlaybackException: android.media.MediaCodec$CodecException: Error 0xffffffe0
ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.a(MediaCodecRenderer.java:48)
ExoPlayerImplInternal: at m.c.b.b.z.a(BaseRenderer.java:14)
ExoPlayerImplInternal: at m.c.b.b.j0.handleMessage(ExoPlayerImplInternal.java:24)
ExoPlayerImplInternal: at m.c.b.b.j0.b(ExoPlayerImplInternal.java:161)
ExoPlayerImplInternal: at android.os.Handler.dispatchMessage(Handler.java:102)
ExoPlayerImplInternal: at android.os.Looper.loop(Looper.java:223)
ExoPlayerImplInternal: at android.os.HandlerThread.run(HandlerThread.java:67)
ExoPlayerImplInternal: at android.media.MediaCodec.native_queueSecureInputBuffer(Native Method)
ExoPlayerImplInternal: Caused by: android.media.MediaCodec$CodecException: Error 0xffffffe0
ExoPlayerImplInternal: at android.media.MediaCodec.queueSecureInputBuffer(MediaCodec.java:2821)
ExoPlayerImplInternal: at m.c.b.b.o1.r.a(SynchronousMediaCodecAdapter.java:6)
ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.q(MediaCodecRenderer.java:81)
ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.a(MediaCodecRenderer.java:37)
```

Error log during download playback

```
ExoPlayerImplInternal: Source error.
ExoPlayerImplInternal: com.google.android.exoplayer2.drm.DrmSession$DrmSessionException: java.lang.IllegalArgumentException: Failed to restore keys
ExoPlayerImplInternal: at com.google.android.exoplayer2.drm.DefaultDrmSession.a(DefaultDrmSession.java:44)
ExoPlayerImplInternal: at com.google.android.exoplayer2.drm.DefaultDrmSession.h(DefaultDrmSession.java:3)
ExoPlayerImplInternal: at com.google.android.exoplayer2.drm.DefaultDrmSession.a(DefaultDrmSession.java:30)
ExoPlayerImplInternal: at com.google.android.exoplayer2.drm.DefaultDrmSession.b(DefaultDrmSession.java:9)
ExoPlayerImplInternal: at com.google.android.exoplayer2.drm.DefaultDrmSessionManager.a(DefaultDrmSessionManager.java:58)
ExoPlayerImplInternal: at m.c.b.b.s1.k0.a(SampleQueue.java:152)
ExoPlayerImplInternal: at m.c.b.b.s1.k0.a(SampleQueue.java:64)
ExoPlayerImplInternal: at m.c.b.b.s1.q0.g.a(ChunkSampleStream.java:68)
ExoPlayerImplInternal: at m.c.b.b.s1.k0.a(SampleQueue.java:8)
ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.a(MediaCodecRenderer.java:30)
ExoPlayerImplInternal: at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.b(MediaCodecRenderer.java:3)
ExoPlayerImplInternal: at m.c.b.b.z.a(BaseRenderer.java:15)
ExoPlayerImplInternal: at m.c.b.b.j0.handleMessage(ExoPlayerImplInternal.java:24)
ExoPlayerImplInternal: at m.c.b.b.j0.b(ExoPlayerImplInternal.java:161)
ExoPlayerImplInternal: at android.os.Handler.dispatchMessage(Handler.java:102)
ExoPlayerImplInternal: at android.os.HandlerThread.run(HandlerThread.java:67)
ExoPlayerImplInternal: at android.os.Looper.loop(Looper.java:223)
ExoPlayerImplInternal: Caused by: java.lang.IllegalArgumentException: Failed to restore keys
ExoPlayerImplInternal: at android.media.MediaDrm.restoreKeys(Native Method)
ExoPlayerImplInternal: at m.c.b.b.m1.t.a(FrameworkMediaDrm.java:83)
ExoPlayerImplInternal: at com.google.android.exoplayer2.drm.DefaultDrmSession.h(DefaultDrmSession.java:1)
```

Version of ExoPlayer being used: 2.12.1

### A full bug report captured from the device

I sent it to dev.exoplayer@gmail.com.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.