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

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
@@ -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.11106"}`);
527
527
  } catch (e) {
528
528
  /* log fn threw an exception. All logger methods are no-ops. */
529
529
  return createLogger();
@@ -10238,7 +10238,7 @@ function requireEventemitter3 () {
10238
10238
  var eventemitter3Exports = requireEventemitter3();
10239
10239
  var EventEmitter = /*@__PURE__*/getDefaultExportFromCjs(eventemitter3Exports);
10240
10240
 
10241
- const version = "1.6.1-0.canary.11103";
10241
+ const version = "1.6.1-0.canary.11106";
10242
10242
 
10243
10243
  // ensure the worker ends up in the bundle
10244
10244
  // If the worker should not be included this gets aliased to empty.js
@@ -18841,27 +18841,24 @@ transfer tracks: ${stringify(transferredTracks, (key, value) => key === 'initSeg
18841
18841
  err: error,
18842
18842
  fatal: false
18843
18843
  };
18844
+ const mediaError = (_this$media = this.media) == null ? void 0 : _this$media.error;
18844
18845
  if (error.code === DOMException.QUOTA_EXCEEDED_ERR) {
18845
18846
  // QuotaExceededError: http://www.w3.org/TR/html5/infrastructure.html#quotaexceedederror
18846
18847
  // let's stop appending any segments, and report BUFFER_FULL_ERROR error
18847
18848
  event.details = ErrorDetails.BUFFER_FULL_ERROR;
18848
- } else if (error.code === DOMException.INVALID_STATE_ERR && this.mediaSourceOpenOrEnded && !((_this$media = this.media) != null && _this$media.error)) {
18849
+ } else if (error.code === DOMException.INVALID_STATE_ERR && this.mediaSourceOpenOrEnded && !mediaError) {
18849
18850
  // Allow retry for "Failed to execute 'appendBuffer' on 'SourceBuffer': This SourceBuffer is still processing" errors
18850
18851
  event.errorAction = createDoNothingErrorAction(true);
18851
- } else if (error.name === TRACK_REMOVED_ERROR_NAME) {
18852
+ } else if (error.name === TRACK_REMOVED_ERROR_NAME && this.sourceBufferCount === 0) {
18852
18853
  // Do nothing if sourceBuffers were removed (media is detached and append was not aborted)
18853
- if (this.sourceBufferCount === 0) {
18854
- event.errorAction = createDoNothingErrorAction(true);
18855
- } else {
18856
- ++this.appendErrors[type];
18857
- }
18854
+ event.errorAction = createDoNothingErrorAction(true);
18858
18855
  } else {
18859
18856
  const appendErrorCount = ++this.appendErrors[type];
18860
18857
  /* with UHD content, we could get loop of quota exceeded error until
18861
18858
  browser is able to evict some data from sourcebuffer. Retrying can help recover.
18862
18859
  */
18863
- this.warn(`Failed ${appendErrorCount}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${type}" sourceBuffer`);
18864
- if (appendErrorCount >= this.hls.config.appendErrorMaxRetry) {
18860
+ this.warn(`Failed ${appendErrorCount}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${type}" sourceBuffer (${mediaError ? mediaError : 'no media error'})`);
18861
+ if (appendErrorCount >= this.hls.config.appendErrorMaxRetry || !!mediaError) {
18865
18862
  event.fatal = true;
18866
18863
  }
18867
18864
  }