hls.js 1.6.0-beta.3.0.canary.10978 → 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.
package/dist/hls.light.js CHANGED
@@ -1030,7 +1030,7 @@
1030
1030
  // Some browsers don't allow to use bind on console object anyway
1031
1031
  // fallback to default if needed
1032
1032
  try {
1033
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.3.0.canary.10978");
1033
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.3.0.canary.10980");
1034
1034
  } catch (e) {
1035
1035
  /* log fn threw an exception. All logger methods are no-ops. */
1036
1036
  return createLogger();
@@ -1566,6 +1566,25 @@
1566
1566
  };
1567
1567
  }
1568
1568
 
1569
+ var omitCircularRefsReplacer = function omitCircularRefsReplacer(replacer) {
1570
+ var known = new WeakSet();
1571
+ return function (_, value) {
1572
+ if (replacer) {
1573
+ value = replacer(_, value);
1574
+ }
1575
+ if (typeof value === 'object' && value !== null) {
1576
+ if (known.has(value)) {
1577
+ return;
1578
+ }
1579
+ known.add(value);
1580
+ }
1581
+ return value;
1582
+ };
1583
+ };
1584
+ var stringify = function stringify(object, replacer) {
1585
+ return JSON.stringify(object, omitCircularRefsReplacer(replacer));
1586
+ };
1587
+
1569
1588
  function getStartCodecTier(codecTiers, currentVideoRange, currentBw, audioPreference, videoPreference) {
1570
1589
  var codecSets = Object.keys(codecTiers);
1571
1590
  var channelsPreference = audioPreference == null ? void 0 : audioPreference.channels;
@@ -1653,7 +1672,7 @@
1653
1672
  if (!videoRanges.some(function (range) {
1654
1673
  return candidateTier.videoRanges[range] > 0;
1655
1674
  })) {
1656
- logStartCodecCandidateIgnored(candidate, "no variants with VIDEO-RANGE of " + JSON.stringify(videoRanges) + " found");
1675
+ logStartCodecCandidateIgnored(candidate, "no variants with VIDEO-RANGE of " + stringify(videoRanges) + " found");
1657
1676
  return selected;
1658
1677
  }
1659
1678
  if (videoCodecPreference && candidate.indexOf(videoCodecPreference.substring(0, 4)) % 5 !== 0) {
@@ -2238,7 +2257,7 @@
2238
2257
  currentVideoRange = preferHDR ? videoRanges[videoRanges.length - 1] : videoRanges[0];
2239
2258
  currentFrameRate = minFramerate;
2240
2259
  currentBw = Math.max(currentBw, minBitrate);
2241
- this.log("picked start tier " + JSON.stringify(startTier));
2260
+ this.log("picked start tier " + stringify(startTier));
2242
2261
  } else {
2243
2262
  currentCodecSet = level == null ? void 0 : level.codecSet;
2244
2263
  currentVideoRange = level == null ? void 0 : level.videoRange;
@@ -2315,12 +2334,18 @@
2315
2334
  // not enough time budget even with quality level 0 ... rebuffering might happen
2316
2335
  return -1;
2317
2336
  };
2337
+ _proto.deriveNextAutoLevel = function deriveNextAutoLevel(nextLevel) {
2338
+ var _this$hls2 = this.hls,
2339
+ maxAutoLevel = _this$hls2.maxAutoLevel,
2340
+ minAutoLevel = _this$hls2.minAutoLevel;
2341
+ return Math.min(Math.max(nextLevel, minAutoLevel), maxAutoLevel);
2342
+ };
2318
2343
  return _createClass(AbrController, [{
2319
2344
  key: "firstAutoLevel",
2320
2345
  get: function get() {
2321
- var _this$hls2 = this.hls,
2322
- maxAutoLevel = _this$hls2.maxAutoLevel,
2323
- minAutoLevel = _this$hls2.minAutoLevel;
2346
+ var _this$hls3 = this.hls,
2347
+ maxAutoLevel = _this$hls3.maxAutoLevel,
2348
+ minAutoLevel = _this$hls3.minAutoLevel;
2324
2349
  var bwEstimate = this.getBwEstimate();
2325
2350
  var maxStartDelay = this.hls.config.maxStarvationDelay;
2326
2351
  var abrAutoLevel = this.findBestLevel(bwEstimate, minAutoLevel, maxAutoLevel, 0, maxStartDelay, 1, 1);
@@ -2371,10 +2396,7 @@
2371
2396
  return nextABRAutoLevel;
2372
2397
  },
2373
2398
  set: function set(nextLevel) {
2374
- var _this$hls3 = this.hls,
2375
- maxAutoLevel = _this$hls3.maxAutoLevel,
2376
- minAutoLevel = _this$hls3.minAutoLevel;
2377
- var value = Math.min(Math.max(nextLevel, minAutoLevel), maxAutoLevel);
2399
+ var value = this.deriveNextAutoLevel(nextLevel);
2378
2400
  if (this._nextAutoLevel !== value) {
2379
2401
  this.nextAutoLevelKey = '';
2380
2402
  this._nextAutoLevel = value;
@@ -4048,9 +4070,9 @@
4048
4070
  this.log("attachTransferred: waiting for SourceBuffer track info");
4049
4071
  return;
4050
4072
  }
4051
- this.log("attachTransferred: (bufferCodecEventsTotal " + this.bufferCodecEventsTotal + ")\nrequired tracks: " + JSON.stringify(requiredTracks, function (key, value) {
4073
+ this.log("attachTransferred: (bufferCodecEventsTotal " + this.bufferCodecEventsTotal + ")\nrequired tracks: " + stringify(requiredTracks, function (key, value) {
4052
4074
  return key === 'initSegment' ? undefined : value;
4053
- }) + ";\ntransfer tracks: " + JSON.stringify(transferredTracks, function (key, value) {
4075
+ }) + ";\ntransfer tracks: " + stringify(transferredTracks, function (key, value) {
4054
4076
  return key === 'initSegment' ? undefined : value;
4055
4077
  }) + "}");
4056
4078
  if (!isCompatibleTrackChange(transferredTracks, requiredTracks)) {
@@ -4841,7 +4863,7 @@
4841
4863
  var bufferCodecEventsTotal = this.bufferCodecEventsTotal,
4842
4864
  pendingTrackCount = this.pendingTrackCount,
4843
4865
  tracks = this.tracks;
4844
- this.log("checkPendingTracks (pending: " + pendingTrackCount + " codec events expected: " + bufferCodecEventsTotal + ") " + JSON.stringify(tracks));
4866
+ this.log("checkPendingTracks (pending: " + pendingTrackCount + " codec events expected: " + bufferCodecEventsTotal + ") " + stringify(tracks));
4845
4867
  // Check if we've received all of the expected bufferCodec events. When none remain, create all the sourceBuffers at once.
4846
4868
  // This is important because the MSE spec allows implementations to throw QuotaExceededErrors if creating new sourceBuffers after
4847
4869
  // data has been appended to existing ones.
@@ -4910,7 +4932,7 @@
4910
4932
  var codec = this.getTrackCodec(track, type);
4911
4933
  var mimeType = track.container + ";codecs=" + codec;
4912
4934
  track.codec = codec;
4913
- this.log("creating sourceBuffer(" + mimeType + ")" + (this.currentOp(type) ? ' Queued' : '') + " " + JSON.stringify(track));
4935
+ this.log("creating sourceBuffer(" + mimeType + ")" + (this.currentOp(type) ? ' Queued' : '') + " " + stringify(track));
4914
4936
  try {
4915
4937
  var sb = mediaSource.addSourceBuffer(mimeType);
4916
4938
  var sbIndex = sourceBufferNameToIndex(type);
@@ -8186,7 +8208,7 @@
8186
8208
  dateRange.tagOrder += mergeCount;
8187
8209
  }
8188
8210
  } else {
8189
- logger.warn("Ignoring invalid Playlist Delta Update DATERANGE tag: \"" + JSON.stringify(deltaDateRanges[id].attr) + "\"");
8211
+ logger.warn("Ignoring invalid Playlist Delta Update DATERANGE tag: \"" + stringify(deltaDateRanges[id].attr) + "\"");
8190
8212
  }
8191
8213
  });
8192
8214
  }
@@ -8479,7 +8501,7 @@
8479
8501
  errorAction.resolved = this.pathwayId !== errorPathway;
8480
8502
  }
8481
8503
  if (!errorAction.resolved) {
8482
- 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));
8504
+ 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));
8483
8505
  }
8484
8506
  }
8485
8507
  };
@@ -15197,7 +15219,7 @@
15197
15219
  }
15198
15220
  });
15199
15221
  if (report.length) {
15200
- logger.warn("hls.js config: \"" + report.join('", "') + "\" setting(s) are deprecated, use \"" + policyName + "\": " + JSON.stringify(userConfig[policyName]));
15222
+ logger.warn("hls.js config: \"" + report.join('", "') + "\" setting(s) are deprecated, use \"" + policyName + "\": " + stringify(userConfig[policyName]));
15201
15223
  }
15202
15224
  });
15203
15225
  return _objectSpread2(_objectSpread2({}, defaultsCopy), userConfig);
@@ -18111,7 +18133,7 @@
18111
18133
  if (!stallReported && stalled !== null && media && hls) {
18112
18134
  // Report stalled error once
18113
18135
  this.stallReported = true;
18114
- var error = new Error("Playback stalling at @" + media.currentTime + " due to low buffer (" + JSON.stringify(bufferInfo) + ")");
18136
+ var error = new Error("Playback stalling at @" + media.currentTime + " due to low buffer (" + stringify(bufferInfo) + ")");
18115
18137
  this.warn(error.message);
18116
18138
  hls.trigger(Events.ERROR, {
18117
18139
  type: ErrorTypes.MEDIA_ERROR,
@@ -18394,7 +18416,7 @@
18394
18416
  cue.type = type;
18395
18417
  }
18396
18418
  } catch (e) {
18397
- cue = new Cue(startTime, endTime, JSON.stringify(type ? _objectSpread2({
18419
+ cue = new Cue(startTime, endTime, stringify(type ? _objectSpread2({
18398
18420
  type: type
18399
18421
  }, data) : data));
18400
18422
  }
@@ -19401,7 +19423,7 @@
19401
19423
  Promise.resolve().then(function () {
19402
19424
  if (_this3.hls) {
19403
19425
  if (data.levels.length) {
19404
- _this3.warn("One or more CODECS in variant not supported: " + JSON.stringify(data.levels[0].attrs));
19426
+ _this3.warn("One or more CODECS in variant not supported: " + stringify(data.levels[0].attrs));
19405
19427
  }
19406
19428
  var error = new Error('no level with compatible codecs found in manifest');
19407
19429
  _this3.hls.trigger(Events.ERROR, {
@@ -20001,7 +20023,7 @@
20001
20023
  return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
20002
20024
  }
20003
20025
 
20004
- var version = "1.6.0-beta.3.0.canary.10978";
20026
+ var version = "1.6.0-beta.3.0.canary.10980";
20005
20027
 
20006
20028
  // ensure the worker ends up in the bundle
20007
20029
  // If the worker should not be included this gets aliased to empty.js
@@ -20182,7 +20204,7 @@
20182
20204
  cmd: 'init',
20183
20205
  typeSupported: m2tsTypeSupported,
20184
20206
  id: id,
20185
- config: JSON.stringify(config)
20207
+ config: stringify(config)
20186
20208
  });
20187
20209
  } catch (err) {
20188
20210
  logger.warn("Error setting up \"" + id + "\" Web Worker, fallback to inline", err);
@@ -20210,7 +20232,7 @@
20210
20232
  resetNo: instanceNo,
20211
20233
  typeSupported: m2tsTypeSupported,
20212
20234
  id: this.id,
20213
- config: JSON.stringify(config)
20235
+ config: stringify(config)
20214
20236
  });
20215
20237
  }
20216
20238
  };