hls.js 1.6.0-beta.3.0.canary.10979 → 1.6.0-beta.3.0.canary.10980

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.3.0.canary.10979"}`);
405
+ newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-beta.3.0.canary.10980"}`);
406
406
  } catch (e) {
407
407
  /* log fn threw an exception. All logger methods are no-ops. */
408
408
  return createLogger();
@@ -884,6 +884,23 @@ function getVideoSelectionOptions(currentVideoRange, videoPreference) {
884
884
  };
885
885
  }
886
886
 
887
+ const omitCircularRefsReplacer = replacer => {
888
+ const known = new WeakSet();
889
+ return (_, value) => {
890
+ if (replacer) {
891
+ value = replacer(_, value);
892
+ }
893
+ if (typeof value === 'object' && value !== null) {
894
+ if (known.has(value)) {
895
+ return;
896
+ }
897
+ known.add(value);
898
+ }
899
+ return value;
900
+ };
901
+ };
902
+ const stringify = (object, replacer) => JSON.stringify(object, omitCircularRefsReplacer(replacer));
903
+
887
904
  function getStartCodecTier(codecTiers, currentVideoRange, currentBw, audioPreference, videoPreference) {
888
905
  const codecSets = Object.keys(codecTiers);
889
906
  const channelsPreference = audioPreference == null ? void 0 : audioPreference.channels;
@@ -963,7 +980,7 @@ function getStartCodecTier(codecTiers, currentVideoRange, currentBw, audioPrefer
963
980
  return selected;
964
981
  }
965
982
  if (!videoRanges.some(range => candidateTier.videoRanges[range] > 0)) {
966
- logStartCodecCandidateIgnored(candidate, `no variants with VIDEO-RANGE of ${JSON.stringify(videoRanges)} found`);
983
+ logStartCodecCandidateIgnored(candidate, `no variants with VIDEO-RANGE of ${stringify(videoRanges)} found`);
967
984
  return selected;
968
985
  }
969
986
  if (videoCodecPreference && candidate.indexOf(videoCodecPreference.substring(0, 4)) % 5 !== 0) {
@@ -1628,7 +1645,7 @@ class AbrController extends Logger {
1628
1645
  currentVideoRange = preferHDR ? videoRanges[videoRanges.length - 1] : videoRanges[0];
1629
1646
  currentFrameRate = minFramerate;
1630
1647
  currentBw = Math.max(currentBw, minBitrate);
1631
- this.log(`picked start tier ${JSON.stringify(startTier)}`);
1648
+ this.log(`picked start tier ${stringify(startTier)}`);
1632
1649
  } else {
1633
1650
  currentCodecSet = level == null ? void 0 : level.codecSet;
1634
1651
  currentVideoRange = level == null ? void 0 : level.videoRange;
@@ -5477,7 +5494,7 @@ function mergeDateRanges(oldDateRanges, newDetails) {
5477
5494
  dateRange.tagOrder += mergeCount;
5478
5495
  }
5479
5496
  } else {
5480
- logger.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(deltaDateRanges[id].attr)}"`);
5497
+ logger.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${stringify(deltaDateRanges[id].attr)}"`);
5481
5498
  }
5482
5499
  });
5483
5500
  }
@@ -9412,8 +9429,8 @@ class BufferController extends Logger {
9412
9429
  return;
9413
9430
  }
9414
9431
  this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal})
9415
- required tracks: ${JSON.stringify(requiredTracks, (key, value) => key === 'initSegment' ? undefined : value)};
9416
- transfer tracks: ${JSON.stringify(transferredTracks, (key, value) => key === 'initSegment' ? undefined : value)}}`);
9432
+ required tracks: ${stringify(requiredTracks, (key, value) => key === 'initSegment' ? undefined : value)};
9433
+ transfer tracks: ${stringify(transferredTracks, (key, value) => key === 'initSegment' ? undefined : value)}}`);
9417
9434
  if (!isCompatibleTrackChange(transferredTracks, requiredTracks)) {
9418
9435
  // destroy attaching media source
9419
9436
  data.mediaSource = null;
@@ -10225,7 +10242,7 @@ transfer tracks: ${JSON.stringify(transferredTracks, (key, value) => key === 'in
10225
10242
  pendingTrackCount,
10226
10243
  tracks
10227
10244
  } = this;
10228
- this.log(`checkPendingTracks (pending: ${pendingTrackCount} codec events expected: ${bufferCodecEventsTotal}) ${JSON.stringify(tracks)}`);
10245
+ this.log(`checkPendingTracks (pending: ${pendingTrackCount} codec events expected: ${bufferCodecEventsTotal}) ${stringify(tracks)}`);
10229
10246
  // Check if we've received all of the expected bufferCodec events. When none remain, create all the sourceBuffers at once.
10230
10247
  // This is important because the MSE spec allows implementations to throw QuotaExceededErrors if creating new sourceBuffers after
10231
10248
  // data has been appended to existing ones.
@@ -10292,7 +10309,7 @@ transfer tracks: ${JSON.stringify(transferredTracks, (key, value) => key === 'in
10292
10309
  const codec = this.getTrackCodec(track, type);
10293
10310
  const mimeType = `${track.container};codecs=${codec}`;
10294
10311
  track.codec = codec;
10295
- this.log(`creating sourceBuffer(${mimeType})${this.currentOp(type) ? ' Queued' : ''} ${JSON.stringify(track)}`);
10312
+ this.log(`creating sourceBuffer(${mimeType})${this.currentOp(type) ? ' Queued' : ''} ${stringify(track)}`);
10296
10313
  try {
10297
10314
  const sb = mediaSource.addSourceBuffer(mimeType);
10298
10315
  const sbIndex = sourceBufferNameToIndex(type);
@@ -10963,7 +10980,7 @@ class ContentSteeringController extends Logger {
10963
10980
  errorAction.resolved = this.pathwayId !== errorPathway;
10964
10981
  }
10965
10982
  if (!errorAction.resolved) {
10966
- this.warn(`Could not resolve ${data.details} ("${data.error.message}") with content-steering for Pathway: ${errorPathway} levels: ${levels ? levels.length : levels} priorities: ${JSON.stringify(pathwayPriority)} penalized: ${JSON.stringify(this.penalizedPathways)}`);
10983
+ this.warn(`Could not resolve ${data.details} ("${data.error.message}") with content-steering for Pathway: ${errorPathway} levels: ${levels ? levels.length : levels} priorities: ${stringify(pathwayPriority)} penalized: ${stringify(this.penalizedPathways)}`);
10967
10984
  }
10968
10985
  }
10969
10986
  }
@@ -17523,7 +17540,7 @@ function mergeConfig(defaultConfig, userConfig, logger) {
17523
17540
  }
17524
17541
  });
17525
17542
  if (report.length) {
17526
- logger.warn(`hls.js config: "${report.join('", "')}" setting(s) are deprecated, use "${policyName}": ${JSON.stringify(userConfig[policyName])}`);
17543
+ logger.warn(`hls.js config: "${report.join('", "')}" setting(s) are deprecated, use "${policyName}": ${stringify(userConfig[policyName])}`);
17527
17544
  }
17528
17545
  });
17529
17546
  return _objectSpread2(_objectSpread2({}, defaultsCopy), userConfig);
@@ -17947,7 +17964,7 @@ class GapController extends TaskLoop {
17947
17964
  if (!stallReported && stalled !== null && media && hls) {
17948
17965
  // Report stalled error once
17949
17966
  this.stallReported = true;
17950
- const error = new Error(`Playback stalling at @${media.currentTime} due to low buffer (${JSON.stringify(bufferInfo)})`);
17967
+ const error = new Error(`Playback stalling at @${media.currentTime} due to low buffer (${stringify(bufferInfo)})`);
17951
17968
  this.warn(error.message);
17952
17969
  hls.trigger(Events.ERROR, {
17953
17970
  type: ErrorTypes.MEDIA_ERROR,
@@ -18228,7 +18245,7 @@ function createCueWithDataFields(Cue, startTime, endTime, data, type) {
18228
18245
  cue.type = type;
18229
18246
  }
18230
18247
  } catch (e) {
18231
- cue = new Cue(startTime, endTime, JSON.stringify(type ? _objectSpread2({
18248
+ cue = new Cue(startTime, endTime, stringify(type ? _objectSpread2({
18232
18249
  type
18233
18250
  }, data) : data));
18234
18251
  }
@@ -18974,7 +18991,7 @@ class LevelController extends BasePlaylistController {
18974
18991
  Promise.resolve().then(() => {
18975
18992
  if (this.hls) {
18976
18993
  if (data.levels.length) {
18977
- this.warn(`One or more CODECS in variant not supported: ${JSON.stringify(data.levels[0].attrs)}`);
18994
+ this.warn(`One or more CODECS in variant not supported: ${stringify(data.levels[0].attrs)}`);
18978
18995
  }
18979
18996
  const error = new Error('no level with compatible codecs found in manifest');
18980
18997
  this.hls.trigger(Events.ERROR, {
@@ -19387,7 +19404,7 @@ function assignTrackIdsByGroup(tracks) {
19387
19404
  });
19388
19405
  }
19389
19406
 
19390
- const version = "1.6.0-beta.3.0.canary.10979";
19407
+ const version = "1.6.0-beta.3.0.canary.10980";
19391
19408
 
19392
19409
  // ensure the worker ends up in the bundle
19393
19410
  // If the worker should not be included this gets aliased to empty.js
@@ -19571,7 +19588,7 @@ class TransmuxerInterface {
19571
19588
  cmd: 'init',
19572
19589
  typeSupported: m2tsTypeSupported,
19573
19590
  id,
19574
- config: JSON.stringify(config)
19591
+ config: stringify(config)
19575
19592
  });
19576
19593
  } catch (err) {
19577
19594
  logger.warn(`Error setting up "${id}" Web Worker, fallback to inline`, err);
@@ -19598,7 +19615,7 @@ class TransmuxerInterface {
19598
19615
  resetNo: instanceNo,
19599
19616
  typeSupported: m2tsTypeSupported,
19600
19617
  id: this.id,
19601
- config: JSON.stringify(config)
19618
+ config: stringify(config)
19602
19619
  });
19603
19620
  }
19604
19621
  }