shaka-player 3.2.15 → 3.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/build-and-test.yaml +13 -0
- package/AUTHORS +2 -0
- package/CHANGELOG.md +28 -0
- package/CONTRIBUTORS +2 -0
- package/dist/deps.js +1 -1
- package/dist/locales.js +30 -30
- package/dist/shaka-player.compiled.debug.js +184 -176
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.js +707 -704
- package/dist/shaka-player.compiled.map +3 -3
- package/dist/shaka-player.ui.debug.js +221 -213
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.js +820 -818
- package/dist/shaka-player.ui.map +3 -3
- package/docs/tutorials/welcome.md +2 -2
- package/externs/shaka/player.js +2 -1
- package/lib/ads/ad_manager.js +2 -2
- package/lib/cea/cea708_window.js +2 -2
- package/lib/dash/segment_template.js +1 -1
- package/lib/hls/hls_parser.js +8 -1
- package/lib/media/content_workarounds.js +12 -0
- package/lib/media/streaming_engine.js +20 -8
- package/lib/player.js +11 -2
- package/lib/polyfill/media_capabilities.js +59 -9
- package/lib/text/ttml_text_parser.js +32 -7
- package/lib/text/ui_text_displayer.js +22 -5
- package/lib/util/platform.js +21 -2
- package/lib/util/stream_utils.js +30 -10
- package/package.json +1 -1
- package/test/dash/dash_parser_manifest_unit.js +1 -0
- package/test/hls/hls_parser_unit.js +1 -0
- package/test/player_integration.js +10 -3
- package/test/polyfill/media_capabilities_unit.js +261 -0
- package/test/test/boot.js +29 -11
- package/test/test/util/test_scheme.js +2 -2
- package/test/text/mp4_ttml_parser_unit.js +4 -4
- package/test/text/ttml_text_parser_unit.js +117 -84
- package/test/text/ui_text_displayer_unit.js +76 -0
- package/test/ui/text_displayer_layout_unit.js +14 -0
- package/test/util/stream_utils_unit.js +18 -0
- package/test/util/xml_utils_unit.js +6 -1
- package/ui/controls.js +1 -1
|
@@ -13,14 +13,14 @@ describe('TtmlTextParser', () => {
|
|
|
13
13
|
it('supports no cues', () => {
|
|
14
14
|
verifyHelper([],
|
|
15
15
|
'<tt></tt>',
|
|
16
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
16
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
17
17
|
{});
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
it('supports empty text string', () => {
|
|
21
21
|
verifyHelper([],
|
|
22
22
|
'',
|
|
23
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
23
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
24
24
|
{});
|
|
25
25
|
});
|
|
26
26
|
|
|
@@ -28,7 +28,7 @@ describe('TtmlTextParser', () => {
|
|
|
28
28
|
verifyHelper(
|
|
29
29
|
[],
|
|
30
30
|
'<tt><body><div> \r\n </div></body></tt>',
|
|
31
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
31
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
32
32
|
{});
|
|
33
33
|
});
|
|
34
34
|
|
|
@@ -55,7 +55,7 @@ describe('TtmlTextParser', () => {
|
|
|
55
55
|
},
|
|
56
56
|
],
|
|
57
57
|
'<tt xml:space="default">' + ttBody + '</tt>',
|
|
58
|
-
{periodStart: 0, segmentStart:
|
|
58
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 70},
|
|
59
59
|
{startTime: 62.03, endTime: 62.05});
|
|
60
60
|
// When xml:space="preserve", take them into account.
|
|
61
61
|
verifyHelper(
|
|
@@ -81,7 +81,7 @@ describe('TtmlTextParser', () => {
|
|
|
81
81
|
},
|
|
82
82
|
],
|
|
83
83
|
'<tt xml:space="preserve">' + ttBody + '</tt>',
|
|
84
|
-
{periodStart: 0, segmentStart:
|
|
84
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 70},
|
|
85
85
|
{startTime: 62.03, endTime: 62.05});
|
|
86
86
|
// The default value for xml:space is "default".
|
|
87
87
|
verifyHelper(
|
|
@@ -97,7 +97,7 @@ describe('TtmlTextParser', () => {
|
|
|
97
97
|
},
|
|
98
98
|
],
|
|
99
99
|
'<tt>' + ttBody + '</tt>',
|
|
100
|
-
{periodStart: 0, segmentStart:
|
|
100
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 70},
|
|
101
101
|
{startTime: 62.03, endTime: 62.05});
|
|
102
102
|
|
|
103
103
|
// Any other value is rejected as an error.
|
|
@@ -128,7 +128,7 @@ describe('TtmlTextParser', () => {
|
|
|
128
128
|
},
|
|
129
129
|
],
|
|
130
130
|
'<tt>' + ttBody + '</tt>',
|
|
131
|
-
{periodStart: 0, segmentStart:
|
|
131
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 70},
|
|
132
132
|
{startTime: 62.03, endTime: 62.05});
|
|
133
133
|
});
|
|
134
134
|
|
|
@@ -198,7 +198,7 @@ describe('TtmlTextParser', () => {
|
|
|
198
198
|
'<span>First cue</span><br /><span>Second cue</span>' +
|
|
199
199
|
'</p>' +
|
|
200
200
|
'</div></body></tt>',
|
|
201
|
-
{periodStart: 0, segmentStart:
|
|
201
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
202
202
|
{startTime: 62.05, endTime: 3723.2});
|
|
203
203
|
});
|
|
204
204
|
|
|
@@ -234,7 +234,7 @@ describe('TtmlTextParser', () => {
|
|
|
234
234
|
'First cue<br />Second cue' +
|
|
235
235
|
'</p>' +
|
|
236
236
|
'</div></body></tt>',
|
|
237
|
-
{periodStart: 0, segmentStart:
|
|
237
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
238
238
|
{startTime: 62.05, endTime: 3723.2});
|
|
239
239
|
});
|
|
240
240
|
|
|
@@ -293,7 +293,7 @@ describe('TtmlTextParser', () => {
|
|
|
293
293
|
'</span>' +
|
|
294
294
|
'</p>' +
|
|
295
295
|
'</div></body></tt>',
|
|
296
|
-
{periodStart: 0, segmentStart:
|
|
296
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
297
297
|
{startTime: 62.05, endTime: 3723.2});
|
|
298
298
|
});
|
|
299
299
|
|
|
@@ -312,7 +312,7 @@ describe('TtmlTextParser', () => {
|
|
|
312
312
|
'<div><p begin="01:02.05" end="01:02:03.200">' +
|
|
313
313
|
'<span>Test</span></p></div>' +
|
|
314
314
|
'</body></tt>',
|
|
315
|
-
{periodStart: 0, segmentStart:
|
|
315
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
316
316
|
{startTime: 62.05, endTime: 3723.2});
|
|
317
317
|
});
|
|
318
318
|
|
|
@@ -342,7 +342,7 @@ describe('TtmlTextParser', () => {
|
|
|
342
342
|
'<p><div begin="01:02.05" end="01:02:03.200" ' +
|
|
343
343
|
'smpte:backgroundImage="#img_0"></div></p>' +
|
|
344
344
|
'</div></body></tt>',
|
|
345
|
-
{periodStart: 0, segmentStart:
|
|
345
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
346
346
|
{startTime: 62.05, endTime: 3723.2});
|
|
347
347
|
});
|
|
348
348
|
|
|
@@ -354,7 +354,7 @@ describe('TtmlTextParser', () => {
|
|
|
354
354
|
'<tt><body><div>' +
|
|
355
355
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
356
356
|
'</div></body></tt>',
|
|
357
|
-
{periodStart: 0, segmentStart:
|
|
357
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
358
358
|
{startTime: 62.05, endTime: 3723.2});
|
|
359
359
|
});
|
|
360
360
|
|
|
@@ -366,7 +366,7 @@ describe('TtmlTextParser', () => {
|
|
|
366
366
|
'<tt><body><div>' +
|
|
367
367
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
368
368
|
'</div></body></tt>',
|
|
369
|
-
{periodStart: 7, segmentStart:
|
|
369
|
+
{periodStart: 7, segmentStart: 60, segmentEnd: 3740},
|
|
370
370
|
{startTime: 69.05, endTime: 3730.2});
|
|
371
371
|
});
|
|
372
372
|
|
|
@@ -389,7 +389,7 @@ describe('TtmlTextParser', () => {
|
|
|
389
389
|
'<tt><body><div>' +
|
|
390
390
|
'<p begin="01:02.05" end="01:02:03.200"><span>Nested cue</span></p>' +
|
|
391
391
|
'</div></body></tt>',
|
|
392
|
-
{periodStart: 7, segmentStart:
|
|
392
|
+
{periodStart: 7, segmentStart: 60, segmentEnd: 3740},
|
|
393
393
|
{startTime: 69.05, endTime: 3730.2});
|
|
394
394
|
});
|
|
395
395
|
|
|
@@ -401,7 +401,7 @@ describe('TtmlTextParser', () => {
|
|
|
401
401
|
'<tt><body><div>' +
|
|
402
402
|
'<p begin="59.45m30ms" end="1.5h2.3s">Test</p>' +
|
|
403
403
|
'</div></body></tt>',
|
|
404
|
-
{periodStart: 0, segmentStart:
|
|
404
|
+
{periodStart: 0, segmentStart: 3560, segmentEnd: 5410},
|
|
405
405
|
{startTime: 3567.03, endTime: 5402.3});
|
|
406
406
|
});
|
|
407
407
|
|
|
@@ -415,7 +415,7 @@ describe('TtmlTextParser', () => {
|
|
|
415
415
|
'<body><div>' +
|
|
416
416
|
'<p begin="00:10:15:15" end="00:11:02:30">Test</p>' +
|
|
417
417
|
'</div></body></tt>',
|
|
418
|
-
{periodStart: 0, segmentStart:
|
|
418
|
+
{periodStart: 0, segmentStart: 610, segmentEnd: 670},
|
|
419
419
|
{startTime: 615.5, endTime: 663});
|
|
420
420
|
});
|
|
421
421
|
|
|
@@ -429,7 +429,7 @@ describe('TtmlTextParser', () => {
|
|
|
429
429
|
'<body><div>' +
|
|
430
430
|
'<p begin="00:10:15:15" end="00:11:02:30">Test</p>' +
|
|
431
431
|
'</div></body></tt>',
|
|
432
|
-
{periodStart: 0, segmentStart:
|
|
432
|
+
{periodStart: 0, segmentStart: 610, segmentEnd: 670},
|
|
433
433
|
{startTime: 615.5, endTime: 663});
|
|
434
434
|
});
|
|
435
435
|
|
|
@@ -447,7 +447,7 @@ describe('TtmlTextParser', () => {
|
|
|
447
447
|
'<body><div>' +
|
|
448
448
|
'<p begin="00:10:15:15.1" end="00:11:02:29.2">Test</p>' +
|
|
449
449
|
'</div></body></tt>',
|
|
450
|
-
{periodStart: 0, segmentStart:
|
|
450
|
+
{periodStart: 0, segmentStart: 610, segmentEnd: 670},
|
|
451
451
|
{startTime: Util.closeTo(615.5 + 1 / 60), endTime: 663});
|
|
452
452
|
});
|
|
453
453
|
|
|
@@ -461,7 +461,7 @@ describe('TtmlTextParser', () => {
|
|
|
461
461
|
'<body><div>' +
|
|
462
462
|
'<p begin="75f" end="300.3f">Test</p>' +
|
|
463
463
|
'</div></body></tt>',
|
|
464
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
464
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 20},
|
|
465
465
|
{startTime: 2.5, endTime: Util.closeTo(10.01)});
|
|
466
466
|
});
|
|
467
467
|
|
|
@@ -475,7 +475,7 @@ describe('TtmlTextParser', () => {
|
|
|
475
475
|
'<body><div>' +
|
|
476
476
|
'<p begin="50t" end="60.2t">Test</p>' +
|
|
477
477
|
'</div></body></tt>',
|
|
478
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
478
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
479
479
|
{startTime: 5, endTime: Util.closeTo(6.02)});
|
|
480
480
|
});
|
|
481
481
|
|
|
@@ -487,7 +487,7 @@ describe('TtmlTextParser', () => {
|
|
|
487
487
|
'<tt><body><div>' +
|
|
488
488
|
'<p begin="01:02.05" dur="5s">Test</p>' +
|
|
489
489
|
'</div></body></tt>',
|
|
490
|
-
{periodStart: 0, segmentStart:
|
|
490
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 70},
|
|
491
491
|
{startTime: 62.05, endTime: 67.05});
|
|
492
492
|
});
|
|
493
493
|
|
|
@@ -497,7 +497,7 @@ describe('TtmlTextParser', () => {
|
|
|
497
497
|
'<tt><body><div>' +
|
|
498
498
|
'<!-- text-based TTML -->' +
|
|
499
499
|
'</div></body></tt>',
|
|
500
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
500
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
501
501
|
{});
|
|
502
502
|
});
|
|
503
503
|
|
|
@@ -517,7 +517,7 @@ describe('TtmlTextParser', () => {
|
|
|
517
517
|
'<body region="subtitleArea"><div>' +
|
|
518
518
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
519
519
|
'</div></body></tt>',
|
|
520
|
-
{periodStart: 0, segmentStart:
|
|
520
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
521
521
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
522
522
|
{startTime: 62.05, endTime: 3723.2});
|
|
523
523
|
});
|
|
@@ -539,7 +539,7 @@ describe('TtmlTextParser', () => {
|
|
|
539
539
|
'<body region="subtitleArea"><div>' +
|
|
540
540
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
541
541
|
'</div></body></tt>',
|
|
542
|
-
{periodStart: 0, segmentStart:
|
|
542
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
543
543
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
544
544
|
{startTime: 62.05, endTime: 3723.2});
|
|
545
545
|
});
|
|
@@ -561,7 +561,7 @@ describe('TtmlTextParser', () => {
|
|
|
561
561
|
'<body region="subtitleArea"><div>' +
|
|
562
562
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
563
563
|
'</div></body></tt>',
|
|
564
|
-
{periodStart: 0, segmentStart:
|
|
564
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
565
565
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
566
566
|
{startTime: 62.05, endTime: 3723.2});
|
|
567
567
|
});
|
|
@@ -586,7 +586,7 @@ describe('TtmlTextParser', () => {
|
|
|
586
586
|
'<body region="subtitleArea"><div>' +
|
|
587
587
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
588
588
|
'</div></body></tt>',
|
|
589
|
-
{periodStart: 0, segmentStart:
|
|
589
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
590
590
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
591
591
|
{startTime: 62.05, endTime: 3723.2});
|
|
592
592
|
});
|
|
@@ -611,7 +611,7 @@ describe('TtmlTextParser', () => {
|
|
|
611
611
|
'<body region="subtitleArea"><div>' +
|
|
612
612
|
'<p begin="01:02.05" end="01:02:03.200" style="s1">Test</p>' +
|
|
613
613
|
'</div></body></tt>',
|
|
614
|
-
{periodStart: 0, segmentStart:
|
|
614
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
615
615
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
616
616
|
{startTime: 62.05, endTime: 3723.2});
|
|
617
617
|
});
|
|
@@ -632,7 +632,7 @@ describe('TtmlTextParser', () => {
|
|
|
632
632
|
'<body region="subtitleArea"><div>' +
|
|
633
633
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
634
634
|
'</div></body></tt>',
|
|
635
|
-
{periodStart: 0, segmentStart:
|
|
635
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
636
636
|
{
|
|
637
637
|
region: {
|
|
638
638
|
id: 'subtitleArea',
|
|
@@ -661,7 +661,7 @@ describe('TtmlTextParser', () => {
|
|
|
661
661
|
'<body region="subtitleArea"><div>' +
|
|
662
662
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
663
663
|
'</div></body></tt>',
|
|
664
|
-
{periodStart: 0, segmentStart:
|
|
664
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
665
665
|
{
|
|
666
666
|
region: {
|
|
667
667
|
viewportAnchorX: 50,
|
|
@@ -689,7 +689,7 @@ describe('TtmlTextParser', () => {
|
|
|
689
689
|
'<body region="subtitleArea"><div>' +
|
|
690
690
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
691
691
|
'</div></body></tt>',
|
|
692
|
-
{periodStart: 0, segmentStart:
|
|
692
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
693
693
|
{
|
|
694
694
|
region: {
|
|
695
695
|
viewportAnchorX: 50,
|
|
@@ -718,7 +718,7 @@ describe('TtmlTextParser', () => {
|
|
|
718
718
|
'<body region="subtitleArea"><div>' +
|
|
719
719
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
720
720
|
'</div></body></tt>',
|
|
721
|
-
{periodStart: 0, segmentStart:
|
|
721
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
722
722
|
{
|
|
723
723
|
region: {
|
|
724
724
|
id: 'subtitleArea',
|
|
@@ -754,7 +754,7 @@ describe('TtmlTextParser', () => {
|
|
|
754
754
|
'<body region="subtitleArea"><div>' +
|
|
755
755
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
756
756
|
'</div></body></tt>',
|
|
757
|
-
{periodStart: 0, segmentStart:
|
|
757
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
758
758
|
{
|
|
759
759
|
region: {
|
|
760
760
|
id: 'subtitleArea',
|
|
@@ -790,7 +790,7 @@ describe('TtmlTextParser', () => {
|
|
|
790
790
|
'<body region="subtitleArea"><div>' +
|
|
791
791
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
792
792
|
'</div></body></tt>',
|
|
793
|
-
{periodStart: 0, segmentStart:
|
|
793
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
794
794
|
{
|
|
795
795
|
region: {
|
|
796
796
|
id: 'subtitleArea',
|
|
@@ -827,7 +827,7 @@ describe('TtmlTextParser', () => {
|
|
|
827
827
|
'<body region="subtitleArea"><div>' +
|
|
828
828
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
829
829
|
'</div></body></tt>',
|
|
830
|
-
{periodStart: 0, segmentStart:
|
|
830
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
831
831
|
{
|
|
832
832
|
region: {
|
|
833
833
|
id: 'subtitleArea',
|
|
@@ -864,7 +864,7 @@ describe('TtmlTextParser', () => {
|
|
|
864
864
|
'<body region="subtitleArea"><div>' +
|
|
865
865
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
866
866
|
'</div></body></tt>',
|
|
867
|
-
{periodStart: 0, segmentStart:
|
|
867
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
868
868
|
{
|
|
869
869
|
region: {
|
|
870
870
|
id: 'subtitleArea',
|
|
@@ -902,7 +902,7 @@ describe('TtmlTextParser', () => {
|
|
|
902
902
|
'<body region="subtitleArea"><div>' +
|
|
903
903
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
904
904
|
'</div></body></tt>',
|
|
905
|
-
{periodStart: 0, segmentStart:
|
|
905
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
906
906
|
{
|
|
907
907
|
region: {
|
|
908
908
|
id: 'subtitleArea',
|
|
@@ -939,7 +939,7 @@ describe('TtmlTextParser', () => {
|
|
|
939
939
|
'<body region="subtitleArea"><div>' +
|
|
940
940
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
941
941
|
'</div></body></tt>',
|
|
942
|
-
{periodStart: 0, segmentStart:
|
|
942
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
943
943
|
{
|
|
944
944
|
region: {
|
|
945
945
|
id: 'subtitleArea',
|
|
@@ -968,7 +968,7 @@ describe('TtmlTextParser', () => {
|
|
|
968
968
|
'<body region="subtitleArea"><div>' +
|
|
969
969
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
970
970
|
'</div></body></tt>',
|
|
971
|
-
{periodStart: 0, segmentStart:
|
|
971
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
972
972
|
{
|
|
973
973
|
region: {
|
|
974
974
|
viewportAnchorX: 50,
|
|
@@ -996,7 +996,7 @@ describe('TtmlTextParser', () => {
|
|
|
996
996
|
'<body region="subtitleArea"><div>' +
|
|
997
997
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
998
998
|
'</div></body></tt>',
|
|
999
|
-
{periodStart: 0, segmentStart:
|
|
999
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1000
1000
|
{
|
|
1001
1001
|
region: {
|
|
1002
1002
|
viewportAnchorX: 50,
|
|
@@ -1026,7 +1026,7 @@ describe('TtmlTextParser', () => {
|
|
|
1026
1026
|
'<body region="subtitleArea"><div>' +
|
|
1027
1027
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
1028
1028
|
'</div></body></tt>',
|
|
1029
|
-
{periodStart: 0, segmentStart:
|
|
1029
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1030
1030
|
{
|
|
1031
1031
|
region: {
|
|
1032
1032
|
id: 'subtitleArea',
|
|
@@ -1058,7 +1058,7 @@ describe('TtmlTextParser', () => {
|
|
|
1058
1058
|
'<body region="subtitleArea"><div>' +
|
|
1059
1059
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
1060
1060
|
'</div></body></tt>',
|
|
1061
|
-
{periodStart: 0, segmentStart:
|
|
1061
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1062
1062
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1063
1063
|
{startTime: 62.05, endTime: 3723.2});
|
|
1064
1064
|
|
|
@@ -1079,7 +1079,7 @@ describe('TtmlTextParser', () => {
|
|
|
1079
1079
|
'<body region="subtitleArea"><div>' +
|
|
1080
1080
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
1081
1081
|
'</div></body></tt>',
|
|
1082
|
-
{periodStart: 0, segmentStart:
|
|
1082
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1083
1083
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1084
1084
|
{startTime: 62.05, endTime: 3723.2});
|
|
1085
1085
|
|
|
@@ -1100,7 +1100,7 @@ describe('TtmlTextParser', () => {
|
|
|
1100
1100
|
'<body region="subtitleArea"><div>' +
|
|
1101
1101
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
1102
1102
|
'</div></body></tt>',
|
|
1103
|
-
{periodStart: 0, segmentStart:
|
|
1103
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1104
1104
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1105
1105
|
{startTime: 62.05, endTime: 3723.2});
|
|
1106
1106
|
|
|
@@ -1121,7 +1121,7 @@ describe('TtmlTextParser', () => {
|
|
|
1121
1121
|
'<body region="subtitleArea"><div>' +
|
|
1122
1122
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
1123
1123
|
'</div></body></tt>',
|
|
1124
|
-
{periodStart: 0, segmentStart:
|
|
1124
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1125
1125
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1126
1126
|
{startTime: 62.05, endTime: 3723.2});
|
|
1127
1127
|
|
|
@@ -1142,7 +1142,7 @@ describe('TtmlTextParser', () => {
|
|
|
1142
1142
|
'<body region="subtitleArea"><div>' +
|
|
1143
1143
|
'<p begin="01:02.05" end="01:02:03.200">Test</p>' +
|
|
1144
1144
|
'</div></body></tt>',
|
|
1145
|
-
{periodStart: 0, segmentStart:
|
|
1145
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1146
1146
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1147
1147
|
{startTime: 62.05, endTime: 3723.2});
|
|
1148
1148
|
});
|
|
@@ -1160,7 +1160,7 @@ describe('TtmlTextParser', () => {
|
|
|
1160
1160
|
'<div></div>' +
|
|
1161
1161
|
'</body>' +
|
|
1162
1162
|
'</tt>',
|
|
1163
|
-
{periodStart: 0, segmentStart:
|
|
1163
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1164
1164
|
{startTime: 62.05, endTime: 3723.2});
|
|
1165
1165
|
|
|
1166
1166
|
verifyHelper(
|
|
@@ -1175,7 +1175,7 @@ describe('TtmlTextParser', () => {
|
|
|
1175
1175
|
'</div>' +
|
|
1176
1176
|
'</body>' +
|
|
1177
1177
|
'</tt>',
|
|
1178
|
-
{periodStart: 0, segmentStart:
|
|
1178
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1179
1179
|
{startTime: 62.05, endTime: 3723.2});
|
|
1180
1180
|
|
|
1181
1181
|
verifyHelper(
|
|
@@ -1188,7 +1188,7 @@ describe('TtmlTextParser', () => {
|
|
|
1188
1188
|
'<div></div>' +
|
|
1189
1189
|
'</body>' +
|
|
1190
1190
|
'</tt>',
|
|
1191
|
-
{periodStart: 0, segmentStart:
|
|
1191
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1192
1192
|
{});
|
|
1193
1193
|
});
|
|
1194
1194
|
|
|
@@ -1205,7 +1205,7 @@ describe('TtmlTextParser', () => {
|
|
|
1205
1205
|
'</div>' +
|
|
1206
1206
|
'</body>' +
|
|
1207
1207
|
'</tt>',
|
|
1208
|
-
{periodStart: 0, segmentStart:
|
|
1208
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1209
1209
|
{startTime: 62.05, endTime: 3723.2});
|
|
1210
1210
|
});
|
|
1211
1211
|
|
|
@@ -1228,7 +1228,7 @@ describe('TtmlTextParser', () => {
|
|
|
1228
1228
|
'<body><div smpte:backgroundImage="#img_0">' +
|
|
1229
1229
|
'<p begin="01:02.05" end="01:02:03.200"></p>' +
|
|
1230
1230
|
'</div></body></tt>',
|
|
1231
|
-
{periodStart: 0, segmentStart:
|
|
1231
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1232
1232
|
{startTime: 62.05, endTime: 3723.2},
|
|
1233
1233
|
{
|
|
1234
1234
|
startTime: 62.05,
|
|
@@ -1251,7 +1251,7 @@ describe('TtmlTextParser', () => {
|
|
|
1251
1251
|
'<body><div begin="00:00.00" end="01:02.05" '+
|
|
1252
1252
|
'smpte:backgroundImage="#img_0"></div>' +
|
|
1253
1253
|
'</body></tt>',
|
|
1254
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1254
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 70},
|
|
1255
1255
|
{startTime: 0, endTime: 62.05},
|
|
1256
1256
|
{
|
|
1257
1257
|
startTime: 0,
|
|
@@ -1282,7 +1282,7 @@ describe('TtmlTextParser', () => {
|
|
|
1282
1282
|
'<p begin="01:02.05" end="01:02:03.200" ' +
|
|
1283
1283
|
'smpte:backgroundImage="#img_0" />' +
|
|
1284
1284
|
'</div></body></tt>',
|
|
1285
|
-
{periodStart: 0, segmentStart:
|
|
1285
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1286
1286
|
{startTime: 62.05, endTime: 3723.2});
|
|
1287
1287
|
});
|
|
1288
1288
|
|
|
@@ -1311,7 +1311,7 @@ describe('TtmlTextParser', () => {
|
|
|
1311
1311
|
'<tt><body><div>' +
|
|
1312
1312
|
'<p begin="01:02.05" end="01:02:03.200">Line1<br/>Line2</p>' +
|
|
1313
1313
|
'</div></body></tt>',
|
|
1314
|
-
{periodStart: 0, segmentStart:
|
|
1314
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1315
1315
|
{startTime: 62.05, endTime: 3723.2});
|
|
1316
1316
|
|
|
1317
1317
|
verifyHelper(
|
|
@@ -1345,7 +1345,7 @@ describe('TtmlTextParser', () => {
|
|
|
1345
1345
|
'<span>Line1<br/>Line2</span>' +
|
|
1346
1346
|
'</p>' +
|
|
1347
1347
|
'</div></body></tt>',
|
|
1348
|
-
{periodStart: 0, segmentStart:
|
|
1348
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1349
1349
|
{startTime: 62.05, endTime: 3723.2});
|
|
1350
1350
|
});
|
|
1351
1351
|
|
|
@@ -1373,7 +1373,7 @@ describe('TtmlTextParser', () => {
|
|
|
1373
1373
|
'<body><div>' +
|
|
1374
1374
|
'<p begin="00:01.00" end="00:02.00" style="s1">Test</p>' +
|
|
1375
1375
|
'</div></body></tt>',
|
|
1376
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1376
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1377
1377
|
{startTime: 1, endTime: 2});
|
|
1378
1378
|
});
|
|
1379
1379
|
|
|
@@ -1399,7 +1399,7 @@ describe('TtmlTextParser', () => {
|
|
|
1399
1399
|
'<body region="subtitleArea"><div>' +
|
|
1400
1400
|
'<p begin="01:02.05" end="01:02:03.200" style="s1">Test</p>' +
|
|
1401
1401
|
'</div></body></tt>',
|
|
1402
|
-
{periodStart: 0, segmentStart:
|
|
1402
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1403
1403
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1404
1404
|
{startTime: 62.05, endTime: 3723.2});
|
|
1405
1405
|
});
|
|
@@ -1444,7 +1444,7 @@ describe('TtmlTextParser', () => {
|
|
|
1444
1444
|
'<p begin="00:01.00" end="00:02.00" style="s1">Test</p>' +
|
|
1445
1445
|
'<p begin="00:02.00" end="00:04.00" style="s2">Test 2</p>' +
|
|
1446
1446
|
'</div></body></tt>',
|
|
1447
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1447
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1448
1448
|
{startTime: 1, endTime: 4, region: {id: 'subtitleArea'}},
|
|
1449
1449
|
{startTime: 1, endTime: 4});
|
|
1450
1450
|
});
|
|
@@ -1482,7 +1482,7 @@ describe('TtmlTextParser', () => {
|
|
|
1482
1482
|
'<span style="s1">Test</span>' +
|
|
1483
1483
|
'</p>' +
|
|
1484
1484
|
'</div></body></tt>',
|
|
1485
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1485
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1486
1486
|
{startTime: 1, endTime: 2});
|
|
1487
1487
|
});
|
|
1488
1488
|
|
|
@@ -1502,7 +1502,7 @@ describe('TtmlTextParser', () => {
|
|
|
1502
1502
|
'<span style="s1">Test</span>' +
|
|
1503
1503
|
'</p>' +
|
|
1504
1504
|
'</div></body></tt>',
|
|
1505
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1505
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1506
1506
|
// The body must have these properties:
|
|
1507
1507
|
{backgroundColor: 'transparent'},
|
|
1508
1508
|
// The div must have these properties:
|
|
@@ -1525,7 +1525,7 @@ describe('TtmlTextParser', () => {
|
|
|
1525
1525
|
'<span>Test</span>' +
|
|
1526
1526
|
'</p>' +
|
|
1527
1527
|
'</div></body></tt>',
|
|
1528
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1528
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1529
1529
|
// The body must have these properties:
|
|
1530
1530
|
{backgroundColor: 'black'},
|
|
1531
1531
|
// The div must have these properties:
|
|
@@ -1552,7 +1552,7 @@ describe('TtmlTextParser', () => {
|
|
|
1552
1552
|
'<body region="subtitleArea"><div>' +
|
|
1553
1553
|
'<p begin="01:02.05" end="01:02:03.200" style="s1">Test</p>' +
|
|
1554
1554
|
'</div></body></tt>',
|
|
1555
|
-
{periodStart: 0, segmentStart:
|
|
1555
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1556
1556
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1557
1557
|
{startTime: 62.05, endTime: 3723.2});
|
|
1558
1558
|
});
|
|
@@ -1580,7 +1580,7 @@ describe('TtmlTextParser', () => {
|
|
|
1580
1580
|
'<body region="subtitleArea"><div>' +
|
|
1581
1581
|
'<p begin="01:02.05" end="01:02:03.200" style="s2">Test</p>' +
|
|
1582
1582
|
'</div></body></tt>',
|
|
1583
|
-
{periodStart: 0, segmentStart:
|
|
1583
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1584
1584
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1585
1585
|
{startTime: 62.05, endTime: 3723.2});
|
|
1586
1586
|
});
|
|
@@ -1605,7 +1605,7 @@ describe('TtmlTextParser', () => {
|
|
|
1605
1605
|
'<body><div>' +
|
|
1606
1606
|
'<p begin="00:01.00" end="00:02.00" style="s1">Test</p>' +
|
|
1607
1607
|
'</div></body></tt>',
|
|
1608
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1608
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1609
1609
|
{startTime: 1, endTime: 2});
|
|
1610
1610
|
});
|
|
1611
1611
|
|
|
@@ -1633,7 +1633,7 @@ describe('TtmlTextParser', () => {
|
|
|
1633
1633
|
'<body><div>' +
|
|
1634
1634
|
'<p begin="00:01.00" end="00:02.00" style="s1">Test</p>' +
|
|
1635
1635
|
'</div></body></tt>',
|
|
1636
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1636
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1637
1637
|
{startTime: 1, endTime: 2});
|
|
1638
1638
|
});
|
|
1639
1639
|
|
|
@@ -1662,7 +1662,7 @@ describe('TtmlTextParser', () => {
|
|
|
1662
1662
|
'<body><div>' +
|
|
1663
1663
|
'<p begin="00:01.00" end="00:02.00" style="s1">Test</p>' +
|
|
1664
1664
|
'</div></body></tt>',
|
|
1665
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1665
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1666
1666
|
{startTime: 1, endTime: 2});
|
|
1667
1667
|
});
|
|
1668
1668
|
|
|
@@ -1687,7 +1687,7 @@ describe('TtmlTextParser', () => {
|
|
|
1687
1687
|
'<body region="subtitleArea"><div>' +
|
|
1688
1688
|
'<p begin="01:02.05" end="01:02:03.200" style="s2">Test</p>' +
|
|
1689
1689
|
'</div></body></tt>',
|
|
1690
|
-
{periodStart: 0, segmentStart:
|
|
1690
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1691
1691
|
{startTime: 62.05, endTime: 3723.2, region: {id: 'subtitleArea'}},
|
|
1692
1692
|
{startTime: 62.05, endTime: 3723.2});
|
|
1693
1693
|
});
|
|
@@ -1702,7 +1702,7 @@ describe('TtmlTextParser', () => {
|
|
|
1702
1702
|
'<p begin="00:01.00" end="00:02.00">First cue</p>' +
|
|
1703
1703
|
'<p begin="00:03.00" end="00:04.00">Second cue</p>' +
|
|
1704
1704
|
'</div></body></tt>',
|
|
1705
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1705
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1706
1706
|
{startTime: 1, endTime: 4});
|
|
1707
1707
|
});
|
|
1708
1708
|
|
|
@@ -1726,7 +1726,7 @@ describe('TtmlTextParser', () => {
|
|
|
1726
1726
|
'<tt><body><div>' +
|
|
1727
1727
|
'<p begin="01:02.05" end="01:02:03.200"><span>äöü</span></p>' +
|
|
1728
1728
|
'</div></body></tt>',
|
|
1729
|
-
{periodStart: 0, segmentStart:
|
|
1729
|
+
{periodStart: 0, segmentStart: 60, segmentEnd: 3730},
|
|
1730
1730
|
{startTime: 62.05, endTime: 3723.2});
|
|
1731
1731
|
});
|
|
1732
1732
|
|
|
@@ -1743,9 +1743,10 @@ describe('TtmlTextParser', () => {
|
|
|
1743
1743
|
'<p begin="3s" end="4s">First cue</p>' +
|
|
1744
1744
|
'<p begin="4s" end="5s">Second cue</p>' +
|
|
1745
1745
|
'</div></body></tt>',
|
|
1746
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1747
|
-
|
|
1748
|
-
{startTime:
|
|
1746
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10},
|
|
1747
|
+
// Capped to segment end time.
|
|
1748
|
+
{startTime: 1, endTime: 10},
|
|
1749
|
+
{startTime: 3, endTime: 10});
|
|
1749
1750
|
|
|
1750
1751
|
verifyHelper(
|
|
1751
1752
|
[{
|
|
@@ -1768,9 +1769,10 @@ describe('TtmlTextParser', () => {
|
|
|
1768
1769
|
'<span begin="5s" end="6s">Second cue</span>' +
|
|
1769
1770
|
'</p>' +
|
|
1770
1771
|
'</div></body></tt>',
|
|
1771
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1772
|
-
|
|
1773
|
-
{startTime:
|
|
1772
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 20},
|
|
1773
|
+
// Capped to segment end time.
|
|
1774
|
+
{startTime: 1, endTime: 20},
|
|
1775
|
+
{startTime: 3, endTime: 20});
|
|
1774
1776
|
});
|
|
1775
1777
|
|
|
1776
1778
|
it('gets end time from parent directly if missing', () => {
|
|
@@ -1784,7 +1786,7 @@ describe('TtmlTextParser', () => {
|
|
|
1784
1786
|
'<p begin="3s" end="4s">First cue</p>' +
|
|
1785
1787
|
'<p begin="4s">Second cue</p>' +
|
|
1786
1788
|
'</div></body></tt>',
|
|
1787
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1789
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 30},
|
|
1788
1790
|
{startTime: 1, endTime: 30},
|
|
1789
1791
|
{startTime: 3, endTime: 30});
|
|
1790
1792
|
});
|
|
@@ -1792,15 +1794,17 @@ describe('TtmlTextParser', () => {
|
|
|
1792
1794
|
it('supports never-ending cues', () => {
|
|
1793
1795
|
verifyHelper(
|
|
1794
1796
|
[
|
|
1795
|
-
|
|
1796
|
-
{startTime:
|
|
1797
|
+
// Capped to segment end time.
|
|
1798
|
+
{startTime: 1, endTime: 9000, payload: 'First cue'},
|
|
1799
|
+
{startTime: 2, endTime: 9000, payload: 'Second cue'},
|
|
1797
1800
|
],
|
|
1798
1801
|
'<tt><body><div>' +
|
|
1799
1802
|
'<p begin="1s">First cue</p>' +
|
|
1800
1803
|
'<p begin="2s">Second cue</p>' +
|
|
1801
1804
|
'</div></body></tt>',
|
|
1802
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1803
|
-
|
|
1805
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 9000},
|
|
1806
|
+
// Capped to segment end time.
|
|
1807
|
+
{startTime: 1, endTime: 9000});
|
|
1804
1808
|
});
|
|
1805
1809
|
|
|
1806
1810
|
// Regression test for b/159050711
|
|
@@ -1871,7 +1875,7 @@ describe('TtmlTextParser', () => {
|
|
|
1871
1875
|
' <span style="spanStyle">Test with spanStyle</span>' +
|
|
1872
1876
|
' </p>' +
|
|
1873
1877
|
'</div></body></tt>',
|
|
1874
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1878
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 60},
|
|
1875
1879
|
{startTime: 0, endTime: 60});
|
|
1876
1880
|
});
|
|
1877
1881
|
|
|
@@ -1903,7 +1907,7 @@ describe('TtmlTextParser', () => {
|
|
|
1903
1907
|
'<body><div><p begin="00:00" end="01:00" region="r1">' +
|
|
1904
1908
|
'<span>Hello!</span>' +
|
|
1905
1909
|
'</p></div></body></tt>',
|
|
1906
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1910
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 60},
|
|
1907
1911
|
{startTime: 0, endTime: 60},
|
|
1908
1912
|
);
|
|
1909
1913
|
});
|
|
@@ -1965,10 +1969,39 @@ describe('TtmlTextParser', () => {
|
|
|
1965
1969
|
' A<br/>B' +
|
|
1966
1970
|
' </p>' +
|
|
1967
1971
|
'</div></body></tt>',
|
|
1968
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
1972
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 60},
|
|
1969
1973
|
{startTime: 0, endTime: 60});
|
|
1970
1974
|
});
|
|
1971
1975
|
|
|
1976
|
+
// Test for https://github.com/shaka-project/shaka-player/issues/4631
|
|
1977
|
+
it('trims cues to segment boundaries', () => {
|
|
1978
|
+
verifyHelper(
|
|
1979
|
+
[
|
|
1980
|
+
// Capped to segment end time.
|
|
1981
|
+
{startTime: 168, endTime: 170},
|
|
1982
|
+
],
|
|
1983
|
+
'<tt><body><div>' +
|
|
1984
|
+
' <p begin="00:02:48.00" end="00:02:50.92" xml:id="sub22">' +
|
|
1985
|
+
' <span style="s1">Emo look.<br/>I mean listen.</span>' +
|
|
1986
|
+
' </p>' +
|
|
1987
|
+
'</div></body></tt>',
|
|
1988
|
+
{periodStart: 0, segmentStart: 160, segmentEnd: 170},
|
|
1989
|
+
{});
|
|
1990
|
+
|
|
1991
|
+
verifyHelper(
|
|
1992
|
+
[
|
|
1993
|
+
// Capped to segment start time.
|
|
1994
|
+
{startTime: 170, endTime: Util.closeTo(170.92)},
|
|
1995
|
+
],
|
|
1996
|
+
'<tt><body><div>' +
|
|
1997
|
+
' <p begin="00:02:48.00" end="00:02:50.92" xml:id="sub22">' +
|
|
1998
|
+
' <span style="s1">Emo look.<br/>I mean listen.</span>' +
|
|
1999
|
+
' </p>' +
|
|
2000
|
+
'</div></body></tt>',
|
|
2001
|
+
{periodStart: 0, segmentStart: 170, segmentEnd: 180},
|
|
2002
|
+
{});
|
|
2003
|
+
});
|
|
2004
|
+
|
|
1972
2005
|
/**
|
|
1973
2006
|
* @param {!Array} cues
|
|
1974
2007
|
* @param {string} text
|
|
@@ -2006,7 +2039,7 @@ describe('TtmlTextParser', () => {
|
|
|
2006
2039
|
expect(() => {
|
|
2007
2040
|
new shaka.text.TtmlTextParser().parseMedia(
|
|
2008
2041
|
shaka.util.BufferUtils.toUint8(data),
|
|
2009
|
-
{periodStart: 0, segmentStart: 0, segmentEnd:
|
|
2042
|
+
{periodStart: 0, segmentStart: 0, segmentEnd: 10});
|
|
2010
2043
|
}).toThrow(error);
|
|
2011
2044
|
}
|
|
2012
2045
|
});
|