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.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();
|
@@ -9684,7 +9684,12 @@ class BaseStreamController extends TaskLoop {
|
|
9684
9684
|
if (media) {
|
9685
9685
|
// Remove gap fragments
|
9686
9686
|
this.fragmentTracker.removeFragmentsInRange(currentTime, Infinity, this.playlistType, true);
|
9687
|
-
|
9687
|
+
|
9688
|
+
// Don't set lastCurrentTime with backward seeks (allows for frag selection with strict tolerances)
|
9689
|
+
const lastCurrentTime = this.lastCurrentTime;
|
9690
|
+
if (currentTime > lastCurrentTime) {
|
9691
|
+
this.lastCurrentTime = currentTime;
|
9692
|
+
}
|
9688
9693
|
if (!this.loadingParts) {
|
9689
9694
|
const bufferEnd = Math.max(bufferInfo.end, currentTime);
|
9690
9695
|
const shouldLoadParts = this.shouldLoadParts(this.getLevelDetails(), bufferEnd);
|
@@ -10382,18 +10387,16 @@ class BaseStreamController extends TaskLoop {
|
|
10382
10387
|
}
|
10383
10388
|
}
|
10384
10389
|
getFwdBufferInfo(bufferable, type) {
|
10390
|
+
var _this$media;
|
10385
10391
|
const pos = this.getLoadPosition();
|
10386
10392
|
if (!isFiniteNumber(pos)) {
|
10387
10393
|
return null;
|
10388
10394
|
}
|
10389
|
-
|
10395
|
+
const backwardSeek = this.lastCurrentTime > pos;
|
10396
|
+
const maxBufferHole = backwardSeek || (_this$media = this.media) != null && _this$media.paused ? 0 : this.config.maxBufferHole;
|
10397
|
+
return this.getFwdBufferInfoAtPos(bufferable, pos, type, maxBufferHole);
|
10390
10398
|
}
|
10391
|
-
getFwdBufferInfoAtPos(bufferable, pos, type) {
|
10392
|
-
const {
|
10393
|
-
config: {
|
10394
|
-
maxBufferHole
|
10395
|
-
}
|
10396
|
-
} = this;
|
10399
|
+
getFwdBufferInfoAtPos(bufferable, pos, type, maxBufferHole) {
|
10397
10400
|
const bufferInfo = BufferHelper.bufferInfo(bufferable, pos, maxBufferHole);
|
10398
10401
|
// Workaround flaw in getting forward buffer when maxBufferHole is smaller than gap at current pos
|
10399
10402
|
if (bufferInfo.len === 0 && bufferInfo.nextStart !== undefined) {
|
@@ -10490,7 +10493,7 @@ class BaseStreamController extends TaskLoop {
|
|
10490
10493
|
nextFragment = this.getNextFragment(this.nextLoadPosition, levelDetails);
|
10491
10494
|
if (nextFragment && !nextFragment.gap && bufferInfo.nextStart) {
|
10492
10495
|
// Media buffered after GAP tags should not make the next buffer timerange exceed forward buffer length
|
10493
|
-
const nextbufferInfo = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, bufferInfo.nextStart, playlistType);
|
10496
|
+
const nextbufferInfo = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, bufferInfo.nextStart, playlistType, 0);
|
10494
10497
|
if (nextbufferInfo !== null && bufferInfo.len + nextbufferInfo.len >= maxBufLen) {
|
10495
10498
|
// Returning here might result in not finding an audio and video candiate to skip to
|
10496
10499
|
const sn = nextFragment.sn;
|
@@ -10610,7 +10613,9 @@ class BaseStreamController extends TaskLoop {
|
|
10610
10613
|
}
|
10611
10614
|
let frag;
|
10612
10615
|
if (bufferEnd < end) {
|
10613
|
-
|
10616
|
+
var _this$media2;
|
10617
|
+
const backwardSeek = bufferEnd < this.lastCurrentTime;
|
10618
|
+
const lookupTolerance = backwardSeek || bufferEnd > end - maxFragLookUpTolerance || (_this$media2 = this.media) != null && _this$media2.paused ? 0 : maxFragLookUpTolerance;
|
10614
10619
|
// Remove the tolerance if it would put the bufferEnd past the actual end of stream
|
10615
10620
|
// Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)
|
10616
10621
|
frag = findFragmentByPTS(fragPrevious, fragments, bufferEnd, lookupTolerance);
|
@@ -29280,7 +29285,7 @@ class Hls {
|
|
29280
29285
|
* Get the video-dev/hls.js package version.
|
29281
29286
|
*/
|
29282
29287
|
static get version() {
|
29283
|
-
return "1.5.13-0.canary.
|
29288
|
+
return "1.5.13-0.canary.10406";
|
29284
29289
|
}
|
29285
29290
|
|
29286
29291
|
/**
|