From 0b557f35019ee3aa12c819c6f9351957d793fb82 Mon Sep 17 00:00:00 2001 From: Steve Mayhew Date: Mon, 12 Apr 2021 11:24:41 -0700 Subject: [PATCH] Adds test cases for iframe only with EXT-X-MAP Adds a unit test case to cover EXT-X-MAP with byterange attribute. --- .../playlist/HlsMediaPlaylistParserTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java index 48f6a06b14..710662bb40 100644 --- a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java +++ b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java @@ -34,6 +34,8 @@ import java.io.InputStream; import java.util.Collections; import java.util.HashMap; import java.util.List; +import java.util.Map; + import org.junit.Test; import org.junit.runner.RunWith; @@ -1220,6 +1222,34 @@ public class HlsMediaPlaylistParserTest { } } + @Test + public void testExplicitInitSegment_withRange() throws IOException { + Uri playlistUri = Uri.parse("https://example.com/test3.m3u8"); + String playlistString = + "#EXTM3U\n" + + "#EXT-X-VERSION:6\n" + + "#EXT-X-MEDIA-SEQUENCE:1616630672\n" + + "#EXT-X-TARGETDURATION:7\n" + + "#EXT-X-DISCONTINUITY-SEQUENCE:491 \n" + + "#EXT-X-MAP:URI=\"iframe0.tsv\",BYTERANGE=\"564@0\"\n" + + "\n" + + "#EXT-X-I-FRAMES-ONLY\n" + + "#EXT-X-PROGRAM-DATE-TIME:2021-04-12T17:08:22.000Z\n" + + "#EXTINF:1.001000,\n" + + "#EXT-X-BYTERANGE:121260@1128\n" + + "iframe0.tsv"; + + InputStream inputStream = new ByteArrayInputStream(Util.getUtf8Bytes(playlistString)); + HlsMediaPlaylist standalonePlaylist = + (HlsMediaPlaylist) new HlsPlaylistParser().parse(playlistUri, inputStream); + assertThat(standalonePlaylist.segments.size()).isEqualTo(1); + + @Nullable Segment initSegment = standalonePlaylist.segments.get(0).initializationSegment; + assertThat(initSegment).isNotNull(); + assertThat(initSegment.byteRangeLength).isEqualTo(564); + assertThat(initSegment.byteRangeOffset).isEqualTo(0); + } + @Test public void masterPlaylistAttributeInheritance() throws IOException { Uri playlistUri = Uri.parse("https://example.com/test3.m3u8");