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
This commit is contained in:
krocard 2020-12-17 15:25:42 +00:00 committed by Ian Baker
parent c22fd76b6b
commit 011342f4cf

View file

@ -1455,6 +1455,11 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
protected void onInputFormatChanged(FormatHolder formatHolder) throws ExoPlaybackException {
waitingForFirstSampleInFormat = true;
Format newFormat = Assertions.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;