@videojs/html 10.0.0-beta.16 → 10.0.0-beta.17

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.
Files changed (197) hide show
  1. package/cdn/{abort-CzqmAxxH.js → abort-BL-SGV3o.js} +1 -1
  2. package/cdn/{abort-CzqmAxxH.js.map → abort-BL-SGV3o.js.map} +1 -1
  3. package/cdn/{abort-KaHR4JO1.js → abort-DGNIECLn.js} +1 -1
  4. package/cdn/{abort-KaHR4JO1.js.map → abort-DGNIECLn.js.map} +1 -1
  5. package/cdn/audio-minimal-ui.dev.js +3 -3
  6. package/cdn/audio-minimal-ui.js +1 -1
  7. package/cdn/audio-minimal.dev.js +4 -4
  8. package/cdn/audio-minimal.js +1 -1
  9. package/cdn/audio-minimal.js.map +1 -1
  10. package/cdn/audio-ui.dev.js +3 -4
  11. package/cdn/audio-ui.js +1 -1
  12. package/cdn/audio.dev.js +4 -5
  13. package/cdn/audio.dev.js.map +1 -1
  14. package/cdn/audio.js +1 -1
  15. package/cdn/audio.js.map +1 -1
  16. package/cdn/background.dev.js +1 -1
  17. package/cdn/background.js +1 -1
  18. package/cdn/compounds-Df_1JbZD.js +8 -0
  19. package/cdn/compounds-Df_1JbZD.js.map +1 -0
  20. package/cdn/{volume-slider-C6ek7oC9.js → compounds-VFPcCeRV.js} +2784 -2760
  21. package/cdn/compounds-VFPcCeRV.js.map +1 -0
  22. package/cdn/{create-player-DckZq-sE.js → create-player-CyG77t-m.js} +1336 -1153
  23. package/cdn/create-player-CyG77t-m.js.map +1 -0
  24. package/cdn/create-player-Gom2ZZe3.js +7 -0
  25. package/cdn/create-player-Gom2ZZe3.js.map +1 -0
  26. package/cdn/{hls-lPH0rWmB.js → hls-BAbdl84H.js} +3 -3
  27. package/cdn/{hls-lPH0rWmB.js.map → hls-BAbdl84H.js.map} +1 -1
  28. package/cdn/{hls-CJCXZSGG.js → hls-BrzPpueW.js} +4 -4
  29. package/cdn/{hls-CJCXZSGG.js.map → hls-BrzPpueW.js.map} +1 -1
  30. package/cdn/hotkey-element-DR3ZAqKa.js +2 -0
  31. package/cdn/hotkey-element-DR3ZAqKa.js.map +1 -0
  32. package/cdn/hotkey-element-Dlta37Be.js +369 -0
  33. package/cdn/hotkey-element-Dlta37Be.js.map +1 -0
  34. package/cdn/media/dash-video.dev.js +1 -1
  35. package/cdn/media/dash-video.js +1 -1
  36. package/cdn/media/hls-video.dev.js +2 -2
  37. package/cdn/media/hls-video.js +1 -1
  38. package/cdn/media/mux-audio.dev.js +3 -3
  39. package/cdn/media/mux-audio.js +1 -1
  40. package/cdn/media/mux-video.dev.js +3 -3
  41. package/cdn/media/mux-video.js +1 -1
  42. package/cdn/media/native-hls-video.dev.js +2 -2
  43. package/cdn/media/native-hls-video.js +1 -1
  44. package/cdn/media/simple-hls-video.dev.js +2 -2
  45. package/cdn/media/simple-hls-video.js +2 -2
  46. package/cdn/media/simple-hls-video.js.map +1 -1
  47. package/cdn/{media-props-mixin-CZLZIhGT.js → media-props-mixin-hheRmkup.js} +9 -9
  48. package/cdn/{media-props-mixin-CZLZIhGT.js.map → media-props-mixin-hheRmkup.js.map} +1 -1
  49. package/cdn/{media-props-mixin-DrjlZybt.js → media-props-mixin-yRWj8yXF.js} +3 -3
  50. package/cdn/{media-props-mixin-DrjlZybt.js.map → media-props-mixin-yRWj8yXF.js.map} +1 -1
  51. package/cdn/minimal-ui-B3BBK5nX.js +2 -0
  52. package/cdn/minimal-ui-B3BBK5nX.js.map +1 -0
  53. package/cdn/minimal-ui-CPRSYky_.js +28 -0
  54. package/cdn/minimal-ui-CPRSYky_.js.map +1 -0
  55. package/cdn/minimal-ui-Cnaig4X6.js +22 -0
  56. package/cdn/minimal-ui-Cnaig4X6.js.map +1 -0
  57. package/cdn/minimal-ui-DOePmQfq.js +2 -0
  58. package/cdn/minimal-ui-DOePmQfq.js.map +1 -0
  59. package/cdn/{mux-CBXn2z5k.js → mux-DGgCyz_A.js} +4 -4
  60. package/cdn/{mux-CBXn2z5k.js.map → mux-DGgCyz_A.js.map} +1 -1
  61. package/cdn/{mux-DmGzBNIq.js → mux-fYfPUpq3.js} +2 -2
  62. package/cdn/{mux-DmGzBNIq.js.map → mux-fYfPUpq3.js.map} +1 -1
  63. package/cdn/{native-hls-BCOLtRUl.js → native-hls-BuCYu7Rd.js} +2 -2
  64. package/cdn/{native-hls-BCOLtRUl.js.map → native-hls-BuCYu7Rd.js.map} +1 -1
  65. package/cdn/{native-hls-BU8--1Kg.js → native-hls-DnqJ-0zL.js} +2 -2
  66. package/cdn/{native-hls-BU8--1Kg.js.map → native-hls-DnqJ-0zL.js.map} +1 -1
  67. package/cdn/player-Cu5_r0Gk.js +2 -0
  68. package/cdn/{player-DAmuLGE1.js.map → player-Cu5_r0Gk.js.map} +1 -1
  69. package/cdn/{poster-qAhnKWea.js → player-DIOgBqQf.js} +15 -113
  70. package/cdn/player-DIOgBqQf.js.map +1 -0
  71. package/cdn/{player-Dbl1MUJ2.js → player-DxBoqZVw.js} +3 -2
  72. package/cdn/{player-Dbl1MUJ2.js.map → player-DxBoqZVw.js.map} +1 -1
  73. package/cdn/player-eEH-XjnF.js +2 -0
  74. package/cdn/player-eEH-XjnF.js.map +1 -0
  75. package/cdn/{shallow-equal-uPuCQhnd.js → shallow-equal-1KBb-lrM.js} +1 -1
  76. package/cdn/{shallow-equal-uPuCQhnd.js.map → shallow-equal-1KBb-lrM.js.map} +1 -1
  77. package/cdn/{shallow-equal-C8Fs4TTE.js → shallow-equal-Ca0qjpLJ.js} +1 -1
  78. package/cdn/{shallow-equal-C8Fs4TTE.js.map → shallow-equal-Ca0qjpLJ.js.map} +1 -1
  79. package/cdn/{skin-element-ih3VrnYx.js → skin-element-BTPr5DoY.js} +2 -2
  80. package/cdn/{skin-element-ih3VrnYx.js.map → skin-element-BTPr5DoY.js.map} +1 -1
  81. package/cdn/{skin-element-DbmY-ske.js → skin-element-u6pdmSSs.js} +2 -2
  82. package/cdn/{skin-element-DbmY-ske.js.map → skin-element-u6pdmSSs.js.map} +1 -1
  83. package/cdn/ui-34pkHFdT.js +25 -0
  84. package/cdn/ui-34pkHFdT.js.map +1 -0
  85. package/cdn/ui-DWoV_Da1.js +2 -0
  86. package/cdn/ui-DWoV_Da1.js.map +1 -0
  87. package/cdn/ui-DXtTKomo.js +2 -0
  88. package/cdn/ui-DXtTKomo.js.map +1 -0
  89. package/cdn/ui-X5WOdCCw.js +31 -0
  90. package/cdn/ui-X5WOdCCw.js.map +1 -0
  91. package/cdn/video-minimal-ui.dev.js +3 -3
  92. package/cdn/video-minimal-ui.js +1 -1
  93. package/cdn/video-minimal.dev.js +4 -4
  94. package/cdn/video-minimal.js +1 -1
  95. package/cdn/video-minimal.js.map +1 -1
  96. package/cdn/video-ui.dev.js +3 -4
  97. package/cdn/video-ui.js +1 -1
  98. package/cdn/video.dev.js +12 -6
  99. package/cdn/video.dev.js.map +1 -1
  100. package/cdn/video.js +1 -1
  101. package/cdn/video.js.map +1 -1
  102. package/dist/default/define/audio/minimal-ui.js +28 -12
  103. package/dist/default/define/audio/minimal-ui.js.map +1 -0
  104. package/dist/default/define/audio/ui.js +32 -13
  105. package/dist/default/define/audio/ui.js.map +1 -0
  106. package/dist/default/define/ui/compounds.js +62 -0
  107. package/dist/default/define/ui/compounds.js.map +1 -0
  108. package/dist/default/define/ui/controls.js +2 -5
  109. package/dist/default/define/ui/controls.js.map +1 -1
  110. package/dist/default/define/ui/error-dialog.js +2 -9
  111. package/dist/default/define/ui/error-dialog.js.map +1 -1
  112. package/dist/default/define/ui/slider.js +2 -13
  113. package/dist/default/define/ui/slider.js.map +1 -1
  114. package/dist/default/define/ui/time-slider.js +2 -17
  115. package/dist/default/define/ui/time-slider.js.map +1 -1
  116. package/dist/default/define/ui/time.js +2 -7
  117. package/dist/default/define/ui/time.js.map +1 -1
  118. package/dist/default/define/ui/volume-slider.js +2 -13
  119. package/dist/default/define/ui/volume-slider.js.map +1 -1
  120. package/dist/default/define/video/minimal-ui.js +39 -18
  121. package/dist/default/define/video/minimal-ui.js.map +1 -0
  122. package/dist/default/define/video/skin.js +1 -1
  123. package/dist/default/define/video/skin.js.map +1 -1
  124. package/dist/default/define/video/ui.js +43 -19
  125. package/dist/default/define/video/ui.js.map +1 -0
  126. package/dist/default/index.js +2 -1
  127. package/dist/default/ui/gesture/gesture-element.js +84 -0
  128. package/dist/default/ui/gesture/gesture-element.js.map +1 -0
  129. package/dist/default/ui/pip-button/pip-button-element.js +1 -1
  130. package/dist/default/ui/pip-button/pip-button-element.js.map +1 -1
  131. package/dist/dev/define/audio/minimal-ui.js +28 -12
  132. package/dist/dev/define/audio/minimal-ui.js.map +1 -0
  133. package/dist/dev/define/audio/ui.js +32 -13
  134. package/dist/dev/define/audio/ui.js.map +1 -0
  135. package/dist/dev/define/ui/compounds.d.ts +12 -0
  136. package/dist/dev/define/ui/compounds.d.ts.map +1 -0
  137. package/dist/dev/define/ui/compounds.js +62 -0
  138. package/dist/dev/define/ui/compounds.js.map +1 -0
  139. package/dist/dev/define/ui/controls.d.ts +2 -0
  140. package/dist/dev/define/ui/controls.d.ts.map +1 -1
  141. package/dist/dev/define/ui/controls.js +2 -5
  142. package/dist/dev/define/ui/controls.js.map +1 -1
  143. package/dist/dev/define/ui/error-dialog.d.ts +6 -0
  144. package/dist/dev/define/ui/error-dialog.d.ts.map +1 -1
  145. package/dist/dev/define/ui/error-dialog.js +2 -9
  146. package/dist/dev/define/ui/error-dialog.js.map +1 -1
  147. package/dist/dev/define/ui/slider.d.ts +10 -0
  148. package/dist/dev/define/ui/slider.d.ts.map +1 -1
  149. package/dist/dev/define/ui/slider.js +2 -13
  150. package/dist/dev/define/ui/slider.js.map +1 -1
  151. package/dist/dev/define/ui/time-slider.d.ts +14 -0
  152. package/dist/dev/define/ui/time-slider.d.ts.map +1 -1
  153. package/dist/dev/define/ui/time-slider.js +2 -17
  154. package/dist/dev/define/ui/time-slider.js.map +1 -1
  155. package/dist/dev/define/ui/time.d.ts +4 -0
  156. package/dist/dev/define/ui/time.d.ts.map +1 -1
  157. package/dist/dev/define/ui/time.js +2 -7
  158. package/dist/dev/define/ui/time.js.map +1 -1
  159. package/dist/dev/define/ui/volume-slider.d.ts +10 -0
  160. package/dist/dev/define/ui/volume-slider.d.ts.map +1 -1
  161. package/dist/dev/define/ui/volume-slider.js +2 -13
  162. package/dist/dev/define/ui/volume-slider.js.map +1 -1
  163. package/dist/dev/define/video/minimal-ui.js +39 -18
  164. package/dist/dev/define/video/minimal-ui.js.map +1 -0
  165. package/dist/dev/define/video/skin.d.ts.map +1 -1
  166. package/dist/dev/define/video/skin.js +8 -1
  167. package/dist/dev/define/video/skin.js.map +1 -1
  168. package/dist/dev/define/video/ui.js +43 -19
  169. package/dist/dev/define/video/ui.js.map +1 -0
  170. package/dist/dev/index.d.ts +2 -1
  171. package/dist/dev/index.js +2 -1
  172. package/dist/dev/ui/gesture/gesture-element.d.ts +22 -0
  173. package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -0
  174. package/dist/dev/ui/gesture/gesture-element.js +84 -0
  175. package/dist/dev/ui/gesture/gesture-element.js.map +1 -0
  176. package/dist/dev/ui/pip-button/pip-button-element.d.ts +1 -1
  177. package/dist/dev/ui/pip-button/pip-button-element.js +1 -1
  178. package/dist/dev/ui/pip-button/pip-button-element.js.map +1 -1
  179. package/package.json +8 -8
  180. package/cdn/create-player-B_oNyyb5.js +0 -7
  181. package/cdn/create-player-B_oNyyb5.js.map +0 -1
  182. package/cdn/create-player-DckZq-sE.js.map +0 -1
  183. package/cdn/hotkey-B7OaweHa.js +0 -154
  184. package/cdn/hotkey-B7OaweHa.js.map +0 -1
  185. package/cdn/hotkey-BLEt77Z0.js +0 -2
  186. package/cdn/hotkey-BLEt77Z0.js.map +0 -1
  187. package/cdn/minimal-ui-DXFwjywa.js +0 -0
  188. package/cdn/minimal-ui-jrmrxIOn.js +0 -0
  189. package/cdn/player-DAmuLGE1.js +0 -2
  190. package/cdn/poster-B9COb7AR.js +0 -2
  191. package/cdn/poster-B9COb7AR.js.map +0 -1
  192. package/cdn/poster-qAhnKWea.js.map +0 -1
  193. package/cdn/ui-18UYtw8D.js +0 -0
  194. package/cdn/ui-8HVY3XSt.js +0 -0
  195. package/cdn/volume-slider-BbIc1N4U.js +0 -8
  196. package/cdn/volume-slider-BbIc1N4U.js.map +0 -1
  197. package/cdn/volume-slider-C6ek7oC9.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { o as safeDefine } from "../context-CvJ83xGk.js";
2
- import { t as MediaPropsMixin } from "../media-props-mixin-CZLZIhGT.js";
2
+ import { t as MediaPropsMixin } from "../media-props-mixin-hheRmkup.js";
3
3
  import { t as MediaAttachMixin } from "../media-attach-mixin-CMH1ziXP.js";
4
- import "../hls-CJCXZSGG.js";
5
- import { r as MuxMediaDelegate, t as MuxCustomAudio } from "../mux-CBXn2z5k.js";
4
+ import "../hls-BrzPpueW.js";
5
+ import { r as MuxMediaDelegate, t as MuxCustomAudio } from "../mux-DGgCyz_A.js";
6
6
 
7
7
  //#region src/media/mux-audio/index.ts
8
8
  var MuxAudio = class extends MediaPropsMixin(MediaAttachMixin(MuxCustomAudio), MuxMediaDelegate) {
@@ -1,2 +1,2 @@
1
- import{o as e}from"../context-C-IpVHEt.js";import{t}from"../media-props-mixin-DrjlZybt.js";import{t as n}from"../media-attach-mixin-DUzmXEJ3.js";import"../hls-lPH0rWmB.js";import{r,t as i}from"../mux-DmGzBNIq.js";var a=class extends t(n(i),r){constructor(){super(),this.attach(this.target)}disconnectedCallback(){super.disconnectedCallback?.(),this.hasAttribute(`keep-alive`)||this.destroy()}};e(class extends a{static{this.tagName=`mux-audio`}});
1
+ import{o as e}from"../context-C-IpVHEt.js";import{t}from"../media-props-mixin-yRWj8yXF.js";import{t as n}from"../media-attach-mixin-DUzmXEJ3.js";import"../hls-BAbdl84H.js";import{r,t as i}from"../mux-fYfPUpq3.js";var a=class extends t(n(i),r){constructor(){super(),this.attach(this.target)}disconnectedCallback(){super.disconnectedCallback?.(),this.hasAttribute(`keep-alive`)||this.destroy()}};e(class extends a{static{this.tagName=`mux-audio`}});
2
2
  //# sourceMappingURL=mux-audio.js.map
@@ -1,8 +1,8 @@
1
1
  import { o as safeDefine } from "../context-CvJ83xGk.js";
2
- import { t as MediaPropsMixin } from "../media-props-mixin-CZLZIhGT.js";
2
+ import { t as MediaPropsMixin } from "../media-props-mixin-hheRmkup.js";
3
3
  import { t as MediaAttachMixin } from "../media-attach-mixin-CMH1ziXP.js";
4
- import "../hls-CJCXZSGG.js";
5
- import { n as MuxCustomVideo, r as MuxMediaDelegate } from "../mux-CBXn2z5k.js";
4
+ import "../hls-BrzPpueW.js";
5
+ import { n as MuxCustomVideo, r as MuxMediaDelegate } from "../mux-DGgCyz_A.js";
6
6
 
7
7
  //#region src/media/mux-video/index.ts
8
8
  var MuxVideo = class extends MediaPropsMixin(MediaAttachMixin(MuxCustomVideo), MuxMediaDelegate) {
@@ -1,2 +1,2 @@
1
- import{o as e}from"../context-C-IpVHEt.js";import{t}from"../media-props-mixin-DrjlZybt.js";import{t as n}from"../media-attach-mixin-DUzmXEJ3.js";import"../hls-lPH0rWmB.js";import{n as r,r as i}from"../mux-DmGzBNIq.js";var a=class extends t(n(r),i){constructor(){super(),this.attach(this.target)}disconnectedCallback(){super.disconnectedCallback?.(),this.hasAttribute(`keep-alive`)||this.destroy()}};e(class extends a{static{this.tagName=`mux-video`}});
1
+ import{o as e}from"../context-C-IpVHEt.js";import{t}from"../media-props-mixin-yRWj8yXF.js";import{t as n}from"../media-attach-mixin-DUzmXEJ3.js";import"../hls-BAbdl84H.js";import{n as r,r as i}from"../mux-fYfPUpq3.js";var a=class extends t(n(r),i){constructor(){super(),this.attach(this.target)}disconnectedCallback(){super.disconnectedCallback?.(),this.hasAttribute(`keep-alive`)||this.destroy()}};e(class extends a{static{this.tagName=`mux-video`}});
2
2
  //# sourceMappingURL=mux-video.js.map
@@ -1,7 +1,7 @@
1
1
  import { o as safeDefine } from "../context-CvJ83xGk.js";
2
- import { t as MediaPropsMixin } from "../media-props-mixin-CZLZIhGT.js";
2
+ import { t as MediaPropsMixin } from "../media-props-mixin-hheRmkup.js";
3
3
  import { t as MediaAttachMixin } from "../media-attach-mixin-CMH1ziXP.js";
4
- import { n as NativeHlsMediaDelegate, t as NativeHlsCustomMedia } from "../native-hls-BCOLtRUl.js";
4
+ import { n as NativeHlsMediaDelegate, t as NativeHlsCustomMedia } from "../native-hls-BuCYu7Rd.js";
5
5
 
6
6
  //#region src/media/native-hls-video/index.ts
7
7
  var NativeHlsVideo = class extends MediaPropsMixin(MediaAttachMixin(NativeHlsCustomMedia), NativeHlsMediaDelegate) {
@@ -1,2 +1,2 @@
1
- import{o as e}from"../context-C-IpVHEt.js";import{t}from"../media-props-mixin-DrjlZybt.js";import{t as n}from"../media-attach-mixin-DUzmXEJ3.js";import{n as r,t as i}from"../native-hls-BU8--1Kg.js";var a=class extends t(n(i),r){constructor(){super(),this.attach(this.target)}disconnectedCallback(){super.disconnectedCallback?.(),this.hasAttribute(`keep-alive`)||this.destroy()}};e(class extends a{static{this.tagName=`native-hls-video`}});
1
+ import{o as e}from"../context-C-IpVHEt.js";import{t}from"../media-props-mixin-yRWj8yXF.js";import{t as n}from"../media-attach-mixin-DUzmXEJ3.js";import{n as r,t as i}from"../native-hls-DnqJ-0zL.js";var a=class extends t(n(i),r){constructor(){super(),this.attach(this.target)}disconnectedCallback(){super.disconnectedCallback?.(),this.hasAttribute(`keep-alive`)||this.destroy()}};e(class extends a{static{this.tagName=`native-hls-video`}});
2
2
  //# sourceMappingURL=native-hls-video.js.map
@@ -1,7 +1,7 @@
1
1
  import { t as listen } from "../listen-w-Aun0yN.js";
2
2
  import { o as safeDefine } from "../context-CvJ83xGk.js";
3
- import { t as anyAbortSignal } from "../abort-CzqmAxxH.js";
4
- import { i as DelegateMixin, r as CustomVideoElement, t as MediaPropsMixin } from "../media-props-mixin-CZLZIhGT.js";
3
+ import { i as DelegateMixin, r as CustomVideoElement, t as MediaPropsMixin } from "../media-props-mixin-hheRmkup.js";
4
+ import { t as anyAbortSignal } from "../abort-BL-SGV3o.js";
5
5
  import { t as MediaAttachMixin } from "../media-attach-mixin-CMH1ziXP.js";
6
6
 
7
7
  //#region ../spf/dist/dev/core/abr/ewma.js
@@ -1,4 +1,4 @@
1
- import{t as e}from"../listen-D7fcau5d.js";import{o as t}from"../context-C-IpVHEt.js";import{t as n}from"../abort-KaHR4JO1.js";import{i as r,r as i,t as a}from"../media-props-mixin-DrjlZybt.js";import{t as o}from"../media-attach-mixin-DUzmXEJ3.js";function s(e){return Math.exp(Math.log(.5)/e)}function c(e,t,n,r){let i=s(r)**n;return t*(1-i)+i*e}function l(e,t,n){return t===0?0:e/(1-s(n)**t)}const u={fastHalfLife:2,slowHalfLife:5,minTotalBytes:128e3,minBytes:16e3,minDuration:5};function d(e,t,n,r=u){let i=e.bytesSampled+n;if(n<r.minBytes||t<r.minDuration)return{...e,bytesSampled:i};let a=8e3*n/t,o=t/1e3;return{fastEstimate:c(e.fastEstimate,a,o,r.fastHalfLife),fastTotalWeight:e.fastTotalWeight+o,slowEstimate:c(e.slowEstimate,a,o,r.slowHalfLife),slowTotalWeight:e.slowTotalWeight+o,bytesSampled:i}}function f(e,t,n=u){if(e.bytesSampled<n.minTotalBytes)return t;let r=l(e.fastEstimate,e.fastTotalWeight,n.fastHalfLife),i=l(e.slowEstimate,e.slowTotalWeight,n.slowHalfLife);return Math.min(r,i)}const p={bufferDuration:30};function m(e,t,n=p){if(e.length===0)return 1/0;let r=t+n.bufferDuration,i=e.filter(e=>e.startTime>=r);return i.length===0?1/0:Math.min(...i.map(e=>e.startTime))}function h(e,t,n,r=p){if(e.length===0)return[];let i=n+r.bufferDuration,a=new Set(t.map(e=>e.startTime));return e.filter(e=>{let t=e.startTime+e.duration,r=e.startTime<i&&t>n,o=!a.has(e.startTime);return r&&o})}var ee=Object.defineProperty,te=(e,t,n)=>t in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ne=(e,t,n)=>(te(e,typeof t==`symbol`?t:t+``,n),n),re=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},g=(e,t)=>{if(Object(t)!==t)throw TypeError(`Cannot use the "in" operator on this value`);return e.has(t)},_=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},ie=(e,t,n)=>(re(e,t,`access private method`),n);
1
+ import{t as e}from"../listen-D7fcau5d.js";import{o as t}from"../context-C-IpVHEt.js";import{i as n,r,t as i}from"../media-props-mixin-yRWj8yXF.js";import{t as a}from"../abort-DGNIECLn.js";import{t as o}from"../media-attach-mixin-DUzmXEJ3.js";function s(e){return Math.exp(Math.log(.5)/e)}function c(e,t,n,r){let i=s(r)**n;return t*(1-i)+i*e}function l(e,t,n){return t===0?0:e/(1-s(n)**t)}const u={fastHalfLife:2,slowHalfLife:5,minTotalBytes:128e3,minBytes:16e3,minDuration:5};function d(e,t,n,r=u){let i=e.bytesSampled+n;if(n<r.minBytes||t<r.minDuration)return{...e,bytesSampled:i};let a=8e3*n/t,o=t/1e3;return{fastEstimate:c(e.fastEstimate,a,o,r.fastHalfLife),fastTotalWeight:e.fastTotalWeight+o,slowEstimate:c(e.slowEstimate,a,o,r.slowHalfLife),slowTotalWeight:e.slowTotalWeight+o,bytesSampled:i}}function f(e,t,n=u){if(e.bytesSampled<n.minTotalBytes)return t;let r=l(e.fastEstimate,e.fastTotalWeight,n.fastHalfLife),i=l(e.slowEstimate,e.slowTotalWeight,n.slowHalfLife);return Math.min(r,i)}const p={bufferDuration:30};function m(e,t,n=p){if(e.length===0)return 1/0;let r=t+n.bufferDuration,i=e.filter(e=>e.startTime>=r);return i.length===0?1/0:Math.min(...i.map(e=>e.startTime))}function h(e,t,n,r=p){if(e.length===0)return[];let i=n+r.bufferDuration,a=new Set(t.map(e=>e.startTime));return e.filter(e=>{let t=e.startTime+e.duration,r=e.startTime<i&&t>n,o=!a.has(e.startTime);return r&&o})}var ee=Object.defineProperty,te=(e,t,n)=>t in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ne=(e,t,n)=>(te(e,typeof t==`symbol`?t:t+``,n),n),re=(e,t,n)=>{if(!t.has(e))throw TypeError(`Cannot `+n)},g=(e,t)=>{if(Object(t)!==t)throw TypeError(`Cannot use the "in" operator on this value`);return e.has(t)},_=(e,t,n)=>{if(t.has(e))throw TypeError(`Cannot add the same private member more than once`);t instanceof WeakSet?t.add(e):t.set(e,n)},ie=(e,t,n)=>(re(e,t,`access private method`),n);
2
2
  /**
3
3
  * @license
4
4
  * Copyright Google LLC All Rights Reserved.
@@ -55,5 +55,5 @@ function Ce(e){let t=Object.create(Ee);t.value=e;let n=()=>(w(t),t.value);return
55
55
  * See the License for the specific language governing permissions and
56
56
  * limitations under the License.
57
57
  */
58
- const M=Symbol(`node`);var N;(e=>{var t,n,r,i;class a{constructor(r,i={}){_(this,n),ne(this,t);let a=Ce(r)[x];if(this[M]=a,a.wrapper=this,i){let t=i.equals;t&&(a.equal=t),a.watched=i[e.subtle.watched],a.unwatched=i[e.subtle.unwatched]}}get(){if(!(0,e.isState)(this))throw TypeError(`Wrong receiver type for Signal.State.prototype.get`);return we.call(this[M])}set(t){if(!(0,e.isState)(this))throw TypeError(`Wrong receiver type for Signal.State.prototype.set`);if(se())throw Error(`Writes to signals not permitted during Watcher callback`);let n=this[M];Te(n,t)}}t=M,n=new WeakSet,e.isState=e=>typeof e==`object`&&g(n,e),e.State=a;class o{constructor(t,n){_(this,i),ne(this,r);let a=ve(t)[x];if(a.consumerAllowSignalWrites=!0,this[M]=a,a.wrapper=this,n){let t=n.equals;t&&(a.equal=t),a.watched=n[e.subtle.watched],a.unwatched=n[e.subtle.unwatched]}}get(){if(!(0,e.isComputed)(this))throw TypeError(`Wrong receiver type for Signal.Computed.prototype.get`);return _e(this[M])}}r=M,i=new WeakSet,e.isComputed=e=>typeof e==`object`&&g(i,e),e.Computed=o,(t=>{var n,r,i,a;function o(e){let t,n=null;try{n=S(null),t=e()}finally{S(n)}return t}t.untrack=o;function s(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw TypeError(`Called introspectSources without a Computed or Watcher argument`);return t[M].producerNode?.map(e=>e.wrapper)??[]}t.introspectSources=s;function c(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw TypeError(`Called introspectSinks without a Signal argument`);return t[M].liveConsumerNode?.map(e=>e.wrapper)??[]}t.introspectSinks=c;function l(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw TypeError(`Called hasSinks without a Signal argument`);let n=t[M].liveConsumerNode;return n?n.length>0:!1}t.hasSinks=l;function u(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw TypeError(`Called hasSources without a Computed or Watcher argument`);let n=t[M].producerNode;return n?n.length>0:!1}t.hasSources=u;class d{constructor(e){_(this,r),_(this,i),ne(this,n);let t=Object.create(C);t.wrapper=this,t.consumerMarkedDirty=e,t.consumerIsAlwaysLive=!0,t.consumerAllowSignalWrites=!1,t.producerNode=[],this[M]=t}watch(...t){if(!(0,e.isWatcher)(this))throw TypeError(`Called unwatch without Watcher receiver`);ie(this,i,a).call(this,t);let n=this[M];n.dirty=!1;let r=S(n);for(let e of t)w(e[M]);S(r)}unwatch(...t){if(!(0,e.isWatcher)(this))throw TypeError(`Called unwatch without Watcher receiver`);ie(this,i,a).call(this,t);let n=this[M];D(n);for(let e=n.producerNode.length-1;e>=0;e--)if(t.includes(n.producerNode[e].wrapper)){T(n.producerNode[e],n.producerIndexOfThis[e]);let t=n.producerNode.length-1;if(n.producerNode[e]=n.producerNode[t],n.producerIndexOfThis[e]=n.producerIndexOfThis[t],n.producerNode.length--,n.producerIndexOfThis.length--,n.nextProducerIndex--,e<n.producerNode.length){let t=n.producerIndexOfThis[e],r=n.producerNode[e];O(r),r.liveConsumerIndexOfThis[t]=e}}}getPending(){if(!(0,e.isWatcher)(this))throw TypeError(`Called getPending without Watcher receiver`);return this[M].producerNode.filter(e=>e.dirty).map(e=>e.wrapper)}}n=M,r=new WeakSet,i=new WeakSet,a=function(t){for(let n of t)if(!(0,e.isComputed)(n)&&!(0,e.isState)(n))throw TypeError(`Called watch/unwatch without a Computed or State argument`)},e.isWatcher=e=>g(r,e),t.Watcher=d;function f(){return oe()?.wrapper}t.currentComputed=f,t.watched=Symbol(`watched`),t.unwatched=Symbol(`unwatched`)})(e.subtle||={})})(N||={});const P=new Set,F=new N.subtle.Watcher(()=>{queueMicrotask(Oe)});function Oe(){for(let e of F.getPending())P.add(e);F.watch();for(let e of P)P.delete(e),e.get()}function I(e){let t,n=new N.Computed(()=>{typeof t==`function`&&t(),t=e()});return F.watch(n),n.get(),()=>{F.unwatch(n),typeof t==`function`&&t()}}const L=N.subtle.untrack;function R(e,t){return new N.State(e,t)}function z(e,t){return new N.Computed(e,t)}function B(e,t){let n=L(()=>e.get());e.set(typeof t==`function`?t(n):{...n,...t})}function V(e){return`segments`in e}function ke(e){return e.duration!==void 0}const Ae={video:`selectedVideoTrackId`,audio:`selectedAudioTrackId`,text:`selectedTextTrackId`},je={video:`videoBuffer`,audio:`audioBuffer`};function H(e,t){let{presentation:n}=e;if(!n||!(`id`in n))return;let r=e[Ae[t]];return n.selectionSets.find(({type:e})=>e===t)?.switchingSets[0]?.tracks.find(({id:e})=>e===r)}const Me=2**17;var Ne=class{minChunkSize;#e;constructor(e,{minChunkSize:t=Me}={}){this.#e=e,this.minChunkSize=t}async*[Symbol.asyncIterator](){let e,t=this.#e.getReader();try{for(;;){let{done:n,value:r}=await t.read();if(n){e&&(yield e);break}e=e?Pe(e,r):r,e.length>=this.minChunkSize&&(yield e,e=void 0)}}finally{t.releaseLock()}}};function Pe(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}async function U(e,t){let n=new Headers(t?.headers);if(e.byteRange){let{start:t,end:r}=e.byteRange;n.set(`Range`,`bytes=${t}-${r}`)}let r=new Request(e.url,{method:`GET`,headers:n,...t});return fetch(r)}function Fe(e){return e.text()}const Ie={keepSegments:2};function Le(e,t,n=Ie){if(e.length===0)return 0;let r=e.filter(e=>e.startTime<t);if(r.length===0)return 0;let i=r.length-n.keepSegments;return i<=0?0:i>=r.length?t:r[i].startTime}function W(e){let t=R(e);return{snapshotSignal:t,getState:()=>L(()=>t.get().value),transition:e=>B(t,t=>({...t,value:e}))}}function Re(e){let t=e.runner?.(),{snapshotSignal:n,getState:r,transition:i}=W({value:e.initial,context:e.context}),a=()=>L(()=>n.get().context),o=e=>{B(n,{context:e})};return{get snapshot(){return n},send(n){let s=r();if(s===`destroyed`)return;let c=e.states[s]?.on?.[n.type];if(!c)return;c(n,{context:a(),getContext:a,transition:e=>i(e),setContext:o,...t?{runner:t}:{}});let l=r();if(l!==`destroyed`){let n=e.states[l];if(n?.onSettled&&t){let e=n.onSettled;t.whenSettled(()=>{r()===l&&i(e)})}}},destroy(){r()!==`destroyed`&&(t?.destroy(),i(`destroyed`))}}}function G(){return`${Date.now()}-${Math.floor(Math.random()*1e6)}`}var K=class{id;#e;#t=new AbortController;#n;#r=`pending`;#i=void 0;#a=void 0;constructor(e,t){this.#e=e;let r=t?.id;this.id=typeof r==`function`?r():r??G(),this.#n=t?.signal?n([this.#t.signal,t.signal]):this.#t.signal}get status(){return this.#r}get value(){return this.#i}get error(){return this.#a}async run(){this.#r=`running`;try{let e=await this.#e(this.#n);return this.#i=e,this.#r=`done`,e}catch(e){throw this.#a=e,this.#r=`error`,e}}abort(){this.#t.abort()}},ze=class{#e=new Map;#t=Promise.resolve();#n=null;#r=!1;schedule(e){if(this.#r)return Promise.resolve();let t=this.#e.get(e.id);if(t)return t.promise;this.#e.size===0&&(this.#t=new Promise(e=>{this.#n=e}));let n=e.run();n.catch(()=>{});let r=()=>{this.#e.delete(e.id),this.#e.size===0&&(this.#n?.(),this.#n=null)};return n.then(r,r),this.#e.set(e.id,{task:e,promise:n}),n}whenSettled(e){if(this.#e.size===0)return;let t=this.#t;t.then(()=>{this.#t===t&&e()},()=>{})}abortAll(){for(let{task:e}of this.#e.values())e.abort();this.#e.clear(),this.#n?.(),this.#n=null,this.#t=Promise.resolve()}destroy(){this.#r=!0,this.abortAll()}},q=class{#e=Promise.resolve();#t=new Set;#n=null;#r=!1;schedule(e){if(this.#r)return Promise.resolve();let t=e;this.#t.add(t);let n=this.#e.then(()=>(this.#t.delete(t),this.#n=t,e.run())).finally(()=>{this.#n=null});return this.#e=n.then(()=>{},()=>{}),n}get settled(){return this.#e}whenSettled(e){if(this.#t.size===0&&this.#n===null)return;let t=this.#e;t.then(()=>{this.#e===t&&e()},()=>{})}abortPending(){for(let e of this.#t)e.abort();this.#t.clear()}abortAll(){this.abortPending(),this.#n?.abort()}destroy(){this.#r=!0,this.abortAll()}};function J(e,t){return new Promise((n,r)=>{if(e.get().value===`idle`){n();return}if(e.get().value===`destroyed`){r(new DOMException(`Aborted`,`AbortError`));return}if(t.aborted){r(t.reason);return}let i,a=e=>{i?.(),t.removeEventListener(`abort`,o),e()},o=()=>a(()=>r(t.reason));i=I(()=>{let t=e.get().value;t===`idle`?a(n):t===`destroyed`&&a(()=>r(new DOMException(`Aborted`,`AbortError`)))}),t.addEventListener(`abort`,o,{once:!0})})}function Be(e,{getContext:t,setContext:n,fetchBytes:r,sourceBufferActor:i}){return new K(async a=>{if(!a.aborted){if(e.type===`remove`){i.send(e),await J(i.snapshot,a);return}if(e.type===`append-init`){n({...t(),inFlightInitTrackId:e.meta.trackId});try{let t=await r(e,{signal:a,minChunkSize:1/0});a.aborted||(i.send({type:`append-init`,data:t,meta:e.meta}),await J(i.snapshot,a))}finally{n({...t(),inFlightInitTrackId:null})}return}n({...t(),inFlightSegmentId:e.meta.id});try{let t=await r(e,{signal:a});a.aborted||(i.send({type:`append-segment`,data:t,meta:e.meta}),await J(i.snapshot,a))}finally{n({...t(),inFlightSegmentId:null})}}})}function Ve(e,t){let n=t=>{let n=new Set(e.snapshot.get().context.segments.filter(e=>!e.partial).map(e=>e.id));return t.filter(e=>n.has(e.id))},r=t=>{let{track:r,range:i}=t,a=e.snapshot.get().context,o=n(r.segments),s=i?.start??0,c=[];if(i){let e=m(o,s);e<1/0&&c.push({type:`remove`,start:e,end:1/0});let t=Le(o,s);t>0&&c.push({type:`remove`,start:0,end:t})}if(a.initTrackId!==r.id&&c.push({type:`append-init`,meta:{trackId:r.id},url:r.initialization.url,...r.initialization.byteRange!==void 0&&{byteRange:r.initialization.byteRange}}),i){let e=h(r.segments,o,s).filter(e=>{let t=a.segments.find(t=>Math.abs(t.startTime-e.startTime)<1e-4);return t?.partial||!t?.trackBandwidth||!r.bandwidth?!0:r.bandwidth>t.trackBandwidth});for(let t of e)c.push({type:`append-segment`,meta:{id:t.id,startTime:t.startTime,duration:t.duration,trackId:r.id,trackBandwidth:r.bandwidth},url:t.url,...t.byteRange!==void 0&&{byteRange:t.byteRange}})}return c},i=(n,{getContext:r,setContext:i,runner:a})=>{n.forEach(n=>{a.schedule(Be(n,{getContext:r,setContext:i,fetchBytes:t,sourceBufferActor:e})).then(void 0,e=>{e instanceof Error&&e.name===`AbortError`||(console.error(`Unexpected error in segment loader:`,e),a.abortPending())})})};return Re({runner:()=>new q,initial:`idle`,context:{inFlightInitTrackId:null,inFlightSegmentId:null},states:{idle:{on:{load:(e,t)=>{let n=r(e);n.length!==0&&(t.transition(`loading`),i(n,t))}}},loading:{onSettled:`idle`,on:{load:(t,n)=>{let{context:a,runner:o}=n,s=r(t);a.inFlightSegmentId!==null&&s.some(e=>e.type===`append-segment`&&e.meta.id===a.inFlightSegmentId)||a.inFlightInitTrackId!==null&&s.some(e=>e.type===`append-init`&&e.meta.trackId===a.inFlightInitTrackId)?(o.abortPending(),i(s.filter(e=>!(e.type===`append-segment`&&e.meta.id===a.inFlightSegmentId)&&!(e.type===`append-init`&&e.meta.trackId===a.inFlightInitTrackId)),n)):(o.abortAll(),(a.inFlightSegmentId!==null||a.inFlightInitTrackId!==null&&s.some(e=>e.type===`append-init`&&e.meta.trackId!==a.inFlightInitTrackId))&&e.send({type:`cancel`}),i(s,n))}}}}})}const He={video:`videoBufferActor`,audio:`audioBufferActor`};function Ue(e,t){return async(n,r)=>{let{minChunkSize:i,...a}=r??{},o=await U(n,a);if(!o.body)throw Error(`Response has no body`);let s=o.body;return{[Symbol.asyncIterator]:async function*(){let n=performance.now();for await(let r of new Ne(s,...i===void 0?[]:[{minChunkSize:i}])){let i=performance.now()-n,a=d(e.get(),i,r.byteLength);e.set(a),t?.(a),yield r,n=performance.now()}}}}}async function We(e,t){let{minChunkSize:n,...r}=t??{},i=await U(e,r);if(!i.body)throw Error(`Response has no body`);return new Ne(i.body,...n===void 0?[]:[{minChunkSize:n}])}function Ge([e,t],n){let{playbackInitiated:r,preload:i,currentTime:a}=t;return{playbackInitiated:r,preload:i,currentTime:a,track:H(t,n),segmentsCanLoad:e}}const Ke=(e,t)=>{if(e!=null)return t?.segments.find(({startTime:t,duration:n},r,i)=>e>=t&&(e<t+n||r===i.length-1))?.startTime};function qe(e,t){return t.segmentsCanLoad?t.playbackInitiated?!e.playbackInitiated&&t.playbackInitiated&&e.preload!==`auto`?!1:!t.track||!V(t.track)?!0:e.track?.id!==t.track.id&&V(t.track)?!1:Ke(e.currentTime,t.track)===Ke(t.currentTime,t.track):t.preload===`none`?!0:t.preload===e.preload:!0}function Je({state:e,owners:t},n){let{type:r}=n,i=He[r],a=e.get().bandwidthState,o=R(a??{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}),s=r===`video`?Ue(o,a===void 0?void 0:t=>{e.set(Object.assign({},e.get(),{bandwidthState:t}))}):We,c=R(void 0),l=z(()=>t.get()[i]),u,d=I(()=>{let e=l.get();if(u&&=(u.destroy(),c.set(void 0),void 0),e){let t=Ve(e,s);u=t,c.set(t)}}),f=z(()=>{let t=H(e.get(),r);return!!t&&V(t)&&!!c.get()}),m=z(()=>Ge([f.get(),e.get()],r)),h,ee=I(()=>{let e=m.get();if(h!==void 0&&qe(h,e))return;let{preload:t,playbackInitiated:n,currentTime:r,track:i,segmentsCanLoad:a}=e;a&&(h=e,t===`auto`||n?c.get()?.send({type:`load`,track:i,range:{start:r,end:r+p.bufferDuration}}):c.get()?.send({type:`load`,track:i}))});return()=>{d(),ee(),u?.destroy()}}let Y=null;function Ye(){return Y||(Y=document.createElement(`video`),Y.muted=!0,Y.preload=`none`,Y.style.display=`none`,Y.crossOrigin=`anonymous`),Y}function Xe(e){let t=Ye(),n=document.createElement(`track`);return n.kind=`subtitles`,n.default=!0,new Promise((r,i)=>{let a=()=>{let e=[],t=n.track;if(t.cues)for(let n=0;n<t.cues.length;n++){let r=t.cues[n];r&&e.push(r)}s(),r(e)},o=()=>{s(),i(Error(`Failed to load VTT segment: ${e}`))},s=()=>{n.removeEventListener(`load`,a),n.removeEventListener(`error`,o),t.removeChild(n)};n.addEventListener(`load`,a),n.addEventListener(`error`,o),t.appendChild(n),n.src=e})}function Ze(){Y=null}const X=e=>e===void 0?[]:Array.isArray(e)?e:[e];function Z(e){let{snapshotSignal:t,getState:n,transition:r}=W({value:e.initial}),i=[],a=e=>{if(e)return typeof e==`function`?e:()=>e.abort()},o=e=>()=>L(e),s=e=>e.value===`destroying`||e.value===`destroyed`,c=[...X(e.monitor).map(e=>({fn:()=>{let t=e();t!==n()&&r(t)},shouldSkip:s})),...Object.entries(e.states).flatMap(([e,t])=>{let n=t=>t.value!==e;return[...X(t.entry).map(e=>({fn:e,shouldSkip:n,toFnCall:o})),...X(t.effects).map(e=>({fn:e,shouldSkip:n}))]})];return i.push(...c.map(({fn:e,shouldSkip:n,toFnCall:r=e=>e})=>I(()=>n(t.get())?void 0:a(r(()=>e())())))),{get snapshot(){return t},destroy(){let e=n();if(!(e===`destroying`||e===`destroyed`)){r(`destroying`),r(`destroyed`);for(let e of i)e()}}}}function Qe(e){let t=new q,n=!1;return{send({track:r,currentTime:i}){if(n)return;let a=r.id,o=L(()=>e.snapshot.get().context.segments[a]??[]),s=h(r.segments,o,i);t.abortAll();for(let n of s)t.schedule(new K(async t=>{if(!t.aborted)try{let r=await Xe(n.url);if(t.aborted)return;e.send({type:`add-cues`,meta:{trackId:a,id:n.id,startTime:n.startTime,duration:n.duration},cues:r})}catch(e){console.error(`Failed to load VTT segment:`,e)}}))},destroy(){n||(n=!0,t.destroy())}}}function $e(e,t){let{snapshotSignal:n,getState:r,transition:i}=W({value:`active`,context:e}),a=()=>L(()=>n.get().context),o=e=>B(n,{context:e});return{get snapshot(){return n},send(e){if(r()===`destroyed`)return;let n=a(),i=t(n,e);i!==n&&o(i)},destroy(){r()!==`destroyed`&&i(`destroyed`)}}}function et(e,t){return t.some(t=>t.startTime===e.startTime&&t.endTime===e.endTime&&t.text===e.text)}function tt(e){return $e({loaded:{},segments:{}},(t,n)=>{let{meta:r,cues:i}=n,{trackId:a,id:o,startTime:s,duration:c}=r,l=Array.from(e.textTracks).find(e=>e.id===a);if(!l)return t;let u=t.loaded[a]??[],d=t.segments[a]??[],f=i.filter(e=>!et(e,u)),p=d.some(e=>e.id===o);if(f.length===0&&p)return t;for(let e of f)l.addCue(e);return{...t,loaded:{...t.loaded,[a]:[...u,...f]},segments:p?t.segments:{...t.segments,[a]:[...d,{id:o,startTime:s,duration:c}]}}})}function nt(e){return e?.selectionSets?.find(e=>e.type===`text`)?.switchingSets[0]?.tracks}function rt(e){let t=nt(e.presentation)?.find(t=>t.id===e.selectedTextTrackId);return t&&V(t)?t:void 0}function it(e,t){if(!t.mediaElement||!nt(e.presentation)?.length)return`preconditions-unmet`;if(!t.textTracksActor||!t.segmentLoaderActor)return`setting-up`;let n=rt(e);return!n||n.segments.length===0||!Array.from(t.mediaElement.textTracks).some(t=>t.id===e.selectedTextTrackId)?`pending`:`monitoring-for-loads`}function at(e){let{textTracksActor:t,segmentLoaderActor:n}=L(()=>e.get());!t&&!n||(t?.destroy(),n?.destroy(),B(e,{textTracksActor:void 0,segmentLoaderActor:void 0}))}function ot({state:e,owners:t}){let n=z(()=>it(e.get(),t.get())),r=z(()=>e.get().currentTime??0),i=z(()=>rt(e.get()));return Z({initial:`preconditions-unmet`,monitor:()=>n.get(),states:{"preconditions-unmet":{entry:()=>{at(t)}},"setting-up":{entry:()=>{at(t);let e=t.get().mediaElement,n=tt(e);B(t,{textTracksActor:n,segmentLoaderActor:Qe(n)})}},pending:{},"monitoring-for-loads":{effects:()=>{let e=r.get(),n=i.get(),{segmentLoaderActor:a}=L(()=>t.get());a.send({type:`load`,track:n,currentTime:e})}}}})}function st({state:t,owners:n}){let r,i=null,a=I(()=>{let{mediaElement:a}=n.get();if(a===r||(i?.(),i=null,r=a,!a))return;let o=()=>{B(t,{currentTime:a.currentTime})};o();let s=e(a,`timeupdate`,o),c=e(a,`seeking`,o);i=()=>{s(),c()}});return()=>{i?.(),a()}}function ct(e,t){return!t.mediaElement||!e.presentation?.url?`preconditions-unmet`:e.playbackInitiated?`playback-initiated`:`monitoring`}function lt({state:t,owners:n}){let r=z(()=>ct(t.get(),n.get())),i=z(()=>n.get().mediaElement),a=z(()=>t.get().presentation?.url);return Z({initial:`preconditions-unmet`,monitor:()=>r.get(),states:{"preconditions-unmet":{},monitoring:{entry:()=>{let n=i.get();return B(t,{playbackInitiated:!n.paused}),e(n,`play`,()=>{B(t,{playbackInitiated:!n.paused})})}},"playback-initiated":{effects:()=>(i.get(),a.get(),()=>B(t,{playbackInitiated:!1}))}}})}async function ut(e,t,n){if(t instanceof ArrayBuffer)await dt(e,t);else try{for await(let r of t){if(n?.aborted)throw n.reason??new DOMException(`Aborted`,`AbortError`);await dt(e,r)}}catch(t){if(t instanceof DOMException&&t.name===`AbortError`&&!e.updating)try{e.abort()}catch{}throw t}}async function dt(e,t){return e.updating&&await new Promise(t=>{let n=()=>{e.removeEventListener(`updateend`,n),t()};e.addEventListener(`updateend`,n)}),new Promise((n,r)=>{let i=()=>{o(),n()},a=e=>{o(),r(Error(`SourceBuffer append error: ${e.type}`))},o=()=>{e.removeEventListener(`updateend`,i),e.removeEventListener(`error`,a)};e.addEventListener(`updateend`,i),e.addEventListener(`error`,a);try{e.appendBuffer(t)}catch(e){o(),r(e)}})}async function ft(e,t,n){return e.updating&&await new Promise(t=>{let n=()=>{e.removeEventListener(`updateend`,n),t()};e.addEventListener(`updateend`,n)}),new Promise((r,i)=>{let a=()=>{s(),r()},o=e=>{s(),i(Error(`SourceBuffer remove error: ${e.type}`))},s=()=>{e.removeEventListener(`updateend`,a),e.removeEventListener(`error`,o)};e.addEventListener(`updateend`,a),e.addEventListener(`error`,o);try{e.remove(t,n)}catch(e){s(),i(e)}})}function pt(e){return e.presentation?!!(e.selectedVideoTrackId||e.selectedAudioTrackId):!1}function mt(e){if(!pt(e))return!1;let{presentation:t}=e;if(t.duration!==void 0)return!1;let n=e.selectedVideoTrackId?H(e,`video`):void 0,r=e.selectedAudioTrackId?H(e,`audio`):void 0;return!!(n&&V(n)||r&&V(r))}function ht(e){let t=e.selectedVideoTrackId?H(e,`video`):void 0;if(t&&V(t))return t.duration;let n=e.selectedAudioTrackId?H(e,`audio`):void 0;if(n&&V(n))return n.duration}function gt({state:e}){return I(()=>{let t=e.get();if(!mt(t))return;let n=ht(t);n===void 0||!Number.isFinite(n)||e.set({...t,presentation:{...t.presentation,duration:n}})})}const _t={safetyMargin:.85};function vt(e,t,n=_t){if(e.length===0)return;let r=e.slice().sort((e,t)=>e.bandwidth-t.bandwidth),i;for(let e of r)t>=e.bandwidth/n.safetyMargin&&(!i||e.bandwidth>i.bandwidth||e.bandwidth===i.bandwidth&&yt(e,i))&&(i=e);return i??r[0]}function yt(e,t){return(e.width??0)*(e.height??0)>(t.width??0)*(t.height??0)}const bt={safetyMargin:.85,minUpgradeInterval:8e3,defaultBandwidth:5e6};function xt(e){return(e.selectionSets?.find(e=>e.type===`video`))?.switchingSets[0]?.tracks??[]}function St({state:e},t={}){let n=t.safetyMargin??bt.safetyMargin,r=t.minUpgradeInterval??bt.minUpgradeInterval,i=t.defaultBandwidth??bt.defaultBandwidth,a=Date.now(),o=!0;return I(()=>{let{presentation:t,bandwidthState:s,selectedVideoTrackId:c,abrDisabled:l}=e.get();if(l===!0||!t||!s)return;let u=xt(t);if(u.length===0)return;let d=o;o=!1;let p=vt(u,f(s,i),{safetyMargin:n});if(!p||p.id===c)return;let m=u.find(e=>e.id===c);if(!m||p.bandwidth>m.bandwidth){let e=Date.now();if(!d&&e-a<r)return;a=e}B(e,{selectedVideoTrackId:p.id})})}function Ct(e){let t=new Map;for(let n of e.matchAll(/([A-Z0-9-]+)=(?:"([^"]*)"|([^,]*))/g)){let e=n[1],r=n[2]??n[3]??``;e&&t.set(e,r)}return t}function wt(e){let t=/^(\d+)x(\d+)$/.exec(e);return t?{width:Number.parseInt(t[1],10),height:Number.parseInt(t[2],10)}:null}function Tt(e){let t=Number.parseFloat(e);if(!(Number.isNaN(t)||t<=0))return Math.abs(t-23.976)<.01?{frameRateNumerator:24e3,frameRateDenominator:1001}:Math.abs(t-29.97)<.01?{frameRateNumerator:3e4,frameRateDenominator:1001}:Math.abs(t-59.94)<.01?{frameRateNumerator:6e4,frameRateDenominator:1001}:(t%1,{frameRateNumerator:Math.round(t)})}function Q(e){let t=e.split(`,`).map(e=>e.trim()),n={};for(let e of t)e.startsWith(`avc1.`)||e.startsWith(`hvc1.`)||e.startsWith(`hev1.`)?n.video=e:e.startsWith(`mp4a.`)&&(n.audio=e);return n}function Et(e){let t=e.split(`,`)[0]??e,n=Number.parseFloat(t);return Number.isNaN(n)?0:n}function Dt(e,t){let n=/^(\d+)(?:@(\d+))?$/.exec(e);if(!n)return null;let r=Number.parseInt(n[1],10);if(Number.isNaN(r))return null;let i;if(n[2]!==void 0){if(i=Number.parseInt(n[2],10),Number.isNaN(i))return null}else if(t!==void 0)i=t;else return null;return{start:i,end:i+r-1}}function Ot(e){let t=Ct(e);return{get(e){return t.get(e)},getInt(e,n){let r=t.get(e);if(r===void 0)return n;let i=Number.parseInt(r,10);return Number.isNaN(i)?n:i},getFloat(e,n){let r=t.get(e);if(r===void 0)return n;let i=Number.parseFloat(r);return Number.isNaN(i)?n:i},getBool(e){return t.get(e)===`YES`},getResolution(e){let n=t.get(e);if(n)return wt(n)??void 0},getFrameRate(e){let n=t.get(e);if(n)return Tt(n)}}}function kt(e,t){let n=`#${t}:`;return e.startsWith(n)?Ot(e.slice(n.length)):null}function $(e,t){return new URL(e,t).href}function At(e,t){let n=t.url,r=e.split(/\r?\n/),i=[],a=[],o=[],s=null;for(let e of r){let t=e.trim();if(!t||t.startsWith(`#`)&&!t.startsWith(`#EXT`)||t===`#EXTM3U`||t.startsWith(`#EXT-X-VERSION:`)||t.startsWith(`#EXT-X-INDEPENDENT-SEGMENTS`))continue;let r=kt(t,`EXT-X-MEDIA`);if(r){let e=r.get(`TYPE`),t=r.get(`GROUP-ID`),i=r.get(`NAME`);if(e===`AUDIO`&&t&&i){let e=r.get(`URI`);a.push({groupId:t,name:i,language:r.get(`LANGUAGE`),uri:e?$(e,n):void 0,default:r.getBool(`DEFAULT`),autoselect:r.getBool(`AUTOSELECT`)})}if(e===`SUBTITLES`&&t&&i){let e=r.get(`URI`);e&&o.push({groupId:t,name:i,language:r.get(`LANGUAGE`),uri:$(e,n),default:r.getBool(`DEFAULT`),autoselect:r.getBool(`AUTOSELECT`),forced:r.getBool(`FORCED`)})}continue}let c=kt(t,`EXT-X-STREAM-INF`);if(c){s={bandwidth:c.getInt(`BANDWIDTH`,0),resolution:c.getResolution(`RESOLUTION`),codecs:c.get(`CODECS`),frameRate:c.getFrameRate(`FRAME-RATE`),audioGroupId:c.get(`AUDIO`)};continue}!t.startsWith(`#`)&&s&&(i.push({...s,uri:$(t,n)}),s=null)}let c=[],l=[];for(let e of i){if(!e.codecs){c.push(e);continue}let t=Q(e.codecs);e.codecs.split(`,`).length===1&&t.audio&&!t.video?l.push(e):c.push(e)}let u=c.map(e=>{let t=e.codecs?Q(e.codecs):void 0,n={type:`video`,id:G(),url:e.uri,bandwidth:e.bandwidth,mimeType:`video/mp4`,codecs:[]};return e.resolution?.width!==void 0&&(n.width=e.resolution.width),e.resolution?.height!==void 0&&(n.height=e.resolution.height),t?.video&&(n.codecs=[t.video]),e.frameRate&&(n.frameRate=e.frameRate),e.audioGroupId&&(n.audioGroupId=e.audioGroupId),n}),d=l.map(e=>{let t=e.codecs?Q(e.codecs):void 0;return{type:`audio`,id:G(),url:e.uri,bandwidth:e.bandwidth,mimeType:`audio/mp4`,codecs:t?.audio?[t.audio]:[],groupId:e.audioGroupId||`default`,name:`Default`,sampleRate:48e3,channels:2}}),f=[...a.map(e=>{let t;for(let n of i)if(n.audioGroupId===e.groupId&&n.codecs){let e=Q(n.codecs);if(e.audio){t=[e.audio];break}}let n={type:`audio`,id:G(),url:e.uri??``,groupId:e.groupId,name:e.name,mimeType:`audio/mp4`,bandwidth:0,sampleRate:48e3,channels:2,codecs:[]};return e.language&&(n.language=e.language),t&&(n.codecs=t),e.default&&(n.default=e.default),e.autoselect&&(n.autoselect=e.autoselect),n}),...d],p=o.map(e=>{let t={type:`text`,id:G(),url:e.uri,groupId:e.groupId,label:e.name,kind:`subtitles`,mimeType:`text/vtt`,bandwidth:0};return e.language&&(t.language=e.language),e.default&&e.autoselect&&(t.default=!0),e.autoselect&&(t.autoselect=e.autoselect),e.forced&&(t.forced=e.forced),t}),m=[];if(u.length>0){let e={id:G(),type:`video`,tracks:u},t={id:G(),type:`video`,switchingSets:[e]};m.push(t)}if(f.length>0){let e={id:G(),type:`audio`,tracks:f},t={id:G(),type:`audio`,switchingSets:[e]};m.push(t)}if(p.length>0){let e={id:G(),type:`text`,tracks:p},t={id:G(),type:`text`,switchingSets:[e]};m.push(t)}return{id:G(),url:t.url,startTime:0,selectionSets:m}}function jt(e){let{preload:t,playbackInitiated:n}=e;return[`auto`,`metadata`].includes(t)||!!n}function Mt(e){let{presentation:t}=e;return!t||!(`url`in t)?`preconditions-unmet`:`id`in t?`resolved`:jt(e)?`resolving`:`idle`}function Nt({state:e}){let t=z(()=>Mt(e.get()));return Z({initial:`preconditions-unmet`,monitor:()=>t.get(),states:{"preconditions-unmet":{},idle:{},resolving:{entry:()=>{let t=e.get().presentation,n=new AbortController;return U(t,{signal:n.signal}).then(e=>Fe(e)).then(n=>{B(e,{presentation:At(n,t)})}).catch(e=>{if(!(e instanceof Error&&e.name===`AbortError`))throw e}),n}},resolved:{}}})}function Pt(e,t){let n=e.split(/\r?\n/),r=t.url,i=[],a,o,s=0,c,l=0,u=0,d;for(let e of n){let t=e.trim();if(!t||t.startsWith(`#`)&&!t.startsWith(`#EXT`)||t===`#EXTM3U`||t.startsWith(`#EXT-X-VERSION:`)||t.startsWith(`#EXT-X-TARGETDURATION:`)||t.startsWith(`#EXT-X-PLAYLIST-TYPE:`)||t.startsWith(`#EXT-X-INDEPENDENT-SEGMENTS`))continue;let n=kt(t,`EXT-X-MAP`);if(n){let e=n.get(`URI`);if(e){a=$(e,r);let t=n.get(`BYTERANGE`);t&&(o=Dt(t,0)??void 0)}continue}if(t.startsWith(`#EXTINF:`)){s=Et(t.slice(8));continue}if(t.startsWith(`#EXT-X-BYTERANGE:`)){c=Dt(t.slice(17),d)??void 0;continue}if(t!==`#EXT-X-ENDLIST`&&!t.startsWith(`#`)&&s>0){let e={id:`segment-${u}`,url:$(t,r),duration:s,startTime:l};c?(e.byteRange=c,d=c.end+1):d=void 0,i.push(e),l+=s,u++,s=0,c=void 0}}let f=l,p=t.type===`text`&&!a?void 0:a?{url:a,...o?{byteRange:o}:{}}:{url:``};return{...t,startTime:0,duration:f,segments:i,initialization:p}}function Ft(e,t){let n=H(e,t.type);return n?!V(n):!1}function It(e,t){let n=t.id;return{...e,selectionSets:e.selectionSets.map(e=>({...e,switchingSets:e.switchingSets.map(e=>({...e,tracks:e.tracks.map(e=>e.id===n?t:e)}))}))}}function Lt({state:e},t){let n=new ze,r=I(()=>{let r=e.get();if(!Ft(r,t))return;let i=H(r,t.type);if(!i)return;let a=i;n.schedule(new K(async t=>{let n=Pt(await Fe(await U(a,{signal:t})),a),r=e.get(),i=It(r.presentation,n);e.set({...r,presentation:i})},{id:i.id}))});return()=>{n.abortAll(),r()}}function Rt(e,t){let n=e.selectionSets.find(e=>e.type===`text`);if(!n?.switchingSets?.[0]?.tracks.length)return;let r=n.switchingSets[0].tracks,i=t.includeForcedTracks?r:r.filter(e=>!e.forced);if(i.length===0)return;let{preferredSubtitleLanguage:a,enableDefaultTrack:o=!1}=t;if(a){let e=i.find(e=>e.language===a);if(e)return e.id}if(o){let e=i.find(e=>e.default===!0);if(e)return e.id}}function zt(e,t){return!!e?.presentation?.selectionSets?.find(({type:e})=>e===t.type)?.switchingSets?.[0]?.tracks.length}function Bt(e,t){return!e[Ae[t.type]]}function Vt({state:e},t={type:`video`}){return I(()=>{let n=e.get();if(!zt(n,t)||!Bt(n,t))return;let r=n.presentation?.selectionSets.find(({type:e})=>e===t.type)?.switchingSets[0]?.tracks[0]?.id;r&&B(e,{[Ae[t.type]]:r})})}function Ht({state:e},t={type:`audio`}){return I(()=>{let n=e.get();if(!zt(n,t)||!Bt(n,t))return;let r=n.presentation?.selectionSets.find(({type:e})=>e===`audio`)?.switchingSets[0]?.tracks[0]?.id;r&&B(e,{selectedAudioTrackId:r})})}function Ut({state:e},t={type:`text`}){return I(()=>{let n=e.get();if(!zt(n,t)||!Bt(n,t))return;let r=Rt(n.presentation,t);r&&B(e,{selectedTextTrackId:r})})}function Wt({state:e,owners:t}){let n=z(()=>t.get().mediaElement);return I(()=>{if(e.get().preload!==void 0)return;let t=n.get()?.preload||void 0;t!==void 0&&B(e,{preload:t})})}function Gt(e,t){if(e.length===0)return!0;let n=e[e.length-1];return n?t?.snapshot.get().context.segments.some(e=>e.id===n.id&&!e.partial)??!1:!1}function Kt(e,t){let n=e.selectedVideoTrackId?H(e,`video`):void 0,r=e.selectedAudioTrackId?H(e,`audio`):void 0;return!(n&&!V(n)||r&&!V(r)||n&&V(n)&&!Gt(n.segments,t.videoBufferActor)||r&&V(r)&&!Gt(r.segments,t.audioBufferActor))}function qt(e,t){return!!(t.mediaSource&&e.presentation)}function Jt(e,t){if(!qt(e,t))return!1;let{mediaElement:n}=t;if((t.mediaSourceReadyState?.get()??t.mediaSource?.readyState)!==`open`||n&&n.readyState<HTMLMediaElement.HAVE_METADATA)return!1;let r=!!e.selectedVideoTrackId,i=!!e.selectedAudioTrackId;if(r&&!t.videoBuffer||i&&!t.audioBuffer||t.videoBufferActor?.snapshot.get().value===`updating`||t.audioBufferActor?.snapshot.get().value===`updating`||!Kt(e,t))return!1;if(n){let t=r?H(e,`video`):void 0,a=i?H(e,`audio`):void 0,o=t&&V(t)?t:a&&V(a)?a:void 0;if(o&&o.segments.length>0){let e=o.segments[o.segments.length-1];if(n.currentTime<e.startTime)return!1}}return!0}function Yt(e){let t=[e.videoBufferActor,e.audioBufferActor].filter(e=>e!==void 0&&e.snapshot.get().value===`updating`);return t.length===0?Promise.resolve():Promise.all(t.map(e=>new Promise(t=>{let n,r=!1;n=I(()=>{e.snapshot.get().value!==`updating`&&(r||(r=!0,t()),queueMicrotask(()=>n?.()))})}))).then(()=>void 0)}function Xt(e){let t=0;for(let n of[e.videoBuffer,e.audioBuffer])if(n&&n.buffered.length>0){let e=n.buffered.end(n.buffered.length-1);e>t&&(t=e)}return t}const Zt=async({currentOwners:e},t)=>{let{mediaSource:n}=e;if(n.readyState===`ended`||(await Yt(e),n.readyState!==`open`))return;let r=Xt(e);r>0&&(n.duration=r),n.endOfStream(),await new Promise(e=>requestAnimationFrame(e))};function Qt({state:e,owners:t}){let n=z(()=>Jt(e.get(),t.get())),r=!1;return I(()=>{if(!n.get())return;let e=t.get();if(r){if((e.mediaSourceReadyState?.get()??e.mediaSource?.readyState)!==`open`)return;r=!1}r=!0,Zt({currentOwners:e},{}).catch(e=>console.error(`Failed to call endOfStream:`,e))})}function $t(){return typeof MediaSource<`u`}function en(){return typeof ManagedMediaSource<`u`}function tn(e={}){let{preferManaged:t=!1}=e;if(t&&en())return new ManagedMediaSource;if($t())return new MediaSource;throw Error(`MediaSource API is not supported`)}function nn(e,t){if(en()&&e instanceof ManagedMediaSource)return t.disableRemotePlayback=!0,t.srcObject=e,{url:``,detach:()=>{t.srcObject=null,t.load()}};let n=URL.createObjectURL(e);return t.src=n,{url:n,detach:()=>{t.removeAttribute(`src`),t.load(),URL.revokeObjectURL(n)}}}function rn(e,t){if(e.readyState!==`open`)throw Error(`MediaSource is not open`);if(!an(t))throw Error(`Codec not supported: ${t}`);return e.addSourceBuffer(t)}function an(e){return $t()?MediaSource.isTypeSupported(e):!1}function on(e,t){let n=R(e.readyState),r=()=>n.set(e.readyState),i={signal:t};return e.addEventListener(`sourceopen`,r,i),e.addEventListener(`sourceended`,r,i),e.addEventListener(`sourceclose`,r,i),n}function sn({state:e,owners:t}){let n=new AbortController,r=z(()=>t.get().mediaElement),i=z(()=>e.get().presentation?.url),a=z(()=>!!r.get()&&!!i.get()),o=z(()=>r.get()?.src),s=z(()=>t.get().mediaSource),c=z(()=>!o.get()),l=I(()=>{if(!a.get()||!c.get())return;let e=r.get(),{signal:i}=n,o=tn({preferManaged:!0}),l=on(o,i);nn(o,e);let u=I(()=>{s.get()||l.get()!==`open`||t.set(Object.assign({},t.get(),{mediaSource:o,mediaSourceReadyState:l}))});return()=>{u()}});return()=>{n?.abort(),l()}}function cn(e){let t=[];for(let n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function ln(e,{getContext:t,sourceBuffer:n}){return new K(async r=>{let i=t();return r.aborted?i:(await ut(n,e.data),{...i,initTrackId:e.meta.trackId})})}function un(e,{getContext:t,sourceBuffer:n,setContext:r}){return new K(async i=>{let a=t();if(i.aborted)return a;let{meta:o}=e,s=a.segments.filter(e=>Math.abs(e.startTime-o.startTime)>=1e-4);return e.data instanceof ArrayBuffer||r({...a,segments:[...s,{id:o.id,startTime:o.startTime,duration:o.duration,trackId:o.trackId,...o.trackBandwidth!==void 0&&{trackBandwidth:o.trackBandwidth},partial:!0}],bufferedRanges:a.bufferedRanges}),await ut(n,e.data,i),{...a,segments:[...s,{id:o.id,startTime:o.startTime,duration:o.duration,trackId:o.trackId,...o.trackBandwidth!==void 0&&{trackBandwidth:o.trackBandwidth}}],bufferedRanges:cn(n.buffered)}})}function dn(e,{getContext:t,sourceBuffer:n}){return new K(async r=>{let i=t();if(r.aborted)return i;await ft(n,e.start,e.end);let a=cn(n.buffered),o=i.segments.filter(e=>{let t=e.startTime+e.duration/2;return a.some(e=>t>=e.start&&t<e.end)});return{...i,segments:o,bufferedRanges:a}})}const fn={"append-init":ln,"append-segment":un,remove:dn};function pn(e,t){let n=fn[e.type];return n(e,t)}function mn(e,t){let n=e=>{e instanceof Error&&e.name===`AbortError`||console.error(`SourceBuffer operation failed:`,e)},r=(t,{transition:r,setContext:i,getContext:a,runner:o})=>{r(`updating`);let s=pn(t,{getContext:a,sourceBuffer:e,setContext:i});o.schedule(s).then(i,n)};return Re({runner:()=>new q,initial:`idle`,context:{segments:[],bufferedRanges:[],initTrackId:void 0,...t},states:{idle:{on:{"append-init":r,"append-segment":r,remove:r,batch:(t,{transition:r,setContext:i,getContext:a,runner:o})=>{let{messages:s}=t;s.length!==0&&(r(`updating`),s.forEach(t=>{let r=pn(t,{getContext:a,sourceBuffer:e,setContext:i});o.schedule(r).then(i,n)}))}}},updating:{onSettled:`idle`,on:{cancel:(e,{runner:t})=>{t.abortAll()}}}}})}const hn={video:`videoBufferActor`,audio:`audioBufferActor`};function gn(e){let t=e.codecs?.join(`,`)??``;return`${e.mimeType}; codecs="${t}"`}function _n({state:e,owners:t}){let n=z(()=>{let{presentation:t}=e.get();return!t||!(`selectionSets`in t)?[]:t.selectionSets.map(({type:e})=>e).filter(e=>e===`video`||e===`audio`)}),r=z(()=>{let r=n.get();if(!t.get().mediaSource||r.length===0)return!1;let i=e.get();return r.every(e=>{let t=H(i,e);return t&&V(t)&&!!t.codecs?.length})}),i=z(()=>{let e=t.get();return n.get().every(t=>!e[je[t]])});return I(()=>{if(!r.get()||!i.get())return;let a=e.get(),o=t.get(),s={};for(let e of n.get()){let t=H(a,e),n=rn(o.mediaSource,gn(t));s[je[e]]=n,s[hn[e]]=mn(n)}B(t,s)})}function vn(e){let t=document.createElement(`track`);return t.id=e.id,t.kind=e.kind,t.label=e.label,t.toggleAttribute(`data-src-track`,!0),e.language&&(t.srclang=e.language),e.default&&(t.default=!0),t}function yn(e){return e?.selectionSets?.find(e=>e.type===`text`)?.switchingSets[0]?.tracks}function bn(e,t){for(let n=0;n<e.length;n++){let r=e[n];r.kind!==`subtitles`&&r.kind!==`captions`||(r.mode=r.id===t?`showing`:`disabled`)}}function xn({state:t,owners:n}){let r=z(()=>n.get().mediaElement),i=z(()=>yn(t.get().presentation),{equals(e,t){return e===t?!0:typeof e!=typeof t||e?.length!==t?.length?!1:!!t&&t.every(t=>e?.some(e=>e.id===t.id))}}),a=z(()=>t.get().selectedTextTrackId),o=z(()=>!!r.get()&&!!i.get()?.length);return Z({initial:`preconditions-unmet`,monitor:()=>o.get()?`set-up`:`preconditions-unmet`,states:{"preconditions-unmet":{},"set-up":{entry:()=>{let e=r.get();return i.get().forEach(t=>e.appendChild(vn(t))),()=>{e.querySelectorAll(`track[data-src-track]:is([kind="subtitles"],[kind="captions"]`).forEach(e=>e.remove()),B(t,{selectedTextTrackId:void 0})}},effects:()=>{let n=L(()=>r.get()),i=a.get();bn(n.textTracks,i);let o=setTimeout(()=>{o=void 0},0),s=e(n.textTracks,`change`,()=>{if(o){bn(n.textTracks,L(()=>a.get()));return}let e=Array.from(n.textTracks).find(e=>e.mode===`showing`&&(e.kind===`subtitles`||e.kind===`captions`))?.id;e!==L(()=>a.get())&&B(t,{selectedTextTrackId:e})});return()=>{clearTimeout(o??void 0),s()}}}}})}function Sn(e,t){return!!(t.mediaSource&&e.presentation&&ke(e.presentation))}function Cn(e){let t=0,n=[e.videoSourceBuffer,e.audioSourceBuffer].filter(e=>e!==void 0);for(let e of n){let{buffered:n}=e;if(n.length>0){let e=n.end(n.length-1);e>t&&(t=e)}}return t}function wn(e,t){if(!Sn(e,t))return!1;let{mediaSource:n}=t,{presentation:r}=e;if((t.mediaSourceReadyState?.get()??t.mediaSource?.readyState)!==`open`)return!1;let i=r.duration;return!Number.isFinite(i)||Number.isNaN(i)||i<=0?!1:Number.isNaN(n.duration)}function Tn(e){let t=[e.videoSourceBuffer,e.audioSourceBuffer].filter(e=>e?.updating===!0);return t.length===0?Promise.resolve():Promise.all(t.map(e=>new Promise(t=>e.addEventListener(`updateend`,()=>t(),{once:!0})))).then(()=>void 0)}function En({state:e,owners:t}){let n=!1,r=!1,i=I(()=>{let i=e.get(),a=t.get();if(!wn(i,a)||r)return;let{mediaSource:o}=a;r=!0,Tn(a).then(()=>{if(n||o.readyState!==`open`)return;let e=i.presentation.duration,t=Cn(a);t>e&&(e=t),o.duration=e}).finally(()=>{r=!1})});return()=>{n=!0,i()}}function Dn(e={}){let t=R({bandwidthState:{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}}),n=R({}),r=[Wt({state:t,owners:n}),lt({state:t,owners:n}),Nt({state:t}),Vt({state:t},{type:`video`,...e.initialBandwidth!==void 0&&{initialBandwidth:e.initialBandwidth}}),Ht({state:t},{type:`audio`,...e.preferredAudioLanguage!==void 0&&{preferredAudioLanguage:e.preferredAudioLanguage}}),Ut({state:t},{type:`text`,...e.preferredSubtitleLanguage!==void 0&&{preferredSubtitleLanguage:e.preferredSubtitleLanguage},...e.includeForcedTracks!==void 0&&{includeForcedTracks:e.includeForcedTracks},...e.enableDefaultTrack!==void 0&&{enableDefaultTrack:e.enableDefaultTrack}}),Lt({state:t},{type:`video`}),Lt({state:t},{type:`audio`}),Lt({state:t},{type:`text`}),gt({state:t}),sn({state:t,owners:n}),En({state:t,owners:n}),_n({state:t,owners:n}),st({state:t,owners:n}),St({state:t},e.initialBandwidth===void 0?{}:{defaultBandwidth:e.initialBandwidth}),Je({state:t,owners:n},{type:`video`}),Je({state:t,owners:n},{type:`audio`}),Qt({state:t,owners:n}),xn({state:t,owners:n}),ot({state:t,owners:n})];return{state:t,owners:n,destroy:()=>{r.forEach(e=>typeof e==`function`?e():e.destroy());for(let e of Object.values(n.get()))typeof e==`object`&&e&&typeof e.destroy==`function`&&e.destroy();Ze()}}}var On=class{#e;#t;#n=``;#r=null;constructor(e={}){this.#t=e,this.#e=Dn(e)}get engine(){return this.#e}attach(e){B(this.#e.owners,{mediaElement:e})}detach(){this.#i(),B(this.#e.owners,{mediaElement:void 0})}destroy(){this.#i(),this.#e.destroy()}get preload(){return this.#n}set preload(e){this.#n=e,e&&B(this.#e.state,{preload:e})}get src(){return this.#e.state.get().presentation?.url??``}set src(e){let t=this.#e.owners.get().mediaElement;this.#i(),this.#e.destroy(),this.#e=Dn(this.#t),this.#n&&B(this.#e.state,{preload:this.#n}),t&&B(this.#e.owners,{mediaElement:t}),e&&B(this.#e.state,{presentation:{url:e}})}play(){let{mediaElement:e}=this.#e.owners.get();return e?(B(this.#e.state,{playbackInitiated:!0}),e.play().catch(t=>{if(this.src)return new Promise((t,n)=>{let r=()=>{this.#r=null,e.play().then(t,n)};this.#r=r,e.addEventListener(`loadstart`,r,{once:!0})});throw t})):Promise.reject(Error(`SpfMedia: no media element attached`))}#i(){if(!this.#r)return;let{mediaElement:e}=this.#e.owners.get();e?.removeEventListener(`loadstart`,this.#r),this.#r=null}},kn=class extends r(i,On){},An=class extends a(o(kn),On){constructor(){super(),this.attach(this.target)}};t(class extends An{static{this.tagName=`simple-hls-video`}});
58
+ const M=Symbol(`node`);var N;(e=>{var t,n,r,i;class a{constructor(r,i={}){_(this,n),ne(this,t);let a=Ce(r)[x];if(this[M]=a,a.wrapper=this,i){let t=i.equals;t&&(a.equal=t),a.watched=i[e.subtle.watched],a.unwatched=i[e.subtle.unwatched]}}get(){if(!(0,e.isState)(this))throw TypeError(`Wrong receiver type for Signal.State.prototype.get`);return we.call(this[M])}set(t){if(!(0,e.isState)(this))throw TypeError(`Wrong receiver type for Signal.State.prototype.set`);if(se())throw Error(`Writes to signals not permitted during Watcher callback`);let n=this[M];Te(n,t)}}t=M,n=new WeakSet,e.isState=e=>typeof e==`object`&&g(n,e),e.State=a;class o{constructor(t,n){_(this,i),ne(this,r);let a=ve(t)[x];if(a.consumerAllowSignalWrites=!0,this[M]=a,a.wrapper=this,n){let t=n.equals;t&&(a.equal=t),a.watched=n[e.subtle.watched],a.unwatched=n[e.subtle.unwatched]}}get(){if(!(0,e.isComputed)(this))throw TypeError(`Wrong receiver type for Signal.Computed.prototype.get`);return _e(this[M])}}r=M,i=new WeakSet,e.isComputed=e=>typeof e==`object`&&g(i,e),e.Computed=o,(t=>{var n,r,i,a;function o(e){let t,n=null;try{n=S(null),t=e()}finally{S(n)}return t}t.untrack=o;function s(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw TypeError(`Called introspectSources without a Computed or Watcher argument`);return t[M].producerNode?.map(e=>e.wrapper)??[]}t.introspectSources=s;function c(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw TypeError(`Called introspectSinks without a Signal argument`);return t[M].liveConsumerNode?.map(e=>e.wrapper)??[]}t.introspectSinks=c;function l(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw TypeError(`Called hasSinks without a Signal argument`);let n=t[M].liveConsumerNode;return n?n.length>0:!1}t.hasSinks=l;function u(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw TypeError(`Called hasSources without a Computed or Watcher argument`);let n=t[M].producerNode;return n?n.length>0:!1}t.hasSources=u;class d{constructor(e){_(this,r),_(this,i),ne(this,n);let t=Object.create(C);t.wrapper=this,t.consumerMarkedDirty=e,t.consumerIsAlwaysLive=!0,t.consumerAllowSignalWrites=!1,t.producerNode=[],this[M]=t}watch(...t){if(!(0,e.isWatcher)(this))throw TypeError(`Called unwatch without Watcher receiver`);ie(this,i,a).call(this,t);let n=this[M];n.dirty=!1;let r=S(n);for(let e of t)w(e[M]);S(r)}unwatch(...t){if(!(0,e.isWatcher)(this))throw TypeError(`Called unwatch without Watcher receiver`);ie(this,i,a).call(this,t);let n=this[M];D(n);for(let e=n.producerNode.length-1;e>=0;e--)if(t.includes(n.producerNode[e].wrapper)){T(n.producerNode[e],n.producerIndexOfThis[e]);let t=n.producerNode.length-1;if(n.producerNode[e]=n.producerNode[t],n.producerIndexOfThis[e]=n.producerIndexOfThis[t],n.producerNode.length--,n.producerIndexOfThis.length--,n.nextProducerIndex--,e<n.producerNode.length){let t=n.producerIndexOfThis[e],r=n.producerNode[e];O(r),r.liveConsumerIndexOfThis[t]=e}}}getPending(){if(!(0,e.isWatcher)(this))throw TypeError(`Called getPending without Watcher receiver`);return this[M].producerNode.filter(e=>e.dirty).map(e=>e.wrapper)}}n=M,r=new WeakSet,i=new WeakSet,a=function(t){for(let n of t)if(!(0,e.isComputed)(n)&&!(0,e.isState)(n))throw TypeError(`Called watch/unwatch without a Computed or State argument`)},e.isWatcher=e=>g(r,e),t.Watcher=d;function f(){return oe()?.wrapper}t.currentComputed=f,t.watched=Symbol(`watched`),t.unwatched=Symbol(`unwatched`)})(e.subtle||={})})(N||={});const P=new Set,F=new N.subtle.Watcher(()=>{queueMicrotask(Oe)});function Oe(){for(let e of F.getPending())P.add(e);F.watch();for(let e of P)P.delete(e),e.get()}function I(e){let t,n=new N.Computed(()=>{typeof t==`function`&&t(),t=e()});return F.watch(n),n.get(),()=>{F.unwatch(n),typeof t==`function`&&t()}}const L=N.subtle.untrack;function R(e,t){return new N.State(e,t)}function z(e,t){return new N.Computed(e,t)}function B(e,t){let n=L(()=>e.get());e.set(typeof t==`function`?t(n):{...n,...t})}function V(e){return`segments`in e}function ke(e){return e.duration!==void 0}const Ae={video:`selectedVideoTrackId`,audio:`selectedAudioTrackId`,text:`selectedTextTrackId`},je={video:`videoBuffer`,audio:`audioBuffer`};function H(e,t){let{presentation:n}=e;if(!n||!(`id`in n))return;let r=e[Ae[t]];return n.selectionSets.find(({type:e})=>e===t)?.switchingSets[0]?.tracks.find(({id:e})=>e===r)}const Me=2**17;var Ne=class{minChunkSize;#e;constructor(e,{minChunkSize:t=Me}={}){this.#e=e,this.minChunkSize=t}async*[Symbol.asyncIterator](){let e,t=this.#e.getReader();try{for(;;){let{done:n,value:r}=await t.read();if(n){e&&(yield e);break}e=e?Pe(e,r):r,e.length>=this.minChunkSize&&(yield e,e=void 0)}}finally{t.releaseLock()}}};function Pe(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}async function U(e,t){let n=new Headers(t?.headers);if(e.byteRange){let{start:t,end:r}=e.byteRange;n.set(`Range`,`bytes=${t}-${r}`)}let r=new Request(e.url,{method:`GET`,headers:n,...t});return fetch(r)}function Fe(e){return e.text()}const Ie={keepSegments:2};function Le(e,t,n=Ie){if(e.length===0)return 0;let r=e.filter(e=>e.startTime<t);if(r.length===0)return 0;let i=r.length-n.keepSegments;return i<=0?0:i>=r.length?t:r[i].startTime}function W(e){let t=R(e);return{snapshotSignal:t,getState:()=>L(()=>t.get().value),transition:e=>B(t,t=>({...t,value:e}))}}function Re(e){let t=e.runner?.(),{snapshotSignal:n,getState:r,transition:i}=W({value:e.initial,context:e.context}),a=()=>L(()=>n.get().context),o=e=>{B(n,{context:e})};return{get snapshot(){return n},send(n){let s=r();if(s===`destroyed`)return;let c=e.states[s]?.on?.[n.type];if(!c)return;c(n,{context:a(),getContext:a,transition:e=>i(e),setContext:o,...t?{runner:t}:{}});let l=r();if(l!==`destroyed`){let n=e.states[l];if(n?.onSettled&&t){let e=n.onSettled;t.whenSettled(()=>{r()===l&&i(e)})}}},destroy(){r()!==`destroyed`&&(t?.destroy(),i(`destroyed`))}}}function G(){return`${Date.now()}-${Math.floor(Math.random()*1e6)}`}var K=class{id;#e;#t=new AbortController;#n;#r=`pending`;#i=void 0;#a=void 0;constructor(e,t){this.#e=e;let n=t?.id;this.id=typeof n==`function`?n():n??G(),this.#n=t?.signal?a([this.#t.signal,t.signal]):this.#t.signal}get status(){return this.#r}get value(){return this.#i}get error(){return this.#a}async run(){this.#r=`running`;try{let e=await this.#e(this.#n);return this.#i=e,this.#r=`done`,e}catch(e){throw this.#a=e,this.#r=`error`,e}}abort(){this.#t.abort()}},ze=class{#e=new Map;#t=Promise.resolve();#n=null;#r=!1;schedule(e){if(this.#r)return Promise.resolve();let t=this.#e.get(e.id);if(t)return t.promise;this.#e.size===0&&(this.#t=new Promise(e=>{this.#n=e}));let n=e.run();n.catch(()=>{});let r=()=>{this.#e.delete(e.id),this.#e.size===0&&(this.#n?.(),this.#n=null)};return n.then(r,r),this.#e.set(e.id,{task:e,promise:n}),n}whenSettled(e){if(this.#e.size===0)return;let t=this.#t;t.then(()=>{this.#t===t&&e()},()=>{})}abortAll(){for(let{task:e}of this.#e.values())e.abort();this.#e.clear(),this.#n?.(),this.#n=null,this.#t=Promise.resolve()}destroy(){this.#r=!0,this.abortAll()}},q=class{#e=Promise.resolve();#t=new Set;#n=null;#r=!1;schedule(e){if(this.#r)return Promise.resolve();let t=e;this.#t.add(t);let n=this.#e.then(()=>(this.#t.delete(t),this.#n=t,e.run())).finally(()=>{this.#n=null});return this.#e=n.then(()=>{},()=>{}),n}get settled(){return this.#e}whenSettled(e){if(this.#t.size===0&&this.#n===null)return;let t=this.#e;t.then(()=>{this.#e===t&&e()},()=>{})}abortPending(){for(let e of this.#t)e.abort();this.#t.clear()}abortAll(){this.abortPending(),this.#n?.abort()}destroy(){this.#r=!0,this.abortAll()}};function J(e,t){return new Promise((n,r)=>{if(e.get().value===`idle`){n();return}if(e.get().value===`destroyed`){r(new DOMException(`Aborted`,`AbortError`));return}if(t.aborted){r(t.reason);return}let i,a=e=>{i?.(),t.removeEventListener(`abort`,o),e()},o=()=>a(()=>r(t.reason));i=I(()=>{let t=e.get().value;t===`idle`?a(n):t===`destroyed`&&a(()=>r(new DOMException(`Aborted`,`AbortError`)))}),t.addEventListener(`abort`,o,{once:!0})})}function Be(e,{getContext:t,setContext:n,fetchBytes:r,sourceBufferActor:i}){return new K(async a=>{if(!a.aborted){if(e.type===`remove`){i.send(e),await J(i.snapshot,a);return}if(e.type===`append-init`){n({...t(),inFlightInitTrackId:e.meta.trackId});try{let t=await r(e,{signal:a,minChunkSize:1/0});a.aborted||(i.send({type:`append-init`,data:t,meta:e.meta}),await J(i.snapshot,a))}finally{n({...t(),inFlightInitTrackId:null})}return}n({...t(),inFlightSegmentId:e.meta.id});try{let t=await r(e,{signal:a});a.aborted||(i.send({type:`append-segment`,data:t,meta:e.meta}),await J(i.snapshot,a))}finally{n({...t(),inFlightSegmentId:null})}}})}function Ve(e,t){let n=t=>{let n=new Set(e.snapshot.get().context.segments.filter(e=>!e.partial).map(e=>e.id));return t.filter(e=>n.has(e.id))},r=t=>{let{track:r,range:i}=t,a=e.snapshot.get().context,o=n(r.segments),s=i?.start??0,c=[];if(i){let e=m(o,s);e<1/0&&c.push({type:`remove`,start:e,end:1/0});let t=Le(o,s);t>0&&c.push({type:`remove`,start:0,end:t})}if(a.initTrackId!==r.id&&c.push({type:`append-init`,meta:{trackId:r.id},url:r.initialization.url,...r.initialization.byteRange!==void 0&&{byteRange:r.initialization.byteRange}}),i){let e=h(r.segments,o,s).filter(e=>{let t=a.segments.find(t=>Math.abs(t.startTime-e.startTime)<1e-4);return t?.partial||!t?.trackBandwidth||!r.bandwidth?!0:r.bandwidth>t.trackBandwidth});for(let t of e)c.push({type:`append-segment`,meta:{id:t.id,startTime:t.startTime,duration:t.duration,trackId:r.id,trackBandwidth:r.bandwidth},url:t.url,...t.byteRange!==void 0&&{byteRange:t.byteRange}})}return c},i=(n,{getContext:r,setContext:i,runner:a})=>{n.forEach(n=>{a.schedule(Be(n,{getContext:r,setContext:i,fetchBytes:t,sourceBufferActor:e})).then(void 0,e=>{e instanceof Error&&e.name===`AbortError`||(console.error(`Unexpected error in segment loader:`,e),a.abortPending())})})};return Re({runner:()=>new q,initial:`idle`,context:{inFlightInitTrackId:null,inFlightSegmentId:null},states:{idle:{on:{load:(e,t)=>{let n=r(e);n.length!==0&&(t.transition(`loading`),i(n,t))}}},loading:{onSettled:`idle`,on:{load:(t,n)=>{let{context:a,runner:o}=n,s=r(t);a.inFlightSegmentId!==null&&s.some(e=>e.type===`append-segment`&&e.meta.id===a.inFlightSegmentId)||a.inFlightInitTrackId!==null&&s.some(e=>e.type===`append-init`&&e.meta.trackId===a.inFlightInitTrackId)?(o.abortPending(),i(s.filter(e=>!(e.type===`append-segment`&&e.meta.id===a.inFlightSegmentId)&&!(e.type===`append-init`&&e.meta.trackId===a.inFlightInitTrackId)),n)):(o.abortAll(),(a.inFlightSegmentId!==null||a.inFlightInitTrackId!==null&&s.some(e=>e.type===`append-init`&&e.meta.trackId!==a.inFlightInitTrackId))&&e.send({type:`cancel`}),i(s,n))}}}}})}const He={video:`videoBufferActor`,audio:`audioBufferActor`};function Ue(e,t){return async(n,r)=>{let{minChunkSize:i,...a}=r??{},o=await U(n,a);if(!o.body)throw Error(`Response has no body`);let s=o.body;return{[Symbol.asyncIterator]:async function*(){let n=performance.now();for await(let r of new Ne(s,...i===void 0?[]:[{minChunkSize:i}])){let i=performance.now()-n,a=d(e.get(),i,r.byteLength);e.set(a),t?.(a),yield r,n=performance.now()}}}}}async function We(e,t){let{minChunkSize:n,...r}=t??{},i=await U(e,r);if(!i.body)throw Error(`Response has no body`);return new Ne(i.body,...n===void 0?[]:[{minChunkSize:n}])}function Ge([e,t],n){let{playbackInitiated:r,preload:i,currentTime:a}=t;return{playbackInitiated:r,preload:i,currentTime:a,track:H(t,n),segmentsCanLoad:e}}const Ke=(e,t)=>{if(e!=null)return t?.segments.find(({startTime:t,duration:n},r,i)=>e>=t&&(e<t+n||r===i.length-1))?.startTime};function qe(e,t){return t.segmentsCanLoad?t.playbackInitiated?!e.playbackInitiated&&t.playbackInitiated&&e.preload!==`auto`?!1:!t.track||!V(t.track)?!0:e.track?.id!==t.track.id&&V(t.track)?!1:Ke(e.currentTime,t.track)===Ke(t.currentTime,t.track):t.preload===`none`?!0:t.preload===e.preload:!0}function Je({state:e,owners:t},n){let{type:r}=n,i=He[r],a=e.get().bandwidthState,o=R(a??{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}),s=r===`video`?Ue(o,a===void 0?void 0:t=>{e.set(Object.assign({},e.get(),{bandwidthState:t}))}):We,c=R(void 0),l=z(()=>t.get()[i]),u,d=I(()=>{let e=l.get();if(u&&=(u.destroy(),c.set(void 0),void 0),e){let t=Ve(e,s);u=t,c.set(t)}}),f=z(()=>{let t=H(e.get(),r);return!!t&&V(t)&&!!c.get()}),m=z(()=>Ge([f.get(),e.get()],r)),h,ee=I(()=>{let e=m.get();if(h!==void 0&&qe(h,e))return;let{preload:t,playbackInitiated:n,currentTime:r,track:i,segmentsCanLoad:a}=e;a&&(h=e,t===`auto`||n?c.get()?.send({type:`load`,track:i,range:{start:r,end:r+p.bufferDuration}}):c.get()?.send({type:`load`,track:i}))});return()=>{d(),ee(),u?.destroy()}}let Y=null;function Ye(){return Y||(Y=document.createElement(`video`),Y.muted=!0,Y.preload=`none`,Y.style.display=`none`,Y.crossOrigin=`anonymous`),Y}function Xe(e){let t=Ye(),n=document.createElement(`track`);return n.kind=`subtitles`,n.default=!0,new Promise((r,i)=>{let a=()=>{let e=[],t=n.track;if(t.cues)for(let n=0;n<t.cues.length;n++){let r=t.cues[n];r&&e.push(r)}s(),r(e)},o=()=>{s(),i(Error(`Failed to load VTT segment: ${e}`))},s=()=>{n.removeEventListener(`load`,a),n.removeEventListener(`error`,o),t.removeChild(n)};n.addEventListener(`load`,a),n.addEventListener(`error`,o),t.appendChild(n),n.src=e})}function Ze(){Y=null}const X=e=>e===void 0?[]:Array.isArray(e)?e:[e];function Z(e){let{snapshotSignal:t,getState:n,transition:r}=W({value:e.initial}),i=[],a=e=>{if(e)return typeof e==`function`?e:()=>e.abort()},o=e=>()=>L(e),s=e=>e.value===`destroying`||e.value===`destroyed`,c=[...X(e.monitor).map(e=>({fn:()=>{let t=e();t!==n()&&r(t)},shouldSkip:s})),...Object.entries(e.states).flatMap(([e,t])=>{let n=t=>t.value!==e;return[...X(t.entry).map(e=>({fn:e,shouldSkip:n,toFnCall:o})),...X(t.effects).map(e=>({fn:e,shouldSkip:n}))]})];return i.push(...c.map(({fn:e,shouldSkip:n,toFnCall:r=e=>e})=>I(()=>n(t.get())?void 0:a(r(()=>e())())))),{get snapshot(){return t},destroy(){let e=n();if(!(e===`destroying`||e===`destroyed`)){r(`destroying`),r(`destroyed`);for(let e of i)e()}}}}function Qe(e){let t=new q,n=!1;return{send({track:r,currentTime:i}){if(n)return;let a=r.id,o=L(()=>e.snapshot.get().context.segments[a]??[]),s=h(r.segments,o,i);t.abortAll();for(let n of s)t.schedule(new K(async t=>{if(!t.aborted)try{let r=await Xe(n.url);if(t.aborted)return;e.send({type:`add-cues`,meta:{trackId:a,id:n.id,startTime:n.startTime,duration:n.duration},cues:r})}catch(e){console.error(`Failed to load VTT segment:`,e)}}))},destroy(){n||(n=!0,t.destroy())}}}function $e(e,t){let{snapshotSignal:n,getState:r,transition:i}=W({value:`active`,context:e}),a=()=>L(()=>n.get().context),o=e=>B(n,{context:e});return{get snapshot(){return n},send(e){if(r()===`destroyed`)return;let n=a(),i=t(n,e);i!==n&&o(i)},destroy(){r()!==`destroyed`&&i(`destroyed`)}}}function et(e,t){return t.some(t=>t.startTime===e.startTime&&t.endTime===e.endTime&&t.text===e.text)}function tt(e){return $e({loaded:{},segments:{}},(t,n)=>{let{meta:r,cues:i}=n,{trackId:a,id:o,startTime:s,duration:c}=r,l=Array.from(e.textTracks).find(e=>e.id===a);if(!l)return t;let u=t.loaded[a]??[],d=t.segments[a]??[],f=i.filter(e=>!et(e,u)),p=d.some(e=>e.id===o);if(f.length===0&&p)return t;for(let e of f)l.addCue(e);return{...t,loaded:{...t.loaded,[a]:[...u,...f]},segments:p?t.segments:{...t.segments,[a]:[...d,{id:o,startTime:s,duration:c}]}}})}function nt(e){return e?.selectionSets?.find(e=>e.type===`text`)?.switchingSets[0]?.tracks}function rt(e){let t=nt(e.presentation)?.find(t=>t.id===e.selectedTextTrackId);return t&&V(t)?t:void 0}function it(e,t){if(!t.mediaElement||!nt(e.presentation)?.length)return`preconditions-unmet`;if(!t.textTracksActor||!t.segmentLoaderActor)return`setting-up`;let n=rt(e);return!n||n.segments.length===0||!Array.from(t.mediaElement.textTracks).some(t=>t.id===e.selectedTextTrackId)?`pending`:`monitoring-for-loads`}function at(e){let{textTracksActor:t,segmentLoaderActor:n}=L(()=>e.get());!t&&!n||(t?.destroy(),n?.destroy(),B(e,{textTracksActor:void 0,segmentLoaderActor:void 0}))}function ot({state:e,owners:t}){let n=z(()=>it(e.get(),t.get())),r=z(()=>e.get().currentTime??0),i=z(()=>rt(e.get()));return Z({initial:`preconditions-unmet`,monitor:()=>n.get(),states:{"preconditions-unmet":{entry:()=>{at(t)}},"setting-up":{entry:()=>{at(t);let e=t.get().mediaElement,n=tt(e);B(t,{textTracksActor:n,segmentLoaderActor:Qe(n)})}},pending:{},"monitoring-for-loads":{effects:()=>{let e=r.get(),n=i.get(),{segmentLoaderActor:a}=L(()=>t.get());a.send({type:`load`,track:n,currentTime:e})}}}})}function st({state:t,owners:n}){let r,i=null,a=I(()=>{let{mediaElement:a}=n.get();if(a===r||(i?.(),i=null,r=a,!a))return;let o=()=>{B(t,{currentTime:a.currentTime})};o();let s=e(a,`timeupdate`,o),c=e(a,`seeking`,o);i=()=>{s(),c()}});return()=>{i?.(),a()}}function ct(e,t){return!t.mediaElement||!e.presentation?.url?`preconditions-unmet`:e.playbackInitiated?`playback-initiated`:`monitoring`}function lt({state:t,owners:n}){let r=z(()=>ct(t.get(),n.get())),i=z(()=>n.get().mediaElement),a=z(()=>t.get().presentation?.url);return Z({initial:`preconditions-unmet`,monitor:()=>r.get(),states:{"preconditions-unmet":{},monitoring:{entry:()=>{let n=i.get();return B(t,{playbackInitiated:!n.paused}),e(n,`play`,()=>{B(t,{playbackInitiated:!n.paused})})}},"playback-initiated":{effects:()=>(i.get(),a.get(),()=>B(t,{playbackInitiated:!1}))}}})}async function ut(e,t,n){if(t instanceof ArrayBuffer)await dt(e,t);else try{for await(let r of t){if(n?.aborted)throw n.reason??new DOMException(`Aborted`,`AbortError`);await dt(e,r)}}catch(t){if(t instanceof DOMException&&t.name===`AbortError`&&!e.updating)try{e.abort()}catch{}throw t}}async function dt(e,t){return e.updating&&await new Promise(t=>{let n=()=>{e.removeEventListener(`updateend`,n),t()};e.addEventListener(`updateend`,n)}),new Promise((n,r)=>{let i=()=>{o(),n()},a=e=>{o(),r(Error(`SourceBuffer append error: ${e.type}`))},o=()=>{e.removeEventListener(`updateend`,i),e.removeEventListener(`error`,a)};e.addEventListener(`updateend`,i),e.addEventListener(`error`,a);try{e.appendBuffer(t)}catch(e){o(),r(e)}})}async function ft(e,t,n){return e.updating&&await new Promise(t=>{let n=()=>{e.removeEventListener(`updateend`,n),t()};e.addEventListener(`updateend`,n)}),new Promise((r,i)=>{let a=()=>{s(),r()},o=e=>{s(),i(Error(`SourceBuffer remove error: ${e.type}`))},s=()=>{e.removeEventListener(`updateend`,a),e.removeEventListener(`error`,o)};e.addEventListener(`updateend`,a),e.addEventListener(`error`,o);try{e.remove(t,n)}catch(e){s(),i(e)}})}function pt(e){return e.presentation?!!(e.selectedVideoTrackId||e.selectedAudioTrackId):!1}function mt(e){if(!pt(e))return!1;let{presentation:t}=e;if(t.duration!==void 0)return!1;let n=e.selectedVideoTrackId?H(e,`video`):void 0,r=e.selectedAudioTrackId?H(e,`audio`):void 0;return!!(n&&V(n)||r&&V(r))}function ht(e){let t=e.selectedVideoTrackId?H(e,`video`):void 0;if(t&&V(t))return t.duration;let n=e.selectedAudioTrackId?H(e,`audio`):void 0;if(n&&V(n))return n.duration}function gt({state:e}){return I(()=>{let t=e.get();if(!mt(t))return;let n=ht(t);n===void 0||!Number.isFinite(n)||e.set({...t,presentation:{...t.presentation,duration:n}})})}const _t={safetyMargin:.85};function vt(e,t,n=_t){if(e.length===0)return;let r=e.slice().sort((e,t)=>e.bandwidth-t.bandwidth),i;for(let e of r)t>=e.bandwidth/n.safetyMargin&&(!i||e.bandwidth>i.bandwidth||e.bandwidth===i.bandwidth&&yt(e,i))&&(i=e);return i??r[0]}function yt(e,t){return(e.width??0)*(e.height??0)>(t.width??0)*(t.height??0)}const bt={safetyMargin:.85,minUpgradeInterval:8e3,defaultBandwidth:5e6};function xt(e){return(e.selectionSets?.find(e=>e.type===`video`))?.switchingSets[0]?.tracks??[]}function St({state:e},t={}){let n=t.safetyMargin??bt.safetyMargin,r=t.minUpgradeInterval??bt.minUpgradeInterval,i=t.defaultBandwidth??bt.defaultBandwidth,a=Date.now(),o=!0;return I(()=>{let{presentation:t,bandwidthState:s,selectedVideoTrackId:c,abrDisabled:l}=e.get();if(l===!0||!t||!s)return;let u=xt(t);if(u.length===0)return;let d=o;o=!1;let p=vt(u,f(s,i),{safetyMargin:n});if(!p||p.id===c)return;let m=u.find(e=>e.id===c);if(!m||p.bandwidth>m.bandwidth){let e=Date.now();if(!d&&e-a<r)return;a=e}B(e,{selectedVideoTrackId:p.id})})}function Ct(e){let t=new Map;for(let n of e.matchAll(/([A-Z0-9-]+)=(?:"([^"]*)"|([^,]*))/g)){let e=n[1],r=n[2]??n[3]??``;e&&t.set(e,r)}return t}function wt(e){let t=/^(\d+)x(\d+)$/.exec(e);return t?{width:Number.parseInt(t[1],10),height:Number.parseInt(t[2],10)}:null}function Tt(e){let t=Number.parseFloat(e);if(!(Number.isNaN(t)||t<=0))return Math.abs(t-23.976)<.01?{frameRateNumerator:24e3,frameRateDenominator:1001}:Math.abs(t-29.97)<.01?{frameRateNumerator:3e4,frameRateDenominator:1001}:Math.abs(t-59.94)<.01?{frameRateNumerator:6e4,frameRateDenominator:1001}:(t%1,{frameRateNumerator:Math.round(t)})}function Q(e){let t=e.split(`,`).map(e=>e.trim()),n={};for(let e of t)e.startsWith(`avc1.`)||e.startsWith(`hvc1.`)||e.startsWith(`hev1.`)?n.video=e:e.startsWith(`mp4a.`)&&(n.audio=e);return n}function Et(e){let t=e.split(`,`)[0]??e,n=Number.parseFloat(t);return Number.isNaN(n)?0:n}function Dt(e,t){let n=/^(\d+)(?:@(\d+))?$/.exec(e);if(!n)return null;let r=Number.parseInt(n[1],10);if(Number.isNaN(r))return null;let i;if(n[2]!==void 0){if(i=Number.parseInt(n[2],10),Number.isNaN(i))return null}else if(t!==void 0)i=t;else return null;return{start:i,end:i+r-1}}function Ot(e){let t=Ct(e);return{get(e){return t.get(e)},getInt(e,n){let r=t.get(e);if(r===void 0)return n;let i=Number.parseInt(r,10);return Number.isNaN(i)?n:i},getFloat(e,n){let r=t.get(e);if(r===void 0)return n;let i=Number.parseFloat(r);return Number.isNaN(i)?n:i},getBool(e){return t.get(e)===`YES`},getResolution(e){let n=t.get(e);if(n)return wt(n)??void 0},getFrameRate(e){let n=t.get(e);if(n)return Tt(n)}}}function kt(e,t){let n=`#${t}:`;return e.startsWith(n)?Ot(e.slice(n.length)):null}function $(e,t){return new URL(e,t).href}function At(e,t){let n=t.url,r=e.split(/\r?\n/),i=[],a=[],o=[],s=null;for(let e of r){let t=e.trim();if(!t||t.startsWith(`#`)&&!t.startsWith(`#EXT`)||t===`#EXTM3U`||t.startsWith(`#EXT-X-VERSION:`)||t.startsWith(`#EXT-X-INDEPENDENT-SEGMENTS`))continue;let r=kt(t,`EXT-X-MEDIA`);if(r){let e=r.get(`TYPE`),t=r.get(`GROUP-ID`),i=r.get(`NAME`);if(e===`AUDIO`&&t&&i){let e=r.get(`URI`);a.push({groupId:t,name:i,language:r.get(`LANGUAGE`),uri:e?$(e,n):void 0,default:r.getBool(`DEFAULT`),autoselect:r.getBool(`AUTOSELECT`)})}if(e===`SUBTITLES`&&t&&i){let e=r.get(`URI`);e&&o.push({groupId:t,name:i,language:r.get(`LANGUAGE`),uri:$(e,n),default:r.getBool(`DEFAULT`),autoselect:r.getBool(`AUTOSELECT`),forced:r.getBool(`FORCED`)})}continue}let c=kt(t,`EXT-X-STREAM-INF`);if(c){s={bandwidth:c.getInt(`BANDWIDTH`,0),resolution:c.getResolution(`RESOLUTION`),codecs:c.get(`CODECS`),frameRate:c.getFrameRate(`FRAME-RATE`),audioGroupId:c.get(`AUDIO`)};continue}!t.startsWith(`#`)&&s&&(i.push({...s,uri:$(t,n)}),s=null)}let c=[],l=[];for(let e of i){if(!e.codecs){c.push(e);continue}let t=Q(e.codecs);e.codecs.split(`,`).length===1&&t.audio&&!t.video?l.push(e):c.push(e)}let u=c.map(e=>{let t=e.codecs?Q(e.codecs):void 0,n={type:`video`,id:G(),url:e.uri,bandwidth:e.bandwidth,mimeType:`video/mp4`,codecs:[]};return e.resolution?.width!==void 0&&(n.width=e.resolution.width),e.resolution?.height!==void 0&&(n.height=e.resolution.height),t?.video&&(n.codecs=[t.video]),e.frameRate&&(n.frameRate=e.frameRate),e.audioGroupId&&(n.audioGroupId=e.audioGroupId),n}),d=l.map(e=>{let t=e.codecs?Q(e.codecs):void 0;return{type:`audio`,id:G(),url:e.uri,bandwidth:e.bandwidth,mimeType:`audio/mp4`,codecs:t?.audio?[t.audio]:[],groupId:e.audioGroupId||`default`,name:`Default`,sampleRate:48e3,channels:2}}),f=[...a.map(e=>{let t;for(let n of i)if(n.audioGroupId===e.groupId&&n.codecs){let e=Q(n.codecs);if(e.audio){t=[e.audio];break}}let n={type:`audio`,id:G(),url:e.uri??``,groupId:e.groupId,name:e.name,mimeType:`audio/mp4`,bandwidth:0,sampleRate:48e3,channels:2,codecs:[]};return e.language&&(n.language=e.language),t&&(n.codecs=t),e.default&&(n.default=e.default),e.autoselect&&(n.autoselect=e.autoselect),n}),...d],p=o.map(e=>{let t={type:`text`,id:G(),url:e.uri,groupId:e.groupId,label:e.name,kind:`subtitles`,mimeType:`text/vtt`,bandwidth:0};return e.language&&(t.language=e.language),e.default&&e.autoselect&&(t.default=!0),e.autoselect&&(t.autoselect=e.autoselect),e.forced&&(t.forced=e.forced),t}),m=[];if(u.length>0){let e={id:G(),type:`video`,tracks:u},t={id:G(),type:`video`,switchingSets:[e]};m.push(t)}if(f.length>0){let e={id:G(),type:`audio`,tracks:f},t={id:G(),type:`audio`,switchingSets:[e]};m.push(t)}if(p.length>0){let e={id:G(),type:`text`,tracks:p},t={id:G(),type:`text`,switchingSets:[e]};m.push(t)}return{id:G(),url:t.url,startTime:0,selectionSets:m}}function jt(e){let{preload:t,playbackInitiated:n}=e;return[`auto`,`metadata`].includes(t)||!!n}function Mt(e){let{presentation:t}=e;return!t||!(`url`in t)?`preconditions-unmet`:`id`in t?`resolved`:jt(e)?`resolving`:`idle`}function Nt({state:e}){let t=z(()=>Mt(e.get()));return Z({initial:`preconditions-unmet`,monitor:()=>t.get(),states:{"preconditions-unmet":{},idle:{},resolving:{entry:()=>{let t=e.get().presentation,n=new AbortController;return U(t,{signal:n.signal}).then(e=>Fe(e)).then(n=>{B(e,{presentation:At(n,t)})}).catch(e=>{if(!(e instanceof Error&&e.name===`AbortError`))throw e}),n}},resolved:{}}})}function Pt(e,t){let n=e.split(/\r?\n/),r=t.url,i=[],a,o,s=0,c,l=0,u=0,d;for(let e of n){let t=e.trim();if(!t||t.startsWith(`#`)&&!t.startsWith(`#EXT`)||t===`#EXTM3U`||t.startsWith(`#EXT-X-VERSION:`)||t.startsWith(`#EXT-X-TARGETDURATION:`)||t.startsWith(`#EXT-X-PLAYLIST-TYPE:`)||t.startsWith(`#EXT-X-INDEPENDENT-SEGMENTS`))continue;let n=kt(t,`EXT-X-MAP`);if(n){let e=n.get(`URI`);if(e){a=$(e,r);let t=n.get(`BYTERANGE`);t&&(o=Dt(t,0)??void 0)}continue}if(t.startsWith(`#EXTINF:`)){s=Et(t.slice(8));continue}if(t.startsWith(`#EXT-X-BYTERANGE:`)){c=Dt(t.slice(17),d)??void 0;continue}if(t!==`#EXT-X-ENDLIST`&&!t.startsWith(`#`)&&s>0){let e={id:`segment-${u}`,url:$(t,r),duration:s,startTime:l};c?(e.byteRange=c,d=c.end+1):d=void 0,i.push(e),l+=s,u++,s=0,c=void 0}}let f=l,p=t.type===`text`&&!a?void 0:a?{url:a,...o?{byteRange:o}:{}}:{url:``};return{...t,startTime:0,duration:f,segments:i,initialization:p}}function Ft(e,t){let n=H(e,t.type);return n?!V(n):!1}function It(e,t){let n=t.id;return{...e,selectionSets:e.selectionSets.map(e=>({...e,switchingSets:e.switchingSets.map(e=>({...e,tracks:e.tracks.map(e=>e.id===n?t:e)}))}))}}function Lt({state:e},t){let n=new ze,r=I(()=>{let r=e.get();if(!Ft(r,t))return;let i=H(r,t.type);if(!i)return;let a=i;n.schedule(new K(async t=>{let n=Pt(await Fe(await U(a,{signal:t})),a),r=e.get(),i=It(r.presentation,n);e.set({...r,presentation:i})},{id:i.id}))});return()=>{n.abortAll(),r()}}function Rt(e,t){let n=e.selectionSets.find(e=>e.type===`text`);if(!n?.switchingSets?.[0]?.tracks.length)return;let r=n.switchingSets[0].tracks,i=t.includeForcedTracks?r:r.filter(e=>!e.forced);if(i.length===0)return;let{preferredSubtitleLanguage:a,enableDefaultTrack:o=!1}=t;if(a){let e=i.find(e=>e.language===a);if(e)return e.id}if(o){let e=i.find(e=>e.default===!0);if(e)return e.id}}function zt(e,t){return!!e?.presentation?.selectionSets?.find(({type:e})=>e===t.type)?.switchingSets?.[0]?.tracks.length}function Bt(e,t){return!e[Ae[t.type]]}function Vt({state:e},t={type:`video`}){return I(()=>{let n=e.get();if(!zt(n,t)||!Bt(n,t))return;let r=n.presentation?.selectionSets.find(({type:e})=>e===t.type)?.switchingSets[0]?.tracks[0]?.id;r&&B(e,{[Ae[t.type]]:r})})}function Ht({state:e},t={type:`audio`}){return I(()=>{let n=e.get();if(!zt(n,t)||!Bt(n,t))return;let r=n.presentation?.selectionSets.find(({type:e})=>e===`audio`)?.switchingSets[0]?.tracks[0]?.id;r&&B(e,{selectedAudioTrackId:r})})}function Ut({state:e},t={type:`text`}){return I(()=>{let n=e.get();if(!zt(n,t)||!Bt(n,t))return;let r=Rt(n.presentation,t);r&&B(e,{selectedTextTrackId:r})})}function Wt({state:e,owners:t}){let n=z(()=>t.get().mediaElement);return I(()=>{if(e.get().preload!==void 0)return;let t=n.get()?.preload||void 0;t!==void 0&&B(e,{preload:t})})}function Gt(e,t){if(e.length===0)return!0;let n=e[e.length-1];return n?t?.snapshot.get().context.segments.some(e=>e.id===n.id&&!e.partial)??!1:!1}function Kt(e,t){let n=e.selectedVideoTrackId?H(e,`video`):void 0,r=e.selectedAudioTrackId?H(e,`audio`):void 0;return!(n&&!V(n)||r&&!V(r)||n&&V(n)&&!Gt(n.segments,t.videoBufferActor)||r&&V(r)&&!Gt(r.segments,t.audioBufferActor))}function qt(e,t){return!!(t.mediaSource&&e.presentation)}function Jt(e,t){if(!qt(e,t))return!1;let{mediaElement:n}=t;if((t.mediaSourceReadyState?.get()??t.mediaSource?.readyState)!==`open`||n&&n.readyState<HTMLMediaElement.HAVE_METADATA)return!1;let r=!!e.selectedVideoTrackId,i=!!e.selectedAudioTrackId;if(r&&!t.videoBuffer||i&&!t.audioBuffer||t.videoBufferActor?.snapshot.get().value===`updating`||t.audioBufferActor?.snapshot.get().value===`updating`||!Kt(e,t))return!1;if(n){let t=r?H(e,`video`):void 0,a=i?H(e,`audio`):void 0,o=t&&V(t)?t:a&&V(a)?a:void 0;if(o&&o.segments.length>0){let e=o.segments[o.segments.length-1];if(n.currentTime<e.startTime)return!1}}return!0}function Yt(e){let t=[e.videoBufferActor,e.audioBufferActor].filter(e=>e!==void 0&&e.snapshot.get().value===`updating`);return t.length===0?Promise.resolve():Promise.all(t.map(e=>new Promise(t=>{let n,r=!1;n=I(()=>{e.snapshot.get().value!==`updating`&&(r||(r=!0,t()),queueMicrotask(()=>n?.()))})}))).then(()=>void 0)}function Xt(e){let t=0;for(let n of[e.videoBuffer,e.audioBuffer])if(n&&n.buffered.length>0){let e=n.buffered.end(n.buffered.length-1);e>t&&(t=e)}return t}const Zt=async({currentOwners:e},t)=>{let{mediaSource:n}=e;if(n.readyState===`ended`||(await Yt(e),n.readyState!==`open`))return;let r=Xt(e);r>0&&(n.duration=r),n.endOfStream(),await new Promise(e=>requestAnimationFrame(e))};function Qt({state:e,owners:t}){let n=z(()=>Jt(e.get(),t.get())),r=!1;return I(()=>{if(!n.get())return;let e=t.get();if(r){if((e.mediaSourceReadyState?.get()??e.mediaSource?.readyState)!==`open`)return;r=!1}r=!0,Zt({currentOwners:e},{}).catch(e=>console.error(`Failed to call endOfStream:`,e))})}function $t(){return typeof MediaSource<`u`}function en(){return typeof ManagedMediaSource<`u`}function tn(e={}){let{preferManaged:t=!1}=e;if(t&&en())return new ManagedMediaSource;if($t())return new MediaSource;throw Error(`MediaSource API is not supported`)}function nn(e,t){if(en()&&e instanceof ManagedMediaSource)return t.disableRemotePlayback=!0,t.srcObject=e,{url:``,detach:()=>{t.srcObject=null,t.load()}};let n=URL.createObjectURL(e);return t.src=n,{url:n,detach:()=>{t.removeAttribute(`src`),t.load(),URL.revokeObjectURL(n)}}}function rn(e,t){if(e.readyState!==`open`)throw Error(`MediaSource is not open`);if(!an(t))throw Error(`Codec not supported: ${t}`);return e.addSourceBuffer(t)}function an(e){return $t()?MediaSource.isTypeSupported(e):!1}function on(e,t){let n=R(e.readyState),r=()=>n.set(e.readyState),i={signal:t};return e.addEventListener(`sourceopen`,r,i),e.addEventListener(`sourceended`,r,i),e.addEventListener(`sourceclose`,r,i),n}function sn({state:e,owners:t}){let n=new AbortController,r=z(()=>t.get().mediaElement),i=z(()=>e.get().presentation?.url),a=z(()=>!!r.get()&&!!i.get()),o=z(()=>r.get()?.src),s=z(()=>t.get().mediaSource),c=z(()=>!o.get()),l=I(()=>{if(!a.get()||!c.get())return;let e=r.get(),{signal:i}=n,o=tn({preferManaged:!0}),l=on(o,i);nn(o,e);let u=I(()=>{s.get()||l.get()!==`open`||t.set(Object.assign({},t.get(),{mediaSource:o,mediaSourceReadyState:l}))});return()=>{u()}});return()=>{n?.abort(),l()}}function cn(e){let t=[];for(let n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function ln(e,{getContext:t,sourceBuffer:n}){return new K(async r=>{let i=t();return r.aborted?i:(await ut(n,e.data),{...i,initTrackId:e.meta.trackId})})}function un(e,{getContext:t,sourceBuffer:n,setContext:r}){return new K(async i=>{let a=t();if(i.aborted)return a;let{meta:o}=e,s=a.segments.filter(e=>Math.abs(e.startTime-o.startTime)>=1e-4);return e.data instanceof ArrayBuffer||r({...a,segments:[...s,{id:o.id,startTime:o.startTime,duration:o.duration,trackId:o.trackId,...o.trackBandwidth!==void 0&&{trackBandwidth:o.trackBandwidth},partial:!0}],bufferedRanges:a.bufferedRanges}),await ut(n,e.data,i),{...a,segments:[...s,{id:o.id,startTime:o.startTime,duration:o.duration,trackId:o.trackId,...o.trackBandwidth!==void 0&&{trackBandwidth:o.trackBandwidth}}],bufferedRanges:cn(n.buffered)}})}function dn(e,{getContext:t,sourceBuffer:n}){return new K(async r=>{let i=t();if(r.aborted)return i;await ft(n,e.start,e.end);let a=cn(n.buffered),o=i.segments.filter(e=>{let t=e.startTime+e.duration/2;return a.some(e=>t>=e.start&&t<e.end)});return{...i,segments:o,bufferedRanges:a}})}const fn={"append-init":ln,"append-segment":un,remove:dn};function pn(e,t){let n=fn[e.type];return n(e,t)}function mn(e,t){let n=e=>{e instanceof Error&&e.name===`AbortError`||console.error(`SourceBuffer operation failed:`,e)},r=(t,{transition:r,setContext:i,getContext:a,runner:o})=>{r(`updating`);let s=pn(t,{getContext:a,sourceBuffer:e,setContext:i});o.schedule(s).then(i,n)};return Re({runner:()=>new q,initial:`idle`,context:{segments:[],bufferedRanges:[],initTrackId:void 0,...t},states:{idle:{on:{"append-init":r,"append-segment":r,remove:r,batch:(t,{transition:r,setContext:i,getContext:a,runner:o})=>{let{messages:s}=t;s.length!==0&&(r(`updating`),s.forEach(t=>{let r=pn(t,{getContext:a,sourceBuffer:e,setContext:i});o.schedule(r).then(i,n)}))}}},updating:{onSettled:`idle`,on:{cancel:(e,{runner:t})=>{t.abortAll()}}}}})}const hn={video:`videoBufferActor`,audio:`audioBufferActor`};function gn(e){let t=e.codecs?.join(`,`)??``;return`${e.mimeType}; codecs="${t}"`}function _n({state:e,owners:t}){let n=z(()=>{let{presentation:t}=e.get();return!t||!(`selectionSets`in t)?[]:t.selectionSets.map(({type:e})=>e).filter(e=>e===`video`||e===`audio`)}),r=z(()=>{let r=n.get();if(!t.get().mediaSource||r.length===0)return!1;let i=e.get();return r.every(e=>{let t=H(i,e);return t&&V(t)&&!!t.codecs?.length})}),i=z(()=>{let e=t.get();return n.get().every(t=>!e[je[t]])});return I(()=>{if(!r.get()||!i.get())return;let a=e.get(),o=t.get(),s={};for(let e of n.get()){let t=H(a,e),n=rn(o.mediaSource,gn(t));s[je[e]]=n,s[hn[e]]=mn(n)}B(t,s)})}function vn(e){let t=document.createElement(`track`);return t.id=e.id,t.kind=e.kind,t.label=e.label,t.toggleAttribute(`data-src-track`,!0),e.language&&(t.srclang=e.language),e.default&&(t.default=!0),t}function yn(e){return e?.selectionSets?.find(e=>e.type===`text`)?.switchingSets[0]?.tracks}function bn(e,t){for(let n=0;n<e.length;n++){let r=e[n];r.kind!==`subtitles`&&r.kind!==`captions`||(r.mode=r.id===t?`showing`:`disabled`)}}function xn({state:t,owners:n}){let r=z(()=>n.get().mediaElement),i=z(()=>yn(t.get().presentation),{equals(e,t){return e===t?!0:typeof e!=typeof t||e?.length!==t?.length?!1:!!t&&t.every(t=>e?.some(e=>e.id===t.id))}}),a=z(()=>t.get().selectedTextTrackId),o=z(()=>!!r.get()&&!!i.get()?.length);return Z({initial:`preconditions-unmet`,monitor:()=>o.get()?`set-up`:`preconditions-unmet`,states:{"preconditions-unmet":{},"set-up":{entry:()=>{let e=r.get();return i.get().forEach(t=>e.appendChild(vn(t))),()=>{e.querySelectorAll(`track[data-src-track]:is([kind="subtitles"],[kind="captions"]`).forEach(e=>e.remove()),B(t,{selectedTextTrackId:void 0})}},effects:()=>{let n=L(()=>r.get()),i=a.get();bn(n.textTracks,i);let o=setTimeout(()=>{o=void 0},0),s=e(n.textTracks,`change`,()=>{if(o){bn(n.textTracks,L(()=>a.get()));return}let e=Array.from(n.textTracks).find(e=>e.mode===`showing`&&(e.kind===`subtitles`||e.kind===`captions`))?.id;e!==L(()=>a.get())&&B(t,{selectedTextTrackId:e})});return()=>{clearTimeout(o??void 0),s()}}}}})}function Sn(e,t){return!!(t.mediaSource&&e.presentation&&ke(e.presentation))}function Cn(e){let t=0,n=[e.videoSourceBuffer,e.audioSourceBuffer].filter(e=>e!==void 0);for(let e of n){let{buffered:n}=e;if(n.length>0){let e=n.end(n.length-1);e>t&&(t=e)}}return t}function wn(e,t){if(!Sn(e,t))return!1;let{mediaSource:n}=t,{presentation:r}=e;if((t.mediaSourceReadyState?.get()??t.mediaSource?.readyState)!==`open`)return!1;let i=r.duration;return!Number.isFinite(i)||Number.isNaN(i)||i<=0?!1:Number.isNaN(n.duration)}function Tn(e){let t=[e.videoSourceBuffer,e.audioSourceBuffer].filter(e=>e?.updating===!0);return t.length===0?Promise.resolve():Promise.all(t.map(e=>new Promise(t=>e.addEventListener(`updateend`,()=>t(),{once:!0})))).then(()=>void 0)}function En({state:e,owners:t}){let n=!1,r=!1,i=I(()=>{let i=e.get(),a=t.get();if(!wn(i,a)||r)return;let{mediaSource:o}=a;r=!0,Tn(a).then(()=>{if(n||o.readyState!==`open`)return;let e=i.presentation.duration,t=Cn(a);t>e&&(e=t),o.duration=e}).finally(()=>{r=!1})});return()=>{n=!0,i()}}function Dn(e={}){let t=R({bandwidthState:{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}}),n=R({}),r=[Wt({state:t,owners:n}),lt({state:t,owners:n}),Nt({state:t}),Vt({state:t},{type:`video`,...e.initialBandwidth!==void 0&&{initialBandwidth:e.initialBandwidth}}),Ht({state:t},{type:`audio`,...e.preferredAudioLanguage!==void 0&&{preferredAudioLanguage:e.preferredAudioLanguage}}),Ut({state:t},{type:`text`,...e.preferredSubtitleLanguage!==void 0&&{preferredSubtitleLanguage:e.preferredSubtitleLanguage},...e.includeForcedTracks!==void 0&&{includeForcedTracks:e.includeForcedTracks},...e.enableDefaultTrack!==void 0&&{enableDefaultTrack:e.enableDefaultTrack}}),Lt({state:t},{type:`video`}),Lt({state:t},{type:`audio`}),Lt({state:t},{type:`text`}),gt({state:t}),sn({state:t,owners:n}),En({state:t,owners:n}),_n({state:t,owners:n}),st({state:t,owners:n}),St({state:t},e.initialBandwidth===void 0?{}:{defaultBandwidth:e.initialBandwidth}),Je({state:t,owners:n},{type:`video`}),Je({state:t,owners:n},{type:`audio`}),Qt({state:t,owners:n}),xn({state:t,owners:n}),ot({state:t,owners:n})];return{state:t,owners:n,destroy:()=>{r.forEach(e=>typeof e==`function`?e():e.destroy());for(let e of Object.values(n.get()))typeof e==`object`&&e&&typeof e.destroy==`function`&&e.destroy();Ze()}}}var On=class{#e;#t;#n=``;#r=null;constructor(e={}){this.#t=e,this.#e=Dn(e)}get engine(){return this.#e}attach(e){B(this.#e.owners,{mediaElement:e})}detach(){this.#i(),B(this.#e.owners,{mediaElement:void 0})}destroy(){this.#i(),this.#e.destroy()}get preload(){return this.#n}set preload(e){this.#n=e,e&&B(this.#e.state,{preload:e})}get src(){return this.#e.state.get().presentation?.url??``}set src(e){let t=this.#e.owners.get().mediaElement;this.#i(),this.#e.destroy(),this.#e=Dn(this.#t),this.#n&&B(this.#e.state,{preload:this.#n}),t&&B(this.#e.owners,{mediaElement:t}),e&&B(this.#e.state,{presentation:{url:e}})}play(){let{mediaElement:e}=this.#e.owners.get();return e?(B(this.#e.state,{playbackInitiated:!0}),e.play().catch(t=>{if(this.src)return new Promise((t,n)=>{let r=()=>{this.#r=null,e.play().then(t,n)};this.#r=r,e.addEventListener(`loadstart`,r,{once:!0})});throw t})):Promise.reject(Error(`SpfMedia: no media element attached`))}#i(){if(!this.#r)return;let{mediaElement:e}=this.#e.owners.get();e?.removeEventListener(`loadstart`,this.#r),this.#r=null}},kn=class extends n(r,On){},An=class extends i(o(kn),On){constructor(){super(),this.attach(this.target)}};t(class extends An{static{this.tagName=`simple-hls-video`}});
59
59
  //# sourceMappingURL=simple-hls-video.js.map