hls.js 1.5.13-0.canary.10403 → 1.5.13-0.canary.10406
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.js +17 -8
- package/dist/hls.js.d.ts +1 -1
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +17 -8
- 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 +17 -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 +17 -12
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/package.json +3 -3
- package/src/controller/base-stream-controller.ts +19 -7
package/dist/hls.light.mjs
CHANGED
@@ -420,7 +420,7 @@ function enableLogs(debugConfig, context, id) {
|
|
420
420
|
// Some browsers don't allow to use bind on console object anyway
|
421
421
|
// fallback to default if needed
|
422
422
|
try {
|
423
|
-
newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.5.13-0.canary.
|
423
|
+
newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.5.13-0.canary.10406"}`);
|
424
424
|
} catch (e) {
|
425
425
|
/* log fn threw an exception. All logger methods are no-ops. */
|
426
426
|
return createLogger();
|
@@ -12530,7 +12530,12 @@ class BaseStreamController extends TaskLoop {
|
|
12530
12530
|
if (media) {
|
12531
12531
|
// Remove gap fragments
|
12532
12532
|
this.fragmentTracker.removeFragmentsInRange(currentTime, Infinity, this.playlistType, true);
|
12533
|
-
|
12533
|
+
|
12534
|
+
// Don't set lastCurrentTime with backward seeks (allows for frag selection with strict tolerances)
|
12535
|
+
const lastCurrentTime = this.lastCurrentTime;
|
12536
|
+
if (currentTime > lastCurrentTime) {
|
12537
|
+
this.lastCurrentTime = currentTime;
|
12538
|
+
}
|
12534
12539
|
if (!this.loadingParts) {
|
12535
12540
|
const bufferEnd = Math.max(bufferInfo.end, currentTime);
|
12536
12541
|
const shouldLoadParts = this.shouldLoadParts(this.getLevelDetails(), bufferEnd);
|
@@ -13228,18 +13233,16 @@ class BaseStreamController extends TaskLoop {
|
|
13228
13233
|
}
|
13229
13234
|
}
|
13230
13235
|
getFwdBufferInfo(bufferable, type) {
|
13236
|
+
var _this$media;
|
13231
13237
|
const pos = this.getLoadPosition();
|
13232
13238
|
if (!isFiniteNumber(pos)) {
|
13233
13239
|
return null;
|
13234
13240
|
}
|
13235
|
-
|
13241
|
+
const backwardSeek = this.lastCurrentTime > pos;
|
13242
|
+
const maxBufferHole = backwardSeek || (_this$media = this.media) != null && _this$media.paused ? 0 : this.config.maxBufferHole;
|
13243
|
+
return this.getFwdBufferInfoAtPos(bufferable, pos, type, maxBufferHole);
|
13236
13244
|
}
|
13237
|
-
getFwdBufferInfoAtPos(bufferable, pos, type) {
|
13238
|
-
const {
|
13239
|
-
config: {
|
13240
|
-
maxBufferHole
|
13241
|
-
}
|
13242
|
-
} = this;
|
13245
|
+
getFwdBufferInfoAtPos(bufferable, pos, type, maxBufferHole) {
|
13243
13246
|
const bufferInfo = BufferHelper.bufferInfo(bufferable, pos, maxBufferHole);
|
13244
13247
|
// Workaround flaw in getting forward buffer when maxBufferHole is smaller than gap at current pos
|
13245
13248
|
if (bufferInfo.len === 0 && bufferInfo.nextStart !== undefined) {
|
@@ -13336,7 +13339,7 @@ class BaseStreamController extends TaskLoop {
|
|
13336
13339
|
nextFragment = this.getNextFragment(this.nextLoadPosition, levelDetails);
|
13337
13340
|
if (nextFragment && !nextFragment.gap && bufferInfo.nextStart) {
|
13338
13341
|
// Media buffered after GAP tags should not make the next buffer timerange exceed forward buffer length
|
13339
|
-
const nextbufferInfo = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, bufferInfo.nextStart, playlistType);
|
13342
|
+
const nextbufferInfo = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, bufferInfo.nextStart, playlistType, 0);
|
13340
13343
|
if (nextbufferInfo !== null && bufferInfo.len + nextbufferInfo.len >= maxBufLen) {
|
13341
13344
|
// Returning here might result in not finding an audio and video candiate to skip to
|
13342
13345
|
const sn = nextFragment.sn;
|
@@ -13456,7 +13459,9 @@ class BaseStreamController extends TaskLoop {
|
|
13456
13459
|
}
|
13457
13460
|
let frag;
|
13458
13461
|
if (bufferEnd < end) {
|
13459
|
-
|
13462
|
+
var _this$media2;
|
13463
|
+
const backwardSeek = bufferEnd < this.lastCurrentTime;
|
13464
|
+
const lookupTolerance = backwardSeek || bufferEnd > end - maxFragLookUpTolerance || (_this$media2 = this.media) != null && _this$media2.paused ? 0 : maxFragLookUpTolerance;
|
13460
13465
|
// Remove the tolerance if it would put the bufferEnd past the actual end of stream
|
13461
13466
|
// Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)
|
13462
13467
|
frag = findFragmentByPTS(fragPrevious, fragments, bufferEnd, lookupTolerance);
|
@@ -20665,7 +20670,7 @@ class Hls {
|
|
20665
20670
|
* Get the video-dev/hls.js package version.
|
20666
20671
|
*/
|
20667
20672
|
static get version() {
|
20668
|
-
return "1.5.13-0.canary.
|
20673
|
+
return "1.5.13-0.canary.10406";
|
20669
20674
|
}
|
20670
20675
|
|
20671
20676
|
/**
|