Skip to content

Commit f923452

Browse files
Add support for header fields.
We don't actually parse VTT header fields, but we ignore them for now. Fixes w3c#5
1 parent 2202335 commit f923452

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

parser.js

+18-14
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ var WebVTTParser = function() {
1010
startTime = Date.now(),
1111
linePos = 0,
1212
lines = input.split(NEWLINE),
13-
alreadyCollected = false,
1413
cues = [],
1514
errors = []
1615
function err(message, col) {
@@ -39,25 +38,30 @@ var WebVTTParser = function() {
3938
err("No valid signature. (File needs to start with \"WEBVTT\".)")
4039
}
4140

42-
linePos++
41+
line = lines[++linePos]
4342

4443
/* HEADER */
45-
while(lines[linePos] != "" && lines[linePos] != undefined) {
46-
err("No blank line after the signature.")
47-
if(lines[linePos].indexOf("-->") != -1) {
48-
alreadyCollected = true
49-
break
44+
while(line !== undefined) {
45+
/* look-ahead */
46+
if (line === "") {
47+
if ((lines[linePos+1] && lines[linePos+1].indexOf("-->") !== -1 )||
48+
(lines[linePos+2] && lines[linePos+2].indexOf("-->") !== -1)) {
49+
break
50+
} else {
51+
line = lines[++linePos]
52+
continue
53+
}
5054
}
51-
linePos++
55+
line = lines[++linePos]
5256
}
5357

5458
/* CUE LOOP */
55-
while(lines[linePos] != undefined) {
59+
while(line !== undefined) {
5660
var cue
57-
while(!alreadyCollected && lines[linePos] == "") {
58-
linePos++
61+
while(lines[linePos] === "") {
62+
line = lines[++linePos]
5963
}
60-
if(!alreadyCollected && lines[linePos] == undefined)
64+
if(line === undefined)
6165
break
6266

6367
/* CUE CREATION */
@@ -78,7 +82,7 @@ var WebVTTParser = function() {
7882

7983
var parseTimings = true
8084

81-
if(lines[linePos].indexOf("-->") == -1) {
85+
if(lines[linePos].indexOf("-->") === -1) {
8286
cue.id = lines[linePos]
8387

8488
/* COMMENTS
@@ -109,7 +113,7 @@ var WebVTTParser = function() {
109113
}
110114

111115
/* TIMINGS */
112-
alreadyCollected = false
116+
var alreadyCollected = false
113117
var timings = new WebVTTCueTimingsAndSettingsParser(lines[linePos], err)
114118
var previousCueStart = 0
115119
if(cues.length > 0) {

0 commit comments

Comments
 (0)