From 14e582b7e5437e73b5e674b2b15e3b13b4753793 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Tue, 20 Jul 2021 15:40:48 +0100 Subject: [PATCH] Remove ExoPlayer uses of ERROR_CODE_DRM_UNSPECIFIED PiperOrigin-RevId: 385783671 --- .../google/android/exoplayer2/drm/DefaultDrmSession.java | 3 ++- .../android/exoplayer2/mediacodec/MediaCodecRenderer.java | 8 +++----- .../google/android/exoplayer2/source/SampleQueueTest.java | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java index 1f716a62f5..cf667055d1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSession.java @@ -564,7 +564,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; // better diagnosis tools were provided, we treat this as a system error. return PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR; } else { - return PlaybackException.ERROR_CODE_DRM_UNSPECIFIED; + // The error happened during the license request. + return PlaybackException.ERROR_CODE_DRM_LICENSE_ACQUISITION_FAILED; } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java index 38b8cfaa14..9d689faa03 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java @@ -570,12 +570,10 @@ public abstract class MediaCodecRenderer extends BaseRenderer { if (FrameworkMediaCrypto.WORKAROUND_DEVICE_NEEDS_KEYS_TO_CONFIGURE_CODEC) { @DrmSession.State int drmSessionState = codecDrmSession.getState(); if (drmSessionState == DrmSession.STATE_ERROR) { - // TODO(internal b/184262323): Assign a proper error code, once we attach that information - // to DrmSessionException. + DrmSessionException drmSessionException = + Assertions.checkNotNull(codecDrmSession.getError()); throw createRendererException( - codecDrmSession.getError(), - inputFormat, - PlaybackException.ERROR_CODE_DRM_UNSPECIFIED); + drmSessionException, inputFormat, drmSessionException.errorCode); } else if (drmSessionState != DrmSession.STATE_OPENED_WITH_KEYS) { // Wait for keys. return; diff --git a/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java b/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java index 71fbda3957..0b812ba14f 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java @@ -558,7 +558,7 @@ public final class SampleQueueTest { when(mockDrmSession.getError()) .thenReturn( new DrmSession.DrmSessionException( - new Exception(), PlaybackException.ERROR_CODE_DRM_UNSPECIFIED)); + new Exception(), PlaybackException.ERROR_CODE_DRM_SYSTEM_ERROR)); assertReadNothing(/* formatRequired= */ false); try { sampleQueue.maybeThrowError();