diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 007e203d28..cd7333e2f3 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -12,6 +12,9 @@ * HLS * Fix a bug where skipping into spliced-in chunks triggered an assertion error ([#8937](https://github.com/google/ExoPlayer/issues/8937). +* DRM: + * Don't restore offline keys before releasing them. In OEMCrypto v16+ keys + must be released without restoring them first. ### 2.14.0 (2021-05-13) 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 4325e677de..fa9f428829 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 @@ -430,11 +430,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; case DefaultDrmSessionManager.MODE_RELEASE: Assertions.checkNotNull(offlineLicenseKeySetId); Assertions.checkNotNull(this.sessionId); - // It's not necessary to restore the key before releasing it but this serves as a good - // fast-failure check. - if (restoreKeys()) { - postKeyRequest(offlineLicenseKeySetId, ExoMediaDrm.KEY_TYPE_RELEASE, allowRetry); - } + postKeyRequest(offlineLicenseKeySetId, ExoMediaDrm.KEY_TYPE_RELEASE, allowRetry); break; default: break;