From f394697d4a485a4c2b1f75b2d470d621ba5675c8 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Mon, 25 Feb 2019 10:20:47 +0000 Subject: [PATCH] Fix updating rate with codec reuse while disabled While disabled the renderer does not have non-null stream formats. This means that setting the operating rate could cause a NullPointerException if there was a codec for reuse. Check for being enabled/started before trying to set the operating rate. After the renderer is enabled it should receive a new input format which will update the operating rate as needed. PiperOrigin-RevId: 235494384 --- .../android/exoplayer2/mediacodec/MediaCodecRenderer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 cee54d77f8..75ef3c28e1 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 @@ -559,7 +559,9 @@ public abstract class MediaCodecRenderer extends BaseRenderer { @Override public final void setOperatingRate(float operatingRate) throws ExoPlaybackException { rendererOperatingRate = operatingRate; - if (codec != null && codecDrainAction != DRAIN_ACTION_REINITIALIZE) { + if (codec != null + && codecDrainAction != DRAIN_ACTION_REINITIALIZE + && getState() != STATE_DISABLED) { updateCodecOperatingRate(); } }