From b7cf772afbc7eb8997d9cfb2938aab53ee7a58ea 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 (cherry picked from commit 917484100db2be8681f5a122d876012c1dd0f36b) --- .../android/exoplayer2/source/hls/HlsMediaPeriod.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java index 3e96100f70..812f7a46ce 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java @@ -553,8 +553,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(); }