hls.js 1.6.0-beta.2.0.canary.10925 → 1.6.0-beta.2.0.canary.10926
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 +8 -1
- package/dist/hls.d.ts +8 -1
- package/dist/hls.js +43 -13
- package/dist/hls.js.d.ts +8 -1
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +42 -12
- 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 -12
- 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 +39 -13
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/package.json +1 -1
- package/src/controller/abr-controller.ts +2 -2
- package/src/controller/base-stream-controller.ts +4 -4
- package/src/controller/error-controller.ts +2 -2
- package/src/controller/fragment-tracker.ts +1 -1
- package/src/controller/gap-controller.ts +17 -4
- package/src/controller/interstitials-controller.ts +1 -1
- package/src/controller/level-controller.ts +4 -0
- package/src/controller/stream-controller.ts +1 -1
- package/src/hls.ts +10 -0
- package/src/utils/rendition-helper.ts +1 -1
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.2.0.canary.
|
1033
|
+
newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.2.0.canary.10926");
|
1034
1034
|
} catch (e) {
|
1035
1035
|
/* log fn threw an exception. All logger methods are no-ops. */
|
1036
1036
|
return createLogger();
|
@@ -1752,8 +1752,8 @@
|
|
1752
1752
|
}, {});
|
1753
1753
|
}
|
1754
1754
|
function useAlternateAudio(audioTrackUrl, hls) {
|
1755
|
-
var _hls$
|
1756
|
-
return !!audioTrackUrl && audioTrackUrl !== ((_hls$
|
1755
|
+
var _hls$loadLevelObj;
|
1756
|
+
return !!audioTrackUrl && audioTrackUrl !== ((_hls$loadLevelObj = hls.loadLevelObj) == null ? undefined : _hls$loadLevelObj.uri);
|
1757
1757
|
}
|
1758
1758
|
|
1759
1759
|
var AbrController = /*#__PURE__*/function (_Logger) {
|
@@ -2173,8 +2173,8 @@
|
|
2173
2173
|
}
|
2174
2174
|
// If no matching level found, see if min auto level would be a better option
|
2175
2175
|
var minLevel = hls.levels[minAutoLevel];
|
2176
|
-
var autoLevel = hls.
|
2177
|
-
if ((minLevel == null ? undefined : minLevel.bitrate) <
|
2176
|
+
var autoLevel = hls.loadLevelObj;
|
2177
|
+
if (autoLevel && (minLevel == null ? undefined : minLevel.bitrate) < autoLevel.bitrate) {
|
2178
2178
|
return minAutoLevel;
|
2179
2179
|
}
|
2180
2180
|
// or if bitrate is not lower, continue to use loadLevel
|
@@ -2875,7 +2875,7 @@
|
|
2875
2875
|
case ErrorDetails.SUBTITLE_LOAD_ERROR:
|
2876
2876
|
case ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT:
|
2877
2877
|
if (context) {
|
2878
|
-
var level = hls.
|
2878
|
+
var level = hls.loadLevelObj;
|
2879
2879
|
if (level && (context.type === PlaylistContextType.AUDIO_TRACK && level.hasAudioGroup(context.groupId) || context.type === PlaylistContextType.SUBTITLE_TRACK && level.hasSubtitleGroup(context.groupId))) {
|
2880
2880
|
// Perform Pathway switch or Redundant failover if possible for fastest recovery
|
2881
2881
|
// otherwise allow playlist retry count to reach max error retries
|
@@ -2888,7 +2888,7 @@
|
|
2888
2888
|
return;
|
2889
2889
|
case ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:
|
2890
2890
|
{
|
2891
|
-
var _level = hls.
|
2891
|
+
var _level = hls.loadLevelObj;
|
2892
2892
|
var restrictedHdcpLevel = _level == null ? undefined : _level.attrs['HDCP-LEVEL'];
|
2893
2893
|
if (restrictedHdcpLevel) {
|
2894
2894
|
data.errorAction = {
|
@@ -17124,7 +17124,8 @@
|
|
17124
17124
|
if (bufferInfo.len === 0 && bufferInfo.nextStart !== undefined) {
|
17125
17125
|
var bufferedFragAtPos = this.fragmentTracker.getBufferedFrag(pos, type);
|
17126
17126
|
if (bufferedFragAtPos && (bufferInfo.nextStart <= bufferedFragAtPos.end || bufferedFragAtPos.gap)) {
|
17127
|
-
|
17127
|
+
var gapDuration = Math.max(Math.min(bufferInfo.nextStart, bufferedFragAtPos.end) - pos, maxBufferHole);
|
17128
|
+
return BufferHelper.bufferInfo(bufferable, pos, gapDuration);
|
17128
17129
|
}
|
17129
17130
|
}
|
17130
17131
|
return bufferInfo;
|
@@ -18133,7 +18134,7 @@
|
|
18133
18134
|
var currentTime = media.currentTime;
|
18134
18135
|
var bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);
|
18135
18136
|
var startTime = currentTime < bufferInfo.start ? bufferInfo.start : bufferInfo.nextStart;
|
18136
|
-
if (startTime) {
|
18137
|
+
if (startTime && this.hls) {
|
18137
18138
|
var bufferStarved = bufferInfo.len <= config.maxBufferHole;
|
18138
18139
|
var waiting = bufferInfo.len > 0 && bufferInfo.len < 1 && media.readyState < 3;
|
18139
18140
|
var gapLength = startTime - currentTime;
|
@@ -18150,6 +18151,17 @@
|
|
18150
18151
|
if (!startGap) {
|
18151
18152
|
var startProvisioned = partial || fragmentTracker.getAppendedFrag(currentTime, PlaylistLevelType.MAIN);
|
18152
18153
|
if (startProvisioned) {
|
18154
|
+
var _this$hls$loadLevelOb;
|
18155
|
+
// Do not seek when selected variant playlist is unloaded
|
18156
|
+
if (!((_this$hls$loadLevelOb = this.hls.loadLevelObj) != null && _this$hls$loadLevelOb.details)) {
|
18157
|
+
return 0;
|
18158
|
+
}
|
18159
|
+
// Do not seek when required fragments are inflight or appending
|
18160
|
+
var inFlightDependency = getInFlightDependency(this.hls.inFlightFragments, startTime);
|
18161
|
+
if (inFlightDependency) {
|
18162
|
+
return 0;
|
18163
|
+
}
|
18164
|
+
// Do not seek if we can't walk tracked fragments to end of gap
|
18153
18165
|
var moreToLoad = false;
|
18154
18166
|
var pos = startProvisioned.end;
|
18155
18167
|
while (pos < startTime) {
|
@@ -18171,7 +18183,7 @@
|
|
18171
18183
|
this.warn("skipping hole, adjusting currentTime from " + currentTime + " to " + targetTime);
|
18172
18184
|
this.moved = true;
|
18173
18185
|
media.currentTime = targetTime;
|
18174
|
-
if (!(partial != null && partial.gap)
|
18186
|
+
if (!(partial != null && partial.gap)) {
|
18175
18187
|
var error = new Error("fragment loaded with buffer holes, seeking from " + currentTime + " to " + targetTime);
|
18176
18188
|
this.hls.trigger(Events.ERROR, {
|
18177
18189
|
type: ErrorTypes.MEDIA_ERROR,
|
@@ -19631,6 +19643,11 @@
|
|
19631
19643
|
}
|
19632
19644
|
return this._levels;
|
19633
19645
|
}
|
19646
|
+
}, {
|
19647
|
+
key: "loadLevelObj",
|
19648
|
+
get: function get() {
|
19649
|
+
return this.currentLevel;
|
19650
|
+
}
|
19634
19651
|
}, {
|
19635
19652
|
key: "level",
|
19636
19653
|
get: function get() {
|
@@ -19953,7 +19970,7 @@
|
|
19953
19970
|
return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
|
19954
19971
|
}
|
19955
19972
|
|
19956
|
-
var version = "1.6.0-beta.2.0.canary.
|
19973
|
+
var version = "1.6.0-beta.2.0.canary.10926";
|
19957
19974
|
|
19958
19975
|
// ensure the worker ends up in the bundle
|
19959
19976
|
// If the worker should not be included this gets aliased to empty.js
|
@@ -20518,7 +20535,7 @@
|
|
20518
20535
|
_proto.onTickEnd = function onTickEnd() {
|
20519
20536
|
var _this$media2;
|
20520
20537
|
_BaseStreamController.prototype.onTickEnd.call(this);
|
20521
|
-
if ((_this$media2 = this.media) != null && _this$media2.readyState) {
|
20538
|
+
if ((_this$media2 = this.media) != null && _this$media2.readyState && this.media.seeking === false) {
|
20522
20539
|
this.lastCurrentTime = this.media.currentTime;
|
20523
20540
|
}
|
20524
20541
|
this.checkFragmentChanged();
|
@@ -23000,12 +23017,25 @@
|
|
23000
23017
|
var levels = this.levelController.levels;
|
23001
23018
|
return levels ? levels : [];
|
23002
23019
|
}
|
23020
|
+
|
23021
|
+
/**
|
23022
|
+
* @returns LevelDetails of last loaded level (variant) or `null` prior to loading a media playlist.
|
23023
|
+
*/
|
23003
23024
|
}, {
|
23004
23025
|
key: "latestLevelDetails",
|
23005
23026
|
get: function get() {
|
23006
23027
|
return this.streamController.getLevelDetails() || null;
|
23007
23028
|
}
|
23008
23029
|
|
23030
|
+
/**
|
23031
|
+
* @returns Level object of selected level (variant) or `null` prior to selecting a level or once the level is removed.
|
23032
|
+
*/
|
23033
|
+
}, {
|
23034
|
+
key: "loadLevelObj",
|
23035
|
+
get: function get() {
|
23036
|
+
return this.levelController.loadLevelObj;
|
23037
|
+
}
|
23038
|
+
|
23009
23039
|
/**
|
23010
23040
|
* Index of quality level (variant) currently played
|
23011
23041
|
*/
|