From 81a13a638d932b6092e622220fcb8cf85d7e34a0 Mon Sep 17 00:00:00 2001 From: krocard Date: Tue, 5 May 2020 16:06:54 +0100 Subject: [PATCH] A passthrough codec is only needed for DRM In passthrough MediaCodec is not used except if the format has a DRM. Nevertheless the code was still requiring that a passthrough decoder be present even if it was not going to be used (aka no drm). PiperOrigin-RevId: 309947271 --- .../android/exoplayer2/audio/MediaCodecAudioRenderer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java index 578a51b685..10b727bb3c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java @@ -219,7 +219,8 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media boolean supportsFormatDrm = supportsFormatDrm(format); if (supportsFormatDrm && usePassthrough(format.channelCount, mimeType) - && MediaCodecUtil.getPassthroughDecoderInfo() != null) { + // A Passthrough decoder is only needed to decode the DRM encryption. + && (format.drmInitData == null || MediaCodecUtil.getPassthroughDecoderInfo() != null)) { return RendererCapabilities.create(FORMAT_HANDLED, ADAPTIVE_NOT_SEAMLESS, tunnelingSupport); } if ((MimeTypes.AUDIO_RAW.equals(mimeType)