Skip to content

Commit 5292c2b

Browse files
Test rewrite_master_playlist
1 parent 6d00552 commit 5292c2b

3 files changed

Lines changed: 46 additions & 0 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#EXTM3U
2+
#EXT-X-VERSION:3
3+
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Chinese",FORCED=NO,AUTOSELECT=YES,URI="chinese/ed.ttml",LANGUAGE="zh"
4+
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="French",FORCED=NO,AUTOSELECT=YES,URI="french/ed.ttml",LANGUAGE="fr"
5+
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="en/chunklist_w370587926_b160000_ao_slen_t64RW5nbGlzaA==.m3u8"
6+
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="es",NAME="Spanish",DEFAULT=NO,AUTOSELECT=YES,URI="sp/chunklist_w370587926_b160000_ao_slsp_t64U3BhbmlzaA==.m3u8"
7+
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="en",NAME="Commentary (eng)",DEFAULT=NO,AUTOSELECT=NO,URI="com/chunklist_w370587926_b160000_ao_slen_t64Q29tbWVudGFyeSAoZW5nKQ==.m3u8"
8+
#EXT-X-STREAM-INF:BANDWIDTH=2962000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=1280x720,AUDIO="aac",SUBTITLES="subs"
9+
1280/chunklist_w370587926_b2962000_vo_slen_t64TWFpbg==.m3u8
10+
#EXT-X-STREAM-INF:BANDWIDTH=1427000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=768x432,AUDIO="aac",SUBTITLES="subs"
11+
768/chunklist_w370587926_b1427000_vo_slen_t64TWFpbg==.m3u8
12+
#EXT-X-STREAM-INF:BANDWIDTH=688000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=448x252,AUDIO="aac",SUBTITLES="subs"
13+
448/chunklist_w370587926_b688000_vo_slen_t64TWFpbg==.m3u8

tests/rewrite.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@ fn test_rewrite_mux_llhls() {
1212
assert_snapshot!(media_playlist_to_string(&playlist));
1313
}
1414

15+
#[test]
16+
fn test_rewrite_elephants_dream_master() {
17+
let url = Url::parse("https://cdn.theoplayer.com/video/elephants-dream/playlist.m3u8").unwrap();
18+
let mut playlist =
19+
parse_master_playlist_res(include_bytes!("fixtures/elephants_dream_master.m3u8")).unwrap();
20+
let rewriter = Rewriter::new(&url, "elephants_dream".as_ref(), false);
21+
rewriter.rewrite_master_playlist(&mut playlist).unwrap();
22+
assert_snapshot!(master_playlist_to_string(&playlist));
23+
}
24+
1525
#[test]
1626
fn test_rewrite_elephants_dream() {
1727
let url = Url::parse("https://cdn.theoplayer.com/video/elephants-dream/1280/chunklist_w370587926_b2962000_vo_slen_t64TWFpbg==.m3u8").unwrap();
@@ -22,6 +32,12 @@ fn test_rewrite_elephants_dream() {
2232
assert_snapshot!(media_playlist_to_string(&playlist));
2333
}
2434

35+
fn master_playlist_to_string(playlist: &MasterPlaylist) -> String {
36+
let mut buffer = vec![];
37+
playlist.write_to(&mut buffer).unwrap();
38+
String::from_utf8(buffer).unwrap()
39+
}
40+
2541
fn media_playlist_to_string(playlist: &MediaPlaylist) -> String {
2642
let mut buffer = vec![];
2743
playlist.write_to(&mut buffer).unwrap();
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
source: tests/rewrite.rs
3+
expression: master_playlist_to_string(&playlist)
4+
---
5+
#EXTM3U
6+
#EXT-X-VERSION:3
7+
#EXT-X-MEDIA:TYPE=SUBTITLES,URI="media-subs-0/index.m3u8",GROUP-ID="subs",LANGUAGE="zh",NAME="Chinese",AUTOSELECT=YES,X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/chinese/ed.ttml"
8+
#EXT-X-MEDIA:TYPE=SUBTITLES,URI="media-subs-1/index.m3u8",GROUP-ID="subs",LANGUAGE="fr",NAME="French",AUTOSELECT=YES,X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/french/ed.ttml"
9+
#EXT-X-MEDIA:TYPE=AUDIO,URI="media-aac-2/index.m3u8",GROUP-ID="aac",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/en/chunklist_w370587926_b160000_ao_slen_t64RW5nbGlzaA==.m3u8"
10+
#EXT-X-MEDIA:TYPE=AUDIO,URI="media-aac-3/index.m3u8",GROUP-ID="aac",LANGUAGE="es",NAME="Spanish",AUTOSELECT=YES,X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/sp/chunklist_w370587926_b160000_ao_slsp_t64U3BhbmlzaA==.m3u8"
11+
#EXT-X-MEDIA:TYPE=AUDIO,URI="media-aac-4/index.m3u8",GROUP-ID="aac",LANGUAGE="en",NAME="Commentary (eng)",X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/com/chunklist_w370587926_b160000_ao_slen_t64Q29tbWVudGFyeSAoZW5nKQ==.m3u8"
12+
#EXT-X-STREAM-INF:BANDWIDTH=2962000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=1280x720,X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/1280/chunklist_w370587926_b2962000_vo_slen_t64TWFpbg==.m3u8",AUDIO="aac",SUBTITLES="subs"
13+
variant0/index.m3u8
14+
#EXT-X-STREAM-INF:BANDWIDTH=1427000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=768x432,X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/768/chunklist_w370587926_b1427000_vo_slen_t64TWFpbg==.m3u8",AUDIO="aac",SUBTITLES="subs"
15+
variant1/index.m3u8
16+
#EXT-X-STREAM-INF:BANDWIDTH=688000,CODECS="avc1.66.30,mp4a.40.2",RESOLUTION=448x252,X-ORIGINAL-URI="https://cdn.theoplayer.com/video/elephants-dream/448/chunklist_w370587926_b688000_vo_slen_t64TWFpbg==.m3u8",AUDIO="aac",SUBTITLES="subs"
17+
variant2/index.m3u8

0 commit comments

Comments
 (0)