diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java index 9211cec144..457b1630c8 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DrmSessionManager.java @@ -88,6 +88,23 @@ public interface DrmSessionManager { */ boolean canAcquireSession(DrmInitData drmInitData); + /** + * Returns a {@link DrmSession} with an acquired reference that does not execute key requests. + * Returns null if placeholder sessions are not supported by this DRM session manager. + * + *

Placeholder {@link DrmSession DrmSessions} may be used to configure secure decoders for + * playback of clear samples, which reduces the costs of transitioning between clear and encrypted + * content periods. + * + * @param playbackLooper The looper associated with the media playback thread. + * @return The placeholder DRM session, or null if this DRM session manager does not support + * placeholder sessions. + */ + @Nullable + default DrmSession acquirePlaceholderSession(Looper playbackLooper) { + return null; + } + /** * Returns a {@link DrmSession} with an acquired reference for the specified {@link DrmInitData}. *