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 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.11");
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 (isFinite(startTime) && (result === null || startTime < result)) {
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 && isFinite(start) && (result === null || start < result)) {
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 (!Number.isSafeInteger(presentationTime)) {
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
- // Attempt to recreate Safari functionality by creating
4348
- // WebKitDataCue objects when available and store the decoded
4349
- // ID3 data in the value property of the cue
4350
- return self.WebKitDataCue || self.VTTCue || self.TextTrackCue;
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 = new Cue(startTime, endTime, '');
4484
- cue.value = frame;
4485
- if (type) {
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
- cue.value = {
4633
+ var _cue = createCueWithDataFields(Cue, startTime, endTime, {
4617
4634
  key: key,
4618
4635
  data: data
4619
- };
4620
- cue.type = MetadataSchema.dateRange;
4621
- cue.id = id;
4622
- _this.id3Track.addCue(cue);
4623
- cues[key] = cue;
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.11";
26350
+ return "1.4.13";
26333
26351
  }
26334
26352
  }, {
26335
26353
  key: "Events",