Skip to content

Commit

Permalink
test: Add test for handling multiple date range tags
Browse files Browse the repository at this point in the history
Signed-off-by: Fredrik Lundkvist <[email protected]>
  • Loading branch information
Lunkers committed Jan 10, 2025
1 parent 9c28831 commit b907916
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
17 changes: 17 additions & 0 deletions m3u8/read_write_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,23 @@ func TestReadWriteExtXIFrameStreamInf(t *testing.T) {
}
}

func TestReadWriteMultipleExtXDateRange(t *testing.T) {
is := is.New(t)
asset := "sample-playlists/media-playlist-with-multiple-dateranges.m3u8"
f, err := os.Open(asset)
is.NoErr(err) // open file should succeed
p, _, err := DecodeFrom(bufio.NewReader(f), true)
is.NoErr(err) // decode playlist should succeed
mp := p.(*MediaPlaylist)
f.Close()
out := trimLineEnd(mp.String())
inData, err := os.ReadFile(asset)
is.NoErr(err) // read file should succeed
inStr := string(inData)
inStr = trimLineEnd(strings.Replace(inStr, "\r\n", "\n", -1))
is.Equal(inStr, out) // output must match input
}

// TestReadWriteMediaPlaylist tests reading and writing media playlists from sample-playlists
// Looks at verbatim match, so the order of tags and attributes must match.
func TestReadWritePlaylists(t *testing.T) {
Expand Down
16 changes: 16 additions & 0 deletions m3u8/sample-playlists/media-playlist-with-multiple-dateranges.m3u8
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://itvpnp.stage.ott.irdeto.com/streaming/getckc?CrmId=itvpnp&AccountId=itvpnp&ContentId=ITV1&KeyId=e09a512a-d195-4ecd-a675-c1d01d19595e",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"
#EXT-X-MEDIA-SEQUENCE:288757775
#EXT-X-TARGETDURATION:9
#EXT-X-DATERANGE:ID="1125241458-1732546579",START-DATE="2024-11-25T14:56:19.68Z",PLANNED-DURATION=90.000,SCTE35-OUT=0xFC3025000000000E1000FFF014054311D2727FEFFE60F95D80FE007B98A0C74B040400005D00F685
#EXT-X-DATERANGE:ID="78139779-1732546579",START-DATE="2024-11-25T14:56:19.68Z",PLANNED-DURATION=30.000,SCTE35-OUT=0xFC3025000000000E1000FFF0140504A851837FEFFE60F95D80FE002932E0074B0103000068CEB948
#EXT-X-DATERANGE:ID="29576926-1-1732546579",START-DATE="2024-11-25T14:56:19.68Z",DURATION=30.000,SCTE35-CMD=0xFC306A000000000E1000FFF00506FE60F95D80005402524355454901C34EDE7FFF00002932E0013E307830313031303130312C75726E3A757569643A34383164623030642D663531322D343262372D616432302D3564303861353662353065312C31312F37300100004A541040
#EXT-X-DATERANGE:ID="78380955-1732546609",START-DATE="2024-11-25T14:56:49.68Z",PLANNED-DURATION=30.000,SCTE35-OUT=0xFC3025000000000E1000FFF0140504ABFF9B7FEFFE61229060FE002932E0074B020300005D42F5E9
#EXT-X-DATERANGE:ID="29576927-1-1732546609",START-DATE="2024-11-25T14:56:49.68Z",DURATION=30.000,SCTE35-CMD=0xFC306A000000000E1000FFF00506FE61229060005402524355454901C34EDF7FFF00002932E0013E307830313031303130312C75726E3A757569643A62653565336238622D646637302D346461332D386330612D3733376636633934333761342C37312F3730010000A94A25E6
#EXT-X-DATERANGE:ID="78360644-1732546639",START-DATE="2024-11-25T14:57:19.68Z",PLANNED-DURATION=30.000,SCTE35-OUT=0xFC3025000000000E1000FFF0140504ABB0447FEFFE614BC340FE002932E0074B03030000715079A6
#EXT-X-DATERANGE:ID="29576928-1-1732546639",START-DATE="2024-11-25T14:57:19.68Z",DURATION=30.000,SCTE35-CMD=0xFC306A000000000E1000FFF00506FE614BC340005402524355454901C34EE07FFF00002932E0013E307830313031303130312C75726E3A757569643A39363734653632382D376131652D343761352D613764662D3866616237326366666338392C37312F37300100009D4F86A6
#EXT-X-PROGRAM-DATE-TIME:2024-11-25T14:57:29.12Z
#EXTINF:5.760,
fairplay-audio_en=128000-video=7000000-288757775.ts

0 comments on commit b907916

Please sign in to comment.