From 8fb15f97ca87eeb4b67d382ac16314b3e3ccd254 Mon Sep 17 00:00:00 2001 From: krocard Date: Thu, 17 Dec 2020 15:25:42 +0000 Subject: [PATCH] Explicitly fail playback if new format has no sampleMimeType This avoids a NullPointerException later when the format is used. Fixes https://github.com/google/ExoPlayer/issues/8283. PiperOrigin-RevId: 348017149 --- .../android/exoplayer2/mediacodec/MediaCodecRenderer.java | 5 +++++ 1 file changed, 5 insertions(+) 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 0622d24cdc..1b3cebe6c0 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 @@ -1382,6 +1382,11 @@ public abstract class MediaCodecRenderer extends BaseRenderer { throws ExoPlaybackException { waitingForFirstSampleInFormat = true; Format newFormat = checkNotNull(formatHolder.format); + if (newFormat.sampleMimeType == null) { + // If the new format is invalid, it is either a media bug or it is not intended to be played. + // See also https://github.com/google/ExoPlayer/issues/8283. + throw createRendererException(new IllegalArgumentException(), newFormat); + } setSourceDrmSession(formatHolder.drmSession); inputFormat = newFormat;