hls.js 1.5.2-0.canary.9965 → 1.5.2-0.canary.9969

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.light.js CHANGED
@@ -525,7 +525,7 @@
525
525
  // Some browsers don't allow to use bind on console object anyway
526
526
  // fallback to default if needed
527
527
  try {
528
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.2-0.canary.9965");
528
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.2-0.canary.9969");
529
529
  } catch (e) {
530
530
  /* log fn threw an exception. All logger methods are no-ops. */
531
531
  return createLogger();
@@ -1602,6 +1602,12 @@
1602
1602
  var val = readSint32(buffer, offset);
1603
1603
  return val < 0 ? 4294967296 + val : val;
1604
1604
  }
1605
+ function readUint64(buffer, offset) {
1606
+ var result = readUint32(buffer, offset);
1607
+ result *= Math.pow(2, 32);
1608
+ result += readUint32(buffer, offset + 4);
1609
+ return result;
1610
+ }
1605
1611
  function readSint32(buffer, offset) {
1606
1612
  return buffer[offset] << 24 | buffer[offset + 1] << 16 | buffer[offset + 2] << 8 | buffer[offset + 3];
1607
1613
  }
@@ -1664,15 +1670,14 @@
1664
1670
  var index = 8;
1665
1671
  var timescale = readUint32(sidx, index);
1666
1672
  index += 4;
1667
-
1668
- // TODO: parse earliestPresentationTime and firstOffset
1669
- // usually zero in our case
1670
1673
  var earliestPresentationTime = 0;
1671
1674
  var firstOffset = 0;
1672
1675
  if (version === 0) {
1673
- index += 8;
1676
+ earliestPresentationTime = readUint32(sidx, index += 4);
1677
+ firstOffset = readUint32(sidx, index += 4);
1674
1678
  } else {
1675
- index += 16;
1679
+ earliestPresentationTime = readUint64(sidx, index += 8);
1680
+ firstOffset = readUint64(sidx, index += 8);
1676
1681
  }
1677
1682
 
1678
1683
  // skip reserved
@@ -2122,17 +2127,24 @@
2122
2127
  }
2123
2128
  if (videoDuration === 0 && audioDuration === 0) {
2124
2129
  // If duration samples are not available in the traf use sidx subsegment_duration
2130
+ var sidxMinStart = Infinity;
2131
+ var sidxMaxEnd = 0;
2125
2132
  var sidxDuration = 0;
2126
2133
  var sidxs = findBox(data, ['sidx']);
2127
2134
  for (var _i2 = 0; _i2 < sidxs.length; _i2++) {
2128
2135
  var sidx = parseSegmentIndex(sidxs[_i2]);
2129
2136
  if (sidx != null && sidx.references) {
2130
- sidxDuration += sidx.references.reduce(function (dur, ref) {
2137
+ sidxMinStart = Math.min(sidxMinStart, sidx.earliestPresentationTime / sidx.timescale);
2138
+ var subSegmentDuration = sidx.references.reduce(function (dur, ref) {
2131
2139
  return dur + ref.info.duration || 0;
2132
2140
  }, 0);
2141
+ sidxMaxEnd = Math.max(sidxMaxEnd, subSegmentDuration + sidx.earliestPresentationTime / sidx.timescale);
2142
+ sidxDuration = sidxMaxEnd - sidxMinStart;
2133
2143
  }
2134
2144
  }
2135
- return sidxDuration;
2145
+ if (sidxDuration && isFiniteNumber(sidxDuration)) {
2146
+ return sidxDuration;
2147
+ }
2136
2148
  }
2137
2149
  if (videoDuration) {
2138
2150
  return videoDuration;
@@ -7021,8 +7033,11 @@
7021
7033
  return nextABRAutoLevel;
7022
7034
  },
7023
7035
  set: function set(nextLevel) {
7024
- var value = Math.max(this.hls.minAutoLevel, nextLevel);
7025
- if (this._nextAutoLevel != value) {
7036
+ var _this$hls3 = this.hls,
7037
+ maxAutoLevel = _this$hls3.maxAutoLevel,
7038
+ minAutoLevel = _this$hls3.minAutoLevel;
7039
+ var value = Math.min(Math.max(nextLevel, minAutoLevel), maxAutoLevel);
7040
+ if (this._nextAutoLevel !== value) {
7026
7041
  this.nextAutoLevelKey = '';
7027
7042
  this._nextAutoLevel = value;
7028
7043
  }
@@ -19244,7 +19259,8 @@
19244
19259
  }
19245
19260
  // set new level to playlist loader : this will trigger start level load
19246
19261
  // hls.nextLoadLevel remains until it is set to a new value or until a new frag is successfully loaded
19247
- this.level = hls.nextLoadLevel = startLevel;
19262
+ hls.nextLoadLevel = startLevel;
19263
+ this.level = hls.loadLevel;
19248
19264
  this.loadedmetadata = false;
19249
19265
  }
19250
19266
  // if startPosition undefined but lastCurrentTime set, set startPosition to last currentTime
@@ -21132,7 +21148,7 @@
21132
21148
  * Get the video-dev/hls.js package version.
21133
21149
  */
21134
21150
  function get() {
21135
- return "1.5.2-0.canary.9965";
21151
+ return "1.5.2-0.canary.9969";
21136
21152
  }
21137
21153
  }, {
21138
21154
  key: "Events",