hls.js 1.5.14-0.canary.10606 → 1.5.14-0.canary.10607

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
@@ -494,7 +494,7 @@
494
494
  // Some browsers don't allow to use bind on console object anyway
495
495
  // fallback to default if needed
496
496
  try {
497
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.14-0.canary.10606");
497
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.14-0.canary.10607");
498
498
  } catch (e) {
499
499
  /* log fn threw an exception. All logger methods are no-ops. */
500
500
  return createLogger();
@@ -5471,13 +5471,27 @@
5471
5471
  }
5472
5472
  }
5473
5473
  }
5474
- function adjustSliding(oldDetails, newDetails) {
5474
+ function adjustSliding(oldDetails, newDetails, matchingStableVariantOrRendition) {
5475
+ if (matchingStableVariantOrRendition === void 0) {
5476
+ matchingStableVariantOrRendition = true;
5477
+ }
5475
5478
  var delta = newDetails.startSN + newDetails.skippedSegments - oldDetails.startSN;
5476
5479
  var oldFragments = oldDetails.fragments;
5477
- if (delta < 0 || delta >= oldFragments.length) {
5480
+ var advancedOrStable = delta >= 0;
5481
+ var sliding = 0;
5482
+ if (advancedOrStable && delta < oldFragments.length) {
5483
+ sliding = oldFragments[delta].start;
5484
+ } else if (advancedOrStable && matchingStableVariantOrRendition) {
5485
+ // align new start with old end (updated playlist start sequence is past end sequence of last update)
5486
+ sliding = oldDetails.edge;
5487
+ } else if (!newDetails.skippedSegments && newDetails.fragments[0].start === 0) {
5488
+ // align new start with old (playlist switch has a sequence with no overlap and should not be used for alignment)
5489
+ sliding = oldDetails.fragments[0].start;
5490
+ } else {
5491
+ // new details already has a sliding offset or has skipped segments
5478
5492
  return;
5479
5493
  }
5480
- addSliding(newDetails, oldFragments[delta].start);
5494
+ addSliding(newDetails, sliding);
5481
5495
  }
5482
5496
  function addSliding(details, start) {
5483
5497
  if (start) {
@@ -12210,7 +12224,7 @@
12210
12224
  // Try to align on sn so that we pick a better start fragment.
12211
12225
  // Do not perform this on playlists with delta updates as this is only to align levels on switch
12212
12226
  // and adjustSliding only adjusts fragments after skippedSegments.
12213
- adjustSliding(switchDetails, details);
12227
+ adjustSliding(switchDetails, details, false);
12214
12228
  }
12215
12229
  }
12216
12230
 
@@ -19301,7 +19315,7 @@
19301
19315
  return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
19302
19316
  }
19303
19317
 
19304
- var version = "1.5.14-0.canary.10606";
19318
+ var version = "1.5.14-0.canary.10607";
19305
19319
 
19306
19320
  // ensure the worker ends up in the bundle
19307
19321
  // If the worker should not be included this gets aliased to empty.js