hls.js 1.5.13-0.canary.10401 → 1.5.13-0.canary.10404

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.light.js CHANGED
@@ -493,7 +493,7 @@
493
493
  // Some browsers don't allow to use bind on console object anyway
494
494
  // fallback to default if needed
495
495
  try {
496
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.13-0.canary.10401");
496
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.5.13-0.canary.10404");
497
497
  } catch (e) {
498
498
  /* log fn threw an exception. All logger methods are no-ops. */
499
499
  return createLogger();
@@ -12856,7 +12856,12 @@
12856
12856
  if (media) {
12857
12857
  // Remove gap fragments
12858
12858
  _this.fragmentTracker.removeFragmentsInRange(currentTime, Infinity, _this.playlistType, true);
12859
- _this.lastCurrentTime = currentTime;
12859
+
12860
+ // Don't set lastCurrentTime with backward seeks (allows for frag selection with strict tolerances)
12861
+ var lastCurrentTime = _this.lastCurrentTime;
12862
+ if (currentTime > lastCurrentTime) {
12863
+ _this.lastCurrentTime = currentTime;
12864
+ }
12860
12865
  if (!_this.loadingParts) {
12861
12866
  var bufferEnd = Math.max(bufferInfo.end, currentTime);
12862
12867
  var shouldLoadParts = _this.shouldLoadParts(_this.getLevelDetails(), bufferEnd);
@@ -13556,14 +13561,16 @@
13556
13561
  }
13557
13562
  };
13558
13563
  _proto.getFwdBufferInfo = function getFwdBufferInfo(bufferable, type) {
13564
+ var _this$media;
13559
13565
  var pos = this.getLoadPosition();
13560
13566
  if (!isFiniteNumber(pos)) {
13561
13567
  return null;
13562
13568
  }
13563
- return this.getFwdBufferInfoAtPos(bufferable, pos, type);
13569
+ var backwardSeek = this.lastCurrentTime > pos;
13570
+ var maxBufferHole = backwardSeek || (_this$media = this.media) != null && _this$media.paused ? 0 : this.config.maxBufferHole;
13571
+ return this.getFwdBufferInfoAtPos(bufferable, pos, type, maxBufferHole);
13564
13572
  };
13565
- _proto.getFwdBufferInfoAtPos = function getFwdBufferInfoAtPos(bufferable, pos, type) {
13566
- var maxBufferHole = this.config.maxBufferHole;
13573
+ _proto.getFwdBufferInfoAtPos = function getFwdBufferInfoAtPos(bufferable, pos, type, maxBufferHole) {
13567
13574
  var bufferInfo = BufferHelper.bufferInfo(bufferable, pos, maxBufferHole);
13568
13575
  // Workaround flaw in getting forward buffer when maxBufferHole is smaller than gap at current pos
13569
13576
  if (bufferInfo.len === 0 && bufferInfo.nextStart !== undefined) {
@@ -13659,7 +13666,7 @@
13659
13666
  nextFragment = this.getNextFragment(this.nextLoadPosition, levelDetails);
13660
13667
  if (nextFragment && !nextFragment.gap && bufferInfo.nextStart) {
13661
13668
  // Media buffered after GAP tags should not make the next buffer timerange exceed forward buffer length
13662
- var nextbufferInfo = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, bufferInfo.nextStart, playlistType);
13669
+ var nextbufferInfo = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, bufferInfo.nextStart, playlistType, 0);
13663
13670
  if (nextbufferInfo !== null && bufferInfo.len + nextbufferInfo.len >= maxBufLen) {
13664
13671
  // Returning here might result in not finding an audio and video candiate to skip to
13665
13672
  var sn = nextFragment.sn;
@@ -13769,7 +13776,9 @@
13769
13776
  }
13770
13777
  var frag;
13771
13778
  if (bufferEnd < end) {
13772
- var lookupTolerance = bufferEnd > end - maxFragLookUpTolerance ? 0 : maxFragLookUpTolerance;
13779
+ var _this$media2;
13780
+ var backwardSeek = bufferEnd < this.lastCurrentTime;
13781
+ var lookupTolerance = backwardSeek || bufferEnd > end - maxFragLookUpTolerance || (_this$media2 = this.media) != null && _this$media2.paused ? 0 : maxFragLookUpTolerance;
13773
13782
  // Remove the tolerance if it would put the bufferEnd past the actual end of stream
13774
13783
  // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)
13775
13784
  frag = findFragmentByPTS(fragPrevious, fragments, bufferEnd, lookupTolerance);
@@ -22000,7 +22009,7 @@
22000
22009
  * Get the video-dev/hls.js package version.
22001
22010
  */
22002
22011
  function get() {
22003
- return "1.5.13-0.canary.10401";
22012
+ return "1.5.13-0.canary.10404";
22004
22013
  }
22005
22014
  }, {
22006
22015
  key: "Events",