mediabunny 1.25.1 → 1.25.2

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.
@@ -569,12 +569,15 @@ var Mediabunny = (() => {
569
569
  }
570
570
  return headers;
571
571
  };
572
- var retriedFetch = async (fetchFn, url2, requestInit, getRetryDelay) => {
572
+ var retriedFetch = async (fetchFn, url2, requestInit, getRetryDelay, shouldStop) => {
573
573
  let attempts = 0;
574
574
  while (true) {
575
575
  try {
576
576
  return await fetchFn(url2, requestInit);
577
577
  } catch (error) {
578
+ if (shouldStop()) {
579
+ throw error;
580
+ }
578
581
  attempts++;
579
582
  const retryDelayInSeconds = getRetryDelay(attempts, error, url2);
580
583
  if (retryDelayInSeconds === null) {
@@ -587,6 +590,9 @@ var Mediabunny = (() => {
587
590
  if (retryDelayInSeconds > 0) {
588
591
  await new Promise((resolve) => setTimeout(resolve, 1e3 * retryDelayInSeconds));
589
592
  }
593
+ if (shouldStop()) {
594
+ throw error;
595
+ }
590
596
  }
591
597
  }
592
598
  };
@@ -15358,6 +15364,9 @@ var Mediabunny = (() => {
15358
15364
  }
15359
15365
  const isOnline = typeof navigator !== "undefined" && typeof navigator.onLine === "boolean" ? navigator.onLine : true;
15360
15366
  if (isOnline && originOfSrc !== null && originOfSrc !== window.location.origin) {
15367
+ console.warn(
15368
+ `Request will not be retried because a CORS error was suspected due to different origins. You can modify this behavior by providing your own function for the 'getRetryDelay' option.`
15369
+ );
15361
15370
  return null;
15362
15371
  }
15363
15372
  }
@@ -15413,7 +15422,8 @@ var Mediabunny = (() => {
15413
15422
  },
15414
15423
  signal: abortController.signal
15415
15424
  }),
15416
- this._getRetryDelay
15425
+ this._getRetryDelay,
15426
+ () => this._disposed
15417
15427
  );
15418
15428
  if (!response.ok) {
15419
15429
  throw new Error(`Error fetching ${String(this._url)}: ${response.status} ${response.statusText}`);
@@ -15463,7 +15473,8 @@ var Mediabunny = (() => {
15463
15473
  },
15464
15474
  signal: abortController.signal
15465
15475
  }),
15466
- this._getRetryDelay
15476
+ this._getRetryDelay,
15477
+ () => this._disposed
15467
15478
  );
15468
15479
  }
15469
15480
  assert(response);
@@ -15498,6 +15509,9 @@ var Mediabunny = (() => {
15498
15509
  try {
15499
15510
  readResult = await reader.read();
15500
15511
  } catch (error) {
15512
+ if (this._disposed) {
15513
+ throw error;
15514
+ }
15501
15515
  const retryDelayInSeconds = this._getRetryDelay(1, error, this._url);
15502
15516
  if (retryDelayInSeconds !== null) {
15503
15517
  console.error("Error while reading response stream. Attempting to resume.", error);
@@ -22205,7 +22219,36 @@ ${cue.notes ?? ""}`;
22205
22219
  // Since we handle alpha ourselves
22206
22220
  });
22207
22221
  const support = await VideoEncoder.isConfigSupported(encoderConfig);
22208
- return support.supported === true;
22222
+ if (!support.supported) {
22223
+ return false;
22224
+ }
22225
+ if (isFirefox()) {
22226
+ return new Promise(async (resolve) => {
22227
+ try {
22228
+ const encoder = new VideoEncoder({
22229
+ output: () => {
22230
+ },
22231
+ error: () => resolve(false)
22232
+ });
22233
+ encoder.configure(encoderConfig);
22234
+ const frameData = new Uint8Array(width * height * 4);
22235
+ const frame = new VideoFrame(frameData, {
22236
+ format: "RGBA",
22237
+ codedWidth: width,
22238
+ codedHeight: height,
22239
+ timestamp: 0
22240
+ });
22241
+ encoder.encode(frame);
22242
+ frame.close();
22243
+ await encoder.flush();
22244
+ resolve(true);
22245
+ } catch {
22246
+ resolve(false);
22247
+ }
22248
+ });
22249
+ } else {
22250
+ return true;
22251
+ }
22209
22252
  };
22210
22253
  var canEncodeAudio = async (codec, options = {}) => {
22211
22254
  const {