diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 4af5281417..82594aed64 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -39,6 +39,8 @@ codec input size ([#8705](https://github.com/google/ExoPlayer/issues/8705)). * HLS: + * Fix incorrect application of byte ranges to `EXT-X-MAP` tags + ([#8783](https://github.com/google/ExoPlayer/issues/8783)). * Fix issue that could cause playback to become stuck if corresponding `EXT-X-DISCONTINUITY` tags in different media playlists occur at different positions in time diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java index 62357ecdea..314f8e7d87 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java @@ -702,6 +702,10 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser segments = mediaPlaylist.segments; + + assertThat(segments).isNotNull(); + assertThat(segments).hasSize(3); + + Segment segment = segments.get(0); + assertThat(segment.initializationSegment.byteRangeOffset).isEqualTo(100); + assertThat(segment.initializationSegment.byteRangeLength).isEqualTo(200); + assertThat(segment.byteRangeOffset).isEqualTo(300); + assertThat(segment.byteRangeLength).isEqualTo(400); + + segment = segments.get(1); + assertThat(segment.byteRangeOffset).isEqualTo(700); + assertThat(segment.byteRangeLength).isEqualTo(500); + + segment = segments.get(2); + assertThat(segment.initializationSegment.byteRangeOffset).isEqualTo(0); + assertThat(segment.initializationSegment.byteRangeLength).isEqualTo(C.LENGTH_UNSET); + assertThat(segment.byteRangeOffset).isEqualTo(0); + assertThat(segment.byteRangeLength).isEqualTo(C.LENGTH_UNSET); + } + @Test public void parseSampleAesMethod() throws Exception { Uri playlistUri = Uri.parse("https://example.com/test.m3u8");