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.d.mts +2 -1
- package/dist/hls.d.ts +2 -1
- package/dist/hls.js +31 -23
- package/dist/hls.js.d.ts +2 -1
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +31 -23
- package/dist/hls.light.js.map +1 -1
- package/dist/hls.light.min.js +1 -1
- package/dist/hls.light.min.js.map +1 -1
- package/dist/hls.light.mjs +30 -22
- package/dist/hls.light.mjs.map +1 -1
- package/dist/hls.min.js +1 -1
- package/dist/hls.min.js.map +1 -1
- package/dist/hls.mjs +30 -22
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/dist/hls.worker.js.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +2 -0
- package/src/controller/base-stream-controller.ts +29 -21
- package/src/controller/cap-level-controller.ts +1 -1
- package/src/controller/stream-controller.ts +5 -4
- package/src/demux/transmuxer-interface.ts +4 -2
- package/src/demux/transmuxer.ts +1 -1
package/dist/hls.light.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.
|
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();
|
@@ -7710,22 +7710,24 @@ class BaseStreamController extends TaskLoop {
|
|
7710
7710
|
this.startFragRequested = true;
|
7711
7711
|
this._loadFragForPlayback(frag, level, targetBufferTime);
|
7712
7712
|
}
|
7713
|
-
_loadFragForPlayback(
|
7713
|
+
_loadFragForPlayback(fragment, level, targetBufferTime) {
|
7714
7714
|
const progressCallback = data => {
|
7715
|
+
const frag = data.frag;
|
7715
7716
|
if (this.fragContextChanged(frag)) {
|
7716
|
-
this.warn(
|
7717
|
+
this.warn(`${frag.type} sn: ${frag.sn}${data.part ? ' part: ' + data.part.index : ''} of ${this.fragInfo(frag, false, data.part)}) was dropped during download.`);
|
7717
7718
|
this.fragmentTracker.removeFragment(frag);
|
7718
7719
|
return;
|
7719
7720
|
}
|
7720
7721
|
frag.stats.chunkCount++;
|
7721
7722
|
this._handleFragmentLoadProgress(data);
|
7722
7723
|
};
|
7723
|
-
this._doFragLoad(
|
7724
|
+
this._doFragLoad(fragment, level, targetBufferTime, progressCallback).then(data => {
|
7724
7725
|
if (!data) {
|
7725
7726
|
// if we're here we probably needed to backtrack or are waiting for more parts
|
7726
7727
|
return;
|
7727
7728
|
}
|
7728
7729
|
const state = this.state;
|
7730
|
+
const frag = data.frag;
|
7729
7731
|
if (this.fragContextChanged(frag)) {
|
7730
7732
|
if (state === State.FRAG_LOADING || !this.fragCurrent && state === State.PARSING) {
|
7731
7733
|
this.fragmentTracker.removeFragment(frag);
|
@@ -7745,7 +7747,7 @@ class BaseStreamController extends TaskLoop {
|
|
7745
7747
|
return;
|
7746
7748
|
}
|
7747
7749
|
this.warn(`Frag error: ${(reason == null ? void 0 : reason.message) || reason}`);
|
7748
|
-
this.resetFragmentLoading(
|
7750
|
+
this.resetFragmentLoading(fragment);
|
7749
7751
|
});
|
7750
7752
|
}
|
7751
7753
|
clearTrackerIfNeeded(frag) {
|
@@ -7809,9 +7811,10 @@ class BaseStreamController extends TaskLoop {
|
|
7809
7811
|
};
|
7810
7812
|
this.hls.trigger(Events.BUFFER_FLUSHING, flushScope);
|
7811
7813
|
}
|
7812
|
-
_loadInitSegment(
|
7813
|
-
this._doFragLoad(
|
7814
|
-
|
7814
|
+
_loadInitSegment(fragment, level) {
|
7815
|
+
this._doFragLoad(fragment, level).then(data => {
|
7816
|
+
const frag = data == null ? void 0 : data.frag;
|
7817
|
+
if (!frag || this.fragContextChanged(frag) || !this.levels) {
|
7815
7818
|
throw new Error('init load aborted');
|
7816
7819
|
}
|
7817
7820
|
return data;
|
@@ -7820,6 +7823,7 @@ class BaseStreamController extends TaskLoop {
|
|
7820
7823
|
hls
|
7821
7824
|
} = this;
|
7822
7825
|
const {
|
7826
|
+
frag,
|
7823
7827
|
payload
|
7824
7828
|
} = data;
|
7825
7829
|
const decryptData = frag.decryptdata;
|
@@ -7858,7 +7862,7 @@ class BaseStreamController extends TaskLoop {
|
|
7858
7862
|
return;
|
7859
7863
|
}
|
7860
7864
|
this.warn(reason);
|
7861
|
-
this.resetFragmentLoading(
|
7865
|
+
this.resetFragmentLoading(fragment);
|
7862
7866
|
});
|
7863
7867
|
}
|
7864
7868
|
completeInitSegmentLoad(data) {
|
@@ -7885,7 +7889,7 @@ class BaseStreamController extends TaskLoop {
|
|
7885
7889
|
}
|
7886
7890
|
fragBufferedComplete(frag, part) {
|
7887
7891
|
const media = this.mediaBuffer ? this.mediaBuffer : this.media;
|
7888
|
-
this.log(`Buffered ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.fragInfo(frag)} > buffer:${media ? TimeRanges.toString(BufferHelper.getBuffered(media)) : '(detached)'})`);
|
7892
|
+
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)'})`);
|
7889
7893
|
if (frag.sn !== 'initSegment') {
|
7890
7894
|
var _this$levels;
|
7891
7895
|
if (frag.type !== PlaylistLevelType.SUBTITLE) {
|
@@ -7972,7 +7976,8 @@ class BaseStreamController extends TaskLoop {
|
|
7972
7976
|
const partIndex = this.getNextPart(partList, frag, targetBufferTime);
|
7973
7977
|
if (partIndex > -1) {
|
7974
7978
|
const part = partList[partIndex];
|
7975
|
-
|
7979
|
+
frag = this.fragCurrent = part.fragment;
|
7980
|
+
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))}`);
|
7976
7981
|
this.nextLoadPosition = part.start + part.duration;
|
7977
7982
|
this.state = State.FRAG_LOADING;
|
7978
7983
|
let _result;
|
@@ -8769,7 +8774,7 @@ class BaseStreamController extends TaskLoop {
|
|
8769
8774
|
// For this error fallthrough. Marking parsed will allow advancing to next fragment.
|
8770
8775
|
}
|
8771
8776
|
this.state = State.PARSED;
|
8772
|
-
this.log(`Parsed ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.fragInfo(frag)})`);
|
8777
|
+
this.log(`Parsed ${frag.type} sn: ${frag.sn}${part ? ' part: ' + part.index : ''} of ${this.fragInfo(frag, false, part)})`);
|
8773
8778
|
this.hls.trigger(Events.FRAG_PARSED, {
|
8774
8779
|
frag,
|
8775
8780
|
part
|
@@ -8778,9 +8783,9 @@ class BaseStreamController extends TaskLoop {
|
|
8778
8783
|
playlistLabel() {
|
8779
8784
|
return this.playlistType === PlaylistLevelType.MAIN ? 'level' : 'track';
|
8780
8785
|
}
|
8781
|
-
fragInfo(frag, pts = true) {
|
8786
|
+
fragInfo(frag, pts = true, part) {
|
8782
8787
|
var _ref, _ref2;
|
8783
|
-
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)}]`;
|
8788
|
+
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') : ''}`;
|
8784
8789
|
}
|
8785
8790
|
resetTransmuxer() {
|
8786
8791
|
var _this$transmuxer2;
|
@@ -10616,7 +10621,7 @@ class CapLevelController {
|
|
10616
10621
|
/* no-op */
|
10617
10622
|
}
|
10618
10623
|
}
|
10619
|
-
return pixelRatio;
|
10624
|
+
return Math.min(pixelRatio, this.hls.config.maxDevicePixelRatio);
|
10620
10625
|
}
|
10621
10626
|
isLevelAllowed(level) {
|
10622
10627
|
const restrictedLevels = this.restrictedLevels;
|
@@ -16408,7 +16413,7 @@ class Transmuxer {
|
|
16408
16413
|
accurateTimeOffset,
|
16409
16414
|
timeOffset
|
16410
16415
|
} = this.currentTransmuxState;
|
16411
|
-
this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${chunkMeta.sn}${chunkMeta.part > -1 ? '
|
16416
|
+
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}`);
|
16412
16417
|
const remuxResult = this.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, accurateTimeOffset, true, this.id);
|
16413
16418
|
transmuxResults.push({
|
16414
16419
|
remuxResult,
|
@@ -17095,6 +17100,8 @@ const hlsDefaultConfig = _objectSpread2(_objectSpread2({
|
|
17095
17100
|
// used by cap-level-controller
|
17096
17101
|
ignoreDevicePixelRatio: false,
|
17097
17102
|
// used by cap-level-controller
|
17103
|
+
maxDevicePixelRatio: Number.POSITIVE_INFINITY,
|
17104
|
+
// used by cap-level-controller
|
17098
17105
|
preferManagedMediaSource: true,
|
17099
17106
|
initialLiveManifestSize: 1,
|
17100
17107
|
// used by stream-controller
|
@@ -19036,7 +19043,7 @@ class GapController extends Logger {
|
|
19036
19043
|
}
|
19037
19044
|
}
|
19038
19045
|
|
19039
|
-
const version = "1.6.0-beta.1.0.canary.
|
19046
|
+
const version = "1.6.0-beta.1.0.canary.10751";
|
19040
19047
|
|
19041
19048
|
// ensure the worker ends up in the bundle
|
19042
19049
|
// If the worker should not be included this gets aliased to empty.js
|
@@ -19312,7 +19319,7 @@ class TransmuxerInterface {
|
|
19312
19319
|
const initSegmentChange = !(lastFrag && ((_frag$initSegment = frag.initSegment) == null ? void 0 : _frag$initSegment.url) === ((_lastFrag$initSegment = lastFrag.initSegment) == null ? void 0 : _lastFrag$initSegment.url));
|
19313
19320
|
const state = new TransmuxState(discontinuity, contiguous, accurateTimeOffset, trackSwitch, timeOffset, initSegmentChange);
|
19314
19321
|
if (!contiguous || discontinuity || initSegmentChange) {
|
19315
|
-
this.hls.logger.log(`[transmuxer-interface
|
19322
|
+
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}
|
19316
19323
|
discontinuity: ${discontinuity}
|
19317
19324
|
trackSwitch: ${trackSwitch}
|
19318
19325
|
contiguous: ${contiguous}
|
@@ -20320,13 +20327,14 @@ class StreamController extends BaseStreamController {
|
|
20320
20327
|
}
|
20321
20328
|
return audioCodec;
|
20322
20329
|
}
|
20323
|
-
_loadBitrateTestFrag(
|
20324
|
-
|
20325
|
-
this._doFragLoad(
|
20330
|
+
_loadBitrateTestFrag(fragment, level) {
|
20331
|
+
fragment.bitrateTest = true;
|
20332
|
+
this._doFragLoad(fragment, level).then(data => {
|
20326
20333
|
const {
|
20327
20334
|
hls
|
20328
20335
|
} = this;
|
20329
|
-
|
20336
|
+
const frag = data == null ? void 0 : data.frag;
|
20337
|
+
if (!frag || this.fragContextChanged(frag)) {
|
20330
20338
|
return;
|
20331
20339
|
}
|
20332
20340
|
level.fragmentError = 0;
|