hls.js 1.6.0-beta.2.0.canary.10830 → 1.6.0-beta.2.0.canary.10831

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.mjs CHANGED
@@ -401,7 +401,7 @@ function enableLogs(debugConfig, context, id) {
401
401
  // Some browsers don't allow to use bind on console object anyway
402
402
  // fallback to default if needed
403
403
  try {
404
- newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-beta.2.0.canary.10830"}`);
404
+ newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.0-beta.2.0.canary.10831"}`);
405
405
  } catch (e) {
406
406
  /* log fn threw an exception. All logger methods are no-ops. */
407
407
  return createLogger();
@@ -8197,12 +8197,20 @@ class BaseStreamController extends TaskLoop {
8197
8197
  this.buffering = true;
8198
8198
  }
8199
8199
  _streamEnded(bufferInfo, levelDetails) {
8200
- // If playlist is live, there is another buffered range after the current range, nothing buffered, media is detached,
8201
- // of nothing loading/loaded return false
8202
- const hasTimelineOffset = this.config.timelineOffset !== undefined;
8200
+ // Stream is never "ended" when playlist is live or media is detached
8201
+ if (levelDetails.live || !this.media) {
8202
+ return false;
8203
+ }
8204
+ // Stream is not "ended" when nothing is buffered past the start
8205
+ const bufferEnd = bufferInfo.end || 0;
8206
+ const timelineStart = this.config.timelineOffset || 0;
8207
+ if (bufferEnd <= timelineStart) {
8208
+ return false;
8209
+ }
8210
+ // Stream is not "ended" when there is a second buffered range starting before the end of the playlist
8203
8211
  const nextStart = bufferInfo.nextStart;
8204
- const hasSecondBufferedRange = nextStart && (!hasTimelineOffset || nextStart < levelDetails.edge);
8205
- if (levelDetails.live || hasSecondBufferedRange || !bufferInfo.end || !this.media) {
8212
+ const hasSecondBufferedRange = nextStart && nextStart > timelineStart && nextStart < levelDetails.edge;
8213
+ if (hasSecondBufferedRange) {
8206
8214
  return false;
8207
8215
  }
8208
8216
  const partList = levelDetails.partList;
@@ -9836,7 +9844,7 @@ var eventemitter3 = {exports: {}};
9836
9844
  var eventemitter3Exports = eventemitter3.exports;
9837
9845
  var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
9838
9846
 
9839
- const version = "1.6.0-beta.2.0.canary.10830";
9847
+ const version = "1.6.0-beta.2.0.canary.10831";
9840
9848
 
9841
9849
  // ensure the worker ends up in the bundle
9842
9850
  // If the worker should not be included this gets aliased to empty.js