@videojs/html 10.0.0-beta.8 → 10.0.0-beta.9

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 (161) hide show
  1. package/cdn/audio-minimal.dev.js +9 -9
  2. package/cdn/audio-minimal.dev.js.map +1 -1
  3. package/cdn/audio-minimal.js +1 -1
  4. package/cdn/audio-minimal.js.map +1 -1
  5. package/cdn/audio.dev.js +9 -9
  6. package/cdn/audio.dev.js.map +1 -1
  7. package/cdn/audio.js +1 -1
  8. package/cdn/audio.js.map +1 -1
  9. package/cdn/background.dev.js +1 -1
  10. package/cdn/background.js +1 -1
  11. package/cdn/{create-player-Dv7K1Ezk.js → create-player-4kACDl5S.js} +3 -2
  12. package/cdn/create-player-4kACDl5S.js.map +1 -0
  13. package/cdn/{create-player-QjiNZlh7.js → create-player-DxN4WCxY.js} +3 -3
  14. package/cdn/create-player-DxN4WCxY.js.map +1 -0
  15. package/cdn/media/simple-hls-video.dev.js +22 -4
  16. package/cdn/media/simple-hls-video.dev.js.map +1 -1
  17. package/cdn/media/simple-hls-video.js +1 -1
  18. package/cdn/media/simple-hls-video.js.map +1 -1
  19. package/cdn/{player-CztIlNio.js → player-DVYGAHSo.js} +2 -2
  20. package/cdn/{player-CztIlNio.js.map → player-DVYGAHSo.js.map} +1 -1
  21. package/cdn/{player-Dvj38jlr.js → player-u-bvetUg.js} +2 -2
  22. package/cdn/{player-Dvj38jlr.js.map → player-u-bvetUg.js.map} +1 -1
  23. package/cdn/{poster-O0SI05LC.js → poster-BoF67sLZ.js} +3 -3
  24. package/cdn/{poster-O0SI05LC.js.map → poster-BoF67sLZ.js.map} +1 -1
  25. package/cdn/{poster-C4WHg3BH.js → poster-CkKPGKQ1.js} +2 -2
  26. package/cdn/{poster-C4WHg3BH.js.map → poster-CkKPGKQ1.js.map} +1 -1
  27. package/cdn/video-minimal.dev.js +12 -12
  28. package/cdn/video-minimal.dev.js.map +1 -1
  29. package/cdn/video-minimal.js +1 -1
  30. package/cdn/video-minimal.js.map +1 -1
  31. package/cdn/video.dev.js +12 -12
  32. package/cdn/video.dev.js.map +1 -1
  33. package/cdn/video.js +1 -1
  34. package/cdn/video.js.map +1 -1
  35. package/cdn/{volume-slider-BqzTytgB.js → volume-slider-Bv1urvub.js} +2 -2
  36. package/cdn/{volume-slider-BqzTytgB.js.map → volume-slider-Bv1urvub.js.map} +1 -1
  37. package/cdn/{volume-slider-CfhOO9RM.js → volume-slider-DYG1mki7.js} +2 -2
  38. package/cdn/{volume-slider-CfhOO9RM.js.map → volume-slider-DYG1mki7.js.map} +1 -1
  39. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  40. package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  41. package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
  42. package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  43. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  44. package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  45. package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
  46. package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  47. package/dist/default/define/audio/minimal-skin.css +161 -141
  48. package/dist/default/define/audio/minimal-skin.js +1 -1
  49. package/dist/default/define/audio/minimal-skin.js.map +1 -1
  50. package/dist/default/define/audio/minimal-skin.tailwind.js +1 -1
  51. package/dist/default/define/audio/minimal-skin.tailwind.js.map +1 -1
  52. package/dist/default/define/audio/skin.css +164 -132
  53. package/dist/default/define/audio/skin.js +1 -1
  54. package/dist/default/define/audio/skin.js.map +1 -1
  55. package/dist/default/define/audio/skin.tailwind.js +1 -1
  56. package/dist/default/define/audio/skin.tailwind.js.map +1 -1
  57. package/dist/default/define/video/minimal-skin.css +224 -192
  58. package/dist/default/define/video/minimal-skin.js +1 -1
  59. package/dist/default/define/video/minimal-skin.js.map +1 -1
  60. package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
  61. package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
  62. package/dist/default/define/video/skin.css +238 -189
  63. package/dist/default/define/video/skin.js +1 -1
  64. package/dist/default/define/video/skin.js.map +1 -1
  65. package/dist/default/define/video/skin.tailwind.js +1 -1
  66. package/dist/default/define/video/skin.tailwind.js.map +1 -1
  67. package/dist/default/media/simple-hls-video/index.js +1 -0
  68. package/dist/default/media/simple-hls-video/index.js.map +1 -1
  69. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
  70. package/dist/default/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  71. package/dist/default/skins/dist/default/default/tailwind/components/button.js +4 -3
  72. package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  73. package/dist/default/skins/dist/default/default/tailwind/components/error.js +2 -2
  74. package/dist/default/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  75. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  76. package/dist/default/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  77. package/dist/default/skins/dist/default/default/tailwind/components/popup.js +1 -1
  78. package/dist/default/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  79. package/dist/default/skins/dist/default/default/tailwind/components/seek.js +1 -1
  80. package/dist/default/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  81. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
  82. package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  83. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js +8 -2
  84. package/dist/default/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  85. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  86. package/dist/default/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  87. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js +15 -0
  88. package/dist/default/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  89. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  90. package/dist/default/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  91. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
  92. package/dist/default/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  93. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  94. package/dist/default/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  95. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  96. package/dist/default/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  97. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +9 -2
  98. package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  99. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
  100. package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
  101. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
  102. package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
  103. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
  104. package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
  105. package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
  106. package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
  107. package/dist/dev/define/audio/minimal-skin.css +161 -141
  108. package/dist/dev/define/audio/minimal-skin.js +5 -5
  109. package/dist/dev/define/audio/minimal-skin.js.map +1 -1
  110. package/dist/dev/define/audio/minimal-skin.tailwind.js +5 -5
  111. package/dist/dev/define/audio/minimal-skin.tailwind.js.map +1 -1
  112. package/dist/dev/define/audio/skin.css +164 -132
  113. package/dist/dev/define/audio/skin.js +5 -5
  114. package/dist/dev/define/audio/skin.js.map +1 -1
  115. package/dist/dev/define/audio/skin.tailwind.js +5 -5
  116. package/dist/dev/define/audio/skin.tailwind.js.map +1 -1
  117. package/dist/dev/define/video/minimal-skin.css +224 -192
  118. package/dist/dev/define/video/minimal-skin.js +8 -8
  119. package/dist/dev/define/video/minimal-skin.js.map +1 -1
  120. package/dist/dev/define/video/minimal-skin.tailwind.js +8 -8
  121. package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
  122. package/dist/dev/define/video/skin.css +238 -189
  123. package/dist/dev/define/video/skin.js +8 -8
  124. package/dist/dev/define/video/skin.js.map +1 -1
  125. package/dist/dev/define/video/skin.tailwind.js +8 -8
  126. package/dist/dev/define/video/skin.tailwind.js.map +1 -1
  127. package/dist/dev/media/simple-hls-video/index.js +1 -0
  128. package/dist/dev/media/simple-hls-video/index.js.map +1 -1
  129. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js +4 -3
  130. package/dist/dev/skins/dist/default/default/tailwind/audio.tailwind.js.map +1 -1
  131. package/dist/dev/skins/dist/default/default/tailwind/components/button.js +4 -3
  132. package/dist/dev/skins/dist/default/default/tailwind/components/button.js.map +1 -1
  133. package/dist/dev/skins/dist/default/default/tailwind/components/error.js +2 -2
  134. package/dist/dev/skins/dist/default/default/tailwind/components/error.js.map +1 -1
  135. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js +1 -1
  136. package/dist/dev/skins/dist/default/default/tailwind/components/overlay.js.map +1 -1
  137. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js +1 -1
  138. package/dist/dev/skins/dist/default/default/tailwind/components/popup.js.map +1 -1
  139. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js +1 -1
  140. package/dist/dev/skins/dist/default/default/tailwind/components/seek.js.map +1 -1
  141. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js +5 -3
  142. package/dist/dev/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
  143. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js +8 -2
  144. package/dist/dev/skins/dist/default/minimal/tailwind/audio.tailwind.js.map +1 -1
  145. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js +4 -3
  146. package/dist/dev/skins/dist/default/minimal/tailwind/components/button.js.map +1 -1
  147. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js +15 -0
  148. package/dist/dev/skins/dist/default/minimal/tailwind/components/error.js.map +1 -0
  149. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js +1 -1
  150. package/dist/dev/skins/dist/default/minimal/tailwind/components/overlay.js.map +1 -1
  151. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js +1 -1
  152. package/dist/dev/skins/dist/default/minimal/tailwind/components/popup.js.map +1 -1
  153. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js +1 -1
  154. package/dist/dev/skins/dist/default/minimal/tailwind/components/root.js.map +1 -1
  155. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js +1 -1
  156. package/dist/dev/skins/dist/default/minimal/tailwind/components/seek.js.map +1 -1
  157. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js +9 -2
  158. package/dist/dev/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
  159. package/package.json +8 -8
  160. package/cdn/create-player-Dv7K1Ezk.js.map +0 -1
  161. package/cdn/create-player-QjiNZlh7.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{n as e}from"../predicate-Y9jDHLpX.js";import{t}from"../listen-DX5vU4s4.js";import{t as n}from"../media-attach-mixin-tFNcHnvo.js";import{n as r,t as i}from"../proxy-2oO2ph3m.js";const a=Symbol(`@videojs/spf/state`);function o(e,t){return Object.is(e,t)}var s=class{[a]=!0;#e;#t=null;#n=!1;#r;#i=new Set;#a=new Set;constructor(e,t){this.#e=typeof e==`object`&&e?{...e}:e,this.#r=t?.equalityFn??o}get current(){return this.#t??this.#e}patch(e){let t=this.#t??this.#e;if(typeof t!=`object`||!t){let n=e;Object.is(t,n)||(this.#t=n,this.#o());return}let n={...t},r=!1;for(let i in e){if(!Object.hasOwn(e,i))continue;let a=e[i];Object.is(t[i],a)||(n[i]=a,r=!0)}r&&(this.#t=n,this.#o())}subscribe(e,t,n){if(t===void 0){let t=e;return this.#i.add(t),t(this.current),()=>{this.#i.delete(t)}}let r=e,i=t,a={selector:r,listener:i,options:n??{}};return this.#a.add(a),i(r(this.current)),()=>{this.#a.delete(a)}}flush(){if(this.#t===null)return;let e=this.#e,t=this.#t;if(this.#t=null,this.#n=!1,!this.#r(e,t)){this.#e=t;for(let e of this.#i)e(this.#e);for(let t of this.#a){let n=t.selector(e),r=t.selector(this.#e);(t.options.equalityFn??Object.is)(n,r)||t.listener(r)}}}#o(){this.#n||(this.#n=!0,queueMicrotask(()=>this.flush()))}};function c(e,t){return new s(e,t)}function l(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 u(e){let t=/^(\d+)x(\d+)$/.exec(e);return t?{width:Number.parseInt(t[1],10),height:Number.parseInt(t[2],10)}:null}function d(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 f(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 p(e){let t=e.split(`,`)[0]??e,n=Number.parseFloat(t);return Number.isNaN(n)?0:n}function m(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 h(e){let t=l(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 u(n)??void 0},getFrameRate(e){let n=t.get(e);if(n)return d(n)}}}function g(e,t){let n=`#${t}:`;return e.startsWith(n)?h(e.slice(n.length)):null}function _(e,t){return new URL(e,t).href}function ee(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=g(t,`EXT-X-MAP`);if(n){let e=n.get(`URI`);if(e){a=_(e,r);let t=n.get(`BYTERANGE`);t&&(o=m(t,0)??void 0)}continue}if(t.startsWith(`#EXTINF:`)){s=p(t.slice(8));continue}if(t.startsWith(`#EXT-X-BYTERANGE:`)){c=m(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,h=t.type===`text`&&!a?void 0:a?{url:a,...o?{byteRange:o}:{}}:{url:``};return{...t,startTime:0,duration:f,segments:i,initialization:h}}function v(){return`${Date.now()}-${Math.floor(Math.random()*1e6)}`}function te(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=g(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=g(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=f(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?f(e.codecs):void 0,n={type:`video`,id:v(),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?f(e.codecs):void 0;return{type:`audio`,id:v(),url:e.uri,bandwidth:e.bandwidth,mimeType:`audio/mp4`,codecs:t?.audio?[t.audio]:[],groupId:e.audioGroupId||`default`,name:`Default`,sampleRate:48e3,channels:2}}),p=[...a.map(e=>{let t;for(let n of i)if(n.audioGroupId===e.groupId&&n.codecs){let e=f(n.codecs);if(e.audio){t=[e.audio];break}}let n={type:`audio`,id:v(),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],m=o.map(e=>{let t={type:`text`,id:v(),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}),h=[];if(u.length>0){let e={id:v(),type:`video`,tracks:u},t={id:v(),type:`video`,switchingSets:[e]};h.push(t)}if(p.length>0){let e={id:v(),type:`audio`,tracks:p},t={id:v(),type:`audio`,switchingSets:[e]};h.push(t)}if(m.length>0){let e={id:v(),type:`text`,tracks:m},t={id:v(),type:`text`,switchingSets:[e]};h.push(t)}return{id:v(),url:t.url,startTime:0,selectionSets:h}}function y(e){return Math.exp(Math.log(.5)/e)}function b(e,t,n,r){let i=y(r)**n;return t*(1-i)+i*e}function x(e,t,n){return t===0?0:e/(1-y(n)**t)}const S={fastHalfLife:2,slowHalfLife:5,minTotalBytes:128e3,minBytes:16e3,minDuration:5};function ne(e,t,n,r=S){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:b(e.fastEstimate,a,o,r.fastHalfLife),fastTotalWeight:e.fastTotalWeight+o,slowEstimate:b(e.slowEstimate,a,o,r.slowHalfLife),slowTotalWeight:e.slowTotalWeight+o,bytesSampled:i}}function re(e,t,n=S){if(e.bytesSampled<n.minTotalBytes)return t;let r=x(e.fastEstimate,e.fastTotalWeight,n.fastHalfLife),i=x(e.slowEstimate,e.slowTotalWeight,n.slowHalfLife);return Math.min(r,i)}const ie={safetyMargin:.85};function ae(e,t,n=ie){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&&oe(e,i))&&(i=e);return i??r[0]}function oe(e,t){return(e.width??0)*(e.height??0)>(t.width??0)*(t.height??0)}const se={keepSegments:2};function ce(e,t,n=se){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}const C={bufferDuration:30};function le(e,t,n=C){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 w(e,t,n,r=C){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})}function T(e){return`segments`in e}function ue(e){return e.duration!==void 0}function E(){return typeof MediaSource<`u`}function D(){return typeof ManagedMediaSource<`u`}function de(e={}){let{preferManaged:t=!1}=e;if(t&&D())return new ManagedMediaSource;if(E())return new MediaSource;throw Error(`MediaSource API is not supported`)}function fe(e,t){if(D()&&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 pe(e,t){return new Promise((n,r)=>{if(e.readyState===`open`){n();return}if(t?.aborted){r(new DOMException(`Aborted`,`AbortError`));return}let i=new AbortController,a={signal:i.signal};e.addEventListener(`sourceopen`,()=>{i.abort(),n()},a),t?.addEventListener(`abort`,()=>{i.abort(),r(new DOMException(`Aborted`,`AbortError`))},a)})}function O(e,t){if(e.readyState!==`open`)throw Error(`MediaSource is not open`);if(!me(t))throw Error(`Codec not supported: ${t}`);return e.addSourceBuffer(t)}function me(e){return E()?MediaSource.isTypeSupported(e):!1}const he=2**17;var k=class{minChunkSize;#e;constructor(e,{minChunkSize:t=he}={}){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?ge(e,r):r,e.length>=this.minChunkSize&&(yield e,e=void 0)}}finally{t.releaseLock()}}};function ge(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}async function A(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 j(e){return e.text()}const _e=Symbol(`@videojs/event-stream`);function ve(){let e=new Set;return{[_e]:!0,dispatch(t){let n=Array.from(e);for(let e of n)e(t)},subscribe(t){return e.add(t),()=>e.delete(t)}}}function M(e){let t=t=>{let n=Array(e.length),r=Array(e.length).fill(!1),i=[];for(let a=0;a<e.length;a++){let o=e[a].subscribe(e=>{n[a]=e,r[a]=!0,r.every(e=>e)&&t([...n])});i.push(o)}return()=>{for(let e of i)e()}};return{subscribe(e,n,r){if(n===void 0)return t(e);let i=e,a=n,o=r?.equalityFn??Object.is,s,c=!1;return t(e=>{let t=i(e);(!c||!o(s,t))&&(s=t,c=!0,a(t))})}}}function ye(e){return e!==void 0&&`url`in e&&!(`id`in e)}function be(e){return ye(e.presentation)}function xe(e,t){let{preload:n}=e;return[`auto`,`metadata`].includes(n)||t.type===`play`}function Se(e,t){return t.subscribe(t=>{let n=t.mediaElement?.preload||void 0;e.patch({preload:n})})}function Ce({state:e,events:t}){let n=!1,r=null,i=M([e,t]).subscribe(async([t,i])=>{if(!(!be(t)||!xe(t,i)||n))try{n=!0,r=new AbortController;let{presentation:i}=t,a=te(await j(await A(i,{signal:r.signal})),i);e.patch({presentation:a})}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;throw e}finally{n=!1,r=null}});return()=>{r?.abort(),i()}}const N={safetyMargin:.85,minUpgradeInterval:8e3,defaultBandwidth:5e6};function we(e){return(e.selectionSets?.find(e=>e.type===`video`))?.switchingSets[0]?.tracks??[]}function Te({state:e},t={}){let n=t.safetyMargin??N.safetyMargin,r=t.minUpgradeInterval??N.minUpgradeInterval,i=t.defaultBandwidth??N.defaultBandwidth,a=Date.now(),o=!0;return e.subscribe(t=>{let{presentation:s,bandwidthState:c,selectedVideoTrackId:l,abrDisabled:u}=t;if(u===!0||!s||!c)return;let d=we(s);if(d.length===0)return;let f=o;o=!1;let p=ae(d,re(c,i),{safetyMargin:n});if(!p||p.id===l)return;let m=d.find(e=>e.id===l);if(!m||p.bandwidth>m.bandwidth){let e=Date.now();if(!f&&e-a<r)return;a=e}e.patch({selectedVideoTrackId:p.id})})}const P={video:`selectedVideoTrackId`,audio:`selectedAudioTrackId`,text:`selectedTextTrackId`};function F(e,t){let{presentation:n}=e;if(!n||!(`id`in n))return;let r=e[P[t]];return n.selectionSets.find(({type:e})=>e===t)?.switchingSets[0]?.tracks.find(({id:e})=>e===r)}function Ee(e,t){let n=null,r=null,i=null,a=null,o=!1,s=!1,c=t=>{let n=new Set(e.snapshot.context.segments.filter(e=>!e.partial).map(e=>e.id));return t.filter(e=>n.has(e.id))},l=t=>{let{track:n,range:r}=t,i=e.snapshot.context,a=c(n.segments),o=r?.start??0,s=[];if(r){let e=le(a,o);e<1/0&&s.push({type:`remove`,start:e,end:1/0});let t=ce(a,o);t>0&&s.push({type:`remove`,start:0,end:t})}if(i.initTrackId!==n.id&&s.push({type:`append-init`,meta:{trackId:n.id},url:n.initialization.url,...n.initialization.byteRange!==void 0&&{byteRange:n.initialization.byteRange}}),r){let e=w(n.segments,a,o).filter(e=>{let t=i.segments.find(t=>Math.abs(t.startTime-e.startTime)<1e-4);return t?.partial||!t?.trackBandwidth||!n.bandwidth?!0:n.bandwidth>t.trackBandwidth});for(let t of e)s.push({type:`append-segment`,meta:{id:t.id,startTime:t.startTime,duration:t.duration,trackId:n.id,trackBandwidth:n.bandwidth},url:t.url,...t.byteRange!==void 0&&{byteRange:t.byteRange}})}return s},u=async o=>{let s=a.signal;try{if(o.type===`remove`){await e.send(o,s);return}if(o.type===`append-init`){if(r=o.meta.trackId,!s.aborted){let r=await t(o,{signal:s,minChunkSize:1/0}),i=n?.some(e=>e.type===`append-init`&&e.meta.trackId!==o.meta.trackId);if(!s.aborted||!i){let t=s.aborted?new AbortController().signal:s;await e.send({type:`append-init`,data:r,meta:o.meta},t)}}return}if(i=o.meta.id,!s.aborted){let n=await t(o,{signal:s});s.aborted||await e.send({type:`append-segment`,data:n,meta:o.meta},s)}}finally{r=null,i=null}},d=async e=>{o=!0,a=new AbortController;let t=e;for(;t.length>0&&!s;){let e=t[0];t=t.slice(1);try{await u(e)}catch(e){e instanceof Error&&e.name===`AbortError`||(console.error(`Unexpected error in segment loader:`,e),t=[])}if(n!==null)t=n,n=null,a=new AbortController;else if(a.signal.aborted)break}a=null,o=!1};return{send(e){if(s)return;let t=l(e);if(!o){if(t.length===0)return;d(t);return}i!==null&&t.some(e=>e.type===`append-segment`&&e.meta.id===i)||r!==null&&t.some(e=>e.type===`append-init`&&e.meta.trackId===r)?n=t.filter(e=>!(e.type===`append-segment`&&e.meta.id===i)&&!(e.type===`append-init`&&e.meta.trackId===r)):(n=t,a?.abort())},destroy(){s=!0,a?.abort()}}}const De={video:`videoBufferActor`,audio:`audioBufferActor`};function Oe(e,t){return async(n,r)=>{let{minChunkSize:i,...a}=r??{},o=await A(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 k(s,...i===void 0?[]:[{minChunkSize:i}])){let i=performance.now()-n,a=ne(e.current,i,r.byteLength);e.patch(a),e.flush(),t?.(a),yield r,n=performance.now()}}}}}async function ke(e,t){let{minChunkSize:n,...r}=t??{},i=await A(e,r);if(!i.body)throw Error(`Response has no body`);return new k(i.body,...n===void 0?[]:[{minChunkSize:n}])}function Ae([e,t],n){let{playbackInitiated:r,preload:i,currentTime:a}=t;return{playbackInitiated:r,preload:i,currentTime:a,track:F(t,n),segmentsCanLoad:e}}const I=(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 je(e,t){return t.segmentsCanLoad?t.playbackInitiated?!e.playbackInitiated&&t.playbackInitiated&&e.preload!==`auto`?!1:!t.track||!T(t.track)?!0:e.track?.id!==t.track.id&&T(t.track)?!1:I(e.currentTime,t.track)===I(t.currentTime,t.track):t.preload===`none`?!0:t.preload===e.preload:!0}function L({state:e,owners:t},n){let{type:r}=n,i=De[r],a=e.current.bandwidthState,o=c(a??{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}),s=r===`video`?Oe(o,a===void 0?void 0:t=>{e.patch({bandwidthState:t}),e.flush()}):ke,l=c(void 0),u=t.subscribe(e=>e[i],e=>(e?l.patch(Ee(e,s)):!e&&l.current&&(l.current.destroy(),l.patch(void 0)),()=>{l.current?.destroy(),l.patch(void 0)})),d=c(!1),f=M([e,l]).subscribe(([e,t])=>{let n=F(e,r),i=!!n&&T(n),a=!!t;d.patch(i&&a)}),p=M([d,e]).subscribe(([e,t])=>Ae([e,t],r),({preload:e,playbackInitiated:t,currentTime:n,track:r})=>{e===`auto`||t?l.current?.send({type:`load`,track:r,range:{start:n,end:n+C.bufferDuration}}):l.current?.send({type:`load`,track:r})},{equalityFn:je});return()=>{f(),p(),u()}}let R=null;function Me(){return R||(R=document.createElement(`video`),R.muted=!0,R.preload=`none`,R.style.display=`none`,R.crossOrigin=`anonymous`),R}function Ne(e){let t=Me(),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 Pe(){R=null}function Fe(e,t){let{cues:n}=t;if(!n)return!1;for(let t=0;t<n.length;t++){let r=n[t];if(r.startTime===e.startTime&&r.endTime===e.endTime&&r.text===e.text)return!0}return!1}const Ie=async({segment:e},t)=>{let n=await Ne(e.url);for(let e of n)Fe(e,t.textTrack)||t.textTrack.addCue(e)},Le=async({currentState:e},t)=>{let n=z(e);if(!n||!T(n))return;let{segments:r}=n;if(r.length===0)return;let i=n.id,a=new Set((e.textBufferState?.[i]?.segments??[]).map(e=>e.id)),o=w(r,r.filter(e=>a.has(e.id)),e.currentTime??0).filter(e=>!a.has(e.id));if(o.length!==0){for(let e of o){if(t.signal.aborted)break;try{await Ie({segment:e},{textTrack:t.textTrack});let n=t.state.current.textBufferState??{},r=n[i]??{segments:[]};t.state.patch({textBufferState:{...n,[i]:{segments:[...r.segments,{id:e.id}]}}})}catch(e){if(e instanceof Error&&e.name===`AbortError`)break;console.error(`Failed to load VTT segment:`,e)}}t.textTrack.mode===`showing`&&t.textTrack.cues&&Array.from(t.textTrack.cues).forEach(e=>{t.textTrack.addCue(e)}),await new Promise(e=>requestAnimationFrame(e))}};function z(e){if(!e.presentation||!e.selectedTextTrackId)return;let t=e.presentation.selectionSets.find(e=>e.type===`text`);if(t?.switchingSets?.[0]?.tracks)return t.switchingSets[0].tracks.find(t=>t.id===e.selectedTextTrackId)}function B(e,t){let n=e.selectedTextTrackId;if(!(!n||!t.textTracks))return t.textTracks.get(n)?.track}function Re(e,t){return!!e.selectedTextTrackId&&!!t.textTracks&&t.textTracks.has(e.selectedTextTrackId)}function ze(e,t){if(!Re(e,t))return!1;let n=z(e);return!(!n||!T(n)||n.segments.length===0||!B(e,t))}function Be({state:e,owners:t}){let n=null,r=null,i,a=M([e,t]).subscribe(async([t,a])=>{if(t.selectedTextTrackId!==i&&(i=t.selectedTextTrackId,r?.abort(),n=null),n||!ze(t,a))return;let o=B(t,a);o&&(r=new AbortController,n=Le({currentState:t},{signal:r.signal,textTrack:o,state:e}).finally(()=>{n=null}))});return()=>{r?.abort(),a()}}function Ve({state:e,owners:n}){let r,i=null,a=n.subscribe(n=>{let{mediaElement:a}=n;if(a===r||(i?.(),i=null,r=a,!a))return;e.patch({currentTime:a.currentTime});let o=()=>e.patch({currentTime:a.currentTime}),s=t(a,`timeupdate`,o),c=t(a,`seeking`,o);i=()=>{s(),c()}});return()=>{i?.(),a()}}function He({state:e,owners:n,events:r}){let i,a=null,o,s=e.subscribe(t=>{let n=t.presentation?.url;n!==o&&(o!==void 0&&e.patch({playbackInitiated:!1}),o=n)}),c=n.subscribe(n=>{let{mediaElement:o}=n;o!==i&&(a?.(),a=null,i=o,o&&(a=t(o,`play`,()=>{e.patch({playbackInitiated:!0}),r.dispatch({type:`play`})})))});return()=>{a?.(),s(),c()}}async function V(e,t,n){if(t instanceof ArrayBuffer)await H(e,t);else for await(let r of t){if(n?.aborted)throw n.reason??new DOMException(`Aborted`,`AbortError`);await H(e,r)}}async function H(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 Ue(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 We(e){return e.presentation?!!(e.selectedVideoTrackId||e.selectedAudioTrackId):!1}function Ge(e){if(!We(e))return!1;let{presentation:t}=e;if(t.duration!==void 0)return!1;let n=e.selectedVideoTrackId?F(e,`video`):void 0,r=e.selectedAudioTrackId?F(e,`audio`):void 0;return!!(n&&T(n)||r&&T(r))}function Ke(e){let t=e.selectedVideoTrackId?F(e,`video`):void 0;if(t&&T(t))return t.duration;let n=e.selectedAudioTrackId?F(e,`audio`):void 0;if(n&&T(n))return n.duration}function qe({state:e}){return M([e]).subscribe(([t])=>{if(!Ge(t))return;let n=Ke(t);if(n===void 0||!Number.isFinite(n))return;let{presentation:r}=t;e.patch({presentation:{...r,duration:n}})})}var U=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??v(),this.#n=t?.signal?AbortSignal.any([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()}},Je=class{#e=new Map;schedule(e){this.#e.has(e.id)||(this.#e.set(e.id,e),e.run().catch(e=>{if(!(e instanceof Error&&e.name===`AbortError`))throw e}).finally(()=>{this.#e.delete(e.id)}))}abortAll(){for(let e of this.#e.values())e.abort();this.#e.clear()}},Ye=class{#e=Promise.resolve();#t=new Set;#n=null;schedule(e){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}abortAll(){for(let e of this.#t)e.abort();this.#t.clear(),this.#n?.abort()}destroy(){this.abortAll()}};function Xe(e,t){let n=F(e,t.type);return n?!T(n):!1}function Ze(e,t){return!0}function Qe(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 W({state:e,events:t},n){let r=new Je,i=M([e,t]).subscribe(([t,i])=>{if(!Xe(t,n)||!Ze(t,i))return;let a=F(t,n.type);if(!a)return;let o=a;r.schedule(new U(async t=>{let n=ee(await j(await A(o,{signal:t})),o),r=e.current.presentation,i=Qe(r,n);e.patch({presentation:i})},{id:a.id}))});return()=>{r.abortAll(),i()}}function $e(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 G(e,t){return!!e?.presentation?.selectionSets?.find(({type:e})=>e===t.type)?.switchingSets?.[0]?.tracks.length}function K(e,t){return!e[P[t.type]]}function et({state:e},t={type:`video`}){let n=!1;return e.subscribe(async r=>{if(!(!G(r,t)||!K(r,t)||n))try{n=!0;let i=r.presentation?.selectionSets.find(({type:e})=>e===t.type)?.switchingSets[0]?.tracks[0]?.id;if(i){let n=P[t.type];e.patch({[n]:i})}}finally{n=!1}})}function tt({state:e},t={type:`audio`}){let n=!1;return e.subscribe(async r=>{if(!(!G(r,t)||!K(r,t)||n))try{n=!0;let t=r.presentation?.selectionSets.find(({type:e})=>e===`audio`)?.switchingSets[0]?.tracks[0]?.id;t&&e.patch({selectedAudioTrackId:t})}finally{n=!1}})}function nt({state:e},t={type:`text`}){let n=!1;return e.subscribe(async r=>{if(!(!G(r,t)||!K(r,t)||n))try{n=!0;let i=$e(r.presentation,t);i&&e.patch({selectedTextTrackId:i})}finally{n=!1}})}function q(e,t){if(e.length===0)return!0;let n=e[e.length-1];return n?t?.snapshot.context.segments.some(e=>e.id===n.id&&!e.partial)??!1:!1}function rt(e,t){let n=e.selectedVideoTrackId?F(e,`video`):void 0,r=e.selectedAudioTrackId?F(e,`audio`):void 0;return!(n&&!T(n)||r&&!T(r)||n&&T(n)&&!q(n.segments,t.videoBufferActor)||r&&T(r)&&!q(r.segments,t.audioBufferActor))}function it(e,t){return!!(t.mediaSource&&e.presentation)}function at(e,t){if(!it(e,t))return!1;let{mediaSource:n,mediaElement:r}=t;if(n.readyState!==`open`||r&&r.readyState<HTMLMediaElement.HAVE_METADATA)return!1;let i=!!e.selectedVideoTrackId,a=!!e.selectedAudioTrackId;if(i&&!t.videoBuffer||a&&!t.audioBuffer||t.videoBufferActor?.snapshot.status===`updating`||t.audioBufferActor?.snapshot.status===`updating`||!rt(e,t))return!1;if(r){let t=i?F(e,`video`):void 0,n=a?F(e,`audio`):void 0,o=t&&T(t)?t:n&&T(n)?n:void 0;if(o&&o.segments.length>0){let e=o.segments[o.segments.length-1];if(r.currentTime<e.startTime)return!1}}return!0}function ot(e){let t=[e.videoBufferActor,e.audioBufferActor].filter(e=>e!==void 0&&e.snapshot.status===`updating`);return t.length===0?Promise.resolve():Promise.all(t.map(e=>new Promise(t=>{let n=e.subscribe(e=>{e.status!==`updating`&&(n(),t())})}))).then(()=>void 0)}function st(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 ct=async({currentOwners:e},t)=>{let{mediaSource:n}=e;if(n.readyState===`ended`||(await ot(e),n.readyState!==`open`))return;let r=st(e);r>0&&(n.duration=r),n.endOfStream(),await new Promise(e=>requestAnimationFrame(e))};function lt({state:e,owners:t}){let n=!1,r=!1,i=[],a=async()=>{if(r)return;let i=e.current,a=t.current;if(n){if(a.mediaSource?.readyState!==`open`)return;n=!1}if(at(i,a)){n=!0;try{await ct({currentOwners:a},{})}catch(e){console.error(`Failed to call endOfStream:`,e)}}},o=t.subscribe(e=>{i.forEach(e=>e()),i.length=0;for(let t of[e.videoBufferActor,e.audioBufferActor]){if(!t)continue;let e=!0;i.push(t.subscribe(()=>{if(e){e=!1;return}a()}))}}),s=M([e,t]).subscribe(async()=>a());return()=>{r=!0,i.forEach(e=>e()),o(),s()}}function ut(t,n){return!e(n.mediaElement)&&!e(t.presentation?.url)}function dt(t,n){return e(n.mediaSource)}function ft({state:e,owners:t}){let n=!1,r=null,i=M([e,t]).subscribe(async([e,i])=>{if(!(!ut(e,i)||!dt(e,i)||n))try{n=!0,r=new AbortController;let e=de({preferManaged:!0});fe(e,i.mediaElement),await pe(e,r.signal),t.patch({mediaSource:e})}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;throw e}finally{n=!1}});return()=>{r?.abort(),i()}}var J=class extends Error{constructor(e){super(e),this.name=`SourceBufferActorError`}};function Y(e){let t=[];for(let n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function pt(e,{signal:t,getCtx:n,sourceBuffer:r}){return new U(async t=>{let i=n();return t.aborted?i:(await V(r,e.data),{...i,initTrackId:e.meta.trackId})},{signal:t})}function mt(e,{signal:t,getCtx:n,sourceBuffer:r,onPartialContext:i}){return new U(async t=>{let a=n();if(t.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||i({...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 V(r,e.data,t),{...a,segments:[...s,{id:o.id,startTime:o.startTime,duration:o.duration,trackId:o.trackId,...o.trackBandwidth!==void 0&&{trackBandwidth:o.trackBandwidth}}],bufferedRanges:Y(r.buffered)}},{signal:t})}function ht(e,{signal:t,getCtx:n,sourceBuffer:r}){return new U(async t=>{let i=n();if(t.aborted)return i;await Ue(r,e.start,e.end);let a=Y(r.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}},{signal:t})}const gt={"append-init":pt,"append-segment":mt,remove:ht};function X(e,t){let n=gt[e.type];return n(e,t)}function Z(e,t){let n=c({status:`idle`,context:{segments:[],bufferedRanges:[],initTrackId:void 0,...t}}),r=new Ye;function i(e){let t=n.current.status===`destroyed`?`destroyed`:`idle`;n.patch({status:t,context:e}),n.flush()}function a(e){let t=n.current.status===`destroyed`?`destroyed`:`idle`;throw n.patch({status:t}),n.flush(),e}return{get snapshot(){return n.current},subscribe(e){return n.subscribe(e)},send(t,o){if(n.current.status!==`idle`)return Promise.reject(new J(`send() called while actor is ${n.current.status}`));n.patch({status:`updating`});let s=X(t,{signal:o,getCtx:()=>n.current.context,sourceBuffer:e,onPartialContext:e=>{n.patch({status:`updating`,context:e}),n.flush()}});return r.schedule(s).then(i).catch(a)},batch(t,o){if(n.current.status!==`idle`)return Promise.reject(new J(`batch() called while actor is ${n.current.status}`));if(t.length===0)return Promise.resolve();n.patch({status:`updating`});let s=n.current.context,c=e=>{n.patch({status:`updating`,context:e}),n.flush()};for(let n of t.slice(0,-1)){let t=X(n,{signal:o,getCtx:()=>s,sourceBuffer:e,onPartialContext:c});r.schedule(t).then(e=>{s=e})}let l=X(t[t.length-1],{signal:o,getCtx:()=>s,sourceBuffer:e,onPartialContext:c});return r.schedule(l).then(i).catch(a)},destroy(){n.patch({status:`destroyed`}),n.flush(),r.destroy()}}}function Q(e){let t=e.codecs?.join(`,`)??``;return`${e.mimeType}; codecs="${t}"`}function _t({state:e,owners:t}){let n=!1;return M([e,t]).subscribe(async([e,r])=>{if(n||!r.mediaSource)return;let i=!!e.selectedVideoTrackId,a=!!e.selectedAudioTrackId;if(!i&&!a)return;let o=i?F(e,`video`):null,s=a?F(e,`audio`):null;if(i&&(!o||!T(o)||!o.codecs?.length)||a&&(!s||!T(s)||!s.codecs?.length))return;n=!0;let c={};if(i&&o&&T(o)){let e=O(r.mediaSource,Q(o));c.videoBuffer=e,c.videoBufferActor=Z(e)}if(a&&s&&T(s)){let e=O(r.mediaSource,Q(s));c.audioBuffer=e,c.audioBufferActor=Z(e)}t.patch(c),await new Promise(e=>requestAnimationFrame(e))})}function $(e){if(!e?.selectionSets)return[];let t=e.selectionSets.find(e=>e.type===`text`);return t?.switchingSets?.[0]?.tracks?t.switchingSets[0].tracks:[]}function vt(e,t){return!!t.mediaElement&&!!$(e.presentation).length}function yt(e){return!e.textTracks}function bt(e){let t=document.createElement(`track`);return t.id=e.id,t.kind=e.kind,t.label=e.label,e.language&&(t.srclang=e.language),e.default&&(t.default=!0),t.src=e.url,t}function xt({state:e,owners:t}){let n=!1,r=[],i=M([e,t]).subscribe(([e,i])=>{if(n||!vt(e,i)||!yt(i))return;n=!0;let a=$(e.presentation);if(a.length===0)return;let o=new Map;for(let e of a){let t=bt(e);i.mediaElement.appendChild(t),o.set(e.id,t),r.push(t)}t.patch({textTracks:o})});return()=>{for(let e of r)e.remove();r=[],i()}}function St({state:e,owners:n}){let r,i=null,a=n.subscribe(n=>{let{mediaElement:a}=n;a===r||(i?.(),i=null,r=a,!a)||(i=t(a.textTracks,`change`,()=>{let t=Array.from(a.textTracks).find(e=>e.mode===`showing`&&(e.kind===`subtitles`||e.kind===`captions`))?.id||void 0,n=e.current;if(n.selectedTextTrackId!==t)if(t)e.patch({selectedTextTrackId:t});else{let t=n.selectedTextTrackId;if(t&&n.textBufferState?.[t]){let r={...n.textBufferState};delete r[t],e.patch({selectedTextTrackId:void 0,textBufferState:r})}else e.patch({selectedTextTrackId:void 0})}}))});return()=>{i?.(),a()}}function Ct(e){return!!e.textTracks&&e.textTracks.size>0}function wt({state:e,owners:t}){return M([e,t]).subscribe(([e,t])=>{if(!Ct(t))return;let n=e.selectedTextTrackId;for(let[e,r]of t.textTracks)e===n?r.track.mode=`showing`:r.track.mode=`hidden`})}function Tt(e,t){return!!(t.mediaSource&&e.presentation&&ue(e.presentation))}function Et(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 Dt(e,t){if(!Tt(e,t))return!1;let{mediaSource:n}=t,{presentation:r}=e;if(n.readyState!==`open`)return!1;let i=r.duration;return!Number.isFinite(i)||Number.isNaN(i)||i<=0?!1:Number.isNaN(n.duration)}function Ot(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 kt({state:e,owners:t}){let n=!1,r=M([e,t]).subscribe(async([e,t])=>{if(!Dt(e,t))return;let{mediaSource:r}=t;if(await Ot(t),n||r.readyState!==`open`)return;let i=e.presentation.duration,a=Et(t);a>i&&(i=a),r.duration=i});return()=>{n=!0,r()}}function At(e={}){let t=c({bandwidthState:{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}}),n=c({}),r=ve(),i=[Se(t,n),He({state:t,owners:n,events:r}),Ce({state:t,events:r}),et({state:t,owners:n,events:r},{type:`video`,...e.initialBandwidth!==void 0&&{initialBandwidth:e.initialBandwidth}}),tt({state:t,owners:n,events:r},{type:`audio`,...e.preferredAudioLanguage!==void 0&&{preferredAudioLanguage:e.preferredAudioLanguage}}),nt({state:t,owners:n,events:r},{type:`text`,...e.preferredSubtitleLanguage!==void 0&&{preferredSubtitleLanguage:e.preferredSubtitleLanguage},...e.includeForcedTracks!==void 0&&{includeForcedTracks:e.includeForcedTracks},...e.enableDefaultTrack!==void 0&&{enableDefaultTrack:e.enableDefaultTrack}}),W({state:t,events:r},{type:`video`}),W({state:t,events:r},{type:`audio`}),W({state:t,events:r},{type:`text`}),qe({state:t}),ft({state:t,owners:n}),kt({state:t,owners:n}),_t({state:t,owners:n}),Ve({state:t,owners:n}),Te({state:t}),L({state:t,owners:n},{type:`video`}),L({state:t,owners:n},{type:`audio`}),lt({state:t,owners:n}),xt({state:t,owners:n}),wt({state:t,owners:n}),St({state:t,owners:n}),Be({state:t,owners:n})];return r.dispatch({type:`@@INITIALIZE@@`}),{state:t,owners:n,events:r,destroy:()=>{i.forEach(e=>e()),Pe()}}}var jt=class{#e;#t;#n=null;constructor(e={}){this.#t=e,this.#e=At(e)}get engine(){return this.#e}attach(e){this.#e.owners.patch({mediaElement:e})}detach(){this.#r(),this.#e.owners.patch({mediaElement:void 0})}destroy(){this.#r(),this.#e.destroy()}get src(){return this.#e.state.current.presentation?.url??``}set src(e){let t=this.#e.owners.current.mediaElement;this.#r(),this.#e.destroy(),this.#e=At(this.#t),t&&this.#e.owners.patch({mediaElement:t}),e&&this.#e.state.patch({presentation:{url:e}})}play(){let{mediaElement:e}=this.#e.owners.current;return e?(this.#e.state.patch({playbackInitiated:!0}),e.play().catch(t=>{if(this.src)return new Promise((t,n)=>{let r=()=>{this.#n=null,e.play().then(t,n)};this.#n=r,e.addEventListener(`loadstart`,r,{once:!0})});throw t})):Promise.reject(Error(`SpfMedia: no media element attached`))}#r(){if(!this.#n)return;let{mediaElement:e}=this.#e.owners.current;e?.removeEventListener(`loadstart`,this.#n),this.#n=null}},Mt=class extends r(i(globalThis.HTMLElement??class{},{tag:`video`}),jt){},Nt=class extends n(Mt){static getTemplateHTML(e){let{src:t,...n}=e;return super.getTemplateHTML(n)}constructor(){super(),this.attach(this.target)}attributeChangedCallback(e,t,n){e!==`src`&&super.attributeChangedCallback(e,t,n),e===`src`&&t!==n&&(this.src=n??``)}},Pt=class extends Nt{static{this.tagName=`simple-hls-video`}};customElements.define(Pt.tagName,Pt);
1
+ import{n as e}from"../predicate-Y9jDHLpX.js";import{t}from"../listen-DX5vU4s4.js";import{t as n}from"../media-attach-mixin-tFNcHnvo.js";import{n as r,t as i}from"../proxy-2oO2ph3m.js";const a=Symbol(`@videojs/spf/state`);function o(e,t){return Object.is(e,t)}var s=class{[a]=!0;#e;#t=null;#n=!1;#r;#i=new Set;#a=new Set;constructor(e,t){this.#e=typeof e==`object`&&e?{...e}:e,this.#r=t?.equalityFn??o}get current(){return this.#t??this.#e}patch(e){let t=this.#t??this.#e;if(typeof t!=`object`||!t){let n=e;Object.is(t,n)||(this.#t=n,this.#o());return}let n={...t},r=!1;for(let i in e){if(!Object.hasOwn(e,i))continue;let a=e[i];Object.is(t[i],a)||(n[i]=a,r=!0)}r&&(this.#t=n,this.#o())}subscribe(e,t,n){if(t===void 0){let t=e;return this.#i.add(t),t(this.current),()=>{this.#i.delete(t)}}let r=e,i=t,a={selector:r,listener:i,options:n??{}};return this.#a.add(a),i(r(this.current)),()=>{this.#a.delete(a)}}flush(){if(this.#t===null)return;let e=this.#e,t=this.#t;if(this.#t=null,this.#n=!1,!this.#r(e,t)){this.#e=t;for(let e of this.#i)e(this.#e);for(let t of this.#a){let n=t.selector(e),r=t.selector(this.#e);(t.options.equalityFn??Object.is)(n,r)||t.listener(r)}}}#o(){this.#n||(this.#n=!0,queueMicrotask(()=>this.flush()))}};function c(e,t){return new s(e,t)}function l(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 u(e){let t=/^(\d+)x(\d+)$/.exec(e);return t?{width:Number.parseInt(t[1],10),height:Number.parseInt(t[2],10)}:null}function d(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 f(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 p(e){let t=e.split(`,`)[0]??e,n=Number.parseFloat(t);return Number.isNaN(n)?0:n}function m(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 h(e){let t=l(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 u(n)??void 0},getFrameRate(e){let n=t.get(e);if(n)return d(n)}}}function g(e,t){let n=`#${t}:`;return e.startsWith(n)?h(e.slice(n.length)):null}function _(e,t){return new URL(e,t).href}function ee(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=g(t,`EXT-X-MAP`);if(n){let e=n.get(`URI`);if(e){a=_(e,r);let t=n.get(`BYTERANGE`);t&&(o=m(t,0)??void 0)}continue}if(t.startsWith(`#EXTINF:`)){s=p(t.slice(8));continue}if(t.startsWith(`#EXT-X-BYTERANGE:`)){c=m(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,h=t.type===`text`&&!a?void 0:a?{url:a,...o?{byteRange:o}:{}}:{url:``};return{...t,startTime:0,duration:f,segments:i,initialization:h}}function v(){return`${Date.now()}-${Math.floor(Math.random()*1e6)}`}function te(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=g(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=g(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=f(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?f(e.codecs):void 0,n={type:`video`,id:v(),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?f(e.codecs):void 0;return{type:`audio`,id:v(),url:e.uri,bandwidth:e.bandwidth,mimeType:`audio/mp4`,codecs:t?.audio?[t.audio]:[],groupId:e.audioGroupId||`default`,name:`Default`,sampleRate:48e3,channels:2}}),p=[...a.map(e=>{let t;for(let n of i)if(n.audioGroupId===e.groupId&&n.codecs){let e=f(n.codecs);if(e.audio){t=[e.audio];break}}let n={type:`audio`,id:v(),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],m=o.map(e=>{let t={type:`text`,id:v(),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}),h=[];if(u.length>0){let e={id:v(),type:`video`,tracks:u},t={id:v(),type:`video`,switchingSets:[e]};h.push(t)}if(p.length>0){let e={id:v(),type:`audio`,tracks:p},t={id:v(),type:`audio`,switchingSets:[e]};h.push(t)}if(m.length>0){let e={id:v(),type:`text`,tracks:m},t={id:v(),type:`text`,switchingSets:[e]};h.push(t)}return{id:v(),url:t.url,startTime:0,selectionSets:h}}function y(e){return Math.exp(Math.log(.5)/e)}function b(e,t,n,r){let i=y(r)**n;return t*(1-i)+i*e}function x(e,t,n){return t===0?0:e/(1-y(n)**t)}const S={fastHalfLife:2,slowHalfLife:5,minTotalBytes:128e3,minBytes:16e3,minDuration:5};function ne(e,t,n,r=S){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:b(e.fastEstimate,a,o,r.fastHalfLife),fastTotalWeight:e.fastTotalWeight+o,slowEstimate:b(e.slowEstimate,a,o,r.slowHalfLife),slowTotalWeight:e.slowTotalWeight+o,bytesSampled:i}}function re(e,t,n=S){if(e.bytesSampled<n.minTotalBytes)return t;let r=x(e.fastEstimate,e.fastTotalWeight,n.fastHalfLife),i=x(e.slowEstimate,e.slowTotalWeight,n.slowHalfLife);return Math.min(r,i)}const ie={safetyMargin:.85};function ae(e,t,n=ie){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&&oe(e,i))&&(i=e);return i??r[0]}function oe(e,t){return(e.width??0)*(e.height??0)>(t.width??0)*(t.height??0)}const se={keepSegments:2};function ce(e,t,n=se){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}const C={bufferDuration:30};function le(e,t,n=C){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 w(e,t,n,r=C){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})}function T(e){return`segments`in e}function ue(e){return e.duration!==void 0}function E(){return typeof MediaSource<`u`}function D(){return typeof ManagedMediaSource<`u`}function de(e={}){let{preferManaged:t=!1}=e;if(t&&D())return new ManagedMediaSource;if(E())return new MediaSource;throw Error(`MediaSource API is not supported`)}function fe(e,t){if(D()&&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 pe(e,t){return new Promise((n,r)=>{if(e.readyState===`open`){n();return}if(t?.aborted){r(new DOMException(`Aborted`,`AbortError`));return}let i=new AbortController,a={signal:i.signal};e.addEventListener(`sourceopen`,()=>{i.abort(),n()},a),t?.addEventListener(`abort`,()=>{i.abort(),r(new DOMException(`Aborted`,`AbortError`))},a)})}function O(e,t){if(e.readyState!==`open`)throw Error(`MediaSource is not open`);if(!me(t))throw Error(`Codec not supported: ${t}`);return e.addSourceBuffer(t)}function me(e){return E()?MediaSource.isTypeSupported(e):!1}const he=2**17;var k=class{minChunkSize;#e;constructor(e,{minChunkSize:t=he}={}){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?ge(e,r):r,e.length>=this.minChunkSize&&(yield e,e=void 0)}}finally{t.releaseLock()}}};function ge(e,t){let n=new Uint8Array(e.length+t.length);return n.set(e),n.set(t,e.length),n}async function A(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 j(e){return e.text()}const _e=Symbol(`@videojs/event-stream`);function ve(){let e=new Set;return{[_e]:!0,dispatch(t){let n=Array.from(e);for(let e of n)e(t)},subscribe(t){return e.add(t),()=>e.delete(t)}}}function M(e){let t=t=>{let n=Array(e.length),r=Array(e.length).fill(!1),i=[];for(let a=0;a<e.length;a++){let o=e[a].subscribe(e=>{n[a]=e,r[a]=!0,r.every(e=>e)&&t([...n])});i.push(o)}return()=>{for(let e of i)e()}};return{subscribe(e,n,r){if(n===void 0)return t(e);let i=e,a=n,o=r?.equalityFn??Object.is,s,c=!1;return t(e=>{let t=i(e);(!c||!o(s,t))&&(s=t,c=!0,a(t))})}}}function ye(e){return e!==void 0&&`url`in e&&!(`id`in e)}function be(e){return ye(e.presentation)}function xe(e,t){let{preload:n}=e;return[`auto`,`metadata`].includes(n)||t.type===`play`}function Se(e,t){return t.subscribe(t=>{if(e.current.preload!==void 0)return;let n=t.mediaElement?.preload||void 0;e.patch({preload:n})})}function Ce({state:e,events:t}){let n=!1,r=null,i=M([e,t]).subscribe(async([t,i])=>{if(!(!be(t)||!xe(t,i)||n))try{n=!0,r=new AbortController;let{presentation:i}=t,a=te(await j(await A(i,{signal:r.signal})),i);e.patch({presentation:a})}catch(e){if(e instanceof Error&&e.name===`AbortError`)return;throw e}finally{n=!1,r=null}});return()=>{r?.abort(),i()}}const N={safetyMargin:.85,minUpgradeInterval:8e3,defaultBandwidth:5e6};function we(e){return(e.selectionSets?.find(e=>e.type===`video`))?.switchingSets[0]?.tracks??[]}function Te({state:e},t={}){let n=t.safetyMargin??N.safetyMargin,r=t.minUpgradeInterval??N.minUpgradeInterval,i=t.defaultBandwidth??N.defaultBandwidth,a=Date.now(),o=!0;return e.subscribe(t=>{let{presentation:s,bandwidthState:c,selectedVideoTrackId:l,abrDisabled:u}=t;if(u===!0||!s||!c)return;let d=we(s);if(d.length===0)return;let f=o;o=!1;let p=ae(d,re(c,i),{safetyMargin:n});if(!p||p.id===l)return;let m=d.find(e=>e.id===l);if(!m||p.bandwidth>m.bandwidth){let e=Date.now();if(!f&&e-a<r)return;a=e}e.patch({selectedVideoTrackId:p.id})})}const P={video:`selectedVideoTrackId`,audio:`selectedAudioTrackId`,text:`selectedTextTrackId`};function F(e,t){let{presentation:n}=e;if(!n||!(`id`in n))return;let r=e[P[t]];return n.selectionSets.find(({type:e})=>e===t)?.switchingSets[0]?.tracks.find(({id:e})=>e===r)}function Ee(e,t){let n=null,r=null,i=null,a=null,o=!1,s=!1,c=t=>{let n=new Set(e.snapshot.context.segments.filter(e=>!e.partial).map(e=>e.id));return t.filter(e=>n.has(e.id))},l=t=>{let{track:n,range:r}=t,i=e.snapshot.context,a=c(n.segments),o=r?.start??0,s=[];if(r){let e=le(a,o);e<1/0&&s.push({type:`remove`,start:e,end:1/0});let t=ce(a,o);t>0&&s.push({type:`remove`,start:0,end:t})}if(i.initTrackId!==n.id&&s.push({type:`append-init`,meta:{trackId:n.id},url:n.initialization.url,...n.initialization.byteRange!==void 0&&{byteRange:n.initialization.byteRange}}),r){let e=w(n.segments,a,o).filter(e=>{let t=i.segments.find(t=>Math.abs(t.startTime-e.startTime)<1e-4);return t?.partial||!t?.trackBandwidth||!n.bandwidth?!0:n.bandwidth>t.trackBandwidth});for(let t of e)s.push({type:`append-segment`,meta:{id:t.id,startTime:t.startTime,duration:t.duration,trackId:n.id,trackBandwidth:n.bandwidth},url:t.url,...t.byteRange!==void 0&&{byteRange:t.byteRange}})}return s},u=async o=>{let s=a.signal;try{if(o.type===`remove`){await e.send(o,s);return}if(o.type===`append-init`){if(r=o.meta.trackId,!s.aborted){let r=await t(o,{signal:s,minChunkSize:1/0}),i=n?.some(e=>e.type===`append-init`&&e.meta.trackId!==o.meta.trackId);if(!s.aborted||!i){let t=s.aborted?new AbortController().signal:s;await e.send({type:`append-init`,data:r,meta:o.meta},t)}}return}if(i=o.meta.id,!s.aborted){let n=await t(o,{signal:s});s.aborted||await e.send({type:`append-segment`,data:n,meta:o.meta},s)}}finally{r=null,i=null}},d=async e=>{o=!0,a=new AbortController;let t=e;for(;t.length>0&&!s;){let e=t[0];t=t.slice(1);try{await u(e)}catch(e){e instanceof Error&&e.name===`AbortError`||(console.error(`Unexpected error in segment loader:`,e),t=[])}if(n!==null)t=n,n=null,a=new AbortController;else if(a.signal.aborted)break}a=null,o=!1};return{send(e){if(s)return;let t=l(e);if(!o){if(t.length===0)return;d(t);return}i!==null&&t.some(e=>e.type===`append-segment`&&e.meta.id===i)||r!==null&&t.some(e=>e.type===`append-init`&&e.meta.trackId===r)?n=t.filter(e=>!(e.type===`append-segment`&&e.meta.id===i)&&!(e.type===`append-init`&&e.meta.trackId===r)):(n=t,a?.abort())},destroy(){s=!0,a?.abort()}}}const De={video:`videoBufferActor`,audio:`audioBufferActor`};function Oe(e,t){return async(n,r)=>{let{minChunkSize:i,...a}=r??{},o=await A(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 k(s,...i===void 0?[]:[{minChunkSize:i}])){let i=performance.now()-n,a=ne(e.current,i,r.byteLength);e.patch(a),e.flush(),t?.(a),yield r,n=performance.now()}}}}}async function ke(e,t){let{minChunkSize:n,...r}=t??{},i=await A(e,r);if(!i.body)throw Error(`Response has no body`);return new k(i.body,...n===void 0?[]:[{minChunkSize:n}])}function Ae([e,t],n){let{playbackInitiated:r,preload:i,currentTime:a}=t;return{playbackInitiated:r,preload:i,currentTime:a,track:F(t,n),segmentsCanLoad:e}}const I=(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 je(e,t){return t.segmentsCanLoad?t.playbackInitiated?!e.playbackInitiated&&t.playbackInitiated&&e.preload!==`auto`?!1:!t.track||!T(t.track)?!0:e.track?.id!==t.track.id&&T(t.track)?!1:I(e.currentTime,t.track)===I(t.currentTime,t.track):t.preload===`none`?!0:t.preload===e.preload:!0}function L({state:e,owners:t},n){let{type:r}=n,i=De[r],a=e.current.bandwidthState,o=c(a??{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}),s=r===`video`?Oe(o,a===void 0?void 0:t=>{e.patch({bandwidthState:t}),e.flush()}):ke,l=c(void 0),u=t.subscribe(e=>e[i],e=>(e?l.patch(Ee(e,s)):!e&&l.current&&(l.current.destroy(),l.patch(void 0)),()=>{l.current?.destroy(),l.patch(void 0)})),d=c(!1),f=M([e,l]).subscribe(([e,t])=>{let n=F(e,r),i=!!n&&T(n),a=!!t;d.patch(i&&a)}),p=M([d,e]).subscribe(([e,t])=>Ae([e,t],r),({preload:e,playbackInitiated:t,currentTime:n,track:r})=>{e===`auto`||t?l.current?.send({type:`load`,track:r,range:{start:n,end:n+C.bufferDuration}}):l.current?.send({type:`load`,track:r})},{equalityFn:je});return()=>{f(),p(),u()}}let R=null;function Me(){return R||(R=document.createElement(`video`),R.muted=!0,R.preload=`none`,R.style.display=`none`,R.crossOrigin=`anonymous`),R}function Ne(e){let t=Me(),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 Pe(){R=null}function Fe(e,t){let{cues:n}=t;if(!n)return!1;for(let t=0;t<n.length;t++){let r=n[t];if(r.startTime===e.startTime&&r.endTime===e.endTime&&r.text===e.text)return!0}return!1}const Ie=async({segment:e},t)=>{let n=await Ne(e.url);for(let e of n)Fe(e,t.textTrack)||t.textTrack.addCue(e)},Le=async({currentState:e},t)=>{let n=z(e);if(!n||!T(n))return;let{segments:r}=n;if(r.length===0)return;let i=n.id,a=new Set((e.textBufferState?.[i]?.segments??[]).map(e=>e.id)),o=w(r,r.filter(e=>a.has(e.id)),e.currentTime??0).filter(e=>!a.has(e.id));if(o.length!==0){for(let e of o){if(t.signal.aborted)break;try{await Ie({segment:e},{textTrack:t.textTrack});let n=t.state.current.textBufferState??{},r=n[i]??{segments:[]};t.state.patch({textBufferState:{...n,[i]:{segments:[...r.segments,{id:e.id}]}}})}catch(e){if(e instanceof Error&&e.name===`AbortError`)break;console.error(`Failed to load VTT segment:`,e)}}t.textTrack.mode===`showing`&&t.textTrack.cues&&Array.from(t.textTrack.cues).forEach(e=>{t.textTrack.addCue(e)}),await new Promise(e=>requestAnimationFrame(e))}};function z(e){if(!e.presentation||!e.selectedTextTrackId)return;let t=e.presentation.selectionSets.find(e=>e.type===`text`);if(t?.switchingSets?.[0]?.tracks)return t.switchingSets[0].tracks.find(t=>t.id===e.selectedTextTrackId)}function B(e,t){let n=e.selectedTextTrackId;if(!(!n||!t.textTracks))return t.textTracks.get(n)?.track}function Re(e,t){return!!e.selectedTextTrackId&&!!t.textTracks&&t.textTracks.has(e.selectedTextTrackId)}function ze(e,t){if(!Re(e,t))return!1;let n=z(e);return!(!n||!T(n)||n.segments.length===0||!B(e,t))}function Be({state:e,owners:t}){let n=null,r=null,i,a=M([e,t]).subscribe(async([t,a])=>{if(t.selectedTextTrackId!==i&&(i=t.selectedTextTrackId,r?.abort(),n=null),n||!ze(t,a))return;let o=B(t,a);o&&(r=new AbortController,n=Le({currentState:t},{signal:r.signal,textTrack:o,state:e}).finally(()=>{n=null}))});return()=>{r?.abort(),a()}}function Ve({state:e,owners:n}){let r,i=null,a=n.subscribe(n=>{let{mediaElement:a}=n;if(a===r||(i?.(),i=null,r=a,!a))return;e.patch({currentTime:a.currentTime});let o=()=>e.patch({currentTime:a.currentTime}),s=t(a,`timeupdate`,o),c=t(a,`seeking`,o);i=()=>{s(),c()}});return()=>{i?.(),a()}}function He({state:e,owners:n,events:r}){let i,a=null,o,s=e.subscribe(t=>{let n=t.presentation?.url;n!==o&&(o!==void 0&&e.patch({playbackInitiated:!1}),o=n)}),c=n.subscribe(n=>{let{mediaElement:o}=n;o!==i&&(a?.(),a=null,i=o,o&&(a=t(o,`play`,()=>{e.patch({playbackInitiated:!0}),r.dispatch({type:`play`})})))});return()=>{a?.(),s(),c()}}async function V(e,t,n){if(t instanceof ArrayBuffer)await H(e,t);else try{for await(let r of t){if(n?.aborted)throw n.reason??new DOMException(`Aborted`,`AbortError`);await H(e,r)}}catch(t){if(t instanceof DOMException&&t.name===`AbortError`&&!e.updating)try{e.abort()}catch{}throw t}}async function H(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 Ue(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 We(e){return e.presentation?!!(e.selectedVideoTrackId||e.selectedAudioTrackId):!1}function Ge(e){if(!We(e))return!1;let{presentation:t}=e;if(t.duration!==void 0)return!1;let n=e.selectedVideoTrackId?F(e,`video`):void 0,r=e.selectedAudioTrackId?F(e,`audio`):void 0;return!!(n&&T(n)||r&&T(r))}function Ke(e){let t=e.selectedVideoTrackId?F(e,`video`):void 0;if(t&&T(t))return t.duration;let n=e.selectedAudioTrackId?F(e,`audio`):void 0;if(n&&T(n))return n.duration}function qe({state:e}){return M([e]).subscribe(([t])=>{if(!Ge(t))return;let n=Ke(t);if(n===void 0||!Number.isFinite(n))return;let{presentation:r}=t;e.patch({presentation:{...r,duration:n}})})}var U=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??v(),this.#n=t?.signal?AbortSignal.any([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()}},Je=class{#e=new Map;schedule(e){this.#e.has(e.id)||(this.#e.set(e.id,e),e.run().catch(e=>{if(!(e instanceof Error&&e.name===`AbortError`))throw e}).finally(()=>{this.#e.delete(e.id)}))}abortAll(){for(let e of this.#e.values())e.abort();this.#e.clear()}},Ye=class{#e=Promise.resolve();#t=new Set;#n=null;schedule(e){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}abortAll(){for(let e of this.#t)e.abort();this.#t.clear(),this.#n?.abort()}destroy(){this.abortAll()}};function Xe(e,t){let n=F(e,t.type);return n?!T(n):!1}function Ze(e,t){return!0}function Qe(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 W({state:e,events:t},n){let r=new Je,i=M([e,t]).subscribe(([t,i])=>{if(!Xe(t,n)||!Ze(t,i))return;let a=F(t,n.type);if(!a)return;let o=a;r.schedule(new U(async t=>{let n=ee(await j(await A(o,{signal:t})),o),r=e.current.presentation,i=Qe(r,n);e.patch({presentation:i})},{id:a.id}))});return()=>{r.abortAll(),i()}}function $e(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 G(e,t){return!!e?.presentation?.selectionSets?.find(({type:e})=>e===t.type)?.switchingSets?.[0]?.tracks.length}function K(e,t){return!e[P[t.type]]}function et({state:e},t={type:`video`}){let n=!1;return e.subscribe(async r=>{if(!(!G(r,t)||!K(r,t)||n))try{n=!0;let i=r.presentation?.selectionSets.find(({type:e})=>e===t.type)?.switchingSets[0]?.tracks[0]?.id;if(i){let n=P[t.type];e.patch({[n]:i})}}finally{n=!1}})}function tt({state:e},t={type:`audio`}){let n=!1;return e.subscribe(async r=>{if(!(!G(r,t)||!K(r,t)||n))try{n=!0;let t=r.presentation?.selectionSets.find(({type:e})=>e===`audio`)?.switchingSets[0]?.tracks[0]?.id;t&&e.patch({selectedAudioTrackId:t})}finally{n=!1}})}function nt({state:e},t={type:`text`}){let n=!1;return e.subscribe(async r=>{if(!(!G(r,t)||!K(r,t)||n))try{n=!0;let i=$e(r.presentation,t);i&&e.patch({selectedTextTrackId:i})}finally{n=!1}})}function q(e,t){if(e.length===0)return!0;let n=e[e.length-1];return n?t?.snapshot.context.segments.some(e=>e.id===n.id&&!e.partial)??!1:!1}function rt(e,t){let n=e.selectedVideoTrackId?F(e,`video`):void 0,r=e.selectedAudioTrackId?F(e,`audio`):void 0;return!(n&&!T(n)||r&&!T(r)||n&&T(n)&&!q(n.segments,t.videoBufferActor)||r&&T(r)&&!q(r.segments,t.audioBufferActor))}function it(e,t){return!!(t.mediaSource&&e.presentation)}function at(e,t){if(!it(e,t))return!1;let{mediaSource:n,mediaElement:r}=t;if(n.readyState!==`open`||r&&r.readyState<HTMLMediaElement.HAVE_METADATA)return!1;let i=!!e.selectedVideoTrackId,a=!!e.selectedAudioTrackId;if(i&&!t.videoBuffer||a&&!t.audioBuffer||t.videoBufferActor?.snapshot.status===`updating`||t.audioBufferActor?.snapshot.status===`updating`||!rt(e,t))return!1;if(r){let t=i?F(e,`video`):void 0,n=a?F(e,`audio`):void 0,o=t&&T(t)?t:n&&T(n)?n:void 0;if(o&&o.segments.length>0){let e=o.segments[o.segments.length-1];if(r.currentTime<e.startTime)return!1}}return!0}function ot(e){let t=[e.videoBufferActor,e.audioBufferActor].filter(e=>e!==void 0&&e.snapshot.status===`updating`);return t.length===0?Promise.resolve():Promise.all(t.map(e=>new Promise(t=>{let n=e.subscribe(e=>{e.status!==`updating`&&(n(),t())})}))).then(()=>void 0)}function st(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 ct=async({currentOwners:e},t)=>{let{mediaSource:n}=e;if(n.readyState===`ended`||(await ot(e),n.readyState!==`open`))return;let r=st(e);r>0&&(n.duration=r),n.endOfStream(),await new Promise(e=>requestAnimationFrame(e))};function lt({state:e,owners:t}){let n=!1,r=!1,i=[],a=async()=>{if(r)return;let i=e.current,a=t.current;if(n){if(a.mediaSource?.readyState!==`open`)return;n=!1}if(at(i,a)){n=!0;try{await ct({currentOwners:a},{})}catch(e){console.error(`Failed to call endOfStream:`,e)}}},o=t.subscribe(e=>{i.forEach(e=>e()),i.length=0;for(let t of[e.videoBufferActor,e.audioBufferActor]){if(!t)continue;let e=!0;i.push(t.subscribe(()=>{if(e){e=!1;return}a()}))}}),s=M([e,t]).subscribe(async()=>a());return()=>{r=!0,i.forEach(e=>e()),o(),s()}}function ut(t,n){return!e(n.mediaElement)&&!e(t.presentation?.url)}function dt(t,n){return e(n.mediaSource)}function ft({state:e,owners:t}){let n=!1,r=null,i=M([e,t]).subscribe(async([e,i])=>{if(!(!ut(e,i)||!dt(e,i)||n))try{n=!0,r=new AbortController;let e=de({preferManaged:!0});fe(e,i.mediaElement),await pe(e,r.signal),t.patch({mediaSource:e})}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;throw e}finally{n=!1}});return()=>{r?.abort(),i()}}var J=class extends Error{constructor(e){super(e),this.name=`SourceBufferActorError`}};function Y(e){let t=[];for(let n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function pt(e,{signal:t,getCtx:n,sourceBuffer:r}){return new U(async t=>{let i=n();return t.aborted?i:(await V(r,e.data),{...i,initTrackId:e.meta.trackId})},{signal:t})}function mt(e,{signal:t,getCtx:n,sourceBuffer:r,onPartialContext:i}){return new U(async t=>{let a=n();if(t.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||i({...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 V(r,e.data,t),{...a,segments:[...s,{id:o.id,startTime:o.startTime,duration:o.duration,trackId:o.trackId,...o.trackBandwidth!==void 0&&{trackBandwidth:o.trackBandwidth}}],bufferedRanges:Y(r.buffered)}},{signal:t})}function ht(e,{signal:t,getCtx:n,sourceBuffer:r}){return new U(async t=>{let i=n();if(t.aborted)return i;await Ue(r,e.start,e.end);let a=Y(r.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}},{signal:t})}const gt={"append-init":pt,"append-segment":mt,remove:ht};function X(e,t){let n=gt[e.type];return n(e,t)}function Z(e,t){let n=c({status:`idle`,context:{segments:[],bufferedRanges:[],initTrackId:void 0,...t}}),r=new Ye;function i(e){let t=n.current.status===`destroyed`?`destroyed`:`idle`;n.patch({status:t,context:e}),n.flush()}function a(e){let t=n.current.status===`destroyed`?`destroyed`:`idle`;throw n.patch({status:t}),n.flush(),e}return{get snapshot(){return n.current},subscribe(e){return n.subscribe(e)},send(t,o){if(n.current.status!==`idle`)return Promise.reject(new J(`send() called while actor is ${n.current.status}`));n.patch({status:`updating`});let s=X(t,{signal:o,getCtx:()=>n.current.context,sourceBuffer:e,onPartialContext:e=>{n.patch({status:`updating`,context:e}),n.flush()}});return r.schedule(s).then(i).catch(a)},batch(t,o){if(n.current.status!==`idle`)return Promise.reject(new J(`batch() called while actor is ${n.current.status}`));if(t.length===0)return Promise.resolve();n.patch({status:`updating`});let s=n.current.context,c=e=>{n.patch({status:`updating`,context:e}),n.flush()};for(let n of t.slice(0,-1)){let t=X(n,{signal:o,getCtx:()=>s,sourceBuffer:e,onPartialContext:c});r.schedule(t).then(e=>{s=e})}let l=X(t[t.length-1],{signal:o,getCtx:()=>s,sourceBuffer:e,onPartialContext:c});return r.schedule(l).then(i).catch(a)},destroy(){n.patch({status:`destroyed`}),n.flush(),r.destroy()}}}function Q(e){let t=e.codecs?.join(`,`)??``;return`${e.mimeType}; codecs="${t}"`}function _t({state:e,owners:t}){let n=!1;return M([e,t]).subscribe(async([e,r])=>{if(n||!r.mediaSource)return;let i=!!e.selectedVideoTrackId,a=!!e.selectedAudioTrackId;if(!i&&!a)return;let o=i?F(e,`video`):null,s=a?F(e,`audio`):null;if(i&&(!o||!T(o)||!o.codecs?.length)||a&&(!s||!T(s)||!s.codecs?.length))return;n=!0;let c={};if(i&&o&&T(o)){let e=O(r.mediaSource,Q(o));c.videoBuffer=e,c.videoBufferActor=Z(e)}if(a&&s&&T(s)){let e=O(r.mediaSource,Q(s));c.audioBuffer=e,c.audioBufferActor=Z(e)}t.patch(c),await new Promise(e=>requestAnimationFrame(e))})}function $(e){if(!e?.selectionSets)return[];let t=e.selectionSets.find(e=>e.type===`text`);return t?.switchingSets?.[0]?.tracks?t.switchingSets[0].tracks:[]}function vt(e,t){return!!t.mediaElement&&!!$(e.presentation).length}function yt(e){return!e.textTracks}function bt(e){let t=document.createElement(`track`);return t.id=e.id,t.kind=e.kind,t.label=e.label,e.language&&(t.srclang=e.language),e.default&&(t.default=!0),t.src=e.url,t}function xt({state:e,owners:t}){let n=!1,r=[],i=M([e,t]).subscribe(([e,i])=>{if(n||!vt(e,i)||!yt(i))return;n=!0;let a=$(e.presentation);if(a.length===0)return;let o=new Map;for(let e of a){let t=bt(e);i.mediaElement.appendChild(t),o.set(e.id,t),r.push(t)}t.patch({textTracks:o})});return()=>{for(let e of r)e.remove();r=[],i()}}function St({state:e,owners:n}){let r,i=null,a=n.subscribe(n=>{let{mediaElement:a}=n;a===r||(i?.(),i=null,r=a,!a)||(i=t(a.textTracks,`change`,()=>{let t=Array.from(a.textTracks).find(e=>e.mode===`showing`&&(e.kind===`subtitles`||e.kind===`captions`))?.id||void 0,n=e.current;if(n.selectedTextTrackId!==t)if(t)e.patch({selectedTextTrackId:t});else{let t=n.selectedTextTrackId;if(t&&n.textBufferState?.[t]){let r={...n.textBufferState};delete r[t],e.patch({selectedTextTrackId:void 0,textBufferState:r})}else e.patch({selectedTextTrackId:void 0})}}))});return()=>{i?.(),a()}}function Ct(e){return!!e.textTracks&&e.textTracks.size>0}function wt({state:e,owners:t}){return M([e,t]).subscribe(([e,t])=>{if(!Ct(t))return;let n=e.selectedTextTrackId;for(let[e,r]of t.textTracks)e===n?r.track.mode=`showing`:r.track.mode=`hidden`})}function Tt(e,t){return!!(t.mediaSource&&e.presentation&&ue(e.presentation))}function Et(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 Dt(e,t){if(!Tt(e,t))return!1;let{mediaSource:n}=t,{presentation:r}=e;if(n.readyState!==`open`)return!1;let i=r.duration;return!Number.isFinite(i)||Number.isNaN(i)||i<=0?!1:Number.isNaN(n.duration)}function Ot(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 kt({state:e,owners:t}){let n=!1,r=M([e,t]).subscribe(async([e,t])=>{if(!Dt(e,t))return;let{mediaSource:r}=t;if(await Ot(t),n||r.readyState!==`open`)return;let i=e.presentation.duration,a=Et(t);a>i&&(i=a),r.duration=i});return()=>{n=!0,r()}}function At(e={}){let t=c({bandwidthState:{fastEstimate:0,fastTotalWeight:0,slowEstimate:0,slowTotalWeight:0,bytesSampled:0}}),n=c({}),r=ve(),i=[Se(t,n),He({state:t,owners:n,events:r}),Ce({state:t,events:r}),et({state:t,owners:n,events:r},{type:`video`,...e.initialBandwidth!==void 0&&{initialBandwidth:e.initialBandwidth}}),tt({state:t,owners:n,events:r},{type:`audio`,...e.preferredAudioLanguage!==void 0&&{preferredAudioLanguage:e.preferredAudioLanguage}}),nt({state:t,owners:n,events:r},{type:`text`,...e.preferredSubtitleLanguage!==void 0&&{preferredSubtitleLanguage:e.preferredSubtitleLanguage},...e.includeForcedTracks!==void 0&&{includeForcedTracks:e.includeForcedTracks},...e.enableDefaultTrack!==void 0&&{enableDefaultTrack:e.enableDefaultTrack}}),W({state:t,events:r},{type:`video`}),W({state:t,events:r},{type:`audio`}),W({state:t,events:r},{type:`text`}),qe({state:t}),ft({state:t,owners:n}),kt({state:t,owners:n}),_t({state:t,owners:n}),Ve({state:t,owners:n}),Te({state:t}),L({state:t,owners:n},{type:`video`}),L({state:t,owners:n},{type:`audio`}),lt({state:t,owners:n}),xt({state:t,owners:n}),wt({state:t,owners:n}),St({state:t,owners:n}),Be({state:t,owners:n})];return r.dispatch({type:`@@INITIALIZE@@`}),{state:t,owners:n,events:r,destroy:()=>{i.forEach(e=>e()),Pe()}}}var jt=class{#e;#t;#n=``;#r=null;constructor(e={}){this.#t=e,this.#e=At(e)}get engine(){return this.#e}attach(e){this.#e.owners.patch({mediaElement:e})}detach(){this.#i(),this.#e.owners.patch({mediaElement:void 0})}destroy(){this.#i(),this.#e.destroy()}get preload(){return this.#n}set preload(e){this.#n=e,e&&this.#e.state.patch({preload:e})}get src(){return this.#e.state.current.presentation?.url??``}set src(e){let t=this.#e.owners.current.mediaElement;this.#i(),this.#e.destroy(),this.#e=At(this.#t),this.#n&&this.#e.state.patch({preload:this.#n}),t&&this.#e.owners.patch({mediaElement:t}),e&&this.#e.state.patch({presentation:{url:e}})}play(){let{mediaElement:e}=this.#e.owners.current;return e?(this.#e.state.patch({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.current;e?.removeEventListener(`loadstart`,this.#r),this.#r=null}},Mt=class extends r(i(globalThis.HTMLElement??class{},{tag:`video`}),jt){},Nt=class extends n(Mt){static getTemplateHTML(e){let{src:t,...n}=e;return super.getTemplateHTML(n)}constructor(){super(),this.attach(this.target)}attributeChangedCallback(e,t,n){e!==`src`&&super.attributeChangedCallback(e,t,n),e===`src`&&t!==n&&(this.src=n??``),e===`preload`&&t!==n&&(this.preload=n??``)}},Pt=class extends Nt{static{this.tagName=`simple-hls-video`}};customElements.define(Pt.tagName,Pt);
2
2
  //# sourceMappingURL=simple-hls-video.js.map