hls.js 1.6.0-beta.4.0.canary.11044 → 1.6.0-beta.4.0.canary.11046

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
@@ -1044,7 +1044,7 @@
1044
1044
  // Some browsers don't allow to use bind on console object anyway
1045
1045
  // fallback to default if needed
1046
1046
  try {
1047
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.4.0.canary.11044");
1047
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.4.0.canary.11046");
1048
1048
  } catch (e) {
1049
1049
  /* log fn threw an exception. All logger methods are no-ops. */
1050
1050
  return createLogger();
@@ -5054,15 +5054,14 @@
5054
5054
  if (!media || !mediaSource) {
5055
5055
  return;
5056
5056
  }
5057
+ // once received, don't listen anymore to sourceopen event
5058
+ mediaSource.removeEventListener('sourceopen', _this2._onMediaSourceOpen);
5057
5059
  media.removeEventListener('emptied', _this2._onMediaEmptied);
5058
5060
  _this2.updateDuration();
5059
5061
  _this2.hls.trigger(Events.MEDIA_ATTACHED, {
5060
5062
  media: media,
5061
5063
  mediaSource: mediaSource
5062
5064
  });
5063
-
5064
- // once received, don't listen anymore to sourceopen event
5065
- mediaSource.removeEventListener('sourceopen', _this2._onMediaSourceOpen);
5066
5065
  if (_this2.mediaSource !== null) {
5067
5066
  _this2.checkPendingTracks();
5068
5067
  }
@@ -8406,15 +8405,12 @@
8406
8405
  function reassignFragmentLevelIndexes(levels) {
8407
8406
  levels.forEach(function (level, index) {
8408
8407
  var _level$details;
8409
- var fragments = (_level$details = level.details) == null ? void 0 : _level$details.fragments;
8410
- if (fragments) {
8411
- fragments.forEach(function (fragment) {
8412
- fragment.level = index;
8413
- if (fragment.initSegment) {
8414
- fragment.initSegment.level = index;
8415
- }
8416
- });
8417
- }
8408
+ (_level$details = level.details) == null ? void 0 : _level$details.fragments.forEach(function (fragment) {
8409
+ fragment.level = index;
8410
+ if (fragment.initSegment) {
8411
+ fragment.initSegment.level = index;
8412
+ }
8413
+ });
8418
8414
  });
8419
8415
  }
8420
8416
 
@@ -16633,6 +16629,7 @@
16633
16629
  this.media = this.mediaBuffer = null;
16634
16630
  this.loopSn = undefined;
16635
16631
  if (transferringMedia) {
16632
+ this.resetLoadingState();
16636
16633
  this.resetTransmuxer();
16637
16634
  return;
16638
16635
  }
@@ -16675,7 +16672,6 @@
16675
16672
  _TaskLoop.prototype.onHandlerDestroyed.call(this);
16676
16673
  };
16677
16674
  _proto.loadFragment = function loadFragment(frag, level, targetBufferTime) {
16678
- this.hls.config;
16679
16675
  this.startFragRequested = true;
16680
16676
  this._loadFragForPlayback(frag, level, targetBufferTime);
16681
16677
  };
@@ -17034,9 +17030,9 @@
17034
17030
  _proto.doFragPartsLoad = function doFragPartsLoad(frag, fromPart, level, progressCallback) {
17035
17031
  var _this6 = this;
17036
17032
  return new Promise(function (resolve, reject) {
17037
- var _level$details2;
17033
+ var _level$details;
17038
17034
  var partsLoaded = [];
17039
- var initialPartList = (_level$details2 = level.details) == null ? void 0 : _level$details2.partList;
17035
+ var initialPartList = (_level$details = level.details) == null ? void 0 : _level$details.partList;
17040
17036
  var _loadPart = function loadPart(part) {
17041
17037
  _this6.fragmentLoader.loadPart(frag, part, progressCallback).then(function (partLoadedData) {
17042
17038
  partsLoaded[part.index] = partLoadedData;
@@ -17302,6 +17298,7 @@
17302
17298
  var end = this.loadingParts ? levelDetails.partEnd : levelDetails.fragmentEnd;
17303
17299
  frag = this.getFragmentAtPosition(pos, end, levelDetails);
17304
17300
  }
17301
+ frag = this.filterReplacedPrimary(frag, levelDetails);
17305
17302
  return this.mapToInitFragWhenRequired(frag);
17306
17303
  };
17307
17304
  _proto.isLoopLoading = function isLoopLoading(frag, targetBufferTime) {
@@ -17329,6 +17326,13 @@
17329
17326
  this.loopSn = undefined;
17330
17327
  return nextFragment;
17331
17328
  };
17329
+ _proto.filterReplacedPrimary = function filterReplacedPrimary(frag, details) {
17330
+ if (!frag) {
17331
+ return frag;
17332
+ }
17333
+ this.hls.config;
17334
+ return frag;
17335
+ };
17332
17336
  _proto.mapToInitFragWhenRequired = function mapToInitFragWhenRequired(frag) {
17333
17337
  // If an initSegment is present, it must be buffered first
17334
17338
  if (frag != null && frag.initSegment && !(frag != null && frag.initSegment.data) && !this.bitrateTest) {
@@ -17692,8 +17696,7 @@
17692
17696
  this.fragmentTracker.removeFragmentsInRange(start, Infinity, this.playlistType, false, true);
17693
17697
  };
17694
17698
  _proto.updateLevelTiming = function updateLevelTiming(frag, part, level, partial) {
17695
- var _this7 = this,
17696
- _this$transmuxer;
17699
+ var _this7 = this;
17697
17700
  var details = level.details;
17698
17701
  if (!details) {
17699
17702
  this.warn('level.details undefined');
@@ -17724,25 +17727,28 @@
17724
17727
  }
17725
17728
  return result;
17726
17729
  }, false);
17727
- if (!parsed && ((_this$transmuxer = this.transmuxer) == null ? void 0 : _this$transmuxer.error) === null) {
17728
- var error = new Error("Found no media in fragment " + frag.sn + " of " + this.playlistLabel() + " " + frag.level + " resetting transmuxer to fallback to playlist timing");
17730
+ if (!parsed) {
17731
+ var _this$transmuxer;
17729
17732
  if (level.fragmentError === 0) {
17730
17733
  // Mark and track the odd empty segment as a gap to avoid reloading
17731
17734
  this.treatAsGap(frag, level);
17732
17735
  }
17733
- this.warn(error.message);
17734
- this.hls.trigger(Events.ERROR, {
17735
- type: ErrorTypes.MEDIA_ERROR,
17736
- details: ErrorDetails.FRAG_PARSING_ERROR,
17737
- fatal: false,
17738
- error: error,
17739
- frag: frag,
17740
- reason: "Found no media in msn " + frag.sn + " of " + this.playlistLabel() + " \"" + level.url + "\""
17741
- });
17742
- if (!this.hls) {
17743
- return;
17736
+ if (((_this$transmuxer = this.transmuxer) == null ? void 0 : _this$transmuxer.error) === null) {
17737
+ var error = new Error("Found no media in fragment " + frag.sn + " of " + this.playlistLabel() + " " + frag.level + " resetting transmuxer to fallback to playlist timing");
17738
+ this.warn(error.message);
17739
+ this.hls.trigger(Events.ERROR, {
17740
+ type: ErrorTypes.MEDIA_ERROR,
17741
+ details: ErrorDetails.FRAG_PARSING_ERROR,
17742
+ fatal: false,
17743
+ error: error,
17744
+ frag: frag,
17745
+ reason: "Found no media in msn " + frag.sn + " of " + this.playlistLabel() + " \"" + level.url + "\""
17746
+ });
17747
+ if (!this.hls) {
17748
+ return;
17749
+ }
17750
+ this.resetTransmuxer();
17744
17751
  }
17745
- this.resetTransmuxer();
17746
17752
  // For this error fallthrough. Marking parsed will allow advancing to next fragment.
17747
17753
  }
17748
17754
  this.state = State.PARSED;
@@ -20086,7 +20092,7 @@
20086
20092
  return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
20087
20093
  }
20088
20094
 
20089
- var version = "1.6.0-beta.4.0.canary.11044";
20095
+ var version = "1.6.0-beta.4.0.canary.11046";
20090
20096
 
20091
20097
  // ensure the worker ends up in the bundle
20092
20098
  // If the worker should not be included this gets aliased to empty.js