hls.js 1.5.18 → 1.5.20

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
@@ -521,7 +521,7 @@
521
521
  // Some browsers don't allow to use bind on console object anyway
522
522
  // fallback to default if needed
523
523
  try {
524
- exportedLogger.log("Debug logs enabled for \"" + id + "\" in hls.js version " + "1.5.18");
524
+ exportedLogger.log("Debug logs enabled for \"" + id + "\" in hls.js version " + "1.5.20");
525
525
  } catch (e) {
526
526
  exportedLogger = fakeLogger;
527
527
  }
@@ -4979,15 +4979,16 @@
4979
4979
  delete oldDetails.fragmentHint.endPTS;
4980
4980
  }
4981
4981
  // check if old/new playlists have fragments in common
4982
- // loop through overlapping SN and update startPTS , cc, and duration if any found
4983
- var ccOffset = 0;
4982
+ // loop through overlapping SN and update startPTS, cc, and duration if any found
4984
4983
  var PTSFrag;
4985
- mapFragmentIntersection(oldDetails, newDetails, function (oldFrag, newFrag) {
4986
- if (oldFrag.relurl) {
4987
- // Do not compare CC if the old fragment has no url. This is a level.fragmentHint used by LL-HLS parts.
4988
- // It maybe be off by 1 if it was created before any parts or discontinuity tags were appended to the end
4989
- // of the playlist.
4990
- ccOffset = oldFrag.cc - newFrag.cc;
4984
+ mapFragmentIntersection(oldDetails, newDetails, function (oldFrag, newFrag, newFragIndex, newFragments) {
4985
+ if (newDetails.skippedSegments) {
4986
+ if (newFrag.cc !== oldFrag.cc) {
4987
+ var ccOffset = oldFrag.cc - newFrag.cc;
4988
+ for (var _i = newFragIndex; _i < newFragments.length; _i++) {
4989
+ newFragments[_i].cc += ccOffset;
4990
+ }
4991
+ }
4991
4992
  }
4992
4993
  if (isFiniteNumber(oldFrag.startPTS) && isFiniteNumber(oldFrag.endPTS)) {
4993
4994
  newFrag.start = newFrag.startPTS = oldFrag.startPTS;
@@ -5012,8 +5013,9 @@
5012
5013
  currentInitSegment = oldFrag.initSegment;
5013
5014
  }
5014
5015
  });
5016
+ var newFragments = newDetails.fragments;
5015
5017
  if (currentInitSegment) {
5016
- var fragmentsToCheck = newDetails.fragmentHint ? newDetails.fragments.concat(newDetails.fragmentHint) : newDetails.fragments;
5018
+ var fragmentsToCheck = newDetails.fragmentHint ? newFragments.concat(newDetails.fragmentHint) : newFragments;
5017
5019
  fragmentsToCheck.forEach(function (frag) {
5018
5020
  var _currentInitSegment;
5019
5021
  if (frag && (!frag.initSegment || frag.initSegment.relurl === ((_currentInitSegment = currentInitSegment) == null ? void 0 : _currentInitSegment.relurl))) {
@@ -5022,29 +5024,22 @@
5022
5024
  });
5023
5025
  }
5024
5026
  if (newDetails.skippedSegments) {
5025
- newDetails.deltaUpdateFailed = newDetails.fragments.some(function (frag) {
5027
+ newDetails.deltaUpdateFailed = newFragments.some(function (frag) {
5026
5028
  return !frag;
5027
5029
  });
5028
5030
  if (newDetails.deltaUpdateFailed) {
5029
5031
  logger.warn('[level-helper] Previous playlist missing segments skipped in delta playlist');
5030
- for (var _i = newDetails.skippedSegments; _i--;) {
5031
- newDetails.fragments.shift();
5032
+ for (var _i2 = newDetails.skippedSegments; _i2--;) {
5033
+ newFragments.shift();
5034
+ }
5035
+ newDetails.startSN = newFragments[0].sn;
5036
+ } else {
5037
+ if (newDetails.canSkipDateRanges) {
5038
+ newDetails.dateRanges = mergeDateRanges(oldDetails.dateRanges, newDetails.dateRanges, newDetails.recentlyRemovedDateranges);
5032
5039
  }
5033
- newDetails.startSN = newDetails.fragments[0].sn;
5034
- newDetails.startCC = newDetails.fragments[0].cc;
5035
- } else if (newDetails.canSkipDateRanges) {
5036
- newDetails.dateRanges = mergeDateRanges(oldDetails.dateRanges, newDetails.dateRanges, newDetails.recentlyRemovedDateranges);
5037
- }
5038
- }
5039
- var newFragments = newDetails.fragments;
5040
- if (ccOffset) {
5041
- logger.warn('discontinuity sliding from playlist, take drift into account');
5042
- for (var _i2 = 0; _i2 < newFragments.length; _i2++) {
5043
- newFragments[_i2].cc += ccOffset;
5044
5040
  }
5045
- }
5046
- if (newDetails.skippedSegments) {
5047
5041
  newDetails.startCC = newDetails.fragments[0].cc;
5042
+ newDetails.endCC = newFragments[newFragments.length - 1].cc;
5048
5043
  }
5049
5044
 
5050
5045
  // Merge parts
@@ -5128,7 +5123,7 @@
5128
5123
  _newFrag = newDetails.fragments[i] = _oldFrag;
5129
5124
  }
5130
5125
  if (_oldFrag && _newFrag) {
5131
- intersectionFn(_oldFrag, _newFrag);
5126
+ intersectionFn(_oldFrag, _newFrag, i, newFrags);
5132
5127
  }
5133
5128
  }
5134
5129
  }
@@ -11266,7 +11261,7 @@
11266
11261
  };
11267
11262
  _proto.load = function load(frag) {
11268
11263
  var _this2 = this;
11269
- if (!frag.decryptdata && frag.encrypted && this.emeController) {
11264
+ if (!frag.decryptdata && frag.encrypted && this.emeController && this.config.emeEnabled) {
11270
11265
  // Multiple keys, but none selected, resolve in eme-controller
11271
11266
  return this.emeController.selectKeySystemFormat(frag).then(function (keySystemFormat) {
11272
11267
  return _this2.loadInternal(frag, keySystemFormat);
@@ -21090,7 +21085,7 @@
21090
21085
  * Get the video-dev/hls.js package version.
21091
21086
  */
21092
21087
  function get() {
21093
- return "1.5.18";
21088
+ return "1.5.20";
21094
21089
  }
21095
21090
  }, {
21096
21091
  key: "Events",