@banou/media-player 0.8.9 → 0.8.10

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.
@@ -1,4 +1,4 @@
1
- export { startPlayback, terminateRemuxer, DEFAULT_BUFFER_SIZE } from './playback';
1
+ export { startPlayback, terminateRemuxer, MediaElementError, isMediaElementError, DEFAULT_BUFFER_SIZE } from './playback';
2
2
  export type { PlaybackOptions, PlaybackController, MediaIndex, AudioStream } from './playback';
3
3
  export { createSubtitleRenderer, SUBTITLES_OFF } from './subtitles';
4
4
  export type { SubtitleRenderer, SubtitleRendererOptions, SubtitleStream } from './subtitles';
@@ -1,2 +1,2 @@
1
- import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c, u as l } from "../engine-BwK7ycv0.js";
2
- export { n as DEFAULT_BUFFER_SIZE, s as SUBTITLES_OFF, c as createPictureInPicture, t as createSubtitleRenderer, o as createThumbnailGenerator, r as getTimeRanges, i as pictureInPictureMode, e as startPlayback, a as terminateRemuxer, l as updateSourceBuffer };
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as u, u as d } from "../engine-Cownv8gD.js";
2
+ export { i as DEFAULT_BUFFER_SIZE, e as MediaElementError, a as SUBTITLES_OFF, u as createPictureInPicture, d as createSubtitleRenderer, c as createThumbnailGenerator, n as getTimeRanges, s as isMediaElementError, o as pictureInPictureMode, l as startPlayback, t as terminateRemuxer, r as updateSourceBuffer };
@@ -37,6 +37,19 @@ export type PlaybackController = {
37
37
  videoMimeType: string;
38
38
  audioMimeType: string;
39
39
  };
40
+ /**
41
+ * A terminal failure of the media element itself, as opposed to anything this pipeline did.
42
+ *
43
+ * It is worth its own type because it is the one error class that says something about the CURE:
44
+ * the element is finished and no append will ever succeed against it again, so reporting it to the
45
+ * viewer is pointless and only a rebuilt element clears it. The flag rather than an `instanceof`
46
+ * is what survives the error crossing a module boundary.
47
+ */
48
+ export declare class MediaElementError extends Error {
49
+ readonly mediaElement = true;
50
+ constructor(message: string, options?: ErrorOptions);
51
+ }
52
+ export declare const isMediaElementError: (error: unknown) => boolean;
40
53
  export declare const DEFAULT_BUFFER_SIZE = 2500000;
41
54
  export declare const terminateRemuxer: (remuxer: {
42
55
  worker: Worker;
@@ -162,32 +162,37 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
162
162
  clearInterval(y), t.removeEventListener("ratechange", b), c?.destroy(), c = void 0;
163
163
  }
164
164
  };
165
- }, h = -20, g = 60, _ = 30, v = -5, y = 20, b = 5, x = 15e3, S = 1, C = 25e5, w = (e) => {
165
+ }, h = class extends Error {
166
+ mediaElement = !0;
167
+ constructor(e, t) {
168
+ super(e, t), this.name = "MediaElementError";
169
+ }
170
+ }, g = (e) => !!e && typeof e == "object" && e.mediaElement === !0, _ = -20, v = 60, y = 30, b = -5, x = 20, S = 5, C = 15e3, w = 1, T = 200, E = 250, D = 25e5, O = (e) => {
166
171
  let { worker: t } = e, n = setTimeout(() => t.terminate(), 2e3);
167
172
  e.destroy().catch(() => {}).finally(() => {
168
173
  clearTimeout(n), t.terminate();
169
174
  });
170
- }, T = async (t) => {
171
- let { videoElement: n, canvasElement: r, read: i, length: o, publicPath: c, libavWorkerUrl: l, jassubWorkerUrl: u, jassubWasmUrl: d, jassubLegacyWasmUrl: f, defaultFontUrl: p, bufferSize: T = C, audioStreamIndex: E, onReady: D, onError: O, onRecovered: k, onSeek: A, onSubtitleStreams: j, onAudioStreams: ee } = t, M = await e({
175
+ }, k = async (t) => {
176
+ let { videoElement: n, canvasElement: r, read: i, length: o, publicPath: c, libavWorkerUrl: l, jassubWorkerUrl: u, jassubWasmUrl: d, jassubLegacyWasmUrl: f, defaultFontUrl: p, bufferSize: g = D, audioStreamIndex: k, onReady: A, onError: j, onRecovered: ee, onSeek: M, onSubtitleStreams: te, onAudioStreams: ne } = t, N = await e({
172
177
  publicPath: c,
173
178
  workerUrl: l,
174
179
  workerOptions: { type: "module" },
175
- bufferSize: T,
180
+ bufferSize: g,
176
181
  length: o,
177
- audioStreamIndex: E,
182
+ audioStreamIndex: k,
178
183
  read: i
179
- }), N = [], P = !1, F = () => {
180
- if (!P) {
181
- P = !0;
182
- for (let e of [...N].reverse()) try {
184
+ }), P = [], F = !1, I = () => {
185
+ if (!F) {
186
+ F = !0;
187
+ for (let e of [...P].reverse()) try {
183
188
  e();
184
189
  } catch {}
185
190
  }
186
191
  };
187
- N.push(() => w(M));
192
+ P.push(() => O(N));
188
193
  try {
189
- let e = await M.init(), t = e.audioStreams ?? [], i = t.some((e) => e.streamIndex === E) ? E : t[0]?.streamIndex ?? -1;
190
- ee?.(t, i);
194
+ let e = await N.init(), t = e.audioStreams ?? [], i = t.some((e) => e.streamIndex === k) ? k : t[0]?.streamIndex ?? -1;
195
+ ne?.(t, i);
191
196
  let o = m({
192
197
  video: n,
193
198
  canvas: r,
@@ -195,122 +200,153 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
195
200
  wasmUrl: d,
196
201
  legacyWasmUrl: f,
197
202
  defaultFontUrl: p,
198
- onStreams: j
203
+ onStreams: te
199
204
  });
200
- if (N.push(() => o.destroy()), e.attachments?.length && o.pushAttachments(e.attachments), !e.info.output.videoMimeType) throw Error("The video codec in this file could not be identified");
205
+ if (P.push(() => o.destroy()), e.attachments?.length && o.pushAttachments(e.attachments), !e.info.output.videoMimeType) throw Error("The video codec in this file could not be identified");
201
206
  let c = [e.info.output.videoMimeType, e.info.output.audioMimeType].filter(Boolean).join(","), l = `video/mp4; codecs="${c}"`;
202
207
  if (!MediaSource.isTypeSupported(l)) throw Error(`This browser cannot play the codecs in this file: ${c}`);
203
- let C = new MediaSource(), w = URL.createObjectURL(C);
204
- N.push(() => URL.revokeObjectURL(w)), n.src = w, N.push(() => {
208
+ let g = new MediaSource(), D = URL.createObjectURL(g);
209
+ P.push(() => URL.revokeObjectURL(D)), n.src = D, P.push(() => {
205
210
  try {
206
211
  n.pause();
207
212
  } catch {}
208
213
  n.removeAttribute("src"), n.load();
209
214
  });
210
- let T = await new Promise((t, n) => {
215
+ let O = await new Promise((t, n) => {
211
216
  let r = setTimeout(() => {
212
217
  i(), n(/* @__PURE__ */ Error("The MediaSource never opened"));
213
- }, x), i = () => {
214
- clearTimeout(r), C.removeEventListener("sourceopen", a), C.removeEventListener("sourceclose", o), C.removeEventListener("error", o);
218
+ }, C), i = () => {
219
+ clearTimeout(r), g.removeEventListener("sourceopen", a), g.removeEventListener("sourceclose", o), g.removeEventListener("error", o);
215
220
  }, a = () => {
216
221
  try {
217
- let n = C.addSourceBuffer(l);
222
+ let n = g.addSourceBuffer(l);
218
223
  n.mode = "segments";
219
224
  let r = e.info.input.duration;
220
- Number.isFinite(r) && r > 0 && (C.duration = r), i(), t(n);
225
+ Number.isFinite(r) && r > 0 && (g.duration = r), i(), t(n);
221
226
  } catch (e) {
222
227
  i(), n(e);
223
228
  }
224
229
  }, o = () => {
225
230
  i(), n(/* @__PURE__ */ Error("The MediaSource closed before a SourceBuffer could be created"));
226
231
  };
227
- C.addEventListener("sourceopen", a, { once: !0 }), C.addEventListener("sourceclose", o, { once: !0 }), C.addEventListener("error", o, { once: !0 });
228
- }), { appendBuffer: I, unbufferRange: L, updateTimestampOffset: R, endOfStream: z } = s(T, C);
229
- await I(e.data), e.subtitles?.length && o.pushFragments(e.subtitles), D?.();
230
- let B = !1, V = !1, H = !1, U = 0, W = 0, G = null, K = 0, q = 0, J = !1, te = 0, Y = (e, t) => {
231
- let n = e?.message === "Cancelled";
232
- t && n || (console.error(e), !J && (J = !0, O?.(n ? Error("Reading the video file failed", { cause: e }) : e)));
233
- }, X = async (e = !1) => {
234
- let t = n.currentTime, r = e ? v : h, i = e ? y : g;
235
- for (let { start: e, end: n } of a(T)) e < t + r && await L(e, t + r), n > t + i && await L(t + i, n);
236
- }, ne = () => {
237
- let e = a(T);
232
+ g.addEventListener("sourceopen", a, { once: !0 }), g.addEventListener("sourceclose", o, { once: !0 }), g.addEventListener("error", o, { once: !0 });
233
+ }), { appendBuffer: L, unbufferRange: re, updateTimestampOffset: ie, endOfStream: ae } = s(O, g);
234
+ await L(e.data), e.subtitles?.length && o.pushFragments(e.subtitles), A?.();
235
+ let R = !1, z = !1, B = !1, V = 0, H = 0, U = null, W = 0, G = 0, K = !1, oe = 0, q = (e, t, n = !1) => {
236
+ let r = e?.message === "Cancelled";
237
+ t && r || (console.error(e), !(K && !n) && (K = !0, j?.(r ? Error("Reading the video file failed", { cause: e }) : e)));
238
+ }, se = async (e = !1) => {
239
+ let t = n.currentTime, r = e ? b : _, i = e ? x : v;
240
+ for (let { start: e, end: n } of a(O)) e < t + r && await re(e, t + r), n > t + i && await re(t + i, n);
241
+ }, ce = () => {
242
+ let e = a(O);
238
243
  if (!e.length) return !0;
239
244
  let t = n.currentTime;
240
- if (Math.max(...e.map((e) => e.end)) >= t + g) return !1;
241
- let r = e.find((e) => e.start <= t + S && t < e.end);
242
- return !r || r.end < t + _;
243
- }, Z = () => {
245
+ if (Math.max(...e.map((e) => e.end)) >= t + v) return !1;
246
+ let r = e.find((e) => e.start <= t + w && t < e.end);
247
+ return !r || r.end < t + y;
248
+ }, J = () => {
244
249
  let e = n.currentTime;
245
- return a(T).find((t) => t.start <= e + S && e < t.end);
246
- }, re = () => {
247
- let e = Z();
248
- return !!e && e.end >= q - .1;
249
- }, Q = () => {
250
- let e = a(T).map((e) => e.end);
251
- e.length && (q = Math.max(q, ...e));
252
- }, ie = async (e) => {
253
- V = !0, G = null, K = 0, te = e;
254
- let t = ++W;
250
+ return a(O).find((t) => t.start <= e + w && e < t.end);
251
+ }, le = () => {
252
+ let e = J();
253
+ return !!e && e.end >= G - .1;
254
+ }, ue = () => {
255
+ let e = a(O).map((e) => e.end);
256
+ e.length && (G = Math.max(G, ...e));
257
+ }, Y = async (e) => {
258
+ z = !0, U = null, W = 0, oe = e;
259
+ let t = ++H;
255
260
  try {
256
- let { data: n, pts: r, subtitles: i, finished: a } = await M.seek(e);
257
- if (P || t !== W || (a && (H = !0), i?.length && o.pushFragments(i), await R(r), P || t !== W)) return;
258
- n.byteLength && (await I(n), Q());
261
+ let { data: n, pts: r, subtitles: i, finished: a } = await N.seek(e);
262
+ if (F || t !== H || (a && (B = !0), i?.length && o.pushFragments(i), await ie(r), F || t !== H)) return;
263
+ n.byteLength && (await L(n), ue());
259
264
  } catch (e) {
260
- Y(e, P || t !== W);
265
+ q(e, F || t !== H);
261
266
  } finally {
262
- t === W && (V = !1);
267
+ t === H && (z = !1);
263
268
  }
264
- }, ae = async () => {
265
- let e = G;
269
+ }, de = async () => {
270
+ let e = U;
266
271
  if (e) try {
267
- await I(e), Q(), G === e && (G = null, K = 0);
272
+ await L(e), ue(), U === e && (U = null, W = 0);
268
273
  } catch (t) {
269
- if (G !== e) return;
274
+ if (U !== e) return;
270
275
  if (t?.name === "QuotaExceededError") {
271
- let t = await X(!0).then(() => !0, () => !1);
272
- if (G !== e) return;
276
+ let t = await se(!0).then(() => !0, () => !1);
277
+ if (U !== e) return;
273
278
  if (t) {
274
- H = !1, await ie(Z()?.end ?? n.currentTime);
279
+ B = !1, await Y(J()?.end ?? n.currentTime);
275
280
  return;
276
281
  }
277
282
  }
278
- if (K += 1, K < b) return;
279
- throw G = null, t;
283
+ if (W += 1, W < S) return;
284
+ throw U = null, t;
280
285
  }
281
- }, oe = async () => {
282
- if (B || V || P || !G && (H || !ne())) return;
283
- let e = ++U, t = W, n = () => P || e !== U || t !== W;
284
- B = !0;
286
+ }, fe = async () => {
287
+ if (R || z || $ !== void 0 || F || !U && (B || !ce())) return;
288
+ let e = ++V, t = H, n = () => F || e !== V || t !== H;
289
+ R = !0;
285
290
  try {
286
- if (!G) {
287
- let { data: e, subtitles: t, finished: r } = await M.read();
288
- if (n() || (r && (H = !0), t?.length && o.pushFragments(t), !e.byteLength)) return;
289
- G = e, K = 0;
291
+ if (!U) {
292
+ let { data: e, subtitles: t, finished: r } = await N.read();
293
+ if (n() || (r && (B = !0), t?.length && o.pushFragments(t), !e.byteLength)) return;
294
+ U = e, W = 0;
290
295
  }
291
- await ae(), !n() && J && (J = !1, k?.());
296
+ await de(), !n() && K && (K = !1, ee?.());
292
297
  } catch (e) {
293
- Y(e, n());
298
+ q(e, n());
294
299
  } finally {
295
- e === U && (B = !1);
300
+ e === V && (R = !1);
301
+ }
302
+ }, pe = (e) => e >= oe && !!J(), X = 0, Z = null, Q, me = (e) => {
303
+ let t = performance.now(), n = t - X;
304
+ if (n >= T) {
305
+ X = t, Z = null, M?.(e);
306
+ return;
296
307
  }
297
- }, se = (e) => e >= te && !!Z(), ce = () => {
308
+ Z = e, !Q && (Q = setTimeout(() => {
309
+ Q = void 0;
310
+ let e = Z;
311
+ Z = null, !(e === null || F) && (X = performance.now(), M?.(e));
312
+ }, T - n));
313
+ };
314
+ P.push(() => {
315
+ Q && clearTimeout(Q);
316
+ });
317
+ let he = 0, $;
318
+ P.push(() => {
319
+ $ && clearTimeout($);
320
+ });
321
+ let ge = () => {
298
322
  let t = n.currentTime, r = e.info.input.duration || n.duration;
299
- r > 0 && A?.(Math.min(Math.max(t / r, 0), 1)), !se(t) && (H = !1, ie(t));
323
+ r > 0 && me(Math.min(Math.max(t / r, 0), 1));
324
+ let i = performance.now(), a = i - he < E;
325
+ if (he = i, !pe(t)) {
326
+ if (B = !1, $ && clearTimeout($), !a) {
327
+ $ = void 0, Y(t);
328
+ return;
329
+ }
330
+ $ = setTimeout(() => {
331
+ if ($ = void 0, F) return;
332
+ let e = n.currentTime;
333
+ pe(e) || (B = !1, Y(e));
334
+ }, E);
335
+ }
300
336
  };
301
- n.addEventListener("seeking", ce), N.push(() => n.removeEventListener("seeking", ce));
302
- let $ = !1, le = () => {
303
- if ($) return;
304
- $ = !0;
337
+ n.addEventListener("seeking", ge), P.push(() => n.removeEventListener("seeking", ge));
338
+ let _e = !1, ve = () => {
339
+ if (_e) return;
340
+ _e = !0;
305
341
  let e = n.error;
306
- Y(Error(`the media element failed: ${e?.message ?? "unknown"}`, { cause: e }), !1);
342
+ q(new h(`the media element failed: ${e?.message ?? "unknown"}`, { cause: e }), !1, !0);
307
343
  };
308
- n.addEventListener("error", le), N.push(() => n.removeEventListener("error", le));
309
- let ue = setInterval(() => {
310
- $ || n.error || (X().catch(() => {}), oe().catch((e) => Y(e, !1)), H && !G && re() && C.readyState === "open" && z().catch(() => {}));
344
+ n.addEventListener("error", ve), P.push(() => n.removeEventListener("error", ve));
345
+ let ye = setInterval(() => {
346
+ _e || n.error || (se().catch(() => {}), fe().catch((e) => q(e, !1)), B && !U && le() && g.readyState === "open" && ae().catch(() => {}));
311
347
  }, 100);
312
- return N.push(() => clearInterval(ue)), {
313
- destroy: F,
348
+ return P.push(() => clearInterval(ye)), {
349
+ destroy: I,
314
350
  selectSubtitleStream: (e) => o.selectStream(e),
315
351
  indexes: e.indexes ?? [],
316
352
  duration: e.info.input.duration,
@@ -318,10 +354,10 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
318
354
  audioMimeType: e.info.output.audioMimeType
319
355
  };
320
356
  } catch (e) {
321
- throw F(), e;
357
+ throw I(), e;
322
358
  }
323
- }, E = 5, D = 500, O = 320, k = 1e6, A = 3, j = 1e4, ee = async (e) => {
324
- let { publicPath: n, workerUrl: r, length: i, read: a, onThumbnails: o, width: s = O } = e, c = await t({
359
+ }, A = 5, j = 500, ee = 320, M = 1e6, te = 3, ne = 1e4, N = async (e) => {
360
+ let { publicPath: n, workerUrl: r, length: i, read: a, onThumbnails: o, width: s = ee } = e, c = await t({
325
361
  publicPath: n,
326
362
  workerUrl: r,
327
363
  workerOptions: { type: "module" },
@@ -329,14 +365,14 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
329
365
  read: a
330
366
  });
331
367
  try {
332
- let t = await c.init(), n = t.duration, r = Math.max(e.interval ?? E, n / D), a = [];
368
+ let t = await c.init(), n = t.duration, r = Math.max(e.interval ?? A, n / j), a = [];
333
369
  for (let [e, o] of t.indexes.entries()) {
334
370
  let s = a.at(-1);
335
371
  s && o.timestamp - s.timestamp < r || a.push({
336
372
  timestamp: o.timestamp,
337
373
  endTime: n,
338
374
  startByte: o.pos,
339
- endByte: Math.min((t.indexes[e + 1]?.pos ?? i) + k, i),
375
+ endByte: Math.min((t.indexes[e + 1]?.pos ?? i) + M, i),
340
376
  done: !1,
341
377
  attempts: 0
342
378
  });
@@ -367,7 +403,7 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
367
403
  }, p = (e) => {
368
404
  e.done = !0, d = d.then(async () => {
369
405
  if (u) return;
370
- let t = await Promise.race([c.readKeyframe(e.timestamp), new Promise((e, t) => setTimeout(() => t(/* @__PURE__ */ Error("timed out")), j))]), n = await createImageBitmap(new Blob([t], { type: "image/png" })), r = new OffscreenCanvas(s, Math.max(1, Math.round(n.height * (s / n.width))));
406
+ let t = await Promise.race([c.readKeyframe(e.timestamp), new Promise((e, t) => setTimeout(() => t(/* @__PURE__ */ Error("timed out")), ne))]), n = await createImageBitmap(new Blob([t], { type: "image/png" })), r = new OffscreenCanvas(s, Math.max(1, Math.round(n.height * (s / n.width))));
371
407
  r.getContext("2d").drawImage(n, 0, 0, r.width, r.height), n.close();
372
408
  let i = await r.convertToBlob({
373
409
  type: "image/webp",
@@ -379,7 +415,7 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
379
415
  endTime: e.endTime
380
416
  }].sort((e, t) => e.startTime - t.startTime), f());
381
417
  }).catch(() => {
382
- e.attempts += 1, e.done = e.attempts >= A;
418
+ e.attempts += 1, e.done = e.attempts >= te;
383
419
  });
384
420
  };
385
421
  return f(), {
@@ -389,14 +425,14 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
389
425
  destroy: () => {
390
426
  u = !0;
391
427
  for (let e of l) URL.revokeObjectURL(e.url);
392
- l = [], w(c);
428
+ l = [], O(c);
393
429
  }
394
430
  };
395
431
  } catch (e) {
396
- throw w(c), e;
432
+ throw O(c), e;
397
433
  }
398
- }, M = 1280, N = 1920, P = 250, F = 100, I = () => typeof HTMLCanvasElement < "u" && "captureStream" in HTMLCanvasElement.prototype, L = () => typeof document < "u" && typeof HTMLVideoElement < "u" && typeof HTMLVideoElement.prototype.requestPictureInPicture == "function" && !!document.pictureInPictureEnabled, R = () => typeof HTMLVideoElement < "u" && "mozCaptureStream" in HTMLVideoElement.prototype, z = () => I() ? L() ? "window" : R() ? "burn-in" : null : null, B = (e) => {
399
- let { video: t, canvas: n } = e, r = e.mode ?? z() ?? "window", i = e.maxWidth ?? (r === "burn-in" ? N : M), a, o, s, c = !1, l = !1, u = !1, d = !1, f, p = () => r === "burn-in" ? !!a : !!a && document.pictureInPictureElement === a.mirror, m = (e, r) => {
434
+ }, P = 1280, F = 1920, I = 250, L = 100, re = () => typeof HTMLCanvasElement < "u" && "captureStream" in HTMLCanvasElement.prototype, ie = () => typeof document < "u" && typeof HTMLVideoElement < "u" && typeof HTMLVideoElement.prototype.requestPictureInPicture == "function" && !!document.pictureInPictureEnabled, ae = () => typeof HTMLVideoElement < "u" && "mozCaptureStream" in HTMLVideoElement.prototype, R = () => re() ? ie() ? "window" : ae() ? "burn-in" : null : null, z = (e) => {
435
+ let { video: t, canvas: n } = e, r = e.mode ?? R() ?? "window", i = e.maxWidth ?? (r === "burn-in" ? F : P), a, o, s, c = !1, l = !1, u = !1, d = !1, f, p = () => r === "burn-in" ? !!a : !!a && document.pictureInPictureElement === a.mirror, m = (e, r) => {
400
436
  r.drawImage(t, 0, 0, e.width, e.height), n.width > 0 && n.height > 0 && r.drawImage(n, 0, 0, e.width, e.height);
401
437
  }, h = () => {
402
438
  a && m(a.composite, a.context);
@@ -423,11 +459,11 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
423
459
  l = !0;
424
460
  let { mirror: e } = a;
425
461
  h(), e.play().then(() => new Promise((e) => {
426
- setTimeout(e, F);
462
+ setTimeout(e, L);
427
463
  })).catch(() => {}).finally(() => {
428
464
  e.pause(), setTimeout(() => {
429
465
  l = !1;
430
- }, F);
466
+ }, L);
431
467
  });
432
468
  }, E = [["play", () => {
433
469
  t.play().catch(() => {});
@@ -464,7 +500,7 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
464
500
  };
465
501
  if (a = f, u.srcObject = f.stream, (e.container ?? t.parentElement ?? document.body).appendChild(u), v(), s = setInterval(() => {
466
502
  t.paused && h();
467
- }, P), u.play().catch(() => {}), u.readyState === 0 && await new Promise((e) => {
503
+ }, I), u.play().catch(() => {}), u.readyState === 0 && await new Promise((e) => {
468
504
  let t = () => {
469
505
  clearTimeout(n), e();
470
506
  }, n = setTimeout(t, 1e3);
@@ -510,4 +546,4 @@ var a = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
510
546
  };
511
547
  };
512
548
  //#endregion
513
- export { T as a, m as c, C as i, a as l, z as n, w as o, ee as r, c as s, B as t, s as u };
549
+ export { h as a, O as c, a as d, s as f, D as i, c as l, R as n, g as o, N as r, k as s, z as t, m as u };