shaka-player 4.6.1 → 4.6.2
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/CHANGELOG.md +12 -0
- package/demo/config.js +5 -0
- package/dist/demo.compiled.debug.js +26 -25
- package/dist/demo.compiled.debug.map +2 -2
- package/dist/demo.compiled.js +26 -25
- package/dist/demo.compiled.map +2 -2
- package/dist/locales.js +32 -32
- package/dist/shaka-player.compiled.d.ts +1 -0
- package/dist/shaka-player.compiled.debug.d.ts +1 -0
- package/dist/shaka-player.compiled.debug.externs.js +1 -0
- package/dist/shaka-player.compiled.debug.js +24 -23
- package/dist/shaka-player.compiled.debug.map +3 -3
- package/dist/shaka-player.compiled.externs.js +1 -0
- package/dist/shaka-player.compiled.js +694 -694
- package/dist/shaka-player.compiled.map +2 -2
- package/dist/shaka-player.ui.d.ts +1 -0
- package/dist/shaka-player.ui.debug.d.ts +1 -0
- package/dist/shaka-player.ui.debug.externs.js +1 -0
- package/dist/shaka-player.ui.debug.js +29 -27
- package/dist/shaka-player.ui.debug.map +3 -3
- package/dist/shaka-player.ui.externs.js +1 -0
- package/dist/shaka-player.ui.js +794 -794
- package/dist/shaka-player.ui.map +2 -2
- package/docs/tutorials/lcevc.md +2 -2
- package/lib/cea/cea608_memory.js +13 -2
- package/lib/media/segment_reference.js +2 -1
- package/lib/media/streaming_engine.js +1 -1
- package/lib/player.js +1 -1
- package/lib/transmuxer/ts_transmuxer.js +15 -0
- package/lib/util/error.js +6 -0
- package/package.json +2 -2
- package/test/cea/cea608_memory_unit.js +8 -8
- package/test/cea/cea_decoder_unit.js +11 -11
- package/test/demo/demo_unit.js +0 -3
- package/ui/presentation_time.js +5 -5
package/docs/tutorials/lcevc.md
CHANGED
|
@@ -24,7 +24,7 @@ LCEVC Decoder library needs to be included in the HTML page:
|
|
|
24
24
|
```
|
|
25
25
|
- Or use `unpkg.com` for latest LCEVC Decoder libraries.
|
|
26
26
|
```html
|
|
27
|
-
<script src="https://unpkg.com/lcevc_dec.js@1.0.
|
|
27
|
+
<script src="https://unpkg.com/lcevc_dec.js@1.0.1/dist/lcevc_dec.min.js"></script>
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
Configuration to enable LCEVC enhancement:
|
|
@@ -45,7 +45,7 @@ Sample setup using the Shaka Player UI library:
|
|
|
45
45
|
<link rel="stylesheet" href="dist/controls.css" />
|
|
46
46
|
|
|
47
47
|
<!-- LCEVC decoder compiled library -->
|
|
48
|
-
<script src="https://unpkg.com/lcevc_dec.js@1.0.
|
|
48
|
+
<script src="https://unpkg.com/lcevc_dec.js@1.0.1/dist/lcevc_dec.min.js"></script>
|
|
49
49
|
|
|
50
50
|
<!-- Application source: -->
|
|
51
51
|
<script src="app.js"></script>
|
package/lib/cea/cea608_memory.js
CHANGED
|
@@ -84,8 +84,10 @@ shaka.cea.Cea608Memory = class {
|
|
|
84
84
|
startTime, endTime, /* payload= */ '');
|
|
85
85
|
topLevelCue.lineInterpretation =
|
|
86
86
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
87
|
-
const
|
|
88
|
-
|
|
87
|
+
const line = shaka.cea.Cea608Memory.ROW_TO_LINE_CONVERSION_.get(this.row_);
|
|
88
|
+
if (line) {
|
|
89
|
+
topLevelCue.line = line;
|
|
90
|
+
}
|
|
89
91
|
return shaka.cea.CeaUtils.getParsedCaption(
|
|
90
92
|
topLevelCue, stream, this.rows_, startTime, endTime);
|
|
91
93
|
}
|
|
@@ -320,3 +322,12 @@ shaka.cea.Cea608Memory.CharSet.ExtendedPortugueseGerman = new Map([
|
|
|
320
322
|
[0x38, 'Å'], [0x39, 'å'], [0x3a, 'Ø'], [0x3b, 'ø'], [0x3c, '┌'], [0x3d, '┐'],
|
|
321
323
|
[0x3e, '└'], [0x3f, '┘'],
|
|
322
324
|
]);
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* @private @const {!Map<number, number>}
|
|
328
|
+
*/
|
|
329
|
+
shaka.cea.Cea608Memory.ROW_TO_LINE_CONVERSION_ = new Map([
|
|
330
|
+
[1, 10], [2, 15.33], [3, 20.66], [4, 26], [5, 31.33], [6, 36.66], [7, 42],
|
|
331
|
+
[8, 47.33], [9, 52.66], [10, 58], [11, 63.33], [12, 68.66], [13, 74],
|
|
332
|
+
[14, 79.33], [15, 84.66],
|
|
333
|
+
]);
|
|
@@ -128,7 +128,8 @@ shaka.media.InitSegmentReference = class {
|
|
|
128
128
|
} else {
|
|
129
129
|
return reference1.getStartByte() == reference2.getStartByte() &&
|
|
130
130
|
reference1.getEndByte() == reference2.getEndByte() &&
|
|
131
|
-
ArrayUtils.equal(
|
|
131
|
+
ArrayUtils.equal(
|
|
132
|
+
reference1.getUris().sort(), reference2.getUris().sort()) &&
|
|
132
133
|
BufferUtils.equal(reference1.getSegmentData(),
|
|
133
134
|
reference2.getSegmentData());
|
|
134
135
|
}
|
|
@@ -1792,7 +1792,7 @@ shaka.media.StreamingEngine = class {
|
|
|
1792
1792
|
reference.initSegmentReference, mediaState.lastInitSegmentReference)) {
|
|
1793
1793
|
mediaState.lastInitSegmentReference = reference.initSegmentReference;
|
|
1794
1794
|
|
|
1795
|
-
if (reference.initSegmentReference) {
|
|
1795
|
+
if (reference.isIndependent() && reference.initSegmentReference) {
|
|
1796
1796
|
shaka.log.v1(logPrefix, 'fetching init segment');
|
|
1797
1797
|
|
|
1798
1798
|
const fetchInit =
|
package/lib/player.js
CHANGED
|
@@ -6781,7 +6781,7 @@ shaka.Player.TYPICAL_BUFFERING_THRESHOLD_ = 0.5;
|
|
|
6781
6781
|
* @export
|
|
6782
6782
|
*/
|
|
6783
6783
|
// eslint-disable-next-line no-useless-concat
|
|
6784
|
-
shaka.Player.version = 'v4.6.
|
|
6784
|
+
shaka.Player.version = 'v4.6.2' + '-uncompiled'; // x-release-please-version
|
|
6785
6785
|
|
|
6786
6786
|
// Initialize the deprecation system using the version string we just set
|
|
6787
6787
|
// on the player.
|
|
@@ -242,6 +242,9 @@ shaka.transmuxer.TsTransmuxer = class {
|
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
} catch (e) {
|
|
245
|
+
if (e && e.code == shaka.util.Error.Code.TRANSMUXING_NO_VIDEO_DATA) {
|
|
246
|
+
return Promise.resolve(new Uint8Array([]));
|
|
247
|
+
}
|
|
245
248
|
return Promise.reject(e);
|
|
246
249
|
}
|
|
247
250
|
|
|
@@ -704,6 +707,12 @@ shaka.transmuxer.TsTransmuxer = class {
|
|
|
704
707
|
|
|
705
708
|
let nalus = [];
|
|
706
709
|
const videoData = tsParser.getVideoData();
|
|
710
|
+
if (!videoData.length) {
|
|
711
|
+
throw new shaka.util.Error(
|
|
712
|
+
shaka.util.Error.Severity.CRITICAL,
|
|
713
|
+
shaka.util.Error.Category.MEDIA,
|
|
714
|
+
shaka.util.Error.Code.TRANSMUXING_NO_VIDEO_DATA);
|
|
715
|
+
}
|
|
707
716
|
for (let i = 0; i < videoData.length; i++) {
|
|
708
717
|
const pes = videoData[i];
|
|
709
718
|
const dataNalus = pes.nalus;
|
|
@@ -790,6 +799,12 @@ shaka.transmuxer.TsTransmuxer = class {
|
|
|
790
799
|
|
|
791
800
|
let nalus = [];
|
|
792
801
|
const videoData = tsParser.getVideoData();
|
|
802
|
+
if (!videoData.length) {
|
|
803
|
+
throw new shaka.util.Error(
|
|
804
|
+
shaka.util.Error.Severity.CRITICAL,
|
|
805
|
+
shaka.util.Error.Category.MEDIA,
|
|
806
|
+
shaka.util.Error.Code.TRANSMUXING_NO_VIDEO_DATA);
|
|
807
|
+
}
|
|
793
808
|
for (let i = 0; i < videoData.length; i++) {
|
|
794
809
|
const pes = videoData[i];
|
|
795
810
|
const dataNalus = pes.nalus;
|
package/lib/util/error.js
CHANGED
|
@@ -511,6 +511,12 @@ shaka.util.Error.Code = {
|
|
|
511
511
|
*/
|
|
512
512
|
'MSS_TRANSMUXING_FAILED': 3022,
|
|
513
513
|
|
|
514
|
+
/**
|
|
515
|
+
* An internal error which indicates that transmuxing operation has no video
|
|
516
|
+
* data. This should not be seen by applications.
|
|
517
|
+
*/
|
|
518
|
+
'TRANSMUXING_NO_VIDEO_DATA': 3023,
|
|
519
|
+
|
|
514
520
|
|
|
515
521
|
/**
|
|
516
522
|
* The Player was unable to guess the manifest type based on file extension
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shaka-player",
|
|
3
3
|
"description": "DASH/EME video player library",
|
|
4
|
-
"version": "4.6.
|
|
4
|
+
"version": "4.6.2",
|
|
5
5
|
"homepage": "https://github.com/shaka-project/shaka-player",
|
|
6
6
|
"author": "Google",
|
|
7
7
|
"maintainers": [
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"karma-sourcemap-loader": "^0.3.8",
|
|
49
49
|
"karma-spec-reporter": "^0.0.34",
|
|
50
50
|
"karma-webdriver-launcher": "^1.0.8",
|
|
51
|
-
"lcevc_dec.js": "^1.0.
|
|
51
|
+
"lcevc_dec.js": "^1.0.1",
|
|
52
52
|
"less": "https://gitpkg.now.sh/joeyparrish/less.js/packages/less?28c63a43",
|
|
53
53
|
"less-plugin-clean-css": "github:austingardner/less-plugin-clean-css#4e9e77bf",
|
|
54
54
|
"material-design-lite": "^1.3.0",
|
|
@@ -31,7 +31,7 @@ describe('Cea608Memory', () => {
|
|
|
31
31
|
const caption = memory.forceEmit(startTime, endTime);
|
|
32
32
|
|
|
33
33
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
34
|
-
topLevelCue.line =
|
|
34
|
+
topLevelCue.line = 10;
|
|
35
35
|
topLevelCue.lineInterpretation =
|
|
36
36
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
37
37
|
topLevelCue.nestedCues = [
|
|
@@ -82,7 +82,7 @@ describe('Cea608Memory', () => {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
85
|
-
topLevelCue.line =
|
|
85
|
+
topLevelCue.line = 10;
|
|
86
86
|
topLevelCue.lineInterpretation =
|
|
87
87
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
88
88
|
topLevelCue.nestedCues = [
|
|
@@ -119,7 +119,7 @@ describe('Cea608Memory', () => {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
122
|
-
topLevelCue.line =
|
|
122
|
+
topLevelCue.line = 10;
|
|
123
123
|
topLevelCue.lineInterpretation =
|
|
124
124
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
125
125
|
topLevelCue.nestedCues = [
|
|
@@ -173,7 +173,7 @@ describe('Cea608Memory', () => {
|
|
|
173
173
|
// ...
|
|
174
174
|
// So we expect that test\n\ntest is emitted
|
|
175
175
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
176
|
-
topLevelCue.line =
|
|
176
|
+
topLevelCue.line = 36.66;
|
|
177
177
|
topLevelCue.lineInterpretation =
|
|
178
178
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
179
179
|
topLevelCue.nestedCues = [
|
|
@@ -217,7 +217,7 @@ describe('Cea608Memory', () => {
|
|
|
217
217
|
memory.eraseChar(); // Erase the last 't' from 'testt'
|
|
218
218
|
|
|
219
219
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
220
|
-
topLevelCue.line =
|
|
220
|
+
topLevelCue.line = 10;
|
|
221
221
|
topLevelCue.lineInterpretation =
|
|
222
222
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
223
223
|
topLevelCue.nestedCues = [
|
|
@@ -291,7 +291,7 @@ describe('Cea608Memory', () => {
|
|
|
291
291
|
|
|
292
292
|
// Expected text is 's\nt\nt\ne'
|
|
293
293
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
294
|
-
topLevelCue.line = 31.
|
|
294
|
+
topLevelCue.line = 31.33;
|
|
295
295
|
topLevelCue.lineInterpretation =
|
|
296
296
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
297
297
|
topLevelCue.nestedCues = [
|
|
@@ -338,7 +338,7 @@ describe('Cea608Memory', () => {
|
|
|
338
338
|
|
|
339
339
|
// Expected text is 't\ne\ns\nt'
|
|
340
340
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
341
|
-
topLevelCue.line = 31.
|
|
341
|
+
topLevelCue.line = 31.33;
|
|
342
342
|
topLevelCue.lineInterpretation =
|
|
343
343
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
344
344
|
topLevelCue.nestedCues = [
|
|
@@ -385,7 +385,7 @@ describe('Cea608Memory', () => {
|
|
|
385
385
|
|
|
386
386
|
// Expected text is 't\ne\ns\nt'
|
|
387
387
|
const topLevelCue = new shaka.text.Cue(startTime, endTime, '');
|
|
388
|
-
topLevelCue.line = 31.
|
|
388
|
+
topLevelCue.line = 31.33;
|
|
389
389
|
topLevelCue.lineInterpretation =
|
|
390
390
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
391
391
|
topLevelCue.nestedCues = [
|
|
@@ -65,7 +65,7 @@ describe('CeaDecoder', () => {
|
|
|
65
65
|
|
|
66
66
|
const topLevelCue = new shaka.text.Cue(
|
|
67
67
|
startTimeCaption1, startTimeCaption2, '');
|
|
68
|
-
topLevelCue.line =
|
|
68
|
+
topLevelCue.line = 74;
|
|
69
69
|
topLevelCue.lineInterpretation =
|
|
70
70
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
71
71
|
topLevelCue.nestedCues = [
|
|
@@ -113,7 +113,7 @@ describe('CeaDecoder', () => {
|
|
|
113
113
|
// Since there are three style changes, there should be three nested cues.
|
|
114
114
|
const topLevelCue = new shaka.text.Cue(
|
|
115
115
|
startTimeCaption1, startTimeCaption2, '');
|
|
116
|
-
topLevelCue.line =
|
|
116
|
+
topLevelCue.line = 10;
|
|
117
117
|
topLevelCue.lineInterpretation =
|
|
118
118
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
119
119
|
|
|
@@ -166,7 +166,7 @@ describe('CeaDecoder', () => {
|
|
|
166
166
|
// A single nested cue containing yellow, italicized text.
|
|
167
167
|
const topLevelCue = new shaka.text.Cue(startTimeCaption1,
|
|
168
168
|
startTimeCaption2, '');
|
|
169
|
-
topLevelCue.line =
|
|
169
|
+
topLevelCue.line = 15.33;
|
|
170
170
|
topLevelCue.lineInterpretation =
|
|
171
171
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
172
172
|
topLevelCue.nestedCues = [
|
|
@@ -208,7 +208,7 @@ describe('CeaDecoder', () => {
|
|
|
208
208
|
|
|
209
209
|
const topLevelCue = new shaka.text.Cue(startTimeCaption1,
|
|
210
210
|
startTimeCaption2, '');
|
|
211
|
-
topLevelCue.line =
|
|
211
|
+
topLevelCue.line = 10;
|
|
212
212
|
topLevelCue.lineInterpretation =
|
|
213
213
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
214
214
|
topLevelCue.nestedCues = [
|
|
@@ -243,7 +243,7 @@ describe('CeaDecoder', () => {
|
|
|
243
243
|
|
|
244
244
|
const topLevelCue = new shaka.text.Cue(startTimeCaption1,
|
|
245
245
|
startTimeCaption2, '');
|
|
246
|
-
topLevelCue.line =
|
|
246
|
+
topLevelCue.line = 10;
|
|
247
247
|
topLevelCue.lineInterpretation =
|
|
248
248
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
249
249
|
topLevelCue.nestedCues = [
|
|
@@ -315,7 +315,7 @@ describe('CeaDecoder', () => {
|
|
|
315
315
|
// Top level cue corresponding to the first closed caption.
|
|
316
316
|
const topLevelCue1 = new shaka.text.Cue(
|
|
317
317
|
/* startTime= */ time1, /* endTime= */ time2, '');
|
|
318
|
-
topLevelCue1.line =
|
|
318
|
+
topLevelCue1.line = 84.66;
|
|
319
319
|
topLevelCue1.lineInterpretation =
|
|
320
320
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
321
321
|
topLevelCue1.nestedCues = [
|
|
@@ -326,7 +326,7 @@ describe('CeaDecoder', () => {
|
|
|
326
326
|
// Top level cue corresponding to the second closed caption.
|
|
327
327
|
const topLevelCue2 = new shaka.text.Cue(
|
|
328
328
|
/* startTime= */ time2, /* endTime= */ time3, '');
|
|
329
|
-
topLevelCue2.line =
|
|
329
|
+
topLevelCue2.line = 84.66;
|
|
330
330
|
topLevelCue2.lineInterpretation =
|
|
331
331
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
332
332
|
topLevelCue2.nestedCues = [
|
|
@@ -343,7 +343,7 @@ describe('CeaDecoder', () => {
|
|
|
343
343
|
// Top level cue corresponding to the third closed caption.
|
|
344
344
|
const topLevelCue3 = new shaka.text.Cue(
|
|
345
345
|
/* startTime= */ time3, /* endTime= */ time4, '');
|
|
346
|
-
topLevelCue3.line =
|
|
346
|
+
topLevelCue3.line = 84.66;
|
|
347
347
|
topLevelCue3.lineInterpretation =
|
|
348
348
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
349
349
|
topLevelCue3.nestedCues = [
|
|
@@ -360,7 +360,7 @@ describe('CeaDecoder', () => {
|
|
|
360
360
|
// Top level cue corresponding to the fourth closed caption.
|
|
361
361
|
const topLevelCue4 = new shaka.text.Cue(
|
|
362
362
|
/* startTime= */ time4, /* endTime= */ time5, '');
|
|
363
|
-
topLevelCue4.line =
|
|
363
|
+
topLevelCue4.line = 84.66;
|
|
364
364
|
topLevelCue4.lineInterpretation =
|
|
365
365
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
366
366
|
topLevelCue4.nestedCues = [
|
|
@@ -433,7 +433,7 @@ describe('CeaDecoder', () => {
|
|
|
433
433
|
// Top level cue corresponding to the first closed caption.
|
|
434
434
|
const topLevelCue1 = new shaka.text.Cue(/* startTime= */ 1,
|
|
435
435
|
/* endTime= */ 2, '');
|
|
436
|
-
topLevelCue1.line =
|
|
436
|
+
topLevelCue1.line = 84.66;
|
|
437
437
|
topLevelCue1.lineInterpretation =
|
|
438
438
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
439
439
|
topLevelCue1.nestedCues = [
|
|
@@ -444,7 +444,7 @@ describe('CeaDecoder', () => {
|
|
|
444
444
|
// Top level cue corresponding to the second closed caption.
|
|
445
445
|
const topLevelCue2 = new shaka.text.Cue(/* startTime= */ 2,
|
|
446
446
|
/* endTime= */ 3, '');
|
|
447
|
-
topLevelCue2.line =
|
|
447
|
+
topLevelCue2.line = 26;
|
|
448
448
|
topLevelCue2.lineInterpretation =
|
|
449
449
|
shaka.text.Cue.lineInterpretation.PERCENTAGE;
|
|
450
450
|
topLevelCue2.nestedCues = [
|
package/test/demo/demo_unit.js
CHANGED
|
@@ -74,14 +74,11 @@ describe('Demo', () => {
|
|
|
74
74
|
function checkConfig(checkValueNameFn) {
|
|
75
75
|
const configPrimitives = new Set(['number', 'string', 'boolean']);
|
|
76
76
|
const exceptions = new Set()
|
|
77
|
-
.add('preferredVariantRole')
|
|
78
77
|
.add('playRangeStart')
|
|
79
78
|
.add('playRangeEnd')
|
|
80
79
|
.add('manifest.dash.keySystemsByURI')
|
|
81
|
-
.add('manifest.hls.mediaPlaylistFullMimeType')
|
|
82
80
|
.add('manifest.mss.keySystemsBySystemId')
|
|
83
81
|
.add('drm.keySystemsMapping')
|
|
84
|
-
.add('streaming.parsePrftBox')
|
|
85
82
|
.add('manifest.raiseFatalErrorOnManifestUpdateRequestFailure')
|
|
86
83
|
.add('drm.persistentSessionOnlinePlayback')
|
|
87
84
|
.add('drm.persistentSessionsMetadata');
|
package/ui/presentation_time.js
CHANGED
|
@@ -64,7 +64,6 @@ shaka.ui.PresentationTimeTracker = class extends shaka.ui.Element {
|
|
|
64
64
|
updateTime_() {
|
|
65
65
|
const isSeeking = this.controls.isSeeking();
|
|
66
66
|
let displayTime = this.controls.getDisplayTime();
|
|
67
|
-
const duration = this.video.duration;
|
|
68
67
|
const seekRange = this.player.seekRange();
|
|
69
68
|
const seekRangeSize = seekRange.end - seekRange.start;
|
|
70
69
|
const Utils = shaka.ui.Utils;
|
|
@@ -89,11 +88,12 @@ shaka.ui.PresentationTimeTracker = class extends shaka.ui.Element {
|
|
|
89
88
|
this.currentTime_.disabled = true;
|
|
90
89
|
}
|
|
91
90
|
} else {
|
|
92
|
-
const showHour =
|
|
91
|
+
const showHour = seekRangeSize >= 3600;
|
|
93
92
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
const currentTime = Math.max(0, displayTime - seekRange.start);
|
|
94
|
+
let value = Utils.buildTimeString(currentTime, showHour);
|
|
95
|
+
if (seekRangeSize) {
|
|
96
|
+
value += ' / ' + Utils.buildTimeString(seekRangeSize, showHour);
|
|
97
97
|
}
|
|
98
98
|
this.setValue_(value);
|
|
99
99
|
this.currentTime_.disabled = true;
|