Skip to content

Commit 96fc406

Browse files
shahlabsforbesjo
authored andcommitted
feat: Support for vtt (#13)
1 parent 42fc42e commit 96fc406

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

src/toM3u8.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@ export const formatAudioPlaylist = ({ attributes, segments }) => {
1515
};
1616

1717
export const formatVttPlaylist = ({ attributes, segments }) => {
18+
if (segments === undefined) {
19+
segments = [{
20+
uri: attributes.url,
21+
timeline: attributes.periodIndex,
22+
resolvedUri: attributes.url || '',
23+
duration: attributes.sourceDuration
24+
}];
25+
}
1826
return {
1927
attributes: {
2028
NAME: attributes.id,
@@ -86,6 +94,7 @@ export const formatVideoPlaylist = ({ attributes, segments }) => {
8694
attributes: {
8795
NAME: attributes.id,
8896
AUDIO: 'audio',
97+
SUBTITLES: 'subs',
8998
RESOLUTION: {
9099
width: parseInt(attributes.width, 10),
91100
height: parseInt(attributes.height, 10)
@@ -141,8 +150,7 @@ export const toM3u8 = dashPlaylists => {
141150
master.mediaGroups.AUDIO.audio = organizeAudioPlaylists(audioPlaylists);
142151
}
143152

144-
// TODO: vtt playlists not yet supported
145-
if (vttPlaylists.length && false) {
153+
if (vttPlaylists.length) {
146154
master.mediaGroups.SUBTITLES.subs = organizeVttPlaylists(vttPlaylists);
147155
}
148156

test/manifests/maat_vtt_segmentTemplate.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,6 @@ export const parsedManifest = {
101101
}
102102
},
103103
['CLOSED-CAPTIONS']: {},
104-
// Subtitles feature is turned off
105-
SUBTITLES: {},
106-
/*
107104
SUBTITLES: {
108105
subs: {
109106
en: {
@@ -118,7 +115,12 @@ export const parsedManifest = {
118115
},
119116
endList: true,
120117
resolvedUri: 'https://example.com/en.vtt',
121-
segments: undefined,
118+
segments: [{
119+
duration: 6,
120+
resolvedUri: 'https://example.com/en.vtt',
121+
timeline: 0,
122+
uri: 'https://example.com/en.vtt'
123+
}],
122124
timeline: 0,
123125
uri: ''
124126
}],
@@ -136,20 +138,25 @@ export const parsedManifest = {
136138
},
137139
endList: true,
138140
resolvedUri: 'https://example.com/es.vtt',
139-
segments: undefined,
141+
segments: [{
142+
duration: 6,
143+
resolvedUri: 'https://example.com/es.vtt',
144+
timeline: 0,
145+
uri: 'https://example.com/es.vtt'
146+
}],
140147
timeline: 0,
141148
uri: ''
142149
}],
143150
uri: ''
144151
}
145152
}
146153
},
147-
*/
148154
VIDEO: {}
149155
},
150156
playlists: [{
151157
attributes: {
152158
AUDIO: 'audio',
159+
SUBTITLES: 'subs',
153160
BANDWIDTH: 449000,
154161
CODECS: 'avc1.420015',
155162
NAME: '482',
@@ -194,6 +201,7 @@ export const parsedManifest = {
194201
}, {
195202
attributes: {
196203
AUDIO: 'audio',
204+
SUBTITLES: 'subs',
197205
BANDWIDTH: 3971000,
198206
CODECS: 'avc1.64001e',
199207
NAME: '720',

test/toM3u8.test.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,6 @@ QUnit.test('playlists', function(assert) {
8888
}
8989
},
9090
['CLOSED-CAPTIONS']: {},
91-
// Subtitles feature is turned off
92-
SUBTITLES: {},
93-
/*
9491
SUBTITLES: {
9592
subs: {
9693
text: {
@@ -113,12 +110,12 @@ QUnit.test('playlists', function(assert) {
113110
}
114111
}
115112
},
116-
*/
117113
VIDEO: {}
118114
},
119115
playlists: [{
120116
attributes: {
121117
AUDIO: 'audio',
118+
SUBTITLES: 'subs',
122119
BANDWIDTH: 10000,
123120
CODECS: 'foo;bar',
124121
NAME: '1',

0 commit comments

Comments
 (0)