From b0df3b2da3ea0043618628cb08444335a0b3367b Mon Sep 17 00:00:00 2001 From: dancho Date: Tue, 29 Oct 2024 03:45:31 -0700 Subject: [PATCH] DecodeOneFrameUtil: do not access release players A player that is being released may report an error with null `player.getPlayerError()`. Do not try to read errors of players that are released. PiperOrigin-RevId: 690953083 --- .../java/androidx/media3/test/utils/DecodeOneFrameUtil.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java index d1d5f3e10c..2592954f0b 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DecodeOneFrameUtil.java @@ -90,6 +90,9 @@ public final class DecodeOneFrameUtil { @Override public void onRenderedFirstFrame(EventTime eventTime, Object output, long renderTimeMs) { + if (exoPlayer.isReleased()) { + return; + } listener.onFrameDecoded( createMediaFormatFromFormat(checkNotNull(exoPlayer.getVideoFormat()))); firstFrameRenderedOrError.open(); @@ -97,6 +100,9 @@ public final class DecodeOneFrameUtil { @Override public void onEvents(Player player, Events events) { + if (exoPlayer.isReleased()) { + return; + } if (events.contains(EVENT_PLAYER_ERROR)) { playbackExceptionReference.set(checkNotNull(player.getPlayerError())); firstFrameRenderedOrError.open();