From 9221eeb2d87f049c668a056f7fd7901b91dd51e3 Mon Sep 17 00:00:00 2001 From: christosts Date: Thu, 9 Jun 2022 16:19:51 +0000 Subject: [PATCH] Fix bug: playback is frozen with HLS chunkless preparation This change fixes a bug where the player is frozen with HLS chunkless preparation because the audio stream wrappers are not marked as master timestamp sources before preparation. #minor-release PiperOrigin-RevId: 453941815 --- .../java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java index 101bb7a2ed..863b83f06e 100644 --- a/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java +++ b/libraries/exoplayer_hls/src/main/java/androidx/media3/exoplayer/hls/HlsMediaPeriod.java @@ -555,8 +555,10 @@ public final class HlsMediaPeriod this.sampleStreamWrappers = sampleStreamWrappers.toArray(new HlsSampleStreamWrapper[0]); this.manifestUrlIndicesPerWrapper = manifestUrlIndicesPerWrapper.toArray(new int[0][]); pendingPrepareCount = this.sampleStreamWrappers.length; - // Set timestamp master and trigger preparation (if not already prepared) - this.sampleStreamWrappers[0].setIsTimestampMaster(true); + // Set timestamp masters and trigger preparation (if not already prepared) + for (int i = 0; i < audioVideoSampleStreamWrapperCount; i++) { + this.sampleStreamWrappers[i].setIsTimestampMaster(true); + } for (HlsSampleStreamWrapper sampleStreamWrapper : this.sampleStreamWrappers) { sampleStreamWrapper.continuePreparing(); }