hls.js 1.6.0-beta.1.0.canary.10749 → 1.6.0-beta.1.0.canary.10751

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
@@ -400,7 +400,7 @@ function enableLogs(debugConfig, context, id) {
400
400
  // Some browsers don't allow to use bind on console object anyway
401
401
  // fallback to default if needed
402
402
  try {
403
- newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-beta.1.0.canary.10749"}`);
403
+ newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-beta.1.0.canary.10751"}`);
404
404
  } catch (e) {
405
405
  /* log fn threw an exception. All logger methods are no-ops. */
406
406
  return createLogger();
@@ -8246,22 +8246,24 @@ class BaseStreamController extends TaskLoop {
8246
8246
  this.startFragRequested = true;
8247
8247
  this._loadFragForPlayback(frag, level, targetBufferTime);
8248
8248
  }
8249
- _loadFragForPlayback(frag, level, targetBufferTime) {
8249
+ _loadFragForPlayback(fragment, level, targetBufferTime) {
8250
8250
  const progressCallback = data => {
8251
+ const frag = data.frag;
8251
8252
  if (this.fragContextChanged(frag)) {
8252
- this.warn(`Fragment ${frag.sn}${data.part ? ' p: ' + data.part.index : ''} of level ${frag.level} was dropped during download.`);
8253
+ this.warn(`${frag.type} sn: ${frag.sn}${data.part ? ' part: ' + data.part.index : ''} of ${this.fragInfo(frag, false, data.part)}) was dropped during download.`);
8253
8254
  this.fragmentTracker.removeFragment(frag);
8254
8255
  return;
8255
8256
  }
8256
8257
  frag.stats.chunkCount++;
8257
8258
  this._handleFragmentLoadProgress(data);
8258
8259
  };
8259
- this._doFragLoad(frag, level, targetBufferTime, progressCallback).then(data => {
8260
+ this._doFragLoad(fragment, level, targetBufferTime, progressCallback).then(data => {
8260
8261
  if (!data) {
8261
8262
  // if we're here we probably needed to backtrack or are waiting for more parts
8262
8263
  return;
8263
8264
  }
8264
8265
  const state = this.state;
8266
+ const frag = data.frag;
8265
8267
  if (this.fragContextChanged(frag)) {
8266
8268
  if (state === State.FRAG_LOADING || !this.fragCurrent && state === State.PARSING) {
8267
8269
  this.fragmentTracker.removeFragment(frag);
@@ -8281,7 +8283,7 @@ class BaseStreamController extends TaskLoop {
8281
8283
  return;
8282
8284
  }
8283
8285
  this.warn(`Frag error: ${(reason == null ? void 0 : reason.message) || reason}`);
8284
- this.resetFragmentLoading(frag);
8286
+ this.resetFragmentLoading(fragment);
8285
8287
  });
8286
8288
  }
8287
8289
  clearTrackerIfNeeded(frag) {
@@ -8345,9 +8347,10 @@ class BaseStreamController extends TaskLoop {
8345
8347
  };
8346
8348
  this.hls.trigger(Events.BUFFER_FLUSHING, flushScope);
8347
8349
  }
8348
- _loadInitSegment(frag, level) {
8349
- this._doFragLoad(frag, level).then(data => {
8350
- if (!data || this.fragContextChanged(frag) || !this.levels) {
8350
+ _loadInitSegment(fragment, level) {
8351
+ this._doFragLoad(fragment, level).then(data => {
8352
+ const frag = data == null ? void 0 : data.frag;
8353
+ if (!frag || this.fragContextChanged(frag) || !this.levels) {
8351
8354
  throw new Error('init load aborted');
8352
8355
  }
8353
8356
  return data;
@@ -8356,6 +8359,7 @@ class BaseStreamController extends TaskLoop {
8356
8359
  hls
8357
8360
  } = this;
8358
8361
  const {
8362
+ frag,
8359
8363
  payload
8360
8364
  } = data;
8361
8365
  const decryptData = frag.decryptdata;
@@ -8394,7 +8398,7 @@ class BaseStreamController extends TaskLoop {
8394
8398
  return;
8395
8399
  }
8396
8400
  this.warn(reason);
8397
- this.resetFragmentLoading(frag);
8401
+ this.resetFragmentLoading(fragment);
8398
8402
  });
8399
8403
  }
8400
8404
  completeInitSegmentLoad(data) {
@@ -8421,7 +8425,7 @@ class BaseStreamController extends TaskLoop {
8421
8425
  }
8422
8426
  fragBufferedComplete(frag, part) {
8423
8427
  const media = this.mediaBuffer ? this.mediaBuffer : this.media;
8424
- this.log(`Buffered ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.fragInfo(frag)} > buffer:${media ? TimeRanges.toString(BufferHelper.getBuffered(media)) : '(detached)'})`);
8428
+ this.log(`Buffered ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.fragInfo(frag, false, part)} > buffer:${media ? TimeRanges.toString(BufferHelper.getBuffered(media)) : '(detached)'})`);
8425
8429
  if (frag.sn !== 'initSegment') {
8426
8430
  var _this$levels;
8427
8431
  if (frag.type !== PlaylistLevelType.SUBTITLE) {
@@ -8508,7 +8512,8 @@ class BaseStreamController extends TaskLoop {
8508
8512
  const partIndex = this.getNextPart(partList, frag, targetBufferTime);
8509
8513
  if (partIndex > -1) {
8510
8514
  const part = partList[partIndex];
8511
- this.log(`Loading part sn: ${frag.sn} p: ${part.index} cc: ${frag.cc} of playlist [${details.startSN}-${details.endSN}] parts [0-${partIndex}-${partList.length - 1}] ${this.playlistLabel()}: ${frag.level}, target: ${parseFloat(targetBufferTime.toFixed(3))}`);
8515
+ frag = this.fragCurrent = part.fragment;
8516
+ this.log(`Loading ${frag.type} sn: ${frag.sn} part: ${part.index} (${partIndex}/${partList.length - 1}) of ${this.fragInfo(frag, false, part)}) cc: ${frag.cc} [${details.startSN}-${details.endSN}], target: ${parseFloat(targetBufferTime.toFixed(3))}`);
8512
8517
  this.nextLoadPosition = part.start + part.duration;
8513
8518
  this.state = State.FRAG_LOADING;
8514
8519
  let _result;
@@ -9305,7 +9310,7 @@ class BaseStreamController extends TaskLoop {
9305
9310
  // For this error fallthrough. Marking parsed will allow advancing to next fragment.
9306
9311
  }
9307
9312
  this.state = State.PARSED;
9308
- this.log(`Parsed ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.fragInfo(frag)})`);
9313
+ this.log(`Parsed ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.fragInfo(frag, false, part)})`);
9309
9314
  this.hls.trigger(Events.FRAG_PARSED, {
9310
9315
  frag,
9311
9316
  part
@@ -9314,9 +9319,9 @@ class BaseStreamController extends TaskLoop {
9314
9319
  playlistLabel() {
9315
9320
  return this.playlistType === PlaylistLevelType.MAIN ? 'level' : 'track';
9316
9321
  }
9317
- fragInfo(frag, pts = true) {
9322
+ fragInfo(frag, pts = true, part) {
9318
9323
  var _ref, _ref2;
9319
- return `${this.playlistLabel()} ${frag.level} (frag:[${((_ref = pts ? frag.startPTS : frag.start) != null ? _ref : NaN).toFixed(3)}-${((_ref2 = pts ? frag.endPTS : frag.end) != null ? _ref2 : NaN).toFixed(3)}]`;
9324
+ return `${this.playlistLabel()} ${frag.level} (${part ? 'part' : 'frag'}:[${((_ref = pts && !part ? frag.startPTS : (part || frag).start) != null ? _ref : NaN).toFixed(3)}-${((_ref2 = pts && !part ? frag.endPTS : (part || frag).end) != null ? _ref2 : NaN).toFixed(3)}]${part && frag.type === 'main' ? 'INDEPENDENT=' + (part.independent ? 'YES' : 'NO') : ''}`;
9320
9325
  }
9321
9326
  resetTransmuxer() {
9322
9327
  var _this$transmuxer2;
@@ -9729,7 +9734,7 @@ var eventemitter3 = {exports: {}};
9729
9734
  var eventemitter3Exports = eventemitter3.exports;
9730
9735
  var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
9731
9736
 
9732
- const version = "1.6.0-beta.1.0.canary.10749";
9737
+ const version = "1.6.0-beta.1.0.canary.10751";
9733
9738
 
9734
9739
  // ensure the worker ends up in the bundle
9735
9740
  // If the worker should not be included this gets aliased to empty.js
@@ -15468,7 +15473,7 @@ class Transmuxer {
15468
15473
  accurateTimeOffset,
15469
15474
  timeOffset
15470
15475
  } = this.currentTransmuxState;
15471
- this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${chunkMeta.sn}${chunkMeta.part > -1 ? ' p: ' + chunkMeta.part : ''} of ${this.id === PlaylistLevelType.MAIN ? 'level' : 'track'} ${chunkMeta.level}`);
15476
+ this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${chunkMeta.sn}${chunkMeta.part > -1 ? ' part: ' + chunkMeta.part : ''} of ${this.id === PlaylistLevelType.MAIN ? 'level' : 'track'} ${chunkMeta.level}`);
15472
15477
  const remuxResult = this.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, true, this.id);
15473
15478
  transmuxResults.push({
15474
15479
  remuxResult,
@@ -15853,7 +15858,7 @@ class TransmuxerInterface {
15853
15858
  const initSegmentChange = !(lastFrag && ((_frag$initSegment = frag.initSegment) == null ? void 0 : _frag$initSegment.url) === ((_lastFrag$initSegment = lastFrag.initSegment) == null ? void 0 : _lastFrag$initSegment.url));
15854
15859
  const state = new TransmuxState(discontinuity, contiguous, accurateTimeOffset, trackSwitch, timeOffset, initSegmentChange);
15855
15860
  if (!contiguous || discontinuity || initSegmentChange) {
15856
- this.hls.logger.log(`[transmuxer-interface, ${frag.type}]: Starting new transmux session for sn: ${chunkMeta.sn} p: ${chunkMeta.part} level: ${chunkMeta.level} id: ${chunkMeta.id}
15861
+ this.hls.logger.log(`[transmuxer-interface]: Starting new transmux session for ${frag.type} sn: ${chunkMeta.sn}${chunkMeta.part > -1 ? ' part: ' + chunkMeta.part : ''} ${this.id === PlaylistLevelType.MAIN ? 'level' : 'track'}: ${chunkMeta.level} id: ${chunkMeta.id}
15857
15862
  discontinuity: ${discontinuity}
15858
15863
  trackSwitch: ${trackSwitch}
15859
15864
  contiguous: ${contiguous}
@@ -19148,7 +19153,7 @@ class CapLevelController {
19148
19153
  /* no-op */
19149
19154
  }
19150
19155
  }
19151
- return pixelRatio;
19156
+ return Math.min(pixelRatio, this.hls.config.maxDevicePixelRatio);
19152
19157
  }
19153
19158
  isLevelAllowed(level) {
19154
19159
  const restrictedLevels = this.restrictedLevels;
@@ -29083,6 +29088,8 @@ const hlsDefaultConfig = _objectSpread2(_objectSpread2({
29083
29088
  // used by cap-level-controller
29084
29089
  ignoreDevicePixelRatio: false,
29085
29090
  // used by cap-level-controller
29091
+ maxDevicePixelRatio: Number.POSITIVE_INFINITY,
29092
+ // used by cap-level-controller
29086
29093
  preferManagedMediaSource: true,
29087
29094
  initialLiveManifestSize: 1,
29088
29095
  // used by stream-controller
@@ -31847,13 +31854,14 @@ class StreamController extends BaseStreamController {
31847
31854
  }
31848
31855
  return audioCodec;
31849
31856
  }
31850
- _loadBitrateTestFrag(frag, level) {
31851
- frag.bitrateTest = true;
31852
- this._doFragLoad(frag, level).then(data => {
31857
+ _loadBitrateTestFrag(fragment, level) {
31858
+ fragment.bitrateTest = true;
31859
+ this._doFragLoad(fragment, level).then(data => {
31853
31860
  const {
31854
31861
  hls
31855
31862
  } = this;
31856
- if (!data || this.fragContextChanged(frag)) {
31863
+ const frag = data == null ? void 0 : data.frag;
31864
+ if (!frag || this.fragContextChanged(frag)) {
31857
31865
  return;
31858
31866
  }
31859
31867
  level.fragmentError = 0;