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: [],
},
],