@banou/media-player 0.10.17 → 0.10.19

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,2 +1,2 @@
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-C9vSEJYW.js";
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-C4Gj_4zs.js";
2
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 };
@@ -8,5 +8,5 @@ export declare const updateSourceBuffer: (sourceBuffer: SourceBuffer, mediaSourc
8
8
  appendBuffer: (buffer: ArrayBuffer | Uint8Array) => Promise<void>;
9
9
  unbufferRange: (start: number, end: number) => Promise<void>;
10
10
  updateTimestampOffset: (timestampOffset: number) => Promise<void>;
11
- endOfStream: () => Promise<void>;
11
+ endOfStream: (allowed?: () => boolean) => Promise<void>;
12
12
  };
@@ -26,8 +26,8 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
26
26
  updateTimestampOffset: (t) => r(async () => {
27
27
  e.timestampOffset = t;
28
28
  }),
29
- endOfStream: () => r(async () => {
30
- if (!(t.readyState !== "open" || e.updating)) try {
29
+ endOfStream: (n = () => !0) => r(async () => {
30
+ if (t.readyState === "open" && !e.updating && n()) try {
31
31
  t.endOfStream();
32
32
  } catch {}
33
33
  })
@@ -174,13 +174,13 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
174
174
  constructor(e, t) {
175
175
  super(e, t), this.name = "MediaElementError";
176
176
  }
177
- }, _ = (e) => !!e && typeof e == "object" && e.mediaElement === !0, v = -20, y = 60, b = 30, x = -5, S = 20, C = 5, w = 15e3, T = 1, E = 3, ee = 12, D = 200, O = 250, k = 25e5, A = (e) => {
177
+ }, _ = (e) => !!e && typeof e == "object" && e.mediaElement === !0, v = -20, y = 60, b = 30, x = -5, S = 20, C = 5, w = 15e3, T = 1, E = 3, D = 12, O = 200, k = 250, A = 25e5, j = (e) => {
178
178
  let { worker: t } = e, n = setTimeout(() => t.terminate(), 2e3);
179
179
  e.destroy().catch(() => {}).finally(() => {
180
180
  clearTimeout(n), t.terminate();
181
181
  });
182
- }, te = async (t) => {
183
- let { videoElement: n, subtitleContainer: r, read: a, length: s, publicPath: c, libavWorkerUrl: l, jassubWorkerUrl: u, jassubWasmUrl: d, jassubLegacyWasmUrl: f, defaultFontUrl: p, bufferSize: m = k, audioStreamIndex: _, onReady: te, onError: ne, onRecovered: re, onSeek: ie, onSubtitleStreams: ae, onAudioStreams: oe } = t, j = await e({
182
+ }, ee = async (t) => {
183
+ let { videoElement: n, subtitleContainer: r, read: a, length: s, publicPath: c, libavWorkerUrl: l, jassubWorkerUrl: u, jassubWasmUrl: d, jassubLegacyWasmUrl: f, defaultFontUrl: p, bufferSize: m = A, audioStreamIndex: _, onReady: ee, onError: te, onRecovered: ne, onSeek: re, onSubtitleStreams: ie, onAudioStreams: ae } = t, M = await e({
184
184
  publicPath: c,
185
185
  workerUrl: l,
186
186
  workerOptions: { type: "module" },
@@ -188,18 +188,18 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
188
188
  length: s,
189
189
  audioStreamIndex: _,
190
190
  read: a
191
- }), M = [], N = !1, se = () => {
192
- if (!N) {
193
- N = !0;
194
- for (let e of [...M].reverse()) try {
191
+ }), N = [], P = !1, F = () => {
192
+ if (!P) {
193
+ P = !0;
194
+ for (let e of [...N].reverse()) try {
195
195
  e();
196
196
  } catch {}
197
197
  }
198
198
  };
199
- M.push(() => A(j));
199
+ N.push(() => j(M));
200
200
  try {
201
- let e = await j.init(), t = e.audioStreams ?? [], a = t.some((e) => e.streamIndex === _) ? _ : t[0]?.streamIndex ?? -1;
202
- oe?.(t, a);
201
+ let e = await M.init(), t = e.audioStreams ?? [], a = t.some((e) => e.streamIndex === _) ? _ : t[0]?.streamIndex ?? -1;
202
+ ae?.(t, a);
203
203
  let s = h({
204
204
  video: n,
205
205
  container: r,
@@ -207,19 +207,19 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
207
207
  wasmUrl: d,
208
208
  legacyWasmUrl: f,
209
209
  defaultFontUrl: p,
210
- onStreams: ae
210
+ onStreams: ie
211
211
  });
212
- if (M.push(() => s.destroy()), e.attachments?.length && s.pushAttachments(e.attachments), !e.info.output.videoMimeType) throw Error("The video codec in this file could not be identified");
212
+ if (N.push(() => s.destroy()), e.attachments?.length && s.pushAttachments(e.attachments), !e.info.output.videoMimeType) throw Error("The video codec in this file could not be identified");
213
213
  let c = [e.info.output.videoMimeType, e.info.output.audioMimeType].filter(Boolean).join(","), l = `video/mp4; codecs="${c}"`;
214
214
  if (!MediaSource.isTypeSupported(l)) throw Error(`This browser cannot play the codecs in this file: ${c}`);
215
- let m = new MediaSource(), k = URL.createObjectURL(m);
216
- M.push(() => URL.revokeObjectURL(k)), n.src = k, M.push(() => {
215
+ let m = new MediaSource(), A = URL.createObjectURL(m);
216
+ N.push(() => URL.revokeObjectURL(A)), n.src = A, N.push(() => {
217
217
  try {
218
218
  n.pause();
219
219
  } catch {}
220
220
  n.removeAttribute("src"), n.load();
221
221
  });
222
- let A = await new Promise((t, n) => {
222
+ let j = await new Promise((t, n) => {
223
223
  let r = setTimeout(() => {
224
224
  i(), n(/* @__PURE__ */ Error("The MediaSource never opened"));
225
225
  }, w), i = () => {
@@ -237,138 +237,138 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
237
237
  i(), n(/* @__PURE__ */ Error("The MediaSource closed before a SourceBuffer could be created"));
238
238
  };
239
239
  m.addEventListener("sourceopen", a, { once: !0 }), m.addEventListener("sourceclose", o, { once: !0 }), m.addEventListener("error", o, { once: !0 });
240
- }), { appendBuffer: P, unbufferRange: ce, updateTimestampOffset: le, endOfStream: ue } = o(A, m);
241
- await P(e.data), e.subtitles?.length && s.pushFragments(e.subtitles), te?.();
242
- let F = !1, I = !1, L = 0, R, de = () => R ?? n.currentTime, z = !1, fe = !1, pe = 0, B = 0, V = null, H = 0, U = 0, W = !1, G = 0, K = !0, q = (e, t, n = !1) => {
240
+ }), { appendBuffer: I, unbufferRange: oe, updateTimestampOffset: se, endOfStream: ce } = o(j, m);
241
+ await I(e.data), e.subtitles?.length && s.pushFragments(e.subtitles), ee?.();
242
+ let L = !1, R = !1, z = 0, B, le = () => B ?? n.currentTime, V = !1, ue = !1, de = 0, H = 0, U = null, W = 0, G = 0, K = !1, fe = 0, q = !0, J = (e, t, n = !1) => {
243
243
  let r = e?.message === "Cancelled";
244
- t && r || (console.error(e), (!W || n) && (W = !0, ne?.(r ? Error("Reading the video file failed", { cause: e }) : e)));
245
- }, me = async (e = !1) => {
246
- if (L > 0 && !e) return;
247
- let t = n.currentTime, r = e ? x : v, a = e ? S : y, o = i(A), s = (e, t) => (K = !1, ce(e, t));
244
+ t && r || (console.error(e), (!K || n) && (K = !0, te?.(r ? Error("Reading the video file failed", { cause: e }) : e)));
245
+ }, pe = async (e = !1) => {
246
+ if (z > 0 && !e) return;
247
+ let t = n.currentTime, r = e ? x : v, a = e ? S : y, o = i(j), s = (e, t) => (q = !1, oe(e, t));
248
248
  o.length && o[0].start < t + r && await s(0, t + r);
249
249
  for (let { end: e } of o) e > t + a && await s(t + a, e);
250
- }, he = () => {
251
- let e = i(A);
250
+ }, me = () => {
251
+ let e = i(j);
252
252
  if (!e.length) return !0;
253
- let t = de(), n = e.find((e) => e.start <= t + T && t < e.end);
254
- return be() && ve(t) && (!n || n.start <= t) || n && n.end >= t + y ? !1 : !n || n.end < t + b;
255
- }, ge = (e) => i(A).find((t) => t.start <= e + T && e < t.end), _e = () => ge(n.currentTime), ve = (e = n.currentTime) => {
256
- let t = ge(e);
257
- return e >= U - .1 || !!t && t.end >= U - .1;
258
- }, ye = () => {
259
- let e = i(A).map((e) => e.end);
260
- e.length && (U = Math.max(U, ...e)), z && (fe = !0);
261
- }, be = () => z || fe && (i(A).at(-1)?.end ?? 0) >= U - .1, J = async (e) => {
262
- I = !0, V = null, H = 0, G = e, K = !0;
263
- let t = ++B;
253
+ let t = le(), n = e.find((e) => e.start <= t + T && t < e.end);
254
+ return ye() && _e(t) && (!n || n.start <= t) || n && n.end >= t + y ? !1 : !n || n.end < t + b;
255
+ }, he = (e) => i(j).find((t) => t.start <= e + T && e < t.end), ge = () => he(n.currentTime), _e = (e = n.currentTime) => {
256
+ let t = he(e);
257
+ return e >= G - .1 || !!t && t.end >= G - .1;
258
+ }, ve = () => {
259
+ let e = i(j).map((e) => e.end);
260
+ e.length && (G = Math.max(G, ...e)), V && (ue = !0);
261
+ }, ye = () => V || ue && (i(j).at(-1)?.end ?? 0) >= G - .1, Y = async (e) => {
262
+ R = !0, U = null, W = 0, fe = e, q = !0;
263
+ let t = ++H;
264
264
  try {
265
- let { data: n, pts: r, subtitles: i, finished: a } = await j.seek(e);
266
- if (N || t !== B || (a && (z = !0), i?.length && s.pushFragments(i), await le(r), N || t !== B)) return;
267
- n.byteLength && (await P(n), ye());
265
+ let { data: n, pts: r, subtitles: i, finished: a } = await M.seek(e);
266
+ if (P || t !== H || (a && (V = !0), i?.length && s.pushFragments(i), await se(r), P || t !== H)) return;
267
+ n.byteLength && (await I(n), ve());
268
268
  } catch (e) {
269
- t === B && (K = !1), q(e, N || t !== B);
269
+ t === H && (q = !1), J(e, P || t !== H);
270
270
  } finally {
271
- t === B && (I = !1);
271
+ t === H && (R = !1);
272
272
  }
273
- }, xe = async () => {
274
- let e = V;
273
+ }, be = async () => {
274
+ let e = U;
275
275
  if (e) try {
276
- await P(e), ye(), V === e && (V = null, H = 0);
276
+ await I(e), ve(), U === e && (U = null, W = 0);
277
277
  } catch (t) {
278
- if (V !== e) return;
278
+ if (U !== e) return;
279
279
  if (t?.name === "QuotaExceededError") {
280
- let t = await me(!0).then(() => !0, () => !1);
281
- if (V !== e) return;
280
+ let t = await pe(!0).then(() => !0, () => !1);
281
+ if (U !== e) return;
282
282
  if (t) {
283
- z = !1, await J(_e()?.end ?? n.currentTime);
283
+ V = !1, await Y(ge()?.end ?? n.currentTime);
284
284
  return;
285
285
  }
286
286
  }
287
- if (H += 1, H < C) return;
288
- throw V = null, t;
287
+ if (W += 1, W < C) return;
288
+ throw U = null, t;
289
289
  }
290
- }, Se = async () => {
291
- if (F || I || Q !== void 0 || N || !V && (z || !he())) return;
292
- let e = ++pe, t = B, n = () => N || e !== pe || t !== B;
293
- F = !0;
290
+ }, xe = async () => {
291
+ if (L || R || $ !== void 0 || P || !U && (V || !me())) return;
292
+ let e = ++de, t = H, n = () => P || e !== de || t !== H;
293
+ L = !0;
294
294
  try {
295
- if (!V) {
296
- let { data: e, subtitles: t, finished: r } = await j.read();
297
- if (n() || (r && (z = !0), t?.length && s.pushFragments(t), !e.byteLength)) return;
298
- V = e, H = 0;
295
+ if (!U) {
296
+ let { data: e, subtitles: t, finished: r } = await M.read();
297
+ if (n() || (r && (V = !0), t?.length && s.pushFragments(t), !e.byteLength)) return;
298
+ U = e, W = 0;
299
299
  }
300
- await xe(), !n() && W && (W = !1, re?.());
300
+ await be(), !n() && K && (K = !1, ne?.());
301
301
  } catch (e) {
302
- q(e, n());
302
+ J(e, n());
303
303
  } finally {
304
- e === pe && (F = !1);
304
+ e === de && (L = !1);
305
305
  }
306
- }, Ce = (e) => e >= G && we(e) && Te(e), we = (e) => i(A).some((t) => t.start <= e && e < t.end), Y = (e) => {
307
- let t = ge(e);
306
+ }, Se = (e) => e >= fe && Ce(e) && we(e), Ce = (e) => i(j).some((t) => t.start <= e && e < t.end), X = (e) => {
307
+ let t = he(e);
308
308
  return t ? t.end - e : 0;
309
- }, Te = (e) => Y(e) >= E || be() && ve(e), Ee = async (e) => {
310
- if (!N && !(we(e) && Te(e))) {
311
- z = !1, L++, R = e;
309
+ }, we = (e) => X(e) >= E || ye() && _e(e), Te = async (e) => {
310
+ if (!P && !(Ce(e) && we(e))) {
311
+ V = !1, z++, B = e;
312
312
  try {
313
- await J(e);
314
- let t = B;
315
- for (let n = 0; n < ee && !(N || t !== B || z || Y(e) >= E); n++) {
316
- let t = Y(e);
317
- if (await Se(), Y(e) <= t) break;
313
+ await Y(e);
314
+ let t = H;
315
+ for (let n = 0; n < D && !(P || t !== H || V || X(e) >= E); n++) {
316
+ let t = X(e);
317
+ if (await xe(), X(e) <= t) break;
318
318
  }
319
319
  } finally {
320
- L--, R === e && (R = void 0);
320
+ z--, B === e && (B = void 0);
321
321
  }
322
322
  }
323
- }, De = 0, X = null, Z, Oe = (e) => {
324
- let t = performance.now(), n = t - De;
325
- if (n >= D) {
326
- De = t, X = null, ie?.(e);
323
+ }, Ee = 0, Z = null, Q, De = (e) => {
324
+ let t = performance.now(), n = t - Ee;
325
+ if (n >= O) {
326
+ Ee = t, Z = null, re?.(e);
327
327
  return;
328
328
  }
329
- X = e, !Z && (Z = setTimeout(() => {
330
- Z = void 0;
331
- let e = X;
332
- X = null, !(e === null || N) && (De = performance.now(), ie?.(e));
333
- }, D - n));
329
+ Z = e, !Q && (Q = setTimeout(() => {
330
+ Q = void 0;
331
+ let e = Z;
332
+ Z = null, !(e === null || P) && (Ee = performance.now(), re?.(e));
333
+ }, O - n));
334
334
  };
335
- M.push(() => {
336
- Z && clearTimeout(Z);
337
- });
338
- let ke = 0, Q;
339
- M.push(() => {
335
+ N.push(() => {
340
336
  Q && clearTimeout(Q);
341
337
  });
342
- let Ae = () => {
338
+ let Oe = 0, $;
339
+ N.push(() => {
340
+ $ && clearTimeout($);
341
+ });
342
+ let ke = () => {
343
343
  let t = n.currentTime, r = e.info.input.duration || n.duration;
344
- r > 0 && Oe(Math.min(Math.max(t / r, 0), 1));
345
- let i = performance.now(), a = i - ke < O;
346
- if (ke = i, !Ce(t) && !(K && (I || Y(t) > 0) && Math.abs(t - G) < .001)) {
347
- if (z = !1, Q && clearTimeout(Q), !a) {
348
- Q = void 0, J(t);
344
+ r > 0 && De(Math.min(Math.max(t / r, 0), 1));
345
+ let i = performance.now(), a = i - Oe < k;
346
+ if (Oe = i, !Se(t) && !(q && (R || X(t) > 0) && Math.abs(t - fe) < .001)) {
347
+ if (V = !1, $ && clearTimeout($), !a) {
348
+ $ = void 0, Y(t);
349
349
  return;
350
350
  }
351
- Q = setTimeout(() => {
352
- if (Q = void 0, N) return;
351
+ $ = setTimeout(() => {
352
+ if ($ = void 0, P) return;
353
353
  let e = n.currentTime;
354
- Ce(e) || (z = !1, J(e));
355
- }, O);
354
+ Se(e) || (V = !1, Y(e));
355
+ }, k);
356
356
  }
357
357
  };
358
- n.addEventListener("seeking", Ae), M.push(() => n.removeEventListener("seeking", Ae));
359
- let $ = !1, je = () => {
360
- if ($) return;
361
- $ = !0;
358
+ n.addEventListener("seeking", ke), N.push(() => n.removeEventListener("seeking", ke));
359
+ let Ae = !1, je = () => {
360
+ if (Ae) return;
361
+ Ae = !0;
362
362
  let e = n.error;
363
- q(new g(`the media element failed: ${e?.message ?? "unknown"}`, { cause: e }), !1, !0);
363
+ J(new g(`the media element failed: ${e?.message ?? "unknown"}`, { cause: e }), !1, !0);
364
364
  };
365
- n.addEventListener("error", je), M.push(() => n.removeEventListener("error", je));
365
+ n.addEventListener("error", je), N.push(() => n.removeEventListener("error", je));
366
366
  let Me = setInterval(() => {
367
- $ || n.error || (me().catch(() => {}), Se().catch((e) => q(e, !1)), be() && !V && ve() && m.readyState === "open" && ue().catch(() => {}));
367
+ Ae || n.error || (pe().catch(() => {}), xe().catch((e) => J(e, !1)), ye() && !U && _e() && m.readyState === "open" && ce(() => !R).catch(() => {}));
368
368
  }, 100);
369
- return M.push(() => clearInterval(Me)), {
370
- destroy: se,
371
- prepareSeek: Ee,
369
+ return N.push(() => clearInterval(Me)), {
370
+ destroy: F,
371
+ prepareSeek: Te,
372
372
  videoElement: n,
373
373
  selectSubtitleStream: (e) => s.selectStream(e),
374
374
  indexes: e.indexes ?? [],
@@ -378,10 +378,10 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
378
378
  audioMimeType: e.info.output.audioMimeType
379
379
  };
380
380
  } catch (e) {
381
- throw se(), e;
381
+ throw F(), e;
382
382
  }
383
- }, ne = 5, re = 500, ie = 320, ae = 1e6, oe = 3, j = 1e4, M = 1.5, N = 4e6, se = 3e4, P = async (e) => {
384
- let { publicPath: n, workerUrl: r, length: i, read: a, onThumbnails: o, width: s = ie } = e, c = await t({
383
+ }, te = 5, ne = 500, re = 320, ie = 1e6, ae = 3, M = 1e4, N = 1.5, P = 4e6, F = 3e4, I = async (e) => {
384
+ let { publicPath: n, workerUrl: r, length: i, read: a, onThumbnails: o, width: s = re } = e, c = await t({
385
385
  publicPath: n,
386
386
  workerUrl: r,
387
387
  workerOptions: { type: "module" },
@@ -389,7 +389,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
389
389
  read: a
390
390
  });
391
391
  try {
392
- let t = await c.init(), n = t.duration, r = Math.max(e.interval ?? ne, n / re), a = [], l = (e) => {
392
+ let t = await c.init(), n = t.duration, r = Math.max(e.interval ?? te, n / ne), a = [], l = (e) => {
393
393
  let t = [];
394
394
  for (let [a, o] of e.entries()) {
395
395
  let s = t.at(-1);
@@ -397,7 +397,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
397
397
  timestamp: o.timestamp,
398
398
  endTime: n,
399
399
  startByte: o.pos,
400
- endByte: Math.min((e[a + 1]?.pos ?? i) + ae, i),
400
+ endByte: Math.min((e[a + 1]?.pos ?? i) + ie, i),
401
401
  done: !1,
402
402
  attempts: 0
403
403
  });
@@ -436,7 +436,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
436
436
  }), o(e);
437
437
  }, x = async (e) => {
438
438
  if (d) return;
439
- 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))));
439
+ let t = await Promise.race([c.readKeyframe(e.timestamp), new Promise((e, t) => setTimeout(() => t(/* @__PURE__ */ Error("timed out")), M))]), n = await createImageBitmap(new Blob([t], { type: "image/png" })), r = new OffscreenCanvas(s, Math.max(1, Math.round(n.height * (s / n.width))));
440
440
  r.getContext("2d").drawImage(n, 0, 0, r.width, r.height), n.close();
441
441
  let i = await r.convertToBlob({
442
442
  type: "image/webp",
@@ -460,7 +460,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
460
460
  if (!f.length) return;
461
461
  let e = f.splice(y(), 1)[0];
462
462
  p = !0, x(e).catch(() => {
463
- e.attempts += 1, e.done = e.attempts >= oe;
463
+ e.attempts += 1, e.done = e.attempts >= ae;
464
464
  }).finally(() => {
465
465
  p = !1, S();
466
466
  });
@@ -469,7 +469,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
469
469
  }, w = async (e) => {
470
470
  _ = !0;
471
471
  try {
472
- let t = await Promise.race([c.init(), new Promise((e, t) => setTimeout(() => t(/* @__PURE__ */ Error("timed out")), se))]);
472
+ let t = await Promise.race([c.init(), new Promise((e, t) => setTimeout(() => t(/* @__PURE__ */ Error("timed out")), F))]);
473
473
  if (d) return;
474
474
  h = e;
475
475
  let n = l(t.indexes);
@@ -495,7 +495,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
495
495
  if (d) return;
496
496
  v = e;
497
497
  let t = T(e);
498
- h < 0 ? h = t : (t >= Math.max(h * M, h + N) || t >= i && h < i) && (g = !0), E(e), S();
498
+ h < 0 ? h = t : (t >= Math.max(h * N, h + P) || t >= i && h < i) && (g = !0), E(e), S();
499
499
  },
500
500
  prioritize: (e) => {
501
501
  d || (m = e);
@@ -503,14 +503,14 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
503
503
  destroy: () => {
504
504
  d = !0, f.length = 0;
505
505
  for (let e of u) URL.revokeObjectURL(e.url);
506
- u = [], A(c);
506
+ u = [], j(c);
507
507
  }
508
508
  };
509
509
  } catch (e) {
510
- throw A(c), e;
510
+ throw j(c), e;
511
511
  }
512
- }, ce = 1280, le = 1920, ue = 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, de = () => I() ? L() ? "window" : R() ? "burn-in" : null : null, z = (e) => {
513
- let { video: t, subtitles: n } = e, r = e.mode ?? de() ?? "window", i = e.maxWidth ?? (r === "burn-in" ? le : ce), 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) => {
512
+ }, oe = 1280, se = 1920, ce = 250, L = 100, R = () => typeof HTMLCanvasElement < "u" && "captureStream" in HTMLCanvasElement.prototype, z = () => typeof document < "u" && typeof HTMLVideoElement < "u" && typeof HTMLVideoElement.prototype.requestPictureInPicture == "function" && !!document.pictureInPictureEnabled, B = () => typeof HTMLVideoElement < "u" && "mozCaptureStream" in HTMLVideoElement.prototype, le = () => R() ? z() ? "window" : B() ? "burn-in" : null : null, V = (e) => {
513
+ let { video: t, subtitles: n } = e, r = e.mode ?? le() ?? "window", i = e.maxWidth ?? (r === "burn-in" ? se : oe), 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) => {
514
514
  r.drawImage(t, 0, 0, e.width, e.height);
515
515
  let i = n.querySelector("canvas");
516
516
  i && i.width > 0 && i.height > 0 && r.drawImage(i, 0, 0, e.width, e.height);
@@ -539,39 +539,39 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
539
539
  l = !0;
540
540
  let { mirror: e } = a;
541
541
  h(), e.play().then(() => new Promise((e) => {
542
- setTimeout(e, F);
542
+ setTimeout(e, L);
543
543
  })).catch(() => {}).finally(() => {
544
544
  e.pause(), setTimeout(() => {
545
545
  l = !1;
546
- }, F);
546
+ }, L);
547
547
  });
548
548
  }, E = [["play", () => {
549
549
  t.play().catch(() => {});
550
- }], ["pause", () => t.pause()]], ee = (e) => {
550
+ }], ["pause", () => t.pause()]], D = (e) => {
551
551
  if ("mediaSession" in navigator) for (let [t, n] of E) try {
552
552
  navigator.mediaSession.setActionHandler(t, e ? n : null);
553
553
  } catch {}
554
- }, D = () => {
555
- if (y(), ee(!1), t.removeEventListener("play", C), t.removeEventListener("pause", w), t.removeEventListener("seeked", T), !a) {
554
+ }, O = () => {
555
+ if (y(), D(!1), t.removeEventListener("play", C), t.removeEventListener("pause", w), t.removeEventListener("seeked", T), !a) {
556
556
  f?.();
557
557
  return;
558
558
  }
559
559
  let { stream: e, mirror: n } = a;
560
- n.removeEventListener("play", x), n.removeEventListener("pause", S), n.removeEventListener("leavepictureinpicture", O);
560
+ n.removeEventListener("play", x), n.removeEventListener("pause", S), n.removeEventListener("leavepictureinpicture", k);
561
561
  for (let t of e.getTracks()) t.stop();
562
562
  n.remove(), a = void 0, f?.();
563
- }, O = () => D(), k = (e) => {
563
+ }, k = () => O(), A = (e) => {
564
564
  let r = t.style.opacity, i = n.style.display;
565
565
  e.style.cssText = "position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:1", t.style.opacity = "0", n.style.display = "none", f = () => {
566
566
  f = void 0, t.style.opacity = r, n.style.display = i;
567
567
  };
568
- }, A = async () => {
568
+ }, j = async () => {
569
569
  let n = Math.min(t.videoWidth || i, i), o = Math.round(n * ((t.videoHeight || 9) / (t.videoWidth || 16))), c = document.createElement("canvas");
570
570
  c.width = n, c.height = o;
571
571
  let l = c.getContext("2d");
572
572
  if (!l) throw Error("the picture in picture composite has no 2d context");
573
573
  let u = document.createElement("video");
574
- u.muted = !0, u.playsInline = !0, r === "burn-in" ? k(u) : u.style.cssText = "position:fixed;width:1px;height:1px;opacity:0;pointer-events:none;left:-1px;top:-1px", m(c, l);
574
+ u.muted = !0, u.playsInline = !0, r === "burn-in" ? A(u) : u.style.cssText = "position:fixed;width:1px;height:1px;opacity:0;pointer-events:none;left:-1px;top:-1px", m(c, l);
575
575
  let f = {
576
576
  composite: c,
577
577
  context: l,
@@ -580,7 +580,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
580
580
  };
581
581
  if (a = f, u.srcObject = f.stream, (e.container ?? t.parentElement ?? document.body).appendChild(u), v(), s = setInterval(() => {
582
582
  t.paused && h();
583
- }, ue), u.play().catch(() => {}), u.readyState === 0 && await new Promise((e) => {
583
+ }, ce), u.play().catch(() => {}), u.readyState === 0 && await new Promise((e) => {
584
584
  let t = () => {
585
585
  clearTimeout(n), e();
586
586
  }, n = setTimeout(t, 1e3);
@@ -589,7 +589,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
589
589
  u.remove();
590
590
  return;
591
591
  }
592
- if (u.addEventListener("play", x), u.addEventListener("pause", S), u.addEventListener("leavepictureinpicture", O), t.addEventListener("play", C), t.addEventListener("pause", w), t.addEventListener("seeked", T), ee(!0), b(), r === "burn-in") {
592
+ if (u.addEventListener("play", x), u.addEventListener("pause", S), u.addEventListener("leavepictureinpicture", k), t.addEventListener("play", C), t.addEventListener("pause", w), t.addEventListener("seeked", T), D(!0), b(), r === "burn-in") {
593
593
  t.paused && u.pause(), e.onBurnedInChange?.(!0);
594
594
  return;
595
595
  }
@@ -602,7 +602,7 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
602
602
  try {
603
603
  if (p()) {
604
604
  if (r === "burn-in") {
605
- D(), e.onBurnedInChange?.(!1);
605
+ O(), e.onBurnedInChange?.(!1);
606
606
  return;
607
607
  }
608
608
  await document.exitPictureInPicture().catch(() => {});
@@ -610,9 +610,9 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
610
610
  }
611
611
  r !== "burn-in" && document.pictureInPictureElement && await document.exitPictureInPicture().catch(() => {});
612
612
  try {
613
- await A();
613
+ await j();
614
614
  } catch (t) {
615
- console.warn("subtitle compositing for picture in picture failed", t), D(), r === "burn-in" && e.onBurnedInChange?.(!1);
615
+ console.warn("subtitle compositing for picture in picture failed", t), O(), r === "burn-in" && e.onBurnedInChange?.(!1);
616
616
  }
617
617
  } finally {
618
618
  u = !1;
@@ -621,9 +621,9 @@ var i = (e) => Array(e.buffered.length).fill(void 0).map((t, n) => ({
621
621
  },
622
622
  mode: r,
623
623
  destroy: () => {
624
- d = !0, r !== "burn-in" && p() && document.exitPictureInPicture().catch(() => {}), D(), r === "burn-in" && e.onBurnedInChange?.(!1);
624
+ d = !0, r !== "burn-in" && p() && document.exitPictureInPicture().catch(() => {}), O(), r === "burn-in" && e.onBurnedInChange?.(!1);
625
625
  }
626
626
  };
627
627
  };
628
628
  //#endregion
629
- export { g as a, A as c, i as d, o as f, k as i, s as l, de as n, _ as o, P as r, te as s, z as t, h as u };
629
+ export { g as a, j as c, i as d, o as f, A as i, s as l, le as n, _ as o, I as r, ee as s, V as t, h as u };