From 812e07831080b230585d5a4da0c0f3326b82e653 Mon Sep 17 00:00:00 2001 From: kimvde Date: Tue, 1 Apr 2025 08:27:55 -0700 Subject: [PATCH] Make sure ExoPlayerAssetLoader's progress is not more than 100 PiperOrigin-RevId: 742710076 --- .../androidx/media3/transformer/ExoPlayerAssetLoader.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java index 9802a14ae0..c148d2d8b8 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java @@ -272,8 +272,10 @@ public final class ExoPlayerAssetLoader implements AssetLoader { public @Transformer.ProgressState int getProgress(ProgressHolder progressHolder) { if (progressState == PROGRESS_STATE_AVAILABLE) { long durationMs = player.getDuration(); - long positionMs = player.getCurrentPosition(); - progressHolder.progress = min((int) (positionMs * 100 / durationMs), 99); + // The player position can become greater than the duration. This happens if the player is + // using a StandaloneMediaClock because the renderers have ended. + long positionMs = min(player.getCurrentPosition(), durationMs); + progressHolder.progress = (int) (positionMs * 100 / durationMs); } return progressState; }