diff --git a/lib/text/vtt_text_parser.js b/lib/text/vtt_text_parser.js index fc6b586856..4cb5387b1a 100644 --- a/lib/text/vtt_text_parser.js +++ b/lib/text/vtt_text_parser.js @@ -461,7 +461,7 @@ shaka.text.VttTextParser = class { if (styles.size === 0) { VttTextParser.addDefaultTextColor_(styles); } - payload = VttTextParser.replaceColorPayload_(payload); + payload = VttTextParser.replaceKaraokeStylePayload_(payload); payload = VttTextParser.replaceVoiceStylePayload_(payload); const xmlPayload = '' + payload + ''; @@ -601,66 +601,6 @@ shaka.text.VttTextParser = class { return newPayload; } - /** - * Converts color end tag to be valid for xml parsing - * For example, - * input: Yellow text on blue bg - * output: Yellow text on blue bg - * - * Returns original payload if invalid tag is found. - * Invalid tag example: Example - * - * @param {string} payload - * @return {string} processed payload - * @private - */ - static replaceColorPayload_(payload) { - const names = []; - let nameStart = -1; - let newPayload = ''; - for (let i = 0; i < payload.length; i++) { - if (payload[i] === '/' && i > 0 && payload[i - 1] === '<') { - const end = payload.indexOf('>', i); - if (end <= i) { - return payload; - } - const tagEnd = payload.substring(i + 1, end); - if (!tagEnd || tagEnd !== 'c') { - newPayload += payload[i]; - continue; - } - const tagStart = names.pop(); - if (!tagStart) { - newPayload += payload[i]; - } else if (tagStart === tagEnd) { - newPayload += '/' + tagEnd + '>'; - i += tagEnd.length + 1; - } else { - if (!tagStart.startsWith('c.')) { - newPayload += payload[i]; - continue; - } - i += tagEnd.length + 1; - newPayload += '/' + tagStart + '>'; - } - } else { - if (payload[i] === '<') { - nameStart = i + 1; - if (payload[nameStart] != 'c') { - nameStart = -1; - } - } else if (payload[i] === '>') { - if (nameStart > 0) { - names.push(payload.substr(nameStart, i - nameStart)); - nameStart = -1; - } - } - newPayload += payload[i]; - } - } - return newPayload; - } - /** * @param {string} value * @param {string} defaultValue diff --git a/test/text/vtt_text_parser_unit.js b/test/text/vtt_text_parser_unit.js index a6df477263..bc05369c6a 100644 --- a/test/text/vtt_text_parser_unit.js +++ b/test/text/vtt_text_parser_unit.js @@ -1075,13 +1075,13 @@ describe('VttTextParser', () => { { startTime: 80, endTime: 90, - payload: 'Parse fail 1', + payload: 'Parse fail 1', nestedCues: [], }, { startTime: 90, endTime: 100, - payload: 'Parse fail 2', + payload: 'Parse fail 2', nestedCues: [], }, { @@ -1100,7 +1100,7 @@ describe('VttTextParser', () => { { startTime: 110, endTime: 120, - payload: 'less or more < > in text', + payload: 'less or more < > in text', nestedCues: [], }, ],