hls.js 1.6.1-0.canary.11103 → 1.6.1-0.canary.11104

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.
@@ -523,7 +523,7 @@ function enableLogs(debugConfig, context, id) {
523
523
  // Some browsers don't allow to use bind on console object anyway
524
524
  // fallback to default if needed
525
525
  try {
526
- newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.1-0.canary.11103"}`);
526
+ newLogger.log(`Debug logs enabled for "${context}" in hls.js version ${"1.6.1-0.canary.11104"}`);
527
527
  } catch (e) {
528
528
  /* log fn threw an exception. All logger methods are no-ops. */
529
529
  return createLogger();
@@ -10220,27 +10220,24 @@ transfer tracks: ${stringify(transferredTracks, (key, value) => key === 'initSeg
10220
10220
  err: error,
10221
10221
  fatal: false
10222
10222
  };
10223
+ const mediaError = (_this$media = this.media) == null ? void 0 : _this$media.error;
10223
10224
  if (error.code === DOMException.QUOTA_EXCEEDED_ERR) {
10224
10225
  // QuotaExceededError: http://www.w3.org/TR/html5/infrastructure.html#quotaexceedederror
10225
10226
  // let's stop appending any segments, and report BUFFER_FULL_ERROR error
10226
10227
  event.details = ErrorDetails.BUFFER_FULL_ERROR;
10227
- } else if (error.code === DOMException.INVALID_STATE_ERR && this.mediaSourceOpenOrEnded && !((_this$media = this.media) != null && _this$media.error)) {
10228
+ } else if (error.code === DOMException.INVALID_STATE_ERR && this.mediaSourceOpenOrEnded && !mediaError) {
10228
10229
  // Allow retry for "Failed to execute 'appendBuffer' on 'SourceBuffer': This SourceBuffer is still processing" errors
10229
10230
  event.errorAction = createDoNothingErrorAction(true);
10230
- } else if (error.name === TRACK_REMOVED_ERROR_NAME) {
10231
+ } else if (error.name === TRACK_REMOVED_ERROR_NAME && this.sourceBufferCount === 0) {
10231
10232
  // Do nothing if sourceBuffers were removed (media is detached and append was not aborted)
10232
- if (this.sourceBufferCount === 0) {
10233
- event.errorAction = createDoNothingErrorAction(true);
10234
- } else {
10235
- ++this.appendErrors[type];
10236
- }
10233
+ event.errorAction = createDoNothingErrorAction(true);
10237
10234
  } else {
10238
10235
  const appendErrorCount = ++this.appendErrors[type];
10239
10236
  /* with UHD content, we could get loop of quota exceeded error until
10240
10237
  browser is able to evict some data from sourcebuffer. Retrying can help recover.
10241
10238
  */
10242
- this.warn(`Failed ${appendErrorCount}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${type}" sourceBuffer`);
10243
- if (appendErrorCount >= this.hls.config.appendErrorMaxRetry) {
10239
+ this.warn(`Failed ${appendErrorCount}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${type}" sourceBuffer (${mediaError ? mediaError : 'no media error'})`);
10240
+ if (appendErrorCount >= this.hls.config.appendErrorMaxRetry || !!mediaError) {
10244
10241
  event.fatal = true;
10245
10242
  }
10246
10243
  }
@@ -19796,7 +19793,7 @@ function assignTrackIdsByGroup(tracks) {
19796
19793
  });
19797
19794
  }
19798
19795
 
19799
- const version = "1.6.1-0.canary.11103";
19796
+ const version = "1.6.1-0.canary.11104";
19800
19797
 
19801
19798
  // ensure the worker ends up in the bundle
19802
19799
  // If the worker should not be included this gets aliased to empty.js