hls.js 1.6.0-beta.1.0.canary.10764 → 1.6.0-beta.1.0.canary.10765
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 +5 -0
- package/dist/hls.d.ts +5 -0
- package/dist/hls.js +50 -17
- package/dist/hls.js.d.ts +5 -0
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +40 -14
- 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 +38 -14
- 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 +48 -17
- 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/controller/abr-controller.ts +6 -2
- package/src/controller/audio-track-controller.ts +1 -0
- package/src/controller/level-controller.ts +3 -2
- package/src/controller/stream-controller.ts +2 -2
- package/src/controller/subtitle-track-controller.ts +1 -0
- package/src/loader/playlist-loader.ts +38 -8
- package/src/types/events.ts +4 -0
- package/src/types/loader.ts +4 -1
package/dist/hls.d.mts
CHANGED
@@ -2606,6 +2606,7 @@ export declare interface LevelLoadedData {
|
|
2606
2606
|
details: LevelDetails;
|
2607
2607
|
id: number;
|
2608
2608
|
level: number;
|
2609
|
+
levelInfo: Level;
|
2609
2610
|
networkDetails: any;
|
2610
2611
|
stats: LoaderStats;
|
2611
2612
|
deliveryDirectives: HlsUrlParameters | null;
|
@@ -2614,6 +2615,7 @@ export declare interface LevelLoadedData {
|
|
2614
2615
|
export declare interface LevelLoadingData {
|
2615
2616
|
id: number;
|
2616
2617
|
level: number;
|
2618
|
+
levelInfo: Level;
|
2617
2619
|
pathwayId: string | undefined;
|
2618
2620
|
url: string;
|
2619
2621
|
deliveryDirectives: HlsUrlParameters | null;
|
@@ -3152,6 +3154,7 @@ export declare interface PlaylistLoaderContext extends LoaderContext {
|
|
3152
3154
|
pathwayId?: string;
|
3153
3155
|
levelDetails?: LevelDetails;
|
3154
3156
|
deliveryDirectives: HlsUrlParameters | null;
|
3157
|
+
levelOrTrack: Level | MediaPlaylist | null;
|
3155
3158
|
}
|
3156
3159
|
|
3157
3160
|
export declare type RationalTimestamp = {
|
@@ -3654,11 +3657,13 @@ export declare interface TrackLoadedData {
|
|
3654
3657
|
networkDetails: any;
|
3655
3658
|
stats: LoaderStats;
|
3656
3659
|
deliveryDirectives: HlsUrlParameters | null;
|
3660
|
+
track: MediaPlaylist;
|
3657
3661
|
}
|
3658
3662
|
|
3659
3663
|
export declare interface TrackLoadingData {
|
3660
3664
|
id: number;
|
3661
3665
|
groupId: string;
|
3666
|
+
track: MediaPlaylist;
|
3662
3667
|
url: string;
|
3663
3668
|
deliveryDirectives: HlsUrlParameters | null;
|
3664
3669
|
}
|
package/dist/hls.d.ts
CHANGED
@@ -2606,6 +2606,7 @@ export declare interface LevelLoadedData {
|
|
2606
2606
|
details: LevelDetails;
|
2607
2607
|
id: number;
|
2608
2608
|
level: number;
|
2609
|
+
levelInfo: Level;
|
2609
2610
|
networkDetails: any;
|
2610
2611
|
stats: LoaderStats;
|
2611
2612
|
deliveryDirectives: HlsUrlParameters | null;
|
@@ -2614,6 +2615,7 @@ export declare interface LevelLoadedData {
|
|
2614
2615
|
export declare interface LevelLoadingData {
|
2615
2616
|
id: number;
|
2616
2617
|
level: number;
|
2618
|
+
levelInfo: Level;
|
2617
2619
|
pathwayId: string | undefined;
|
2618
2620
|
url: string;
|
2619
2621
|
deliveryDirectives: HlsUrlParameters | null;
|
@@ -3152,6 +3154,7 @@ export declare interface PlaylistLoaderContext extends LoaderContext {
|
|
3152
3154
|
pathwayId?: string;
|
3153
3155
|
levelDetails?: LevelDetails;
|
3154
3156
|
deliveryDirectives: HlsUrlParameters | null;
|
3157
|
+
levelOrTrack: Level | MediaPlaylist | null;
|
3155
3158
|
}
|
3156
3159
|
|
3157
3160
|
export declare type RationalTimestamp = {
|
@@ -3654,11 +3657,13 @@ export declare interface TrackLoadedData {
|
|
3654
3657
|
networkDetails: any;
|
3655
3658
|
stats: LoaderStats;
|
3656
3659
|
deliveryDirectives: HlsUrlParameters | null;
|
3660
|
+
track: MediaPlaylist;
|
3657
3661
|
}
|
3658
3662
|
|
3659
3663
|
export declare interface TrackLoadingData {
|
3660
3664
|
id: number;
|
3661
3665
|
groupId: string;
|
3666
|
+
track: MediaPlaylist;
|
3662
3667
|
url: string;
|
3663
3668
|
deliveryDirectives: HlsUrlParameters | null;
|
3664
3669
|
}
|
package/dist/hls.js
CHANGED
@@ -1057,7 +1057,7 @@
|
|
1057
1057
|
// Some browsers don't allow to use bind on console object anyway
|
1058
1058
|
// fallback to default if needed
|
1059
1059
|
try {
|
1060
|
-
newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.1.0.canary.
|
1060
|
+
newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.1.0.canary.10765");
|
1061
1061
|
} catch (e) {
|
1062
1062
|
/* log fn threw an exception. All logger methods are no-ops. */
|
1063
1063
|
return createLogger();
|
@@ -2546,8 +2546,10 @@
|
|
2546
2546
|
return 0; // continue
|
2547
2547
|
}
|
2548
2548
|
if (config.useMediaCapabilities && !levelInfo.supportedResult && !levelInfo.supportedPromise) {
|
2549
|
+
var _levelInfo$videoCodec;
|
2549
2550
|
var mediaCapabilities = navigator.mediaCapabilities;
|
2550
|
-
if (typeof (mediaCapabilities == null ? void 0 : mediaCapabilities.decodingInfo) === 'function' && requiresMediaCapabilitiesDecodingInfo(levelInfo, audioTracksByGroup, currentVideoRange, currentFrameRate, currentBw, audioPreference))
|
2551
|
+
if (typeof (mediaCapabilities == null ? void 0 : mediaCapabilities.decodingInfo) === 'function' && (requiresMediaCapabilitiesDecodingInfo(levelInfo, audioTracksByGroup, currentVideoRange, currentFrameRate, currentBw, audioPreference) || ((_levelInfo$videoCodec = levelInfo.videoCodec) == null ? void 0 : _levelInfo$videoCodec.substring(0, 4)) === 'hvc1') // Force media capabilities check for HEVC to avoid failure on Windows
|
2552
|
+
) {
|
2551
2553
|
levelInfo.supportedPromise = getMediaDecodingInfoPromise(levelInfo, audioTracksByGroup, mediaCapabilities);
|
2552
2554
|
levelInfo.supportedPromise.then(function (decodingInfo) {
|
2553
2555
|
if (!_this3.hls) {
|
@@ -2563,6 +2565,9 @@
|
|
2563
2565
|
if (index > -1 && levels.length > 1) {
|
2564
2566
|
_this3.log("Removing unsupported level " + index);
|
2565
2567
|
_this3.hls.removeLevel(index);
|
2568
|
+
if (_this3.hls.loadLevel === -1) {
|
2569
|
+
_this3.hls.nextLoadLevel = 0;
|
2570
|
+
}
|
2566
2571
|
}
|
2567
2572
|
}
|
2568
2573
|
});
|
@@ -16217,7 +16222,7 @@
|
|
16217
16222
|
return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
|
16218
16223
|
}
|
16219
16224
|
|
16220
|
-
var version = "1.6.0-beta.1.0.canary.
|
16225
|
+
var version = "1.6.0-beta.1.0.canary.10765";
|
16221
16226
|
|
16222
16227
|
// ensure the worker ends up in the bundle
|
16223
16228
|
// If the worker should not be included this gets aliased to empty.js
|
@@ -17925,7 +17930,8 @@
|
|
17925
17930
|
url: url,
|
17926
17931
|
id: id,
|
17927
17932
|
groupId: groupId,
|
17928
|
-
deliveryDirectives: hlsUrlParameters || null
|
17933
|
+
deliveryDirectives: hlsUrlParameters || null,
|
17934
|
+
track: audioTrack
|
17929
17935
|
});
|
17930
17936
|
}
|
17931
17937
|
};
|
@@ -26290,7 +26296,8 @@
|
|
26290
26296
|
url: url,
|
26291
26297
|
id: id,
|
26292
26298
|
groupId: groupId,
|
26293
|
-
deliveryDirectives: hlsUrlParameters || null
|
26299
|
+
deliveryDirectives: hlsUrlParameters || null,
|
26300
|
+
track: currentTrack
|
26294
26301
|
});
|
26295
26302
|
}
|
26296
26303
|
}
|
@@ -31264,7 +31271,7 @@
|
|
31264
31271
|
var _data$deliveryDirecti2;
|
31265
31272
|
var level = data.level,
|
31266
31273
|
details = data.details;
|
31267
|
-
var curLevel =
|
31274
|
+
var curLevel = data.levelInfo;
|
31268
31275
|
if (!curLevel) {
|
31269
31276
|
var _data$deliveryDirecti;
|
31270
31277
|
this.warn("Invalid level index " + level);
|
@@ -31275,7 +31282,7 @@
|
|
31275
31282
|
}
|
31276
31283
|
|
31277
31284
|
// only process level loaded events matching with expected level
|
31278
|
-
if (
|
31285
|
+
if (curLevel === this.currentLevel) {
|
31279
31286
|
// reset level load error counter on successful level loaded only if there is no issues with fragments
|
31280
31287
|
if (curLevel.fragmentError === 0) {
|
31281
31288
|
curLevel.loadError = 0;
|
@@ -31313,6 +31320,7 @@
|
|
31313
31320
|
this.hls.trigger(Events.LEVEL_LOADING, {
|
31314
31321
|
url: url,
|
31315
31322
|
level: currentLevelIndex,
|
31323
|
+
levelInfo: currentLevel,
|
31316
31324
|
pathwayId: currentLevel.attrs['PATHWAY-ID'],
|
31317
31325
|
id: 0,
|
31318
31326
|
// Deprecated Level urlId
|
@@ -32373,7 +32381,7 @@
|
|
32373
32381
|
if (!levels || this.state !== State.IDLE) {
|
32374
32382
|
return;
|
32375
32383
|
}
|
32376
|
-
var level =
|
32384
|
+
var level = data.levelInfo;
|
32377
32385
|
if (!level.details || level.details.live && this.levelLastLoaded !== level || this.waitForCdnTuneIn(level.details)) {
|
32378
32386
|
this.state = State.WAITING_LEVEL;
|
32379
32387
|
}
|
@@ -32390,7 +32398,7 @@
|
|
32390
32398
|
return;
|
32391
32399
|
}
|
32392
32400
|
this.log("Level " + newLevelId + " loaded [" + newDetails.startSN + "," + newDetails.endSN + "]" + (newDetails.lastPartSn ? "[part-" + newDetails.lastPartSn + "-" + newDetails.lastPartIndex + "]" : '') + ", cc [" + newDetails.startCC + ", " + newDetails.endCC + "] duration:" + duration);
|
32393
|
-
var curLevel =
|
32401
|
+
var curLevel = data.levelInfo;
|
32394
32402
|
var fragCurrent = this.fragCurrent;
|
32395
32403
|
if (fragCurrent && (this.state === State.FRAG_LOADING || this.state === State.FRAG_LOADING_WAITING_RETRY)) {
|
32396
32404
|
if (fragCurrent.level !== data.level && fragCurrent.loader) {
|
@@ -33452,6 +33460,7 @@
|
|
33452
33460
|
hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);
|
33453
33461
|
hls.on(Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);
|
33454
33462
|
hls.on(Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);
|
33463
|
+
hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);
|
33455
33464
|
};
|
33456
33465
|
_proto.unregisterListeners = function unregisterListeners() {
|
33457
33466
|
var hls = this.hls;
|
@@ -33459,6 +33468,7 @@
|
|
33459
33468
|
hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);
|
33460
33469
|
hls.off(Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);
|
33461
33470
|
hls.off(Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);
|
33471
|
+
hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);
|
33462
33472
|
}
|
33463
33473
|
|
33464
33474
|
/**
|
@@ -33508,7 +33518,8 @@
|
|
33508
33518
|
responseType: 'text',
|
33509
33519
|
type: PlaylistContextType.MANIFEST,
|
33510
33520
|
url: url,
|
33511
|
-
deliveryDirectives: null
|
33521
|
+
deliveryDirectives: null,
|
33522
|
+
levelOrTrack: null
|
33512
33523
|
});
|
33513
33524
|
};
|
33514
33525
|
_proto.onLevelLoading = function onLevelLoading(event, data) {
|
@@ -33516,7 +33527,8 @@
|
|
33516
33527
|
level = data.level,
|
33517
33528
|
pathwayId = data.pathwayId,
|
33518
33529
|
url = data.url,
|
33519
|
-
deliveryDirectives = data.deliveryDirectives
|
33530
|
+
deliveryDirectives = data.deliveryDirectives,
|
33531
|
+
levelInfo = data.levelInfo;
|
33520
33532
|
this.load({
|
33521
33533
|
id: id,
|
33522
33534
|
level: level,
|
@@ -33524,14 +33536,16 @@
|
|
33524
33536
|
responseType: 'text',
|
33525
33537
|
type: PlaylistContextType.LEVEL,
|
33526
33538
|
url: url,
|
33527
|
-
deliveryDirectives: deliveryDirectives
|
33539
|
+
deliveryDirectives: deliveryDirectives,
|
33540
|
+
levelOrTrack: levelInfo
|
33528
33541
|
});
|
33529
33542
|
};
|
33530
33543
|
_proto.onAudioTrackLoading = function onAudioTrackLoading(event, data) {
|
33531
33544
|
var id = data.id,
|
33532
33545
|
groupId = data.groupId,
|
33533
33546
|
url = data.url,
|
33534
|
-
deliveryDirectives = data.deliveryDirectives
|
33547
|
+
deliveryDirectives = data.deliveryDirectives,
|
33548
|
+
track = data.track;
|
33535
33549
|
this.load({
|
33536
33550
|
id: id,
|
33537
33551
|
groupId: groupId,
|
@@ -33539,14 +33553,16 @@
|
|
33539
33553
|
responseType: 'text',
|
33540
33554
|
type: PlaylistContextType.AUDIO_TRACK,
|
33541
33555
|
url: url,
|
33542
|
-
deliveryDirectives: deliveryDirectives
|
33556
|
+
deliveryDirectives: deliveryDirectives,
|
33557
|
+
levelOrTrack: track
|
33543
33558
|
});
|
33544
33559
|
};
|
33545
33560
|
_proto.onSubtitleTrackLoading = function onSubtitleTrackLoading(event, data) {
|
33546
33561
|
var id = data.id,
|
33547
33562
|
groupId = data.groupId,
|
33548
33563
|
url = data.url,
|
33549
|
-
deliveryDirectives = data.deliveryDirectives
|
33564
|
+
deliveryDirectives = data.deliveryDirectives,
|
33565
|
+
track = data.track;
|
33550
33566
|
this.load({
|
33551
33567
|
id: id,
|
33552
33568
|
groupId: groupId,
|
@@ -33554,9 +33570,23 @@
|
|
33554
33570
|
responseType: 'text',
|
33555
33571
|
type: PlaylistContextType.SUBTITLE_TRACK,
|
33556
33572
|
url: url,
|
33557
|
-
deliveryDirectives: deliveryDirectives
|
33573
|
+
deliveryDirectives: deliveryDirectives,
|
33574
|
+
levelOrTrack: track
|
33558
33575
|
});
|
33559
33576
|
};
|
33577
|
+
_proto.onLevelsUpdated = function onLevelsUpdated(event, data) {
|
33578
|
+
// abort and delete loader of removed levels
|
33579
|
+
var loader = this.loaders[PlaylistContextType.LEVEL];
|
33580
|
+
if (loader) {
|
33581
|
+
var context = loader.context;
|
33582
|
+
if (context && !data.levels.some(function (lvl) {
|
33583
|
+
return lvl === context.levelOrTrack;
|
33584
|
+
})) {
|
33585
|
+
loader.abort();
|
33586
|
+
delete this.loaders[PlaylistContextType.LEVEL];
|
33587
|
+
}
|
33588
|
+
}
|
33589
|
+
};
|
33560
33590
|
_proto.load = function load(context) {
|
33561
33591
|
var _context$deliveryDire,
|
33562
33592
|
_this = this;
|
@@ -33568,7 +33598,7 @@
|
|
33568
33598
|
var loader = this.getInternalLoader(context);
|
33569
33599
|
if (loader) {
|
33570
33600
|
var loaderContext = loader.context;
|
33571
|
-
if (loaderContext && loaderContext.url === context.url && loaderContext.
|
33601
|
+
if (loaderContext && loaderContext.url === context.url && loaderContext.levelOrTrack === context.levelOrTrack) {
|
33572
33602
|
// same URL can't overlap
|
33573
33603
|
this.hls.logger.trace('[playlist-loader]: playlist request ongoing');
|
33574
33604
|
return;
|
@@ -33889,6 +33919,7 @@
|
|
33889
33919
|
case PlaylistContextType.LEVEL:
|
33890
33920
|
hls.trigger(Events.LEVEL_LOADED, {
|
33891
33921
|
details: levelDetails,
|
33922
|
+
levelInfo: context.levelOrTrack || hls.levels[0],
|
33892
33923
|
level: levelIndex || 0,
|
33893
33924
|
id: id || 0,
|
33894
33925
|
stats: stats,
|
@@ -33899,6 +33930,7 @@
|
|
33899
33930
|
case PlaylistContextType.AUDIO_TRACK:
|
33900
33931
|
hls.trigger(Events.AUDIO_TRACK_LOADED, {
|
33901
33932
|
details: levelDetails,
|
33933
|
+
track: context.levelOrTrack,
|
33902
33934
|
id: id || 0,
|
33903
33935
|
groupId: groupId || '',
|
33904
33936
|
stats: stats,
|
@@ -33909,6 +33941,7 @@
|
|
33909
33941
|
case PlaylistContextType.SUBTITLE_TRACK:
|
33910
33942
|
hls.trigger(Events.SUBTITLE_TRACK_LOADED, {
|
33911
33943
|
details: levelDetails,
|
33944
|
+
track: context.levelOrTrack,
|
33912
33945
|
id: id || 0,
|
33913
33946
|
groupId: groupId || '',
|
33914
33947
|
stats: stats,
|
package/dist/hls.js.d.ts
CHANGED
@@ -2606,6 +2606,7 @@ export declare interface LevelLoadedData {
|
|
2606
2606
|
details: LevelDetails;
|
2607
2607
|
id: number;
|
2608
2608
|
level: number;
|
2609
|
+
levelInfo: Level;
|
2609
2610
|
networkDetails: any;
|
2610
2611
|
stats: LoaderStats;
|
2611
2612
|
deliveryDirectives: HlsUrlParameters | null;
|
@@ -2614,6 +2615,7 @@ export declare interface LevelLoadedData {
|
|
2614
2615
|
export declare interface LevelLoadingData {
|
2615
2616
|
id: number;
|
2616
2617
|
level: number;
|
2618
|
+
levelInfo: Level;
|
2617
2619
|
pathwayId: string | undefined;
|
2618
2620
|
url: string;
|
2619
2621
|
deliveryDirectives: HlsUrlParameters | null;
|
@@ -3152,6 +3154,7 @@ export declare interface PlaylistLoaderContext extends LoaderContext {
|
|
3152
3154
|
pathwayId?: string;
|
3153
3155
|
levelDetails?: LevelDetails;
|
3154
3156
|
deliveryDirectives: HlsUrlParameters | null;
|
3157
|
+
levelOrTrack: Level | MediaPlaylist | null;
|
3155
3158
|
}
|
3156
3159
|
|
3157
3160
|
export declare type RationalTimestamp = {
|
@@ -3654,11 +3657,13 @@ export declare interface TrackLoadedData {
|
|
3654
3657
|
networkDetails: any;
|
3655
3658
|
stats: LoaderStats;
|
3656
3659
|
deliveryDirectives: HlsUrlParameters | null;
|
3660
|
+
track: MediaPlaylist;
|
3657
3661
|
}
|
3658
3662
|
|
3659
3663
|
export declare interface TrackLoadingData {
|
3660
3664
|
id: number;
|
3661
3665
|
groupId: string;
|
3666
|
+
track: MediaPlaylist;
|
3662
3667
|
url: string;
|
3663
3668
|
deliveryDirectives: HlsUrlParameters | null;
|
3664
3669
|
}
|