Skip to content

Commit df74eab

Browse files
feat(ttml): Add support for SMPTE namespace 2013 (#3062)
We have TTML SMPTE XML Namespaces support for 2010. Add SMPTE namespace support for 2013. Closes #3061 .
1 parent 2bebfd3 commit df74eab

File tree

2 files changed

+40
-7
lines changed

2 files changed

+40
-7
lines changed

lib/text/ttml_text_parser.js

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -306,9 +306,16 @@ shaka.text.TtmlTextParser = class {
306306
const regionId = regionElement.getAttribute('xml:id');
307307
cue.region = cueRegions.filter((region) => region.id == regionId)[0];
308308
}
309-
const imageElement = shaka.text.TtmlTextParser.getElementsFromCollection_(
310-
cueElement, 'backgroundImage', metadataElements, '#',
311-
shaka.text.TtmlTextParser.smpteNs_)[0];
309+
310+
let imageElement = null;
311+
for (const nameSpace of shaka.text.TtmlTextParser.smpteNsList_) {
312+
imageElement = shaka.text.TtmlTextParser.getElementsFromCollection_(
313+
cueElement, 'backgroundImage', metadataElements, '#',
314+
nameSpace)[0];
315+
if (imageElement) {
316+
break;
317+
}
318+
}
312319

313320
const isLeaf = nestedCues.length == 0;
314321

@@ -1243,12 +1250,14 @@ shaka.text.TtmlTextParser.styleNs_ = 'http://www.w3.org/ns/ttml#styling';
12431250
shaka.text.TtmlTextParser.styleEbuttsNs_ = 'urn:ebu:tt:style';
12441251

12451252
/**
1246-
* The namespace URL for SMPTE fields.
1247-
* @const {string}
1253+
* The supported namespace URLs for SMPTE fields.
1254+
* @const {!Array.<string>}
12481255
* @private
12491256
*/
1250-
shaka.text.TtmlTextParser.smpteNs_ =
1251-
'http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt';
1257+
shaka.text.TtmlTextParser.smpteNsList_ = [
1258+
'http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt',
1259+
'http://www.smpte-ra.org/schemas/2052-1/2013/smpte-tt',
1260+
];
12521261

12531262
shaka.text.TextEngine.registerParser(
12541263
'application/ttml+xml', () => new shaka.text.TtmlTextParser());

test/text/ttml_text_parser_unit.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,30 @@ describe('TtmlTextParser', () => {
909909
{periodStart: 0, segmentStart: 0, segmentEnd: 0});
910910
});
911911

912+
it('supports smpte:backgroundImage attribute alt namespace', () => {
913+
verifyHelper(
914+
[
915+
{
916+
startTime: 62.05,
917+
endTime: 3723.2,
918+
payload: '',
919+
backgroundImage: 'data:image/png;base64,base64EncodedImage',
920+
},
921+
],
922+
'<tt ' +
923+
'xmlns:ttm="http://www.w3.org/ns/ttml#metadata" ' +
924+
'xmlns:smpte="http://www.smpte-ra.org/schemas/2052-1/2013/smpte-tt">' +
925+
'<metadata>' +
926+
'<smpte:image imagetype="PNG" encoding="Base64" xml:id="img_0">' +
927+
'base64EncodedImage</smpte:image>' +
928+
'</metadata>' +
929+
'<body><div>' +
930+
'<p begin="01:02.05" end="01:02:03.200" ' +
931+
'smpte:backgroundImage="#img_0" />' +
932+
'</div></body></tt>',
933+
{periodStart: 0, segmentStart: 0, segmentEnd: 0});
934+
});
935+
912936
it('inserts line breaks for <br> tags', () => {
913937
verifyHelper(
914938
[{

0 commit comments

Comments
 (0)