hls.js 1.5.5-0.canary.9984 → 1.5.5-0.canary.9985

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.mjs CHANGED
@@ -512,7 +512,7 @@ function enableLogs(debugConfig, context, id) {
512
512
  // Some browsers don't allow to use bind on console object anyway
513
513
  // fallback to default if needed
514
514
  try {
515
- newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.5.5-0.canary.9984"}`);
515
+ newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.5.5-0.canary.9985"}`);
516
516
  } catch (e) {
517
517
  /* log fn threw an exception. All logger methods are no-ops. */
518
518
  return createLogger();
@@ -6197,7 +6197,12 @@ class BasePlaylistController extends Logger {
6197
6197
  const cdnAge = lastAdvanced + details.ageHeader;
6198
6198
  let currentGoal = Math.min(cdnAge - details.partTarget, details.targetduration * 1.5);
6199
6199
  if (currentGoal > 0) {
6200
- if (previousDetails && currentGoal > previousDetails.tuneInGoal) {
6200
+ if (cdnAge > details.targetduration * 3) {
6201
+ // Omit segment and part directives when the last response was more than 3 target durations ago,
6202
+ this.log(`Playlist last advanced ${lastAdvanced.toFixed(2)}s ago. Omitting segment and part directives.`);
6203
+ msn = undefined;
6204
+ part = undefined;
6205
+ } else if (previousDetails != null && previousDetails.tuneInGoal && cdnAge - details.partTarget > previousDetails.tuneInGoal) {
6201
6206
  // If we attempted to get the next or latest playlist update, but currentGoal increased,
6202
6207
  // then we either can't catchup, or the "age" header cannot be trusted.
6203
6208
  this.warn(`CDN Tune-in goal increased from: ${previousDetails.tuneInGoal} to: ${currentGoal} with playlist age: ${details.age}`);
@@ -26658,7 +26663,12 @@ class LevelController extends BasePlaylistController {
26658
26663
  if (curLevel.fragmentError === 0) {
26659
26664
  curLevel.loadError = 0;
26660
26665
  }
26661
- this.playlistLoaded(level, data, curLevel.details);
26666
+ // Ignore matching details populated by loading a Media Playlist directly
26667
+ let previousDetails = curLevel.details;
26668
+ if (previousDetails === data.details && previousDetails.advanced) {
26669
+ previousDetails = undefined;
26670
+ }
26671
+ this.playlistLoaded(level, data, previousDetails);
26662
26672
  } else if ((_data$deliveryDirecti2 = data.deliveryDirectives) != null && _data$deliveryDirecti2.skip) {
26663
26673
  // received a delta playlist update that cannot be merged
26664
26674
  details.deltaUpdateFailed = true;
@@ -28527,7 +28537,7 @@ class Hls {
28527
28537
  * Get the video-dev/hls.js package version.
28528
28538
  */
28529
28539
  static get version() {
28530
- return "1.5.5-0.canary.9984";
28540
+ return "1.5.5-0.canary.9985";
28531
28541
  }
28532
28542
 
28533
28543
  /**