hls.js 1.4.11 → 1.4.13
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/dist/hls.js +43 -25
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +43 -25
- package/dist/hls.light.js.map +1 -1
- package/dist/hls.light.min.js +1 -1
- package/dist/hls.light.min.js.map +1 -1
- package/dist/hls.light.mjs +44 -26
- package/dist/hls.light.mjs.map +1 -1
- package/dist/hls.min.js +1 -1
- package/dist/hls.min.js.map +1 -1
- package/dist/hls.mjs +44 -26
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/dist/hls.worker.js.map +1 -1
- package/package.json +1 -1
- package/src/controller/base-playlist-controller.ts +1 -1
- package/src/controller/id3-track-controller.ts +56 -23
- package/src/polyfills/number.ts +8 -0
- package/src/utils/mp4-tools.ts +2 -2
package/dist/hls.js
CHANGED
|
@@ -374,10 +374,17 @@
|
|
|
374
374
|
|
|
375
375
|
var urlToolkitExports = urlToolkit.exports;
|
|
376
376
|
|
|
377
|
+
// https://caniuse.com/mdn-javascript_builtins_number_isfinite
|
|
377
378
|
var isFiniteNumber = Number.isFinite || function (value) {
|
|
378
379
|
return typeof value === 'number' && isFinite(value);
|
|
379
380
|
};
|
|
380
381
|
|
|
382
|
+
// https://caniuse.com/mdn-javascript_builtins_number_issafeinteger
|
|
383
|
+
var isSafeInteger = Number.isSafeInteger || function (value) {
|
|
384
|
+
return typeof value === 'number' && Math.abs(value) <= MAX_SAFE_INTEGER;
|
|
385
|
+
};
|
|
386
|
+
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
|
|
387
|
+
|
|
381
388
|
var Events = /*#__PURE__*/function (Events) {
|
|
382
389
|
Events["MEDIA_ATTACHING"] = "hlsMediaAttaching";
|
|
383
390
|
Events["MEDIA_ATTACHED"] = "hlsMediaAttached";
|
|
@@ -539,7 +546,7 @@
|
|
|
539
546
|
// Some browsers don't allow to use bind on console object anyway
|
|
540
547
|
// fallback to default if needed
|
|
541
548
|
try {
|
|
542
|
-
exportedLogger.log("Debug logs enabled for \"" + id + "\" in hls.js version " + "1.4.
|
|
549
|
+
exportedLogger.log("Debug logs enabled for \"" + id + "\" in hls.js version " + "1.4.13");
|
|
543
550
|
} catch (e) {
|
|
544
551
|
exportedLogger = fakeLogger;
|
|
545
552
|
}
|
|
@@ -2060,13 +2067,13 @@
|
|
|
2060
2067
|
var scale = track.timescale || 90e3;
|
|
2061
2068
|
// convert base time to seconds
|
|
2062
2069
|
var startTime = baseTime / scale;
|
|
2063
|
-
if (
|
|
2070
|
+
if (isFiniteNumber(startTime) && (result === null || startTime < result)) {
|
|
2064
2071
|
return startTime;
|
|
2065
2072
|
}
|
|
2066
2073
|
}
|
|
2067
2074
|
return result;
|
|
2068
2075
|
}, null);
|
|
2069
|
-
if (start !== null &&
|
|
2076
|
+
if (start !== null && isFiniteNumber(start) && (result === null || start < result)) {
|
|
2070
2077
|
return start;
|
|
2071
2078
|
}
|
|
2072
2079
|
return result;
|
|
@@ -2587,7 +2594,7 @@
|
|
|
2587
2594
|
var rightPresentationTime = readUint32(data, offset);
|
|
2588
2595
|
offset += 4;
|
|
2589
2596
|
presentationTime = Math.pow(2, 32) * leftPresentationTime + rightPresentationTime;
|
|
2590
|
-
if (!
|
|
2597
|
+
if (!isSafeInteger(presentationTime)) {
|
|
2591
2598
|
presentationTime = Number.MAX_SAFE_INTEGER;
|
|
2592
2599
|
logger.warn('Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box');
|
|
2593
2600
|
}
|
|
@@ -4343,11 +4350,21 @@
|
|
|
4343
4350
|
var MIN_CUE_DURATION = 0.25;
|
|
4344
4351
|
function getCueClass() {
|
|
4345
4352
|
if (typeof self === 'undefined') return undefined;
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4353
|
+
return self.VTTCue || self.TextTrackCue;
|
|
4354
|
+
}
|
|
4355
|
+
function createCueWithDataFields(Cue, startTime, endTime, data, type) {
|
|
4356
|
+
var cue = new Cue(startTime, endTime, '');
|
|
4357
|
+
try {
|
|
4358
|
+
cue.value = data;
|
|
4359
|
+
if (type) {
|
|
4360
|
+
cue.type = type;
|
|
4361
|
+
}
|
|
4362
|
+
} catch (e) {
|
|
4363
|
+
cue = new Cue(startTime, endTime, JSON.stringify(type ? _objectSpread2({
|
|
4364
|
+
type: type
|
|
4365
|
+
}, data) : data));
|
|
4366
|
+
}
|
|
4367
|
+
return cue;
|
|
4351
4368
|
}
|
|
4352
4369
|
|
|
4353
4370
|
// VTTCue latest draft allows an infinite duration, fallback
|
|
@@ -4355,7 +4372,7 @@
|
|
|
4355
4372
|
var MAX_CUE_ENDTIME = function () {
|
|
4356
4373
|
var Cue = getCueClass();
|
|
4357
4374
|
try {
|
|
4358
|
-
new Cue(0, Number.POSITIVE_INFINITY, '');
|
|
4375
|
+
Cue && new Cue(0, Number.POSITIVE_INFINITY, '');
|
|
4359
4376
|
} catch (e) {
|
|
4360
4377
|
return Number.MAX_VALUE;
|
|
4361
4378
|
}
|
|
@@ -4458,6 +4475,9 @@
|
|
|
4458
4475
|
this.id3Track = this.createTrack(this.media);
|
|
4459
4476
|
}
|
|
4460
4477
|
var Cue = getCueClass();
|
|
4478
|
+
if (!Cue) {
|
|
4479
|
+
return;
|
|
4480
|
+
}
|
|
4461
4481
|
for (var i = 0; i < samples.length; i++) {
|
|
4462
4482
|
var type = samples[i].type;
|
|
4463
4483
|
if (type === MetadataSchema.emsg && !enableEmsgMetadataCues || !enableID3MetadataCues) {
|
|
@@ -4480,12 +4500,10 @@
|
|
|
4480
4500
|
if (!isTimeStampFrame(frame)) {
|
|
4481
4501
|
// add a bounds to any unbounded cues
|
|
4482
4502
|
this.updateId3CueEnds(startTime, type);
|
|
4483
|
-
var cue =
|
|
4484
|
-
cue
|
|
4485
|
-
|
|
4486
|
-
cue.type = type;
|
|
4503
|
+
var cue = createCueWithDataFields(Cue, startTime, endTime, frame, type);
|
|
4504
|
+
if (cue) {
|
|
4505
|
+
this.id3Track.addCue(cue);
|
|
4487
4506
|
}
|
|
4488
|
-
this.id3Track.addCue(cue);
|
|
4489
4507
|
}
|
|
4490
4508
|
}
|
|
4491
4509
|
}
|
|
@@ -4607,20 +4625,20 @@
|
|
|
4607
4625
|
if (durationKnown && !appendedDateRangeCues.durationKnown) {
|
|
4608
4626
|
cue.endTime = endTime;
|
|
4609
4627
|
}
|
|
4610
|
-
} else {
|
|
4628
|
+
} else if (Cue) {
|
|
4611
4629
|
var data = dateRange.attr[key];
|
|
4612
|
-
cue = new Cue(startTime, endTime, '');
|
|
4613
4630
|
if (isSCTE35Attribute(key)) {
|
|
4614
4631
|
data = hexToArrayBuffer(data);
|
|
4615
4632
|
}
|
|
4616
|
-
|
|
4633
|
+
var _cue = createCueWithDataFields(Cue, startTime, endTime, {
|
|
4617
4634
|
key: key,
|
|
4618
4635
|
data: data
|
|
4619
|
-
};
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4623
|
-
|
|
4636
|
+
}, MetadataSchema.dateRange);
|
|
4637
|
+
if (_cue) {
|
|
4638
|
+
_cue.id = id;
|
|
4639
|
+
_this.id3Track.addCue(_cue);
|
|
4640
|
+
cues[key] = _cue;
|
|
4641
|
+
}
|
|
4624
4642
|
}
|
|
4625
4643
|
}
|
|
4626
4644
|
dateRangeCuesAppended[id] = {
|
|
@@ -6117,7 +6135,7 @@
|
|
|
6117
6135
|
this.loadPlaylist(deliveryDirectives);
|
|
6118
6136
|
return;
|
|
6119
6137
|
}
|
|
6120
|
-
} else if (details.canBlockReload) {
|
|
6138
|
+
} else if (details.canBlockReload || details.canSkipUntil) {
|
|
6121
6139
|
deliveryDirectives = this.getDeliveryDirectives(details, data.deliveryDirectives, msn, part);
|
|
6122
6140
|
}
|
|
6123
6141
|
var bufferInfo = this.hls.mainForwardBufferInfo;
|
|
@@ -26329,7 +26347,7 @@
|
|
|
26329
26347
|
* Get the video-dev/hls.js package version.
|
|
26330
26348
|
*/
|
|
26331
26349
|
function get() {
|
|
26332
|
-
return "1.4.
|
|
26350
|
+
return "1.4.13";
|
|
26333
26351
|
}
|
|
26334
26352
|
}, {
|
|
26335
26353
|
key: "Events",
|