From e5f9a858d36ea5568d743a5a66b8ea466da2cfe6 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Fri, 20 Sep 2019 13:56:34 +0100 Subject: [PATCH] When the HLS container format is not packed audio, reset timestmap offset Issue:#6444 PiperOrigin-RevId: 270252126 --- RELEASENOTES.md | 2 ++ .../google/android/exoplayer2/source/hls/HlsMediaChunk.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 1d23830c86..fdc1f006ea 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -2,6 +2,8 @@ ### dev-v2 (not yet released) ### +* Fix transitions between packed audio and non-packed audio segments in HLS + ([#6444](https://github.com/google/ExoPlayer/issues/6444)). * DASH: Support negative @r values in segment timelines ([#1787](https://github.com/google/ExoPlayer/issues/1787)). * Add `allowedCapturePolicy` field to `AudioAttributes` wrapper to allow to diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java index 01da98be68..26c1a2219b 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaChunk.java @@ -392,6 +392,10 @@ import java.util.concurrent.atomic.AtomicInteger; id3Timestamp != C.TIME_UNSET ? timestampAdjuster.adjustTsTimestamp(id3Timestamp) : startTimeUs); + } else { + // In case the container format changes mid-stream to non-packed-audio, we need to reset + // the timestamp offset. + output.setSampleOffsetUs(/* sampleOffsetUs= */ 0L); } output.init(uid, shouldSpliceIn, /* reusingExtractor= */ false); extractor.init(output);