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.
@@ -402,7 +402,7 @@ function enableLogs(debugConfig, context, id) {
402
402
  // Some browsers don't allow to use bind on console object anyway
403
403
  // fallback to default if needed
404
404
  try {
405
- newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-beta.4.0.canary.11044"}`);
405
+ newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-beta.4.0.canary.11046"}`);
406
406
  } catch (e) {
407
407
  /* log fn threw an exception. All logger methods are no-ops. */
408
408
  return createLogger();
@@ -5672,15 +5672,12 @@ function findPart(partList, sn, partIndex) {
5672
5672
  function reassignFragmentLevelIndexes(levels) {
5673
5673
  levels.forEach((level, index) => {
5674
5674
  var _level$details;
5675
- const fragments = (_level$details = level.details) == null ? void 0 : _level$details.fragments;
5676
- if (fragments) {
5677
- fragments.forEach(fragment => {
5678
- fragment.level = index;
5679
- if (fragment.initSegment) {
5680
- fragment.initSegment.level = index;
5681
- }
5682
- });
5683
- }
5675
+ (_level$details = level.details) == null ? void 0 : _level$details.fragments.forEach(fragment => {
5676
+ fragment.level = index;
5677
+ if (fragment.initSegment) {
5678
+ fragment.initSegment.level = index;
5679
+ }
5680
+ });
5684
5681
  });
5685
5682
  }
5686
5683
 
@@ -7863,6 +7860,7 @@ class BaseStreamController extends TaskLoop {
7863
7860
  this.media = this.mediaBuffer = null;
7864
7861
  this.loopSn = undefined;
7865
7862
  if (transferringMedia) {
7863
+ this.resetLoadingState();
7866
7864
  this.resetTransmuxer();
7867
7865
  return;
7868
7866
  }
@@ -7905,7 +7903,6 @@ class BaseStreamController extends TaskLoop {
7905
7903
  super.onHandlerDestroyed();
7906
7904
  }
7907
7905
  loadFragment(frag, level, targetBufferTime) {
7908
- this.hls.config;
7909
7906
  this.startFragRequested = true;
7910
7907
  this._loadFragForPlayback(frag, level, targetBufferTime);
7911
7908
  }
@@ -8254,9 +8251,9 @@ class BaseStreamController extends TaskLoop {
8254
8251
  }
8255
8252
  doFragPartsLoad(frag, fromPart, level, progressCallback) {
8256
8253
  return new Promise((resolve, reject) => {
8257
- var _level$details2;
8254
+ var _level$details;
8258
8255
  const partsLoaded = [];
8259
- const initialPartList = (_level$details2 = level.details) == null ? void 0 : _level$details2.partList;
8256
+ const initialPartList = (_level$details = level.details) == null ? void 0 : _level$details.partList;
8260
8257
  const loadPart = part => {
8261
8258
  this.fragmentLoader.loadPart(frag, part, progressCallback).then(partLoadedData => {
8262
8259
  partsLoaded[part.index] = partLoadedData;
@@ -8531,6 +8528,7 @@ class BaseStreamController extends TaskLoop {
8531
8528
  const end = this.loadingParts ? levelDetails.partEnd : levelDetails.fragmentEnd;
8532
8529
  frag = this.getFragmentAtPosition(pos, end, levelDetails);
8533
8530
  }
8531
+ frag = this.filterReplacedPrimary(frag, levelDetails);
8534
8532
  return this.mapToInitFragWhenRequired(frag);
8535
8533
  }
8536
8534
  isLoopLoading(frag, targetBufferTime) {
@@ -8558,6 +8556,13 @@ class BaseStreamController extends TaskLoop {
8558
8556
  this.loopSn = undefined;
8559
8557
  return nextFragment;
8560
8558
  }
8559
+ filterReplacedPrimary(frag, details) {
8560
+ if (!frag) {
8561
+ return frag;
8562
+ }
8563
+ this.hls.config;
8564
+ return frag;
8565
+ }
8561
8566
  mapToInitFragWhenRequired(frag) {
8562
8567
  // If an initSegment is present, it must be buffered first
8563
8568
  if (frag != null && frag.initSegment && !(frag != null && frag.initSegment.data) && !this.bitrateTest) {
@@ -8930,7 +8935,6 @@ class BaseStreamController extends TaskLoop {
8930
8935
  this.fragmentTracker.removeFragmentsInRange(start, Infinity, this.playlistType, false, true);
8931
8936
  }
8932
8937
  updateLevelTiming(frag, part, level, partial) {
8933
- var _this$transmuxer;
8934
8938
  const details = level.details;
8935
8939
  if (!details) {
8936
8940
  this.warn('level.details undefined');
@@ -8961,25 +8965,28 @@ class BaseStreamController extends TaskLoop {
8961
8965
  }
8962
8966
  return result;
8963
8967
  }, false);
8964
- if (!parsed && ((_this$transmuxer = this.transmuxer) == null ? void 0 : _this$transmuxer.error) === null) {
8965
- const error = new Error(`Found no media in fragment ${frag.sn} of ${this.playlistLabel()} ${frag.level} resetting transmuxer to fallback to playlist timing`);
8968
+ if (!parsed) {
8969
+ var _this$transmuxer;
8966
8970
  if (level.fragmentError === 0) {
8967
8971
  // Mark and track the odd empty segment as a gap to avoid reloading
8968
8972
  this.treatAsGap(frag, level);
8969
8973
  }
8970
- this.warn(error.message);
8971
- this.hls.trigger(Events.ERROR, {
8972
- type: ErrorTypes.MEDIA_ERROR,
8973
- details: ErrorDetails.FRAG_PARSING_ERROR,
8974
- fatal: false,
8975
- error,
8976
- frag,
8977
- reason: `Found no media in msn ${frag.sn} of ${this.playlistLabel()} "${level.url}"`
8978
- });
8979
- if (!this.hls) {
8980
- return;
8974
+ if (((_this$transmuxer = this.transmuxer) == null ? void 0 : _this$transmuxer.error) === null) {
8975
+ const error = new Error(`Found no media in fragment ${frag.sn} of ${this.playlistLabel()} ${frag.level} resetting transmuxer to fallback to playlist timing`);
8976
+ this.warn(error.message);
8977
+ this.hls.trigger(Events.ERROR, {
8978
+ type: ErrorTypes.MEDIA_ERROR,
8979
+ details: ErrorDetails.FRAG_PARSING_ERROR,
8980
+ fatal: false,
8981
+ error,
8982
+ frag,
8983
+ reason: `Found no media in msn ${frag.sn} of ${this.playlistLabel()} "${level.url}"`
8984
+ });
8985
+ if (!this.hls) {
8986
+ return;
8987
+ }
8988
+ this.resetTransmuxer();
8981
8989
  }
8982
- this.resetTransmuxer();
8983
8990
  // For this error fallthrough. Marking parsed will allow advancing to next fragment.
8984
8991
  }
8985
8992
  this.state = State.PARSED;
@@ -9246,15 +9253,14 @@ class BufferController extends Logger {
9246
9253
  if (!media || !mediaSource) {
9247
9254
  return;
9248
9255
  }
9256
+ // once received, don't listen anymore to sourceopen event
9257
+ mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);
9249
9258
  media.removeEventListener('emptied', this._onMediaEmptied);
9250
9259
  this.updateDuration();
9251
9260
  this.hls.trigger(Events.MEDIA_ATTACHED, {
9252
9261
  media,
9253
9262
  mediaSource: mediaSource
9254
9263
  });
9255
-
9256
- // once received, don't listen anymore to sourceopen event
9257
- mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);
9258
9264
  if (this.mediaSource !== null) {
9259
9265
  this.checkPendingTracks();
9260
9266
  }
@@ -19467,7 +19473,7 @@ function assignTrackIdsByGroup(tracks) {
19467
19473
  });
19468
19474
  }
19469
19475
 
19470
- const version = "1.6.0-beta.4.0.canary.11044";
19476
+ const version = "1.6.0-beta.4.0.canary.11046";
19471
19477
 
19472
19478
  // ensure the worker ends up in the bundle
19473
19479
  // If the worker should not be included this gets aliased to empty.js