hls.js 1.6.0-rc.1.0.canary.11077 → 1.6.0-rc.1.0.canary.11079

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
@@ -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-rc.1.0.canary.11077"}`);
405
+ newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-rc.1.0.canary.11079"}`);
406
406
  } catch (e) {
407
407
  /* log fn threw an exception. All logger methods are no-ops. */
408
408
  return createLogger();
@@ -1310,16 +1310,27 @@ function parseInitSegment(initSegment) {
1310
1310
  }[hdlrType];
1311
1311
  if (type) {
1312
1312
  // Parse codec details
1313
- const stsd = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];
1314
- const stsdData = parseStsd(stsd);
1315
- result[trackId] = {
1316
- timescale,
1317
- type
1318
- };
1319
- result[type] = _objectSpread2({
1320
- timescale,
1321
- id: trackId
1322
- }, stsdData);
1313
+ const stsdBox = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];
1314
+ const stsd = parseStsd(stsdBox);
1315
+ if (type) {
1316
+ // Add 'audio', 'video', and 'audiovideo' track records that will map to SourceBuffers
1317
+ result[trackId] = {
1318
+ timescale,
1319
+ type,
1320
+ stsd
1321
+ };
1322
+ result[type] = _objectSpread2({
1323
+ timescale,
1324
+ id: trackId
1325
+ }, stsd);
1326
+ } else {
1327
+ // Add 'meta' and other track records required by `offsetStartDTS`
1328
+ result[trackId] = {
1329
+ timescale,
1330
+ type: hdlrType,
1331
+ stsd
1332
+ };
1333
+ }
1323
1334
  }
1324
1335
  }
1325
1336
  }
@@ -1767,6 +1778,8 @@ function computeRawDurationFromSamples(trun) {
1767
1778
  }
1768
1779
  return duration;
1769
1780
  }
1781
+
1782
+ // TODO: Remove `offsetStartDTS` in favor of using `timestampOffset` (issue #5715)
1770
1783
  function offsetStartDTS(initData, fmp4, timeOffset) {
1771
1784
  findBox(fmp4, ['moof', 'traf']).forEach(traf => {
1772
1785
  findBox(traf, ['tfhd']).forEach(tfhd => {
@@ -10073,7 +10086,7 @@ function requireEventemitter3 () {
10073
10086
  var eventemitter3Exports = requireEventemitter3();
10074
10087
  var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
10075
10088
 
10076
- const version = "1.6.0-rc.1.0.canary.11077";
10089
+ const version = "1.6.0-rc.1.0.canary.11079";
10077
10090
 
10078
10091
  // ensure the worker ends up in the bundle
10079
10092
  // If the worker should not be included this gets aliased to empty.js
@@ -31077,9 +31090,10 @@ class LatencyController {
31077
31090
  if (inLiveRange && distanceFromTarget > 0.05 && this.forwardBufferLength > 1) {
31078
31091
  const max = Math.min(2, Math.max(1.0, maxLiveSyncPlaybackRate));
31079
31092
  const rate = Math.round(2 / (1 + Math.exp(-0.75 * distanceFromTarget - this.edgeStalled)) * 20) / 20;
31080
- media.playbackRate = Math.min(max, Math.max(1, rate));
31093
+ const playbackRate = Math.min(max, Math.max(1, rate));
31094
+ this.changeMediaPlaybackRate(media, playbackRate);
31081
31095
  } else if (media.playbackRate !== 1 && media.playbackRate !== 0) {
31082
- media.playbackRate = 1;
31096
+ this.changeMediaPlaybackRate(media, 1);
31083
31097
  }
31084
31098
  };
31085
31099
  this.hls = hls;
@@ -31238,6 +31252,14 @@ class LatencyController {
31238
31252
  this.hls.logger.warn('[latency-controller]: Stall detected, adjusting target latency');
31239
31253
  }
31240
31254
  }
31255
+ changeMediaPlaybackRate(media, playbackRate) {
31256
+ var _this$hls2, _this$targetLatency;
31257
+ if (media.playbackRate === playbackRate) {
31258
+ return;
31259
+ }
31260
+ (_this$hls2 = this.hls) == null ? void 0 : _this$hls2.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${(_this$targetLatency = this.targetLatency) == null ? void 0 : _this$targetLatency.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${media.playbackRate} to ${playbackRate}`);
31261
+ media.playbackRate = playbackRate;
31262
+ }
31241
31263
  estimateLiveEdge() {
31242
31264
  const levelDetails = this.levelDetails;
31243
31265
  if (levelDetails === null) {