diff --git a/CHANGELOG_CN.md b/CHANGELOG_CN.md index 2b48ea4e0..4fcf67609 100644 --- a/CHANGELOG_CN.md +++ b/CHANGELOG_CN.md @@ -8,7 +8,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - 新增 `option.proxy` 选项,用于代理第三方的 `video` 和 `canvas` - 新增 `artplayer-proxy-webav` 代理,来自 [bilibili/WebAV](https://github.com/bilibili/WebAV) -- 新增 `artplayer-proxy-libmedia` 代理,来自 [zhaohappy/libmedia](https://github.com/zhaohappy/libmedia) +- 新增 `option.thumbnails.scale`, 用于预览图缩放 +- 修复更改 `art.url` 不能触发 `autoPlayBack` 的 `bug`: [#797](https://github.com/zhw2590582/ArtPlayer/issues/797) ## [5.1.7] - 2024-8-15 diff --git a/README.md b/README.md index 9971f2fed..2216256bf 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,6 @@ var art = new Artplayer({ ## Proxys - [WebAV](https://artplayer.org/?libs=./uncompiled/artplayer-proxy-webav/index.js&example=webav) (WIP) -- [libmedia](https://artplayer.org/?libs=./uncompiled/artplayer-proxy-libmedia/index.js&example=libmedia) (WIP) ## Changelog diff --git a/docs/assets/example/index.js b/docs/assets/example/index.js index 638ada8ad..844dd018c 100644 --- a/docs/assets/example/index.js +++ b/docs/assets/example/index.js @@ -127,6 +127,7 @@ var art = new Artplayer({ url: '/assets/sample/thumbnails.png', number: 60, column: 10, + scale: 0.85, }, subtitle: { url: '/assets/sample/subtitle.srt', diff --git a/docs/assets/example/libmedia.js b/docs/assets/example/libmedia.js deleted file mode 100644 index c6e1e632c..000000000 --- a/docs/assets/example/libmedia.js +++ /dev/null @@ -1,11 +0,0 @@ -// From: https://github.com/zhaohappy/libmedia -// npm i artplayer-proxy-libmedia -// import artplayerProxyLibmedia from 'artplayer-proxy-libmedia'; - -var art = new Artplayer({ - container: '.artplayer-app', - url: '/assets/sample/video.mp4', - proxy: artplayerProxyLibmedia({ - // - }), -}); \ No newline at end of file diff --git a/docs/assets/example/mobile.js b/docs/assets/example/mobile.js index c2dc0176d..fcb3aa1d2 100644 --- a/docs/assets/example/mobile.js +++ b/docs/assets/example/mobile.js @@ -27,6 +27,7 @@ var art = new Artplayer({ url: '/assets/sample/thumbnails.png', number: 60, column: 10, + scale: 0.6 }, subtitle: { name: '中日双语', diff --git a/docs/assets/example/vast.js b/docs/assets/example/vast.js index a523125f1..ab9e75099 100644 --- a/docs/assets/example/vast.js +++ b/docs/assets/example/vast.js @@ -1,5 +1,12 @@ +// Depends on: +// https://glomex.github.io/vast-ima-player/ +// https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side + +// Google's IMA SDK are blocked by your Ad blocker. +// Please Turn Off Your Ad Blocker. + // npm i artplayer-plugin-vast -// import ArtplayerPluginVast from 'artplayer-plugin-vast'; +// import artplayerPluginVast from 'artplayer-plugin-vast'; var art = new Artplayer({ container: '.artplayer-app', @@ -7,8 +14,11 @@ var art = new Artplayer({ fullscreen: true, fullscreenWeb: true, plugins: [ - ArtplayerPluginVast({ - url: '/assets/sample/vast.xml', + artplayerPluginVast(({ playUrl, imaPlayer, ima }) => { + // Play the ad when the video is played + art.once('play', () => { + playUrl('https://artplayer.org/assets/vast/linear-ad.xml'); + }); }), ], }); \ No newline at end of file diff --git a/docs/assets/example/webav.js b/docs/assets/example/webav.js index 6f08dd11c..87babeb79 100644 --- a/docs/assets/example/webav.js +++ b/docs/assets/example/webav.js @@ -4,7 +4,27 @@ var art = new Artplayer({ container: '.artplayer-app', - url: '/assets/sample/video.mp4', + url: '/assets/sample/bbb-video.mp4', + volume: 0.5, + autoplay: false, + autoSize: false, + screenshot: true, + setting: true, + loop: true, + flip: true, + playbackRate: true, + aspectRatio: true, + fullscreen: true, + fullscreenWeb: true, + miniProgressBar: true, + autoPlayback: true, + thumbnails: { + url: '/assets/sample/bbb-sprite.jpg', + number: 121, + column: 11, + width: 128, + height: 72, + }, proxy: artplayerProxyWebAV({ // }), diff --git a/docs/assets/vast/linear-ad-1s.xml b/docs/assets/vast/linear-ad-1s.xml new file mode 100644 index 000000000..d6913d9b4 --- /dev/null +++ b/docs/assets/vast/linear-ad-1s.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/vast/linear-ad-2s.xml b/docs/assets/vast/linear-ad-2s.xml new file mode 100644 index 000000000..4798ffe93 --- /dev/null +++ b/docs/assets/vast/linear-ad-2s.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/vast/linear-ad.xml b/docs/assets/vast/linear-ad.xml new file mode 100644 index 000000000..9d65bc9d2 --- /dev/null +++ b/docs/assets/vast/linear-ad.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/vast/linear-video-1s.mp4 b/docs/assets/vast/linear-video-1s.mp4 new file mode 100644 index 000000000..50483aab3 Binary files /dev/null and b/docs/assets/vast/linear-video-1s.mp4 differ diff --git a/docs/assets/vast/linear-video-2s.mp4 b/docs/assets/vast/linear-video-2s.mp4 new file mode 100644 index 000000000..b5cddc3e2 Binary files /dev/null and b/docs/assets/vast/linear-video-2s.mp4 differ diff --git a/docs/assets/vast/linear-video.mp4 b/docs/assets/vast/linear-video.mp4 new file mode 100644 index 000000000..4b95f52cc Binary files /dev/null and b/docs/assets/vast/linear-video.mp4 differ diff --git a/docs/assets/vast/nonlinear-320x50.png b/docs/assets/vast/nonlinear-320x50.png new file mode 100644 index 000000000..8b428d446 Binary files /dev/null and b/docs/assets/vast/nonlinear-320x50.png differ diff --git a/docs/assets/vast/nonlinear-480x70.png b/docs/assets/vast/nonlinear-480x70.png new file mode 100644 index 000000000..43738b313 Binary files /dev/null and b/docs/assets/vast/nonlinear-480x70.png differ diff --git a/docs/assets/vast/nonlinear-728x90.png b/docs/assets/vast/nonlinear-728x90.png new file mode 100644 index 000000000..928d811f7 Binary files /dev/null and b/docs/assets/vast/nonlinear-728x90.png differ diff --git a/docs/assets/vast/nonlinear-ad.xml b/docs/assets/vast/nonlinear-ad.xml new file mode 100644 index 000000000..6bd0af23a --- /dev/null +++ b/docs/assets/vast/nonlinear-ad.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/vast/vast-waterfall.xml b/docs/assets/vast/vast-waterfall.xml new file mode 100644 index 000000000..4603dca18 --- /dev/null +++ b/docs/assets/vast/vast-waterfall.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/vast/vmap.xml b/docs/assets/vast/vmap.xml new file mode 100644 index 000000000..130c861fd --- /dev/null +++ b/docs/assets/vast/vmap.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/compiled/artplayer-proxy-webav.js b/docs/compiled/artplayer-proxy-webav.js new file mode 100644 index 000000000..a9ed7c4a7 --- /dev/null +++ b/docs/compiled/artplayer-proxy-webav.js @@ -0,0 +1,8 @@ + +/*! + * artplayer-proxy-webav.js v1.0.0 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2024 Harvey Zack + * Released under the MIT License. + */ +!function(t,e,r,s,n){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof a[s]&&a[s],h=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(e,r){if(!h[e]){if(!t[e]){var n="function"==typeof a[s]&&a[s];if(!r&&n)return n(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var d=Error("Cannot find module '"+e+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(r){var s=t[e][1][r];return null!=s?s:r},p.cache={};var f=h[e]=new u.Module(e);t[e][0].call(f.exports,p,f,f.exports,this)}return h[e].exports;function p(t){var e=p.resolve(t);return!1===e?{}:u(e)}}u.isParcelRequire=!0,u.Module=function(t){this.id=t,this.bundle=u,this.exports={}},u.modules=t,u.cache=h,u.parent=o,u.register=function(e,r){t[e]=[function(t,e){e.exports=r},{}]},Object.defineProperty(u,"root",{get:function(){return a[s]}}),a[s]=u;for(var d=0;da);var n=t("@webav/av-cliper");function a(){return t=>{let e,r;let{option:s,constructor:a}=t,{createElement:o,def:h}=a.utils,l=o("canvas"),u=l.getContext("2d"),d=null,f=null,p=null,c=null,m=0,g={playing:!1,duration:0,videoWidth:0,videoHeight:0,currentTime:0,playbackRate:1,paused:!0,ended:!1,readyState:0,buffered:0,muted:s.muted,volume:s.volume,autoplay:s.autoplay};function y(){p&&(clearInterval(p),p=null),f&&(f.stop(),f=null)}function _(){if(r){let t=g.muted?0:g.volume;r.gain.setValueAtTime(t,e.currentTime)}}async function b(){e||(r=(e=new AudioContext).createGain()).connect(e.destination);let s=1e6*g.currentTime,n=0,a=!0,o=performance.now();async function h(){if(!g.playing)return;let h=performance.now(),l=h-o;o=h,null!==c?(s=1e6*c,c=null,a=!0):s+=1e3*l*g.playbackRate,g.currentTime=s/1e6;let{state:p,video:m,audio:_}=await d.tick(Math.round(s));if(t.emit("video:timeupdate",{type:"timeupdate"}),"done"===p){y(),g.ended=!0,g.playing=!1,g.paused=!0,t.emit("video:ended",{type:"ended"});return}if(m&&"success"===p&&(u.clearRect(0,0,g.videoWidth,g.videoHeight),u.drawImage(m,0,0,g.videoWidth,g.videoHeight),m.close()),a)a=!1;else if(_?.[0]?.length){let t=e.createBuffer(2,_[0].length,48e3);t.copyToChannel(_[0],0),t.copyToChannel(_[1],1),(f=e.createBufferSource()).buffer=t,f.connect(r),f.playbackRate.setValueAtTime(g.playbackRate,e.currentTime),n=Math.max(e.currentTime,n),f.start(n),n+=t.duration/g.playbackRate}}y(),_(),g.playing=!0,g.paused=!1,p=setInterval(h,1e3/60)}async function w(t){let{video:e}=await d.tick(1e6*t);e&&(u.clearRect(0,0,l.width,l.height),u.drawImage(e,0,0,l.width,l.height),e.close())}function v(){let e=t.template?.$player;if(!e||s.autoSize)return;let r=l.videoWidth/l.videoHeight,n=e.clientWidth,a=e.clientHeight,o=0,h=0;n/a>r?o=(n-a*r)/2:h=(a-n/r)/2,Object.assign(l.style,{padding:`${h}px ${o}px`})}async function S(){if(!await (0,n.Combinator).isSupported())throw t.notice.show="WebAV is not supported",Error("WebAV is not supported");y(),Object.assign(g,{playing:!1,duration:0,videoWidth:0,videoHeight:0,currentTime:0,playbackRate:1,paused:!0,ended:!1,readyState:0,buffered:0,muted:s.muted,volume:s.volume,autoplay:s.autoplay}),d&&(d.destroy(),t.emit("video:abort",{type:"abort"}),t.emit("video:emptied",{type:"emptied"}));try{await Promise.resolve(),t.emit("video:loadstart",{type:"loadstart"});let e=await fetch(s.url);if(!e.body)throw Error("No response body");d=new n.MP4Clip(e.body)}catch(e){throw t.emit("video:error",e),e}let e=await d.ready;Object.assign(g,{readyState:4,duration:Math.round(e.duration/1e6),videoWidth:e.width,videoHeight:e.height}),l.width=g.videoWidth,l.height=g.videoHeight,await w(.1),v(),t.emit("video:loadedmetadata",{type:"loadedmetadata"}),t.emit("video:durationchange",{type:"durationchange"}),t.emit("video:loadeddata",{type:"loadeddata"}),t.emit("video:canplay",{type:"canplay"}),t.emit("video:canplaythrough",{type:"canplaythrough"})}return h(l,"textTracks",{get:()=>[]}),h(l,"duration",{get:()=>g.duration}),h(l,"videoWidth",{get:()=>g.videoWidth}),h(l,"videoHeight",{get:()=>g.videoHeight}),h(l,"volume",{get:()=>g.volume,set:e=>{g.volume=Math.max(0,Math.min(1,e)),_(),t.emit("video:volumechange",{type:"volumechange"})}}),h(l,"currentTime",{get:()=>g.currentTime,set:e=>{let r=Math.max(0,Math.min(e,g.duration)),s=performance.now();s-m>16&&(m=s,c=r,g.currentTime=r,g.playing||w(r),t.emit("video:timeupdate",{type:"timeupdate"}))}}),h(l,"autoplay",{get:()=>g.autoplay,set:t=>{g.autoplay=t,t&&g.readyState>=4&&l.play()}}),h(l,"src",{get:()=>s.url,set:t=>{s.url=t,S().then(()=>{s.autoplay&&l.play()})}}),h(l,"playbackRate",{get:()=>g.playbackRate,set:r=>{g.playbackRate=Math.max(.25,Math.min(2,r)),f&&f.playbackRate.setValueAtTime(g.playbackRate,e.currentTime),t.emit("video:ratechange",{type:"ratechange"})}}),h(l,"playing",{get:()=>g.playing}),h(l,"paused",{get:()=>g.paused}),h(l,"ended",{get:()=>g.ended}),h(l,"readyState",{get:()=>g.readyState}),h(l,"muted",{get:()=>g.muted,set:e=>{g.muted=e,_(),t.emit("video:volumechange",{type:"volumechange"})}}),h(l,"buffered",{get:()=>({start:()=>0,end:()=>g.buffered,length:1})}),h(l,"play",{value:async()=>{await b(),t.emit("video:play",{type:"play"}),t.emit("video:playing",{type:"playing"})}}),h(l,"pause",{value:()=>{y(),g.playing=!1,g.paused=!0,t.emit("video:pause",{type:"pause"})}}),t.on("destroy",()=>{y(),d&&d.destroy()}),t.on("resize",v),l}}"undefined"!=typeof window&&(window.artplayerProxyWebAV=a)},{"@webav/av-cliper":"b01Rz","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],b01Rz:[function(t,e,r){var s,n,a,o,h,l,u,d,f,p,c,m,g,y,_,b,w,v,S,E,U,x,T,A,C,I,B,k,F,R,P,z,L,D,M,O,N,G,Y,W,V,H,X,j,Z,$,K,q,Q,J,tt,te,ti,tr,ts,tn,ta,to,th,tl,tu,td,tf,tp,tc,tm,tg,ty,t_,tb,tw,tv,tS,tE,tU,tx,tT,tA,tC,tI,tB,tk,tF,tR,tP,tz,tL,tD,tM,tO,tN,tG,tY,tW,tV,tH,tX,tj,tZ,t$,tK,tq,tQ,tJ,t0,t1,t2,t3,t6,t8,t4,t5,t9,t7,et,ee,ei,er,es,en,ea,eo,eh,el,eu,ed=t("@parcel/transformer-js/src/esmodule-helpers.js");ed.defineInteropFlag(r),ed.export(r,"AudioClip",()=>iX),ed.export(r,"Combinator",()=>rB),ed.export(r,"DEFAULT_AUDIO_CONF",()=>iC),ed.export(r,"EmbedSubtitlesClip",()=>iQ),ed.export(r,"EventTool",()=>i0),ed.export(r,"ImgClip",()=>iV),ed.export(r,"Log",()=>e5),ed.export(r,"MP4Clip",()=>iz),ed.export(r,"MediaStreamClip",()=>iK),ed.export(r,"OffscreenSprite",()=>rT),ed.export(r,"Rect",()=>rE),ed.export(r,"VisibleSprite",()=>rA),ed.export(r,"adjustAudioDataVolume",()=>iy),ed.export(r,"audioResample",()=>iw),ed.export(r,"autoReadStream",()=>iE),ed.export(r,"concatAudioClip",()=>ij),ed.export(r,"concatFloat32Array",()=>ip),ed.export(r,"concatPCMFragments",()=>ic),ed.export(r,"createChromakey",()=>rv),ed.export(r,"createEl",()=>eE),ed.export(r,"createHLSLoader",()=>rm),ed.export(r,"decodeImg",()=>i_),ed.export(r,"extractPCM4AudioBuffer",()=>ig),ed.export(r,"extractPCM4AudioData",()=>im),ed.export(r,"fastConcatMP4",()=>rt),ed.export(r,"file2stream",()=>i9),ed.export(r,"fixFMP4Duration",()=>ri),ed.export(r,"mixinMP4AndAudio",()=>rr),ed.export(r,"mixinPCM",()=>ib),ed.export(r,"recodemux",()=>i4),ed.export(r,"renderTxt2Img",()=>eU),ed.export(r,"renderTxt2ImgBitmap",()=>ex),ed.export(r,"ringSliceFloat32Array",()=>iS),ed.export(r,"workerTimer",()=>is);var ef=arguments[3],ep=t("718a311db185ef08").Buffer,ec=Object.defineProperty,em=t=>{throw TypeError(t)},eg=(t,e,r)=>e in t?ec(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ey=(t,e,r)=>eg(t,"symbol"!=typeof e?e+"":e,r),e_=(t,e,r)=>e.has(t)||em("Cannot "+r),eb=(t,e,r)=>(e_(t,e,"read from private field"),r?r.call(t):e.get(t)),ew=(t,e,r)=>e.has(t)?em("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),ev=(t,e,r,s)=>(e_(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r),eS=(t,e,r)=>(e_(t,e,"access private method"),r);function eE(t){return document.createElement(t)}function eU(t,e){let r=eE("pre");r.style.cssText=`margin: 0; ${e}; visibility: hidden; position: fixed;`,r.textContent=t,document.body.appendChild(r);let{width:s,height:n}=r.getBoundingClientRect();r.remove(),r.style.visibility="visible";let a=new Image;a.width=s,a.height=n;let o=`
${r.outerHTML}
`.replace(/\t/g,"").replace(/#/g,"%23");return a.src=`data:image/svg+xml;charset=utf-8,${o}`,a}async function ex(t,e){let r=eU(t,e);await new Promise(t=>{r.onload=t});let s=new OffscreenCanvas(r.width,r.height),n=s.getContext("2d");return null==n||n.drawImage(r,0,0,r.width,r.height),await createImageBitmap(s)}var eT=t=>{throw TypeError(t)},eA=(t,e,r)=>e.has(t)||eT("Cannot "+r),eC=(t,e,r)=>(eA(t,e,"read from private field"),r?r.call(t):e.get(t)),eI=(t,e,r)=>e.has(t)?eT("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),eB=(t,e,r,s)=>(eA(t,e,"write to private field"),e.set(t,r),r);let ek="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHUobil7aWYobj09PSIvIilyZXR1cm57cGFyZW50Om51bGwsbmFtZToiIn07Y29uc3QgZT1uLnNwbGl0KCIvIikuZmlsdGVyKGk9PmkubGVuZ3RoPjApO2lmKGUubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiSW52YWxpZCBwYXRoIik7Y29uc3QgYT1lW2UubGVuZ3RoLTFdLHI9Ii8iK2Uuc2xpY2UoMCwtMSkuam9pbigiLyIpO3JldHVybntuYW1lOmEscGFyZW50OnJ9fWFzeW5jIGZ1bmN0aW9uIHcobixlKXtjb25zdHtwYXJlbnQ6YSxuYW1lOnJ9PXUobik7aWYoYT09bnVsbClyZXR1cm4gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7Y29uc3QgaT1hLnNwbGl0KCIvIikuZmlsdGVyKHQ9PnQubGVuZ3RoPjApO3RyeXtsZXQgdD1hd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTtmb3IoY29uc3QgcyBvZiBpKXQ9YXdhaXQgdC5nZXREaXJlY3RvcnlIYW5kbGUocyx7Y3JlYXRlOmUuY3JlYXRlfSk7aWYoZS5pc0ZpbGUpcmV0dXJuIGF3YWl0IHQuZ2V0RmlsZUhhbmRsZShyLHtjcmVhdGU6ZS5jcmVhdGV9KX1jYXRjaCh0KXtpZih0Lm5hbWU9PT0iTm90Rm91bmRFcnJvciIpcmV0dXJuIG51bGw7dGhyb3cgdH19Y29uc3QgZj17fTtzZWxmLm9ubWVzc2FnZT1hc3luYyBuPT57dmFyIGk7Y29uc3R7ZXZ0VHlwZTplLGFyZ3M6YX09bi5kYXRhO2xldCByPWZbYS5maWxlSWRdO3RyeXtsZXQgdDtjb25zdCBzPVtdO2lmKGU9PT0icmVnaXN0ZXIiKXtjb25zdCBsPWF3YWl0IHcoYS5maWxlUGF0aCx7Y3JlYXRlOiEwLGlzRmlsZTohMH0pO2lmKGw9PW51bGwpdGhyb3cgRXJyb3IoYG5vdCBmb3VuZCBmaWxlOiAke2EuZmlsZUlkfWApO3I9YXdhaXQgbC5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKHttb2RlOmEubW9kZX0pLGZbYS5maWxlSWRdPXJ9ZWxzZSBpZihlPT09ImNsb3NlIilhd2FpdCByLmNsb3NlKCksZGVsZXRlIGZbYS5maWxlSWRdO2Vsc2UgaWYoZT09PSJ0cnVuY2F0ZSIpYXdhaXQgci50cnVuY2F0ZShhLm5ld1NpemUpO2Vsc2UgaWYoZT09PSJ3cml0ZSIpe2NvbnN0e2RhdGE6bCxvcHRzOm99PW4uZGF0YS5hcmdzO3Q9YXdhaXQgci53cml0ZShsLG8pfWVsc2UgaWYoZT09PSJyZWFkIil7Y29uc3R7b2Zmc2V0Omwsc2l6ZTpvfT1uLmRhdGEuYXJncyxnPW5ldyBVaW50OEFycmF5KG8pLGQ9YXdhaXQgci5yZWFkKGcse2F0Omx9KSxjPWcuYnVmZmVyO3Q9ZD09PW8/YzooKGk9Yy50cmFuc2Zlcik9PW51bGw/dm9pZCAwOmkuY2FsbChjLGQpKT8/Yy5zbGljZSgwLGQpLHMucHVzaCh0KX1lbHNlIGU9PT0iZ2V0U2l6ZSI/dD1hd2FpdCByLmdldFNpemUoKTplPT09ImZsdXNoIiYmYXdhaXQgci5mbHVzaCgpO3NlbGYucG9zdE1lc3NhZ2Uoe2V2dFR5cGU6ImNhbGxiYWNrIixjYklkOm4uZGF0YS5jYklkLHJldHVyblZhbDp0fSxzKX1jYXRjaCh0KXtjb25zdCBzPXQ7c2VsZi5wb3N0TWVzc2FnZSh7ZXZ0VHlwZToidGhyb3dFcnJvciIsY2JJZDpuLmRhdGEuY2JJZCxlcnJNc2c6cy5uYW1lKyI6ICIrcy5tZXNzYWdlK2AKYCtKU09OLnN0cmluZ2lmeShuLmRhdGEpfSl9fX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZnMtd29ya2VyLUY0UldscWNfLmpzLm1hcAo=",eF="u">typeof self&&self.Blob&&new Blob([Uint8Array.from(atob(ek),t=>t.charCodeAt(0))],{type:"text/javascript;charset=utf-8"});function eR(t){let e;try{if(!(e=eF&&(self.URL||self.webkitURL).createObjectURL(eF)))throw"";let r=new Worker(e,{name:null==t?void 0:t.name});return r.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),r}catch{return new Worker("data:text/javascript;base64,"+ek,{name:null==t?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}async function eP(t,e,r){let s=function(){if(ez.length<3){let t=function(){let t=new eR,e=0,r={};return t.onmessage=({data:t})=>{var e,s;"callback"===t.evtType?null==(e=r[t.cbId])||e.resolve(t.returnVal):"throwError"===t.evtType&&(null==(s=r[t.cbId])||s.reject(Error(t.errMsg))),delete r[t.cbId]},async function(s,n,a=[]){e+=1;let o=new Promise((t,s)=>{r[e]={resolve:t,reject:s}});return t.postMessage({cbId:e,evtType:s,args:n},a),o}}();return ez.push(t),t}{let t=ez[eL];return eL=(eL+1)%ez.length,t}}();return await s("register",{fileId:t,filePath:e,mode:r}),{read:async(e,r)=>await s("read",{fileId:t,offset:e,size:r}),write:async(e,r)=>await s("write",{fileId:t,data:e,opts:r},[ArrayBuffer.isView(e)?e.buffer:e]),close:async()=>await s("close",{fileId:t}),truncate:async e=>await s("truncate",{fileId:t,newSize:e}),getSize:async()=>await s("getSize",{fileId:t}),flush:async()=>await s("flush",{fileId:t})}}let ez=[],eL=0;function eD(t){if("/"===t)return{parent:null,name:""};let e=t.split("/").filter(t=>t.length>0);if(0===e.length)throw Error("Invalid path");return{name:e[e.length-1],parent:"/"+e.slice(0,-1).join("/")}}async function eM(t,e){let{parent:r,name:s}=eD(t);if(null==r)return await navigator.storage.getDirectory();let n=r.split("/").filter(t=>t.length>0);try{let t=await navigator.storage.getDirectory();for(let r of n)t=await t.getDirectoryHandle(r,{create:e.create});return e.isFile?await t.getFileHandle(s,{create:e.create}):await t.getDirectoryHandle(s,{create:e.create})}catch(t){if("NotFoundError"===t.name)return null;throw t}}async function eO(t){let{parent:e,name:r}=eD(t);if(null==e){let t=await navigator.storage.getDirectory();for await(let e of t.keys())await t.removeEntry(e,{recursive:!0});return}let s=await eM(e,{create:!1,isFile:!1});null!=s&&await s.removeEntry(r,{recursive:!0})}function eN(t,e){return`${t}/${e}`.replace("//","/")}function eG(t){return new eY(t)}class eY{constructor(t){eI(this,g),eI(this,y),eI(this,_),eB(this,g,t);let{parent:e,name:r}=eD(t);eB(this,y,r),eB(this,_,e)}get kind(){return"dir"}get name(){return eC(this,y)}get path(){return eC(this,g)}get parent(){return null==eC(this,_)?null:eG(eC(this,_))}async create(){return await eM(eC(this,g),{create:!0,isFile:!1}),eG(eC(this,g))}async exists(){return await eM(eC(this,g),{create:!1,isFile:!1}) instanceof FileSystemDirectoryHandle}async remove(){for(let t of(await this.children()))try{await t.remove()}catch(t){console.warn(t)}try{await eO(eC(this,g))}catch(t){console.warn(t)}}async children(){let t=await eM(eC(this,g),{create:!1,isFile:!1});if(null==t)return[];let e=[];for await(let r of t.values())e.push(("file"===r.kind?eV:eG)(eN(eC(this,g),r.name)));return e}async copyTo(t){if(!await this.exists())throw Error(`dir ${this.path} not exists`);let e=await t.exists()?eG(eN(t.path,this.name)):t;return await e.create(),await Promise.all((await this.children()).map(t=>t.copyTo(e))),e}async moveTo(t){let e=await this.copyTo(t);return await this.remove(),e}}g=/* @__PURE__ */new WeakMap,y=/* @__PURE__ */new WeakMap,_=/* @__PURE__ */new WeakMap;let eW=/* @__PURE__ */new Map;function eV(t,e="rw"){if("rw"===e){let r=eW.get(t)??new e$(t,e);return eW.set(t,r),r}return new e$(t,e)}async function eH(t,e,r={overwrite:!0}){if(e instanceof e$){await eH(t,await e.stream(),r);return}let s=await (t instanceof e$?t:eV(t,"rw")).createWriter();try{if(r.overwrite&&await s.truncate(0),e instanceof ReadableStream){let t=e.getReader();for(;;){let{done:e,value:r}=await t.read();if(e)break;await s.write(r)}}else await s.write(e)}catch(t){throw t}finally{await s.close()}}let eX=0,ej=()=>++eX,eZ=class t{constructor(t,e){eI(this,b),eI(this,w),eI(this,v),eI(this,S),eI(this,E),eI(this,U,0),eI(this,x,/* @__PURE__ */(()=>{let t=null;return()=>(eB(this,U,eC(this,U)+1),t??(t=new Promise(async(e,r)=>{try{let r=await eP(eC(this,E),eC(this,b),eC(this,S));e([r,async()=>{eB(this,U,eC(this,U)-1),eC(this,U)>0||(t=null,await r.close())}])}catch(t){r(t)}})))})()),eI(this,T,!1),eB(this,E,ej()),eB(this,b,t),eB(this,S,{r:"read-only",rw:"readwrite","rw-unsafe":"readwrite-unsafe"}[e]);let{parent:r,name:s}=eD(t);eB(this,v,s),eB(this,w,r)}get kind(){return"file"}get path(){return eC(this,b)}get name(){return eC(this,v)}get parent(){return null==eC(this,w)?null:eG(eC(this,w))}async createWriter(){if("read-only"===eC(this,S))throw Error("file is read-only");if(eC(this,T))throw Error("Other writer have not been closed");eB(this,T,!0);let t=new TextEncoder,[e,r]=await eC(this,x).call(this),s=await e.getSize(),n=!1;return{write:async(r,a={})=>{if(n)throw Error("Writer is closed");let o="string"==typeof r?t.encode(r):r,h=a.at??s;return s=h+o.byteLength,await e.write(o,{at:h})},truncate:async t=>{if(n)throw Error("Writer is closed");await e.truncate(t),s>t&&(s=t)},flush:async()=>{if(n)throw Error("Writer is closed");await e.flush()},close:async()=>{if(n)throw Error("Writer is closed");n=!0,eB(this,T,!1),await r()}}}async createReader(){let[t,e]=await eC(this,x).call(this),r=!1,s=0;return{read:async(e,n={})=>{if(r)throw Error("Reader is closed");let a=n.at??s,o=await t.read(a,e);return s=a+o.byteLength,o},getSize:async()=>{if(r)throw Error("Reader is closed");return await t.getSize()},close:async()=>{r||(r=!0,await e())}}}async text(){return new TextDecoder().decode(await this.arrayBuffer())}async arrayBuffer(){let t=await eM(eC(this,b),{create:!1,isFile:!0});return null==t?new ArrayBuffer(0):(await t.getFile()).arrayBuffer()}async stream(){let t=await this.getOriginFile();return null==t?new ReadableStream({pull:t=>{t.close()}}):t.stream()}async getOriginFile(){var t;return null==(t=await eM(eC(this,b),{create:!1,isFile:!0}))?void 0:t.getFile()}async getSize(){let t=await eM(eC(this,b),{create:!1,isFile:!0});return null==t?0:(await t.getFile()).size}async exists(){return await eM(eC(this,b),{create:!1,isFile:!0}) instanceof FileSystemFileHandle}async remove(){if(eC(this,U))throw Error("exists unclosed reader/writer");await eO(eC(this,b))}async copyTo(e){if(!await this.exists())throw Error(`file ${this.path} not exists`);if(e instanceof t)return eV(e.path)===this?this:(await eH(e.path,this),eV(e.path));if(e instanceof eY)return await this.copyTo(eV(eN(e.path,this.name)));throw Error("Illegal target type")}async moveTo(t){let e=await this.copyTo(t);return await this.remove(),e}};b=/* @__PURE__ */new WeakMap,w=/* @__PURE__ */new WeakMap,v=/* @__PURE__ */new WeakMap,S=/* @__PURE__ */new WeakMap,E=/* @__PURE__ */new WeakMap,U=/* @__PURE__ */new WeakMap,x=/* @__PURE__ */new WeakMap,T=/* @__PURE__ */new WeakMap;let e$=eZ,eK="/.opfs-tools-temp-dir";async function eq(t){try{if("file"===t.kind){if(!await t.exists())return!0;let e=await t.createWriter();await e.truncate(0),await e.close(),await t.remove()}else await t.remove();return!0}catch(t){return console.warn(t),!1}}let eQ=[],eJ=!1;async function e0(){if(null==globalThis.localStorage)return;let t="OPFS_TOOLS_EXPIRES_TMP_FILES";eJ||(eJ=!0,globalThis.addEventListener("unload",()=>{0!==eQ.length&&localStorage.setItem(t,`${localStorage.getItem(t)??""},${eQ.join(",")}`)}));let e=localStorage.getItem(t)??"";for(let t of e.split(","))0!==t.length&&await eq(eV(`${eK}/${t}`))&&(e=e.replace(t,""));localStorage.setItem(t,e.replace(/,{2,}/g,","))}function e1(){let t=`${Math.random().toString().slice(2)}-${Date.now()}`;return eQ.push(t),eV(`${eK}/${t}`)}!async function(){var t;!0===globalThis.__opfs_tools_tmpfile_init__||(globalThis.__opfs_tools_tmpfile_init__=!0,null==globalThis.FileSystemDirectoryHandle||null==globalThis.FileSystemFileHandle||(null==(t=globalThis.navigator)?void 0:t.storage.getDirectory)==null||(setInterval(async()=>{for(let t of(await eG(eK).children())){let e=/^\d+-(\d+)$/.exec(t.name);(null==e||Date.now()-Number(e[1])>2592e5)&&await eq(t)}},6e4),await e0()))}();let e2=1,e3=e1(),e6=null,e8=["debug","info","warn","error"].reduce((t,e,r)=>Object.assign(t,{[e]:(...t)=>{e2<=r&&(console[e](...t),null==e6||e6.write(`[${e}][${function(){let t=/* @__PURE__ */new Date;return`${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}.${t.getMilliseconds()}`}()}] ${t.map(t=>t instanceof Error?String(t):"object"==typeof t?JSON.stringify(t,(t,e)=>e instanceof Error?String(e):e):String(t)).join(" ")} `))}}),{}),e4=/* @__PURE__ */new Map,e5={setLogLevel:t=>{e2=e4.get(t)??1},...e8,create:t=>Object.fromEntries(Object.entries(e8).map(([e,r])=>[e,(...e)=>r(t,...e)])),dump:async()=>(await e7,await (null==e6?void 0:e6.flush()),await e3.text())};async function e9(){try{e6=await e3.createWriter(),e5.info(navigator.userAgent),e5.info("date: "+/* @__PURE__ */new Date().toLocaleDateString())}catch(t){if(!(t instanceof Error))throw t;if(t.message.includes("createSyncAccessHandle is not a function"))console.warn(t);else throw t}}e4.set(e5.debug,0),e4.set(e5.info,1),e4.set(e5.warn,2),e4.set(e5.error,3);let e7=null==globalThis.navigator?null:e9(),it=()=>{let t;self.onmessage=e=>{"start"===e.data.event&&(self.clearInterval(t),t=self.setInterval(()=>{self.postMessage({})},16.6)),"stop"===e.data.event&&self.clearInterval(t)}},ie=/* @__PURE__ */new Map,ii=1,ir=null;null!=globalThis.Worker&&((ir=(()=>{let t=new Blob([`(${it.toString()})()`]);return new Worker(URL.createObjectURL(t))})()).onmessage=()=>{for(let[t,e]of(ii+=1,ie))if(ii%t==0)for(let t of e)t()});let is=(t,e)=>{let r=Math.round(e/16.6),s=ie.get(r)??/* @__PURE__ */new Set;return s.add(t),ie.set(r,s),1===ie.size&&1===s.size&&(null==ir||ir.postMessage({event:"start"})),()=>{s.delete(t),0===s.size&&ie.delete(r),0===ie.size&&(ii=0,null==ir||ir.postMessage({event:"stop"}))}};class ia{constructor(t,e,r){var s;this.length_=t,this.scaleFactor_=(t-1)/e,this.interpolate=this.cubic,"point"===r.method?this.interpolate=this.point:"linear"===r.method?this.interpolate=this.linear:"sinc"===r.method&&(this.interpolate=this.sinc),this.tangentFactor_=1-Math.max(0,Math.min(1,r.tension||0)),this.sincFilterSize_=r.sincFilterSize||1,this.kernel_=(s=r.sincWindow||io,function(t){return(0===t?1:Math.sin(Math.PI*t)/(Math.PI*t))*s(t)})}point(t,e){return this.getClippedInput_(Math.round(this.scaleFactor_*t),e)}linear(t,e){let r=Math.floor(t=this.scaleFactor_*t);return(1-(t-=r))*this.getClippedInput_(r,e)+t*this.getClippedInput_(r+1,e)}cubic(t,e){let r=Math.floor(t=this.scaleFactor_*t),s=[this.getTangent_(r,e),this.getTangent_(r+1,e)],n=[this.getClippedInput_(r,e),this.getClippedInput_(r+1,e)],a=(t-=r)*t,o=t*a;return(2*o-3*a+1)*n[0]+(o-2*a+t)*s[0]+(-2*o+3*a)*n[1]+(o-a)*s[1]}sinc(t,e){let r=Math.floor(t=this.scaleFactor_*t),s=r-this.sincFilterSize_+1,n=r+this.sincFilterSize_,a=0;for(let r=s;r<=n;r++)a+=this.kernel_(t-r)*this.getClippedInput_(r,e);return a}getTangent_(t,e){return this.tangentFactor_*(this.getClippedInput_(t+1,e)-this.getClippedInput_(t-1,e))/2}getClippedInput_(t,e){return 0<=t&&tt.length).reduce((t,e)=>t+e)),r=0;for(let s of t)e.set(s,r),r+=s.length;return e}function ic(t){let e=[];for(let r=0;rnew Float32Array(r));for(let n=0;nt.getChannelData(r))}function iy(t,e){let r=new Float32Array(ip(im(t))).map(t=>t*e),s=new AudioData({sampleRate:t.sampleRate,numberOfChannels:t.numberOfChannels,timestamp:t.timestamp,format:t.format,numberOfFrames:t.numberOfFrames,data:r});return t.close(),s}async function i_(t,e){var r;let s=new ImageDecoder({type:e,data:t});await Promise.all([s.completed,s.tracks.ready]);let n=(null==(r=s.tracks.selectedTrack)?void 0:r.frameCount)??1,a=[];for(let t=0;t{var e;return(null==(e=t[0])?void 0:e.length)??0})),n=new Float32Array(2*s);for(let a=0;anew Float32Array(0));if(0===s)return n;let a=Math.max(...t.map(t=>t.length));if(0===a)return n;if(null==globalThis.OfflineAudioContext)return t.map(t=>new Float32Array(function(t,e,r,s={}){let n=(r-e)/e+1,a=new Float64Array(t.length*n);s.method=s.method||"cubic";let o=new ia(t.length,a.length,{method:s.method,tension:s.tension||0,sincFilterSize:s.sincFilterSize||6,sincWindow:s.sincWindow||void 0});if(void 0===s.LPF&&(s.LPF=ih[s.method]),s.LPF){s.LPFType=s.LPFType||"IIR";let n=iu[s.LPFType];r>e?function(t,e,r,s){for(let n=0,a=e.length;n=0;t--)e[t]=s.filter(e[t])}(t,a,o,new n(s.LPFOrder||il[s.LPFType],r,e/2)):function(t,e,r,s){for(let e=0,r=t.length;e=0;e--)t[e]=s.filter(t[e]);id(t,e,r)}(t,a,o,new n(s.LPFOrder||il[s.LPFType],e,r/2))}else id(t,a,o);return a}(t,e,r.rate,{method:"sinc",LPF:!1})));let o=new globalThis.OfflineAudioContext(r.chanCount,a*r.rate/e,r.rate),h=o.createBufferSource(),l=o.createBuffer(s,a,e);return t.forEach((t,e)=>l.copyToChannel(t,e)),h.buffer=l,h.connect(o.destination),h.start(),ig(await o.startRendering())}function iv(t){return new Promise(e=>{let r=is(()=>{r(),e()},t)})}function iS(t,e,r){let s=r-e,n=new Float32Array(s),a=0;for(;a{r=!0}}var iU="u">typeof globalThis?globalThis:"u">typeof window?window:"u">typeof ef?ef:"u">typeof self?self:{};function ix(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var iT={};(s=/* @__PURE__ */new Date,n=4,a={setLogLevel:function(t){t==this.debug?n=1:t==this.info?n=2:t==this.warn?n=3:(this.error,n=4)},debug:function(t,e){void 0===console.debug&&(console.debug=console.log),1>=n&&console.debug("["+a.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)},log:function(t,e){this.debug(t.msg)},info:function(t,e){2>=n&&console.info("["+a.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)},warn:function(t,e){3>=n&&console.warn("["+a.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)},error:function(t,e){4>=n&&console.error("["+a.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)}}).getDurationString=function(t,e){function r(t,e){for(var r=(""+t).split(".");r[0].length0))return"(empty)";for(var r="",s=0;s0&&(r+=","),r+="["+a.getDurationString(t.start(s))+","+a.getDurationString(t.end(s))+"]";return r},iT.Log=a,(o=function(t){if(t instanceof ArrayBuffer)this.buffer=t,this.dataview=new DataView(t);else throw"Needs an array buffer";this.position=0}).prototype.getPosition=function(){return this.position},o.prototype.getEndPosition=function(){return this.buffer.byteLength},o.prototype.getLength=function(){return this.buffer.byteLength},o.prototype.seek=function(t){var e=Math.max(0,Math.min(this.buffer.byteLength,t));return this.position=isNaN(e)||!isFinite(e)?0:e,!0},o.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},o.prototype.readAnyInt=function(t,e){var r=0;if(this.position+t<=this.buffer.byteLength){switch(t){case 1:r=e?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:r=e?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(e)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16|this.dataview.getUint8(this.position+1)<<8|this.dataview.getUint8(this.position+2);break;case 4:r=e?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(e)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32|this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+t}return this.position+=t,r}throw"Not enough bytes in buffer"},o.prototype.readUint8=function(){return this.readAnyInt(1,!1)},o.prototype.readUint16=function(){return this.readAnyInt(2,!1)},o.prototype.readUint24=function(){return this.readAnyInt(3,!1)},o.prototype.readUint32=function(){return this.readAnyInt(4,!1)},o.prototype.readUint64=function(){return this.readAnyInt(8,!1)},o.prototype.readString=function(t){if(this.position+t<=this.buffer.byteLength){for(var e="",r=0;rthis._byteLength&&(this._byteLength=e);return}for(r<1&&(r=1);e>r;)r*=2;var s=new ArrayBuffer(r),n=new Uint8Array(this._buffer);new Uint8Array(s,0,n.length).set(n),this.buffer=s,this._byteLength=e}},h.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var t=new ArrayBuffer(this._byteLength),e=new Uint8Array(t),r=new Uint8Array(this._buffer,0,e.length);e.set(r),this.buffer=t}},h.BIG_ENDIAN=!1,h.LITTLE_ENDIAN=!0,h.prototype._byteLength=0,Object.defineProperty(h.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(h.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(t){this._buffer=t,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(h.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(t){this._byteOffset=t,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(h.prototype,"dataView",{get:function(){return this._dataView},set:function(t){this._byteOffset=t.byteOffset,this._buffer=t.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+t.byteLength}}),h.prototype.seek=function(t){var e=Math.max(0,Math.min(this.byteLength,t));this.position=isNaN(e)||!isFinite(e)?0:e},h.prototype.isEof=function(){return this.position>=this._byteLength},h.prototype.mapUint8Array=function(t){this._realloc(1*t);var e=new Uint8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=1*t,e},h.prototype.readInt32Array=function(t,e){var r=new Int32Array(t=t??this.byteLength-this.position/4);return h.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),h.arrayToNative(r,e??this.endianness),this.position+=r.byteLength,r},h.prototype.readInt16Array=function(t,e){var r=new Int16Array(t=t??this.byteLength-this.position/2);return h.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),h.arrayToNative(r,e??this.endianness),this.position+=r.byteLength,r},h.prototype.readInt8Array=function(t){var e=new Int8Array(t=t??this.byteLength-this.position);return h.memcpy(e.buffer,0,this.buffer,this.byteOffset+this.position,t*e.BYTES_PER_ELEMENT),this.position+=e.byteLength,e},h.prototype.readUint32Array=function(t,e){var r=new Uint32Array(t=t??this.byteLength-this.position/4);return h.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),h.arrayToNative(r,e??this.endianness),this.position+=r.byteLength,r},h.prototype.readUint16Array=function(t,e){var r=new Uint16Array(t=t??this.byteLength-this.position/2);return h.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),h.arrayToNative(r,e??this.endianness),this.position+=r.byteLength,r},h.prototype.readUint8Array=function(t){var e=new Uint8Array(t=t??this.byteLength-this.position);return h.memcpy(e.buffer,0,this.buffer,this.byteOffset+this.position,t*e.BYTES_PER_ELEMENT),this.position+=e.byteLength,e},h.prototype.readFloat64Array=function(t,e){var r=new Float64Array(t=t??this.byteLength-this.position/8);return h.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),h.arrayToNative(r,e??this.endianness),this.position+=r.byteLength,r},h.prototype.readFloat32Array=function(t,e){var r=new Float32Array(t=t??this.byteLength-this.position/4);return h.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),h.arrayToNative(r,e??this.endianness),this.position+=r.byteLength,r},h.prototype.readInt32=function(t){var e=this._dataView.getInt32(this.position,t??this.endianness);return this.position+=4,e},h.prototype.readInt16=function(t){var e=this._dataView.getInt16(this.position,t??this.endianness);return this.position+=2,e},h.prototype.readInt8=function(){var t=this._dataView.getInt8(this.position);return this.position+=1,t},h.prototype.readUint32=function(t){var e=this._dataView.getUint32(this.position,t??this.endianness);return this.position+=4,e},h.prototype.readUint16=function(t){var e=this._dataView.getUint16(this.position,t??this.endianness);return this.position+=2,e},h.prototype.readUint8=function(){var t=this._dataView.getUint8(this.position);return this.position+=1,t},h.prototype.readFloat32=function(t){var e=this._dataView.getFloat32(this.position,t??this.endianness);return this.position+=4,e},h.prototype.readFloat64=function(t){var e=this._dataView.getFloat64(this.position,t??this.endianness);return this.position+=8,e},h.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,h.memcpy=function(t,e,r,s,n){var a=new Uint8Array(t,e,n),o=new Uint8Array(r,s,n);a.set(o)},h.arrayToNative=function(t,e){return e==this.endianness?t:this.flipArrayEndianness(t)},h.nativeToEndian=function(t,e){return this.endianness==e?t:this.flipArrayEndianness(t)},h.flipArrayEndianness=function(t){for(var e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=0;rn;s--,n++){var a=e[n];e[n]=e[s],e[s]=a}return t},h.prototype.failurePosition=0,String.fromCharCodeUint8=function(t){for(var e=[],r=0;r>16),this.writeUint8((65280&t)>>8),this.writeUint8(255&t)},h.prototype.adjustUint32=function(t,e){var r=this.position;this.seek(t),this.writeUint32(e),this.seek(r)},h.prototype.mapInt32Array=function(t,e){this._realloc(4*t);var r=new Int32Array(this._buffer,this.byteOffset+this.position,t);return h.arrayToNative(r,e??this.endianness),this.position+=4*t,r},h.prototype.mapInt16Array=function(t,e){this._realloc(2*t);var r=new Int16Array(this._buffer,this.byteOffset+this.position,t);return h.arrayToNative(r,e??this.endianness),this.position+=2*t,r},h.prototype.mapInt8Array=function(t){this._realloc(1*t);var e=new Int8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=1*t,e},h.prototype.mapUint32Array=function(t,e){this._realloc(4*t);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,t);return h.arrayToNative(r,e??this.endianness),this.position+=4*t,r},h.prototype.mapUint16Array=function(t,e){this._realloc(2*t);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,t);return h.arrayToNative(r,e??this.endianness),this.position+=2*t,r},h.prototype.mapFloat64Array=function(t,e){this._realloc(8*t);var r=new Float64Array(this._buffer,this.byteOffset+this.position,t);return h.arrayToNative(r,e??this.endianness),this.position+=8*t,r},h.prototype.mapFloat32Array=function(t,e){this._realloc(4*t);var r=new Float32Array(this._buffer,this.byteOffset+this.position,t);return h.arrayToNative(r,e??this.endianness),this.position+=4*t,r},(l=function(t){this.buffers=[],this.bufferIndex=-1,t&&(this.insertBuffer(t),this.bufferIndex=0)}).prototype=new h(new ArrayBuffer,0,h.BIG_ENDIAN),l.prototype.initialized=function(){var t;return this.bufferIndex>-1||(this.buffers.length>0?0===(t=this.buffers[0]).fileStart?(this.buffer=t,this.bufferIndex=0,a.debug("MultiBufferStream","Stream ready for parsing"),!0):(a.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1):(a.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1))},ArrayBuffer.concat=function(t,e){a.debug("ArrayBuffer","Trying to create a new buffer of size: "+(t.byteLength+e.byteLength));var r=new Uint8Array(t.byteLength+e.byteLength);return r.set(new Uint8Array(t),0),r.set(new Uint8Array(e),t.byteLength),r.buffer},l.prototype.reduceBuffer=function(t,e,r){var s;return(s=new Uint8Array(r)).set(new Uint8Array(t,e,r)),s.buffer.fileStart=t.fileStart+e,s.buffer.usedBytes=0,s.buffer},l.prototype.insertBuffer=function(t){for(var e=!0,r=0;rs.byteLength){this.buffers.splice(r,1),r--;continue}a.warn("MultiBufferStream","Buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+") already appended, ignoring")}else t.fileStart+t.byteLength<=s.fileStart||(t=this.reduceBuffer(t,0,s.fileStart-t.fileStart)),a.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.splice(r,0,t),0===r&&(this.buffer=t);e=!1;break}if(t.fileStart0)t=this.reduceBuffer(t,n,o);else{e=!1;break}}}e&&(a.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.push(t),0===r&&(this.buffer=t))},l.prototype.logBufferLevel=function(t){var e,r,s,n,o,h=[],l="";for(s=0,n=0,e=0;e0&&(l+=o.end-1+"]"),(t?a.info:a.debug)("MultiBufferStream",0===this.buffers.length?"No more buffer in memory":""+this.buffers.length+" stored buffer(s) ("+s+"/"+n+" bytes), continuous ranges: "+l)},l.prototype.cleanBuffers=function(){var t,e;for(t=0;t"+this.buffer.byteLength+")"),!0},l.prototype.findPosition=function(t,e,r){var s,n=null,o=-1;for(s=!0===t?0:this.bufferIndex;s=e?(a.debug("MultiBufferStream","Found position in existing buffer #"+o),o):-1},l.prototype.findEndContiguousBuf=function(t){var e,r,s,n=void 0!==t?t:this.bufferIndex;if(r=this.buffers[n],this.buffers.length>n+1)for(e=n+1;e>3;return 31===s&&r.data.length>=2&&(s=32+((7&r.data[0])<<3)+((224&r.data[1])>>5)),s},r.DecoderConfigDescriptor=function(t){r.Descriptor.call(this,4,t)},r.DecoderConfigDescriptor.prototype=new r.Descriptor,r.DecoderConfigDescriptor.prototype.parse=function(t){this.oti=t.readUint8(),this.streamType=t.readUint8(),this.bufferSize=t.readUint24(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32(),this.size-=13,this.parseRemainingDescriptors(t)},r.DecoderSpecificInfo=function(t){r.Descriptor.call(this,5,t)},r.DecoderSpecificInfo.prototype=new r.Descriptor,r.SLConfigDescriptor=function(t){r.Descriptor.call(this,6,t)},r.SLConfigDescriptor.prototype=new r.Descriptor,this},iT.MPEG4DescriptorParser=u,(d={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){d.FullBox.prototype=new d.Box,d.ContainerBox.prototype=new d.Box,d.SampleEntry.prototype=new d.Box,d.TrackGroupTypeBox.prototype=new d.FullBox,d.BASIC_BOXES.forEach(function(t){d.createBoxCtor(t)}),d.FULL_BOXES.forEach(function(t){d.createFullBoxCtor(t)}),d.CONTAINER_BOXES.forEach(function(t){d.createContainerBoxCtor(t[0],null,t[1])})},Box:function(t,e,r){this.type=t,this.size=e,this.uuid=r},FullBox:function(t,e,r){d.Box.call(this,t,e,r),this.flags=0,this.version=0},ContainerBox:function(t,e,r){d.Box.call(this,t,e,r),this.boxes=[]},SampleEntry:function(t,e,r,s){d.ContainerBox.call(this,t,e),this.hdr_size=r,this.start=s},SampleGroupEntry:function(t){this.grouping_type=t},TrackGroupTypeBox:function(t,e){d.FullBox.call(this,t,e)},createBoxCtor:function(t,e){d.boxCodes.push(t),d[t+"Box"]=function(e){d.Box.call(this,t,e)},d[t+"Box"].prototype=new d.Box,e&&(d[t+"Box"].prototype.parse=e)},createFullBoxCtor:function(t,e){d[t+"Box"]=function(e){d.FullBox.call(this,t,e)},d[t+"Box"].prototype=new d.FullBox,d[t+"Box"].prototype.parse=function(t){this.parseFullHeader(t),e&&e.call(this,t)}},addSubBoxArrays:function(t){if(t){this.subBoxNames=t;for(var e=t.length,r=0;rr?(a.error("BoxParser","Box of type '"+f+"' has a size "+u+" greater than its container size "+r),{code:d.ERR_NOT_ENOUGH_DATA,type:f,size:u,hdr_size:l,start:h}):0!==u&&h+u>t.getEndPosition()?(t.seek(h),a.info("BoxParser","Not enough data in stream to parse the entire '"+f+"' box"),{code:d.ERR_NOT_ENOUGH_DATA,type:f,size:u,hdr_size:l,start:h}):e?{code:d.OK,type:f,size:u,hdr_size:l,start:h}:(d[f+"Box"]?s=new d[f+"Box"](u):"uuid"!==f?(a.warn("BoxParser","Unknown box type: '"+f+"'"),(s=new d.Box(f,u)).has_unparsed_data=!0):d.UUIDBoxes[o]?s=new d.UUIDBoxes[o](u):(a.warn("BoxParser","Unknown uuid type: '"+o+"'"),(s=new d.Box(f,u)).uuid=o,s.has_unparsed_data=!0),s.hdr_size=l,s.start=h,s.write===d.Box.prototype.write&&"mdat"!==s.type&&(a.info("BoxParser","'"+p+"' box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(t)),s.parse(t),(n=t.getPosition()-(s.start+s.size))<0?(a.warn("BoxParser","Parsing of box '"+p+"' did not read the entire indicated box data size (missing "+-n+" bytes), seeking forward"),t.seek(s.start+s.size)):n>0&&(a.error("BoxParser","Parsing of box '"+p+"' read "+n+" more bytes than the indicated box data size, seeking backwards"),0!==s.size&&t.seek(s.start+s.size)),{code:d.OK,box:s,size:s.size})},d.Box.prototype.parse=function(t){"mdat"!=this.type?this.data=t.readUint8Array(this.size-this.hdr_size):0===this.size?t.seek(t.getEndPosition()):t.seek(this.start+this.size)},d.Box.prototype.parseDataAndRewind=function(t){this.data=t.readUint8Array(this.size-this.hdr_size),t.position-=this.size-this.hdr_size},d.FullBox.prototype.parseDataAndRewind=function(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,t.position-=this.size-this.hdr_size},d.FullBox.prototype.parseFullHeader=function(t){this.version=t.readUint8(),this.flags=t.readUint24(),this.hdr_size+=4},d.FullBox.prototype.parse=function(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)},d.ContainerBox.prototype.parse=function(t){for(var e,r;t.getPosition()>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},d.SAMPLE_ENTRY_TYPE_VISUAL="Visual",d.SAMPLE_ENTRY_TYPE_AUDIO="Audio",d.SAMPLE_ENTRY_TYPE_HINT="Hint",d.SAMPLE_ENTRY_TYPE_METADATA="Metadata",d.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",d.SAMPLE_ENTRY_TYPE_SYSTEM="System",d.SAMPLE_ENTRY_TYPE_TEXT="Text",d.SampleEntry.prototype.parseHeader=function(t){t.readUint8Array(6),this.data_reference_index=t.readUint16(),this.hdr_size+=8},d.SampleEntry.prototype.parse=function(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)},d.SampleEntry.prototype.parseDataAndRewind=function(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,t.position-=this.size-this.hdr_size},d.SampleEntry.prototype.parseFooter=function(t){d.ContainerBox.prototype.parse.call(this,t)},d.createMediaSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_HINT),d.createMediaSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_METADATA),d.createMediaSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_SUBTITLE),d.createMediaSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_SYSTEM),d.createMediaSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_TEXT),d.createMediaSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,function(t){var e;this.parseHeader(t),t.readUint16(),t.readUint16(),t.readUint32Array(3),this.width=t.readUint16(),this.height=t.readUint16(),this.horizresolution=t.readUint32(),this.vertresolution=t.readUint32(),t.readUint32(),this.frame_count=t.readUint16(),e=Math.min(31,t.readUint8()),this.compressorname=t.readString(e),e<31&&t.readString(31-e),this.depth=t.readUint16(),t.readUint16(),this.parseFooter(t)}),d.createMediaSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,function(t){this.parseHeader(t),t.readUint32Array(2),this.channel_count=t.readUint16(),this.samplesize=t.readUint16(),t.readUint16(),t.readUint16(),this.samplerate=t.readUint32()/65536,this.parseFooter(t)}),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),d.createSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),d.createEncryptedSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),d.createEncryptedSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),d.createEncryptedSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),d.createEncryptedSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),d.createEncryptedSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_TEXT,"enct"),d.createEncryptedSampleEntryCtor(d.SAMPLE_ENTRY_TYPE_METADATA,"encm"),d.createBoxCtor("a1lx",function(t){var e=((1&(1&t.readUint8()))+1)*16;this.layer_size=[];for(var r=0;r<3;r++)16==e?this.layer_size[r]=t.readUint16():this.layer_size[r]=t.readUint32()}),d.createBoxCtor("a1op",function(t){this.op_index=t.readUint8()}),d.createFullBoxCtor("auxC",function(t){this.aux_type=t.readCString();var e=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=t.readUint8Array(e)}),d.createBoxCtor("av1C",function(t){var e=t.readUint8();if(this.version=127&e,1!==this.version){a.error("av1C version "+this.version+" not supported");return}if(e=t.readUint8(),this.seq_profile=e>>5&7,this.seq_level_idx_0=31&e,e=t.readUint8(),this.seq_tier_0=e>>7&1,this.high_bitdepth=e>>6&1,this.twelve_bit=e>>5&1,this.monochrome=e>>4&1,this.chroma_subsampling_x=e>>3&1,this.chroma_subsampling_y=e>>2&1,this.chroma_sample_position=3&e,e=t.readUint8(),this.reserved_1=e>>5&7,0!==this.reserved_1){a.error("av1C reserved_1 parsing problem");return}if(this.initial_presentation_delay_present=e>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&e;else if(this.reserved_2=15&e,0!==this.reserved_2){a.error("av1C reserved_2 parsing problem");return}var r=this.size-this.hdr_size-4;this.configOBUs=t.readUint8Array(r)}),d.createBoxCtor("avcC",function(t){var e,r;for(this.configurationVersion=t.readUint8(),this.AVCProfileIndication=t.readUint8(),this.profile_compatibility=t.readUint8(),this.AVCLevelIndication=t.readUint8(),this.lengthSizeMinusOne=3&t.readUint8(),this.nb_SPS_nalus=31&t.readUint8(),r=this.size-this.hdr_size-6,this.SPS=[],e=0;e0&&(this.ext=t.readUint8Array(r))}),d.createBoxCtor("btrt",function(t){this.bufferSizeDB=t.readUint32(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32()}),d.createFullBoxCtor("ccst",function(t){var e=t.readUint8();this.all_ref_pics_intra=(128&e)==128,this.intra_pred_used=(64&e)==64,this.max_ref_per_pic=(63&e)>>2,t.readUint24()}),d.createBoxCtor("cdef",function(t){var e;for(this.channel_count=t.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],e=0;e=32768&&this.component_type_urls.push(t.readCString())}}),d.createFullBoxCtor("co64",function(t){var e,r;if(e=t.readUint32(),this.chunk_offsets=[],0===this.version)for(r=0;r>7}else"rICC"===this.colour_type?this.ICC_profile=t.readUint8Array(this.size-4):"prof"===this.colour_type&&(this.ICC_profile=t.readUint8Array(this.size-4))}),d.createFullBoxCtor("cprt",function(t){this.parseLanguage(t),this.notice=t.readCString()}),d.createFullBoxCtor("cslg",function(t){0===this.version&&(this.compositionToDTSShift=t.readInt32(),this.leastDecodeToDisplayDelta=t.readInt32(),this.greatestDecodeToDisplayDelta=t.readInt32(),this.compositionStartTime=t.readInt32(),this.compositionEndTime=t.readInt32())}),d.createFullBoxCtor("ctts",function(t){var e,r;if(e=t.readUint32(),this.sample_counts=[],this.sample_offsets=[],0===this.version)for(r=0;r>6,this.bsid=e>>1&31,this.bsmod=(1&e)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=3&r|s>>5&7}),d.createBoxCtor("dec3",function(t){var e=t.readUint16();this.data_rate=e>>3,this.num_ind_sub=7&e,this.ind_subs=[];for(var r=0;r>6,s.bsid=n>>1&31,s.bsmod=(1&n)<<4|a>>4&15,s.acmod=a>>1&7,s.lfeon=1&a,s.num_dep_sub=o>>1&15,s.num_dep_sub>0&&(s.chan_loc=(1&o)<<8|t.readUint8())}}),d.createFullBoxCtor("dfLa",function(t){var e=[],r=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];for(this.parseFullHeader(t);;){var s=t.readUint8(),n=Math.min(127&s,r.length-1);if(n?t.readUint8Array(t.readUint24()):(t.readUint8Array(13),this.samplerate=t.readUint32()>>12,t.readUint8Array(20)),e.push(r[n]),128&s)break}this.numMetadataBlocks=e.length+" ("+e.join(", ")+")"}),d.createBoxCtor("dimm",function(t){this.bytessent=t.readUint64()}),d.createBoxCtor("dmax",function(t){this.time=t.readUint32()}),d.createBoxCtor("dmed",function(t){this.bytessent=t.readUint64()}),d.createBoxCtor("dOps",function(t){if(this.Version=t.readUint8(),this.OutputChannelCount=t.readUint8(),this.PreSkip=t.readUint16(),this.InputSampleRate=t.readUint32(),this.OutputGain=t.readInt16(),this.ChannelMappingFamily=t.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=t.readUint8(),this.CoupledCount=t.readUint8(),this.ChannelMapping=[];for(var e=0;etypeof u){var r=new u;this.esd=r.parseOneDescriptor(new h(e.buffer,0,h.BIG_ENDIAN))}}),d.createBoxCtor("fiel",function(t){this.fieldCount=t.readUint8(),this.fieldOrdering=t.readUint8()}),d.createBoxCtor("frma",function(t){this.data_format=t.readString(4)}),d.createBoxCtor("ftyp",function(t){var e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32(),e-=8,this.compatible_brands=[];for(var r=0;e>=4;)this.compatible_brands[r]=t.readString(4),e-=4,r++}),d.createFullBoxCtor("hdlr",function(t){0===this.version&&(t.readUint32(),this.handler=t.readString(4),t.readUint32Array(3),this.name=t.readString(this.size-this.hdr_size-20),"\0"===this.name[this.name.length-1]&&(this.name=this.name.slice(0,-1)))}),d.createBoxCtor("hvcC",function(t){this.configurationVersion=t.readUint8(),n=t.readUint8(),this.general_profile_space=n>>6,this.general_tier_flag=(32&n)>>5,this.general_profile_idc=31&n,this.general_profile_compatibility=t.readUint32(),this.general_constraint_indicator=t.readUint8Array(6),this.general_level_idc=t.readUint8(),this.min_spatial_segmentation_idc=4095&t.readUint16(),this.parallelismType=3&t.readUint8(),this.chroma_format_idc=3&t.readUint8(),this.bit_depth_luma_minus8=7&t.readUint8(),this.bit_depth_chroma_minus8=7&t.readUint8(),this.avgFrameRate=t.readUint16(),n=t.readUint8(),this.constantFrameRate=n>>6,this.numTemporalLayers=(13&n)>>3,this.temporalIdNested=(4&n)>>2,this.lengthSizeMinusOne=3&n,this.nalu_arrays=[];var e,r,s,n,a=t.readUint8();for(e=0;e>7,o.nalu_type=63&n;var h=t.readUint16();for(r=0;r>4&15,this.length_size=15&e,e=t.readUint8(),this.base_offset_size=e>>4&15,1===this.version||2===this.version?this.index_size=15&e:this.index_size=0,this.items=[];var e,r=0;if(this.version<2)r=t.readUint16();else if(2===this.version)r=t.readUint32();else throw"version of iloc box not supported";for(var s=0;s>7,this.axis=1&e}),d.createFullBoxCtor("infe",function(t){if((0===this.version||1===this.version)&&(this.item_ID=t.readUint16(),this.item_protection_index=t.readUint16(),this.item_name=t.readCString(),this.content_type=t.readCString(),this.content_encoding=t.readCString()),1===this.version){this.extension_type=t.readString(4),a.warn("BoxParser","Cannot parse extension type"),t.seek(this.start+this.size);return}this.version>=2&&(2===this.version?this.item_ID=t.readUint16():3===this.version&&(this.item_ID=t.readUint32()),this.item_protection_index=t.readUint16(),this.item_type=t.readString(4),this.item_name=t.readCString(),"mime"===this.item_type?(this.content_type=t.readCString(),this.content_encoding=t.readCString()):"uri "===this.item_type&&(this.item_uri_type=t.readCString()))}),d.createFullBoxCtor("ipma",function(t){var e,r;for(entry_count=t.readUint32(),this.associations=[],e=0;e>7==1,1&this.flags?o.property_index=(127&a)<<8|t.readUint8():o.property_index=127&a}}}),d.createFullBoxCtor("iref",function(t){var e,r;for(this.references=[];t.getPosition()>7,s.assignment_type=127&n,s.assignment_type){case 0:s.grouping_type=t.readString(4);break;case 1:s.grouping_type=t.readString(4),s.grouping_type_parameter=t.readUint32();break;case 2:case 3:break;case 4:s.sub_track_id=t.readUint32();break;default:a.warn("BoxParser","Unknown leva assignement type")}}}),d.createBoxCtor("lsel",function(t){this.layer_id=t.readUint16()}),d.createBoxCtor("maxr",function(t){this.period=t.readUint32(),this.bytes=t.readUint32()}),d.createBoxCtor("mdcv",function(t){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=t.readUint16(),this.display_primaries[0].y=t.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=t.readUint16(),this.display_primaries[1].y=t.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=t.readUint16(),this.display_primaries[2].y=t.readUint16(),this.white_point={},this.white_point.x=t.readUint16(),this.white_point.y=t.readUint16(),this.max_display_mastering_luminance=t.readUint32(),this.min_display_mastering_luminance=t.readUint32()}),d.createFullBoxCtor("mdhd",function(t){1==this.version?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.parseLanguage(t),t.readUint16()}),d.createFullBoxCtor("mehd",function(t){1&this.flags&&(a.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=t.readUint64():this.fragment_duration=t.readUint32()}),d.createFullBoxCtor("meta",function(t){this.boxes=[],d.ContainerBox.prototype.parse.call(this,t)}),d.createFullBoxCtor("mfhd",function(t){this.sequence_number=t.readUint32()}),d.createFullBoxCtor("mfro",function(t){this._size=t.readUint32()}),d.createFullBoxCtor("mvhd",function(t){1==this.version?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.rate=t.readUint32(),this.volume=t.readUint16()>>8,t.readUint16(),t.readUint32Array(2),this.matrix=t.readUint32Array(9),t.readUint32Array(6),this.next_track_id=t.readUint32()}),d.createBoxCtor("npck",function(t){this.packetssent=t.readUint32()}),d.createBoxCtor("nump",function(t){this.packetssent=t.readUint64()}),d.createFullBoxCtor("padb",function(t){var e=t.readUint32();this.padbits=[];for(var r=0;r0){var e=t.readUint32();this.kid=[];for(var r=0;r0&&(this.data=t.readUint8Array(s))}),d.createFullBoxCtor("clef",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),d.createFullBoxCtor("enof",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),d.createFullBoxCtor("prof",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),d.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),d.createBoxCtor("rtp ",function(t){this.descriptionformat=t.readString(4),this.sdptext=t.readString(this.size-this.hdr_size-4)}),d.createFullBoxCtor("saio",function(t){1&this.flags&&(this.aux_info_type=t.readUint32(),this.aux_info_type_parameter=t.readUint32());var e=t.readUint32();this.offset=[];for(var r=0;r>7,this.avgRateFlag=e>>6&1,this.durationFlag&&(this.duration=t.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()),this.dependency=[];for(var r=t.readUint8(),s=0;s>7,this.num_leading_samples=127&e}),d.createSampleGroupCtor("rash",function(t){if(this.operation_point_count=t.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)a.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=t.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=t.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var e=0;e>4,this.skip_byte_block=15&e,this.isProtected=t.readUint8(),this.Per_Sample_IV_Size=t.readUint8(),this.KID=d.parseHex16(t),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=t.readUint8(),this.constant_IV=t.readUint8Array(this.constant_IV_size))}),d.createSampleGroupCtor("stsa",function(t){a.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),d.createSampleGroupCtor("sync",function(t){var e=t.readUint8();this.NAL_unit_type=63&e}),d.createSampleGroupCtor("tele",function(t){var e=t.readUint8();this.level_independently_decodable=e>>7}),d.createSampleGroupCtor("tsas",function(t){a.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),d.createSampleGroupCtor("tscl",function(t){a.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),d.createSampleGroupCtor("vipr",function(t){a.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),d.createFullBoxCtor("sbgp",function(t){this.grouping_type=t.readString(4),1===this.version?this.grouping_type_parameter=t.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var e=t.readUint32(),r=0;r>6,this.sample_depends_on[s]=e>>4&3,this.sample_is_depended_on[s]=e>>2&3,this.sample_has_redundancy[s]=3&e}),d.createFullBoxCtor("senc"),d.createFullBoxCtor("sgpd",function(t){this.grouping_type=t.readString(4),a.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=t.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=t.readUint32()),this.entries=[];for(var e,r=t.readUint32(),s=0;s>31&1,s.referenced_size=2147483647&n,s.subsegment_duration=t.readUint32(),n=t.readUint32(),s.starts_with_SAP=n>>31&1,s.SAP_type=n>>28&7,s.SAP_delta_time=268435455&n}}),d.SingleItemTypeReferenceBox=function(t,e,r,s){d.Box.call(this,t,e),this.hdr_size=r,this.start=s},d.SingleItemTypeReferenceBox.prototype=new d.Box,d.SingleItemTypeReferenceBox.prototype.parse=function(t){this.from_item_ID=t.readUint16();var e=t.readUint16();this.references=[];for(var r=0;r>4&15,this.sample_sizes[e+1]=15&s}else if(8===this.field_size)for(e=0;e0)for(r=0;r>4&15,this.default_skip_byte_block=15&e}this.default_isProtected=t.readUint8(),this.default_Per_Sample_IV_Size=t.readUint8(),this.default_KID=d.parseHex16(t),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=t.readUint8(),this.default_constant_IV=t.readUint8Array(this.default_constant_IV_size))}),d.createFullBoxCtor("tfdt",function(t){1==this.version?this.baseMediaDecodeTime=t.readUint64():this.baseMediaDecodeTime=t.readUint32()}),d.createFullBoxCtor("tfhd",function(t){var e=0;this.track_id=t.readUint32(),this.size-this.hdr_size>e&&this.flags&d.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=t.readUint64(),e+=8):this.base_data_offset=0,this.size-this.hdr_size>e&&this.flags&d.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=t.readUint32(),e+=4):this.default_sample_description_index=0,this.size-this.hdr_size>e&&this.flags&d.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=t.readUint32(),e+=4):this.default_sample_duration=0,this.size-this.hdr_size>e&&this.flags&d.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=t.readUint32(),e+=4):this.default_sample_size=0,this.size-this.hdr_size>e&&this.flags&d.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=t.readUint32(),e+=4):this.default_sample_flags=0}),d.createFullBoxCtor("tfra",function(t){this.track_ID=t.readUint32(),t.readUint24();var e=t.readUint8();this.length_size_of_traf_num=e>>4&3,this.length_size_of_trun_num=e>>2&3,this.length_size_of_sample_num=3&e,this.entries=[];for(var r=t.readUint32(),s=0;s>8,t.readUint16(),this.matrix=t.readInt32Array(9),this.width=t.readUint32(),this.height=t.readUint32()}),d.createBoxCtor("tmax",function(t){this.time=t.readUint32()}),d.createBoxCtor("tmin",function(t){this.time=t.readUint32()}),d.createBoxCtor("totl",function(t){this.bytessent=t.readUint32()}),d.createBoxCtor("tpay",function(t){this.bytessent=t.readUint32()}),d.createBoxCtor("tpyl",function(t){this.bytessent=t.readUint64()}),d.TrackGroupTypeBox.prototype.parse=function(t){this.parseFullHeader(t),this.track_group_id=t.readUint32()},d.createTrackGroupCtor("msrc"),d.TrackReferenceTypeBox=function(t,e,r,s){d.Box.call(this,t,e),this.hdr_size=r,this.start=s},d.TrackReferenceTypeBox.prototype=new d.Box,d.TrackReferenceTypeBox.prototype.parse=function(t){this.track_ids=t.readUint32Array((this.size-this.hdr_size)/4)},d.trefBox.prototype.parse=function(t){for(var e,r;t.getPosition()e&&this.flags&d.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=t.readInt32(),e+=4):this.data_offset=0,this.size-this.hdr_size>e&&this.flags&d.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=t.readUint32(),e+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>e)for(var r=0;r>7&1,this.block_pad_lsb=r>>6&1,this.block_little_endian=r>>5&1,this.block_reversed=r>>4&1,this.pad_unknown=r>>3&1,this.pixel_size=t.readUint8(),this.row_align_size=t.readUint32(),this.tile_align_size=t.readUint32(),this.num_tile_cols_minus_one=t.readUint32(),this.num_tile_rows_minus_one=t.readUint32()}),d.createFullBoxCtor("url ",function(t){1!==this.flags&&(this.location=t.readCString())}),d.createFullBoxCtor("urn ",function(t){this.name=t.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=t.readCString())}),d.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,function(t){this.LiveServerManifest=t.readString(this.size-this.hdr_size).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}),d.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(t){this.system_id=d.parseHex16(t);var e=t.readUint32();e>0&&(this.data=t.readUint8Array(e))}),d.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),d.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,function(t){this.default_AlgorithmID=t.readUint24(),this.default_IV_size=t.readUint8(),this.default_KID=d.parseHex16(t)}),d.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,function(t){this.fragment_count=t.readUint8(),this.entries=[];for(var e=0;e>4,this.chromaSubsampling=e>>1&7,this.videoFullRangeFlag=1&e,this.colourPrimaries=t.readUint8(),this.transferCharacteristics=t.readUint8(),this.matrixCoefficients=t.readUint8()):(this.profile=t.readUint8(),this.level=t.readUint8(),e=t.readUint8(),this.bitDepth=e>>4&15,this.colorSpace=15&e,e=t.readUint8(),this.chromaSubsampling=e>>4&15,this.transferFunction=e>>1&7,this.videoFullRangeFlag=1&e),this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}),d.createBoxCtor("vttC",function(t){this.text=t.readString(this.size-this.hdr_size)}),d.createFullBoxCtor("vvcC",function(t){var e,r,s={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(t){this.held_bits=t.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(t){this.held_bits=t.readUint16(),this.num_held_bits=16},extract_bits:function(t){var e=this.held_bits>>this.num_held_bits-t&(1<1){for(s.stream_read_1_bytes(t),this.ptl_sublayer_present_mask=0,r=this.num_sublayers-2;r>=0;--r){var o=s.extract_bits(1);this.ptl_sublayer_present_mask|=o<1;++r)s.extract_bits(1);for(this.sublayer_level_idc=[],r=this.num_sublayers-2;r>=0;--r)this.ptl_sublayer_present_mask&1<"u"||null===e?e=2:e;r.length>=1;e+=d.decimalToHex(s,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var n=!1,a="";for(t=5;t>=0;t--)(this.hvcC.general_constraint_indicator[t]||n)&&(a="."+d.decimalToHex(this.hvcC.general_constraint_indicator[t],0)+a,n=!0);e+=a}return e},d.vvc1SampleEntry.prototype.getCodec=d.vvi1SampleEntry.prototype.getCodec=function(){var t,e=d.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var r="";if(this.vvcC.general_constraint_info){var s,n,a=[];for(n=0|this.vvcC.ptl_frame_only_constraint<<7|this.vvcC.ptl_multilayer_enabled<<6,t=0;t>2&63,a.push(n),n&&(s=t),n=this.vvcC.general_constraint_info[t]>>2&3;if(void 0===s)r=".CA";else{r=".C";var o="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",h=0,l=0;for(t=0;t<=s;++t)for(h=h<<8|a[t],l+=8;l>=5;)r+=o[h>>l-5&31],l-=5,h&=(1<4294967296&&(this.size+=8),"uuid"===this.type&&(this.size+=16),a.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+t.getPosition()+(e||"")),this.size>4294967296?t.writeUint32(1):(this.sizePosition=t.getPosition(),t.writeUint32(this.size)),t.writeString(this.type,null,4),"uuid"===this.type&&t.writeUint8Array(this.uuid),this.size>4294967296&&t.writeUint64(this.size)},d.FullBox.prototype.writeHeader=function(t){this.size+=4,d.Box.prototype.writeHeader.call(this,t," v="+this.version+" f="+this.flags),t.writeUint8(this.version),t.writeUint24(this.flags)},d.Box.prototype.write=function(t){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(t),t.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(t),this.data&&t.writeUint8Array(this.data))},d.ContainerBox.prototype.write=function(t){this.size=0,this.writeHeader(t);for(var e=0;e=2&&t.writeUint32(this.default_sample_description_index),t.writeUint32(this.entries.length),e=0;e0)for(e=0;e+14294967295?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(t),1===this.version?t.writeUint64(this.baseMediaDecodeTime):t.writeUint32(this.baseMediaDecodeTime)},d.tfhdBox.prototype.write=function(t){this.version=0,this.size=4,this.flags&d.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&d.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&d.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&d.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&d.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(t),t.writeUint32(this.track_id),this.flags&d.TFHD_FLAG_BASE_DATA_OFFSET&&t.writeUint64(this.base_data_offset),this.flags&d.TFHD_FLAG_SAMPLE_DESC&&t.writeUint32(this.default_sample_description_index),this.flags&d.TFHD_FLAG_SAMPLE_DUR&&t.writeUint32(this.default_sample_duration),this.flags&d.TFHD_FLAG_SAMPLE_SIZE&&t.writeUint32(this.default_sample_size),this.flags&d.TFHD_FLAG_SAMPLE_FLAGS&&t.writeUint32(this.default_sample_flags)},d.tkhdBox.prototype.write=function(t){this.version=0,this.size=80,this.writeHeader(t),t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint32(this.duration),t.writeUint32(0),t.writeUint32(0),t.writeInt16(this.layer),t.writeInt16(this.alternate_group),t.writeInt16(this.volume<<8),t.writeUint16(0),t.writeInt32Array(this.matrix),t.writeUint32(this.width),t.writeUint32(this.height)},d.trexBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=20,this.writeHeader(t),t.writeUint32(this.track_id),t.writeUint32(this.default_sample_description_index),t.writeUint32(this.default_sample_duration),t.writeUint32(this.default_sample_size),t.writeUint32(this.default_sample_flags)},d.trunBox.prototype.write=function(t){this.version=0,this.size=4,this.flags&d.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&d.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&d.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&d.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&d.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&d.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(t),t.writeUint32(this.sample_count),this.flags&d.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=t.getPosition(),t.writeInt32(this.data_offset)),this.flags&d.TRUN_FLAGS_FIRST_FLAG&&t.writeUint32(this.first_sample_flags);for(var e=0;e-1)){if(t[r]instanceof d.Box||e[r]instanceof d.Box||typeof t[r]>"u"||typeof e[r]>"u"||"function"==typeof t[r]||"function"==typeof e[r]||t.subBoxNames&&t.subBoxNames.indexOf(r.slice(0,4))>-1||e.subBoxNames&&e.subBoxNames.indexOf(r.slice(0,4))>-1||"data"===r||"start"===r||"size"===r||"creation_time"===r||"modification_time"===r||d.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(r)>-1)continue;if(t[r]!==e[r])return!1}return!0},d.boxEqual=function(t,e){if(!d.boxEqualFields(t,e))return!1;for(var r=0;r1)for(e=1;etypeof DOMParser&&(r.document=new DOMParser().parseFromString(r.documentString,"application/xml")),r},(p=function(){}).prototype.parseSample=function(t){return new o(t.data.buffer).readString(t.data.length)},p.prototype.parseConfig=function(t){var e=new o(t.buffer);return e.readUint32(),e.readCString()},iT.XMLSubtitlein4Parser=f,iT.Textin4Parser=p,(c=function(t){this.stream=t||new l,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.onSidx=null,this.sidxSent=!1}).prototype.setSegmentOptions=function(t,e,r){var s=this.getTrackById(t);if(s){var n={};this.fragmentedTracks.push(n),n.id=t,n.user=e,n.trak=s,s.nextSample=0,n.segmentStream=null,n.nb_samples=1e3,n.rapAlignement=!0,r&&(r.nbSamples&&(n.nb_samples=r.nbSamples),r.rapAlignement&&(n.rapAlignement=r.rapAlignement))}},c.prototype.unsetSegmentOptions=function(t){for(var e=-1,r=0;r-1&&this.fragmentedTracks.splice(e,1)},c.prototype.setExtractionOptions=function(t,e,r){var s=this.getTrackById(t);if(s){var n={};this.extractedTracks.push(n),n.id=t,n.user=e,n.trak=s,s.nextSample=0,n.nb_samples=1e3,n.samples=[],r&&r.nbSamples&&(n.nb_samples=r.nbSamples)}},c.prototype.unsetExtractionOptions=function(t){for(var e=-1,r=0;r-1&&this.extractedTracks.splice(e,1)},c.prototype.parse=function(){var t,e,r;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),(e=d.parseOneBox(this.stream,!1)).code===d.ERR_NOT_ENOUGH_DATA){if(!this.processIncompleteBox)return;if(this.processIncompleteBox(e))continue;return}else{switch(t="uuid"!==(r=e.box).type?r.type:r.uuid,this.boxes.push(r),t){case"mdat":this.mdats.push(r);break;case"moof":this.moofs.push(r);break;case"moov":this.moovStartFound=!0,0===this.mdats.length&&(this.isProgressive=!0);default:void 0!==this[t]&&a.warn("ISOFile","Duplicate Box of type: "+t+", overriding previous occurrence"),this[t]=r}this.updateUsedBytes&&this.updateUsedBytes(r,e)}},c.prototype.checkBuffer=function(t){if(null==t)throw"Buffer must be defined and non empty";if(void 0===t.fileStart)throw"Buffer must have a fileStart property";return 0===t.byteLength?(a.warn("ISOFile","Ignoring empty buffer (fileStart: "+t.fileStart+")"),this.stream.logBufferLevel(),!1):(a.info("ISOFile","Processing buffer (fileStart: "+t.fileStart+")"),t.usedBytes=0,this.stream.insertBuffer(t),this.stream.logBufferLevel(),!!this.stream.initialized()||(a.warn("ISOFile","Not ready to start parsing"),!1))},c.prototype.appendBuffer=function(t,e){var r;if(this.checkBuffer(t))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(e),this.nextSeekPosition?(r=this.nextSeekPosition,this.nextSeekPosition=void 0):r=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(r=this.stream.getEndFilePositionAfter(r))):r=this.nextParsePosition?this.nextParsePosition:0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(a.info("ISOFile","Done processing buffer (fileStart: "+t.fileStart+") - next buffer to fetch should have a fileStart position of "+r),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),a.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),r},c.prototype.getInfo=function(){var t,e,r,s,n,a,o={},h=/* @__PURE__ */new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(o.hasMoov=!0,o.duration=this.moov.mvhd.duration,o.timescale=this.moov.mvhd.timescale,o.isFragmented=null!=this.moov.mvex,o.isFragmented&&this.moov.mvex.mehd&&(o.fragment_duration=this.moov.mvex.mehd.fragment_duration),o.isProgressive=this.isProgressive,o.hasIOD=null!=this.moov.iods,o.brands=[],o.brands.push(this.ftyp.major_brand),o.brands=o.brands.concat(this.ftyp.compatible_brands),o.created=new Date(h+1e3*this.moov.mvhd.creation_time),o.modified=new Date(h+1e3*this.moov.mvhd.modification_time),o.tracks=[],o.audioTracks=[],o.videoTracks=[],o.subtitleTracks=[],o.metadataTracks=[],o.hintTracks=[],o.otherTracks=[],t=0;t0?o.mime+='video/mp4; codecs="':o.audioTracks&&o.audioTracks.length>0?o.mime+='audio/mp4; codecs="':o.mime+='application/mp4; codecs="',t=0;t=r.samples.length)&&(a.info("ISOFile","Sending fragmented data on track #"+s.id+" for samples ["+Math.max(0,r.nextSample-s.nb_samples)+","+(r.nextSample-1)+"]"),a.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(s.id,s.user,s.segmentStream.buffer,r.nextSample,t||r.nextSample>=r.samples.length),s.segmentStream=null,s!==this.fragmentedTracks[e]))break}}if(null!==this.onSamples)for(e=0;e=r.samples.length)&&(a.debug("ISOFile","Sending samples on track #"+o.id+" for sample "+r.nextSample),this.onSamples&&this.onSamples(o.id,o.user,o.samples),o.samples=[],o!==this.extractedTracks[e]))break}}}},c.prototype.getBox=function(t){var e=this.getBoxes(t,!0);return e.length?e[0]:null},c.prototype.getBoxes=function(t,e){var r=[];return c._sweep.call(this,t,r,e),r},c._sweep=function(t,e,r){for(var s in this.type&&this.type==t&&e.push(this),this.boxes){if(e.length&&r)return;c._sweep.call(this.boxes[s],t,e,r)}},c.prototype.getTrackSamplesInfo=function(t){var e=this.getTrackById(t);if(e)return e.samples},c.prototype.getTrackSample=function(t,e){var r=this.getTrackById(t);return this.getSample(r,e)},c.prototype.releaseUsedSamples=function(t,e){var r=0,s=this.getTrackById(t);s.lastValidSample||(s.lastValidSample=0);for(var n=s.lastValidSample;nt*n.timescale){u=s-1;break}e&&n.is_sync&&(l=s)}for(e&&(u=l),t=r.samples[u].cts,r.nextSample=u;r.samples[u].alreadyRead===r.samples[u].size&&r.samples[u+1];)u++;return h=r.samples[u].offset+r.samples[u].alreadyRead,a.info("ISOFile","Seeking to "+(e?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+a.getDurationString(t,o)+" and offset: "+h),{offset:h,time:t/o}},c.prototype.getTrackDuration=function(t){var e;return t.samples?((e=t.samples[t.samples.length-1]).cts+e.duration)/e.timescale:1/0},c.prototype.seek=function(t,e){var r,s,n,o=this.moov,h={offset:1/0,time:1/0};if(this.moov){for(n=0;nthis.getTrackDuration(r))&&((s=this.seekTrack(t,e,r)).offset-1){h=l;break}switch(h){case"Visual":if(n.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),a.set("width",e.width).set("height",e.height).set("horizresolution",4718592).set("vertresolution",4718592).set("frame_count",1).set("compressorname",e.type+" Compressor").set("depth",24),e.avcDecoderConfigRecord){var p=new d.avcCBox;p.parse(new o(e.avcDecoderConfigRecord)),a.addBox(p)}else if(e.hevcDecoderConfigRecord){var c=new d.hvcCBox;c.parse(new o(e.hevcDecoderConfigRecord)),a.addBox(c)}break;case"Audio":n.add("smhd").set("balance",e.balance||0),a.set("channel_count",e.channel_count||2).set("samplesize",e.samplesize||16).set("samplerate",e.samplerate||65536);break;case"Hint":n.add("hmhd");break;case"Subtitle":n.add("sthd"),"stpp"===e.type&&a.set("namespace",e.namespace||"nonamespace").set("schema_location",e.schema_location||"").set("auxiliary_mime_types",e.auxiliary_mime_types||"");break;default:n.add("nmhd")}e.description&&a.addBox(e.description),e.description_boxes&&e.description_boxes.forEach(function(t){a.addBox(t)}),n.add("dinf").add("dref").addEntry(new d["url Box"]().set("flags",1));var m=n.add("stbl");return m.add("stsd").addEntry(a),m.add("stts").set("sample_counts",[]).set("sample_deltas",[]),m.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),m.add("stco").set("chunk_offsets",[]),m.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",e.id).set("default_sample_description_index",e.default_sample_description_index||1).set("default_sample_duration",e.default_sample_duration||0).set("default_sample_size",e.default_sample_size||0).set("default_sample_flags",e.default_sample_flags||0),this.buildTrakSampleLists(r),e.id}},d.Box.prototype.computeSize=function(t){var e=t||new h;e.endianness=h.BIG_ENDIAN,this.write(e)},c.prototype.addSample=function(t,e,r){var s=r||{},n={},a=this.getTrackById(t);if(null!==a){n.number=a.samples.length,n.track_id=a.tkhd.track_id,n.timescale=a.mdia.mdhd.timescale,n.description_index=s.sample_description_index?s.sample_description_index-1:0,n.description=a.mdia.minf.stbl.stsd.entries[n.description_index],n.data=e,n.size=e.byteLength,n.alreadyRead=n.size,n.duration=s.duration||1,n.cts=s.cts||0,n.dts=s.dts||0,n.is_sync=s.is_sync||!1,n.is_leading=s.is_leading||0,n.depends_on=s.depends_on||0,n.is_depended_on=s.is_depended_on||0,n.has_redundancy=s.has_redundancy||0,n.degradation_priority=s.degradation_priority||0,n.offset=0,n.subsamples=s.subsamples,a.samples.push(n),a.samples_size+=n.size,a.samples_duration+=n.duration,void 0===a.first_dts&&(a.first_dts=s.dts),this.processSamples();var o=this.createSingleSampleMoof(n);return this.addBox(o),o.computeSize(),o.trafs[0].truns[0].data_offset=o.size+8,this.add("mdat").data=new Uint8Array(e),n}},c.prototype.createSingleSampleMoof=function(t){var e=0;e=t.is_sync?33554432:65536;var r=new d.moofBox;r.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var s=r.add("traf"),n=this.getTrackById(t.track_id);return s.add("tfhd").set("track_id",t.track_id).set("flags",d.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),s.add("tfdt").set("baseMediaDecodeTime",t.dts-(n.first_dts||0)),s.add("trun").set("flags",d.TRUN_FLAGS_DATA_OFFSET|d.TRUN_FLAGS_DURATION|d.TRUN_FLAGS_SIZE|d.TRUN_FLAGS_FLAGS|d.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[t.duration]).set("sample_size",[t.size]).set("sample_flags",[e]).set("sample_composition_time_offset",[t.cts-t.dts]),r},c.prototype.lastMoofIndex=0,c.prototype.samplesDataSize=0,c.prototype.resetTables=function(){var t,e,r,s,n,a;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,t=0;t=2&&(l=n[o].grouping_type+"/0",(h=new u(n[o].grouping_type,0)).is_fragment=!0,e.sample_groups_info[l]||(e.sample_groups_info[l]=h))}else for(o=0;o=2&&(l=s[o].grouping_type+"/0",h=new u(s[o].grouping_type,0),t.sample_groups_info[l]||(t.sample_groups_info[l]=h))},c.setSampleGroupProperties=function(t,e,r,s){var n,a,o;for(n in e.sample_groups=[],s)e.sample_groups[n]={},e.sample_groups[n].grouping_type=s[n].grouping_type,e.sample_groups[n].grouping_type_parameter=s[n].grouping_type_parameter,r>=s[n].last_sample_in_run&&(s[n].last_sample_in_run<0&&(s[n].last_sample_in_run=0),s[n].entry_index++,s[n].entry_index<=s[n].sbgp.entries.length-1&&(s[n].last_sample_in_run+=s[n].sbgp.entries[s[n].entry_index].sample_count)),s[n].entry_index<=s[n].sbgp.entries.length-1?e.sample_groups[n].group_description_index=s[n].sbgp.entries[s[n].entry_index].group_description_index:e.sample_groups[n].group_description_index=-1,0!==e.sample_groups[n].group_description_index&&(o=s[n].fragment_description?s[n].fragment_description:s[n].description,e.sample_groups[n].group_description_index>0?(a=e.sample_groups[n].group_description_index>65535?(e.sample_groups[n].group_description_index>>16)-1:e.sample_groups[n].group_description_index-1,o&&a>=0&&(e.sample_groups[n].description=o.entries[a])):o&&o.version>=2&&o.default_group_description_index>0&&(e.sample_groups[n].description=o.entries[o.default_group_description_index-1]))},c.process_sdtp=function(t,e,r){e&&(t?(e.is_leading=t.is_leading[r],e.depends_on=t.sample_depends_on[r],e.is_depended_on=t.sample_is_depended_on[r],e.has_redundancy=t.sample_has_redundancy[r]):(e.is_leading=0,e.depends_on=0,e.is_depended_on=0,e.has_redundancy=0))},c.prototype.buildSampleLists=function(){var t,e;for(t=0;t"u")){for(e=0;ew&&(v++,w<0&&(w=0),w+=a.sample_counts[v]),e>0?(t.samples[e-1].duration=a.sample_deltas[v],t.samples_duration+=t.samples[e-1].duration,A.dts=t.samples[e-1].dts+t.samples[e-1].duration):A.dts=0,o?(e>=S&&(E++,S<0&&(S=0),S+=o.sample_counts[E]),A.cts=t.samples[e].dts+o.sample_offsets[E]):A.cts=A.dts,h?(e==h.sample_numbers[U]-1?(A.is_sync=!0,U++):(A.is_sync=!1,A.degradation_priority=0),u&&u.entries[x].sample_delta+T==e+1&&(A.subsamples=u.entries[x].subsamples,T+=u.entries[x].sample_delta,x++)):A.is_sync=!0,c.process_sdtp(t.mdia.minf.stbl.sdtp,A,A.number),p?A.degradation_priority=p.priority[e]:A.degradation_priority=0,u&&u.entries[x].sample_delta+T==e&&(A.subsamples=u.entries[x].subsamples,T+=u.entries[x].sample_delta),(d.length>0||f.length>0)&&c.setSampleGroupProperties(t,A,e,t.sample_groups_info)}e>0&&(t.samples[e-1].duration=Math.max(t.mdia.mdhd.duration-t.samples[e-1].dts,0),t.samples_duration+=t.samples[e-1].duration)}},c.prototype.updateSampleLists=function(){var t,e,r,s,n,a,o,h,l,u,f,p,m,g;if(void 0!==this.moov){for(;this.lastMoofIndex0&&c.initSampleGroups(f,u,u.sbgps,f.mdia.minf.stbl.sgpds,u.sgpds),e=0;e0?m.dts=f.samples[f.samples.length-2].dts+f.samples[f.samples.length-2].duration:(u.tfdt?m.dts=u.tfdt.baseMediaDecodeTime:m.dts=0,f.first_traf_merged=!0),m.cts=m.dts,y.flags&d.TRUN_FLAGS_CTS_OFFSET&&(m.cts=m.dts+y.sample_composition_time_offset[r]),g=o,y.flags&d.TRUN_FLAGS_FLAGS?g=y.sample_flags[r]:0===r&&y.flags&d.TRUN_FLAGS_FIRST_FLAG&&(g=y.first_sample_flags),m.is_sync=!(g>>16&1),m.is_leading=g>>26&3,m.depends_on=g>>24&3,m.is_depended_on=g>>22&3,m.has_redundancy=g>>20&3,m.degradation_priority=65535&g;var _=!!(u.tfhd.flags&d.TFHD_FLAG_BASE_DATA_OFFSET),b=!!(u.tfhd.flags&d.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),w=!!(y.flags&d.TRUN_FLAGS_DATA_OFFSET),v=0;v=_?u.tfhd.base_data_offset:b||0===e?l.start:h,0===e&&0===r?w?m.offset=v+y.data_offset:m.offset=v:m.offset=h,h=m.offset+m.size,(u.sbgps.length>0||u.sgpds.length>0||f.mdia.minf.stbl.sbgps.length>0||f.mdia.minf.stbl.sgpds.length>0)&&c.setSampleGroupProperties(f,m,m.number_in_traf,u.sample_groups_info)}}if(u.subs){f.has_fragment_subsamples=!0;var S=u.first_sample_index;for(e=0;e-1))return null;var o=(r=this.stream.buffers[n]).byteLength-(s.offset+s.alreadyRead-r.fileStart);if(s.size-s.alreadyRead<=o)return a.debug("ISOFile","Getting sample #"+e+" data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-r.fileStart)+" read size: "+(s.size-s.alreadyRead)+" full size: "+s.size+")"),h.memcpy(s.data.buffer,s.alreadyRead,r,s.offset+s.alreadyRead-r.fileStart,s.size-s.alreadyRead),r.usedBytes+=s.size-s.alreadyRead,this.stream.logBufferLevel(),s.alreadyRead=s.size,s;if(0===o)return null;a.debug("ISOFile","Getting sample #"+e+" partial data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-r.fileStart)+" read size: "+o+" full size: "+s.size+")"),h.memcpy(s.data.buffer,s.alreadyRead,r,s.offset+s.alreadyRead-r.fileStart,o),s.alreadyRead+=o,r.usedBytes+=o,this.stream.logBufferLevel()}},c.prototype.releaseSample=function(t,e){var r=t.samples[e];return r.data?(this.samplesDataSize-=r.size,r.data=null,r.alreadyRead=0,r.size):0},c.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},c.prototype.getCodecs=function(){var t,e="";for(t=0;t0&&(e+=","),e+=r.mdia.minf.stbl.stsd.entries[0].getCodec()}return e},c.prototype.getTrexById=function(t){var e;if(!this.moov||!this.moov.mvex)return null;for(e=0;e0&&(r.protection=n.ipro.protections[n.iinf.item_infos[t].protection_index-1]),n.iinf.item_infos[t].item_type?r.type=n.iinf.item_infos[t].item_type:r.type="mime",r.content_type=n.iinf.item_infos[t].content_type,r.content_encoding=n.iinf.item_infos[t].content_encoding;if(n.iloc)for(t=0;t0&&f.property_index-1-1))return null;var l=(e=this.stream.buffers[o]).byteLength-(n.offset+n.alreadyRead-e.fileStart);if(!(n.length-n.alreadyRead<=l))return a.debug("ISOFile","Getting item #"+t+" extent #"+s+" partial data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-e.fileStart)+" read size: "+l+" full extent size: "+n.length+" full item size: "+r.size+")"),h.memcpy(r.data.buffer,r.alreadyRead,e,n.offset+n.alreadyRead-e.fileStart,l),n.alreadyRead+=l,r.alreadyRead+=l,e.usedBytes+=l,this.stream.logBufferLevel(),null;a.debug("ISOFile","Getting item #"+t+" extent #"+s+" data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-e.fileStart)+" read size: "+(n.length-n.alreadyRead)+" full extent size: "+n.length+" full item size: "+r.size+")"),h.memcpy(r.data.buffer,r.alreadyRead,e,n.offset+n.alreadyRead-e.fileStart,n.length-n.alreadyRead),e.usedBytes+=n.length-n.alreadyRead,this.stream.logBufferLevel(),r.alreadyRead+=n.length-n.alreadyRead,n.alreadyRead=n.length}}return r.alreadyRead===r.size?r:null},c.prototype.releaseItem=function(t){var e=this.items[t];if(!e.data)return 0;this.itemsDataSize-=e.size,e.data=null,e.alreadyRead=0;for(var r=0;r0?this.moov.traks[t].samples[0].duration:0),e.push(s)}return e},d.Box.prototype.printHeader=function(t){this.size+=8,this.size>4294967296&&(this.size+=8),"uuid"===this.type&&(this.size+=16),t.log(t.indent+"size:"+this.size),t.log(t.indent+"type:"+this.type)},d.FullBox.prototype.printHeader=function(t){this.size+=4,d.Box.prototype.printHeader.call(this,t),t.log(t.indent+"version:"+this.version),t.log(t.indent+"flags:"+this.flags)},d.Box.prototype.print=function(t){this.printHeader(t)},d.ContainerBox.prototype.print=function(t){this.printHeader(t);for(var e=0;e>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"next_track_id: "+this.next_track_id)},d.tkhdBox.prototype.print=function(t){d.FullBox.prototype.printHeader.call(this,t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"track_id: "+this.track_id),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"layer: "+this.layer),t.log(t.indent+"alternate_group: "+this.alternate_group),t.log(t.indent+"width: "+this.width),t.log(t.indent+"height: "+this.height)},(m={}).createFile=function(t,e){var r=new c(e);return r.discardMdatData=!(void 0===t||t),r},iT.createFile=m.createFile;let iA=/* @__PURE__ */ix(iT),iC={sampleRate:48e3,channelCount:2,codec:"mp4a.40.2"};function iI(t,e){let r=e.videoTracks[0],s={};if(null!=r){let n=function(t){for(let e of t.mdia.minf.stbl.stsd.entries){let t=e.avcC??e.hvcC??e.vpcC;if(null!=t){let e=new iA.DataStream(void 0,0,iA.DataStream.BIG_ENDIAN);return t.write(e),new Uint8Array(e.buffer.slice(8))}}throw Error("avcC, hvcC or VPX not found")}(t.getTrackById(r.id)).buffer,{descKey:a,type:o}=r.codec.startsWith("avc1")?{descKey:"avcDecoderConfigRecord",type:"avc1"}:r.codec.startsWith("hvc1")?{descKey:"hevcDecoderConfigRecord",type:"hvc1"}:{descKey:"",type:""};""!==a&&(s.videoTrackConf={timescale:r.timescale,duration:r.duration,width:r.video.width,height:r.video.height,brands:e.brands,type:o,[a]:n}),s.videoDecoderConf={codec:r.codec,codedHeight:r.video.height,codedWidth:r.video.width,description:n}}let n=e.audioTracks[0];if(null!=n){let e=iB(t);s.audioTrackConf={timescale:n.timescale,samplerate:n.audio.sample_rate,channel_count:n.audio.channel_count,hdlr:"soun",type:n.codec.startsWith("mp4a")?"mp4a":n.codec,description:iB(t)},s.audioDecoderConf={codec:n.codec.startsWith("mp4a")?iC.codec:n.codec,numberOfChannels:n.audio.channel_count,sampleRate:n.audio.sample_rate,...null==e?{}:function(t){var e;let r=null==(e=t.esd.descs[0])?void 0:e.descs[0];if(null==r)return{};let[s,n]=r.data;return{sampleRate:[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][((7&s)<<1)+(n>>7)],numberOfChannels:(127&n)>>3}}(e)}}return s}function iB(t,e="mp4a"){var r;let s=null==(r=t.moov)?void 0:r.traks.map(t=>t.mdia.minf.stbl.stsd.entries).flat().find(({type:t})=>t===e);return null==s?void 0:s.esds}class ik{constructor(){ey(this,"readable"),ey(this,"writable"),ew(this,A,0);let t=iA.createFile(),e=!1;this.readable=new ReadableStream({start:e=>{t.onReady=r=>{var s,n;let a=null==(s=r.videoTracks[0])?void 0:s.id;null!=a&&t.setExtractionOptions(a,"video",{nbSamples:100});let o=null==(n=r.audioTracks[0])?void 0:n.id;null!=o&&t.setExtractionOptions(o,"audio",{nbSamples:100}),e.enqueue({chunkType:"ready",data:{info:r,file:t}}),t.start()};let r={};t.onSamples=(s,n,a)=>{e.enqueue({chunkType:"samples",data:{id:s,type:n,samples:a.map(t=>({...t}))}}),r[s]=(r[s]??0)+a.length,t.releaseUsedSamples(s,r[s])},t.onFlush=()=>{e.close()}},cancel:()=>{t.stop(),e=!0}},{highWaterMark:50}),this.writable=new WritableStream({write:async r=>{if(e){this.writable.abort();return}let s=r.buffer;s.fileStart=eb(this,A),ev(this,A,eb(this,A)+s.byteLength),t.appendBuffer(s)},close:()=>{var e;t.flush(),t.stop(),null==(e=t.onFlush)||e.call(t)}})}}A=new WeakMap;let iF=0;function iR(t){return"file"===t.kind&&t.createReader instanceof Function}let iP=class t{constructor(t,e={audio:!0}){if(ew(this,C,e5.create(`MP4Clip id:${iF++},`)),ey(this,"ready"),ew(this,I,!1),ew(this,B,{duration:0,width:0,height:0,audioSampleRate:0,audioChanCount:0}),ew(this,k),ew(this,F,1),ew(this,R,[]),ew(this,P,[]),ew(this,z,null),ew(this,L,null),ew(this,D,{video:null,audio:null}),ew(this,M,{audio:!0}),ey(this,"tickInterceptor",async(t,e)=>e),ew(this,O,new AbortController),!(t instanceof ReadableStream)&&!iR(t)&&!Array.isArray(t.videoSamples))throw Error("Illegal argument");ev(this,M,{...e}),ev(this,F,"object"==typeof e.audio&&"volume"in e.audio?e.audio.volume:1);let r=async t=>(await eH(eb(this,k),t),await eb(this,k).stream());ev(this,k,iR(t)?t:"localFile"in t?t.localFile:e1()),this.ready=(t instanceof ReadableStream?r(t).then(t=>iL(t,eb(this,M))):iR(t)?t.stream().then(t=>iL(t,eb(this,M))):Promise.resolve(t)).then(async({videoSamples:t,audioSamples:e,decoderConf:r})=>{var s,n,a;ev(this,R,t),ev(this,P,e),ev(this,D,r);let{videoFrameFinder:o,audioFrameFinder:h}=(s={video:null==r.video?null:{...r.video,hardwareAcceleration:eb(this,M).__unsafe_hardwareAcceleration__},audio:r.audio},n=await eb(this,k).createReader(),{audioFrameFinder:null==(a=!1!==eb(this,M).audio?eb(this,F):null)||null==s.audio||0===e.length?null:new iM(n,e,s.audio,{volume:a,targetSampleRate:iC.sampleRate}),videoFrameFinder:null==s.video||0===t.length?null:new iD(n,t,s.video)});return ev(this,z,o),ev(this,L,h),ev(this,B,function(t,e,r){let s={duration:0,width:0,height:0,audioSampleRate:0,audioChanCount:0};null!=t.video&&e.length>0&&(s.width=t.video.codedWidth??0,s.height=t.video.codedHeight??0),null!=t.audio&&r.length>0&&(s.audioSampleRate=iC.sampleRate,s.audioChanCount=iC.channelCount);let n=0,a=0;if(e.length>0)for(let t=e.length-1;t>=0;t--){let r=e[t];if(!r.deleted){n=r.cts+r.duration;break}}if(r.length>0){let t=r.at(-1);a=t.cts+t.duration}return s.duration=Math.max(n,a),s}(r,t,e)),eb(this,C).info("MP4Clip meta:",eb(this,B)),{...eb(this,B)}})}get meta(){return{...eb(this,B)}}async tick(t){var e,r;if(t>=eb(this,B).duration)return await this.tickInterceptor(t,{audio:[],state:"done"});let[s,n]=await Promise.all([(null==(e=eb(this,L))?void 0:e.find(t))??[],null==(r=eb(this,z))?void 0:r.find(t)]);return null==n?await this.tickInterceptor(t,{audio:s,state:"success"}):await this.tickInterceptor(t,{video:n,audio:s,state:"success"})}async thumbnails(t=100,e){eb(this,O).abort(),ev(this,O,new AbortController);let r=eb(this,O).signal;await this.ready;let s="generate thumbnails aborted";if(r.aborted)throw Error(s);let{width:n,height:a}=eb(this,B),o=function(t,e,r){let s=new OffscreenCanvas(t,e),n=s.getContext("2d");return async a=>(n.drawImage(a,0,0,t,e),a.close(),await s.convertToBlob(r))}(t,Math.round(t/n*a),{quality:.1,type:"image/png"});return new Promise(async(t,n)=>{let a=[],h=eb(this,D).video;if(null==h||0===eb(this,R).length){l();return}async function l(){r.aborted||t(await Promise.all(a.map(async t=>({ts:t.ts,img:await t.img}))))}function u(t){a.push({ts:t.timestamp,img:o(t)})}r.addEventListener("abort",()=>{n(Error(s))});let{start:d=0,end:f=eb(this,B).duration,step:p}=e??{};if(p){let t=d,e=new iD(await eb(this,k).createReader(),eb(this,R),{...h,hardwareAcceleration:eb(this,M).__unsafe_hardwareAcceleration__});for(;t<=f&&!r.aborted;){let r=await e.find(t);r&&u(r),t+=p}e.destroy(),l()}else await iY(eb(this,R),eb(this,k),h,r,{start:d,end:f},(t,e)=>{u(t),e&&l()})})}async split(e){if(await this.ready,e<=0||e>=eb(this,B).duration)throw Error('"time" out of bounds');let[r,s]=function(t,e){if(0===t.length)return[];let r=0,s=0,n=-1;for(let a=0;a({...t}));for(let t=r;t({...t,cts:t.cts-e}));for(let t of h){if(t.cts>=0)break;t.deleted=!0,t.cts=-1}return[o,h]}(eb(this,R),e),[n,a]=function(t,e){if(0===t.length)return[];let r=-1;for(let s=0;st[s].cts)){r=s;break}if(-1===r)throw Error("Not found audio sample by time");return[t.slice(0,r),t.slice(r).map(t=>({...t,cts:t.cts-e}))]}(eb(this,P),e),o=new t({localFile:eb(this,k),videoSamples:r??[],audioSamples:n??[],decoderConf:eb(this,D)},eb(this,M)),h=new t({localFile:eb(this,k),videoSamples:s??[],audioSamples:a??[],decoderConf:eb(this,D)},eb(this,M));return await Promise.all([o.ready,h.ready]),[o,h]}async clone(){await this.ready;let e=new t({localFile:eb(this,k),videoSamples:[...eb(this,R)],audioSamples:[...eb(this,P)],decoderConf:eb(this,D)},eb(this,M));return await e.ready,e.tickInterceptor=this.tickInterceptor,e}async splitTrack(){await this.ready;let e=[];if(eb(this,R).length>0){let r=new t({localFile:eb(this,k),videoSamples:[...eb(this,R)],audioSamples:[],decoderConf:{video:eb(this,D).video,audio:null}},eb(this,M));await r.ready,r.tickInterceptor=this.tickInterceptor,e.push(r)}if(eb(this,P).length>0){let r=new t({localFile:eb(this,k),videoSamples:[],audioSamples:[...eb(this,P)],decoderConf:{audio:eb(this,D).audio,video:null}},eb(this,M));await r.ready,r.tickInterceptor=this.tickInterceptor,e.push(r)}return e}destroy(){var t,e;eb(this,I)||(eb(this,C).info("MP4Clip destroy"),ev(this,I,!0),null==(t=eb(this,z))||t.destroy(),null==(e=eb(this,L))||e.destroy())}};C=new WeakMap,I=new WeakMap,B=new WeakMap,k=new WeakMap,F=new WeakMap,R=new WeakMap,P=new WeakMap,z=new WeakMap,L=new WeakMap,D=new WeakMap,M=new WeakMap,O=new WeakMap;let iz=iP;async function iL(t,e={}){let r;let s={video:null,audio:null},n=[],a=[];return new Promise(async(h,l)=>{let u=-1,d=-1,f=iE(t.pipeThrough(new ik),{onChunk:async({chunkType:t,data:h})=>{if("ready"===t){r=h.info;let{videoDecoderConf:t,audioDecoderConf:e}=iI(h.file,h.info);s.video=t??null,s.audio=e??null,null==t&&null==e&&(f(),l(Error("MP4Clip must contain at least one video or audio track"))),e5.info("mp4BoxFile moov ready",{...h.info,tracks:null,videoTracks:null,audioTracks:null},s)}else if("samples"===t){if("video"===h.type)for(let t of(-1===u&&(u=h.samples[0].dts),h.samples))n.push(o(t,u,"video"));else if("audio"===h.type&&e.audio)for(let t of(-1===d&&(d=h.samples[0].dts),h.samples))a.push(o(t,d,"audio"))}},onDone:()=>{let t=n.at(-1)??a.at(-1);if(null==r){l(Error("MP4Clip stream is done, but not emit ready"));return}if(null==t){l(Error("MP4Clip stream not contain any sample"));return}let e=n[0];null!=e&&e.cts<2e5&&(e.duration+=e.cts,e.cts=0),e5.info("mp4 stream parsed"),h({videoSamples:n,audioSamples:a,decoderConf:s})}})});function o(t,e=0,r){return{...t,is_idr:"video"===r&&t.is_sync&&function(t){let e=new DataView(t.buffer),r=0;for(;r((null==eb(this,N)||t<=eb(this,G)||t-eb(this,G)>3e6)&&eb(this,Q).call(this,t),eb(this,Y).abort=!0,ev(this,G,t),ev(this,Y,{abort:!1,st:performance.now()}),await eb(this,$).call(this,t,eb(this,N),eb(this,Y)))),ew(this,W,0),ew(this,V,!1),ew(this,H,0),ew(this,X,[]),ew(this,j,0),ew(this,Z,0),ew(this,$,async(t,e,r)=>{if(null==e||"closed"===e.state||r.abort)return null;if(eb(this,X).length>0){let s=eb(this,X)[0];return ts.timestamp+(s.duration??0)?(s.close(),await eb(this,$).call(this,t,e,r)):(eb(this,X).length<10&&eb(this,q).call(this,e).catch(e=>{throw eb(this,Q).call(this,t),e}),s))}if(eb(this,K)||eb(this,j)0){if(performance.now()-r.st>3e3)throw Error(`MP4Clip.tick video timeout, ${JSON.stringify(eb(this,J).call(this))}`);await iv(15)}else{if(eb(this,H)>=this.samples.length)return null;try{await eb(this,q).call(this,e)}catch(e){throw eb(this,Q).call(this,t),e}}return await eb(this,$).call(this,t,e,r)}),ew(this,K,!1),ew(this,q,async t=>{var e,r;if(eb(this,K))return;ev(this,K,!0);let s=eb(this,H)+1,n=!1;for(;s{if(eb(this,V))throw t;ev(this,V,!0),e5.warn("Downgrade to software decode"),eb(this,Q).call(this)}}),ev(this,Z,eb(this,Z)+e.length)}}ev(this,H,s),ev(this,K,!1)}),ew(this,Q,t=>{var e,r;if(ev(this,K,!1),eb(this,X).forEach(t=>t.close()),ev(this,X,[]),null==t||0===t)ev(this,H,0);else{let e=0;for(let r=0;r{if(ev(this,j,eb(this,j)+1),-1===t.timestamp){t.close();return}let e=t;null==t.duration&&(e=new VideoFrame(t,{duration:eb(this,W)}),t.close()),eb(this,X).push(e)},error:t=>{e5.error(`MP4Clip VideoDecoder err: ${t.message}`)}})),eb(this,N).configure({...this.conf,...eb(this,V)?{hardwareAcceleration:"prefer-software"}:{}})}),ew(this,J,()=>{var t,e;return{time:eb(this,G),decState:null==(t=eb(this,N))?void 0:t.state,decQSize:null==(e=eb(this,N))?void 0:e.decodeQueueSize,decCusorIdx:eb(this,H),sampleLen:this.samples.length,inputCnt:eb(this,Z),outputCnt:eb(this,j),cacheFrameLen:eb(this,X).length,softDeocde:eb(this,V)}}),ey(this,"destroy",()=>{var t,e;(null==(t=eb(this,N))?void 0:t.state)!=="closed"&&(null==(e=eb(this,N))||e.close()),ev(this,N,null),eb(this,Y).abort=!0,eb(this,X).forEach(t=>t.close()),ev(this,X,[]),this.localFileReader.close()}),this.localFileReader=t,this.samples=e,this.conf=r}}N=new WeakMap,G=new WeakMap,Y=new WeakMap,W=new WeakMap,V=new WeakMap,H=new WeakMap,X=new WeakMap,j=new WeakMap,Z=new WeakMap,$=new WeakMap,K=new WeakMap,q=new WeakMap,Q=new WeakMap,J=new WeakMap;class iM{constructor(t,e,r,s){ew(this,tt,1),ew(this,te),ew(this,ti,null),ew(this,tr,{abort:!1,st:performance.now()}),ey(this,"find",async t=>{if(null==eb(this,ti)||t<=eb(this,ts)||t-eb(this,ts)>1e5){eb(this,tl).call(this),ev(this,ts,t);for(let e=0;e{if(null==e||r.abort||"closed"===e.state)return[];let s=Math.ceil(t*(eb(this,te)/1e6));if(0===s)return[];let n=eb(this,ta).frameCnt-s;if(n>0)return ne){let h=e-s;r[0].set(a.subarray(0,h),s),r[1].set(o.subarray(0,h),s),t.data[n][0]=a.subarray(h,a.length),t.data[n][1]=o.subarray(h,o.length);break}r[0].set(a,s),r[1].set(o,s),s+=a.length,n++}return t.data=t.data.slice(n),t.frameCnt-=e,r}(eb(this,ta),s);if(e.decodeQueueSize>10){if(performance.now()-r.st>3e3)throw r.abort=!0,Error(`MP4Clip.tick audio timeout, ${JSON.stringify(eb(this,tu).call(this))}`);await iv(15)}else{if(eb(this,tn)>=this.samples.length-1)return[];eb(this,th).call(this,e)}return eb(this,to).call(this,t,e,r)}),ew(this,th,t=>{if(t.decodeQueueSize>100)return;let e=[],r=eb(this,tn);for(;r=10))break}ev(this,tn,r),t.decode(e.map(t=>new EncodedAudioChunk({type:"key",timestamp:t.cts,duration:t.duration,data:t.data})))}),ew(this,tl,()=>{var t;ev(this,ts,0),ev(this,tn,0),ev(this,ta,{frameCnt:0,data:[]}),null==(t=eb(this,ti))||t.close(),ev(this,ti,function(t,e,r){let s=t=>{if(0!==t.length){if(1!==e.volume)for(let r of t)for(let t=0;t{let r=n;n+=1,t().then(t=>{e[r]=t,s()}).catch(t=>{e[r]=t,s()})}}(s),a=e.resampleRate!==t.sampleRate,o=new AudioDecoder({output:t=>{let r=im(t);a?n(()=>iw(r,t.sampleRate,{rate:e.resampleRate,chanCount:t.numberOfChannels})):s(r),t.close()},error:t=>{e5.error(`MP4Clip AudioDecoder err: ${t.message}`)}});return o.configure(t),{decode(t){for(let e of t)o.decode(e)},close(){"closed"!==o.state&&o.close()},get state(){return o.state},get decodeQueueSize(){return o.decodeQueueSize}}}(this.conf,{resampleRate:iC.sampleRate,volume:eb(this,tt)},t=>{eb(this,ta).data.push(t),eb(this,ta).frameCnt+=t[0].length}))}),ew(this,tu,()=>{var t,e;return{time:eb(this,ts),decState:null==(t=eb(this,ti))?void 0:t.state,decQSize:null==(e=eb(this,ti))?void 0:e.decodeQueueSize,decCusorIdx:eb(this,tn),sampleLen:this.samples.length,pcmLen:eb(this,ta).frameCnt}}),ey(this,"destroy",()=>{ev(this,ti,null),eb(this,tr).abort=!0,ev(this,ta,{frameCnt:0,data:[]}),this.localFileReader.close()}),this.localFileReader=t,this.samples=e,this.conf=r,ev(this,tt,s.volume),ev(this,te,s.targetSampleRate)}}async function iO(t,e){let r=t[0],s=t.at(-1);if(null==s)return[];let n=s.offset+s.size-r.offset;if(n<3e7){let s=new Uint8Array(await e.read(n,{at:r.offset}));return t.map(t=>{let e=t.offset-r.offset,n=s.subarray(e,e+t.size);return t.is_idr&&(n=iG(n)),new EncodedVideoChunk({type:t.is_sync?"key":"delta",timestamp:t.cts,duration:t.duration,data:n})})}return await Promise.all(t.map(async t=>{let r=await e.read(t.size,{at:t.offset});return t.is_idr&&(r=iG(new Uint8Array(r))),new EncodedVideoChunk({type:t.is_sync?"key":"delta",timestamp:t.cts,duration:t.duration,data:r})}))}function iN(t,e,r){let s=0;if("configured"===t.state){for(;s{if(!(t instanceof Error))throw t;if(t.message.includes("Decoding error")&&null!=r.onDecodingError){r.onDecodingError(t);return}if(!t.message.includes("Aborted due to close"))throw t})}}function iG(t){let e=new DataView(t.buffer);return(31&e.getUint8(4))==6?t.subarray(e.getUint32(0)+4):t}async function iY(t,e,r,s,n,a){let o=await e.createReader(),h=0,l=new VideoDecoder({output:t=>{let e=(h+=1)===u.length;a(t,e),e&&o.close()},error:e5.error});s.addEventListener("abort",()=>{o.close(),l.close()});let u=await iO(t.filter(t=>!t.deleted&&t.is_sync&&t.cts>=n.start&&t.cts<=n.end),o);0===u.length||s.aborted||(l.configure(r),iN(l,u,{}))}tt=new WeakMap,te=new WeakMap,ti=new WeakMap,tr=new WeakMap,ts=new WeakMap,tn=new WeakMap,ta=new WeakMap,to=new WeakMap,th=new WeakMap,tl=new WeakMap,tu=new WeakMap;let iW=class t{constructor(t){ew(this,tc),ey(this,"ready"),ew(this,td,{duration:0,width:0,height:0}),ew(this,tf,null),ew(this,tp,[]);let e=t=>(ev(this,tf,t),eb(this,td).width=t.width,eb(this,td).height=t.height,eb(this,td).duration=1/0,{...eb(this,td)});if(t instanceof ReadableStream)this.ready=new Response(t).blob().then(t=>createImageBitmap(t)).then(e);else if(t instanceof ImageBitmap)this.ready=Promise.resolve(e(t));else if(Array.isArray(t)&&t.every(t=>t instanceof VideoFrame)){ev(this,tp,t);let e=eb(this,tp)[0];if(null==e)throw Error("The frame count must be greater than 0");ev(this,td,{width:e.displayWidth,height:e.displayHeight,duration:eb(this,tp).reduce((t,e)=>t+(e.duration??0),0)}),this.ready=Promise.resolve({...eb(this,td),duration:1/0})}else if("type"in t)this.ready=eS(this,tc,tm).call(this,t.stream,t.type).then(()=>({width:eb(this,td).width,height:eb(this,td).height,duration:1/0}));else throw Error("Illegal arguments")}get meta(){return{...eb(this,td)}}async tick(t){if(null!=eb(this,tf))return{video:await createImageBitmap(eb(this,tf)),state:"success"};let e=t%eb(this,td).duration;return{video:(eb(this,tp).find(t=>e>=t.timestamp&&e<=t.timestamp+(t.duration??0))??eb(this,tp)[0]).clone(),state:"success"}}async split(e){if(await this.ready,null!=eb(this,tf))return[new t(await createImageBitmap(eb(this,tf))),new t(await createImageBitmap(eb(this,tf)))];let r=-1;for(let t=0;teb(this,tp)[t].timestamp)){r=t;break}if(-1===r)throw Error("Not found frame by time");let s=eb(this,tp).slice(0,r).map(t=>new VideoFrame(t)),n=eb(this,tp).slice(r).map(t=>new VideoFrame(t,{timestamp:t.timestamp-e}));return[new t(s),new t(n)]}async clone(){return await this.ready,new t(null==eb(this,tf)?eb(this,tp).map(t=>t.clone()):await createImageBitmap(eb(this,tf)))}destroy(){var t;e5.info("ImgClip destroy"),null==(t=eb(this,tf))||t.close(),eb(this,tp).forEach(t=>t.close())}};td=new WeakMap,tf=new WeakMap,tp=new WeakMap,tc=new WeakSet,tm=async function(t,e){ev(this,tp,await i_(t,e));let r=eb(this,tp)[0];if(null==r)throw Error("No frame available in gif");ev(this,td,{duration:eb(this,tp).reduce((t,e)=>t+(e.duration??0),0),width:r.codedWidth,height:r.codedHeight}),e5.info("ImgClip ready:",eb(this,td))};let iV=iW,iH=class t{constructor(t,e={}){ew(this,tw),ey(this,"ready"),ew(this,tg,{duration:0,width:0,height:0}),ew(this,ty,new Float32Array),ew(this,t_,new Float32Array),ew(this,tb),ew(this,tS,0),ew(this,tE,0),ev(this,tb,{loop:!1,volume:1,...e}),this.ready=eS(this,tw,tv).call(this,t).then(()=>({width:0,height:0,duration:e.loop?1/0:eb(this,tg).duration}))}get meta(){return{...eb(this,tg),sampleRate:iC.sampleRate,chanCount:2}}getPCMData(){return[eb(this,ty),eb(this,t_)]}async tick(t){if(!eb(this,tb).loop&&t>=eb(this,tg).duration)return{audio:[],state:"done"};let e=t-eb(this,tS);if(t3e6)return ev(this,tS,t),ev(this,tE,Math.ceil(eb(this,tS)/1e6*iC.sampleRate)),{audio:[new Float32Array(0),new Float32Array(0)],state:"success"};ev(this,tS,t);let r=Math.ceil(e/1e6*iC.sampleRate),s=eb(this,tE)+r,n=eb(this,tb).loop?[iS(eb(this,ty),eb(this,tE),s),iS(eb(this,t_),eb(this,tE),s)]:[eb(this,ty).slice(eb(this,tE),s),eb(this,t_).slice(eb(this,tE),s)];return ev(this,tE,s),{audio:n,state:"success"}}async split(e){await this.ready;let r=Math.ceil(e/1e6*iC.sampleRate);return[new t(this.getPCMData().map(t=>t.slice(0,r)),eb(this,tb)),new t(this.getPCMData().map(t=>t.slice(r)),eb(this,tb))]}async clone(){await this.ready;let e=new t(this.getPCMData(),eb(this,tb));return await e.ready,e}destroy(){ev(this,ty,new Float32Array(0)),ev(this,t_,new Float32Array(0)),e5.info("---- audioclip destroy ----")}};tg=new WeakMap,ty=new WeakMap,t_=new WeakMap,tb=new WeakMap,tw=new WeakSet,tv=async function(t){null==iH.ctx&&(iH.ctx=new AudioContext({sampleRate:iC.sampleRate}));let e=performance.now(),r=t instanceof ReadableStream?await iZ(t,iH.ctx):t;e5.info("Audio clip decoded complete:",performance.now()-e);let s=eb(this,tb).volume;if(1!==s)for(let t of r)for(let e=0;e{}),ey(this,"audioTrack"),ew(this,tT,null),ew(this,tA),ev(this,tA,t);let e=t.getVideoTracks()[0];if(null!=e){var r;let{width:t,height:s}=e.getSettings();e.contentHint="motion",eb(this,tU).width=t??0,eb(this,tU).height=s??0,ev(this,tT,new OffscreenCanvas(t??0,s??0)),ev(this,tx,(r=eb(this,tT).getContext("2d"),iE(new MediaStreamTrackProcessor({track:e}).readable,{onChunk:async t=>{r.drawImage(t,0,0),t.close()},onDone:async()=>{}})))}this.audioTrack=t.getAudioTracks()[0]??null,eb(this,tU).duration=1/0,this.ready=Promise.resolve(this.meta)}get meta(){return{...eb(this,tU)}}async tick(){return{video:null==eb(this,tT)?null:await createImageBitmap(eb(this,tT)),audio:[],state:"success"}}async split(){return[await this.clone(),await this.clone()]}async clone(){return new t(eb(this,tA).clone())}destroy(){eb(this,tA).getTracks().forEach(t=>t.stop()),eb(this,tx).call(this)}};tU=new WeakMap,tx=new WeakMap,tT=new WeakMap,tA=new WeakMap,ey(i$,"ctx",null);let iK=i$,iq=class t{constructor(t,e){var r;if(ew(this,tL),ey(this,"ready"),ew(this,tC,[]),ew(this,tI,{width:0,height:0,duration:0}),ew(this,tB,{color:"#FFF",textBgColor:null,type:"srt",fontSize:30,letterSpacing:null,bottomOffset:30,fontFamily:"Noto Sans SC",strokeStyle:"#000",lineWidth:null,lineCap:null,lineJoin:null,textShadow:{offsetX:2,offsetY:2,blur:4,color:"#000"},videoWidth:1280,videoHeight:720}),ew(this,tk),ew(this,tF),ew(this,tR,null),ew(this,tP,0),ew(this,tz,0),ev(this,tC,Array.isArray(t)?t:t.split(/\r|\n/).map(t=>t.trim()).filter(t=>t.length>0).map(t=>({lineStr:t,match:t.match(/(\d{2}:\d{2}:\d{2},\d{3}) --> (\d{2}:\d{2}:\d{2},\d{3})/)})).filter(({lineStr:t},e,r)=>{var s;return!(/^\d+$/.test(t)&&(null==(s=r[e+1])?void 0:s.match)!=null)}).reduce((t,{lineStr:e,match:r})=>{if(null==r){let r=t.at(-1);if(null==r)return t;r.text+=0===r.text.length?e:` ${e}`}else t.push({start:iJ(r[1]),end:iJ(r[2]),text:""});return t},[]).map(({start:t,end:e,text:r})=>({start:1e6*t,end:1e6*e,text:r}))),0===eb(this,tC).length)throw Error("No subtitles content");ev(this,tB,Object.assign(eb(this,tB),e)),ev(this,tz,null==e.textBgColor?0:(e.fontSize??50)*.2);let{fontSize:s,fontFamily:n,videoWidth:a,videoHeight:o,letterSpacing:h}=eb(this,tB);ev(this,tP,s+2*eb(this,tz)),ev(this,tk,new OffscreenCanvas(a,o)),ev(this,tF,eb(this,tk).getContext("2d")),eb(this,tF).font=`${s}px ${n}`,eb(this,tF).textAlign="center",eb(this,tF).textBaseline="top",eb(this,tF).letterSpacing=h??"0px",ev(this,tI,{width:a,height:o,duration:(null==(r=eb(this,tC).at(-1))?void 0:r.end)??0}),this.ready=Promise.resolve(this.meta)}get meta(){return{...eb(this,tI)}}async tick(t){var e,r;if(null!=eb(this,tR)&&t>=eb(this,tR).timestamp&&t<=eb(this,tR).timestamp+(eb(this,tR).duration??0))return{video:eb(this,tR).clone(),state:"success"};let s=0;for(;sn.end)return{state:"done"};if(teb(this,tC)[t].start)){r=t;break}if(-1===r)throw Error("Not found subtitle by time");let s=eb(this,tC).slice(0,r).map(t=>({...t})),n=s.at(-1),a=null;null!=n&&n.end>e&&(a={start:0,end:n.end-e,text:n.text},n.end=e);let o=eb(this,tC).slice(r).map(t=>({...t,start:t.start-e,end:t.end-e}));return null!=a&&o.unshift(a),[new t(s,eb(this,tB)),new t(o,eb(this,tB))]}async clone(){return new t(eb(this,tC).slice(0),eb(this,tB))}destroy(){var t;null==(t=eb(this,tR))||t.close()}};tC=new WeakMap,tI=new WeakMap,tB=new WeakMap,tk=new WeakMap,tF=new WeakMap,tR=new WeakMap,tP=new WeakMap,tz=new WeakMap,tL=new WeakSet,tD=function(t){let e=t.split(` `).reverse().map(t=>t.trim()),{width:r,height:s}=eb(this,tk),{color:n,fontSize:a,textBgColor:o,textShadow:h,strokeStyle:l,lineWidth:u,lineCap:d,lineJoin:f,bottomOffset:p}=eb(this,tB),c=eb(this,tF);c.clearRect(0,0,r,s),c.globalAlpha=.6;let m=p;for(let t of e){let e=c.measureText(t),p=r/2;null!=o&&(c.shadowOffsetX=0,c.shadowOffsetY=0,c.shadowBlur=0,c.fillStyle=o,c.globalAlpha=.5,c.fillRect(p-e.actualBoundingBoxLeft-eb(this,tz),s-m-eb(this,tP),e.width+2*eb(this,tz),eb(this,tP))),c.shadowColor=h.color,c.shadowOffsetX=h.offsetX,c.shadowOffsetY=h.offsetY,c.shadowBlur=h.blur,c.globalAlpha=1,null!=l&&(c.lineWidth=u??a/6,null!=d&&(c.lineCap=d),null!=f&&(c.lineJoin=f),c.strokeStyle=l,c.strokeText(t,p,s-m-eb(this,tP)+eb(this,tz))),c.fillStyle=n,c.fillText(t,p,s-m-eb(this,tP)+eb(this,tz)),m+=eb(this,tP)+.2*a}};let iQ=iq;function iJ(t){let e=t.match(/(\d{2}):(\d{2}):(\d{2}),(\d{3})/);if(null==e)throw Error(`time format error: ${t}`);let r=Number(e[1]);return 3600*r+60*Number(e[2])+Number(e[3])+Number(e[4])/1e3}class i0{constructor(){ew(this,tM,/* @__PURE__ */new Map),ey(this,"on",(t,e)=>{let r=eb(this,tM).get(t)??/* @__PURE__ */new Set;return r.add(e),eb(this,tM).has(t)||eb(this,tM).set(t,r),()=>{r.delete(e),0===r.size&&eb(this,tM).delete(t)}}),ey(this,"once",(t,e)=>{let r=this.on(t,(...t)=>{r(),e(...t)});return r}),ey(this,"emit",(t,...e)=>{let r=eb(this,tM).get(t);null!=r&&r.forEach(t=>t(...e))})}static forwardEvent(t,e,r){let s=r.map(r=>{let[s,n]=Array.isArray(r)?r:[r,r];return t.on(s,(...t)=>{e.emit(n,...t)})});return()=>{s.forEach(t=>t())}}destroy(){eb(this,tM).clear()}}tM=new WeakMap;let i1=(t,e)=>{let r=new Uint8Array(8);new DataView(r.buffer).setUint32(0,e);for(let e=0;e<4;e++)r[4+e]=t.charCodeAt(e);return r},i2=()=>{let t=new TextEncoder,e=t.encode("mdta"),r=t.encode("mp4 handler"),s=32+r.byteLength+1,n=new Uint8Array(s),a=new DataView(n.buffer);return n.set(i1("hdlr",s),0),a.setUint32(8,0),n.set(e,16),n.set(r,32),n},i3=t=>{let e=new TextEncoder,r=e.encode("mdta"),s=t.map(t=>{let s=e.encode(t),n=8+s.byteLength,a=new Uint8Array(n);return new DataView(a.buffer).setUint32(0,n),a.set(r,4),a.set(s,4+r.byteLength),a}),n=16+s.reduce((t,e)=>t+e.byteLength,0),a=new Uint8Array(n),o=new DataView(a.buffer);a.set(i1("keys",n),0),o.setUint32(8,0),o.setUint32(12,t.length);let h=16;for(let t of s)a.set(t,h),h+=t.byteLength;return a},i6=t=>{let e=new TextEncoder,r=e.encode("data"),s=Object.entries(t).map(([t,s],n)=>{let a=e.encode(s),o=24+a.byteLength,h=new Uint8Array(o),l=new DataView(h.buffer);return l.setUint32(0,o),l.setUint32(4,n+1),l.setUint32(8,16+a.byteLength),h.set(r,12),l.setUint32(16,1),h.set(a,24),h}),n=8+s.reduce((t,e)=>t+e.byteLength,0),a=new Uint8Array(n);a.set(i1("ilst",n),0);let o=8;for(let t of s)a.set(t,o),o+=t.byteLength;return a},i8=t=>{let e=i2(),r=i3(Object.keys(t)),s=i6(t),n=new Uint8Array(e.length+r.length+s.length);return n.set(e,0),n.set(r,e.length),n.set(s,e.length+r.length),n};function i4(t){e5.info("recodemux opts:",t);let e=iA.createFile(),r=new i0,s=(t,e)=>{let r=t.add("udta").add("meta");r.data=i8(e),r.size=r.data.byteLength},n=!1,a=()=>{null==e.moov||n||(n=!0,null!=t.metaDataTags&&s(e.moov,t.metaDataTags),null!=t.duration&&(e.moov.mvhd.duration=t.duration))};r.once("VideoReady",a),r.once("AudioReady",a);let o=null!=t.video?function(t,e,r){let s={timescale:1e6,width:t.width,height:t.height,brands:["isom","iso2","avc1","mp42","mp41"],avcDecoderConfigRecord:null,name:"Track created with WebAV"},n=-1,a=!1;r.once("AudioReady",()=>{a=!0});let o={encoder0:[],encoder1:[]},h=(t,a,h)=>{var l;if(-1===n&&null!=h){let t=null==(l=h.decoderConfig)?void 0:l.description;(function(t){let e=new Uint8Array(t);e[2].toString(2).slice(-2).includes("1")&&(e[2]=0)})(t),s.avcDecoderConfigRecord=t,n=e.addTrack(s),r.emit("VideoReady"),e5.info("VideoEncoder, video track ready, trackId:",n)}o[t].push(i7(a))},l="encoder1",u=0;function d(){if(!a)return;let t="encoder1"===l?"encoder0":"encoder1",r=o[l],s=o[t];if(0===r.length&&0===s.length)return;let h=r[0];if(null!=h&&h.cts-u<1e4){let t=function(t){let r=-1,s=0;for(;s0&&a.is_sync)break;e.addSample(n,a.data,a),r=a.cts+a.duration}return t.splice(0,s),r}(r);t>u&&(u=t)}let f=s[0];null!=f&&f.cts-u<1e4&&(l=t,d())}let f=is(d,15),p=i5(t,(t,e)=>h("encoder0",t,e)),c=i5(t,(t,e)=>h("encoder1",t,e)),m=0;return{get encodeQueueSize(){return p.encodeQueueSize+c.encodeQueueSize},encode:(t,e)=>{e.keyFrame&&(m+=1),(m%2==0?p:c).encode(t,e)},flush:async()=>{await Promise.all(["configured"===p.state?await p.flush():null,"configured"===c.state?await c.flush():null]),f(),d()},close:()=>{"configured"===p.state&&p.close(),"configured"===c.state&&c.close()}}}(t.video,e,r):null,h=null!=t.audio?function(t,e,r){let s={timescale:1e6,samplerate:t.sampleRate,channel_count:t.channelCount,hdlr:"soun",type:"aac"===t.codec?"mp4a":"Opus",name:"Track created with WebAV"},n=-1,a=[],o=!1;r.once("VideoReady",()=>{o=!0,a.forEach(t=>{let r=i7(t);e.addSample(n,r.data,r)}),a=[]});let h=new AudioEncoder({error:e5.error,output:(t,h)=>{var l;if(-1===n){let t=null==(l=h.decoderConfig)?void 0:l.description;n=e.addTrack({...s,description:null==t?void 0:function(t){let e=t.byteLength,r=new Uint8Array([0,0,0,0,3,23+e,0,2,0,4,18+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5,e,...new Uint8Array(t instanceof ArrayBuffer?t:t.buffer),6,1,2]),s=new iA.BoxParser.esdsBox(r.byteLength);return s.hdr_size=0,s.parse(new iA.DataStream(r,0,iA.DataStream.BIG_ENDIAN)),s}(t)}),r.emit("AudioReady"),e5.info("AudioEncoder, audio track ready, trackId:",n)}if(o){let r=i7(t);e.addSample(n,r.data,r)}else a.push(t)}});return h.configure({codec:"aac"===t.codec?iC.codec:"opus",sampleRate:t.sampleRate,numberOfChannels:t.channelCount,bitrate:128e3}),h}(t.audio,e,r):null;return null==t.video&&r.emit("VideoReady"),null==t.audio&&r.emit("AudioReady"),{encodeVideo:(t,e)=>{null==o||o.encode(t,e),t.close()},encodeAudio:t=>{null!=h&&(h.encode(t),t.close())},getEncodeQueueSize:()=>(null==o?void 0:o.encodeQueueSize)??(null==h?void 0:h.encodeQueueSize)??0,flush:async()=>{await Promise.all([null==o?void 0:o.flush(),(null==h?void 0:h.state)==="configured"?h.flush():null])},close:()=>{r.destroy(),null==o||o.close(),(null==h?void 0:h.state)==="configured"&&h.close()},mp4file:e}}function i5(t,e){let r=new VideoEncoder({error:e5.error,output:e});return r.configure({codec:t.codec,framerate:t.expectFPS,hardwareAcceleration:t.__unsafe_hardwareAcceleration__,bitrate:t.bitrate,width:t.width,height:t.height,alpha:"discard",avc:{format:"avc"}}),r}function i9(t,e,r){let s=0,n=0,a=t.boxes,o=!1,h=()=>{var e;if(!o){if(null==a.find(t=>"moof"===t.type))return null;o=!0}if(n>=a.length)return null;let r=new iA.DataStream;r.endianness=iA.DataStream.BIG_ENDIAN;let s=n;try{for(;s{let t=h();null==t||u||r.enqueue(t)},e),d=e=>{if(clearInterval(s),t.flush(),null!=e){r.error(e);return}let n=h();null==n||u||r.enqueue(n),u||r.close()},l&&d()},cancel(){u=!0,clearInterval(s),null==r||r()}}),stop:t=>{l||(l=!0,null==d||d(t))}}}function i7(t){let e=new ArrayBuffer(t.byteLength);t.copyTo(e);let r=t.timestamp;return{duration:t.duration??0,dts:r,cts:r,is_sync:"key"===t.type,data:e}}async function rt(t){let e=iA.createFile(),r=function(t){let e=0,r=t.boxes,s=[],n=0;async function a(){let a=c(r,e);e=r.length,s.forEach(({track:e,id:r})=>{let s=e.samples.at(-1);null!=s&&(n=Math.max(n,s.cts+s.duration)),t.releaseUsedSamples(r,e.samples.length),e.samples=[]}),t.mdats=[],t.moofs=[],null!=a&&await (null==d?void 0:d.write(a))}let o=[];function h(){if(o.length>0)return!0;let n=r.findIndex(t=>"moov"===t.type);if(-1===n)return!1;if(o=r.slice(0,n+1),e=n+1,0===s.length)for(let e=1;;e+=1){let r=t.getTrackById(e);if(null==r)break;s.push({track:r,id:e})}return!0}let l=0,u=e1(),d=null,f=(async()=>{d=await u.createWriter(),l=self.setInterval(()=>{h()&&a()},100)})(),p=!1;return async()=>{if(p)throw Error("File exported");if(p=!0,await f,clearInterval(l),!h()||null==d)return null;t.flush(),await a(),await (null==d?void 0:d.close());let e=o.find(t=>"moov"===t.type);if(null==e)return null;e.mvhd.duration=n;let r=e1(),s=c(o,0);return await eH(r,s),await eH(r,u,{overwrite:!1}),await r.stream()};function c(t,e){if(e>=t.length)return null;let r=new iA.DataStream;r.endianness=iA.DataStream.BIG_ENDIAN;for(let s=e;s{iE(d.pipeThrough(new ik),{onDone:t,onChunk:async({chunkType:t,data:d})=>{if("ready"===t){let{videoTrackConf:t,audioTrackConf:s}=iI(d.file,d.info);0===r&&null!=t&&(r=e.addTrack(t)),0===a&&null!=s&&(a=e.addTrack(s))}else if("samples"===t){let{type:t,samples:f}=d,p="video"===t?r:a,c="video"===t?s:o,m="video"===t?n:h;f.forEach(t=>{e.addSample(p,t.data,{duration:t.duration,dts:t.dts+c,cts:t.cts+m,is_sync:t.is_sync})});let g=f.at(-1);if(null==g)return;"video"===t?l=g:"audio"===t&&(u=g)}}})}),null!=l&&(s+=l.dts,n+=l.cts),null!=u&&(o+=u.dts,h+=u.cts)}async function ri(t){return await rt([t])}function rr(t,e){e5.info("mixinMP4AndAudio, opts:",{volume:e.volume,loop:e.loop});let r=iA.createFile(),{stream:s,stop:n}=i9(r,500),a=null,o=null,h=[],l=0,u=0,d=0,f=!0,p=48e3;function c(t){let r=h.map(r=>e.loop?iS(r,d,d+t):r.slice(d,d+t));if(d+=t,1!==e.volume)for(let t of r)for(let r=0;r{await (null==o?void 0:o.stop()),null==a||a.close(),n()},onChunk:async({chunkType:t,data:s})=>{if("ready"===t){let{videoTrackConf:t,audioTrackConf:n,audioDecoderConf:d}=iI(s.file,s.info);0===l&&null!=t&&(l=r.addTrack(t));let c=n??{timescale:1e6,samplerate:p,channel_count:iC.channelCount,hdlr:"soun",name:"SoundHandler",type:"mp4a"};0===u&&(u=r.addTrack(c),p=(null==n?void 0:n.samplerate)??p,f=null!=n);let m=new AudioContext({sampleRate:p});h=ig(await m.decodeAudioData(await new Response(e.stream).arrayBuffer())),null!=d&&(a=function(t){let e=[],r=new AudioDecoder({output:t=>{e.push(t)},error:e5.error});return r.configure(t),{decode:async t=>{t.forEach(t=>{r.decode(new EncodedAudioChunk({type:t.is_sync?"key":"delta",timestamp:1e6*t.cts/t.timescale,duration:1e6*t.duration/t.timescale,data:t.data}))}),await r.flush();let s=e;return e=[],s},close:()=>{r.close()}}}(d)),o=function(t,e){let r=new AudioEncoder({output:t=>{e(i7(t))},error:e5.error});r.configure({codec:t.codec,sampleRate:t.sampleRate,numberOfChannels:t.numberOfChannels});let s=null;function n(e,r){return new AudioData({timestamp:r,numberOfChannels:t.numberOfChannels,numberOfFrames:e.length/t.numberOfChannels,sampleRate:t.sampleRate,format:"f32-planar",data:e})}return{encode:async(t,e)=>{null!=s&&r.encode(n(s.data,s.ts)),s={data:t,ts:e}},stop:async()=>{null!=s&&(function(t,e,r){let s=t.length-1,n=Math.min(r/2,s);for(let r=0;rr.addSample(u,t.data,t))}else if("samples"===t){let{id:t,type:e,samples:n}=s;if("video"===e){n.forEach(e=>r.addSample(t,e.data,e)),f||await m(n);return}"audio"===e&&await g(n)}}}),s}var rs=/* @__PURE__ */function(){function t(){this.listeners={}}var e=t.prototype;return e.on=function(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push(e)},e.off=function(t,e){if(!this.listeners[t])return!1;var r=this.listeners[t].indexOf(e);return this.listeners[t]=this.listeners[t].slice(0),this.listeners[t].splice(r,1),r>-1},e.trigger=function(t){var e=this.listeners[t];if(e){if(2==arguments.length)for(var r=e.length,s=0;stypeof window?tO=window:"u">typeof iU?tO=iU:"u">typeof self?tO=self:tO={};let ra=/* @__PURE__ */ix(tO);/*! @name m3u8-parser @version 7.1.0 @license Apache-2.0 */class ro extends rs{constructor(){super(),this.buffer=""}push(t){let e;for(this.buffer+=t,e=this.buffer.indexOf(` `);e>-1;e=this.buffer.indexOf(` `))this.trigger("data",this.buffer.substring(0,e)),this.buffer=this.buffer.substring(e+1)}}let rh=function(t){let e=/([0-9.]*)?@?([0-9.]*)?/.exec(t||""),r={};return e[1]&&(r.length=parseInt(e[1],10)),e[2]&&(r.offset=parseInt(e[2],10)),r},rl=function(t){let e={};if(!t)return e;let r=t.split(RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))')),s=r.length,n;for(;s--;)""!==r[s]&&((n=/([^=]*)=(.*)/.exec(r[s]).slice(1))[0]=n[0].replace(/^\s+|\s+$/g,""),n[1]=n[1].replace(/^\s+|\s+$/g,""),n[1]=n[1].replace(/^['"](.*)['"]$/g,"$1"),e[n[0]]=n[1]);return e};class ru extends rs{constructor(){super(),this.customParsers=[],this.tagMappers=[]}push(t){let e,r;if(0!==(t=t.trim()).length){if("#"!==t[0]){this.trigger("data",{type:"uri",uri:t});return}this.tagMappers.reduce((e,r)=>{let s=r(t);return s===t?e:e.concat([s])},[t]).forEach(t=>{for(let e=0;et),this.customParsers.push(n=>{if(t.exec(n))return this.trigger("data",{type:"custom",data:r(n),customType:e,segment:s}),!0})}addTagMapper({expression:t,map:e}){this.tagMappers.push(r=>t.test(r)?e(r):r)}}let rd=t=>t.toLowerCase().replace(/-(\w)/g,t=>t[1].toUpperCase()),rf=function(t){let e={};return Object.keys(t).forEach(function(r){e[rd(r)]=t[r]}),e},rp=function(t){let{serverControl:e,targetDuration:r,partTargetDuration:s}=t;if(!e)return;let n="#EXT-X-SERVER-CONTROL",a="holdBack",o="partHoldBack",h=r&&3*r,l=s&&2*s;r&&!e.hasOwnProperty(a)&&(e[a]=h,this.trigger("info",{message:`${n} defaulting HOLD-BACK to targetDuration * 3 (${h}).`})),h&&e[a]{!r.uri&&(r.parts||r.preloadHints)&&(!r.map&&s&&(r.map=s),!r.key&&n&&(r.key=n),r.timeline||"number"!=typeof l||(r.timeline=l),this.manifest.preloadSegment=r)}),this.parseStream.on("data",function(p){let c,m;({tag(){(({version(){p.version&&(this.manifest.version=p.version)},"allow-cache"(){this.manifest.allowCache=p.allowed,"allowed"in p||(this.trigger("info",{message:"defaulting allowCache to YES"}),this.manifest.allowCache=!0)},byterange(){let t={};"length"in p&&(r.byterange=t,t.length=p.length,"offset"in p||(p.offset=u)),"offset"in p&&(r.byterange=t,t.offset=p.offset),u=t.offset+t.length},endlist(){this.manifest.endList=!0},inf(){"mediaSequence"in this.manifest||(this.manifest.mediaSequence=0,this.trigger("info",{message:"defaulting media sequence to zero"})),"discontinuitySequence"in this.manifest||(this.manifest.discontinuitySequence=0,this.trigger("info",{message:"defaulting discontinuity sequence to zero"})),p.title&&(r.title=p.title),p.duration>0&&(r.duration=p.duration),0===p.duration&&(r.duration=.01,this.trigger("info",{message:"updating zero segment duration to a small value"})),this.manifest.segments=e},key(){if(!p.attributes){this.trigger("warn",{message:"ignoring key declaration without attribute list"});return}if("NONE"===p.attributes.METHOD){n=null;return}if(!p.attributes.URI){this.trigger("warn",{message:"ignoring key declaration without URI"});return}if("com.apple.streamingkeydelivery"===p.attributes.KEYFORMAT){this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.apple.fps.1_0"]={attributes:p.attributes};return}if("com.microsoft.playready"===p.attributes.KEYFORMAT){this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.microsoft.playready"]={uri:p.attributes.URI};return}if("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"===p.attributes.KEYFORMAT){if(-1===["SAMPLE-AES","SAMPLE-AES-CTR","SAMPLE-AES-CENC"].indexOf(p.attributes.METHOD)){this.trigger("warn",{message:"invalid key method provided for Widevine"});return}if("SAMPLE-AES-CENC"===p.attributes.METHOD&&this.trigger("warn",{message:"SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead"}),"data:text/plain;base64,"!==p.attributes.URI.substring(0,23)){this.trigger("warn",{message:"invalid key URI provided for Widevine"});return}if(!(p.attributes.KEYID&&"0x"===p.attributes.KEYID.substring(0,2))){this.trigger("warn",{message:"invalid key ID provided for Widevine"});return}this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.widevine.alpha"]={attributes:{schemeIdUri:p.attributes.KEYFORMAT,keyId:p.attributes.KEYID.substring(2)},pssh:function(t){for(var e=ra.atob?ra.atob(t):ep.from(t,"base64").toString("binary"),r=new Uint8Array(e.length),s=0;stypeof p.attributes.IV&&(n.iv=p.attributes.IV)},"media-sequence"(){if(!isFinite(p.number)){this.trigger("warn",{message:"ignoring invalid media sequence: "+p.number});return}this.manifest.mediaSequence=p.number},"discontinuity-sequence"(){if(!isFinite(p.number)){this.trigger("warn",{message:"ignoring invalid discontinuity sequence: "+p.number});return}this.manifest.discontinuitySequence=p.number,l=p.number},"playlist-type"(){if(!/VOD|EVENT/.test(p.playlistType)){this.trigger("warn",{message:"ignoring unknown playlist type: "+p.playlist});return}this.manifest.playlistType=p.playlistType},map(){s={},p.uri&&(s.uri=p.uri),p.byterange&&(s.byterange=p.byterange),n&&(s.key=n)},"stream-inf"(){if(this.manifest.playlists=e,this.manifest.mediaGroups=this.manifest.mediaGroups||h,!p.attributes){this.trigger("warn",{message:"ignoring empty stream-inf attributes"});return}r.attributes||(r.attributes={}),rn(r.attributes,p.attributes)},media(){if(this.manifest.mediaGroups=this.manifest.mediaGroups||h,!(p.attributes&&p.attributes.TYPE&&p.attributes["GROUP-ID"]&&p.attributes.NAME)){this.trigger("warn",{message:"ignoring incomplete or missing media group"});return}let t=this.manifest.mediaGroups[p.attributes.TYPE];t[p.attributes["GROUP-ID"]]=t[p.attributes["GROUP-ID"]]||{},c=t[p.attributes["GROUP-ID"]],(m={default:/yes/i.test(p.attributes.DEFAULT)}).default?m.autoselect=!0:m.autoselect=/yes/i.test(p.attributes.AUTOSELECT),p.attributes.LANGUAGE&&(m.language=p.attributes.LANGUAGE),p.attributes.URI&&(m.uri=p.attributes.URI),p.attributes["INSTREAM-ID"]&&(m.instreamId=p.attributes["INSTREAM-ID"]),p.attributes.CHARACTERISTICS&&(m.characteristics=p.attributes.CHARACTERISTICS),p.attributes.FORCED&&(m.forced=/yes/i.test(p.attributes.FORCED)),c[p.attributes.NAME]=m},discontinuity(){l+=1,r.discontinuity=!0,this.manifest.discontinuityStarts.push(e.length)},"program-date-time"(){typeof this.manifest.dateTimeString>"u"&&(this.manifest.dateTimeString=p.dateTimeString,this.manifest.dateTimeObject=p.dateTimeObject),r.dateTimeString=p.dateTimeString,r.dateTimeObject=p.dateTimeObject;let{lastProgramDateTime:t}=this;this.lastProgramDateTime=new Date(p.dateTimeString).getTime(),null===t&&this.manifest.segments.reduceRight((t,e)=>(e.programDateTime=t-1e3*e.duration,e.programDateTime),this.lastProgramDateTime)},targetduration(){if(!isFinite(p.duration)||p.duration<0){this.trigger("warn",{message:"ignoring invalid target duration: "+p.duration});return}this.manifest.targetDuration=p.duration,rp.call(this,this.manifest)},start(){if(!p.attributes||isNaN(p.attributes["TIME-OFFSET"])){this.trigger("warn",{message:"ignoring start declaration without appropriate attribute list"});return}this.manifest.start={timeOffset:p.attributes["TIME-OFFSET"],precise:p.attributes.PRECISE}},"cue-out"(){r.cueOut=p.data},"cue-out-cont"(){r.cueOutCont=p.data},"cue-in"(){r.cueIn=p.data},skip(){this.manifest.skip=rf(p.attributes),this.warnOnMissingAttributes_("#EXT-X-SKIP",p.attributes,["SKIPPED-SEGMENTS"])},part(){a=!0;let t=this.manifest.segments.length,e=rf(p.attributes);r.parts=r.parts||[],r.parts.push(e),e.byterange&&(e.byterange.hasOwnProperty("offset")||(e.byterange.offset=d),d=e.byterange.offset+e.byterange.length);let s=r.parts.length-1;this.warnOnMissingAttributes_(`#EXT-X-PART #${s} for segment #${t}`,p.attributes,["URI","DURATION"]),this.manifest.renditionReports&&this.manifest.renditionReports.forEach((t,e)=>{t.hasOwnProperty("lastPart")||this.trigger("warn",{message:`#EXT-X-RENDITION-REPORT #${e} lacks required attribute(s): LAST-PART`})})},"server-control"(){let t=this.manifest.serverControl=rf(p.attributes);t.hasOwnProperty("canBlockReload")||(t.canBlockReload=!1,this.trigger("info",{message:"#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false"})),rp.call(this,this.manifest),t.canSkipDateranges&&!t.hasOwnProperty("canSkipUntil")&&this.trigger("warn",{message:"#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set"})},"preload-hint"(){let t=this.manifest.segments.length,e=rf(p.attributes),s=e.type&&"PART"===e.type;r.preloadHints=r.preloadHints||[],r.preloadHints.push(e),e.byterange&&(e.byterange.hasOwnProperty("offset")||(e.byterange.offset=s?d:0,s&&(d=e.byterange.offset+e.byterange.length)));let n=r.preloadHints.length-1;if(this.warnOnMissingAttributes_(`#EXT-X-PRELOAD-HINT #${n} for segment #${t}`,p.attributes,["TYPE","URI"]),e.type)for(let s=0;st.id===e.id);this.manifest.dateRanges[t]=rn(this.manifest.dateRanges[t],e),f[e.id]=rn(f[e.id],e),this.manifest.dateRanges.pop()}else f[e.id]=e},"independent-segments"(){this.manifest.independentSegments=!0},"content-steering"(){this.manifest.contentSteering=rf(p.attributes),this.warnOnMissingAttributes_("#EXT-X-CONTENT-STEERING",p.attributes,["SERVER-URI"])}})[p.tagType]||o).call(t)},uri(){r.uri=p.uri,e.push(r),!this.manifest.targetDuration||"duration"in r||(this.trigger("warn",{message:"defaulting segment duration to the target duration"}),r.duration=this.manifest.targetDuration),n&&(r.key=n),r.timeline=l,s&&(r.map=s),d=0,null!==this.lastProgramDateTime&&(r.programDateTime=this.lastProgramDateTime,this.lastProgramDateTime+=1e3*r.duration),r={}},comment(){},custom(){p.segment?(r.custom=r.custom||{},r.custom[p.customType]=p.data):(this.manifest.custom=this.manifest.custom||{},this.manifest.custom[p.customType]=p.data)}})[p.type].call(t)})}warnOnMissingAttributes_(t,e,r){let s=[];r.forEach(function(t){e.hasOwnProperty(t)||s.push(t)}),s.length&&this.trigger("warn",{message:`${t} lacks required attribute(s): ${s.join(", ")}`})}push(t){this.lineStream.push(t)}end(){this.lineStream.push(` `),this.manifest.dateRanges.length&&null===this.lastProgramDateTime&&this.trigger("warn",{message:"A playlist with EXT-X-DATERANGE tag must contain atleast one EXT-X-PROGRAM-DATE-TIME tag"}),this.lastProgramDateTime=null,this.trigger("end")}addParser(t){this.parseStream.addParser(t)}addTagMapper(t){this.parseStream.addTagMapper(t)}}async function rm(t,e=10){let r=new rc;r.push(await (await fetch(t)).text()),r.end();let s=r.manifest.segments.reduce((t,e)=>(t[e.map.uri]=t[e.map.uri]??[],t[e.map.uri].push(e),t),{}),n=new URL(t,location.href),a={};async function o(t,r,s){async function o(t){return(await fetch(t)).arrayBuffer()}let h=function(e){let n=0,a=0,o=[];async function h(){if(na[t]=o(t))}}async function h(t){let e=await a[t];return delete a[t],e}return{load(t=0,e=1/0){let r={},a=0,l=0;for(let[n,o]of Object.entries(s)){let s=0,h=[],u=-1,d=-1;for(let r=0;rt/1e6&&(u=r,a=(s-n.duration)*1e6),u>-1&&-1===d&&s>=e/1e6){d=r+1,l=1e6*s;break}}e>=1e6*s&&(d=o.length,l=1e6*s),d>u&&(h=h.concat(o.slice(u,d))),h.length>0&&(r[n]={actualStartTime:a,actualEndTime:l,segments:h})}return 0===Object.keys(r).length?null:Object.entries(r).map(([t,{actualStartTime:e,actualEndTime:r,segments:s}])=>{let a=0,l=new i0;return{actualStartTime:e,actualEndTime:r,on:l.on,stream:new ReadableStream({start:async e=>{o(s,e,l),e.enqueue(new Uint8Array(await (await fetch(new URL(t,n).href)).arrayBuffer()))},pull:async t=>{let e=new URL(s[a].uri,n).href;t.enqueue(new Uint8Array(await h(e))),(a+=1)>=s.length&&(t.close(),l.destroy())}})}})}}}let rg=`#version 300 es layout (location = 0) in vec4 a_position; layout (location = 1) in vec2 a_texCoord; out vec2 v_texCoord; void main () { gl_Position = a_position; v_texCoord = a_texCoord; } `,ry=`#version 300 es precision mediump float; out vec4 FragColor; in vec2 v_texCoord; uniform sampler2D frameTexture; uniform vec3 keyColor; // \u{8272}\u{5EA6}\u{7684}\u{76F8}\u{4F3C}\u{5EA6}\u{8BA1}\u{7B97} uniform float similarity; // \u{900F}\u{660E}\u{5EA6}\u{7684}\u{5E73}\u{6ED1}\u{5EA6}\u{8BA1}\u{7B97} uniform float smoothness; // \u{964D}\u{4F4E}\u{7EFF}\u{5E55}\u{9971}\u{548C}\u{5EA6}\u{FF0C}\u{63D0}\u{9AD8}\u{62A0}\u{56FE}\u{51C6}\u{786E}\u{5EA6} uniform float spill; vec2 RGBtoUV(vec3 rgb) { return vec2( rgb.r * -0.169 + rgb.g * -0.331 + rgb.b * 0.5 + 0.5, rgb.r * 0.5 + rgb.g * -0.419 + rgb.b * -0.081 + 0.5 ); } void main() { // \u{83B7}\u{53D6}\u{5F53}\u{524D}\u{50CF}\u{7D20}\u{7684}rgba\u{503C} vec4 rgba = texture(frameTexture, v_texCoord); // \u{8BA1}\u{7B97}\u{5F53}\u{524D}\u{50CF}\u{7D20}\u{4E0E}\u{7EFF}\u{5E55}\u{50CF}\u{7D20}\u{7684}\u{8272}\u{5EA6}\u{5DEE}\u{503C} vec2 chromaVec = RGBtoUV(rgba.rgb) - RGBtoUV(keyColor); // \u{8BA1}\u{7B97}\u{5F53}\u{524D}\u{50CF}\u{7D20}\u{4E0E}\u{7EFF}\u{5E55}\u{50CF}\u{7D20}\u{7684}\u{8272}\u{5EA6}\u{8DDD}\u{79BB}\u{FF08}\u{5411}\u{91CF}\u{957F}\u{5EA6}\u{FF09}, \u{8D8A}\u{76F8}\u{50CF}\u{5219}\u{8272}\u{5EA6}\u{8DDD}\u{79BB}\u{8D8A}\u{5C0F} float chromaDist = sqrt(dot(chromaVec, chromaVec)); // \u{8BBE}\u{7F6E}\u{4E86}\u{4E00}\u{4E2A}\u{76F8}\u{4F3C}\u{5EA6}\u{9608}\u{503C}\u{FF0C}baseMask\u{4E3A}\u{8D1F}\u{FF0C}\u{5219}\u{8868}\u{660E}\u{662F}\u{7EFF}\u{5E55}\u{FF0C}\u{4E3A}\u{6B63}\u{5219}\u{8868}\u{660E}\u{4E0D}\u{662F}\u{7EFF}\u{5E55} float baseMask = chromaDist - similarity; // \u{5982}\u{679C}baseMask\u{4E3A}\u{8D1F}\u{6570}\u{FF0C}fullMask\u{7B49}\u{4E8E}0\u{FF1B}baseMask\u{4E3A}\u{6B63}\u{6570}\u{FF0C}\u{8D8A}\u{5927}\u{FF0C}\u{5219}\u{900F}\u{660E}\u{5EA6}\u{8D8A}\u{4F4E} float fullMask = pow(clamp(baseMask / smoothness, 0., 1.), 1.5); rgba.a = fullMask; // \u{8BBE}\u{7F6E}\u{900F}\u{660E}\u{5EA6} // \u{5982}\u{679C}baseMask\u{4E3A}\u{8D1F}\u{6570}\u{FF0C}spillVal\u{7B49}\u{4E8E}0\u{FF1B}baseMask\u{4E3A}\u{6574}\u{6570}\u{FF0C}\u{8D8A}\u{5C0F}\u{FF0C}\u{9971}\u{548C}\u{5EA6}\u{8D8A}\u{4F4E} float spillVal = pow(clamp(baseMask / spill, 0., 1.), 1.5); float desat = clamp(rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722, 0., 1.); // \u{8BA1}\u{7B97}\u{5F53}\u{524D}\u{50CF}\u{7D20}\u{7684}\u{7070}\u{5EA6}\u{503C} rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal); FragColor = rgba; } `,r_=[-1,1,-1,-1,1,-1,1,-1,1,1,-1,1],rb=[0,1,0,0,1,0,1,0,1,1,0,1];function rw(t,e,r){let s=t.createShader(e);if(t.shaderSource(s,r),t.compileShader(s),!t.getShaderParameter(s,t.COMPILE_STATUS)){let e=t.getShaderInfoLog(s);throw t.deleteShader(s),Error(e??"An error occurred compiling the shaders")}return s}let rv=t=>{let e=null,r=null,s=t.keyColor,n=null;return async a=>{var o,h;if((null==e||null==r||null==n)&&(null==s&&(s=function(t){let e=new OffscreenCanvas(1,1).getContext("2d");e.drawImage(t,0,0);let{data:[r,s,n]}=e.getImageData(0,0,1,1);return[r,s,n]}(a)),{cvs:e,gl:r}=function(t){let e="document"in globalThis?globalThis.document.createElement("canvas"):new OffscreenCanvas(t.width,t.height);e.width=t.width,e.height=t.height;let r=e.getContext("webgl2",{premultipliedAlpha:!1,alpha:!0});if(null==r)throw Error("Cant create gl context");let s=function(t,e,r){let s=rw(t,t.VERTEX_SHADER,e),n=rw(t,t.FRAGMENT_SHADER,r),a=t.createProgram();if(t.attachShader(a,s),t.attachShader(a,n),t.linkProgram(a),!t.getProgramParameter(a,t.LINK_STATUS))throw Error(t.getProgramInfoLog(a)??"Unable to initialize the shader program");return a}(r,rg,ry);r.useProgram(s),r.uniform3fv(r.getUniformLocation(s,"keyColor"),t.keyColor.map(t=>t/255)),r.uniform1f(r.getUniformLocation(s,"similarity"),t.similarity),r.uniform1f(r.getUniformLocation(s,"smoothness"),t.smoothness),r.uniform1f(r.getUniformLocation(s,"spill"),t.spill);let n=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,n),r.bufferData(r.ARRAY_BUFFER,new Float32Array(r_),r.STATIC_DRAW);let a=r.getAttribLocation(s,"a_position");r.vertexAttribPointer(a,2,r.FLOAT,!1,2*Float32Array.BYTES_PER_ELEMENT,0),r.enableVertexAttribArray(a);let o=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(rb),r.STATIC_DRAW);let h=r.getAttribLocation(s,"a_texCoord");return r.vertexAttribPointer(h,2,r.FLOAT,!1,2*Float32Array.BYTES_PER_ELEMENT,0),r.enableVertexAttribArray(h),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,1),{cvs:e,gl:r}}({...a instanceof VideoFrame?{width:a.codedWidth,height:a.codedHeight}:{width:a.width,height:a.height},keyColor:s,...t}),n=function(t){let e=t.createTexture();if(null==e)throw Error("Create WebGL texture error");t.bindTexture(t.TEXTURE_2D,e);let r=t.RGBA,s=t.RGBA,n=t.UNSIGNED_BYTE,a=new Uint8Array([0,0,255,255]);return t.texImage2D(t.TEXTURE_2D,0,r,1,1,0,s,n,a),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}(r)),o=r,h=n,o.bindTexture(o.TEXTURE_2D,h),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,a),o.drawArrays(o.TRIANGLES,0,6),null!=globalThis.VideoFrame&&a instanceof globalThis.VideoFrame){let t=new VideoFrame(e,{alpha:"keep",timestamp:a.timestamp,duration:a.duration??void 0});return a.close(),t}return createImageBitmap(e,{imageOrientation:a instanceof ImageBitmap?"flipY":"none"})}},rS=class t{constructor(t,e,r,s,n){ew(this,tX),ew(this,tN,new i0),ey(this,"on",eb(this,tN).on),ew(this,tG,0),ew(this,tY,0),ew(this,tW,0),ew(this,tV,0),ew(this,tH,0),ey(this,"master",null),ey(this,"fixedAspectRatio",!1),this.x=t??0,this.y=e??0,this.w=r??0,this.h=s??0,this.master=n??null}get x(){return eb(this,tG)}set x(t){eS(this,tX,tj).call(this,"x",t)}get y(){return eb(this,tY)}set y(t){eS(this,tX,tj).call(this,"y",t)}get w(){return eb(this,tW)}set w(t){eS(this,tX,tj).call(this,"w",t)}get h(){return eb(this,tV)}set h(t){eS(this,tX,tj).call(this,"h",t)}get angle(){return eb(this,tH)}set angle(t){eS(this,tX,tj).call(this,"angle",t)}get center(){let{x:t,y:e,w:r,h:s}=this;return{x:t+r/2,y:e+s/2}}get ctrls(){let{w:e,h:r}=this,s=t.CTRL_SIZE,n=s/2,a=e/2,o=r/2,h=1.5*s,l=h/2;return{...this.fixedAspectRatio?{}:{t:new t(-n,-o-n,s,s,this),b:new t(-n,o-n,s,s,this),l:new t(-a-n,-n,s,s,this),r:new t(a-n,-n,s,s,this)},lt:new t(-a-n,-o-n,s,s,this),lb:new t(-a-n,o-n,s,s,this),rt:new t(a-n,-o-n,s,s,this),rb:new t(a-n,o-n,s,s,this),rotate:new t(-l,-o-2*s-l,h,h,this)}}clone(){let{x:e,y:r,w:s,h:n,master:a}=this,o=new t(e,r,s,n,a);return o.angle=this.angle,o.fixedAspectRatio=this.fixedAspectRatio,o}checkHit(t,e){let{angle:r,center:s,x:n,y:a,w:o,h:h,master:l}=this,u=(null==l?void 0:l.center)??s,d=(null==l?void 0:l.angle)??r;null==l&&(n-=u.x,a-=u.y);let f=t-u.x,p=e-u.y,c=f,m=p;return 0!==d&&(c=f*Math.cos(d)+p*Math.sin(d),m=p*Math.cos(d)-f*Math.sin(d)),!(cn+o||ma+h)}};tN=new WeakMap,tG=new WeakMap,tY=new WeakMap,tW=new WeakMap,tV=new WeakMap,tH=new WeakMap,tX=new WeakSet,tj=function(t,e){let r=this[t]!==e;switch(t){case"x":ev(this,tG,e);break;case"y":ev(this,tY,e);break;case"w":ev(this,tW,e);break;case"h":ev(this,tV,e);break;case"angle":ev(this,tH,e)}r&&eb(this,tN).emit("propsChange",{[t]:e})},ey(rS,"CTRL_SIZE",16),ey(rS,"CTRL_KEYS",["t","b","l","r","lt","lb","rt","rb","rotate"]);let rE=rS;class rU{constructor(){ey(this,"rect",new rE),ey(this,"time",{offset:0,duration:0}),ey(this,"visible",!0),ew(this,tZ,new i0),ey(this,"on",eb(this,tZ).on),ew(this,t$,0),ey(this,"opacity",1),ey(this,"flip",null),ew(this,tK,null),ew(this,tq,null),ey(this,"ready",Promise.resolve()),this.rect.on("propsChange",t=>{eb(this,tZ).emit("propsChange",{rect:t})})}get zIndex(){return eb(this,t$)}set zIndex(t){let e=eb(this,t$)!==t;ev(this,t$,t),e&&eb(this,tZ).emit("propsChange",{zIndex:t})}_render(t){let{rect:{center:e,angle:r}}=this;t.setTransform("horizontal"===this.flip?-1:1,0,0,"vertical"===this.flip?-1:1,e.x,e.y),t.rotate((null==this.flip?1:-1)*r),t.globalAlpha=this.opacity}setAnimation(t,e){ev(this,tK,Object.entries(t).map(([t,e])=>{let r={from:0,to:100}[t]??Number(t.slice(0,-1));if(isNaN(r)||r>100||r<0)throw Error("keyFrame must between 0~100");return[r/100,e]})),ev(this,tq,Object.assign({},eb(this,tq),{duration:1e6*e.duration,delay:(e.delay??0)*1e6,iterCount:e.iterCount??1/0}))}animate(t){if(null==eb(this,tK)||null==eb(this,tq)||t=r.iterCount)return{};let s=t%r.duration,n=t===r.duration?1:s/r.duration,a=e.findIndex(t=>t[0]>=n);if(-1===a)return{};let o=e[a-1],h=e[a],l=h[1];if(null==o)return l;let u=o[1],d={},f=(n-o[0])/(h[0]-o[0]);for(let t in l)null!=u[t]&&(d[t]=(l[t]-u[t])*f+u[t]);return d}(t,eb(this,tK),eb(this,tq));for(let t in e)switch(t){case"opacity":this.opacity=e[t];break;case"x":case"y":case"w":case"h":case"angle":this.rect[t]=e[t]}}copyStateTo(t){ev(t,tK,eb(this,tK)),ev(t,tq,eb(this,tq)),t.visible=this.visible,t.zIndex=this.zIndex,t.opacity=this.opacity,t.flip=this.flip,t.rect=this.rect.clone(),t.time={...this.time}}destroy(){eb(this,tZ).destroy()}}tZ=new WeakMap,t$=new WeakMap,tK=new WeakMap,tq=new WeakMap;let rx=class t extends rU{constructor(t){super(),ew(this,tQ),ew(this,tJ,null),ew(this,t0,!1),ev(this,tQ,t),this.ready=t.ready.then(({width:t,height:e,duration:r})=>{this.rect.w=0===this.rect.w?t:this.rect.w,this.rect.h=0===this.rect.h?e:this.rect.h,this.time.duration=0===this.time.duration?r:this.time.duration})}async offscreenRender(t,e){var r;this.animate(e),super._render(t);let{w:s,h:n}=this.rect,{video:a,audio:o,state:h}=await eb(this,tQ).tick(e);if("done"===h)return{audio:o??[],done:!0};let l=a??eb(this,tJ);return null!=l&&t.drawImage(l,-s/2,-n/2,s,n),null!=a&&(null==(r=eb(this,tJ))||r.close(),ev(this,tJ,a)),{audio:o??[],done:!1}}async clone(){let e=new t(await eb(this,tQ).clone());return await e.ready,this.copyStateTo(e),e}destroy(){var t;eb(this,t0)||(ev(this,t0,!0),e5.info("OffscreenSprite destroy"),super.destroy(),null==(t=eb(this,tJ))||t.close(),ev(this,tJ,null),eb(this,tQ).destroy())}};tQ=new WeakMap,tJ=new WeakMap,t0=new WeakMap;let rT=rx;class rA extends rU{constructor(t){super(),ew(this,t8),ew(this,t1),ew(this,t2,null),ew(this,t3,[]),ew(this,t6,!1),ew(this,t5,-1),ew(this,t9,!1),ev(this,t1,t),this.ready=t.ready.then(({width:t,height:e,duration:r})=>{this.rect.w=0===this.rect.w?t:this.rect.w,this.rect.h=0===this.rect.h?e:this.rect.h,this.time.duration=0===this.time.duration?r:this.time.duration})}getClip(){return eb(this,t1)}preFrame(t){eS(this,t8,t4).call(this,t)}render(t,e){this.animate(e),super._render(t);let{w:r,h:s}=this.rect;eb(this,t5)!==e&&eS(this,t8,t4).call(this,e),ev(this,t5,e);let n=eb(this,t3);ev(this,t3,[]);let a=eb(this,t2);return null!=a&&t.drawImage(a,-r/2,-s/2,r,s),{audio:n}}destroy(){var t;eb(this,t9)||(ev(this,t9,!0),e5.info("VisibleSprite destroy"),super.destroy(),null==(t=eb(this,t2))||t.close(),ev(this,t2,null),eb(this,t1).destroy())}}t1=new WeakMap,t2=new WeakMap,t3=new WeakMap,t6=new WeakMap,t8=new WeakSet,t4=function(t){eb(this,t6)||(ev(this,t6,!0),eb(this,t1).tick(t).then(({video:t,audio:e})=>{var r;null!=t&&(null==(r=eb(this,t2))||r.close(),ev(this,t2,t??null)),ev(this,t3,e??[])}).finally(()=>{ev(this,t6,!1)}))},t5=new WeakMap,t9=new WeakMap;let rC=0;async function rI(t){t()>50&&(await iv(15),await rI(t))}class rB{constructor(t={}){ew(this,eh),ew(this,t7,e5.create(`id:${rC++},`)),ew(this,et,!1),ew(this,ee,[]),ew(this,ei),ew(this,er),ew(this,es,null),ew(this,en),ew(this,ea),ew(this,eo,new i0),ey(this,"on",eb(this,eo).on);let{width:e=0,height:r=0}=t;ev(this,ei,new OffscreenCanvas(e,r));let s=eb(this,ei).getContext("2d",{alpha:!1});if(null==s)throw Error("Can not create 2d offscreen context");ev(this,er,s),ev(this,en,Object.assign({bgColor:"#000",width:0,height:0,videoCodec:"avc1.42E032",audio:!0,bitrate:5e6,metaDataTags:null},t)),ev(this,ea,e*r>0)}static async isSupported(t={videoCodec:"avc1.42E032"}){return null!=self.OffscreenCanvas&&null!=self.VideoEncoder&&null!=self.VideoDecoder&&null!=self.VideoFrame&&null!=self.AudioEncoder&&null!=self.AudioDecoder&&null!=self.AudioData&&((await self.VideoEncoder.isConfigSupported({codec:t.videoCodec,width:1280,height:720})).supported??!1)&&(await self.AudioEncoder.isConfigSupported({codec:iC.codec,sampleRate:iC.sampleRate,numberOfChannels:iC.channelCount})).supported}async addSprite(t,e={}){eb(this,t7).info("Combinator add sprite",t);let r=await t.clone();eb(this,t7).info("Combinator add sprite ready",t),eb(this,ee).push(Object.assign(r,{main:e.main??!1,expired:!1})),eb(this,ee).sort((t,e)=>t.zIndex-e.zIndex)}output(){if(0===eb(this,ee).length)throw Error("No sprite added");let t=eb(this,ee).find(t=>t.main),e=null!=t?t.time.offset+t.time.duration:Math.max(...eb(this,ee).map(t=>t.time.offset+t.time.duration));if(e===1/0)throw Error("Unable to determine the end time, please specify a main sprite, or limit the duration of ImgClip, AudioCli");-1===e&&eb(this,t7).warn("Unable to determine the end time, process value don't update"),eb(this,t7).info(`start combinate video, maxTime:${e}`);let r=eS(this,eh,el).call(this,e),s=performance.now(),n=eS(this,eh,eu).call(this,r,e,{onProgress:t=>{eb(this,t7).debug("OutputProgress:",t),eb(this,eo).emit("OutputProgress",t)},onEnded:async()=>{await r.flush(),eb(this,t7).info("===== output ended =====, cost:",performance.now()-s),eb(this,eo).emit("OutputProgress",1),this.destroy()},onError:t=>{eb(this,eo).emit("error",t),o(t),this.destroy()}});ev(this,es,()=>{n(),r.close(),o()});let{stream:a,stop:o}=i9(r.mp4file,500,this.destroy);return a}destroy(){var t;eb(this,et)||(ev(this,et,!0),null==(t=eb(this,es))||t.call(this),eb(this,eo).destroy())}}t7=new WeakMap,et=new WeakMap,ee=new WeakMap,ei=new WeakMap,er=new WeakMap,es=new WeakMap,en=new WeakMap,ea=new WeakMap,eo=new WeakMap,eh=new WeakSet,el=function(t){let{width:e,height:r,videoCodec:s,bitrate:n,audio:a,metaDataTags:o}=eb(this,en);return i4({video:eb(this,ea)?{width:e,height:r,expectFPS:30,codec:s,bitrate:n,__unsafe_hardwareAcceleration__:eb(this,en).__unsafe_hardwareAcceleration__}:null,audio:!1===a?null:{codec:"aac",sampleRate:iC.sampleRate,channelCount:iC.channelCount},duration:t,metaDataTags:o})},eu=function(t,e,{onProgress:r,onEnded:s,onError:n}){let a=0,o=!1,h=null;(async()=>{let r=0,{width:n,height:l}=eb(this,ei),d=eb(this,er),f=0;for(;;){if(null!=h)return;if(o||-1!==e&&f>e||0===eb(this,ee).length){u(),await s();return}a=f/e,d.fillStyle=eb(this,en).bgColor,d.fillRect(0,0,n,l);let p=[];for(let t of eb(this,ee)){if(o)break;if(f0&&f>t.time.offset+t.time.duration||r){if(t.main){u(),await s();return}t.destroy(),t.expired=!0}}if(o)return;if(!1!==eb(this,en).audio){if(p.flat().every(t=>0===t.length))t.encodeAudio(function(t,e,r){let s=Math.floor(33e3*r/1e6);return new AudioData({timestamp:t,numberOfChannels:iC.channelCount,numberOfFrames:s,sampleRate:r,format:"f32-planar",data:new Float32Array(2*s)})}(f,0,iC.sampleRate));else{let e=ib(p);t.encodeAudio(new AudioData({timestamp:f,numberOfChannels:iC.channelCount,numberOfFrames:e.length/iC.channelCount,sampleRate:iC.sampleRate,format:"f32-planar",data:e}))}}if(eb(this,ea)){let e=new VideoFrame(eb(this,ei),{duration:33e3,timestamp:f});t.encodeVideo(e,{keyFrame:r%150==0}),d.resetTransform(),d.clearRect(0,0,n,l),r+=1}f+=33e3,await rI(t.getEncodeQueueSize)}})().catch(t=>{h=t,eb(this,t7).error(t),u(),n(t)});let l=setInterval(()=>{r(a)},500),u=()=>{o||(o=!0,clearInterval(l),eb(this,ee).forEach(t=>t.destroy()))};return u}},{"718a311db185ef08":"juSMc","@parcel/transformer-js/src/esmodule-helpers.js":"9pCYc"}],juSMc:[function(t,e,r){var s=t("9c62938f1dccc73c"),n=t("aceacb6a4531a9d2"),a="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function o(t){if(t>2147483647)throw RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,h.prototype),e}function h(t,e,r){if("number"==typeof t){if("string"==typeof e)throw TypeError('The "string" argument must be of type string. Received type number');return d(t)}return l(t,e,r)}function l(t,e,r){if("string"==typeof t)return function(t,e){if(("string"!=typeof e||""===e)&&(e="utf8"),!h.isEncoding(e))throw TypeError("Unknown encoding: "+e);var r=0|m(t,e),s=o(r),n=s.write(t,e);return n!==r&&(s=s.slice(0,n)),s}(t,e);if(ArrayBuffer.isView(t))return function(t){if(B(t,Uint8Array)){var e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return f(t)}(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(B(t,ArrayBuffer)||t&&B(t.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(B(t,SharedArrayBuffer)||t&&B(t.buffer,SharedArrayBuffer)))return p(t,e,r);if("number"==typeof t)throw TypeError('The "value" argument must not be of type number. Received type number');var s=t.valueOf&&t.valueOf();if(null!=s&&s!==t)return h.from(s,e,r);var n=function(t){if(h.isBuffer(t)){var e,r=0|c(t.length),s=o(r);return 0===s.length||t.copy(s,0,0,r),s}return void 0!==t.length?"number"!=typeof t.length||(e=t.length)!=e?o(0):f(t):"Buffer"===t.type&&Array.isArray(t.data)?f(t.data):void 0}(t);if(n)return n;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return h.from(t[Symbol.toPrimitive]("string"),e,r);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function u(t){if("number"!=typeof t)throw TypeError('"size" argument must be of type number');if(t<0)throw RangeError('The value "'+t+'" is invalid for option "size"')}function d(t){return u(t),o(t<0?0:0|c(t))}function f(t){for(var e=t.length<0?0:0|c(t.length),r=o(e),s=0;s=2147483647)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function m(t,e){if(h.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,s=arguments.length>2&&!0===arguments[2];if(!s&&0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return A(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return C(t).length;default:if(n)return s?-1:A(t).length;e=(""+e).toLowerCase(),n=!0}}function g(t,e,r){var n,a,o=!1;if((void 0===e||e<0)&&(e=0),e>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(e>>>=0)))return"";for(t||(t="utf8");;)switch(t){case"hex":return function(t,e,r){var s=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>s)&&(r=s);for(var n="",a=e;a2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),(a=r=+r)!=a&&(r=n?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(n)return -1;r=t.length-1}else if(r<0){if(!n)return -1;r=0}if("string"==typeof e&&(e=h.from(e,s)),h.isBuffer(e))return 0===e.length?-1:b(t,e,r,s,n);if("number"==typeof e)return(e&=255,"function"==typeof Uint8Array.prototype.indexOf)?n?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,s,n);throw TypeError("val must be string, number or Buffer")}function b(t,e,r,s,n){var a,o=1,h=t.length,l=e.length;if(void 0!==s&&("ucs2"===(s=String(s).toLowerCase())||"ucs-2"===s||"utf16le"===s||"utf-16le"===s)){if(t.length<2||e.length<2)return -1;o=2,h/=2,l/=2,r/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(n){var d=-1;for(a=r;ah&&(r=h-l),a=r;a>=0;a--){for(var f=!0,p=0;p239?4:u>223?3:u>191?2:1;if(n+f<=r)switch(f){case 1:u<128&&(d=u);break;case 2:(192&(a=t[n+1]))==128&&(l=(31&u)<<6|63&a)>127&&(d=l);break;case 3:a=t[n+1],o=t[n+2],(192&a)==128&&(192&o)==128&&(l=(15&u)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(d=l);break;case 4:a=t[n+1],o=t[n+2],h=t[n+3],(192&a)==128&&(192&o)==128&&(192&h)==128&&(l=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&h)>65535&&l<1114112&&(d=l)}null===d?(d=65533,f=1):d>65535&&(d-=65536,s.push(d>>>10&1023|55296),d=56320|1023&d),s.push(d),n+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);for(var r="",s=0;sr)throw RangeError("Trying to access beyond buffer length")}function S(t,e,r,s,n,a){if(!h.isBuffer(t))throw TypeError('"buffer" argument must be a Buffer instance');if(e>n||et.length)throw RangeError("Index out of range")}function E(t,e,r,s,n,a){if(r+s>t.length||r<0)throw RangeError("Index out of range")}function U(t,e,r,s,a){return e=+e,r>>>=0,a||E(t,e,r,4,34028234663852886e22,-34028234663852886e22),n.write(t,e,r,s,23,4),r+4}function x(t,e,r,s,a){return e=+e,r>>>=0,a||E(t,e,r,8,17976931348623157e292,-17976931348623157e292),n.write(t,e,r,s,52,8),r+8}r.Buffer=h,r.SlowBuffer=function(t){return+t!=t&&(t=0),h.alloc(+t)},r.INSPECT_MAX_BYTES=50,r.kMaxLength=2147483647,h.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),h.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(h.prototype,"parent",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.buffer}}),Object.defineProperty(h.prototype,"offset",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.byteOffset}}),h.poolSize=8192,h.from=function(t,e,r){return l(t,e,r)},Object.setPrototypeOf(h.prototype,Uint8Array.prototype),Object.setPrototypeOf(h,Uint8Array),h.alloc=function(t,e,r){return(u(t),t<=0)?o(t):void 0!==e?"string"==typeof r?o(t).fill(e,r):o(t).fill(e):o(t)},h.allocUnsafe=function(t){return d(t)},h.allocUnsafeSlow=function(t){return d(t)},h.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==h.prototype},h.compare=function(t,e){if(B(t,Uint8Array)&&(t=h.from(t,t.offset,t.byteLength)),B(e,Uint8Array)&&(e=h.from(e,e.offset,e.byteLength)),!h.isBuffer(t)||!h.isBuffer(e))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,s=e.length,n=0,a=Math.min(r,s);ns.length?h.from(a).copy(s,n):Uint8Array.prototype.set.call(s,a,n);else if(h.isBuffer(a))a.copy(s,n);else throw TypeError('"list" argument must be an Array of Buffers');n+=a.length}return s},h.byteLength=m,h.prototype._isBuffer=!0,h.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;ee&&(t+=" ... "),""},a&&(h.prototype[a]=h.prototype.inspect),h.prototype.compare=function(t,e,r,s,n){if(B(t,Uint8Array)&&(t=h.from(t,t.offset,t.byteLength)),!h.isBuffer(t))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===s&&(s=0),void 0===n&&(n=this.length),e<0||r>t.length||s<0||n>this.length)throw RangeError("out of range index");if(s>=n&&e>=r)return 0;if(s>=n)return -1;if(e>=r)return 1;if(e>>>=0,r>>>=0,s>>>=0,n>>>=0,this===t)return 0;for(var a=n-s,o=r-e,l=Math.min(a,o),u=this.slice(s,n),d=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===s&&(s="utf8")):(s=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var n,a,o,h,l,u,d,f,p=this.length-e;if((void 0===r||r>p)&&(r=p),t.length>0&&(r<0||e<0)||e>this.length)throw RangeError("Attempt to write outside buffer bounds");s||(s="utf8");for(var c=!1;;)switch(s){case"hex":return function(t,e,r,s){r=Number(r)||0;var n=t.length-r;s?(s=Number(s))>n&&(s=n):s=n;var a=e.length;s>a/2&&(s=a/2);for(var o=0;o>8,n.push(r%256),n.push(s);return n}(t,this.length-d),this,d,f);default:if(c)throw TypeError("Unknown encoding: "+s);s=(""+s).toLowerCase(),c=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},h.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||v(t,e,this.length);for(var s=this[t],n=1,a=0;++a>>=0,e>>>=0,r||v(t,e,this.length);for(var s=this[t+--e],n=1;e>0&&(n*=256);)s+=this[t+--e]*n;return s},h.prototype.readUint8=h.prototype.readUInt8=function(t,e){return t>>>=0,e||v(t,1,this.length),this[t]},h.prototype.readUint16LE=h.prototype.readUInt16LE=function(t,e){return t>>>=0,e||v(t,2,this.length),this[t]|this[t+1]<<8},h.prototype.readUint16BE=h.prototype.readUInt16BE=function(t,e){return t>>>=0,e||v(t,2,this.length),this[t]<<8|this[t+1]},h.prototype.readUint32LE=h.prototype.readUInt32LE=function(t,e){return t>>>=0,e||v(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},h.prototype.readUint32BE=h.prototype.readUInt32BE=function(t,e){return t>>>=0,e||v(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},h.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||v(t,e,this.length);for(var s=this[t],n=1,a=0;++a=(n*=128)&&(s-=Math.pow(2,8*e)),s},h.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||v(t,e,this.length);for(var s=e,n=1,a=this[t+--s];s>0&&(n*=256);)a+=this[t+--s]*n;return a>=(n*=128)&&(a-=Math.pow(2,8*e)),a},h.prototype.readInt8=function(t,e){return(t>>>=0,e||v(t,1,this.length),128&this[t])?-((255-this[t]+1)*1):this[t]},h.prototype.readInt16LE=function(t,e){t>>>=0,e||v(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt16BE=function(t,e){t>>>=0,e||v(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},h.prototype.readInt32LE=function(t,e){return t>>>=0,e||v(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},h.prototype.readInt32BE=function(t,e){return t>>>=0,e||v(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},h.prototype.readFloatLE=function(t,e){return t>>>=0,e||v(t,4,this.length),n.read(this,t,!0,23,4)},h.prototype.readFloatBE=function(t,e){return t>>>=0,e||v(t,4,this.length),n.read(this,t,!1,23,4)},h.prototype.readDoubleLE=function(t,e){return t>>>=0,e||v(t,8,this.length),n.read(this,t,!0,52,8)},h.prototype.readDoubleBE=function(t,e){return t>>>=0,e||v(t,8,this.length),n.read(this,t,!1,52,8)},h.prototype.writeUintLE=h.prototype.writeUIntLE=function(t,e,r,s){if(t=+t,e>>>=0,r>>>=0,!s){var n=Math.pow(2,8*r)-1;S(this,t,e,r,n,0)}var a=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,!s){var n=Math.pow(2,8*r)-1;S(this,t,e,r,n,0)}var a=r-1,o=1;for(this[e+a]=255&t;--a>=0&&(o*=256);)this[e+a]=t/o&255;return e+r},h.prototype.writeUint8=h.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,1,255,0),this[e]=255&t,e+1},h.prototype.writeUint16LE=h.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},h.prototype.writeUint16BE=h.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},h.prototype.writeUint32LE=h.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},h.prototype.writeUint32BE=h.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},h.prototype.writeIntLE=function(t,e,r,s){if(t=+t,e>>>=0,!s){var n=Math.pow(2,8*r-1);S(this,t,e,r,n-1,-n)}var a=0,o=1,h=0;for(this[e]=255&t;++a>0)-h&255;return e+r},h.prototype.writeIntBE=function(t,e,r,s){if(t=+t,e>>>=0,!s){var n=Math.pow(2,8*r-1);S(this,t,e,r,n-1,-n)}var a=r-1,o=1,h=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===h&&0!==this[e+a+1]&&(h=1),this[e+a]=(t/o>>0)-h&255;return e+r},h.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},h.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},h.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},h.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},h.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||S(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},h.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},h.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},h.prototype.writeDoubleLE=function(t,e,r){return x(this,t,e,!0,r)},h.prototype.writeDoubleBE=function(t,e,r){return x(this,t,e,!1,r)},h.prototype.copy=function(t,e,r,s){if(!h.isBuffer(t))throw TypeError("argument should be a Buffer");if(r||(r=0),s||0===s||(s=this.length),e>=t.length&&(e=t.length),e||(e=0),s>0&&s=this.length)throw RangeError("Index out of range");if(s<0)throw RangeError("sourceEnd out of bounds");s>this.length&&(s=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(n=e;n55295&&r<57344){if(!n){if(r>56319||o+1===s){(e-=3)>-1&&a.push(239,191,189);continue}n=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),n=r;continue}r=(n-55296<<10|r-56320)+65536}else n&&(e-=3)>-1&&a.push(239,191,189);if(n=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return a}function C(t){return s.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(T,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function I(t,e,r,s){for(var n=0;n=e.length)&&!(n>=t.length);++n)e[n+r]=t[n];return n}function B(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}var k=function(){for(var t="0123456789abcdef",e=Array(256),r=0;r<16;++r)for(var s=16*r,n=0;n<16;++n)e[s+n]=t[r]+t[n];return e}()},{"9c62938f1dccc73c":"iaOvk",aceacb6a4531a9d2:"9RC4J"}],iaOvk:[function(t,e,r){r.byteLength=function(t){var e=u(t),r=e[0],s=e[1];return(r+s)*3/4-s},r.toByteArray=function(t){var e,r,s=u(t),o=s[0],h=s[1],l=new a((o+h)*3/4-h),d=0,f=h>0?o-4:o;for(r=0;r>16&255,l[d++]=e>>8&255,l[d++]=255&e;return 2===h&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,l[d++]=255&e),1===h&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,l[d++]=e>>8&255,l[d++]=255&e),l},r.fromByteArray=function(t){for(var e,r=t.length,n=r%3,a=[],o=0,h=r-n;o>18&63]+s[n>>12&63]+s[n>>6&63]+s[63&n]);return a.join("")}(t,o,o+16383>h?h:o+16383));return 1===n?a.push(s[(e=t[r-1])>>2]+s[e<<4&63]+"=="):2===n&&a.push(s[(e=(t[r-2]<<8)+t[r-1])>>10]+s[e>>4&63]+s[e<<2&63]+"="),a.join("")};for(var s=[],n=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,l=o.length;h0)throw Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");-1===r&&(r=e);var s=r===e?0:4-r%4;return[r,s]}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},{}],"9RC4J":[function(t,e,r){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh*/r.read=function(t,e,r,s,n){var a,o,h=8*n-s-1,l=(1<>1,d=-7,f=r?n-1:0,p=r?-1:1,c=t[e+f];for(f+=p,a=c&(1<<-d)-1,c>>=-d,d+=h;d>0;a=256*a+t[e+f],f+=p,d-=8);for(o=a&(1<<-d)-1,a>>=-d,d+=s;d>0;o=256*o+t[e+f],f+=p,d-=8);if(0===a)a=1-u;else{if(a===l)return o?NaN:1/0*(c?-1:1);o+=Math.pow(2,s),a-=u}return(c?-1:1)*o*Math.pow(2,a-s)},r.write=function(t,e,r,s,n,a){var o,h,l,u=8*a-n-1,d=(1<>1,p=23===n?5960464477539062e-23:0,c=s?0:a-1,m=s?1:-1,g=e<0||0===e&&1/e<0?1:0;for(isNaN(e=Math.abs(e))||e===1/0?(h=isNaN(e)?1:0,o=d):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?e+=p/l:e+=p*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=d?(h=0,o=d):o+f>=1?(h=(e*l-1)*Math.pow(2,n),o+=f):(h=e*Math.pow(2,f-1)*Math.pow(2,n),o=0));n>=8;t[r+c]=255&h,c+=m,h/=256,n-=8);for(o=o<0;t[r+c]=255&o,c+=m,o/=256,u-=8);t[r+c-m]|=128*g}},{}],"9pCYc":[function(t,e,r){r.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},r.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},r.exportAll=function(t,e){return Object.keys(t).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})}),e},r.export=function(t,e,r){Object.defineProperty(t,e,{enumerable:!0,get:r})}},{}]},["jc2x7"],"jc2x7","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/compiled/artplayer-proxy-webav.legacy.js b/docs/compiled/artplayer-proxy-webav.legacy.js new file mode 100644 index 000000000..13e7225d1 --- /dev/null +++ b/docs/compiled/artplayer-proxy-webav.legacy.js @@ -0,0 +1,8 @@ + +/*! + * artplayer-proxy-webav.js v1.0.0 + * Github: https://github.com/zhw2590582/ArtPlayer + * (c) 2017-2024 Harvey Zack + * Released under the MIT License. + */ +!function(t,e,r,n,s){var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof a[n]&&a[n],u=o.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function c(e,r){if(!u[e]){if(!t[e]){var s="function"==typeof a[n]&&a[n];if(!r&&s)return s(e,!0);if(o)return o(e,!0);if(l&&"string"==typeof e)return l(e);var h=Error("Cannot find module '"+e+"'");throw h.code="MODULE_NOT_FOUND",h}d.resolve=function(r){var n=t[e][1][r];return null!=n?n:r},d.cache={};var f=u[e]=new c.Module(e);t[e][0].call(f.exports,d,f,f.exports,this)}return u[e].exports;function d(t){var e=d.resolve(t);return!1===e?{}:c(e)}}c.isParcelRequire=!0,c.Module=function(t){this.id=t,this.bundle=c,this.exports={}},c.modules=t,c.cache=u,c.parent=o,c.register=function(e,r){t[e]=[function(t,e){e.exports=r},{}]},Object.defineProperty(c,"root",{get:function(){return a[n]}}),a[n]=c;for(var h=0;hs?u=(a-o*s)/2:l=(o-a/s)/2,Object.assign(h.style,{padding:"".concat(l,"px ").concat(u,"px")})}}function U(){return(U=(0,s._)(function(){var e,r,s;return(0,a._)(this,function(a){switch(a.label){case 0:return[4,(0,o.Combinator).isSupported()];case 1:if(!a.sent())throw t.notice.show="WebAV is not supported",Error("WebAV is not supported");v(),Object.assign(g,{playing:!1,duration:0,videoWidth:0,videoHeight:0,currentTime:0,playbackRate:1,paused:!0,ended:!1,readyState:0,buffered:0,muted:n.muted,volume:n.volume,autoplay:n.autoplay}),d&&(d.destroy(),t.emit("video:abort",{type:"abort"}),t.emit("video:emptied",{type:"emptied"})),a.label=2;case 2:return a.trys.push([2,5,,6]),[4,Promise.resolve()];case 3:return a.sent(),t.emit("video:loadstart",{type:"loadstart"}),[4,fetch(n.url)];case 4:if(!(e=a.sent()).body)throw Error("No response body");return d=new o.MP4Clip(e.body),[3,6];case 5:throw r=a.sent(),t.emit("video:error",r),r;case 6:return[4,d.ready];case 7:return Object.assign(g,{readyState:4,duration:Math.round((s=a.sent()).duration/1e6),videoWidth:s.width,videoHeight:s.height}),h.width=g.videoWidth,h.height=g.videoHeight,[4,S(.1)];case 8:return a.sent(),E(),t.emit("video:loadedmetadata",{type:"loadedmetadata"}),t.emit("video:durationchange",{type:"durationchange"}),t.emit("video:loadeddata",{type:"loadeddata"}),t.emit("video:canplay",{type:"canplay"}),t.emit("video:canplaythrough",{type:"canplaythrough"}),[2]}})})).apply(this,arguments)}return c(h,"textTracks",{get:function(){return[]}}),c(h,"duration",{get:function(){return g.duration}}),c(h,"videoWidth",{get:function(){return g.videoWidth}}),c(h,"videoHeight",{get:function(){return g.videoHeight}}),c(h,"volume",{get:function(){return g.volume},set:function(e){g.volume=Math.max(0,Math.min(1,e)),b(),t.emit("video:volumechange",{type:"volumechange"})}}),c(h,"currentTime",{get:function(){return g.currentTime},set:function(e){var r=Math.max(0,Math.min(e,g.duration)),n=performance.now();n-y>16&&(y=n,_=r,g.currentTime=r,g.playing||S(r),t.emit("video:timeupdate",{type:"timeupdate"}))}}),c(h,"autoplay",{get:function(){return g.autoplay},set:function(t){g.autoplay=t,t&&g.readyState>=4&&h.play()}}),c(h,"src",{get:function(){return n.url},set:function(t){n.url=t,(function(){return U.apply(this,arguments)})().then(function(){n.autoplay&&h.play()})}}),c(h,"playbackRate",{get:function(){return g.playbackRate},set:function(r){g.playbackRate=Math.max(.25,Math.min(2,r)),p&&p.playbackRate.setValueAtTime(g.playbackRate,e.currentTime),t.emit("video:ratechange",{type:"ratechange"})}}),c(h,"playing",{get:function(){return g.playing}}),c(h,"paused",{get:function(){return g.paused}}),c(h,"ended",{get:function(){return g.ended}}),c(h,"readyState",{get:function(){return g.readyState}}),c(h,"muted",{get:function(){return g.muted},set:function(e){g.muted=e,b(),t.emit("video:volumechange",{type:"volumechange"})}}),c(h,"buffered",{get:function(){return{start:function(){return 0},end:function(){return g.buffered},length:1}}}),c(h,"play",{value:/*#__PURE__*/(0,s._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:return[4,function(){return w.apply(this,arguments)}()];case 1:return e.sent(),t.emit("video:play",{type:"play"}),t.emit("video:playing",{type:"playing"}),[2]}})})}),c(h,"pause",{value:function(){v(),g.playing=!1,g.paused=!0,t.emit("video:pause",{type:"pause"})}}),t.on("destroy",function(){v(),d&&d.destroy()}),t.on("resize",E),h}}"undefined"!=typeof window&&(window.artplayerProxyWebAV=u)},{"@swc/helpers/_/_async_to_generator":"eONSn","@swc/helpers/_/_ts_generator":"6Xyd0","@webav/av-cliper":"4iON5","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],eONSn:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");function s(t,e,r,n,s,a,o){try{var u=t[a](o),l=u.value}catch(t){r(t);return}u.done?e(l):Promise.resolve(l).then(n,s)}function a(t){return function(){var e=this,r=arguments;return new Promise(function(n,a){var o=t.apply(e,r);function u(t){s(o,n,a,u,l,"next",t)}function l(t){s(o,n,a,u,l,"throw",t)}u(void 0)})}}n.defineInteropFlag(r),n.export(r,"_",function(){return a})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],iWrD0:[function(t,e,r){r.interopDefault=function(t){return t&&t.__esModule?t:{default:t}},r.defineInteropFlag=function(t){Object.defineProperty(t,"__esModule",{value:!0})},r.exportAll=function(t,e){return Object.keys(t).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})}),e},r.export=function(t,e,r){Object.defineProperty(t,e,{enumerable:!0,get:r})}},{}],"6Xyd0":[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"_",function(){return s.__generator});var s=t("tslib")},{tslib:"c0d7h","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],c0d7h:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"__extends",function(){return o}),n.export(r,"__assign",function(){return u}),n.export(r,"__rest",function(){return l}),n.export(r,"__decorate",function(){return c}),n.export(r,"__param",function(){return h}),n.export(r,"__esDecorate",function(){return f}),n.export(r,"__runInitializers",function(){return d}),n.export(r,"__propKey",function(){return p}),n.export(r,"__setFunctionName",function(){return m}),n.export(r,"__metadata",function(){return _}),n.export(r,"__awaiter",function(){return y}),n.export(r,"__generator",function(){return g}),n.export(r,"__createBinding",function(){return v}),n.export(r,"__exportStar",function(){return b}),n.export(r,"__values",function(){return w}),n.export(r,"__read",function(){return S}),n.export(r,"__spread",function(){return x}),n.export(r,"__spreadArrays",function(){return E}),n.export(r,"__spreadArray",function(){return U}),n.export(r,"__await",function(){return T}),n.export(r,"__asyncGenerator",function(){return A}),n.export(r,"__asyncDelegator",function(){return I}),n.export(r,"__asyncValues",function(){return k}),n.export(r,"__makeTemplateObject",function(){return C}),n.export(r,"__importStar",function(){return P}),n.export(r,"__importDefault",function(){return R}),n.export(r,"__classPrivateFieldGet",function(){return F}),n.export(r,"__classPrivateFieldSet",function(){return D}),n.export(r,"__classPrivateFieldIn",function(){return z}),n.export(r,"__addDisposableResource",function(){return L}),n.export(r,"__disposeResources",function(){return M});var s=t("@swc/helpers/_/_type_of"),a=function(t,e){return(a=Object.setPrototypeOf||({__proto__:[]})instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])})(t,e)};function o(t,e){if("function"!=typeof e&&null!==e)throw TypeError("Class extends value "+String(e)+" is not a constructor or null");function r(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(r.prototype=e.prototype,new r)}var u=function(){return(u=Object.assign||function(t){for(var e,r=1,n=arguments.length;re.indexOf(n)&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols)for(var s=0,n=Object.getOwnPropertySymbols(t);se.indexOf(n[s])&&Object.prototype.propertyIsEnumerable.call(t,n[s])&&(r[n[s]]=t[n[s]]);return r}function c(t,e,r,n){var s,a=arguments.length,o=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(t,e,r,n);else for(var u=t.length-1;u>=0;u--)(s=t[u])&&(o=(a<3?s(o):a>3?s(e,r,o):s(e,r))||o);return a>3&&o&&Object.defineProperty(e,r,o),o}function h(t,e){return function(r,n){e(r,n,t)}}function f(t,e,r,n,s,a){function o(t){if(void 0!==t&&"function"!=typeof t)throw TypeError("Function expected");return t}for(var u,l=n.kind,c="getter"===l?"get":"setter"===l?"set":"value",h=!e&&t?n.static?t:t.prototype:null,f=e||(h?Object.getOwnPropertyDescriptor(h,n.name):{}),d=!1,p=r.length-1;p>=0;p--){var m={};for(var _ in n)m[_]="access"===_?{}:n[_];for(var _ in n.access)m.access[_]=n.access[_];m.addInitializer=function(t){if(d)throw TypeError("Cannot add initializers after decoration has completed");a.push(o(t||null))};var y=(0,r[p])("accessor"===l?{get:f.get,set:f.set}:f[c],m);if("accessor"===l){if(void 0===y)continue;if(null===y||"object"!=typeof y)throw TypeError("Object expected");(u=o(y.get))&&(f.get=u),(u=o(y.set))&&(f.set=u),(u=o(y.init))&&s.unshift(u)}else(u=o(y))&&("field"===l?s.unshift(u):f[c]=u)}h&&Object.defineProperty(h,n.name,f),d=!0}function d(t,e,r){for(var n=arguments.length>2,s=0;s0&&s[s.length-1])&&(6===u[0]||2===u[0])){o=0;continue}if(3===u[0]&&(!s||u[1]>s[0]&&u[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function S(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,s,a=r.call(t),o=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)o.push(n.value)}catch(t){s={error:t}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(s)throw s.error}}return o}function x(){for(var t=[],e=0;e1||u(t,e)})},e&&(n[t]=e(n[t])))}function u(t,e){try{var r;(r=s[t](e)).value instanceof T?Promise.resolve(r.value.v).then(l,c):h(a[0][2],r)}catch(t){h(a[0][3],t)}}function l(t){u("next",t)}function c(t){u("throw",t)}function h(t,e){t(e),a.shift(),a.length&&u(a[0][0],a[0][1])}}function I(t){var e,r;return e={},n("next"),n("throw",function(t){throw t}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(n,s){e[n]=t[n]?function(e){return(r=!r)?{value:T(t[n](e)),done:!1}:s?s(e):e}:s}}function k(t){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t=w(t),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(r){e[r]=t[r]&&function(e){return new Promise(function(n,s){!function(t,e,r,n){Promise.resolve(n).then(function(e){t({value:e,done:r})},e)}(n,s,(e=t[r](e)).done,e.value)})}}}function C(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}var B=Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e};function P(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&v(e,t,r);return B(e,t),e}function R(t){return t&&t.__esModule?t:{default:t}}function F(t,e,r,n){if("a"===r&&!n)throw TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}function D(t,e,r,n,s){if("m"===n)throw TypeError("Private method is not writable");if("a"===n&&!s)throw TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?s.call(t,r):s?s.value=r:e.set(t,r),r}function z(t,e){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw TypeError("Cannot use 'in' operator on non-object");return"function"==typeof t?e===t:t.has(e)}function L(t,e,r){if(null!=e){var n,s;if("object"!=typeof e&&"function"!=typeof e)throw TypeError("Object expected.");if(r){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");n=e[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");n=e[Symbol.dispose],r&&(s=n)}if("function"!=typeof n)throw TypeError("Object not disposable.");s&&(n=function(){try{s.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:n,async:r})}else r&&t.stack.push({async:!0});return e}var O="function"==typeof SuppressedError?SuppressedError:function(t,e,r){var n=Error(r);return n.name="SuppressedError",n.error=t,n.suppressed=e,n};function M(t){function e(e){t.error=t.hasError?new O(e,t.error,"An error was suppressed during disposal."):e,t.hasError=!0}return function r(){for(;t.stack.length;){var n=t.stack.pop();try{var s=n.dispose&&n.dispose.call(n.value);if(n.async)return Promise.resolve(s).then(r,function(t){return e(t),r()})}catch(t){e(t)}}if(t.hasError)throw t.error}()}r.default={__extends:o,__assign:u,__rest:l,__decorate:c,__param:h,__metadata:_,__awaiter:y,__generator:g,__createBinding:v,__exportStar:b,__values:w,__read:S,__spread:x,__spreadArrays:E,__spreadArray:U,__await:T,__asyncGenerator:A,__asyncDelegator:I,__asyncValues:k,__makeTemplateObject:C,__importStar:P,__importDefault:R,__classPrivateFieldGet:F,__classPrivateFieldSet:D,__classPrivateFieldIn:z,__addDisposableResource:L,__disposeResources:M}},{"@swc/helpers/_/_type_of":"felZi","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],felZi:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");function s(t){return t&&"undefined"!=typeof Symbol&&t.constructor===Symbol?"symbol":typeof t}n.defineInteropFlag(r),n.export(r,"_",function(){return s})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"4iON5":[function(t,e,r){var n,s,a,o,u,l,c,h,f,d,p,m,_,y,g,v,b,w,S,x,E,U,T,A,I,k,C,B,P,R,F,D,z,L,O,M,N,j,G,Y,W,V,H,X,Z,K,q,Q,J,$,tt,te,tr,ti,tn,ts,ta,to,tu,tl,tc,th,tf,td,tp,tm,t_,ty,tg,tv,tb,tw,tS,tx,tE,tU,tT,tA,tI,tk,tC,tB,tP,tR,tF,tD,tz,tL,tO,tM,tN,tj,tG,tY,tW,tV,tH,tX,tZ,tK,tq,tQ,tJ,t$,t0,t1,t2,t3,t4,t6,t8,t5,t9,t7,et,ee,er,ei,en,es,ea,eo,eu,el,ec,eh,ef,ed,ep=t("@parcel/transformer-js/src/esmodule-helpers.js");ep.defineInteropFlag(r),ep.export(r,"AudioClip",function(){return ih}),ep.export(r,"Combinator",function(){return i9}),ep.export(r,"DEFAULT_AUDIO_CONF",function(){return r$}),ep.export(r,"EmbedSubtitlesClip",function(){return iv}),ep.export(r,"EventTool",function(){return iw}),ep.export(r,"ImgClip",function(){return il}),ep.export(r,"Log",function(){return rw}),ep.export(r,"MP4Clip",function(){return r8}),ep.export(r,"MediaStreamClip",function(){return iy}),ep.export(r,"OffscreenSprite",function(){return i3}),ep.export(r,"Rect",function(){return i0}),ep.export(r,"VisibleSprite",function(){return i4}),ep.export(r,"adjustAudioDataVolume",function(){return rN}),ep.export(r,"audioResample",function(){return rW}),ep.export(r,"autoReadStream",function(){return rZ}),ep.export(r,"concatAudioClip",function(){return id}),ep.export(r,"concatFloat32Array",function(){return rz}),ep.export(r,"concatPCMFragments",function(){return rL}),ep.export(r,"createChromakey",function(){return iJ}),ep.export(r,"createEl",function(){return eY}),ep.export(r,"createHLSLoader",function(){return iX}),ep.export(r,"decodeImg",function(){return rj}),ep.export(r,"extractPCM4AudioBuffer",function(){return rM}),ep.export(r,"extractPCM4AudioData",function(){return rO}),ep.export(r,"fastConcatMP4",function(){return iB}),ep.export(r,"file2stream",function(){return ik}),ep.export(r,"fixFMP4Duration",function(){return iF}),ep.export(r,"mixinMP4AndAudio",function(){return iz}),ep.export(r,"mixinPCM",function(){return rY}),ep.export(r,"recodemux",function(){return iA}),ep.export(r,"renderTxt2Img",function(){return eW}),ep.export(r,"renderTxt2ImgBitmap",function(){return eV}),ep.export(r,"ringSliceFloat32Array",function(){return rX}),ep.export(r,"workerTimer",function(){return rA});var em=t("@swc/helpers/_/_assert_this_initialized"),e_=t("@swc/helpers/_/_async_iterator"),ey=t("@swc/helpers/_/_async_to_generator"),eg=t("@swc/helpers/_/_class_call_check"),ev=t("@swc/helpers/_/_create_class"),eb=t("@swc/helpers/_/_define_property"),ew=t("@swc/helpers/_/_get"),eS=t("@swc/helpers/_/_get_prototype_of"),ex=t("@swc/helpers/_/_inherits"),eE=t("@swc/helpers/_/_object_spread"),eU=t("@swc/helpers/_/_object_spread_props"),eT=t("@swc/helpers/_/_possible_constructor_return"),eA=t("@swc/helpers/_/_sliced_to_array"),eI=t("@swc/helpers/_/_to_consumable_array"),ek=t("@swc/helpers/_/_type_of"),eC=t("@swc/helpers/_/_create_super"),eB=t("@swc/helpers/_/_ts_generator"),eP=t("@swc/helpers/_/_ts_values"),eR=arguments[3],eF=t("718a311db185ef08").Buffer,eD=Object.defineProperty,ez=function(t){throw TypeError(t)},eL=function(t,e,r){var n;return(n=(void 0===e?"undefined":(0,ek._)(e))!="symbol"?e+"":e)in t?eD(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r},eO=function(t,e,r){return e.has(t)||ez("Cannot "+r)},eM=function(t,e,r){return eO(t,e,"read from private field"),r?r.call(t):e.get(t)},eN=function(t,e,r){return e.has(t)?ez("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r)},ej=function(t,e,r,n){return eO(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r},eG=function(t,e,r){return eO(t,e,"access private method"),r};function eY(t){return document.createElement(t)}function eW(t,e){var r=eY("pre");r.style.cssText="margin: 0; ".concat(e,"; visibility: hidden; position: fixed;"),r.textContent=t,document.body.appendChild(r);var n=r.getBoundingClientRect(),s=n.width,a=n.height;r.remove(),r.style.visibility="visible";var o=new Image;o.width=s,o.height=a;var u='\n\n\n
').concat(r.outerHTML,"
\n
\n
\n ").replace(/\t/g,"").replace(/#/g,"%23");return o.src="data:image/svg+xml;charset=utf-8,".concat(u),o}function eV(t,e){return eH.apply(this,arguments)}function eH(){return(eH=(0,ey._)(function(t,e){var r,n,s;return(0,eB._)(this,function(a){switch(a.label){case 0:return r=eW(t,e),[4,new Promise(function(t){r.onload=t})];case 1:return a.sent(),null==(s=(n=new OffscreenCanvas(r.width,r.height)).getContext("2d"))||s.drawImage(r,0,0,r.width,r.height),[4,createImageBitmap(n)];case 2:return[2,a.sent()]}})})).apply(this,arguments)}var eX=function(t){throw TypeError(t)},eZ=function(t,e,r){return e.has(t)||eX("Cannot "+r)},eK=function(t,e,r){return eZ(t,e,"read from private field"),r?r.call(t):e.get(t)},eq=function(t,e,r){return e.has(t)?eX("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r)},eQ=function(t,e,r,n){return eZ(t,e,"write to private field"),e.set(t,r),r},eJ="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHUobil7aWYobj09PSIvIilyZXR1cm57cGFyZW50Om51bGwsbmFtZToiIn07Y29uc3QgZT1uLnNwbGl0KCIvIikuZmlsdGVyKGk9PmkubGVuZ3RoPjApO2lmKGUubGVuZ3RoPT09MCl0aHJvdyBFcnJvcigiSW52YWxpZCBwYXRoIik7Y29uc3QgYT1lW2UubGVuZ3RoLTFdLHI9Ii8iK2Uuc2xpY2UoMCwtMSkuam9pbigiLyIpO3JldHVybntuYW1lOmEscGFyZW50OnJ9fWFzeW5jIGZ1bmN0aW9uIHcobixlKXtjb25zdHtwYXJlbnQ6YSxuYW1lOnJ9PXUobik7aWYoYT09bnVsbClyZXR1cm4gYXdhaXQgbmF2aWdhdG9yLnN0b3JhZ2UuZ2V0RGlyZWN0b3J5KCk7Y29uc3QgaT1hLnNwbGl0KCIvIikuZmlsdGVyKHQ9PnQubGVuZ3RoPjApO3RyeXtsZXQgdD1hd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJlY3RvcnkoKTtmb3IoY29uc3QgcyBvZiBpKXQ9YXdhaXQgdC5nZXREaXJlY3RvcnlIYW5kbGUocyx7Y3JlYXRlOmUuY3JlYXRlfSk7aWYoZS5pc0ZpbGUpcmV0dXJuIGF3YWl0IHQuZ2V0RmlsZUhhbmRsZShyLHtjcmVhdGU6ZS5jcmVhdGV9KX1jYXRjaCh0KXtpZih0Lm5hbWU9PT0iTm90Rm91bmRFcnJvciIpcmV0dXJuIG51bGw7dGhyb3cgdH19Y29uc3QgZj17fTtzZWxmLm9ubWVzc2FnZT1hc3luYyBuPT57dmFyIGk7Y29uc3R7ZXZ0VHlwZTplLGFyZ3M6YX09bi5kYXRhO2xldCByPWZbYS5maWxlSWRdO3RyeXtsZXQgdDtjb25zdCBzPVtdO2lmKGU9PT0icmVnaXN0ZXIiKXtjb25zdCBsPWF3YWl0IHcoYS5maWxlUGF0aCx7Y3JlYXRlOiEwLGlzRmlsZTohMH0pO2lmKGw9PW51bGwpdGhyb3cgRXJyb3IoYG5vdCBmb3VuZCBmaWxlOiAke2EuZmlsZUlkfWApO3I9YXdhaXQgbC5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKHttb2RlOmEubW9kZX0pLGZbYS5maWxlSWRdPXJ9ZWxzZSBpZihlPT09ImNsb3NlIilhd2FpdCByLmNsb3NlKCksZGVsZXRlIGZbYS5maWxlSWRdO2Vsc2UgaWYoZT09PSJ0cnVuY2F0ZSIpYXdhaXQgci50cnVuY2F0ZShhLm5ld1NpemUpO2Vsc2UgaWYoZT09PSJ3cml0ZSIpe2NvbnN0e2RhdGE6bCxvcHRzOm99PW4uZGF0YS5hcmdzO3Q9YXdhaXQgci53cml0ZShsLG8pfWVsc2UgaWYoZT09PSJyZWFkIil7Y29uc3R7b2Zmc2V0Omwsc2l6ZTpvfT1uLmRhdGEuYXJncyxnPW5ldyBVaW50OEFycmF5KG8pLGQ9YXdhaXQgci5yZWFkKGcse2F0Omx9KSxjPWcuYnVmZmVyO3Q9ZD09PW8/YzooKGk9Yy50cmFuc2Zlcik9PW51bGw/dm9pZCAwOmkuY2FsbChjLGQpKT8/Yy5zbGljZSgwLGQpLHMucHVzaCh0KX1lbHNlIGU9PT0iZ2V0U2l6ZSI/dD1hd2FpdCByLmdldFNpemUoKTplPT09ImZsdXNoIiYmYXdhaXQgci5mbHVzaCgpO3NlbGYucG9zdE1lc3NhZ2Uoe2V2dFR5cGU6ImNhbGxiYWNrIixjYklkOm4uZGF0YS5jYklkLHJldHVyblZhbDp0fSxzKX1jYXRjaCh0KXtjb25zdCBzPXQ7c2VsZi5wb3N0TWVzc2FnZSh7ZXZ0VHlwZToidGhyb3dFcnJvciIsY2JJZDpuLmRhdGEuY2JJZCxlcnJNc2c6cy5uYW1lKyI6ICIrcy5tZXNzYWdlK2AKYCtKU09OLnN0cmluZ2lmeShuLmRhdGEpfSl9fX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW9wZnMtd29ya2VyLUY0UldscWNfLmpzLm1hcAo=",e$=("undefined"==typeof self?"undefined":(0,ek._)(self))<"u"&&self.Blob&&new Blob([Uint8Array.from(atob(eJ),function(t){return t.charCodeAt(0)})],{type:"text/javascript;charset=utf-8"});function e0(t){var e;try{if(!(e=e$&&(self.URL||self.webkitURL).createObjectURL(e$)))throw"";var r=new Worker(e,{name:null==t?void 0:t.name});return r.addEventListener("error",function(){(self.URL||self.webkitURL).revokeObjectURL(e)}),r}catch(e){return new Worker("data:text/javascript;base64,"+eJ,{name:null==t?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}function e1(){return(e1=(0,ey._)(function(t,e,r){var n;return(0,eB._)(this,function(s){switch(s.label){case 0:return[4,(n=function(){if(e2.length<3){var t,e,r,n,s=(e=new e0,r=0,n={},e.onmessage=function(t){var e,r,s=t.data;"callback"===s.evtType?null==(e=n[s.cbId])||e.resolve(s.returnVal):"throwError"===s.evtType&&(null==(r=n[s.cbId])||r.reject(Error(s.errMsg))),delete n[s.cbId]},t=(0,ey._)(function(t,s){var a,o,u=arguments;return(0,eB._)(this,function(l){return a=u.length>2&&void 0!==u[2]?u[2]:[],r+=1,o=new Promise(function(t,e){n[r]={resolve:t,reject:e}}),[2,(e.postMessage({cbId:r,evtType:t,args:s},a),o)]})}),function(e,r){return t.apply(this,arguments)});return e2.push(s),s}var a=e2[e3];return e3=(e3+1)%e2.length,a}())("register",{fileId:t,filePath:e,mode:r})];case 1:var a,o,u;return[2,(s.sent(),{read:(a=(0,ey._)(function(e,r){return(0,eB._)(this,function(s){switch(s.label){case 0:return[4,n("read",{fileId:t,offset:e,size:r})];case 1:return[2,s.sent()]}})}),function(t,e){return a.apply(this,arguments)}),write:(o=(0,ey._)(function(e,r){return(0,eB._)(this,function(s){switch(s.label){case 0:return[4,n("write",{fileId:t,data:e,opts:r},[ArrayBuffer.isView(e)?e.buffer:e])];case 1:return[2,s.sent()]}})}),function(t,e){return o.apply(this,arguments)}),close:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:return[4,n("close",{fileId:t})];case 1:return[2,e.sent()]}})}),truncate:(u=(0,ey._)(function(e){return(0,eB._)(this,function(r){switch(r.label){case 0:return[4,n("truncate",{fileId:t,newSize:e})];case 1:return[2,r.sent()]}})}),function(t){return u.apply(this,arguments)}),getSize:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:return[4,n("getSize",{fileId:t})];case 1:return[2,e.sent()]}})}),flush:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:return[4,n("flush",{fileId:t})];case 1:return[2,e.sent()]}})})})]}})})).apply(this,arguments)}var e2=[],e3=0;function e4(t){if("/"===t)return{parent:null,name:""};var e=t.split("/").filter(function(t){return t.length>0});if(0===e.length)throw Error("Invalid path");return{name:e[e.length-1],parent:"/"+e.slice(0,-1).join("/")}}function e6(t,e){return e8.apply(this,arguments)}function e8(){return(e8=(0,ey._)(function(t,e){var r,n,s,a,o,u,l,c,h,f,d,p,m,_;return(0,eB._)(this,function(y){switch(y.label){case 0:if(n=(r=e4(t)).parent,s=r.name,null!=n)return[3,2];return[4,navigator.storage.getDirectory()];case 1:return[2,y.sent()];case 2:a=n.split("/").filter(function(t){return t.length>0}),y.label=3;case 3:return y.trys.push([3,17,,18]),[4,navigator.storage.getDirectory()];case 4:o=y.sent(),u=!0,l=!1,c=void 0,y.label=5;case 5:y.trys.push([5,10,11,12]),h=a[Symbol.iterator](),y.label=6;case 6:if(u=(f=h.next()).done)return[3,9];return d=f.value,[4,o.getDirectoryHandle(d,{create:e.create})];case 7:o=y.sent(),y.label=8;case 8:return u=!0,[3,6];case 9:return[3,12];case 10:return p=y.sent(),l=!0,c=p,[3,12];case 11:try{u||null==h.return||h.return()}finally{if(l)throw c}return[7];case 12:if(!e.isFile)return[3,14];return[4,o.getFileHandle(s,{create:e.create})];case 13:return m=y.sent(),[3,16];case 14:return[4,o.getDirectoryHandle(s,{create:e.create})];case 15:m=y.sent(),y.label=16;case 16:return[2,m];case 17:if("NotFoundError"===(_=y.sent()).name)return[2,null];throw _;case 18:return[2]}})})).apply(this,arguments)}function e5(t){return e9.apply(this,arguments)}function e9(){return(e9=(0,ey._)(function(t){var e,r,n,s,a,o,u,l,c,h,f,d;return(0,eB._)(this,function(p){switch(p.label){case 0:if(r=(e=e4(t)).parent,n=e.name,null!=r)return[3,15];return[4,navigator.storage.getDirectory()];case 1:s=p.sent(),a=!1,o=!1,p.label=2;case 2:p.trys.push([2,8,9,14]),l=(0,e_._)(s.keys()),p.label=3;case 3:return[4,l.next()];case 4:if(!(a=!(c=p.sent()).done))return[3,7];return h=c.value,[4,s.removeEntry(h,{recursive:!0})];case 5:p.sent(),p.label=6;case 6:return a=!1,[3,3];case 7:return[3,14];case 8:return f=p.sent(),o=!0,u=f,[3,14];case 9:if(p.trys.push([9,,12,13]),!(a&&null!=l.return))return[3,11];return[4,l.return()];case 10:p.sent(),p.label=11;case 11:return[3,13];case 12:if(o)throw u;return[7];case 13:return[7];case 14:return[2];case 15:return[4,e6(r,{create:!1,isFile:!1})];case 16:if(!(null!=(d=p.sent())))return[3,18];return[4,d.removeEntry(n,{recursive:!0})];case 17:p.sent(),p.label=18;case 18:return[2]}})})).apply(this,arguments)}function e7(t,e){return"".concat(t,"/").concat(e).replace("//","/")}function rt(t){return new re(t)}var re=/*#__PURE__*/function(){function t(e){(0,eg._)(this,t),eq(this,v),eq(this,b),eq(this,w),eQ(this,v,e);var r=e4(e),n=r.parent,s=r.name;eQ(this,b,s),eQ(this,w,n)}return(0,ev._)(t,[{key:"kind",get:function(){return"dir"}},{key:"name",get:function(){return eK(this,b)}},{key:"path",get:function(){return eK(this,v)}},{key:"parent",get:function(){return null==eK(this,w)?null:rt(eK(this,w))}},{key:"create",value:function(){var t=this;return(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:return[4,e6(eK(t,v),{create:!0,isFile:!1})];case 1:return[2,(e.sent(),rt(eK(t,v)))]}})})()}},{key:"exists",value:function(){var t=this;return(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:return[4,e6(eK(t,v),{create:!1,isFile:!1})];case 1:return[2,e.sent() instanceof FileSystemDirectoryHandle]}})})()}},{key:"remove",value:function(){var t=this;return(0,ey._)(function(){var e,r,n,s,a,o,u;return(0,eB._)(this,function(l){switch(l.label){case 0:e=!0,r=!1,n=void 0,l.label=1;case 1:return l.trys.push([1,9,10,11]),[4,t.children()];case 2:s=l.sent()[Symbol.iterator](),l.label=3;case 3:if(e=(a=s.next()).done)return[3,8];o=a.value,l.label=4;case 4:return l.trys.push([4,6,,7]),[4,o.remove()];case 5:return l.sent(),[3,7];case 6:return console.warn(l.sent()),[3,7];case 7:return e=!0,[3,3];case 8:return[3,11];case 9:return u=l.sent(),r=!0,n=u,[3,11];case 10:try{e||null==s.return||s.return()}finally{if(r)throw n}return[7];case 11:return l.trys.push([11,13,,14]),[4,e5(eK(t,v))];case 12:return l.sent(),[3,14];case 13:return console.warn(l.sent()),[3,14];case 14:return[2]}})})()}},{key:"children",value:function(){var t=this;return(0,ey._)(function(){var e,r,n,s,a,o,u,l,c;return(0,eB._)(this,function(h){switch(h.label){case 0:return[4,e6(eK(t,v),{create:!1,isFile:!1})];case 1:if(null==(e=h.sent()))return[2,[]];r=[],n=!1,s=!1,h.label=2;case 2:h.trys.push([2,7,8,13]),o=(0,e_._)(e.values()),h.label=3;case 3:return[4,o.next()];case 4:if(!(n=!(u=h.sent()).done))return[3,6];l=u.value,r.push(("file"===l.kind?ri:rt)(e7(eK(t,v),l.name))),h.label=5;case 5:return n=!1,[3,3];case 6:return[3,13];case 7:return c=h.sent(),s=!0,a=c,[3,13];case 8:if(h.trys.push([8,,11,12]),!(n&&null!=o.return))return[3,10];return[4,o.return()];case 9:h.sent(),h.label=10;case 10:return[3,12];case 11:if(s)throw a;return[7];case 12:return[7];case 13:return[2,r]}})})()}},{key:"copyTo",value:function(t){var e=this;return(0,ey._)(function(){var r,n;return(0,eB._)(this,function(s){switch(s.label){case 0:return[4,e.exists()];case 1:if(!s.sent())throw Error("dir ".concat(e.path," not exists"));return[4,t.exists()];case 2:return[4,(r=s.sent()?rt(e7(t.path,e.name)):t).create()];case 3:return s.sent(),n=Promise.all,[4,e.children()];case 4:return[4,n.apply(Promise,[s.sent().map(function(t){return t.copyTo(r)})])];case 5:return[2,(s.sent(),r)]}})})()}},{key:"moveTo",value:function(t){var e=this;return(0,ey._)(function(){var r;return(0,eB._)(this,function(n){switch(n.label){case 0:return[4,e.copyTo(t)];case 1:return r=n.sent(),[4,e.remove()];case 2:return[2,(n.sent(),r)]}})})()}}]),t}();v=/* @__PURE__ */new WeakMap,b=/* @__PURE__ */new WeakMap,w=/* @__PURE__ */new WeakMap;var rr=/* @__PURE__ */new Map;function ri(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"rw";if("rw"===e){var r,n=null!==(r=rr.get(t))&&void 0!==r?r:new ru(t,e);return rr.set(t,n),n}return new ru(t,e)}function rn(t,e){return rs.apply(this,arguments)}function rs(){return(rs=(0,ey._)(function(t,e){var r,n,s,a,o,u,l,c=arguments;return(0,eB._)(this,function(h){switch(h.label){case 0:if(r=c.length>2&&void 0!==c[2]?c[2]:{overwrite:!0},!(e instanceof ru))return[3,3];return n=[t],[4,e.stream()];case 1:return[4,rn.apply(void 0,n.concat([h.sent(),r]))];case 2:return h.sent(),[2];case 3:return[4,(t instanceof ru?t:ri(t,"rw")).createWriter()];case 4:s=h.sent(),h.label=5;case 5:if(h.trys.push([5,16,17,19]),!r.overwrite)return[3,7];return[4,s.truncate(0)];case 6:h.sent(),h.label=7;case 7:if(!(e instanceof ReadableStream))return[3,13];a=e.getReader(),h.label=8;case 8:return[4,a.read()];case 9:if(u=(o=h.sent()).done,l=o.value,u)return[3,12];return[4,s.write(l)];case 10:h.sent(),h.label=11;case 11:return[3,8];case 12:return[3,15];case 13:return[4,s.write(e)];case 14:h.sent(),h.label=15;case 15:return[3,19];case 16:throw h.sent();case 17:return[4,s.close()];case 18:return h.sent(),[7];case 19:return[2]}})})).apply(this,arguments)}var ra=0,ro=/*#__PURE__*/function(){function t(e,r){var n,s=this;(0,eg._)(this,t),eq(this,S),eq(this,x),eq(this,E),eq(this,U),eq(this,T),eq(this,A,0),eq(this,I,(n=null,function(){var t;return eQ(s,A,eK(s,A)+1),null!=n?n:n=new Promise((t=(0,ey._)(function(t,e){var r;return(0,eB._)(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,function(t,e,r){return e1.apply(this,arguments)}(eK(s,T),eK(s,S),eK(s,U))];case 1:return t([r=a.sent(),/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(t){switch(t.label){case 0:if(eQ(s,A,eK(s,A)-1),eK(s,A)>0)return[3,2];return n=null,[4,r.close()];case 1:t.sent(),t.label=2;case 2:return[2]}})})]),[3,3];case 2:return e(a.sent()),[3,3];case 3:return[2]}})}),function(e,r){return t.apply(this,arguments)}))})),eq(this,k,!1),eQ(this,T,++ra),eQ(this,S,e),eQ(this,U,{r:"read-only",rw:"readwrite","rw-unsafe":"readwrite-unsafe"}[r]);var a=e4(e),o=a.parent,u=a.name;eQ(this,E,u),eQ(this,x,o)}return(0,ev._)(t,[{key:"kind",get:function(){return"file"}},{key:"path",get:function(){return eK(this,S)}},{key:"name",get:function(){return eK(this,E)}},{key:"parent",get:function(){return null==eK(this,x)?null:rt(eK(this,x))}},{key:"createWriter",value:function(){var t=this;return(0,ey._)(function(){var e,r,n,s,a,o;return(0,eB._)(this,function(u){switch(u.label){case 0:if("read-only"===eK(t,U))throw Error("file is read-only");if(eK(t,k))throw Error("Other writer have not been closed");return eQ(t,k,!0),e=new TextEncoder,[4,eK(t,I).call(t)];case 1:return n=(r=(0,eA._).apply(void 0,[u.sent(),2]))[0],s=r[1],[4,n.getSize()];case 2:var l,c;return a=u.sent(),o=!1,[2,{write:(l=(0,ey._)(function(t){var r,s,u,l,c=arguments;return(0,eB._)(this,function(h){switch(h.label){case 0:if(r=c.length>1&&void 0!==c[1]?c[1]:{},o)throw Error("Writer is closed");return u="string"==typeof t?e.encode(t):t,a=(l=null!==(s=r.at)&&void 0!==s?s:a)+u.byteLength,[4,n.write(u,{at:l})];case 1:return[2,h.sent()]}})}),function(t){return l.apply(this,arguments)}),truncate:(c=(0,ey._)(function(t){return(0,eB._)(this,function(e){switch(e.label){case 0:if(o)throw Error("Writer is closed");return[4,n.truncate(t)];case 1:return e.sent(),a>t&&(a=t),[2]}})}),function(t){return c.apply(this,arguments)}),flush:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(t){switch(t.label){case 0:if(o)throw Error("Writer is closed");return[4,n.flush()];case 1:return t.sent(),[2]}})}),close:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:if(o)throw Error("Writer is closed");return o=!0,eQ(t,k,!1),[4,s()];case 1:return e.sent(),[2]}})})}]}})})()}},{key:"createReader",value:function(){var t=this;return(0,ey._)(function(){var e,r,n,s,a;return(0,eB._)(this,function(o){switch(o.label){case 0:return[4,eK(t,I).call(t)];case 1:var u;return r=(e=(0,eA._).apply(void 0,[o.sent(),2]))[0],n=e[1],s=!1,a=0,[2,{read:(u=(0,ey._)(function(t){var e,n,o,u,l=arguments;return(0,eB._)(this,function(c){switch(c.label){case 0:if(e=l.length>1&&void 0!==l[1]?l[1]:{},s)throw Error("Reader is closed");return o=null!==(n=e.at)&&void 0!==n?n:a,[4,r.read(o,t)];case 1:return u=c.sent(),[2,(a=o+u.byteLength,u)]}})}),function(t){return u.apply(this,arguments)}),getSize:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(t){switch(t.label){case 0:if(s)throw Error("Reader is closed");return[4,r.getSize()];case 1:return[2,t.sent()]}})}),close:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(t){switch(t.label){case 0:if(s)return[3,2];return s=!0,[4,n()];case 1:t.sent(),t.label=2;case 2:return[2]}})})}]}})})()}},{key:"text",value:function(){var t=this;return(0,ey._)(function(){var e,r;return(0,eB._)(this,function(n){switch(n.label){case 0:return r=(e=new TextDecoder).decode,[4,t.arrayBuffer()];case 1:return[2,r.apply(e,[n.sent()])]}})})()}},{key:"arrayBuffer",value:function(){var t=this;return(0,ey._)(function(){var e,r;return(0,eB._)(this,function(n){switch(n.label){case 0:return[4,e6(eK(t,S),{create:!1,isFile:!0})];case 1:if(null!=(e=n.sent()))return[3,2];return r=new ArrayBuffer(0),[3,4];case 2:return[4,e.getFile()];case 3:r=n.sent().arrayBuffer(),n.label=4;case 4:return[2,r]}})})()}},{key:"stream",value:function(){var t=this;return(0,ey._)(function(){var e;return(0,eB._)(this,function(r){switch(r.label){case 0:return[4,t.getOriginFile()];case 1:return[2,null==(e=r.sent())?new ReadableStream({pull:function(t){t.close()}}):e.stream()]}})})()}},{key:"getOriginFile",value:function(){var t=this;return(0,ey._)(function(){var e;return(0,eB._)(this,function(r){switch(r.label){case 0:return[4,e6(eK(t,S),{create:!1,isFile:!0})];case 1:return[2,null==(e=r.sent())?void 0:e.getFile()]}})})()}},{key:"getSize",value:function(){var t=this;return(0,ey._)(function(){var e,r;return(0,eB._)(this,function(n){switch(n.label){case 0:return[4,e6(eK(t,S),{create:!1,isFile:!0})];case 1:if(null!=(e=n.sent()))return[3,2];return r=0,[3,4];case 2:return[4,e.getFile()];case 3:r=n.sent().size,n.label=4;case 4:return[2,r]}})})()}},{key:"exists",value:function(){var t=this;return(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:return[4,e6(eK(t,S),{create:!1,isFile:!0})];case 1:return[2,e.sent() instanceof FileSystemFileHandle]}})})()}},{key:"remove",value:function(){var t=this;return(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:if(eK(t,A))throw Error("exists unclosed reader/writer");return[4,e5(eK(t,S))];case 1:return e.sent(),[2]}})})()}},{key:"copyTo",value:function(e){var r=this;return(0,ey._)(function(){var n;return(0,eB._)(this,function(s){switch(s.label){case 0:return[4,r.exists()];case 1:if(!s.sent())throw Error("file ".concat(r.path," not exists"));if(!(e instanceof t))return[3,5];if(ri(e.path)!==r)return[3,2];return n=r,[3,4];case 2:return[4,rn(e.path,r)];case 3:s.sent(),n=ri(e.path),s.label=4;case 4:return[2,n];case 5:if(!(e instanceof re))return[3,7];return[4,r.copyTo(ri(e7(e.path,r.name)))];case 6:return[2,s.sent()];case 7:throw Error("Illegal target type")}})})()}},{key:"moveTo",value:function(t){var e=this;return(0,ey._)(function(){var r;return(0,eB._)(this,function(n){switch(n.label){case 0:return[4,e.copyTo(t)];case 1:return r=n.sent(),[4,e.remove()];case 2:return[2,(n.sent(),r)]}})})()}}]),t}();S=/* @__PURE__ */new WeakMap,x=/* @__PURE__ */new WeakMap,E=/* @__PURE__ */new WeakMap,U=/* @__PURE__ */new WeakMap,T=/* @__PURE__ */new WeakMap,A=/* @__PURE__ */new WeakMap,I=/* @__PURE__ */new WeakMap,k=/* @__PURE__ */new WeakMap;var ru=ro,rl="/.opfs-tools-temp-dir";function rc(t){return rh.apply(this,arguments)}function rh(){return(rh=(0,ey._)(function(t){var e;return(0,eB._)(this,function(r){switch(r.label){case 0:if(r.trys.push([0,9,,10]),"file"!==t.kind)return[3,6];return[4,t.exists()];case 1:if(!r.sent())return[2,!0];return[4,t.createWriter()];case 2:return[4,(e=r.sent()).truncate(0)];case 3:return r.sent(),[4,e.close()];case 4:return r.sent(),[4,t.remove()];case 5:return r.sent(),[3,8];case 6:return[4,t.remove()];case 7:r.sent(),r.label=8;case 8:return[2,!0];case 9:return[2,(console.warn(r.sent()),!1)];case 10:return[2]}})})).apply(this,arguments)}var rf=[],rd=!1;function rp(){return(rp=(0,ey._)(function(){var t,e,r,n,s,a,o,u,l,c,h;return(0,eB._)(this,function(f){switch(f.label){case 0:if(null==globalThis.localStorage)return[2];t="OPFS_TOOLS_EXPIRES_TMP_FILES",rd||(rd=!0,globalThis.addEventListener("unload",function(){var e;0!==rf.length&&localStorage.setItem(t,"".concat(null!==(e=localStorage.getItem(t))&&void 0!==e?e:"",",").concat(rf.join(",")))})),r=null!==(e=localStorage.getItem(t))&&void 0!==e?e:"",n=!0,s=!1,a=void 0,f.label=1;case 1:f.trys.push([1,7,8,9]),o=r.split(",")[Symbol.iterator](),f.label=2;case 2:if(n=(u=o.next()).done)return[3,6];if(!(c=0!==(l=u.value).length))return[3,4];return[4,rc(ri("".concat(rl,"/").concat(l)))];case 3:c=f.sent(),f.label=4;case 4:c&&(r=r.replace(l,"")),f.label=5;case 5:return n=!0,[3,2];case 6:return[3,9];case 7:return h=f.sent(),s=!0,a=h,[3,9];case 8:try{n||null==o.return||o.return()}finally{if(s)throw a}return[7];case 9:return localStorage.setItem(t,r.replace(/,{2,}/g,",")),[2]}})})).apply(this,arguments)}function rm(){var t="".concat(Math.random().toString().slice(2),"-").concat(Date.now());return rf.push(t),ri("".concat(rl,"/").concat(t))}(0,ey._)(function(){var t,e;return(0,eB._)(this,function(e){switch(e.label){case 0:if(!(!0!==globalThis.__opfs_tools_tmpfile_init__))return[3,3];if(globalThis.__opfs_tools_tmpfile_init__=!0,null==globalThis.FileSystemDirectoryHandle||null==globalThis.FileSystemFileHandle||(null==(t=globalThis.navigator)?void 0:t.storage.getDirectory)==null)return[3,2];return setInterval(/*#__PURE__*/(0,ey._)(function(){var t,e,r,n,s,a,o,u;return(0,eB._)(this,function(l){switch(l.label){case 0:t=!0,e=!1,r=void 0,l.label=1;case 1:return l.trys.push([1,8,9,10]),[4,rt(rl).children()];case 2:n=l.sent()[Symbol.iterator](),l.label=3;case 3:if(t=(s=n.next()).done)return[3,7];if(a=s.value,!(null==(o=/^\d+-(\d+)$/.exec(a.name))||Date.now()-Number(o[1])>2592e5))return[3,5];return[4,rc(a)];case 4:l.sent(),l.label=5;case 5:l.label=6;case 6:return t=!0,[3,3];case 7:return[3,10];case 8:return u=l.sent(),e=!0,r=u,[3,10];case 9:try{t||null==n.return||n.return()}finally{if(e)throw r}return[7];case 10:return[2]}})}),6e4),[4,function(){return rp.apply(this,arguments)}()];case 1:e.sent(),e.label=2;case 2:e.label=3;case 3:return[2]}})})();var r_=1,ry=rm(),rg=null,rv=["debug","info","warn","error"].reduce(function(t,e,r){return Object.assign(t,(0,eb._)({},e,function(){for(var t,n,s=arguments.length,a=Array(s),o=0;o3&&void 0!==arguments[3]?arguments[3]:{},s=(r-e)/e+1,a=new Float64Array(t.length*s);n.method=n.method||"cubic";var o=new rI(t.length,a.length,{method:n.method,tension:n.tension||0,sincFilterSize:n.sincFilterSize||6,sincWindow:n.sincWindow||void 0});if(void 0===n.LPF&&(n.LPF=rP[n.method]),n.LPF){n.LPFType=n.LPFType||"IIR";var u=rF[n.LPFType];r>e?function(t,e,r,n){for(var s=0,a=e.length;s=0;o--)e[o]=n.filter(e[o])}(t,a,o,new u(n.LPFOrder||rR[n.LPFType],r,e/2)):function(t,e,r,n){for(var s=0,a=t.length;s=0;o--)t[o]=n.filter(t[o]);rD(t,e,r)}(t,a,o,new u(n.LPFOrder||rR[n.LPFType],e,r/2))}else rD(t,a,o);return a}(t,e,r.rate,{method:"sinc",LPF:!1}))})];return l=(u=new globalThis.OfflineAudioContext(r.chanCount,o*r.rate/e,r.rate)).createBufferSource(),c=u.createBuffer(s,o,e),t.forEach(function(t,e){return c.copyToChannel(t,e)}),l.buffer=c,l.connect(u.destination),l.start(),[4,u.startRendering()];case 1:return[2,rM.apply(void 0,[h.sent()])]}})})).apply(this,arguments)}function rH(t){return new Promise(function(e){var r=rA(function(){r(),e()},t)})}function rX(t,e,r){for(var n=r-e,s=new Float32Array(n),a=0;a=a&&console.debug("["+o.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)},log:function(t,e){this.debug(t.msg)},info:function(t,e){2>=a&&console.info("["+o.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)},warn:function(t,e){3>=a&&console.warn("["+o.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)},error:function(t,e){4>=a&&console.error("["+o.getDurationString(/* @__PURE__ */new Date-s,1e3)+"]","["+t+"]",e)}}).getDurationString=function(t,e){function r(t,e){for(var r=(""+t).split(".");r[0].length0))return"(empty)";for(var r="",n=0;n0&&(r+=","),r+="["+o.getDurationString(t.start(n))+","+o.getDurationString(t.end(n))+"]";return r},rQ.Log=o,(u=function(t){if(t instanceof ArrayBuffer)this.buffer=t,this.dataview=new DataView(t);else throw"Needs an array buffer";this.position=0}).prototype.getPosition=function(){return this.position},u.prototype.getEndPosition=function(){return this.buffer.byteLength},u.prototype.getLength=function(){return this.buffer.byteLength},u.prototype.seek=function(t){var e=Math.max(0,Math.min(this.buffer.byteLength,t));return this.position=isNaN(e)||!isFinite(e)?0:e,!0},u.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},u.prototype.readAnyInt=function(t,e){var r=0;if(this.position+t<=this.buffer.byteLength){switch(t){case 1:r=e?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:r=e?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(e)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16|this.dataview.getUint8(this.position+1)<<8|this.dataview.getUint8(this.position+2);break;case 4:r=e?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(e)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32|this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+t}return this.position+=t,r}throw"Not enough bytes in buffer"},u.prototype.readUint8=function(){return this.readAnyInt(1,!1)},u.prototype.readUint16=function(){return this.readAnyInt(2,!1)},u.prototype.readUint24=function(){return this.readAnyInt(3,!1)},u.prototype.readUint32=function(){return this.readAnyInt(4,!1)},u.prototype.readUint64=function(){return this.readAnyInt(8,!1)},u.prototype.readString=function(t){if(this.position+t<=this.buffer.byteLength){for(var e="",r=0;rthis._byteLength&&(this._byteLength=e);return}for(r<1&&(r=1);e>r;)r*=2;var n=new ArrayBuffer(r),s=new Uint8Array(this._buffer);new Uint8Array(n,0,s.length).set(s),this.buffer=n,this._byteLength=e}},l.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var t=new ArrayBuffer(this._byteLength),e=new Uint8Array(t),r=new Uint8Array(this._buffer,0,e.length);e.set(r),this.buffer=t}},l.BIG_ENDIAN=!1,l.LITTLE_ENDIAN=!0,l.prototype._byteLength=0,Object.defineProperty(l.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(l.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(t){this._buffer=t,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(l.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(t){this._byteOffset=t,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(l.prototype,"dataView",{get:function(){return this._dataView},set:function(t){this._byteOffset=t.byteOffset,this._buffer=t.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+t.byteLength}}),l.prototype.seek=function(t){var e=Math.max(0,Math.min(this.byteLength,t));this.position=isNaN(e)||!isFinite(e)?0:e},l.prototype.isEof=function(){return this.position>=this._byteLength},l.prototype.mapUint8Array=function(t){this._realloc(1*t);var e=new Uint8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=1*t,e},l.prototype.readInt32Array=function(t,e){var r=new Int32Array(t=null!=t?t:this.byteLength-this.position/4);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null!=e?e:this.endianness),this.position+=r.byteLength,r},l.prototype.readInt16Array=function(t,e){var r=new Int16Array(t=null!=t?t:this.byteLength-this.position/2);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null!=e?e:this.endianness),this.position+=r.byteLength,r},l.prototype.readInt8Array=function(t){var e=new Int8Array(t=null!=t?t:this.byteLength-this.position);return l.memcpy(e.buffer,0,this.buffer,this.byteOffset+this.position,t*e.BYTES_PER_ELEMENT),this.position+=e.byteLength,e},l.prototype.readUint32Array=function(t,e){var r=new Uint32Array(t=null!=t?t:this.byteLength-this.position/4);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null!=e?e:this.endianness),this.position+=r.byteLength,r},l.prototype.readUint16Array=function(t,e){var r=new Uint16Array(t=null!=t?t:this.byteLength-this.position/2);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null!=e?e:this.endianness),this.position+=r.byteLength,r},l.prototype.readUint8Array=function(t){var e=new Uint8Array(t=null!=t?t:this.byteLength-this.position);return l.memcpy(e.buffer,0,this.buffer,this.byteOffset+this.position,t*e.BYTES_PER_ELEMENT),this.position+=e.byteLength,e},l.prototype.readFloat64Array=function(t,e){var r=new Float64Array(t=null!=t?t:this.byteLength-this.position/8);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null!=e?e:this.endianness),this.position+=r.byteLength,r},l.prototype.readFloat32Array=function(t,e){var r=new Float32Array(t=null!=t?t:this.byteLength-this.position/4);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,t*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null!=e?e:this.endianness),this.position+=r.byteLength,r},l.prototype.readInt32=function(t){var e=this._dataView.getInt32(this.position,null!=t?t:this.endianness);return this.position+=4,e},l.prototype.readInt16=function(t){var e=this._dataView.getInt16(this.position,null!=t?t:this.endianness);return this.position+=2,e},l.prototype.readInt8=function(){var t=this._dataView.getInt8(this.position);return this.position+=1,t},l.prototype.readUint32=function(t){var e=this._dataView.getUint32(this.position,null!=t?t:this.endianness);return this.position+=4,e},l.prototype.readUint16=function(t){var e=this._dataView.getUint16(this.position,null!=t?t:this.endianness);return this.position+=2,e},l.prototype.readUint8=function(){var t=this._dataView.getUint8(this.position);return this.position+=1,t},l.prototype.readFloat32=function(t){var e=this._dataView.getFloat32(this.position,null!=t?t:this.endianness);return this.position+=4,e},l.prototype.readFloat64=function(t){var e=this._dataView.getFloat64(this.position,null!=t?t:this.endianness);return this.position+=8,e},l.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,l.memcpy=function(t,e,r,n,s){var a=new Uint8Array(t,e,s),o=new Uint8Array(r,n,s);a.set(o)},l.arrayToNative=function(t,e){return e==this.endianness?t:this.flipArrayEndianness(t)},l.nativeToEndian=function(t,e){return this.endianness==e?t:this.flipArrayEndianness(t)},l.flipArrayEndianness=function(t){for(var e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),r=0;rs;n--,s++){var a=e[s];e[s]=e[n],e[n]=a}return t},l.prototype.failurePosition=0,String.fromCharCodeUint8=function(t){for(var e=[],r=0;r>16),this.writeUint8((65280&t)>>8),this.writeUint8(255&t)},l.prototype.adjustUint32=function(t,e){var r=this.position;this.seek(t),this.writeUint32(e),this.seek(r)},l.prototype.mapInt32Array=function(t,e){this._realloc(4*t);var r=new Int32Array(this._buffer,this.byteOffset+this.position,t);return l.arrayToNative(r,null!=e?e:this.endianness),this.position+=4*t,r},l.prototype.mapInt16Array=function(t,e){this._realloc(2*t);var r=new Int16Array(this._buffer,this.byteOffset+this.position,t);return l.arrayToNative(r,null!=e?e:this.endianness),this.position+=2*t,r},l.prototype.mapInt8Array=function(t){this._realloc(1*t);var e=new Int8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=1*t,e},l.prototype.mapUint32Array=function(t,e){this._realloc(4*t);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,t);return l.arrayToNative(r,null!=e?e:this.endianness),this.position+=4*t,r},l.prototype.mapUint16Array=function(t,e){this._realloc(2*t);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,t);return l.arrayToNative(r,null!=e?e:this.endianness),this.position+=2*t,r},l.prototype.mapFloat64Array=function(t,e){this._realloc(8*t);var r=new Float64Array(this._buffer,this.byteOffset+this.position,t);return l.arrayToNative(r,null!=e?e:this.endianness),this.position+=8*t,r},l.prototype.mapFloat32Array=function(t,e){this._realloc(4*t);var r=new Float32Array(this._buffer,this.byteOffset+this.position,t);return l.arrayToNative(r,null!=e?e:this.endianness),this.position+=4*t,r},(c=function(t){this.buffers=[],this.bufferIndex=-1,t&&(this.insertBuffer(t),this.bufferIndex=0)}).prototype=new l(new ArrayBuffer,0,l.BIG_ENDIAN),c.prototype.initialized=function(){var t;return this.bufferIndex>-1||(this.buffers.length>0?0===(t=this.buffers[0]).fileStart?(this.buffer=t,this.bufferIndex=0,o.debug("MultiBufferStream","Stream ready for parsing"),!0):(o.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1):(o.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1))},ArrayBuffer.concat=function(t,e){o.debug("ArrayBuffer","Trying to create a new buffer of size: "+(t.byteLength+e.byteLength));var r=new Uint8Array(t.byteLength+e.byteLength);return r.set(new Uint8Array(t),0),r.set(new Uint8Array(e),t.byteLength),r.buffer},c.prototype.reduceBuffer=function(t,e,r){var n;return(n=new Uint8Array(r)).set(new Uint8Array(t,e,r)),n.buffer.fileStart=t.fileStart+e,n.buffer.usedBytes=0,n.buffer},c.prototype.insertBuffer=function(t){for(var e=!0,r=0;rn.byteLength){this.buffers.splice(r,1),r--;continue}o.warn("MultiBufferStream","Buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+") already appended, ignoring")}else t.fileStart+t.byteLength<=n.fileStart||(t=this.reduceBuffer(t,0,n.fileStart-t.fileStart)),o.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.splice(r,0,t),0===r&&(this.buffer=t);e=!1;break}if(t.fileStart0)t=this.reduceBuffer(t,s,a);else{e=!1;break}}}e&&(o.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.push(t),0===r&&(this.buffer=t))},c.prototype.logBufferLevel=function(t){var e,r,n,s,a,u=[],l="";for(n=0,s=0,e=0;e0&&(l+=a.end-1+"]"),(t?o.info:o.debug)("MultiBufferStream",0===this.buffers.length?"No more buffer in memory":""+this.buffers.length+" stored buffer(s) ("+n+"/"+s+" bytes), continuous ranges: "+l)},c.prototype.cleanBuffers=function(){var t,e;for(t=0;t"+this.buffer.byteLength+")"),!0},c.prototype.findPosition=function(t,e,r){var n,s=null,a=-1;for(n=!0===t?0:this.bufferIndex;n=e?(o.debug("MultiBufferStream","Found position in existing buffer #"+a),a):-1},c.prototype.findEndContiguousBuf=function(t){var e,r,n,s=void 0!==t?t:this.bufferIndex;if(r=this.buffers[s],this.buffers.length>s+1)for(e=s+1;e>3;return 31===n&&r.data.length>=2&&(n=32+((7&r.data[0])<<3)+((224&r.data[1])>>5)),n},r.DecoderConfigDescriptor=function(t){r.Descriptor.call(this,4,t)},r.DecoderConfigDescriptor.prototype=new r.Descriptor,r.DecoderConfigDescriptor.prototype.parse=function(t){this.oti=t.readUint8(),this.streamType=t.readUint8(),this.bufferSize=t.readUint24(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32(),this.size-=13,this.parseRemainingDescriptors(t)},r.DecoderSpecificInfo=function(t){r.Descriptor.call(this,5,t)},r.DecoderSpecificInfo.prototype=new r.Descriptor,r.SLConfigDescriptor=function(t){r.Descriptor.call(this,6,t)},r.SLConfigDescriptor.prototype=new r.Descriptor,this},rQ.MPEG4DescriptorParser=h,(f={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){f.FullBox.prototype=new f.Box,f.ContainerBox.prototype=new f.Box,f.SampleEntry.prototype=new f.Box,f.TrackGroupTypeBox.prototype=new f.FullBox,f.BASIC_BOXES.forEach(function(t){f.createBoxCtor(t)}),f.FULL_BOXES.forEach(function(t){f.createFullBoxCtor(t)}),f.CONTAINER_BOXES.forEach(function(t){f.createContainerBoxCtor(t[0],null,t[1])})},Box:function(t,e,r){this.type=t,this.size=e,this.uuid=r},FullBox:function(t,e,r){f.Box.call(this,t,e,r),this.flags=0,this.version=0},ContainerBox:function(t,e,r){f.Box.call(this,t,e,r),this.boxes=[]},SampleEntry:function(t,e,r,n){f.ContainerBox.call(this,t,e),this.hdr_size=r,this.start=n},SampleGroupEntry:function(t){this.grouping_type=t},TrackGroupTypeBox:function(t,e){f.FullBox.call(this,t,e)},createBoxCtor:function(t,e){f.boxCodes.push(t),f[t+"Box"]=function(e){f.Box.call(this,t,e)},f[t+"Box"].prototype=new f.Box,e&&(f[t+"Box"].prototype.parse=e)},createFullBoxCtor:function(t,e){f[t+"Box"]=function(e){f.FullBox.call(this,t,e)},f[t+"Box"].prototype=new f.FullBox,f[t+"Box"].prototype.parse=function(t){this.parseFullHeader(t),e&&e.call(this,t)}},addSubBoxArrays:function(t){if(t){this.subBoxNames=t;for(var e=t.length,r=0;rr?(o.error("BoxParser","Box of type '"+h+"' has a size "+c+" greater than its container size "+r),{code:f.ERR_NOT_ENOUGH_DATA,type:h,size:c,hdr_size:l,start:u}):0!==c&&u+c>t.getEndPosition()?(t.seek(u),o.info("BoxParser","Not enough data in stream to parse the entire '"+h+"' box"),{code:f.ERR_NOT_ENOUGH_DATA,type:h,size:c,hdr_size:l,start:u}):e?{code:f.OK,type:h,size:c,hdr_size:l,start:u}:(f[h+"Box"]?n=new f[h+"Box"](c):"uuid"!==h?(o.warn("BoxParser","Unknown box type: '"+h+"'"),(n=new f.Box(h,c)).has_unparsed_data=!0):f.UUIDBoxes[a]?n=new f.UUIDBoxes[a](c):(o.warn("BoxParser","Unknown uuid type: '"+a+"'"),(n=new f.Box(h,c)).uuid=a,n.has_unparsed_data=!0),n.hdr_size=l,n.start=u,n.write===f.Box.prototype.write&&"mdat"!==n.type&&(o.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),n.parseDataAndRewind(t)),n.parse(t),(s=t.getPosition()-(n.start+n.size))<0?(o.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-s+" bytes), seeking forward"),t.seek(n.start+n.size)):s>0&&(o.error("BoxParser","Parsing of box '"+d+"' read "+s+" more bytes than the indicated box data size, seeking backwards"),0!==n.size&&t.seek(n.start+n.size)),{code:f.OK,box:n,size:n.size})},f.Box.prototype.parse=function(t){"mdat"!=this.type?this.data=t.readUint8Array(this.size-this.hdr_size):0===this.size?t.seek(t.getEndPosition()):t.seek(this.start+this.size)},f.Box.prototype.parseDataAndRewind=function(t){this.data=t.readUint8Array(this.size-this.hdr_size),t.position-=this.size-this.hdr_size},f.FullBox.prototype.parseDataAndRewind=function(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,t.position-=this.size-this.hdr_size},f.FullBox.prototype.parseFullHeader=function(t){this.version=t.readUint8(),this.flags=t.readUint24(),this.hdr_size+=4},f.FullBox.prototype.parse=function(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)},f.ContainerBox.prototype.parse=function(t){for(var e,r;t.getPosition()>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},f.SAMPLE_ENTRY_TYPE_VISUAL="Visual",f.SAMPLE_ENTRY_TYPE_AUDIO="Audio",f.SAMPLE_ENTRY_TYPE_HINT="Hint",f.SAMPLE_ENTRY_TYPE_METADATA="Metadata",f.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",f.SAMPLE_ENTRY_TYPE_SYSTEM="System",f.SAMPLE_ENTRY_TYPE_TEXT="Text",f.SampleEntry.prototype.parseHeader=function(t){t.readUint8Array(6),this.data_reference_index=t.readUint16(),this.hdr_size+=8},f.SampleEntry.prototype.parse=function(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)},f.SampleEntry.prototype.parseDataAndRewind=function(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,t.position-=this.size-this.hdr_size},f.SampleEntry.prototype.parseFooter=function(t){f.ContainerBox.prototype.parse.call(this,t)},f.createMediaSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_HINT),f.createMediaSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_METADATA),f.createMediaSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_SUBTITLE),f.createMediaSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_SYSTEM),f.createMediaSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_TEXT),f.createMediaSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,function(t){var e;this.parseHeader(t),t.readUint16(),t.readUint16(),t.readUint32Array(3),this.width=t.readUint16(),this.height=t.readUint16(),this.horizresolution=t.readUint32(),this.vertresolution=t.readUint32(),t.readUint32(),this.frame_count=t.readUint16(),e=Math.min(31,t.readUint8()),this.compressorname=t.readString(e),e<31&&t.readString(31-e),this.depth=t.readUint16(),t.readUint16(),this.parseFooter(t)}),f.createMediaSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,function(t){this.parseHeader(t),t.readUint32Array(2),this.channel_count=t.readUint16(),this.samplesize=t.readUint16(),t.readUint16(),t.readUint16(),this.samplerate=t.readUint32()/65536,this.parseFooter(t)}),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),f.createSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),f.createEncryptedSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),f.createEncryptedSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),f.createEncryptedSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),f.createEncryptedSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),f.createEncryptedSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_TEXT,"enct"),f.createEncryptedSampleEntryCtor(f.SAMPLE_ENTRY_TYPE_METADATA,"encm"),f.createBoxCtor("a1lx",function(t){var e=((1&(1&t.readUint8()))+1)*16;this.layer_size=[];for(var r=0;r<3;r++)16==e?this.layer_size[r]=t.readUint16():this.layer_size[r]=t.readUint32()}),f.createBoxCtor("a1op",function(t){this.op_index=t.readUint8()}),f.createFullBoxCtor("auxC",function(t){this.aux_type=t.readCString();var e=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=t.readUint8Array(e)}),f.createBoxCtor("av1C",function(t){var e=t.readUint8();if(this.version=127&e,1!==this.version){o.error("av1C version "+this.version+" not supported");return}if(e=t.readUint8(),this.seq_profile=e>>5&7,this.seq_level_idx_0=31&e,e=t.readUint8(),this.seq_tier_0=e>>7&1,this.high_bitdepth=e>>6&1,this.twelve_bit=e>>5&1,this.monochrome=e>>4&1,this.chroma_subsampling_x=e>>3&1,this.chroma_subsampling_y=e>>2&1,this.chroma_sample_position=3&e,e=t.readUint8(),this.reserved_1=e>>5&7,0!==this.reserved_1){o.error("av1C reserved_1 parsing problem");return}if(this.initial_presentation_delay_present=e>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&e;else if(this.reserved_2=15&e,0!==this.reserved_2){o.error("av1C reserved_2 parsing problem");return}var r=this.size-this.hdr_size-4;this.configOBUs=t.readUint8Array(r)}),f.createBoxCtor("avcC",function(t){var e,r;for(this.configurationVersion=t.readUint8(),this.AVCProfileIndication=t.readUint8(),this.profile_compatibility=t.readUint8(),this.AVCLevelIndication=t.readUint8(),this.lengthSizeMinusOne=3&t.readUint8(),this.nb_SPS_nalus=31&t.readUint8(),r=this.size-this.hdr_size-6,this.SPS=[],e=0;e0&&(this.ext=t.readUint8Array(r))}),f.createBoxCtor("btrt",function(t){this.bufferSizeDB=t.readUint32(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32()}),f.createFullBoxCtor("ccst",function(t){var e=t.readUint8();this.all_ref_pics_intra=(128&e)==128,this.intra_pred_used=(64&e)==64,this.max_ref_per_pic=(63&e)>>2,t.readUint24()}),f.createBoxCtor("cdef",function(t){var e;for(this.channel_count=t.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],e=0;e=32768&&this.component_type_urls.push(t.readCString())}}),f.createFullBoxCtor("co64",function(t){var e,r;if(e=t.readUint32(),this.chunk_offsets=[],0===this.version)for(r=0;r>7}else"rICC"===this.colour_type?this.ICC_profile=t.readUint8Array(this.size-4):"prof"===this.colour_type&&(this.ICC_profile=t.readUint8Array(this.size-4))}),f.createFullBoxCtor("cprt",function(t){this.parseLanguage(t),this.notice=t.readCString()}),f.createFullBoxCtor("cslg",function(t){0===this.version&&(this.compositionToDTSShift=t.readInt32(),this.leastDecodeToDisplayDelta=t.readInt32(),this.greatestDecodeToDisplayDelta=t.readInt32(),this.compositionStartTime=t.readInt32(),this.compositionEndTime=t.readInt32())}),f.createFullBoxCtor("ctts",function(t){var e,r;if(e=t.readUint32(),this.sample_counts=[],this.sample_offsets=[],0===this.version)for(r=0;r>6,this.bsid=e>>1&31,this.bsmod=(1&e)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=3&r|n>>5&7}),f.createBoxCtor("dec3",function(t){var e=t.readUint16();this.data_rate=e>>3,this.num_ind_sub=7&e,this.ind_subs=[];for(var r=0;r>6,n.bsid=s>>1&31,n.bsmod=(1&s)<<4|a>>4&15,n.acmod=a>>1&7,n.lfeon=1&a,n.num_dep_sub=o>>1&15,n.num_dep_sub>0&&(n.chan_loc=(1&o)<<8|t.readUint8())}}),f.createFullBoxCtor("dfLa",function(t){var e=[],r=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];for(this.parseFullHeader(t);;){var n=t.readUint8(),s=Math.min(127&n,r.length-1);if(s?t.readUint8Array(t.readUint24()):(t.readUint8Array(13),this.samplerate=t.readUint32()>>12,t.readUint8Array(20)),e.push(r[s]),128&n)break}this.numMetadataBlocks=e.length+" ("+e.join(", ")+")"}),f.createBoxCtor("dimm",function(t){this.bytessent=t.readUint64()}),f.createBoxCtor("dmax",function(t){this.time=t.readUint32()}),f.createBoxCtor("dmed",function(t){this.bytessent=t.readUint64()}),f.createBoxCtor("dOps",function(t){if(this.Version=t.readUint8(),this.OutputChannelCount=t.readUint8(),this.PreSkip=t.readUint16(),this.InputSampleRate=t.readUint32(),this.OutputGain=t.readInt16(),this.ChannelMappingFamily=t.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=t.readUint8(),this.CoupledCount=t.readUint8(),this.ChannelMapping=[];for(var e=0;e=4;)this.compatible_brands[r]=t.readString(4),e-=4,r++}),f.createFullBoxCtor("hdlr",function(t){0===this.version&&(t.readUint32(),this.handler=t.readString(4),t.readUint32Array(3),this.name=t.readString(this.size-this.hdr_size-20),"\0"===this.name[this.name.length-1]&&(this.name=this.name.slice(0,-1)))}),f.createBoxCtor("hvcC",function(t){this.configurationVersion=t.readUint8(),s=t.readUint8(),this.general_profile_space=s>>6,this.general_tier_flag=(32&s)>>5,this.general_profile_idc=31&s,this.general_profile_compatibility=t.readUint32(),this.general_constraint_indicator=t.readUint8Array(6),this.general_level_idc=t.readUint8(),this.min_spatial_segmentation_idc=4095&t.readUint16(),this.parallelismType=3&t.readUint8(),this.chroma_format_idc=3&t.readUint8(),this.bit_depth_luma_minus8=7&t.readUint8(),this.bit_depth_chroma_minus8=7&t.readUint8(),this.avgFrameRate=t.readUint16(),s=t.readUint8(),this.constantFrameRate=s>>6,this.numTemporalLayers=(13&s)>>3,this.temporalIdNested=(4&s)>>2,this.lengthSizeMinusOne=3&s,this.nalu_arrays=[];var e,r,n,s,a=t.readUint8();for(e=0;e>7,o.nalu_type=63&s;var u=t.readUint16();for(r=0;r>4&15,this.length_size=15&e,e=t.readUint8(),this.base_offset_size=e>>4&15,1===this.version||2===this.version?this.index_size=15&e:this.index_size=0,this.items=[];var e,r=0;if(this.version<2)r=t.readUint16();else if(2===this.version)r=t.readUint32();else throw"version of iloc box not supported";for(var n=0;n>7,this.axis=1&e}),f.createFullBoxCtor("infe",function(t){if((0===this.version||1===this.version)&&(this.item_ID=t.readUint16(),this.item_protection_index=t.readUint16(),this.item_name=t.readCString(),this.content_type=t.readCString(),this.content_encoding=t.readCString()),1===this.version){this.extension_type=t.readString(4),o.warn("BoxParser","Cannot parse extension type"),t.seek(this.start+this.size);return}this.version>=2&&(2===this.version?this.item_ID=t.readUint16():3===this.version&&(this.item_ID=t.readUint32()),this.item_protection_index=t.readUint16(),this.item_type=t.readString(4),this.item_name=t.readCString(),"mime"===this.item_type?(this.content_type=t.readCString(),this.content_encoding=t.readCString()):"uri "===this.item_type&&(this.item_uri_type=t.readCString()))}),f.createFullBoxCtor("ipma",function(t){var e,r;for(entry_count=t.readUint32(),this.associations=[],e=0;e>7==1,1&this.flags?o.property_index=(127&a)<<8|t.readUint8():o.property_index=127&a}}}),f.createFullBoxCtor("iref",function(t){var e,r;for(this.references=[];t.getPosition()>7,n.assignment_type=127&s,n.assignment_type){case 0:n.grouping_type=t.readString(4);break;case 1:n.grouping_type=t.readString(4),n.grouping_type_parameter=t.readUint32();break;case 2:case 3:break;case 4:n.sub_track_id=t.readUint32();break;default:o.warn("BoxParser","Unknown leva assignement type")}}}),f.createBoxCtor("lsel",function(t){this.layer_id=t.readUint16()}),f.createBoxCtor("maxr",function(t){this.period=t.readUint32(),this.bytes=t.readUint32()}),f.createBoxCtor("mdcv",function(t){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=t.readUint16(),this.display_primaries[0].y=t.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=t.readUint16(),this.display_primaries[1].y=t.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=t.readUint16(),this.display_primaries[2].y=t.readUint16(),this.white_point={},this.white_point.x=t.readUint16(),this.white_point.y=t.readUint16(),this.max_display_mastering_luminance=t.readUint32(),this.min_display_mastering_luminance=t.readUint32()}),f.createFullBoxCtor("mdhd",function(t){1==this.version?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.parseLanguage(t),t.readUint16()}),f.createFullBoxCtor("mehd",function(t){1&this.flags&&(o.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=t.readUint64():this.fragment_duration=t.readUint32()}),f.createFullBoxCtor("meta",function(t){this.boxes=[],f.ContainerBox.prototype.parse.call(this,t)}),f.createFullBoxCtor("mfhd",function(t){this.sequence_number=t.readUint32()}),f.createFullBoxCtor("mfro",function(t){this._size=t.readUint32()}),f.createFullBoxCtor("mvhd",function(t){1==this.version?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.rate=t.readUint32(),this.volume=t.readUint16()>>8,t.readUint16(),t.readUint32Array(2),this.matrix=t.readUint32Array(9),t.readUint32Array(6),this.next_track_id=t.readUint32()}),f.createBoxCtor("npck",function(t){this.packetssent=t.readUint32()}),f.createBoxCtor("nump",function(t){this.packetssent=t.readUint64()}),f.createFullBoxCtor("padb",function(t){var e=t.readUint32();this.padbits=[];for(var r=0;r0){var e=t.readUint32();this.kid=[];for(var r=0;r0&&(this.data=t.readUint8Array(n))}),f.createFullBoxCtor("clef",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),f.createFullBoxCtor("enof",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),f.createFullBoxCtor("prof",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),f.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),f.createBoxCtor("rtp ",function(t){this.descriptionformat=t.readString(4),this.sdptext=t.readString(this.size-this.hdr_size-4)}),f.createFullBoxCtor("saio",function(t){1&this.flags&&(this.aux_info_type=t.readUint32(),this.aux_info_type_parameter=t.readUint32());var e=t.readUint32();this.offset=[];for(var r=0;r>7,this.avgRateFlag=e>>6&1,this.durationFlag&&(this.duration=t.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()),this.dependency=[];for(var r=t.readUint8(),n=0;n>7,this.num_leading_samples=127&e}),f.createSampleGroupCtor("rash",function(t){if(this.operation_point_count=t.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)o.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=t.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=t.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var e=0;e>4,this.skip_byte_block=15&e,this.isProtected=t.readUint8(),this.Per_Sample_IV_Size=t.readUint8(),this.KID=f.parseHex16(t),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=t.readUint8(),this.constant_IV=t.readUint8Array(this.constant_IV_size))}),f.createSampleGroupCtor("stsa",function(t){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),f.createSampleGroupCtor("sync",function(t){var e=t.readUint8();this.NAL_unit_type=63&e}),f.createSampleGroupCtor("tele",function(t){var e=t.readUint8();this.level_independently_decodable=e>>7}),f.createSampleGroupCtor("tsas",function(t){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),f.createSampleGroupCtor("tscl",function(t){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),f.createSampleGroupCtor("vipr",function(t){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),f.createFullBoxCtor("sbgp",function(t){this.grouping_type=t.readString(4),1===this.version?this.grouping_type_parameter=t.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var e=t.readUint32(),r=0;r>6,this.sample_depends_on[n]=e>>4&3,this.sample_is_depended_on[n]=e>>2&3,this.sample_has_redundancy[n]=3&e}),f.createFullBoxCtor("senc"),f.createFullBoxCtor("sgpd",function(t){this.grouping_type=t.readString(4),o.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=t.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=t.readUint32()),this.entries=[];for(var e,r=t.readUint32(),n=0;n>31&1,n.referenced_size=2147483647&s,n.subsegment_duration=t.readUint32(),s=t.readUint32(),n.starts_with_SAP=s>>31&1,n.SAP_type=s>>28&7,n.SAP_delta_time=268435455&s}}),f.SingleItemTypeReferenceBox=function(t,e,r,n){f.Box.call(this,t,e),this.hdr_size=r,this.start=n},f.SingleItemTypeReferenceBox.prototype=new f.Box,f.SingleItemTypeReferenceBox.prototype.parse=function(t){this.from_item_ID=t.readUint16();var e=t.readUint16();this.references=[];for(var r=0;r>4&15,this.sample_sizes[e+1]=15&n}else if(8===this.field_size)for(e=0;e0)for(r=0;r>4&15,this.default_skip_byte_block=15&e}this.default_isProtected=t.readUint8(),this.default_Per_Sample_IV_Size=t.readUint8(),this.default_KID=f.parseHex16(t),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=t.readUint8(),this.default_constant_IV=t.readUint8Array(this.default_constant_IV_size))}),f.createFullBoxCtor("tfdt",function(t){1==this.version?this.baseMediaDecodeTime=t.readUint64():this.baseMediaDecodeTime=t.readUint32()}),f.createFullBoxCtor("tfhd",function(t){var e=0;this.track_id=t.readUint32(),this.size-this.hdr_size>e&&this.flags&f.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=t.readUint64(),e+=8):this.base_data_offset=0,this.size-this.hdr_size>e&&this.flags&f.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=t.readUint32(),e+=4):this.default_sample_description_index=0,this.size-this.hdr_size>e&&this.flags&f.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=t.readUint32(),e+=4):this.default_sample_duration=0,this.size-this.hdr_size>e&&this.flags&f.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=t.readUint32(),e+=4):this.default_sample_size=0,this.size-this.hdr_size>e&&this.flags&f.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=t.readUint32(),e+=4):this.default_sample_flags=0}),f.createFullBoxCtor("tfra",function(t){this.track_ID=t.readUint32(),t.readUint24();var e=t.readUint8();this.length_size_of_traf_num=e>>4&3,this.length_size_of_trun_num=e>>2&3,this.length_size_of_sample_num=3&e,this.entries=[];for(var r=t.readUint32(),n=0;n>8,t.readUint16(),this.matrix=t.readInt32Array(9),this.width=t.readUint32(),this.height=t.readUint32()}),f.createBoxCtor("tmax",function(t){this.time=t.readUint32()}),f.createBoxCtor("tmin",function(t){this.time=t.readUint32()}),f.createBoxCtor("totl",function(t){this.bytessent=t.readUint32()}),f.createBoxCtor("tpay",function(t){this.bytessent=t.readUint32()}),f.createBoxCtor("tpyl",function(t){this.bytessent=t.readUint64()}),f.TrackGroupTypeBox.prototype.parse=function(t){this.parseFullHeader(t),this.track_group_id=t.readUint32()},f.createTrackGroupCtor("msrc"),f.TrackReferenceTypeBox=function(t,e,r,n){f.Box.call(this,t,e),this.hdr_size=r,this.start=n},f.TrackReferenceTypeBox.prototype=new f.Box,f.TrackReferenceTypeBox.prototype.parse=function(t){this.track_ids=t.readUint32Array((this.size-this.hdr_size)/4)},f.trefBox.prototype.parse=function(t){for(var e,r;t.getPosition()e&&this.flags&f.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=t.readInt32(),e+=4):this.data_offset=0,this.size-this.hdr_size>e&&this.flags&f.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=t.readUint32(),e+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>e)for(var r=0;r>7&1,this.block_pad_lsb=r>>6&1,this.block_little_endian=r>>5&1,this.block_reversed=r>>4&1,this.pad_unknown=r>>3&1,this.pixel_size=t.readUint8(),this.row_align_size=t.readUint32(),this.tile_align_size=t.readUint32(),this.num_tile_cols_minus_one=t.readUint32(),this.num_tile_rows_minus_one=t.readUint32()}),f.createFullBoxCtor("url ",function(t){1!==this.flags&&(this.location=t.readCString())}),f.createFullBoxCtor("urn ",function(t){this.name=t.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=t.readCString())}),f.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,function(t){this.LiveServerManifest=t.readString(this.size-this.hdr_size).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}),f.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(t){this.system_id=f.parseHex16(t);var e=t.readUint32();e>0&&(this.data=t.readUint8Array(e))}),f.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),f.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,function(t){this.default_AlgorithmID=t.readUint24(),this.default_IV_size=t.readUint8(),this.default_KID=f.parseHex16(t)}),f.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,function(t){this.fragment_count=t.readUint8(),this.entries=[];for(var e=0;e>4,this.chromaSubsampling=e>>1&7,this.videoFullRangeFlag=1&e,this.colourPrimaries=t.readUint8(),this.transferCharacteristics=t.readUint8(),this.matrixCoefficients=t.readUint8()):(this.profile=t.readUint8(),this.level=t.readUint8(),e=t.readUint8(),this.bitDepth=e>>4&15,this.colorSpace=15&e,e=t.readUint8(),this.chromaSubsampling=e>>4&15,this.transferFunction=e>>1&7,this.videoFullRangeFlag=1&e),this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}),f.createBoxCtor("vttC",function(t){this.text=t.readString(this.size-this.hdr_size)}),f.createFullBoxCtor("vvcC",function(t){var e,r,n={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(t){this.held_bits=t.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(t){this.held_bits=t.readUint16(),this.num_held_bits=16},extract_bits:function(t){var e=this.held_bits>>this.num_held_bits-t&(1<1){for(n.stream_read_1_bytes(t),this.ptl_sublayer_present_mask=0,r=this.num_sublayers-2;r>=0;--r){var o=n.extract_bits(1);this.ptl_sublayer_present_mask|=o<1;++r)n.extract_bits(1);for(this.sublayer_level_idc=[],r=this.num_sublayers-2;r>=0;--r)this.ptl_sublayer_present_mask&1<"u"||null===e?e=2:e;r.length>=1;e+=f.decimalToHex(n,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var s=!1,a="";for(t=5;t>=0;t--)(this.hvcC.general_constraint_indicator[t]||s)&&(a="."+f.decimalToHex(this.hvcC.general_constraint_indicator[t],0)+a,s=!0);e+=a}return e},f.vvc1SampleEntry.prototype.getCodec=f.vvi1SampleEntry.prototype.getCodec=function(){var t,e=f.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var r="";if(this.vvcC.general_constraint_info){var n,s,a=[];for(s=0|this.vvcC.ptl_frame_only_constraint<<7|this.vvcC.ptl_multilayer_enabled<<6,t=0;t>2&63,a.push(s),s&&(n=t),s=this.vvcC.general_constraint_info[t]>>2&3;if(void 0===n)r=".CA";else{r=".C";var o="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",u=0,l=0;for(t=0;t<=n;++t)for(u=u<<8|a[t],l+=8;l>=5;)r+=o[u>>l-5&31],l-=5,u&=(1<4294967296&&(this.size+=8),"uuid"===this.type&&(this.size+=16),o.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+t.getPosition()+(e||"")),this.size>4294967296?t.writeUint32(1):(this.sizePosition=t.getPosition(),t.writeUint32(this.size)),t.writeString(this.type,null,4),"uuid"===this.type&&t.writeUint8Array(this.uuid),this.size>4294967296&&t.writeUint64(this.size)},f.FullBox.prototype.writeHeader=function(t){this.size+=4,f.Box.prototype.writeHeader.call(this,t," v="+this.version+" f="+this.flags),t.writeUint8(this.version),t.writeUint24(this.flags)},f.Box.prototype.write=function(t){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(t),t.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(t),this.data&&t.writeUint8Array(this.data))},f.ContainerBox.prototype.write=function(t){this.size=0,this.writeHeader(t);for(var e=0;e=2&&t.writeUint32(this.default_sample_description_index),t.writeUint32(this.entries.length),e=0;e0)for(e=0;e+14294967295?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(t),1===this.version?t.writeUint64(this.baseMediaDecodeTime):t.writeUint32(this.baseMediaDecodeTime)},f.tfhdBox.prototype.write=function(t){this.version=0,this.size=4,this.flags&f.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&f.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&f.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&f.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&f.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(t),t.writeUint32(this.track_id),this.flags&f.TFHD_FLAG_BASE_DATA_OFFSET&&t.writeUint64(this.base_data_offset),this.flags&f.TFHD_FLAG_SAMPLE_DESC&&t.writeUint32(this.default_sample_description_index),this.flags&f.TFHD_FLAG_SAMPLE_DUR&&t.writeUint32(this.default_sample_duration),this.flags&f.TFHD_FLAG_SAMPLE_SIZE&&t.writeUint32(this.default_sample_size),this.flags&f.TFHD_FLAG_SAMPLE_FLAGS&&t.writeUint32(this.default_sample_flags)},f.tkhdBox.prototype.write=function(t){this.version=0,this.size=80,this.writeHeader(t),t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint32(this.duration),t.writeUint32(0),t.writeUint32(0),t.writeInt16(this.layer),t.writeInt16(this.alternate_group),t.writeInt16(this.volume<<8),t.writeUint16(0),t.writeInt32Array(this.matrix),t.writeUint32(this.width),t.writeUint32(this.height)},f.trexBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=20,this.writeHeader(t),t.writeUint32(this.track_id),t.writeUint32(this.default_sample_description_index),t.writeUint32(this.default_sample_duration),t.writeUint32(this.default_sample_size),t.writeUint32(this.default_sample_flags)},f.trunBox.prototype.write=function(t){this.version=0,this.size=4,this.flags&f.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&f.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&f.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&f.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&f.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&f.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(t),t.writeUint32(this.sample_count),this.flags&f.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=t.getPosition(),t.writeInt32(this.data_offset)),this.flags&f.TRUN_FLAGS_FIRST_FLAG&&t.writeUint32(this.first_sample_flags);for(var e=0;e-1)){if(t[r]instanceof f.Box||e[r]instanceof f.Box||(0,ek._)(t[r])>"u"||(0,ek._)(e[r])>"u"||"function"==typeof t[r]||"function"==typeof e[r]||t.subBoxNames&&t.subBoxNames.indexOf(r.slice(0,4))>-1||e.subBoxNames&&e.subBoxNames.indexOf(r.slice(0,4))>-1||"data"===r||"start"===r||"size"===r||"creation_time"===r||"modification_time"===r||f.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(r)>-1)continue;if(t[r]!==e[r])return!1}return!0},f.boxEqual=function(t,e){if(!f.boxEqualFields(t,e))return!1;for(var r=0;r1)for(e=1;e-1&&this.fragmentedTracks.splice(e,1)},m.prototype.setExtractionOptions=function(t,e,r){var n=this.getTrackById(t);if(n){var s={};this.extractedTracks.push(s),s.id=t,s.user=e,s.trak=n,n.nextSample=0,s.nb_samples=1e3,s.samples=[],r&&r.nbSamples&&(s.nb_samples=r.nbSamples)}},m.prototype.unsetExtractionOptions=function(t){for(var e=-1,r=0;r-1&&this.extractedTracks.splice(e,1)},m.prototype.parse=function(){var t,e,r;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),(e=f.parseOneBox(this.stream,!1)).code===f.ERR_NOT_ENOUGH_DATA){if(!this.processIncompleteBox)return;if(this.processIncompleteBox(e))continue;return}else{switch(t="uuid"!==(r=e.box).type?r.type:r.uuid,this.boxes.push(r),t){case"mdat":this.mdats.push(r);break;case"moof":this.moofs.push(r);break;case"moov":this.moovStartFound=!0,0===this.mdats.length&&(this.isProgressive=!0);default:void 0!==this[t]&&o.warn("ISOFile","Duplicate Box of type: "+t+", overriding previous occurrence"),this[t]=r}this.updateUsedBytes&&this.updateUsedBytes(r,e)}},m.prototype.checkBuffer=function(t){if(null==t)throw"Buffer must be defined and non empty";if(void 0===t.fileStart)throw"Buffer must have a fileStart property";return 0===t.byteLength?(o.warn("ISOFile","Ignoring empty buffer (fileStart: "+t.fileStart+")"),this.stream.logBufferLevel(),!1):(o.info("ISOFile","Processing buffer (fileStart: "+t.fileStart+")"),t.usedBytes=0,this.stream.insertBuffer(t),this.stream.logBufferLevel(),!!this.stream.initialized()||(o.warn("ISOFile","Not ready to start parsing"),!1))},m.prototype.appendBuffer=function(t,e){var r;if(this.checkBuffer(t))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(e),this.nextSeekPosition?(r=this.nextSeekPosition,this.nextSeekPosition=void 0):r=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(r=this.stream.getEndFilePositionAfter(r))):r=this.nextParsePosition?this.nextParsePosition:0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(o.info("ISOFile","Done processing buffer (fileStart: "+t.fileStart+") - next buffer to fetch should have a fileStart position of "+r),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),o.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),r},m.prototype.getInfo=function(){var t,e,r,n,s,a,o={},u=/* @__PURE__ */new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(o.hasMoov=!0,o.duration=this.moov.mvhd.duration,o.timescale=this.moov.mvhd.timescale,o.isFragmented=null!=this.moov.mvex,o.isFragmented&&this.moov.mvex.mehd&&(o.fragment_duration=this.moov.mvex.mehd.fragment_duration),o.isProgressive=this.isProgressive,o.hasIOD=null!=this.moov.iods,o.brands=[],o.brands.push(this.ftyp.major_brand),o.brands=o.brands.concat(this.ftyp.compatible_brands),o.created=new Date(u+1e3*this.moov.mvhd.creation_time),o.modified=new Date(u+1e3*this.moov.mvhd.modification_time),o.tracks=[],o.audioTracks=[],o.videoTracks=[],o.subtitleTracks=[],o.metadataTracks=[],o.hintTracks=[],o.otherTracks=[],t=0;t0?o.mime+='video/mp4; codecs="':o.audioTracks&&o.audioTracks.length>0?o.mime+='audio/mp4; codecs="':o.mime+='application/mp4; codecs="',t=0;t=r.samples.length)&&(o.info("ISOFile","Sending fragmented data on track #"+n.id+" for samples ["+Math.max(0,r.nextSample-n.nb_samples)+","+(r.nextSample-1)+"]"),o.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(n.id,n.user,n.segmentStream.buffer,r.nextSample,t||r.nextSample>=r.samples.length),n.segmentStream=null,n!==this.fragmentedTracks[e]))break}}if(null!==this.onSamples)for(e=0;e=r.samples.length)&&(o.debug("ISOFile","Sending samples on track #"+a.id+" for sample "+r.nextSample),this.onSamples&&this.onSamples(a.id,a.user,a.samples),a.samples=[],a!==this.extractedTracks[e]))break}}}},m.prototype.getBox=function(t){var e=this.getBoxes(t,!0);return e.length?e[0]:null},m.prototype.getBoxes=function(t,e){var r=[];return m._sweep.call(this,t,r,e),r},m._sweep=function(t,e,r){for(var n in this.type&&this.type==t&&e.push(this),this.boxes){if(e.length&&r)return;m._sweep.call(this.boxes[n],t,e,r)}},m.prototype.getTrackSamplesInfo=function(t){var e=this.getTrackById(t);if(e)return e.samples},m.prototype.getTrackSample=function(t,e){var r=this.getTrackById(t);return this.getSample(r,e)},m.prototype.releaseUsedSamples=function(t,e){var r=0,n=this.getTrackById(t);n.lastValidSample||(n.lastValidSample=0);for(var s=n.lastValidSample;st*s.timescale){c=n-1;break}e&&s.is_sync&&(l=n)}for(e&&(c=l),t=r.samples[c].cts,r.nextSample=c;r.samples[c].alreadyRead===r.samples[c].size&&r.samples[c+1];)c++;return u=r.samples[c].offset+r.samples[c].alreadyRead,o.info("ISOFile","Seeking to "+(e?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+o.getDurationString(t,a)+" and offset: "+u),{offset:u,time:t/a}},m.prototype.getTrackDuration=function(t){var e;return t.samples?((e=t.samples[t.samples.length-1]).cts+e.duration)/e.timescale:1/0},m.prototype.seek=function(t,e){var r,n,s,a=this.moov,u={offset:1/0,time:1/0};if(this.moov){for(s=0;sthis.getTrackDuration(r))&&((n=this.seekTrack(t,e,r)).offset-1){o=l;break}switch(o){case"Visual":if(s.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),a.set("width",e.width).set("height",e.height).set("horizresolution",4718592).set("vertresolution",4718592).set("frame_count",1).set("compressorname",e.type+" Compressor").set("depth",24),e.avcDecoderConfigRecord){var d=new f.avcCBox;d.parse(new u(e.avcDecoderConfigRecord)),a.addBox(d)}else if(e.hevcDecoderConfigRecord){var p=new f.hvcCBox;p.parse(new u(e.hevcDecoderConfigRecord)),a.addBox(p)}break;case"Audio":s.add("smhd").set("balance",e.balance||0),a.set("channel_count",e.channel_count||2).set("samplesize",e.samplesize||16).set("samplerate",e.samplerate||65536);break;case"Hint":s.add("hmhd");break;case"Subtitle":s.add("sthd"),"stpp"===e.type&&a.set("namespace",e.namespace||"nonamespace").set("schema_location",e.schema_location||"").set("auxiliary_mime_types",e.auxiliary_mime_types||"");break;default:s.add("nmhd")}e.description&&a.addBox(e.description),e.description_boxes&&e.description_boxes.forEach(function(t){a.addBox(t)}),s.add("dinf").add("dref").addEntry(new f["url Box"]().set("flags",1));var m=s.add("stbl");return m.add("stsd").addEntry(a),m.add("stts").set("sample_counts",[]).set("sample_deltas",[]),m.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),m.add("stco").set("chunk_offsets",[]),m.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",e.id).set("default_sample_description_index",e.default_sample_description_index||1).set("default_sample_duration",e.default_sample_duration||0).set("default_sample_size",e.default_sample_size||0).set("default_sample_flags",e.default_sample_flags||0),this.buildTrakSampleLists(r),e.id}},f.Box.prototype.computeSize=function(t){var e=t||new l;e.endianness=l.BIG_ENDIAN,this.write(e)},m.prototype.addSample=function(t,e,r){var n=r||{},s={},a=this.getTrackById(t);if(null!==a){s.number=a.samples.length,s.track_id=a.tkhd.track_id,s.timescale=a.mdia.mdhd.timescale,s.description_index=n.sample_description_index?n.sample_description_index-1:0,s.description=a.mdia.minf.stbl.stsd.entries[s.description_index],s.data=e,s.size=e.byteLength,s.alreadyRead=s.size,s.duration=n.duration||1,s.cts=n.cts||0,s.dts=n.dts||0,s.is_sync=n.is_sync||!1,s.is_leading=n.is_leading||0,s.depends_on=n.depends_on||0,s.is_depended_on=n.is_depended_on||0,s.has_redundancy=n.has_redundancy||0,s.degradation_priority=n.degradation_priority||0,s.offset=0,s.subsamples=n.subsamples,a.samples.push(s),a.samples_size+=s.size,a.samples_duration+=s.duration,void 0===a.first_dts&&(a.first_dts=n.dts),this.processSamples();var o=this.createSingleSampleMoof(s);return this.addBox(o),o.computeSize(),o.trafs[0].truns[0].data_offset=o.size+8,this.add("mdat").data=new Uint8Array(e),s}},m.prototype.createSingleSampleMoof=function(t){var e=0;e=t.is_sync?33554432:65536;var r=new f.moofBox;r.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var n=r.add("traf"),s=this.getTrackById(t.track_id);return n.add("tfhd").set("track_id",t.track_id).set("flags",f.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),n.add("tfdt").set("baseMediaDecodeTime",t.dts-(s.first_dts||0)),n.add("trun").set("flags",f.TRUN_FLAGS_DATA_OFFSET|f.TRUN_FLAGS_DURATION|f.TRUN_FLAGS_SIZE|f.TRUN_FLAGS_FLAGS|f.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[t.duration]).set("sample_size",[t.size]).set("sample_flags",[e]).set("sample_composition_time_offset",[t.cts-t.dts]),r},m.prototype.lastMoofIndex=0,m.prototype.samplesDataSize=0,m.prototype.resetTables=function(){var t,e,r,n,s,a;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,t=0;t=2&&(l=s[o].grouping_type+"/0",(u=new c(s[o].grouping_type,0)).is_fragment=!0,e.sample_groups_info[l]||(e.sample_groups_info[l]=u))}else for(o=0;o=2&&(l=n[o].grouping_type+"/0",u=new c(n[o].grouping_type,0),t.sample_groups_info[l]||(t.sample_groups_info[l]=u))},m.setSampleGroupProperties=function(t,e,r,n){var s,a,o;for(s in e.sample_groups=[],n)e.sample_groups[s]={},e.sample_groups[s].grouping_type=n[s].grouping_type,e.sample_groups[s].grouping_type_parameter=n[s].grouping_type_parameter,r>=n[s].last_sample_in_run&&(n[s].last_sample_in_run<0&&(n[s].last_sample_in_run=0),n[s].entry_index++,n[s].entry_index<=n[s].sbgp.entries.length-1&&(n[s].last_sample_in_run+=n[s].sbgp.entries[n[s].entry_index].sample_count)),n[s].entry_index<=n[s].sbgp.entries.length-1?e.sample_groups[s].group_description_index=n[s].sbgp.entries[n[s].entry_index].group_description_index:e.sample_groups[s].group_description_index=-1,0!==e.sample_groups[s].group_description_index&&(o=n[s].fragment_description?n[s].fragment_description:n[s].description,e.sample_groups[s].group_description_index>0?(a=e.sample_groups[s].group_description_index>65535?(e.sample_groups[s].group_description_index>>16)-1:e.sample_groups[s].group_description_index-1,o&&a>=0&&(e.sample_groups[s].description=o.entries[a])):o&&o.version>=2&&o.default_group_description_index>0&&(e.sample_groups[s].description=o.entries[o.default_group_description_index-1]))},m.process_sdtp=function(t,e,r){e&&(t?(e.is_leading=t.is_leading[r],e.depends_on=t.sample_depends_on[r],e.is_depended_on=t.sample_is_depended_on[r],e.has_redundancy=t.sample_has_redundancy[r]):(e.is_leading=0,e.depends_on=0,e.is_depended_on=0,e.has_redundancy=0))},m.prototype.buildSampleLists=function(){var t,e;for(t=0;t"u")){for(e=0;eb&&(w++,b<0&&(b=0),b+=a.sample_counts[w]),e>0?(t.samples[e-1].duration=a.sample_deltas[w],t.samples_duration+=t.samples[e-1].duration,A.dts=t.samples[e-1].dts+t.samples[e-1].duration):A.dts=0,o?(e>=S&&(x++,S<0&&(S=0),S+=o.sample_counts[x]),A.cts=t.samples[e].dts+o.sample_offsets[x]):A.cts=A.dts,u?(e==u.sample_numbers[E]-1?(A.is_sync=!0,E++):(A.is_sync=!1,A.degradation_priority=0),c&&c.entries[U].sample_delta+T==e+1&&(A.subsamples=c.entries[U].subsamples,T+=c.entries[U].sample_delta,U++)):A.is_sync=!0,m.process_sdtp(t.mdia.minf.stbl.sdtp,A,A.number),d?A.degradation_priority=d.priority[e]:A.degradation_priority=0,c&&c.entries[U].sample_delta+T==e&&(A.subsamples=c.entries[U].subsamples,T+=c.entries[U].sample_delta),(h.length>0||f.length>0)&&m.setSampleGroupProperties(t,A,e,t.sample_groups_info)}e>0&&(t.samples[e-1].duration=Math.max(t.mdia.mdhd.duration-t.samples[e-1].dts,0),t.samples_duration+=t.samples[e-1].duration)}},m.prototype.updateSampleLists=function(){var t,e,r,n,s,a,o,u,l,c,h,d,p,_;if(void 0!==this.moov){for(;this.lastMoofIndex0&&m.initSampleGroups(h,c,c.sbgps,h.mdia.minf.stbl.sgpds,c.sgpds),e=0;e0?p.dts=h.samples[h.samples.length-2].dts+h.samples[h.samples.length-2].duration:(c.tfdt?p.dts=c.tfdt.baseMediaDecodeTime:p.dts=0,h.first_traf_merged=!0),p.cts=p.dts,y.flags&f.TRUN_FLAGS_CTS_OFFSET&&(p.cts=p.dts+y.sample_composition_time_offset[r]),_=o,y.flags&f.TRUN_FLAGS_FLAGS?_=y.sample_flags[r]:0===r&&y.flags&f.TRUN_FLAGS_FIRST_FLAG&&(_=y.first_sample_flags),p.is_sync=!(_>>16&1),p.is_leading=_>>26&3,p.depends_on=_>>24&3,p.is_depended_on=_>>22&3,p.has_redundancy=_>>20&3,p.degradation_priority=65535&_;var g=!!(c.tfhd.flags&f.TFHD_FLAG_BASE_DATA_OFFSET),v=!!(c.tfhd.flags&f.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),b=!!(y.flags&f.TRUN_FLAGS_DATA_OFFSET),w=0;w=g?c.tfhd.base_data_offset:v||0===e?l.start:u,0===e&&0===r?b?p.offset=w+y.data_offset:p.offset=w:p.offset=u,u=p.offset+p.size,(c.sbgps.length>0||c.sgpds.length>0||h.mdia.minf.stbl.sbgps.length>0||h.mdia.minf.stbl.sgpds.length>0)&&m.setSampleGroupProperties(h,p,p.number_in_traf,c.sample_groups_info)}}if(c.subs){h.has_fragment_subsamples=!0;var S=c.first_sample_index;for(e=0;e-1))return null;var a=(r=this.stream.buffers[s]).byteLength-(n.offset+n.alreadyRead-r.fileStart);if(n.size-n.alreadyRead<=a)return o.debug("ISOFile","Getting sample #"+e+" data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-r.fileStart)+" read size: "+(n.size-n.alreadyRead)+" full size: "+n.size+")"),l.memcpy(n.data.buffer,n.alreadyRead,r,n.offset+n.alreadyRead-r.fileStart,n.size-n.alreadyRead),r.usedBytes+=n.size-n.alreadyRead,this.stream.logBufferLevel(),n.alreadyRead=n.size,n;if(0===a)return null;o.debug("ISOFile","Getting sample #"+e+" partial data (alreadyRead: "+n.alreadyRead+" offset: "+(n.offset+n.alreadyRead-r.fileStart)+" read size: "+a+" full size: "+n.size+")"),l.memcpy(n.data.buffer,n.alreadyRead,r,n.offset+n.alreadyRead-r.fileStart,a),n.alreadyRead+=a,r.usedBytes+=a,this.stream.logBufferLevel()}},m.prototype.releaseSample=function(t,e){var r=t.samples[e];return r.data?(this.samplesDataSize-=r.size,r.data=null,r.alreadyRead=0,r.size):0},m.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},m.prototype.getCodecs=function(){var t,e="";for(t=0;t0&&(e+=","),e+=r.mdia.minf.stbl.stsd.entries[0].getCodec()}return e},m.prototype.getTrexById=function(t){var e;if(!this.moov||!this.moov.mvex)return null;for(e=0;e0&&(r.protection=s.ipro.protections[s.iinf.item_infos[t].protection_index-1]),s.iinf.item_infos[t].item_type?r.type=s.iinf.item_infos[t].item_type:r.type="mime",r.content_type=s.iinf.item_infos[t].content_type,r.content_encoding=s.iinf.item_infos[t].content_encoding;if(s.iloc)for(t=0;t0&&f.property_index-1-1))return null;var u=(e=this.stream.buffers[a]).byteLength-(s.offset+s.alreadyRead-e.fileStart);if(!(s.length-s.alreadyRead<=u))return o.debug("ISOFile","Getting item #"+t+" extent #"+n+" partial data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-e.fileStart)+" read size: "+u+" full extent size: "+s.length+" full item size: "+r.size+")"),l.memcpy(r.data.buffer,r.alreadyRead,e,s.offset+s.alreadyRead-e.fileStart,u),s.alreadyRead+=u,r.alreadyRead+=u,e.usedBytes+=u,this.stream.logBufferLevel(),null;o.debug("ISOFile","Getting item #"+t+" extent #"+n+" data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-e.fileStart)+" read size: "+(s.length-s.alreadyRead)+" full extent size: "+s.length+" full item size: "+r.size+")"),l.memcpy(r.data.buffer,r.alreadyRead,e,s.offset+s.alreadyRead-e.fileStart,s.length-s.alreadyRead),e.usedBytes+=s.length-s.alreadyRead,this.stream.logBufferLevel(),r.alreadyRead+=s.length-s.alreadyRead,s.alreadyRead=s.length}}return r.alreadyRead===r.size?r:null},m.prototype.releaseItem=function(t){var e=this.items[t];if(!e.data)return 0;this.itemsDataSize-=e.size,e.data=null,e.alreadyRead=0;for(var r=0;r0?this.moov.traks[t].samples[0].duration:0),e.push(n)}return e},f.Box.prototype.printHeader=function(t){this.size+=8,this.size>4294967296&&(this.size+=8),"uuid"===this.type&&(this.size+=16),t.log(t.indent+"size:"+this.size),t.log(t.indent+"type:"+this.type)},f.FullBox.prototype.printHeader=function(t){this.size+=4,f.Box.prototype.printHeader.call(this,t),t.log(t.indent+"version:"+this.version),t.log(t.indent+"flags:"+this.flags)},f.Box.prototype.print=function(t){this.printHeader(t)},f.ContainerBox.prototype.print=function(t){this.printHeader(t);for(var e=0;e>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"next_track_id: "+this.next_track_id)},f.tkhdBox.prototype.print=function(t){f.FullBox.prototype.printHeader.call(this,t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"track_id: "+this.track_id),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"layer: "+this.layer),t.log(t.indent+"alternate_group: "+this.alternate_group),t.log(t.indent+"width: "+this.width),t.log(t.indent+"height: "+this.height)},(_={}).createFile=function(t,e){var r=new m(e);return r.discardMdatData=!(void 0===t||t),r},rQ.createFile=_.createFile;var rJ=/* @__PURE__ */rq(rQ),r$={sampleRate:48e3,channelCount:2,codec:"mp4a.40.2"};function r0(t,e){var r=e.videoTracks[0],n={};if(null!=r){var s=function(t){var e=!0,r=!1,n=void 0;try{for(var s,a=t.mdia.minf.stbl.stsd.entries[Symbol.iterator]();!(e=(s=a.next()).done);e=!0){var o,u,l=s.value,c=null!==(u=null!==(o=l.avcC)&&void 0!==o?o:l.hvcC)&&void 0!==u?u:l.vpcC;if(null!=c){var h=new rJ.DataStream(void 0,0,rJ.DataStream.BIG_ENDIAN);return c.write(h),new Uint8Array(h.buffer.slice(8))}}}catch(t){r=!0,n=t}finally{try{e||null==a.return||a.return()}finally{if(r)throw n}}throw Error("avcC, hvcC or VPX not found")}(t.getTrackById(r.id)).buffer,a=r.codec.startsWith("avc1")?{descKey:"avcDecoderConfigRecord",type:"avc1"}:r.codec.startsWith("hvc1")?{descKey:"hevcDecoderConfigRecord",type:"hvc1"}:{descKey:"",type:""},o=a.descKey,u=a.type;""!==o&&(n.videoTrackConf=(0,eb._)({timescale:r.timescale,duration:r.duration,width:r.video.width,height:r.video.height,brands:e.brands,type:u},o,s)),n.videoDecoderConf={codec:r.codec,codedHeight:r.video.height,codedWidth:r.video.width,description:s}}var l=e.audioTracks[0];if(null!=l){var c=r1(t);n.audioTrackConf={timescale:l.timescale,samplerate:l.audio.sample_rate,channel_count:l.audio.channel_count,hdlr:"soun",type:l.codec.startsWith("mp4a")?"mp4a":l.codec,description:r1(t)},n.audioDecoderConf=(0,eE._)({codec:l.codec.startsWith("mp4a")?r$.codec:l.codec,numberOfChannels:l.audio.channel_count,sampleRate:l.audio.sample_rate},null==c?{}:function(t){var e,r=null==(e=t.esd.descs[0])?void 0:e.descs[0];if(null==r)return{};var n=(0,eA._)(r.data,2),s=n[0],a=n[1];return{sampleRate:[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][((7&s)<<1)+(a>>7)],numberOfChannels:(127&a)>>3}}(c))}return n}function r1(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"mp4a",n=null==(e=t.moov)?void 0:e.traks.map(function(t){return t.mdia.minf.stbl.stsd.entries}).flat().find(function(t){return t.type===r});return null==n?void 0:n.esds}var r2=function t(){(0,eg._)(this,t),eL(this,"readable"),eL(this,"writable"),eN(this,C,0);var e,r=rJ.createFile(),n=!1,s=this;this.readable=new ReadableStream({start:function(t){r.onReady=function(e){var n,s,a=null==(n=e.videoTracks[0])?void 0:n.id;null!=a&&r.setExtractionOptions(a,"video",{nbSamples:100});var o=null==(s=e.audioTracks[0])?void 0:s.id;null!=o&&r.setExtractionOptions(o,"audio",{nbSamples:100}),t.enqueue({chunkType:"ready",data:{info:e,file:r}}),r.start()};var e={};r.onSamples=function(n,s,a){var o;t.enqueue({chunkType:"samples",data:{id:n,type:s,samples:a.map(function(t){return(0,eE._)({},t)})}}),e[n]=(null!==(o=e[n])&&void 0!==o?o:0)+a.length,r.releaseUsedSamples(n,e[n])},r.onFlush=function(){t.close()}},cancel:function(){r.stop(),n=!0}},{highWaterMark:50}),this.writable=new WritableStream({write:(e=(0,ey._)(function(t){var e;return(0,eB._)(this,function(a){return n?s.writable.abort():((e=t.buffer).fileStart=eM(s,C),ej(s,C,eM(s,C)+e.byteLength),r.appendBuffer(e)),[2]})}),function(t){return e.apply(this,arguments)}),close:function(){var t;r.flush(),r.stop(),null==(t=r.onFlush)||t.call(r)}})};C=new WeakMap;var r3=0;function r4(t){return"file"===t.kind&&t.createReader instanceof Function}var r6=/*#__PURE__*/function(){function t(e){var r,n,s,a=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{audio:!0};if((0,eg._)(this,t),eN(this,B,rw.create("MP4Clip id:".concat(r3++,","))),eL(this,"ready"),eN(this,P,!1),eN(this,R,{duration:0,width:0,height:0,audioSampleRate:0,audioChanCount:0}),eN(this,F),eN(this,D,1),eN(this,z,[]),eN(this,L,[]),eN(this,O,null),eN(this,M,null),eN(this,N,{video:null,audio:null}),eN(this,j,{audio:!0}),eL(this,"tickInterceptor",(r=(0,ey._)(function(t,e){return(0,eB._)(this,function(t){return[2,e]})}),function(t,e){return r.apply(this,arguments)})),eN(this,G,new AbortController),!(e instanceof ReadableStream)&&!r4(e)&&!Array.isArray(e.videoSamples))throw Error("Illegal argument");ej(this,j,(0,eE._)({},o)),ej(this,D,"object"==typeof o.audio&&"volume"in o.audio?o.audio.volume:1);var u=this,l=(n=(0,ey._)(function(t){return(0,eB._)(this,function(e){switch(e.label){case 0:return[4,rn(eM(u,F),t)];case 1:return e.sent(),[4,eM(u,F).stream()];case 2:return[2,e.sent()]}})}),function(t){return n.apply(this,arguments)}),c=this;ej(this,F,r4(e)?e:"localFile"in e?e.localFile:rm()),this.ready=(e instanceof ReadableStream?l(e).then(function(t){return r9(t,eM(a,j))}):r4(e)?e.stream().then(function(t){return r9(t,eM(a,j))}):Promise.resolve(e)).then((s=(0,ey._)(function(t){var e,r,n,s,a,o,u;return(0,eB._)(this,function(l){switch(l.label){case 0:return e=t.videoSamples,r=t.audioSamples,n=t.decoderConf,ej(c,z,e),ej(c,L,r),ej(c,N,n),u=[{video:null==n.video?null:(0,eU._)((0,eE._)({},n.video),{hardwareAcceleration:eM(c,j).__unsafe_hardwareAcceleration__}),audio:n.audio}],[4,eM(c,F).createReader()];case 1:return a=(s=r5.apply(void 0,u.concat([l.sent(),e,r,!1!==eM(c,j).audio?eM(c,D):null]))).videoFrameFinder,o=s.audioFrameFinder,[2,(ej(c,O,a),ej(c,M,o),ej(c,R,function(t,e,r){var n,s,a={duration:0,width:0,height:0,audioSampleRate:0,audioChanCount:0};null!=t.video&&e.length>0&&(a.width=null!==(n=t.video.codedWidth)&&void 0!==n?n:0,a.height=null!==(s=t.video.codedHeight)&&void 0!==s?s:0),null!=t.audio&&r.length>0&&(a.audioSampleRate=r$.sampleRate,a.audioChanCount=r$.channelCount);var o=0,u=0;if(e.length>0)for(var l=e.length-1;l>=0;l--){var c=e[l];if(!c.deleted){o=c.cts+c.duration;break}}if(r.length>0){var h=r.at(-1);u=h.cts+h.duration}return a.duration=Math.max(o,u),a}(n,e,r)),eM(c,B).info("MP4Clip meta:",eM(c,R)),(0,eE._)({},eM(c,R)))]}})}),function(t){return s.apply(this,arguments)}))}return(0,ev._)(t,[{key:"meta",get:function(){return(0,eE._)({},eM(this,R))}},{key:"tick",value:function(t){var e=this;return(0,ey._)(function(){var r,n,s,a,o,u,l;return(0,eB._)(this,function(c){switch(c.label){case 0:if(!(t>=eM(e,R).duration))return[3,2];return[4,e.tickInterceptor(t,{audio:[],state:"done"})];case 1:return[2,c.sent()];case 2:return[4,Promise.all([null!==(s=null==(r=eM(e,M))?void 0:r.find(t))&&void 0!==s?s:[],null==(n=eM(e,O))?void 0:n.find(t)])];case 3:if(o=(a=(0,eA._).apply(void 0,[c.sent(),2]))[0],null!=(u=a[1]))return[3,5];return[4,e.tickInterceptor(t,{audio:o,state:"success"})];case 4:return l=c.sent(),[3,7];case 5:return[4,e.tickInterceptor(t,{video:u,audio:o,state:"success"})];case 6:l=c.sent(),c.label=7;case 7:return[2,l]}})})()}},{key:"thumbnails",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,e=arguments.length>1?arguments[1]:void 0,r=this;return(0,ey._)(function(){var n,s,a,o;return(0,eB._)(this,function(u){switch(u.label){case 0:return eM(r,G).abort(),ej(r,G,new AbortController),n=eM(r,G).signal,[4,r.ready];case 1:var l,c,h,f,d,p;if(u.sent(),s="generate thumbnails aborted",n.aborted)throw Error(s);return c=Math.round(t/(a=eM(r,R)).width*a.height),h={quality:.1,type:"image/png"},p=(d=new OffscreenCanvas(t,c)).getContext("2d"),f=(0,ey._)(function(e){return(0,eB._)(this,function(r){switch(r.label){case 0:return p.drawImage(e,0,0,t,c),e.close(),[4,d.convertToBlob(h)];case 1:return[2,r.sent()]}})}),o=function(t){return f.apply(this,arguments)},[2,new Promise((l=(0,ey._)(function(t,a){var u,l,c,h,f,d,p,m,_,y,g,v;function b(){return w.apply(this,arguments)}function w(){return(w=(0,ey._)(function(){return(0,eB._)(this,function(e){switch(e.label){case 0:var r;if(n.aborted)return[3,2];return[4,Promise.all(u.map((r=(0,ey._)(function(t){var e;return(0,eB._)(this,function(r){switch(r.label){case 0:return e={ts:t.ts},[4,t.img];case 1:return[2,(e.img=r.sent(),e)]}})}),function(t){return r.apply(this,arguments)})))];case 1:t.apply(void 0,[e.sent()]),e.label=2;case 2:return[2]}})})).apply(this,arguments)}function S(t){u.push({ts:t.timestamp,img:o(t)})}return(0,eB._)(this,function(t){switch(t.label){case 0:if(u=[],null==(l=eM(r,N).video)||0===eM(r,z).length)return b(),[2];if(n.addEventListener("abort",function(){a(Error(s))}),f=void 0===(h=(c=null!=e?e:{}).start)?0:h,p=void 0===(d=c.end)?eM(r,R).duration:d,!(m=c.step))return[3,6];return _=f,g=it.bind,[4,eM(r,F).createReader()];case 1:y=new(g.apply(it,[void 0,t.sent(),eM(r,z),(0,eU._)((0,eE._)({},l),{hardwareAcceleration:eM(r,j).__unsafe_hardwareAcceleration__})])),t.label=2;case 2:if(!(_<=p&&!n.aborted))return[3,5];return[4,y.find(_)];case 3:(v=t.sent())&&S(v),_+=m,t.label=4;case 4:return[3,2];case 5:return y.destroy(),b(),[3,8];case 6:return[4,function(t,e,r,n,s,a){return io.apply(this,arguments)}(eM(r,z),eM(r,F),l,n,{start:f,end:p},function(t,e){S(t),e&&b()})];case 7:t.sent(),t.label=8;case 8:return[2]}})}),function(t,e){return l.apply(this,arguments)}))]}})})()}},{key:"split",value:function(e){var r=this;return(0,ey._)(function(){var n,s,a,o,u,l,c,h;return(0,eB._)(this,function(f){switch(f.label){case 0:return[4,r.ready];case 1:if(f.sent(),e<=0||e>=eM(r,R).duration)throw Error('"time" out of bounds');return s=(n=(0,eA._)(function(t,e){if(0===t.length)return[];for(var r=0,n=0,s=-1,a=0;a=0)break;g.deleted=!0,g.cts=-1}}catch(t){p=!0,m=t}finally{try{d||null==y.return||y.return()}finally{if(p)throw m}}return[l,f]}(eM(r,z),e),2))[0],a=n[1],u=(o=(0,eA._)(function(t,e){if(0===t.length)return[];for(var r=-1,n=0;nt[n].cts)){r=n;break}if(-1===r)throw Error("Not found audio sample by time");return[t.slice(0,r),t.slice(r).map(function(t){return(0,eU._)((0,eE._)({},t),{cts:t.cts-e})})]}(eM(r,L),e),2))[0],l=o[1],c=new t({localFile:eM(r,F),videoSamples:null!=s?s:[],audioSamples:null!=u?u:[],decoderConf:eM(r,N)},eM(r,j)),h=new t({localFile:eM(r,F),videoSamples:null!=a?a:[],audioSamples:null!=l?l:[],decoderConf:eM(r,N)},eM(r,j)),[4,Promise.all([c.ready,h.ready])];case 2:return[2,(f.sent(),[c,h])]}})})()}},{key:"clone",value:function(){var e=this;return(0,ey._)(function(){var r;return(0,eB._)(this,function(n){switch(n.label){case 0:return[4,e.ready];case 1:return n.sent(),[4,(r=new t({localFile:eM(e,F),videoSamples:(0,eI._)(eM(e,z)),audioSamples:(0,eI._)(eM(e,L)),decoderConf:eM(e,N)},eM(e,j))).ready];case 2:return[2,(n.sent(),r.tickInterceptor=e.tickInterceptor,r)]}})})()}},{key:"splitTrack",value:function(){var e=this;return(0,ey._)(function(){var r,n,s;return(0,eB._)(this,function(a){switch(a.label){case 0:return[4,e.ready];case 1:if(a.sent(),r=[],!(eM(e,z).length>0))return[3,3];return[4,(n=new t({localFile:eM(e,F),videoSamples:(0,eI._)(eM(e,z)),audioSamples:[],decoderConf:{video:eM(e,N).video,audio:null}},eM(e,j))).ready];case 2:a.sent(),n.tickInterceptor=e.tickInterceptor,r.push(n),a.label=3;case 3:if(!(eM(e,L).length>0))return[3,5];return[4,(s=new t({localFile:eM(e,F),videoSamples:[],audioSamples:(0,eI._)(eM(e,L)),decoderConf:{audio:eM(e,N).audio,video:null}},eM(e,j))).ready];case 4:a.sent(),s.tickInterceptor=e.tickInterceptor,r.push(s),a.label=5;case 5:return[2,r]}})})()}},{key:"destroy",value:function(){var t,e;eM(this,P)||(eM(this,B).info("MP4Clip destroy"),ej(this,P,!0),null==(t=eM(this,O))||t.destroy(),null==(e=eM(this,M))||e.destroy())}}]),t}();B=new WeakMap,P=new WeakMap,R=new WeakMap,F=new WeakMap,D=new WeakMap,z=new WeakMap,L=new WeakMap,O=new WeakMap,M=new WeakMap,N=new WeakMap,j=new WeakMap,G=new WeakMap;var r8=r6;function r5(t,e,r,n,s){return{audioFrameFinder:null==s||null==t.audio||0===n.length?null:new ie(e,n,t.audio,{volume:s,targetSampleRate:r$.sampleRate}),videoFrameFinder:null==t.video||0===r.length?null:new it(e,r,t.video)}}function r9(t){return r7.apply(this,arguments)}function r7(){return(r7=(0,ey._)(function(t){var e,r,n,s,a,o=arguments;function u(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0;return(0,eU._)((0,eE._)({},t),{is_idr:"video"===r&&t.is_sync&&function(t){for(var e=new DataView(t.buffer),r=0;r1&&void 0!==o[1]?o[1]:{},n={video:null,audio:null},s=[],a=[],[2,new Promise((c=(0,ey._)(function(o,l){var c,h,f;return(0,eB._)(this,function(d){var p;return c=-1,h=-1,f=rZ(t.pipeThrough(new r2),{onChunk:(p=(0,ey._)(function(t){var o,d,p,m,_,y,g,v,b,w,S,x,E,U,T,A,I;return(0,eB._)(this,function(k){if(o=t.chunkType,d=t.data,"ready"===o)r=d.info,m=(p=r0(d.file,d.info)).videoDecoderConf,_=p.audioDecoderConf,n.video=null!=m?m:null,n.audio=null!=_?_:null,null==m&&null==_&&(f(),l(Error("MP4Clip must contain at least one video or audio track"))),rw.info("mp4BoxFile moov ready",(0,eU._)((0,eE._)({},d.info),{tracks:null,videoTracks:null,audioTracks:null}),n);else if("samples"===o){if("video"===d.type){-1===c&&(c=d.samples[0].dts),y=!0,g=!1,v=void 0;try{for(b=d.samples[Symbol.iterator]();!(y=(w=b.next()).done);y=!0)S=w.value,s.push(u(S,c,"video"))}catch(t){g=!0,v=t}finally{try{y||null==b.return||b.return()}finally{if(g)throw v}}}else if("audio"===d.type&&e.audio){-1===h&&(h=d.samples[0].dts),x=!0,E=!1,U=void 0;try{for(T=d.samples[Symbol.iterator]();!(x=(A=T.next()).done);x=!0)I=A.value,a.push(u(I,h,"audio"))}catch(t){E=!0,U=t}finally{try{x||null==T.return||T.return()}finally{if(E)throw U}}}}return[2]})}),function(t){return p.apply(this,arguments)}),onDone:function(){var t,e=null!==(t=s.at(-1))&&void 0!==t?t:a.at(-1);if(null==r){l(Error("MP4Clip stream is done, but not emit ready"));return}if(null==e){l(Error("MP4Clip stream not contain any sample"));return}var u=s[0];null!=u&&u.cts<2e5&&(u.duration+=u.cts,u.cts=0),rw.info("mp4 stream parsed"),o({videoSamples:s,audioSamples:a,decoderConf:n})}}),[2]})}),function(t,e){return c.apply(this,arguments)}))]})})).apply(this,arguments)}var it=function t(e,r,n){var s,a,o,u=this;(0,eg._)(this,t),eN(this,Y,null),eN(this,W,0),eN(this,V,{abort:!1,st:performance.now()});var l=this;eL(this,"find",(s=(0,ey._)(function(t){return(0,eB._)(this,function(e){switch(e.label){case 0:return(null==eM(l,Y)||t<=eM(l,W)||t-eM(l,W)>3e6)&&eM(l,te).call(l,t),eM(l,V).abort=!0,ej(l,W,t),ej(l,V,{abort:!1,st:performance.now()}),[4,eM(l,J).call(l,t,eM(l,Y),eM(l,V))];case 1:return[2,e.sent()]}})}),function(t){return s.apply(this,arguments)})),eN(this,H,0),eN(this,X,!1),eN(this,Z,0),eN(this,K,[]),eN(this,q,0),eN(this,Q,0);var c=this;eN(this,J,(a=(0,ey._)(function(t,e,r){var n,s,a,o,u;return(0,eB._)(this,function(l){switch(l.label){case 0:if(null==e||"closed"===e.state||r.abort)return[2,null];if(!(eM(c,K).length>0))return[3,6];if(!(t<(n=eM(c,K)[0]).timestamp))return[3,1];return a=null,[3,5];case 1:if(eM(c,K).shift(),!(t>n.timestamp+(null!==(s=n.duration)&&void 0!==s?s:0)))return[3,3];return n.close(),[4,eM(c,J).call(c,t,e,r)];case 2:return o=l.sent(),[3,4];case 3:eM(c,K).length<10&&eM(c,tt).call(c,e).catch(function(e){throw eM(c,te).call(c,t),e}),o=n,l.label=4;case 4:a=o,l.label=5;case 5:return[2,a];case 6:if(!(eM(c,$)||eM(c,q)0))return[3,8];if(performance.now()-r.st>3e3)throw Error("MP4Clip.tick video timeout, ".concat(JSON.stringify(eM(c,tr).call(c))));return[4,rH(15)];case 7:return l.sent(),[3,12];case 8:if(eM(c,Z)>=c.samples.length)return[2,null];l.label=9;case 9:return l.trys.push([9,11,,12]),[4,eM(c,tt).call(c,e)];case 10:return l.sent(),[3,12];case 11:throw u=l.sent(),eM(c,te).call(c,t),u;case 12:return[4,eM(c,J).call(c,t,e,r)];case 13:return[2,l.sent()]}})}),function(t,e,r){return a.apply(this,arguments)})),eN(this,$,!1);var h=this;eN(this,tt,(o=(0,ey._)(function(t){var e,r,n,s,a,o,u,l;return(0,eB._)(this,function(c){switch(c.label){case 0:if(eM(h,$))return[2];for(ej(h,$,!0),n=eM(h,Z)+1,s=!1;n1e5){for(eM(l,tf).call(l),ej(l,to,t),e=0;e1&&void 0!==a[1]?a[1]:null,r=a.length>2?a[2]:void 0,null==e||r.abort||"closed"===e.state||0===(n=Math.ceil(t*(eM(c,tn)/1e6))))return[2,[]];if((s=eM(c,tl).frameCnt-n)>0)return[2,(se){var l=e-n;r[0].set(o.subarray(0,l),n),r[1].set(u.subarray(0,l),n),t.data[s][0]=o.subarray(l,o.length),t.data[s][1]=u.subarray(l,u.length);break}r[0].set(o,n),r[1].set(u,n),n+=o.length,s++}return t.data=t.data.slice(s),t.frameCnt-=e,r}(eM(c,tl),n))];if(!(e.decodeQueueSize>10))return[3,2];if(performance.now()-r.st>3e3)throw r.abort=!0,Error("MP4Clip.tick audio timeout, ".concat(JSON.stringify(eM(c,td).call(c))));return[4,rH(15)];case 1:return o.sent(),[3,3];case 2:if(eM(c,tu)>=c.samples.length-1)return[2,[]];eM(c,th).call(c,e),o.label=3;case 3:return[2,eM(c,tc).call(c,t,e,r)]}})}),function(t){return o.apply(this,arguments)})),eN(this,th,function(t){if(!(t.decodeQueueSize>100)){for(var e=[],r=eM(u,tu);r=10))break}ej(u,tu,r),t.decode(e.map(function(t){return new EncodedAudioChunk({type:"key",timestamp:t.cts,duration:t.duration,data:t.data})}))}}),eN(this,tf,function(){var t,e,r,n,s,a,o,l;ej(u,to,0),ej(u,tu,0),ej(u,tl,{frameCnt:0,data:[]}),null==(t=eM(u,ts))||t.close(),ej(u,ts,(e=u.conf,r={resampleRate:r$.sampleRate,volume:eM(u,ti)},n=function(t){eM(u,tl).data.push(t),eM(u,tl).frameCnt+=t[0].length},a=function(t){var e=[],r=0;function n(){var s=e[r];null!=s&&(t(s),r+=1,n())}var s=0;return function(t){var r=s;s+=1,t().then(function(t){e[r]=t,n()}).catch(function(t){e[r]=t,n()})}}(s=function(t){if(0!==t.length){var e=!0,s=!1,a=void 0;if(1!==r.volume)try{for(var o,u=t[Symbol.iterator]();!(e=(o=u.next()).done);e=!0)for(var l=o.value,c=0;c=s.start&&t.cts<=s.end}),o)];case 2:return 0===(c=h.sent()).length||n.aborted||(l.configure(r),is(l,c,{})),[2]}})})).apply(this,arguments)}ti=new WeakMap,tn=new WeakMap,ts=new WeakMap,ta=new WeakMap,to=new WeakMap,tu=new WeakMap,tl=new WeakMap,tc=new WeakMap,th=new WeakMap,tf=new WeakMap,td=new WeakMap;var iu=/*#__PURE__*/function(){function t(e){var r=this;(0,eg._)(this,t),eN(this,ty),eL(this,"ready"),eN(this,tp,{duration:0,width:0,height:0}),eN(this,tm,null),eN(this,t_,[]);var n=function(t){return ej(r,tm,t),eM(r,tp).width=t.width,eM(r,tp).height=t.height,eM(r,tp).duration=1/0,(0,eE._)({},eM(r,tp))};if(e instanceof ReadableStream)this.ready=new Response(e).blob().then(function(t){return createImageBitmap(t)}).then(n);else if(e instanceof ImageBitmap)this.ready=Promise.resolve(n(e));else if(Array.isArray(e)&&e.every(function(t){return t instanceof VideoFrame})){ej(this,t_,e);var s=eM(this,t_)[0];if(null==s)throw Error("The frame count must be greater than 0");ej(this,tp,{width:s.displayWidth,height:s.displayHeight,duration:eM(this,t_).reduce(function(t,e){var r;return t+(null!==(r=e.duration)&&void 0!==r?r:0)},0)}),this.ready=Promise.resolve((0,eU._)((0,eE._)({},eM(this,tp)),{duration:1/0}))}else if("type"in e)this.ready=eG(this,ty,tg).call(this,e.stream,e.type).then(function(){return{width:eM(r,tp).width,height:eM(r,tp).height,duration:1/0}});else throw Error("Illegal arguments")}return(0,ev._)(t,[{key:"meta",get:function(){return(0,eE._)({},eM(this,tp))}},{key:"tick",value:function(t){var e=this;return(0,ey._)(function(){var r,n,s;return(0,eB._)(this,function(a){switch(a.label){case 0:if(!(null!=eM(e,tm)))return[3,2];return r={},[4,createImageBitmap(eM(e,tm))];case 1:return[2,(r.video=a.sent(),r.state="success",r)];case 2:return n=t%eM(e,tp).duration,[2,{video:(null!==(s=eM(e,t_).find(function(t){var e;return n>=t.timestamp&&n<=t.timestamp+(null!==(e=t.duration)&&void 0!==e?e:0)}))&&void 0!==s?s:eM(e,t_)[0]).clone(),state:"success"}]}})})()}},{key:"split",value:function(e){var r=this;return(0,ey._)(function(){var n,s,a,o,u,l,c;return(0,eB._)(this,function(h){switch(h.label){case 0:return[4,r.ready];case 1:if(h.sent(),null==eM(r,tm))return[3,4];return n=t.bind,[4,createImageBitmap(eM(r,tm))];case 2:return s=[new(n.apply(t,[void 0,h.sent()]))],a=t.bind,[4,createImageBitmap(eM(r,tm))];case 3:return[2,s.concat([new(a.apply(t,[void 0,h.sent()]))])];case 4:for(u=0,o=-1;ueM(r,t_)[u].timestamp)){o=u;break}if(-1===o)throw Error("Not found frame by time");return l=eM(r,t_).slice(0,o).map(function(t){return new VideoFrame(t)}),c=eM(r,t_).slice(o).map(function(t){return new VideoFrame(t,{timestamp:t.timestamp-e})}),[2,[new t(l),new t(c)]]}})})()}},{key:"clone",value:function(){var e=this;return(0,ey._)(function(){var r;return(0,eB._)(this,function(n){switch(n.label){case 0:return[4,e.ready];case 1:if(n.sent(),null!=eM(e,tm))return[3,2];return r=eM(e,t_).map(function(t){return t.clone()}),[3,4];case 2:return[4,createImageBitmap(eM(e,tm))];case 3:r=n.sent(),n.label=4;case 4:return[2,new t(r)]}})})()}},{key:"destroy",value:function(){var t;rw.info("ImgClip destroy"),null==(t=eM(this,tm))||t.close(),eM(this,t_).forEach(function(t){return t.close()})}}]),t}();tp=new WeakMap,tm=new WeakMap,t_=new WeakMap,ty=new WeakSet,y=(0,ey._)(function(t,e){var r,n;return(0,eB._)(this,function(s){switch(s.label){case 0:return r=[this,t_],[4,rj(t,e)];case 1:if(ej.apply(void 0,r.concat([s.sent()])),null==(n=eM(this,t_)[0]))throw Error("No frame available in gif");return ej(this,tp,{duration:eM(this,t_).reduce(function(t,e){var r;return t+(null!==(r=e.duration)&&void 0!==r?r:0)},0),width:n.codedWidth,height:n.codedHeight}),rw.info("ImgClip ready:",eM(this,tp)),[2]}})}),tg=function(t,e){return y.apply(this,arguments)};var il=iu,ic=/*#__PURE__*/function(){function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,eg._)(this,t),eN(this,tx),eL(this,"ready"),eN(this,tv,{duration:0,width:0,height:0}),eN(this,tb,new Float32Array),eN(this,tw,new Float32Array),eN(this,tS),eN(this,tU,0),eN(this,tT,0),ej(this,tS,(0,eE._)({loop:!1,volume:1},n)),this.ready=eG(this,tx,tE).call(this,e).then(function(){return{width:0,height:0,duration:n.loop?1/0:eM(r,tv).duration}})}return(0,ev._)(t,[{key:"meta",get:function(){return(0,eU._)((0,eE._)({},eM(this,tv)),{sampleRate:r$.sampleRate,chanCount:2})}},{key:"getPCMData",value:function(){return[eM(this,tb),eM(this,tw)]}},{key:"tick",value:function(t){var e=this;return(0,ey._)(function(){var r,n,s,a;return(0,eB._)(this,function(o){return!eM(e,tS).loop&&t>=eM(e,tv).duration?[2,{audio:[],state:"done"}]:(r=t-eM(e,tU),t3e6)?[2,(ej(e,tU,t),ej(e,tT,Math.ceil(eM(e,tU)/1e6*r$.sampleRate)),{audio:[new Float32Array(0),new Float32Array(0)],state:"success"})]:(ej(e,tU,t),n=Math.ceil(r/1e6*r$.sampleRate),s=eM(e,tT)+n,a=eM(e,tS).loop?[rX(eM(e,tb),eM(e,tT),s),rX(eM(e,tw),eM(e,tT),s)]:[eM(e,tb).slice(eM(e,tT),s),eM(e,tw).slice(eM(e,tT),s)],[2,(ej(e,tT,s),{audio:a,state:"success"})])})})()}},{key:"split",value:function(e){var r=this;return(0,ey._)(function(){var n;return(0,eB._)(this,function(s){switch(s.label){case 0:return[4,r.ready];case 1:return s.sent(),n=Math.ceil(e/1e6*r$.sampleRate),[2,[new t(r.getPCMData().map(function(t){return t.slice(0,n)}),eM(r,tS)),new t(r.getPCMData().map(function(t){return t.slice(n)}),eM(r,tS))]]}})})()}},{key:"clone",value:function(){var e=this;return(0,ey._)(function(){var r;return(0,eB._)(this,function(n){switch(n.label){case 0:return[4,e.ready];case 1:return n.sent(),[4,(r=new t(e.getPCMData(),eM(e,tS))).ready];case 2:return[2,(n.sent(),r)]}})})()}},{key:"destroy",value:function(){ej(this,tb,new Float32Array(0)),ej(this,tw,new Float32Array(0)),rw.info("---- audioclip destroy ----")}}]),t}();tv=new WeakMap,tb=new WeakMap,tw=new WeakMap,tS=new WeakMap,tx=new WeakSet,g=(0,ey._)(function(t){var e,r,n,s,a,o,u,l,c,h,f,d;return(0,eB._)(this,function(p){switch(p.label){case 0:if(null==ic.ctx&&(ic.ctx=new AudioContext({sampleRate:r$.sampleRate})),e=performance.now(),!(t instanceof ReadableStream))return[3,2];return[4,function(t,e){return im.apply(this,arguments)}(t,ic.ctx)];case 1:return n=p.sent(),[3,3];case 2:n=t,p.label=3;case 3:if(r=n,rw.info("Audio clip decoded complete:",performance.now()-e),s=eM(this,tS).volume,a=!0,o=!1,u=void 0,1!==s)try{for(l=r[Symbol.iterator]();!(a=(c=l.next()).done);a=!0)for(f=0,h=c.value;f0}).map(function(t){return{lineStr:t,match:t.match(/(\d{2}:\d{2}:\d{2},\d{3}) --> (\d{2}:\d{2}:\d{2},\d{3})/)}}).filter(function(t,e,r){var n,s=t.lineStr;return!(/^\d+$/.test(s)&&(null==(n=r[e+1])?void 0:n.match)!=null)}).reduce(function(t,e){var r=e.lineStr,n=e.match;if(null==n){var s=t.at(-1);if(null==s)return t;s.text+=0===s.text.length?r:"\n".concat(r)}else t.push({start:ib(n[1]),end:ib(n[2]),text:""});return t},[]).map(function(t){return{start:1e6*t.start,end:1e6*t.end,text:t.text}})),0===eM(this,tB).length)throw Error("No subtitles content");ej(this,tR,Object.assign(eM(this,tR),r)),ej(this,tO,null==r.textBgColor?0:(null!==(s=r.fontSize)&&void 0!==s?s:50)*.2);var n,s,a,o=eM(this,tR),u=o.fontSize,l=o.fontFamily,c=o.videoWidth,h=o.videoHeight,f=o.letterSpacing;ej(this,tL,u+2*eM(this,tO)),ej(this,tF,new OffscreenCanvas(c,h)),ej(this,tD,eM(this,tF).getContext("2d")),eM(this,tD).font="".concat(u,"px ").concat(l),eM(this,tD).textAlign="center",eM(this,tD).textBaseline="top",eM(this,tD).letterSpacing=null!=f?f:"0px",ej(this,tP,{width:c,height:h,duration:null!==(a=null==(n=eM(this,tB).at(-1))?void 0:n.end)&&void 0!==a?a:0}),this.ready=Promise.resolve(this.meta)}return(0,ev._)(t,[{key:"meta",get:function(){return(0,eE._)({},eM(this,tP))}},{key:"tick",value:function(t){var e=this;return(0,ey._)(function(){var r,n,s,a,o,u,l,c;return(0,eB._)(this,function(h){if(null!=eM(e,tz)&&t>=eM(e,tz).timestamp&&t<=eM(e,tz).timestamp+(null!==(s=eM(e,tz).duration)&&void 0!==s?s:0))return[2,{video:eM(e,tz).clone(),state:"success"}];for(a=0;a(u=null!==(o=eM(e,tB)[a])&&void 0!==o?o:eM(e,tB).at(-1)).end?[2,{state:"done"}]:teM(r,tB)[s].start)){n=s;break}if(-1===n)throw Error("Not found subtitle by time");return o=(a=eM(r,tB).slice(0,n).map(function(t){return(0,eE._)({},t)})).at(-1),u=null,null!=o&&o.end>e&&(u={start:0,end:o.end-e,text:o.text},o.end=e),l=eM(r,tB).slice(n).map(function(t){return(0,eU._)((0,eE._)({},t),{start:t.start-e,end:t.end-e})}),[2,(null!=u&&l.unshift(u),[new t(a,eM(r,tR)),new t(l,eM(r,tR))])]}})})()}},{key:"clone",value:function(){var e=this;return(0,ey._)(function(){return(0,eB._)(this,function(r){return[2,new t(eM(e,tB).slice(0),eM(e,tR))]})})()}},{key:"destroy",value:function(){var t;null==(t=eM(this,tz))||t.close()}}]),t}();tB=new WeakMap,tP=new WeakMap,tR=new WeakMap,tF=new WeakMap,tD=new WeakMap,tz=new WeakMap,tL=new WeakMap,tO=new WeakMap,tM=new WeakSet,tN=function(t){var e=t.split("\n").reverse().map(function(t){return t.trim()}),r=eM(this,tF),n=r.width,s=r.height,a=eM(this,tR),o=a.color,u=a.fontSize,l=a.textBgColor,c=a.textShadow,h=a.strokeStyle,f=a.lineWidth,d=a.lineCap,p=a.lineJoin,m=a.bottomOffset,_=eM(this,tD);_.clearRect(0,0,n,s),_.globalAlpha=.6;var y=m,g=!0,v=!1,b=void 0;try{for(var w,S=e[Symbol.iterator]();!(g=(w=S.next()).done);g=!0){var x=w.value,E=_.measureText(x),U=n/2;null!=l&&(_.shadowOffsetX=0,_.shadowOffsetY=0,_.shadowBlur=0,_.fillStyle=l,_.globalAlpha=.5,_.fillRect(U-E.actualBoundingBoxLeft-eM(this,tO),s-y-eM(this,tL),E.width+2*eM(this,tO),eM(this,tL))),_.shadowColor=c.color,_.shadowOffsetX=c.offsetX,_.shadowOffsetY=c.offsetY,_.shadowBlur=c.blur,_.globalAlpha=1,null!=h&&(_.lineWidth=null!=f?f:u/6,null!=d&&(_.lineCap=d),null!=p&&(_.lineJoin=p),_.strokeStyle=h,_.strokeText(x,U,s-y-eM(this,tL)+eM(this,tO))),_.fillStyle=o,_.fillText(x,U,s-y-eM(this,tL)+eM(this,tO)),y+=eM(this,tL)+.2*u}}catch(t){v=!0,b=t}finally{try{g||null==S.return||S.return()}finally{if(v)throw b}}};var iv=ig;function ib(t){var e=t.match(/(\d{2}):(\d{2}):(\d{2}),(\d{3})/);if(null==e)throw Error("time format error: ".concat(t));return 3600*Number(e[1])+60*Number(e[2])+Number(e[3])+Number(e[4])/1e3}var iw=/*#__PURE__*/function(){function t(){var e=this,r=this;(0,eg._)(this,t),eN(this,tj,/* @__PURE__ */new Map),eL(this,"on",function(t,r){var n,s=null!==(n=eM(e,tj).get(t))&&void 0!==n?n:/* @__PURE__ */new Set;return s.add(r),eM(e,tj).has(t)||eM(e,tj).set(t,s),function(){s.delete(r),0===s.size&&eM(e,tj).delete(t)}}),eL(this,"once",function(t,r){var n=e.on(t,function(){for(var t=arguments.length,e=Array(t),s=0;s1?e-1:0),s=1;s0&&a.is_sync)break;e.addSample(s,a.data,a),r=a.cts+a.duration}return t.splice(0,n),r}(r);f>c&&(c=f)}var d=n[0];null!=d&&d.cts-c<1e4&&(l=t,h())}}}var f=rA(h,15),d=iI(t,function(t,e){return u("encoder0",t,e)}),p=iI(t,function(t,e){return u("encoder1",t,e)}),m=0;return{get encodeQueueSize(){return d.encodeQueueSize+p.encodeQueueSize},encode:function(t,e){e.keyFrame&&(m+=1),(m%2==0?d:p).encode(t,e)},flush:/*#__PURE__*/(0,ey._)(function(){var t,e,r,n;return(0,eB._)(this,function(s){switch(s.label){case 0:if(t=Promise.all,"configured"!==d.state)return[3,2];return[4,d.flush()];case 1:return e=s.sent(),[3,3];case 2:e=null,s.label=3;case 3:if(r=[e],"configured"!==p.state)return[3,5];return[4,p.flush()];case 4:return n=s.sent(),[3,6];case 5:n=null,s.label=6;case 6:return[4,t.apply(Promise,[r.concat([n])])];case 7:return s.sent(),f(),h(),[2]}})}),close:function(){"configured"===d.state&&d.close(),"configured"===p.state&&p.close()}}}(t.video,e,r):null,u=null!=t.audio?function(t,e,r){var n={timescale:1e6,samplerate:t.sampleRate,channel_count:t.channelCount,hdlr:"soun",type:"aac"===t.codec?"mp4a":"Opus",name:"Track created with WebAV"},s=-1,a=[],o=!1;r.once("VideoReady",function(){o=!0,a.forEach(function(t){var r=iC(t);e.addSample(s,r.data,r)}),a=[]});var u=new AudioEncoder({error:rw.error,output:function(t,u){var l;if(-1===s){var c,h,f,d=null==(l=u.decoderConfig)?void 0:l.description;s=e.addTrack((0,eU._)((0,eE._)({},n),{description:null==d?void 0:(h=new Uint8Array([0,0,0,0,3,23+(c=d.byteLength),0,2,0,4,18+c,64,21,0,0,0,0,0,0,0,0,0,0,0,5,c].concat((0,eI._)(new Uint8Array(d instanceof ArrayBuffer?d:d.buffer)),[6,1,2])),(f=new rJ.BoxParser.esdsBox(h.byteLength)).hdr_size=0,f.parse(new rJ.DataStream(h,0,rJ.DataStream.BIG_ENDIAN)),f)})),r.emit("AudioReady"),rw.info("AudioEncoder, audio track ready, trackId:",s)}if(o){var p=iC(t);e.addSample(s,p.data,p)}else a.push(t)}});return u.configure({codec:"aac"===t.codec?r$.codec:"opus",sampleRate:t.sampleRate,numberOfChannels:t.channelCount,bitrate:128e3}),u}(t.audio,e,r):null;return null==t.video&&r.emit("VideoReady"),null==t.audio&&r.emit("AudioReady"),{encodeVideo:function(t,e){null==o||o.encode(t,e),t.close()},encodeAudio:function(t){null!=u&&(u.encode(t),t.close())},getEncodeQueueSize:function(){var t,e;return null!==(e=null!==(t=null==o?void 0:o.encodeQueueSize)&&void 0!==t?t:null==u?void 0:u.encodeQueueSize)&&void 0!==e?e:0},flush:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(t){switch(t.label){case 0:return[4,Promise.all([null==o?void 0:o.flush(),(null==u?void 0:u.state)==="configured"?u.flush():null])];case 1:return t.sent(),[2]}})}),close:function(){r.destroy(),null==o||o.close(),(null==u?void 0:u.state)==="configured"&&u.close()},mp4file:e}}function iI(t,e){var r=new VideoEncoder({error:rw.error,output:e});return r.configure({codec:t.codec,framerate:t.expectFPS,hardwareAcceleration:t.__unsafe_hardwareAcceleration__,bitrate:t.bitrate,width:t.width,height:t.height,alpha:"discard",avc:{format:"avc"}}),r}function ik(t,e,r){var n=0,s=0,a=t.boxes,o=!1,u=function(){if(!o){if(null==a.find(function(t){return"moof"===t.type}))return null;o=!0}if(s>=a.length)return null;var e=new rJ.DataStream;e.endianness=rJ.DataStream.BIG_ENDIAN;var r=s;try{for(;r0)return!0;var s=r.findIndex(function(t){return"moov"===t.type});if(-1===s)return!1;if(u=r.slice(0,s+1),e=s+1,0===n.length)for(var a=1;;a+=1){var o=t.getTrackById(a);if(null==o)break;n.push({track:o,id:a})}return!0}var c=0,h=rm(),f=null,d=(0,ey._)(function(){return(0,eB._)(this,function(t){switch(t.label){case 0:return[4,h.createWriter()];case 1:return f=t.sent(),c=self.setInterval(function(){l()&&a()},100),[2]}})})(),p=!1;return/*#__PURE__*/(0,ey._)(function(){var e,r,n;return(0,eB._)(this,function(o){switch(o.label){case 0:if(p)throw Error("File exported");return p=!0,[4,d];case 1:if(o.sent(),clearInterval(c),!l()||null==f)return[2,null];return t.flush(),[4,a()];case 2:return o.sent(),[4,null==f?void 0:f.close()];case 3:if(o.sent(),null==(e=u.find(function(t){return"moov"===t.type})))return[2,null];return e.mvhd.duration=s,r=rm(),n=m(u,0),[4,rn(r,n)];case 4:return o.sent(),[4,rn(r,h,{overwrite:!1})];case 5:return o.sent(),[4,r.stream()];case 6:return[2,o.sent()]}})});function m(t,e){if(e>=t.length)return null;var r=new rJ.DataStream;r.endianness=rJ.DataStream.BIG_ENDIAN;for(var n=e;n-1},e.trigger=function(t){var e=this.listeners[t];if(e){if(2==arguments.length)for(var r=e.length,n=0;n-1;e=this.buffer.indexOf("\n"))this.trigger("data",this.buffer.substring(0,e)),this.buffer=this.buffer.substring(e+1)}}]),r}(iL),ij=function(t){var e=/([0-9.]*)?@?([0-9.]*)?/.exec(t||""),r={};return e[1]&&(r.length=parseInt(e[1],10)),e[2]&&(r.offset=parseInt(e[2],10)),r},iG=function(t){var e={};if(!t)return e;for(var r,n=t.split(RegExp('(?:^|,)((?:[^=]*)=(?:"[^"]*"|[^,]*))')),s=n.length;s--;)""!==n[s]&&((r=/([^=]*)=(.*)/.exec(n[s]).slice(1))[0]=r[0].replace(/^\s+|\s+$/g,""),r[1]=r[1].replace(/^\s+|\s+$/g,""),r[1]=r[1].replace(/^['"](.*)['"]$/g,"$1"),e[r[0]]=r[1]);return e},iY=/*#__PURE__*/function(t){(0,ex._)(r,t);var e=(0,eC._)(r);function r(){var t;return(0,eg._)(this,r),(t=e.call(this)).customParsers=[],t.tagMappers=[],(0,eT._)(t)}return(0,ev._)(r,[{key:"push",value:function(t){var e,r,n=this;if(0!==(t=t.trim()).length){if("#"!==t[0]){this.trigger("data",{type:"uri",uri:t});return}this.tagMappers.reduce(function(e,r){var n=r(t);return n===t?e:e.concat([n])},[t]).forEach(function(t){for(var s=0;s0&&(u.duration=t.duration),0===t.duration&&(u.duration=.01,this.trigger("info",{message:"updating zero segment duration to a small value"})),this.manifest.segments=o},key:function(){if(!t.attributes){this.trigger("warn",{message:"ignoring key declaration without attribute list"});return}if("NONE"===t.attributes.METHOD){s=null;return}if(!t.attributes.URI){this.trigger("warn",{message:"ignoring key declaration without URI"});return}if("com.apple.streamingkeydelivery"===t.attributes.KEYFORMAT){this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.apple.fps.1_0"]={attributes:t.attributes};return}if("com.microsoft.playready"===t.attributes.KEYFORMAT){this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.microsoft.playready"]={uri:t.attributes.URI};return}if("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"===t.attributes.KEYFORMAT){if(-1===["SAMPLE-AES","SAMPLE-AES-CTR","SAMPLE-AES-CENC"].indexOf(t.attributes.METHOD)){this.trigger("warn",{message:"invalid key method provided for Widevine"});return}if("SAMPLE-AES-CENC"===t.attributes.METHOD&&this.trigger("warn",{message:"SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead"}),"data:text/plain;base64,"!==t.attributes.URI.substring(0,23)){this.trigger("warn",{message:"invalid key URI provided for Widevine"});return}if(!(t.attributes.KEYID&&"0x"===t.attributes.KEYID.substring(0,2))){this.trigger("warn",{message:"invalid key ID provided for Widevine"});return}this.manifest.contentProtection=this.manifest.contentProtection||{},this.manifest.contentProtection["com.widevine.alpha"]={attributes:{schemeIdUri:t.attributes.KEYFORMAT,keyId:t.attributes.KEYID.substring(2)},pssh:function(t){for(var e=iM.atob?iM.atob(t):eF.from(t,"base64").toString("binary"),r=new Uint8Array(e.length),n=0;n(0,ek._)(t.attributes.IV)&&(s.iv=t.attributes.IV)},"media-sequence":function(){if(!isFinite(t.number)){this.trigger("warn",{message:"ignoring invalid media sequence: "+t.number});return}this.manifest.mediaSequence=t.number},"discontinuity-sequence":function(){if(!isFinite(t.number)){this.trigger("warn",{message:"ignoring invalid discontinuity sequence: "+t.number});return}this.manifest.discontinuitySequence=t.number,f=t.number},"playlist-type":function(){if(!/VOD|EVENT/.test(t.playlistType)){this.trigger("warn",{message:"ignoring unknown playlist type: "+t.playlist});return}this.manifest.playlistType=t.playlistType},map:function(){n={},t.uri&&(n.uri=t.uri),t.byterange&&(n.byterange=t.byterange),s&&(n.key=s)},"stream-inf":function(){if(this.manifest.playlists=o,this.manifest.mediaGroups=this.manifest.mediaGroups||h,!t.attributes){this.trigger("warn",{message:"ignoring empty stream-inf attributes"});return}u.attributes||(u.attributes={}),iO(u.attributes,t.attributes)},media:function(){if(this.manifest.mediaGroups=this.manifest.mediaGroups||h,!(t.attributes&&t.attributes.TYPE&&t.attributes["GROUP-ID"]&&t.attributes.NAME)){this.trigger("warn",{message:"ignoring incomplete or missing media group"});return}var n=this.manifest.mediaGroups[t.attributes.TYPE];n[t.attributes["GROUP-ID"]]=n[t.attributes["GROUP-ID"]]||{},e=n[t.attributes["GROUP-ID"]],(r={default:/yes/i.test(t.attributes.DEFAULT)}).default?r.autoselect=!0:r.autoselect=/yes/i.test(t.attributes.AUTOSELECT),t.attributes.LANGUAGE&&(r.language=t.attributes.LANGUAGE),t.attributes.URI&&(r.uri=t.attributes.URI),t.attributes["INSTREAM-ID"]&&(r.instreamId=t.attributes["INSTREAM-ID"]),t.attributes.CHARACTERISTICS&&(r.characteristics=t.attributes.CHARACTERISTICS),t.attributes.FORCED&&(r.forced=/yes/i.test(t.attributes.FORCED)),e[t.attributes.NAME]=r},discontinuity:function(){f+=1,u.discontinuity=!0,this.manifest.discontinuityStarts.push(o.length)},"program-date-time":function(){(0,ek._)(this.manifest.dateTimeString)>"u"&&(this.manifest.dateTimeString=t.dateTimeString,this.manifest.dateTimeObject=t.dateTimeObject),u.dateTimeString=t.dateTimeString,u.dateTimeObject=t.dateTimeObject;var e=this.lastProgramDateTime;this.lastProgramDateTime=new Date(t.dateTimeString).getTime(),null===e&&this.manifest.segments.reduceRight(function(t,e){return e.programDateTime=t-1e3*e.duration,e.programDateTime},this.lastProgramDateTime)},targetduration:function(){if(!isFinite(t.duration)||t.duration<0){this.trigger("warn",{message:"ignoring invalid target duration: "+t.duration});return}this.manifest.targetDuration=t.duration,iV.call(this,this.manifest)},start:function(){if(!t.attributes||isNaN(t.attributes["TIME-OFFSET"])){this.trigger("warn",{message:"ignoring start declaration without appropriate attribute list"});return}this.manifest.start={timeOffset:t.attributes["TIME-OFFSET"],precise:t.attributes.PRECISE}},"cue-out":function(){u.cueOut=t.data},"cue-out-cont":function(){u.cueOutCont=t.data},"cue-in":function(){u.cueIn=t.data},skip:function(){this.manifest.skip=iW(t.attributes),this.warnOnMissingAttributes_("#EXT-X-SKIP",t.attributes,["SKIPPED-SEGMENTS"])},part:function(){var e=this;l=!0;var r=this.manifest.segments.length,n=iW(t.attributes);u.parts=u.parts||[],u.parts.push(n),n.byterange&&(n.byterange.hasOwnProperty("offset")||(n.byterange.offset=p),p=n.byterange.offset+n.byterange.length);var s=u.parts.length-1;this.warnOnMissingAttributes_("#EXT-X-PART #".concat(s," for segment #").concat(r),t.attributes,["URI","DURATION"]),this.manifest.renditionReports&&this.manifest.renditionReports.forEach(function(t,r){t.hasOwnProperty("lastPart")||e.trigger("warn",{message:"#EXT-X-RENDITION-REPORT #".concat(r," lacks required attribute(s): LAST-PART")})})},"server-control":function(){var e=this.manifest.serverControl=iW(t.attributes);e.hasOwnProperty("canBlockReload")||(e.canBlockReload=!1,this.trigger("info",{message:"#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false"})),iV.call(this,this.manifest),e.canSkipDateranges&&!e.hasOwnProperty("canSkipUntil")&&this.trigger("warn",{message:"#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set"})},"preload-hint":function(){var e=this.manifest.segments.length,r=iW(t.attributes),n=r.type&&"PART"===r.type;u.preloadHints=u.preloadHints||[],u.preloadHints.push(r),r.byterange&&(r.byterange.hasOwnProperty("offset")||(r.byterange.offset=n?p:0,n&&(p=r.byterange.offset+r.byterange.length)));var s=u.preloadHints.length-1;if(this.warnOnMissingAttributes_("#EXT-X-PRELOAD-HINT #".concat(s," for segment #").concat(e),t.attributes,["TYPE","URI"]),r.type)for(var a=0;a1&&void 0!==u[1]?u[1]:10,n=(r=new iH).push,[4,fetch(t)];case 1:return[4,h.sent().text()];case 2:return n.apply(r,[h.sent()]),r.end(),s=r.manifest.segments.reduce(function(t,e){var r;return t[e.map.uri]=null!==(r=t[e.map.uri])&&void 0!==r?r:[],t[e.map.uri].push(e),t},{}),a=new URL(t,location.href),o={},[2,{load:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1/0,r={},n=0,o=0,u=!0,h=!1,f=void 0;try{for(var d,p=Object.entries(s)[Symbol.iterator]();!(u=(d=p.next()).done);u=!0){for(var m=(0,eA._)(d.value,2),_=m[0],y=m[1],g=0,v=[],b=-1,w=-1,S=0;St/1e6&&(b=S,n=(g-x.duration)*1e6),b>-1&&-1===w&&g>=e/1e6){w=S+1,o=1e6*g;break}}e>=1e6*g&&(w=y.length,o=1e6*g),w>b&&(v=v.concat(y.slice(b,w))),v.length>0&&(r[_]={actualStartTime:n,actualEndTime:o,segments:v})}}catch(t){h=!0,f=t}finally{try{u||null==p.return||p.return()}finally{if(h)throw f}}return 0===Object.keys(r).length?null:Object.entries(r).map(function(t){var e,r,n=(0,eA._)(t,2),s=n[0],o=n[1],u=o.actualStartTime,h=o.actualEndTime,f=o.segments,d=0,p=new iw;return{actualStartTime:u,actualEndTime:h,on:p.on,stream:new ReadableStream({start:(e=(0,ey._)(function(t){var e,r;return(0,eB._)(this,function(n){switch(n.label){case 0:return function(t,e,r){l.apply(this,arguments)}(f,t,p),e=t.enqueue,r=Uint8Array.bind,[4,fetch(new URL(s,a).href)];case 1:return[4,n.sent().arrayBuffer()];case 2:return e.apply(t,[new(r.apply(Uint8Array,[void 0,n.sent()]))]),[2]}})}),function(t){return e.apply(this,arguments)}),pull:(r=(0,ey._)(function(t){var e,r,n;return(0,eB._)(this,function(s){switch(s.label){case 0:return e=new URL(f[d].uri,a).href,r=t.enqueue,n=Uint8Array.bind,[4,function(t){return c.apply(this,arguments)}(e)];case 1:return r.apply(t,[new(n.apply(Uint8Array,[void 0,s.sent()]))]),(d+=1)>=f.length&&(t.close(),p.destroy()),[2]}})}),function(t){return r.apply(this,arguments)})})}})}}]}})})).apply(this,arguments)}var iK=[-1,1,-1,-1,1,-1,1,-1,1,1,-1,1],iq=[0,1,0,0,1,0,1,0,1,1,0,1];function iQ(t,e,r){var n=t.createShader(e);if(t.shaderSource(n,r),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS)){var s=t.getShaderInfoLog(n);throw t.deleteShader(n),Error(null!=s?s:"An error occurred compiling the shaders")}return n}var iJ=function(t){var e,r=null,n=null,s=t.keyColor,a=null;return e=(0,ey._)(function(e){var o,u,l;return(0,eB._)(this,function(c){var h,f,d,p,m;return((null==r||null==n||null==a)&&(null==s&&((h=new OffscreenCanvas(1,1).getContext("2d")).drawImage(e,0,0),f=h.getImageData(0,0,1,1),s=[(d=(0,eA._)(f.data,3))[0],d[1],d[2]]),r=(o=function(t){var e="document"in globalThis?globalThis.document.createElement("canvas"):new OffscreenCanvas(t.width,t.height);e.width=t.width,e.height=t.height;var r=e.getContext("webgl2",{premultipliedAlpha:!1,alpha:!0});if(null==r)throw Error("Cant create gl context");var n=function(t,e,r){var n,s=iQ(t,t.VERTEX_SHADER,e),a=iQ(t,t.FRAGMENT_SHADER,r),o=t.createProgram();if(t.attachShader(o,s),t.attachShader(o,a),t.linkProgram(o),!t.getProgramParameter(o,t.LINK_STATUS))throw Error(null!==(n=t.getProgramInfoLog(o))&&void 0!==n?n:"Unable to initialize the shader program");return o}(r,"#version 300 es\n layout (location = 0) in vec4 a_position;\n layout (location = 1) in vec2 a_texCoord;\n out vec2 v_texCoord;\n void main () {\n gl_Position = a_position;\n v_texCoord = a_texCoord;\n }\n","#version 300 es\nprecision mediump float;\nout vec4 FragColor;\nin vec2 v_texCoord;\n\nuniform sampler2D frameTexture;\nuniform vec3 keyColor;\n\n// 色度的相似度计算\nuniform float similarity;\n// 透明度的平滑度计算\nuniform float smoothness;\n// 降低绿幕饱和度,提高抠图准确度\nuniform float spill;\n\nvec2 RGBtoUV(vec3 rgb) {\n return vec2(\n rgb.r * -0.169 + rgb.g * -0.331 + rgb.b * 0.5 + 0.5,\n rgb.r * 0.5 + rgb.g * -0.419 + rgb.b * -0.081 + 0.5\n );\n}\n\nvoid main() {\n // 获取当前像素的rgba值\n vec4 rgba = texture(frameTexture, v_texCoord);\n // 计算当前像素与绿幕像素的色度差值\n vec2 chromaVec = RGBtoUV(rgba.rgb) - RGBtoUV(keyColor);\n // 计算当前像素与绿幕像素的色度距离(向量长度), 越相像则色度距离越小\n float chromaDist = sqrt(dot(chromaVec, chromaVec));\n // 设置了一个相似度阈值,baseMask为负,则表明是绿幕,为正则表明不是绿幕\n float baseMask = chromaDist - similarity;\n // 如果baseMask为负数,fullMask等于0;baseMask为正数,越大,则透明度越低\n float fullMask = pow(clamp(baseMask / smoothness, 0., 1.), 1.5);\n rgba.a = fullMask; // 设置透明度\n // 如果baseMask为负数,spillVal等于0;baseMask为整数,越小,饱和度越低\n float spillVal = pow(clamp(baseMask / spill, 0., 1.), 1.5);\n float desat = clamp(rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722, 0., 1.); // 计算当前像素的灰度值\n rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);\n FragColor = rgba;\n}\n");r.useProgram(n),r.uniform3fv(r.getUniformLocation(n,"keyColor"),t.keyColor.map(function(t){return t/255})),r.uniform1f(r.getUniformLocation(n,"similarity"),t.similarity),r.uniform1f(r.getUniformLocation(n,"smoothness"),t.smoothness),r.uniform1f(r.getUniformLocation(n,"spill"),t.spill);var s=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,s),r.bufferData(r.ARRAY_BUFFER,new Float32Array(iK),r.STATIC_DRAW);var a=r.getAttribLocation(n,"a_position");r.vertexAttribPointer(a,2,r.FLOAT,!1,2*Float32Array.BYTES_PER_ELEMENT,0),r.enableVertexAttribArray(a);var o=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(iq),r.STATIC_DRAW);var u=r.getAttribLocation(n,"a_texCoord");return r.vertexAttribPointer(u,2,r.FLOAT,!1,2*Float32Array.BYTES_PER_ELEMENT,0),r.enableVertexAttribArray(u),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,1),{cvs:e,gl:r}}((0,eE._)((0,eU._)((0,eE._)({},e instanceof VideoFrame?{width:e.codedWidth,height:e.codedHeight}:{width:e.width,height:e.height}),{keyColor:s}),t))).cvs,a=function(t){var e=t.createTexture();if(null==e)throw Error("Create WebGL texture error");t.bindTexture(t.TEXTURE_2D,e);var r=t.RGBA,n=t.RGBA,s=t.UNSIGNED_BYTE,a=new Uint8Array([0,0,255,255]);return t.texImage2D(t.TEXTURE_2D,0,r,1,1,0,n,s,a),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}(n=o.gl)),p=n,m=a,p.bindTexture(p.TEXTURE_2D,m),p.texImage2D(p.TEXTURE_2D,0,p.RGBA,p.RGBA,p.UNSIGNED_BYTE,e),p.drawArrays(p.TRIANGLES,0,6),null!=globalThis.VideoFrame&&e instanceof globalThis.VideoFrame)?(l=new VideoFrame(r,{alpha:"keep",timestamp:e.timestamp,duration:null!==(u=e.duration)&&void 0!==u?u:void 0}),[2,(e.close(),l)]):[2,createImageBitmap(r,{imageOrientation:e instanceof ImageBitmap?"flipY":"none"})]})}),function(t){return e.apply(this,arguments)}},i$=/*#__PURE__*/function(){function t(e,r,n,s,a){(0,eg._)(this,t),eN(this,tK),eN(this,tY,new iw),eL(this,"on",eM(this,tY).on),eN(this,tW,0),eN(this,tV,0),eN(this,tH,0),eN(this,tX,0),eN(this,tZ,0),eL(this,"master",null),eL(this,"fixedAspectRatio",!1),this.x=null!=e?e:0,this.y=null!=r?r:0,this.w=null!=n?n:0,this.h=null!=s?s:0,this.master=null!=a?a:null}return(0,ev._)(t,[{key:"x",get:function(){return eM(this,tW)},set:function(t){eG(this,tK,tq).call(this,"x",t)}},{key:"y",get:function(){return eM(this,tV)},set:function(t){eG(this,tK,tq).call(this,"y",t)}},{key:"w",get:function(){return eM(this,tH)},set:function(t){eG(this,tK,tq).call(this,"w",t)}},{key:"h",get:function(){return eM(this,tX)},set:function(t){eG(this,tK,tq).call(this,"h",t)}},{key:"angle",get:function(){return eM(this,tZ)},set:function(t){eG(this,tK,tq).call(this,"angle",t)}},{key:"center",get:function(){var t=this.x,e=this.y;return{x:t+this.w/2,y:e+this.h/2}}},{key:"ctrls",get:function(){var e=this.w,r=this.h,n=t.CTRL_SIZE,s=n/2,a=e/2,o=r/2,u=1.5*n,l=u/2;return(0,eU._)((0,eE._)({},this.fixedAspectRatio?{}:{t:new t(-s,-o-s,n,n,this),b:new t(-s,o-s,n,n,this),l:new t(-a-s,-s,n,n,this),r:new t(a-s,-s,n,n,this)}),{lt:new t(-a-s,-o-s,n,n,this),lb:new t(-a-s,o-s,n,n,this),rt:new t(a-s,-o-s,n,n,this),rb:new t(a-s,o-s,n,n,this),rotate:new t(-l,-o-2*n-l,u,u,this)})}},{key:"clone",value:function(){var e=new t(this.x,this.y,this.w,this.h,this.master);return e.angle=this.angle,e.fixedAspectRatio=this.fixedAspectRatio,e}},{key:"checkHit",value:function(t,e){var r,n,s=this.angle,a=this.center,o=this.x,u=this.y,l=this.w,c=this.h,h=this.master,f=null!==(r=null==h?void 0:h.center)&&void 0!==r?r:a,d=null!==(n=null==h?void 0:h.angle)&&void 0!==n?n:s;null==h&&(o-=f.x,u-=f.y);var p=t-f.x,m=e-f.y,_=p,y=m;return 0!==d&&(_=p*Math.cos(d)+m*Math.sin(d),y=m*Math.cos(d)-p*Math.sin(d)),!(_o+l||yu+c)}}]),t}();tY=new WeakMap,tW=new WeakMap,tV=new WeakMap,tH=new WeakMap,tX=new WeakMap,tZ=new WeakMap,tK=new WeakSet,tq=function(t,e){var r=this[t]!==e;switch(t){case"x":ej(this,tW,e);break;case"y":ej(this,tV,e);break;case"w":ej(this,tH,e);break;case"h":ej(this,tX,e);break;case"angle":ej(this,tZ,e)}r&&eM(this,tY).emit("propsChange",(0,eb._)({},t,e))},eL(i$,"CTRL_SIZE",16),eL(i$,"CTRL_KEYS",["t","b","l","r","lt","lb","rt","rb","rotate"]);var i0=i$,i1=/*#__PURE__*/function(){function t(){var e=this;(0,eg._)(this,t),eL(this,"rect",new i0),eL(this,"time",{offset:0,duration:0}),eL(this,"visible",!0),eN(this,tQ,new iw),eL(this,"on",eM(this,tQ).on),eN(this,tJ,0),eL(this,"opacity",1),eL(this,"flip",null),eN(this,t$,null),eN(this,t0,null),eL(this,"ready",Promise.resolve()),this.rect.on("propsChange",function(t){eM(e,tQ).emit("propsChange",{rect:t})})}return(0,ev._)(t,[{key:"zIndex",get:function(){return eM(this,tJ)},set:function(t){var e=eM(this,tJ)!==t;ej(this,tJ,t),e&&eM(this,tQ).emit("propsChange",{zIndex:t})}},{key:"_render",value:function(t){var e=this.rect,r=e.center,n=e.angle;t.setTransform("horizontal"===this.flip?-1:1,0,0,"vertical"===this.flip?-1:1,r.x,r.y),t.rotate((null==this.flip?1:-1)*n),t.globalAlpha=this.opacity}},{key:"setAnimation",value:function(t,e){var r,n;ej(this,t$,Object.entries(t).map(function(t){var e,r=(0,eA._)(t,2),n=r[0],s=r[1],a=null!==(e=({from:0,to:100})[n])&&void 0!==e?e:Number(n.slice(0,-1));if(isNaN(a)||a>100||a<0)throw Error("keyFrame must between 0~100");return[a/100,s]})),ej(this,t0,Object.assign({},eM(this,t0),{duration:1e6*e.duration,delay:(null!==(r=e.delay)&&void 0!==r?r:0)*1e6,iterCount:null!==(n=e.iterCount)&&void 0!==n?n:1/0}))}},{key:"animate",value:function(t){if(null!=eM(this,t$)&&null!=eM(this,t0)&&!(t=r.iterCount)return{};var n=t%r.duration,s=t===r.duration?1:n/r.duration,a=e.findIndex(function(t){return t[0]>=s});if(-1===a)return{};var o=e[a-1],u=e[a],l=u[1];if(null==o)return l;var c=o[1],h={},f=(s-o[0])/(u[0]-o[0]);for(var d in l)null!=c[d]&&(h[d]=(l[d]-c[d])*f+c[d]);return h}(t,eM(this,t$),eM(this,t0));for(var r in e)switch(r){case"opacity":this.opacity=e[r];break;case"x":case"y":case"w":case"h":case"angle":this.rect[r]=e[r]}}}},{key:"copyStateTo",value:function(t){ej(t,t$,eM(this,t$)),ej(t,t0,eM(this,t0)),t.visible=this.visible,t.zIndex=this.zIndex,t.opacity=this.opacity,t.flip=this.flip,t.rect=this.rect.clone(),t.time=(0,eE._)({},this.time)}},{key:"destroy",value:function(){eM(this,tQ).destroy()}}]),t}();tQ=new WeakMap,tJ=new WeakMap,t$=new WeakMap,t0=new WeakMap;var i2=/*#__PURE__*/function(t){(0,ex._)(r,t);var e=(0,eC._)(r);function r(t){var n;return(0,eg._)(this,r),n=e.call(this),eN((0,em._)(n),t1),eN((0,em._)(n),t2,null),eN((0,em._)(n),t3,!1),ej((0,em._)(n),t1,t),n.ready=t.ready.then(function(t){var e=t.width,r=t.height,s=t.duration;n.rect.w=0===n.rect.w?e:n.rect.w,n.rect.h=0===n.rect.h?r:n.rect.h,n.time.duration=0===n.time.duration?s:n.time.duration}),n}return(0,ev._)(r,[{key:"offscreenRender",value:function(t,e){var n=this,s=this;return(0,ey._)(function(){var a,o,u,l,c,h,f,d;return(0,eB._)(this,function(p){switch(p.label){case 0:return s.animate(e),(0,ew._)((0,eS._)(r.prototype),"_render",n).call(s,t),u=(o=s.rect).w,l=o.h,[4,eM(s,t1).tick(e)];case 1:if(h=(c=p.sent()).video,f=c.audio,"done"===c.state)return[2,{audio:null!=f?f:[],done:!0}];return[2,(null!=(d=null!=h?h:eM(s,t2))&&t.drawImage(d,-u/2,-l/2,u,l),null!=h&&(null==(a=eM(s,t2))||a.close(),ej(s,t2,h)),{audio:null!=f?f:[],done:!1})]}})})()}},{key:"clone",value:function(){var t=this;return(0,ey._)(function(){var e,n;return(0,eB._)(this,function(s){switch(s.label){case 0:return n=r.bind,[4,eM(t,t1).clone()];case 1:return[4,(e=new(n.apply(r,[void 0,s.sent()]))).ready];case 2:return[2,(s.sent(),t.copyStateTo(e),e)]}})})()}},{key:"destroy",value:function(){var t;eM(this,t3)||(ej(this,t3,!0),rw.info("OffscreenSprite destroy"),(0,ew._)((0,eS._)(r.prototype),"destroy",this).call(this),null==(t=eM(this,t2))||t.close(),ej(this,t2,null),eM(this,t1).destroy())}}]),r}(i1);t1=new WeakMap,t2=new WeakMap,t3=new WeakMap;var i3=i2,i4=/*#__PURE__*/function(t){(0,ex._)(r,t);var e=(0,eC._)(r);function r(t){var n;return(0,eg._)(this,r),n=e.call(this),eN((0,em._)(n),t9),eN((0,em._)(n),t4),eN((0,em._)(n),t6,null),eN((0,em._)(n),t8,[]),eN((0,em._)(n),t5,!1),eN((0,em._)(n),et,-1),eN((0,em._)(n),ee,!1),ej((0,em._)(n),t4,t),n.ready=t.ready.then(function(t){var e=t.width,r=t.height,s=t.duration;n.rect.w=0===n.rect.w?e:n.rect.w,n.rect.h=0===n.rect.h?r:n.rect.h,n.time.duration=0===n.time.duration?s:n.time.duration}),n}return(0,ev._)(r,[{key:"getClip",value:function(){return eM(this,t4)}},{key:"preFrame",value:function(t){eG(this,t9,t7).call(this,t)}},{key:"render",value:function(t,e){this.animate(e),(0,ew._)((0,eS._)(r.prototype),"_render",this).call(this,t);var n=this.rect,s=n.w,a=n.h;eM(this,et)!==e&&eG(this,t9,t7).call(this,e),ej(this,et,e);var o=eM(this,t8);ej(this,t8,[]);var u=eM(this,t6);return null!=u&&t.drawImage(u,-s/2,-a/2,s,a),{audio:o}}},{key:"destroy",value:function(){var t;eM(this,ee)||(ej(this,ee,!0),rw.info("VisibleSprite destroy"),(0,ew._)((0,eS._)(r.prototype),"destroy",this).call(this),null==(t=eM(this,t6))||t.close(),ej(this,t6,null),eM(this,t4).destroy())}}]),r}(i1);t4=new WeakMap,t6=new WeakMap,t8=new WeakMap,t5=new WeakMap,t9=new WeakSet,t7=function(t){var e=this;eM(this,t5)||(ej(this,t5,!0),eM(this,t4).tick(t).then(function(t){var r,n=t.video,s=t.audio;null!=n&&(null==(r=eM(e,t6))||r.close(),ej(e,t6,null!=n?n:null)),ej(e,t8,null!=s?s:[])}).finally(function(){ej(e,t5,!1)}))},et=new WeakMap,ee=new WeakMap;var i6=0;function i8(t){return i5.apply(this,arguments)}function i5(){return(i5=(0,ey._)(function(t){return(0,eB._)(this,function(e){switch(e.label){case 0:if(!(t()>50))return[3,3];return[4,rH(15)];case 1:return e.sent(),[4,i8(t)];case 2:e.sent(),e.label=3;case 3:return[2]}})})).apply(this,arguments)}var i9=/*#__PURE__*/function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,eg._)(this,t),eN(this,eh),eN(this,er,rw.create("id:".concat(i6++,","))),eN(this,ei,!1),eN(this,en,[]),eN(this,es),eN(this,ea),eN(this,eo,null),eN(this,eu),eN(this,el),eN(this,ec,new iw),eL(this,"on",eM(this,ec).on);var r=e.width,n=void 0===r?0:r,s=e.height,a=void 0===s?0:s;ej(this,es,new OffscreenCanvas(n,a));var o=eM(this,es).getContext("2d",{alpha:!1});if(null==o)throw Error("Can not create 2d offscreen context");ej(this,ea,o),ej(this,eu,Object.assign({bgColor:"#000",width:0,height:0,videoCodec:"avc1.42E032",audio:!0,bitrate:5e6,metaDataTags:null},e)),ej(this,el,n*a>0)}return(0,ev._)(t,[{key:"addSprite",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this;return(0,ey._)(function(){var n,s;return(0,eB._)(this,function(a){switch(a.label){case 0:return eM(r,er).info("Combinator add sprite",t),[4,t.clone()];case 1:return n=a.sent(),eM(r,er).info("Combinator add sprite ready",t),eM(r,en).push(Object.assign(n,{main:null!==(s=e.main)&&void 0!==s&&s,expired:!1})),eM(r,en).sort(function(t,e){return t.zIndex-e.zIndex}),[2]}})})()}},{key:"output",value:function(){var t,e=this;if(0===eM(this,en).length)throw Error("No sprite added");var r=eM(this,en).find(function(t){return t.main}),n=null!=r?r.time.offset+r.time.duration:(t=Math).max.apply(t,(0,eI._)(eM(this,en).map(function(t){return t.time.offset+t.time.duration})));if(n===1/0)throw Error("Unable to determine the end time, please specify a main sprite, or limit the duration of ImgClip, AudioCli");-1===n&&eM(this,er).warn("Unable to determine the end time, process value don't update"),eM(this,er).info("start combinate video, maxTime:".concat(n));var s=eG(this,eh,ef).call(this,n),a=performance.now(),o=this,u=eG(this,eh,ed).call(this,s,n,{onProgress:function(t){eM(e,er).debug("OutputProgress:",t),eM(e,ec).emit("OutputProgress",t)},onEnded:/*#__PURE__*/(0,ey._)(function(){return(0,eB._)(this,function(t){switch(t.label){case 0:return[4,s.flush()];case 1:return t.sent(),eM(o,er).info("===== output ended =====, cost:",performance.now()-a),eM(o,ec).emit("OutputProgress",1),o.destroy(),[2]}})}),onError:function(t){eM(e,ec).emit("error",t),h(t),e.destroy()}});ej(this,eo,function(){u(),s.close(),h()});var l=ik(s.mp4file,500,this.destroy),c=l.stream,h=l.stop;return c}},{key:"destroy",value:function(){var t;eM(this,ei)||(ej(this,ei,!0),null==(t=eM(this,eo))||t.call(this),eM(this,ec).destroy())}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{videoCodec:"avc1.42E032"};return(0,ey._)(function(){var e,r,n;return(0,eB._)(this,function(s){switch(s.label){case 0:if(!(n=null!=self.OffscreenCanvas&&null!=self.VideoEncoder&&null!=self.VideoDecoder&&null!=self.VideoFrame&&null!=self.AudioEncoder&&null!=self.AudioDecoder&&null!=self.AudioData))return[3,2];return[4,self.VideoEncoder.isConfigSupported({codec:t.videoCodec,width:1280,height:720})];case 1:n=null!==(e=s.sent().supported)&&void 0!==e&&e,s.label=2;case 2:if(!(r=n))return[3,4];return[4,self.AudioEncoder.isConfigSupported({codec:r$.codec,sampleRate:r$.sampleRate,numberOfChannels:r$.channelCount})];case 3:r=s.sent().supported,s.label=4;case 4:return[2,r]}})})()}}]),t}();er=new WeakMap,ei=new WeakMap,en=new WeakMap,es=new WeakMap,ea=new WeakMap,eo=new WeakMap,eu=new WeakMap,el=new WeakMap,ec=new WeakMap,eh=new WeakSet,ef=function(t){var e=eM(this,eu),r=e.width,n=e.height,s=e.videoCodec,a=e.bitrate,o=e.audio,u=e.metaDataTags;return iA({video:eM(this,el)?{width:r,height:n,expectFPS:30,codec:s,bitrate:a,__unsafe_hardwareAcceleration__:eM(this,eu).__unsafe_hardwareAcceleration__}:null,audio:!1===o?null:{codec:"aac",sampleRate:r$.sampleRate,channelCount:r$.channelCount},duration:t,metaDataTags:u})},ed=function(t,e,r){var n=this,s=r.onProgress,a=r.onEnded,o=r.onError,u=0,l=!1,c=null,h=this;(0,ey._)(function(){var r,n,s,o,f,p,m,_;return(0,eB._)(this,function(y){switch(y.label){case 0:r=function(){var r,s,_,y,g,v,b,w,S,x,E,U,T;return(0,eB._)(this,function(A){switch(A.label){case 0:if(null!=c)return[2,{v:void 0}];if(!(l||-1!==e&&m>e||0===eM(h,en).length))return[3,2];return d(),[4,a()];case 1:return A.sent(),[2,{v:void 0}];case 2:u=m/e,p.fillStyle=eM(h,eu).bgColor,p.fillRect(0,0,o,f),r=[],s=!0,_=!1,y=void 0,A.label=3;case 3:A.trys.push([3,10,11,12]),g=eM(h,en)[Symbol.iterator](),A.label=4;case 4:if((s=(v=g.next()).done)||(b=v.value,l))return[3,9];if(m0)||!(m>b.time.offset+b.time.duration))&&!x)return[3,8];if(!b.main)return[3,7];return d(),[4,a()];case 6:return A.sent(),[2,{v:void 0}];case 7:b.destroy(),b.expired=!0,A.label=8;case 8:return s=!0,[3,4];case 9:return[3,12];case 10:return E=A.sent(),_=!0,y=E,[3,12];case 11:try{s||null==g.return||g.return()}finally{if(_)throw y}return[7];case 12:var I,k,C;if(l)return[2,{v:void 0}];return!1!==eM(h,eu).audio&&(r.flat().every(function(t){return 0===t.length})?t.encodeAudio((I=m,C=Math.floor(33e3*(k=r$.sampleRate)/1e6),new AudioData({timestamp:I,numberOfChannels:r$.channelCount,numberOfFrames:C,sampleRate:k,format:"f32-planar",data:new Float32Array(2*C)}))):(U=rY(r),t.encodeAudio(new AudioData({timestamp:m,numberOfChannels:r$.channelCount,numberOfFrames:U.length/r$.channelCount,sampleRate:r$.sampleRate,format:"f32-planar",data:U})))),eM(h,el)&&(T=new VideoFrame(eM(h,es),{duration:33e3,timestamp:m}),t.encodeVideo(T,{keyFrame:n%150==0}),p.resetTransform(),p.clearRect(0,0,o,f),n+=1),m+=33e3,[4,i8(t.getEncodeQueueSize)];case 13:return A.sent(),[2]}})},n=0,o=(s=eM(h,es)).width,f=s.height,p=eM(h,ea),m=0,y.label=1;case 1:return[5,(0,eP._)(r())];case 2:if(_=y.sent(),"object"===(0,ek._)(_))return[2,_.v];y.label=3;case 3:return[3,1];case 4:return[2]}})})().catch(function(t){c=t,eM(n,er).error(t),d(),o(t)});var f=setInterval(function(){s(u)},500),d=function(){l||(l=!0,clearInterval(f),eM(n,en).forEach(function(t){return t.destroy()}))};return d}},{"@swc/helpers/_/_assert_this_initialized":"jgeid","@swc/helpers/_/_async_iterator":"kdyGG","@swc/helpers/_/_async_to_generator":"eONSn","@swc/helpers/_/_class_call_check":"9iJMm","@swc/helpers/_/_create_class":"21IOT","@swc/helpers/_/_define_property":"3NGsL","@swc/helpers/_/_get":"hMhPd","@swc/helpers/_/_get_prototype_of":"dAKgy","@swc/helpers/_/_inherits":"3pfgY","@swc/helpers/_/_object_spread":"9agdF","@swc/helpers/_/_object_spread_props":"gJNH2","@swc/helpers/_/_possible_constructor_return":"iVdhB","@swc/helpers/_/_sliced_to_array":"uVQht","@swc/helpers/_/_to_consumable_array":"iwLF0","@swc/helpers/_/_type_of":"felZi","@swc/helpers/_/_create_super":"86fte","@swc/helpers/_/_ts_generator":"6Xyd0","@swc/helpers/_/_ts_values":"1Y0br","718a311db185ef08":"gp9kd","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],jgeid:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");function s(t){if(void 0===t)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.defineInteropFlag(r),n.export(r,"_",function(){return s})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],kdyGG:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");function s(t){var e,r,n,s=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);s--;){if(r&&null!=(e=t[r]))return e.call(t);if(n&&null!=(e=t[n]))return new a(e.call(t));r="@@asyncIterator",n="@@iterator"}throw TypeError("Object is not async iterable")}function a(t){function e(t){if(Object(t)!==t)return Promise.reject(TypeError(t+" is not an object."));var e=t.done;return Promise.resolve(t.value).then(function(t){return{value:t,done:e}})}return(a=function(t){this.s=t,this.n=t.next}).prototype={s:null,n:null,next:function(){return e(this.n.apply(this.s,arguments))},return:function(t){var r=this.s.return;return void 0===r?Promise.resolve({value:t,done:!0}):e(r.apply(this.s,arguments))},throw:function(t){var r=this.s.return;return void 0===r?Promise.reject(t):e(r.apply(this.s,arguments))}},new a(t)}n.defineInteropFlag(r),n.export(r,"_",function(){return s})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"9iJMm":[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");function s(t,e){if(!(t instanceof e))throw TypeError("Cannot call a class as a function")}n.defineInteropFlag(r),n.export(r,"_",function(){return s})},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],"21IOT":[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");function s(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=Array(e);r* @license MIT */var n=t("@swc/helpers/_/_type_of"),s=t("9c62938f1dccc73c"),a=t("aceacb6a4531a9d2"),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;function u(t){if(t>2147483647)throw RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return Object.setPrototypeOf(e,l.prototype),e}function l(t,e,r){if("number"==typeof t){if("string"==typeof e)throw TypeError('The "string" argument must be of type string. Received type number');return f(t)}return c(t,e,r)}function c(t,e,r){if("string"==typeof t)return function(t,e){if(("string"!=typeof e||""===e)&&(e="utf8"),!l.isEncoding(e))throw TypeError("Unknown encoding: "+e);var r=0|_(t,e),n=u(r),s=n.write(t,e);return s!==r&&(n=n.slice(0,s)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(B(t,Uint8Array)){var e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return d(t)}(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+(void 0===t?"undefined":(0,n._)(t)));if(B(t,ArrayBuffer)||t&&B(t.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(B(t,SharedArrayBuffer)||t&&B(t.buffer,SharedArrayBuffer)))return p(t,e,r);if("number"==typeof t)throw TypeError('The "value" argument must not be of type number. Received type number');var s=t.valueOf&&t.valueOf();if(null!=s&&s!==t)return l.from(s,e,r);var a=function(t){if(l.isBuffer(t)){var e,r=0|m(t.length),n=u(r);return 0===n.length||t.copy(n,0,0,r),n}return void 0!==t.length?"number"!=typeof t.length||(e=t.length)!=e?u(0):d(t):"Buffer"===t.type&&Array.isArray(t.data)?d(t.data):void 0}(t);if(a)return a;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return l.from(t[Symbol.toPrimitive]("string"),e,r);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+(void 0===t?"undefined":(0,n._)(t)))}function h(t){if("number"!=typeof t)throw TypeError('"size" argument must be of type number');if(t<0)throw RangeError('The value "'+t+'" is invalid for option "size"')}function f(t){return h(t),u(t<0?0:0|m(t))}function d(t){for(var e=t.length<0?0:0|m(t.length),r=u(e),n=0;n=2147483647)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|t}function _(t,e){if(l.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+(void 0===t?"undefined":(0,n._)(t)));var r=t.length,s=arguments.length>2&&!0===arguments[2];if(!s&&0===r)return 0;for(var a=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return I(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return k(t).length;default:if(a)return s?-1:I(t).length;e=(""+e).toLowerCase(),a=!0}}function y(t,e,r){var n,a,o=!1;if((void 0===e||e<0)&&(e=0),e>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||(r>>>=0)<=(e>>>=0)))return"";for(t||(t="utf8");;)switch(t){case"hex":return function(t,e,r){var n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);for(var s="",a=e;a2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),(a=r=+r)!=a&&(r=s?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(s)return -1;r=t.length-1}else if(r<0){if(!s)return -1;r=0}if("string"==typeof e&&(e=l.from(e,n)),l.isBuffer(e))return 0===e.length?-1:b(t,e,r,n,s);if("number"==typeof e)return(e&=255,"function"==typeof Uint8Array.prototype.indexOf)?s?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):b(t,[e],r,n,s);throw TypeError("val must be string, number or Buffer")}function b(t,e,r,n,s){var a,o=1,u=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return -1;o=2,u/=2,l/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(s){var h=-1;for(a=r;au&&(r=u-l),a=r;a>=0;a--){for(var f=!0,d=0;d239?4:c>223?3:c>191?2:1;if(s+f<=r)switch(f){case 1:c<128&&(h=c);break;case 2:(192&(a=t[s+1]))==128&&(l=(31&c)<<6|63&a)>127&&(h=l);break;case 3:a=t[s+1],o=t[s+2],(192&a)==128&&(192&o)==128&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(h=l);break;case 4:a=t[s+1],o=t[s+2],u=t[s+3],(192&a)==128&&(192&o)==128&&(192&u)==128&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&u)>65535&&l<1114112&&(h=l)}null===h?(h=65533,f=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),s+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);for(var r="",n=0;nr)throw RangeError("Trying to access beyond buffer length")}function x(t,e,r,n,s,a){if(!l.isBuffer(t))throw TypeError('"buffer" argument must be a Buffer instance');if(e>s||et.length)throw RangeError("Index out of range")}function E(t,e,r,n,s,a){if(r+n>t.length||r<0)throw RangeError("Index out of range")}function U(t,e,r,n,s){return e=+e,r>>>=0,s||E(t,e,r,4,34028234663852886e22,-34028234663852886e22),a.write(t,e,r,n,23,4),r+4}function T(t,e,r,n,s){return e=+e,r>>>=0,s||E(t,e,r,8,17976931348623157e292,-17976931348623157e292),a.write(t,e,r,n,52,8),r+8}r.Buffer=l,r.SlowBuffer=function(t){return+t!=t&&(t=0),l.alloc(+t)},r.INSPECT_MAX_BYTES=50,r.kMaxLength=2147483647,l.TYPED_ARRAY_SUPPORT=function(){try{var t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),l.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),l.poolSize=8192,l.from=function(t,e,r){return c(t,e,r)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(t,e,r){return(h(t),t<=0)?u(t):void 0!==e?"string"==typeof r?u(t).fill(e,r):u(t).fill(e):u(t)},l.allocUnsafe=function(t){return f(t)},l.allocUnsafeSlow=function(t){return f(t)},l.isBuffer=function(t){return null!=t&&!0===t._isBuffer&&t!==l.prototype},l.compare=function(t,e){if(B(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),B(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(t)||!l.isBuffer(e))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;for(var r=t.length,n=e.length,s=0,a=Math.min(r,n);sn.length?l.from(a).copy(n,s):Uint8Array.prototype.set.call(n,a,s);else if(l.isBuffer(a))a.copy(n,s);else throw TypeError('"list" argument must be an Array of Buffers');s+=a.length}return n},l.byteLength=_,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;ee&&(t+=" ... "),""},o&&(l.prototype[o]=l.prototype.inspect),l.prototype.compare=function(t,e,r,s,a){if(B(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(t))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+(void 0===t?"undefined":(0,n._)(t)));if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===s&&(s=0),void 0===a&&(a=this.length),e<0||r>t.length||s<0||a>this.length)throw RangeError("out of range index");if(s>=a&&e>=r)return 0;if(s>=a)return -1;if(e>=r)return 1;if(e>>>=0,r>>>=0,s>>>=0,a>>>=0,this===t)return 0;for(var o=a-s,u=r-e,c=Math.min(o,u),h=this.slice(s,a),f=t.slice(e,r),d=0;d>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var s,a,o,u,l,c,h,f,d=this.length-e;if((void 0===r||r>d)&&(r=d),t.length>0&&(r<0||e<0)||e>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var p=!1;;)switch(n){case"hex":return function(t,e,r,n){r=Number(r)||0;var s=t.length-r;n?(n=Number(n))>s&&(n=s):n=s;var a=e.length;n>a/2&&(n=a/2);for(var o=0;o>8,s.push(r%256),s.push(n);return s}(t,this.length-h),this,h,f);default:if(p)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),p=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},l.prototype.slice=function(t,e){var r=this.length;t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||S(t,e,this.length);for(var n=this[t],s=1,a=0;++a>>=0,e>>>=0,r||S(t,e,this.length);for(var n=this[t+--e],s=1;e>0&&(s*=256);)n+=this[t+--e]*s;return n},l.prototype.readUint8=l.prototype.readUInt8=function(t,e){return t>>>=0,e||S(t,1,this.length),this[t]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(t,e){return t>>>=0,e||S(t,2,this.length),this[t]|this[t+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(t,e){return t>>>=0,e||S(t,2,this.length),this[t]<<8|this[t+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(t,e){return t>>>=0,e||S(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(t,e){return t>>>=0,e||S(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},l.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||S(t,e,this.length);for(var n=this[t],s=1,a=0;++a=(s*=128)&&(n-=Math.pow(2,8*e)),n},l.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||S(t,e,this.length);for(var n=e,s=1,a=this[t+--n];n>0&&(s*=256);)a+=this[t+--n]*s;return a>=(s*=128)&&(a-=Math.pow(2,8*e)),a},l.prototype.readInt8=function(t,e){return(t>>>=0,e||S(t,1,this.length),128&this[t])?-((255-this[t]+1)*1):this[t]},l.prototype.readInt16LE=function(t,e){t>>>=0,e||S(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(t,e){t>>>=0,e||S(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(t,e){return t>>>=0,e||S(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},l.prototype.readInt32BE=function(t,e){return t>>>=0,e||S(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},l.prototype.readFloatLE=function(t,e){return t>>>=0,e||S(t,4,this.length),a.read(this,t,!0,23,4)},l.prototype.readFloatBE=function(t,e){return t>>>=0,e||S(t,4,this.length),a.read(this,t,!1,23,4)},l.prototype.readDoubleLE=function(t,e){return t>>>=0,e||S(t,8,this.length),a.read(this,t,!0,52,8)},l.prototype.readDoubleBE=function(t,e){return t>>>=0,e||S(t,8,this.length),a.read(this,t,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){var s=Math.pow(2,8*r)-1;x(this,t,e,r,s,0)}var a=1,o=0;for(this[e]=255&t;++o>>=0,r>>>=0,!n){var s=Math.pow(2,8*r)-1;x(this,t,e,r,s,0)}var a=r-1,o=1;for(this[e+a]=255&t;--a>=0&&(o*=256);)this[e+a]=t/o&255;return e+r},l.prototype.writeUint8=l.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,1,255,0),this[e]=255&t,e+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var s=Math.pow(2,8*r-1);x(this,t,e,r,s-1,-s)}var a=0,o=1,u=0;for(this[e]=255&t;++a>0)-u&255;return e+r},l.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var s=Math.pow(2,8*r-1);x(this,t,e,r,s-1,-s)}var a=r-1,o=1,u=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===u&&0!==this[e+a+1]&&(u=1),this[e+a]=(t/o>>0)-u&255;return e+r},l.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},l.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},l.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},l.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},l.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||x(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},l.prototype.writeFloatLE=function(t,e,r){return U(this,t,e,!0,r)},l.prototype.writeFloatBE=function(t,e,r){return U(this,t,e,!1,r)},l.prototype.writeDoubleLE=function(t,e,r){return T(this,t,e,!0,r)},l.prototype.writeDoubleBE=function(t,e,r){return T(this,t,e,!1,r)},l.prototype.copy=function(t,e,r,n){if(!l.isBuffer(t))throw TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(s=e;s55295&&r<57344){if(!s){if(r>56319||o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}s=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),s=r;continue}r=(s-55296<<10|r-56320)+65536}else s&&(e-=3)>-1&&a.push(239,191,189);if(s=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return a}function k(t){return s.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(A,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function C(t,e,r,n){for(var s=0;s=e.length)&&!(s>=t.length);++s)e[s+r]=t[s];return s}function B(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}var P=function(){for(var t="0123456789abcdef",e=Array(256),r=0;r<16;++r)for(var n=16*r,s=0;s<16;++s)e[n+s]=t[r]+t[s];return e}()},{"@swc/helpers/_/_type_of":"felZi","9c62938f1dccc73c":"8CZvr",aceacb6a4531a9d2:"kxjGq"}],"8CZvr":[function(t,e,r){r.byteLength=function(t){var e=c(t),r=e[0],n=e[1];return(r+n)*3/4-n},r.toByteArray=function(t){var e,r,n=c(t),o=n[0],u=n[1],l=new a((o+u)*3/4-u),h=0,f=u>0?o-4:o;for(r=0;r>16&255,l[h++]=e>>8&255,l[h++]=255&e;return 2===u&&(e=s[t.charCodeAt(r)]<<2|s[t.charCodeAt(r+1)]>>4,l[h++]=255&e),1===u&&(e=s[t.charCodeAt(r)]<<10|s[t.charCodeAt(r+1)]<<4|s[t.charCodeAt(r+2)]>>2,l[h++]=e>>8&255,l[h++]=255&e),l},r.fromByteArray=function(t){for(var e,r=t.length,s=r%3,a=[],o=0,u=r-s;o>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return a.join("")}(t,o,o+16383>u?u:o+16383));return 1===s?a.push(n[(e=t[r-1])>>2]+n[e<<4&63]+"=="):2===s&&a.push(n[(e=(t[r-2]<<8)+t[r-1])>>10]+n[e>>4&63]+n[e<<2&63]+"="),a.join("")};for(var n=[],s=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=0,l=o.length;u0)throw Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");-1===r&&(r=e);var n=r===e?0:4-r%4;return[r,n]}s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63},{}],kxjGq:[function(t,e,r){/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh*/r.read=function(t,e,r,n,s){var a,o,u=8*s-n-1,l=(1<>1,h=-7,f=r?s-1:0,d=r?-1:1,p=t[e+f];for(f+=d,a=p&(1<<-h)-1,p>>=-h,h+=u;h>0;a=256*a+t[e+f],f+=d,h-=8);for(o=a&(1<<-h)-1,a>>=-h,h+=n;h>0;o=256*o+t[e+f],f+=d,h-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},r.write=function(t,e,r,n,s,a){var o,u,l,c=8*a-s-1,h=(1<>1,d=23===s?5960464477539062e-23:0,p=n?0:a-1,m=n?1:-1,_=e<0||0===e&&1/e<0?1:0;for(isNaN(e=Math.abs(e))||e===1/0?(u=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?e+=d/l:e+=d*Math.pow(2,1-f),e*l>=2&&(o++,l/=2),o+f>=h?(u=0,o=h):o+f>=1?(u=(e*l-1)*Math.pow(2,s),o+=f):(u=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[r+p]=255&u,p+=m,u/=256,s-=8);for(o=o<0;t[r+p]=255&o,p+=m,o/=256,c-=8);t[r+p-m]|=128*_}},{}]},["c4SNP"],"c4SNP","parcelRequire4dc0"); \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 8cbeb77cd..123b5af96 100644 --- a/docs/index.html +++ b/docs/index.html @@ -102,10 +102,6 @@ artplayer-proxy-webav -
  • - artplayer-proxy-libmedia -
    • Tools
    • @@ -119,7 +115,7 @@ Document Github ☕ 捐助/Sponsor - Q群: 320881312(可接定制) + Q群: 320881312
      diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js b/docs/uncompiled/artplayer-plugin-danmuku/index.js index b37387a08..74cb7655c 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku/index.js +++ b/docs/uncompiled/artplayer-plugin-danmuku/index.js @@ -213,9 +213,12 @@ class Danmuku { // 初始化配置 this.config(option); // 创建 Web Worker, 用于计算弹幕的 top 值 - this.worker = new Worker(URL.createObjectURL(new Blob([ + const blob = new Blob([ (0, _workerDefault.default) - ]))); + ], { + type: "application/javascript" + }); + this.worker = new Worker(URL.createObjectURL(blob)); // 绑定公用事件 this.start = this.start.bind(this); this.stop = this.stop.bind(this); @@ -1561,7 +1564,7 @@ if (typeof document !== "undefined") { } } -},{"bundle-text:./style.less":"uaCsY","bundle-text:./img/on.svg":"a9r0e","bundle-text:./img/off.svg":"luia6","bundle-text:./img/config.svg":"lo6sV","bundle-text:./img/style.svg":"1Aemm","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6","bundle-text:./img/mode_0_off.svg":"jKvDJ","bundle-text:./img/mode_0_on.svg":"7eesQ","bundle-text:./img/mode_1_off.svg":"DalV6","bundle-text:./img/mode_1_on.svg":"i0F2W","bundle-text:./img/mode_2_off.svg":"1phDW","bundle-text:./img/mode_2_on.svg":"iHUBM","bundle-text:./img/check_on.svg":"fQ6fo","bundle-text:./img/check_off.svg":"dz3tU"}],"uaCsY":[function(require,module,exports) { +},{"bundle-text:./style.less":"uaCsY","bundle-text:./img/on.svg":"a9r0e","bundle-text:./img/off.svg":"luia6","bundle-text:./img/config.svg":"lo6sV","bundle-text:./img/style.svg":"1Aemm","bundle-text:./img/mode_0_off.svg":"jKvDJ","bundle-text:./img/mode_0_on.svg":"7eesQ","bundle-text:./img/mode_1_off.svg":"DalV6","bundle-text:./img/mode_1_on.svg":"i0F2W","bundle-text:./img/mode_2_off.svg":"1phDW","bundle-text:./img/mode_2_on.svg":"iHUBM","bundle-text:./img/check_on.svg":"fQ6fo","bundle-text:./img/check_off.svg":"dz3tU","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"uaCsY":[function(require,module,exports) { module.exports = ".artplayer-plugin-danmuku {\n z-index: 99;\n color: #fff;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 32px;\n font-size: 12px;\n font-weight: 300;\n display: flex;\n position: relative;\n}\n\n.artplayer-plugin-danmuku .apd-icon {\n cursor: pointer;\n opacity: .75;\n fill: #fff;\n transition: all .2s;\n}\n\n.artplayer-plugin-danmuku .apd-icon:hover {\n opacity: 1;\n}\n\n.artplayer-plugin-danmuku .apd-config {\n display: flex;\n position: relative;\n}\n\n.artplayer-plugin-danmuku .apd-config .apd-config-panel {\n opacity: 0;\n pointer-events: none;\n width: 320px;\n padding: 10px;\n position: absolute;\n bottom: 24px;\n left: 0;\n}\n\n.artplayer-plugin-danmuku .apd-config .apd-config-panel .apd-config-panel-inner {\n background-color: #000000d9;\n border-radius: 3px;\n width: 100%;\n padding: 10px;\n}\n\n.artplayer-plugin-danmuku .apd-config:hover .apd-config-panel {\n opacity: 100;\n pointer-events: all;\n}\n\n.artplayer-plugin-danmuku .apd-config-mode, .artplayer-plugin-danmuku .apd-config-slider, .artplayer-plugin-danmuku .apd-config-other, .artplayer-plugin-danmuku .apd-style-mode {\n margin-bottom: 15px;\n}\n\n.artplayer-plugin-danmuku .apd-modes {\n align-items: center;\n gap: 20px;\n margin-top: 5px;\n display: flex;\n}\n\n.artplayer-plugin-danmuku .apd-modes .apd-mode {\n cursor: pointer;\n text-align: center;\n}\n\n.artplayer-plugin-danmuku .apd-modes .apd-mode:hover {\n color: #00a1d6;\n}\n\n.artplayer-plugin-danmuku .apd-config-slider {\n align-items: center;\n gap: 12px;\n display: flex;\n}\n\n.artplayer-plugin-danmuku .apd-config-slider .apd-value {\n text-align: right;\n width: 32px;\n}\n\n.artplayer-plugin-danmuku .apd-slider {\n cursor: pointer;\n flex: 1;\n justify-content: center;\n align-items: center;\n height: 20px;\n display: flex;\n position: relative;\n}\n\n.artplayer-plugin-danmuku .apd-slider .apd-slider-line {\n background-color: #ffffff40;\n border-radius: 3px;\n width: 100%;\n height: 2px;\n position: relative;\n overflow: hidden;\n}\n\n.artplayer-plugin-danmuku .apd-slider .apd-slider-points {\n justify-content: space-between;\n align-items: center;\n display: flex;\n position: absolute;\n inset: 0;\n}\n\n.artplayer-plugin-danmuku .apd-slider .apd-slider-points .apd-slider-point {\n background-color: #ffffff80;\n border-radius: 50%;\n width: 2px;\n height: 2px;\n}\n\n.artplayer-plugin-danmuku .apd-slider .apd-slider-progress {\n background-color: #00a1d6;\n width: 0%;\n height: 100%;\n}\n\n.artplayer-plugin-danmuku .apd-slider .apd-slider-dot {\n background-color: #00a1d6;\n border-radius: 50%;\n width: 12px;\n height: 12px;\n position: absolute;\n left: 0%;\n transform: translateX(-6px);\n}\n\n.artplayer-plugin-danmuku .apd-slider .apd-slider-steps {\n color: #777;\n justify-content: space-between;\n align-items: center;\n width: calc(100% + 32px);\n display: flex;\n position: absolute;\n bottom: -12px;\n}\n\n.artplayer-plugin-danmuku .apd-slider .apd-slider-steps .apd-slider-step {\n text-align: center;\n flex-shrink: 0;\n width: 36px;\n scale: .95;\n}\n\n.artplayer-plugin-danmuku .apd-config-other {\n align-items: center;\n gap: 20px;\n display: flex;\n}\n\n.artplayer-plugin-danmuku .apd-config-other .apd-check-off, .artplayer-plugin-danmuku .apd-config-other .apd-check-on {\n width: 16px;\n height: 16px;\n}\n\n.artplayer-plugin-danmuku .apd-config-other .apd-other {\n cursor: pointer;\n align-items: center;\n gap: 2px;\n display: flex;\n}\n\n.artplayer-plugin-danmuku .apd-config-other .apd-other:hover {\n color: #00a1d6;\n}\n\n.artplayer-plugin-danmuku .apd-emitter {\n background-color: #ffffff40;\n border-radius: 5px;\n flex: 1;\n align-items: center;\n height: 100%;\n display: flex;\n}\n\n.artplayer-plugin-danmuku .apd-style {\n justify-content: center;\n align-items: center;\n display: flex;\n position: relative;\n}\n\n.artplayer-plugin-danmuku .apd-style .apd-style-panel {\n opacity: 0;\n pointer-events: none;\n width: 200px;\n padding: 10px;\n position: absolute;\n bottom: 24px;\n left: 0;\n}\n\n.artplayer-plugin-danmuku .apd-style .apd-style-panel .apd-style-panel-inner {\n background-color: #000000d9;\n border-radius: 3px;\n width: 100%;\n padding: 10px;\n}\n\n.artplayer-plugin-danmuku .apd-style:hover .apd-style-panel {\n opacity: 100;\n pointer-events: all;\n}\n\n.artplayer-plugin-danmuku .apd-colors {\n flex-wrap: wrap;\n gap: 8px;\n margin-top: 5px;\n display: flex;\n}\n\n.artplayer-plugin-danmuku .apd-colors .apd-color {\n cursor: pointer;\n border-radius: 2px;\n width: 16px;\n height: 16px;\n}\n\n.artplayer-plugin-danmuku .apd-colors .apd-color.apd-active {\n border: 1px solid #000;\n box-shadow: 0 0 0 1px #fff;\n}\n\n.artplayer-plugin-danmuku .apd-input {\n color: #fff;\n background-color: #0000;\n border: none;\n outline: none;\n flex: 1;\n width: auto;\n min-width: 0;\n height: 100%;\n line-height: 1;\n}\n\n.artplayer-plugin-danmuku .apd-input::placeholder {\n color: #ffffff80;\n}\n\n.artplayer-plugin-danmuku .apd-send {\n cursor: pointer;\n text-shadow: none;\n background-color: #00a1d6;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n flex-shrink: 0;\n justify-content: center;\n align-items: center;\n width: 60px;\n height: 100%;\n display: flex;\n}\n\n.artplayer-plugin-danmuku .apd-send.apd-lock {\n cursor: not-allowed;\n color: #666;\n background-color: #e7e7e7;\n}\n\n.art-controls-center .apd-emitter {\n flex: none;\n width: 260px;\n}\n\n.art-fullscreen .artplayer-plugin-danmuku, .art-fullscreen-web .artplayer-plugin-danmuku {\n gap: 16px;\n height: 38px;\n}\n\n.art-fullscreen .artplayer-plugin-danmuku .apd-config-icon, .art-fullscreen-web .artplayer-plugin-danmuku .apd-config-icon, .art-fullscreen .artplayer-plugin-danmuku .apd-toggle-off, .art-fullscreen-web .artplayer-plugin-danmuku .apd-toggle-off, .art-fullscreen .artplayer-plugin-danmuku .apd-toggle-on, .art-fullscreen-web .artplayer-plugin-danmuku .apd-toggle-on {\n width: 28px;\n height: 28px;\n}\n\n.art-fullscreen .artplayer-plugin-danmuku .apd-emitter, .art-fullscreen-web .artplayer-plugin-danmuku .apd-emitter {\n flex: none;\n width: 400px;\n}\n\n.art-video-player > .artplayer-plugin-danmuku {\n padding: 0 10px;\n position: absolute;\n bottom: -40px;\n left: 0;\n right: 0;\n}\n\n.art-video-player:has( > .artplayer-plugin-danmuku) {\n margin-bottom: 40px;\n}\n\n[data-danmuku-emitter=\"false\"] .apd-emitter {\n display: none !important;\n}\n\n[data-danmuku-emitter=\"false\"] .art-controls-center .artplayer-plugin-danmuku {\n justify-content: flex-end;\n gap: 18px;\n}\n\n[data-danmuku-emitter=\"false\"].art-fullscreen .art-controls-center .artplayer-plugin-danmuku, [data-danmuku-emitter=\"false\"].art-fullscreen-web .art-controls-center .artplayer-plugin-danmuku {\n gap: 24px;\n}\n\n[data-danmuku-theme=\"light\"] > .artplayer-plugin-danmuku .apd-icon {\n fill: #333;\n}\n\n[data-danmuku-theme=\"light\"] > .artplayer-plugin-danmuku .apd-emitter {\n background-color: #f1f2f3;\n}\n\n[data-danmuku-theme=\"light\"] > .artplayer-plugin-danmuku .apd-input {\n color: #000;\n}\n\n[data-danmuku-theme=\"light\"] > .artplayer-plugin-danmuku .apd-input::placeholder {\n color: #0000004d;\n}\n\n[data-danmuku-visible=\"false\"] .apd-toggle-off {\n display: block;\n}\n\n[data-danmuku-visible=\"false\"] .apd-toggle-on, [data-danmuku-visible=\"true\"] .apd-toggle-off {\n display: none;\n}\n\n[data-danmuku-visible=\"true\"] .apd-toggle-on {\n display: block;\n}\n\n[data-danmuku-anti-overlap=\"false\"] .apd-anti-overlap .apd-check-on {\n display: none;\n}\n\n[data-danmuku-anti-overlap=\"false\"] .apd-anti-overlap .apd-check-off, [data-danmuku-anti-overlap=\"true\"] .apd-anti-overlap .apd-check-on {\n display: block;\n}\n\n[data-danmuku-anti-overlap=\"true\"] .apd-anti-overlap .apd-check-off, [data-danmuku-sync-video=\"false\"] .apd-sync-video .apd-check-on {\n display: none;\n}\n\n[data-danmuku-sync-video=\"false\"] .apd-sync-video .apd-check-off, [data-danmuku-sync-video=\"true\"] .apd-sync-video .apd-check-on {\n display: block;\n}\n\n[data-danmuku-sync-video=\"true\"] .apd-sync-video .apd-check-off {\n display: none;\n}\n\n[data-danmuku-mode0=\"false\"] .apd-config-mode .apd-mode-0-off {\n display: block;\n}\n\n[data-danmuku-mode0=\"false\"] .apd-config-mode .apd-mode-0-on {\n display: none;\n}\n\n[data-danmuku-mode0=\"false\"] .art-danmuku [data-mode=\"0\"] {\n opacity: 0 !important;\n}\n\n[data-danmuku-mode0=\"true\"] .apd-config-mode .apd-mode-0-off {\n display: none;\n}\n\n[data-danmuku-mode0=\"true\"] .apd-config-mode .apd-mode-0-on {\n display: block;\n}\n\n[data-danmuku-mode=\"0\"] .apd-style-mode [data-mode=\"0\"] {\n color: #00a1d6;\n}\n\n[data-danmuku-mode=\"0\"] .apd-style-mode [data-mode=\"0\"] path {\n fill: #00a1d6;\n}\n\n[data-danmuku-mode1=\"false\"] .apd-config-mode .apd-mode-1-off {\n display: block;\n}\n\n[data-danmuku-mode1=\"false\"] .apd-config-mode .apd-mode-1-on {\n display: none;\n}\n\n[data-danmuku-mode1=\"false\"] .art-danmuku [data-mode=\"1\"] {\n opacity: 0 !important;\n}\n\n[data-danmuku-mode1=\"true\"] .apd-config-mode .apd-mode-1-off {\n display: none;\n}\n\n[data-danmuku-mode1=\"true\"] .apd-config-mode .apd-mode-1-on {\n display: block;\n}\n\n[data-danmuku-mode=\"1\"] .apd-style-mode [data-mode=\"1\"] {\n color: #00a1d6;\n}\n\n[data-danmuku-mode=\"1\"] .apd-style-mode [data-mode=\"1\"] path {\n fill: #00a1d6;\n}\n\n[data-danmuku-mode2=\"false\"] .apd-config-mode .apd-mode-2-off {\n display: block;\n}\n\n[data-danmuku-mode2=\"false\"] .apd-config-mode .apd-mode-2-on {\n display: none;\n}\n\n[data-danmuku-mode2=\"false\"] .art-danmuku [data-mode=\"2\"] {\n opacity: 0 !important;\n}\n\n[data-danmuku-mode2=\"true\"] .apd-config-mode .apd-mode-2-off {\n display: none;\n}\n\n[data-danmuku-mode2=\"true\"] .apd-config-mode .apd-mode-2-on {\n display: block;\n}\n\n[data-danmuku-mode=\"2\"] .apd-style-mode [data-mode=\"2\"] {\n color: #00a1d6;\n}\n\n[data-danmuku-mode=\"2\"] .apd-style-mode [data-mode=\"2\"] path {\n fill: #00a1d6;\n}\n"; },{}],"a9r0e":[function(require,module,exports) { diff --git a/docs/uncompiled/artplayer-plugin-danmuku/index.js.map b/docs/uncompiled/artplayer-plugin-danmuku/index.js.map index f92ddb3ba..32b6aea6f 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku/index.js.map +++ b/docs/uncompiled/artplayer-plugin-danmuku/index.js.map @@ -1 +1 @@ -{"mappings":"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","sources":["packages/artplayer-plugin-danmuku/src/index.js","packages/artplayer-plugin-danmuku/src/danmuku.js","packages/artplayer-plugin-danmuku/src/bilibili.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-54089e51cb2f5cb0.js","packages/artplayer-plugin-danmuku/src/setting.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e633bd0642c0f6d8.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-04a4ccdcbe82b9fc.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6d3492096472ebee.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4366f15bf5589225.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3a33dc2ac5713237.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7405474972f49ad1.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0c32b0aed97d3724.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bfb87ad7bdac92c0.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-90cca85b3e6e9028.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-44a2c233ef45411a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7d429a40e7f4f4ac.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-081fb7f7de945ff8.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-61cba682068f8950.js","packages/artplayer-plugin-danmuku/src/heatmap.js"],"sourcesContent":["import Danmuku from './danmuku';\nimport Setting from './setting';\nimport heatmap from './heatmap';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n const setting = new Setting(art, danmuku);\n\n if (danmuku.option.heatmap) {\n heatmap(art, danmuku, danmuku.option.heatmap);\n }\n\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n load: danmuku.load.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n reset: danmuku.reset.bind(danmuku),\n mount: setting.mount.bind(setting),\n get option() {\n return danmuku.option;\n },\n get isHide() {\n return danmuku.isHide;\n },\n get isStop() {\n return danmuku.isStop;\n },\n };\n };\n}\n\nartplayerPluginDanmuku.icons = Setting.icons;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n}\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\nimport workerText from 'bundle-text:./worker';\n\nexport default class Danmuku {\n constructor(art, option) {\n const { constructor, template } = art;\n\n this.utils = constructor.utils; // 工具库\n this.validator = constructor.validator; // 配置校验器\n this.$danmuku = template.$danmuku; // 弹幕层容器\n this.$player = template.$player; // 播放器容器\n\n this.art = art;\n this.queue = []; // 实际弹幕队列\n this.$refs = []; // 弹幕DOM节点池\n this.isStop = false; // 是否停止\n this.isHide = false; // 是否隐藏\n this.timer = null; // 定时器\n this.index = 0; // 弹幕索引\n\n // 格式化后的配置项\n this.option = Danmuku.option;\n\n // 弹幕状态池\n this.states = { wait: [], ready: [], emit: [], stop: [] };\n\n // 初始化配置\n this.config(option);\n\n // 创建 Web Worker, 用于计算弹幕的 top 值\n this.worker = new Worker(URL.createObjectURL(new Blob([workerText])));\n\n // 绑定公用事件\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.reset = this.reset.bind(this);\n this.resize = this.resize.bind(this);\n this.destroy = this.destroy.bind(this);\n\n // 监听事件\n art.on('video:play', this.start);\n art.on('video:playing', this.start);\n art.on('video:pause', this.stop);\n art.on('video:waiting', this.stop);\n art.on('destroy', this.destroy);\n art.on('resize', this.resize);\n\n // 开始加载弹幕\n this.load();\n }\n\n // 默认配置\n static get option() {\n return {\n danmuku: [], // 弹幕数据\n speed: 5, // 弹幕持续时间,范围在[1 ~ 10]\n margin: [10, '25%'], // 弹幕上下边距,支持像素数字和百分比\n opacity: 1, // 弹幕透明度,范围在[0 ~ 1]\n color: '#FFFFFF', // 默认弹幕颜色,可以被单独弹幕项覆盖\n mode: 0, // 默认弹幕模式: 0: 滚动,1: 顶部,2: 底部\n modes: [0, 1, 2], // 弹幕可见的模式\n fontSize: 25, // 弹幕字体大小,支持像素数字和百分比\n antiOverlap: true, // 弹幕是否防重叠\n synchronousPlayback: false, // 是否同步播放速度\n mount: undefined, // 弹幕发射器挂载点, 默认为播放器控制栏中部\n heatmap: false, // 是否开启热力图\n width: 512, // 当播放器宽度小于此值时,弹幕发射器置于播放器底部\n points: [], // 热力图数据\n filter: () => true, // 弹幕载入前的过滤器,只支持返回布尔值\n beforeEmit: () => true, // 弹幕发送前的过滤器,支持返回 Promise\n beforeVisible: () => true, // 弹幕显示前的过滤器,支持返回 Promise\n visible: true, // 弹幕层是否可见\n emitter: true, // 是否开启弹幕发射器\n maxLength: 200, // 弹幕输入框最大长度, 范围在[1 ~ 1000]\n lockTime: 5, // 输入框锁定时间,范围在[1 ~ 60]\n theme: 'dark', // 弹幕主题,支持 dark 和 light,只在自定义挂载时生效\n OPACITY: {}, // 不透明度配置项\n FONT_SIZE: {}, // 弹幕字号配置项\n MARGIN: {}, // 显示区域配置项\n SPEED: {}, // 弹幕速度配置项\n COLOR: [], // 颜色列表配置项\n };\n }\n\n // 配置校验\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n margin: 'array',\n opacity: 'number',\n color: 'string',\n mode: 'number',\n modes: 'array',\n fontSize: 'number|string',\n antiOverlap: 'boolean',\n synchronousPlayback: 'boolean',\n mount: '?htmldivelement|string',\n heatmap: 'object|boolean',\n width: 'number',\n points: 'array',\n filter: 'function',\n beforeEmit: 'function',\n beforeVisible: 'function',\n visible: 'boolean',\n emitter: 'boolean',\n maxLength: 'number',\n lockTime: 'number',\n theme: 'string',\n OPACITY: 'object',\n FONT_SIZE: 'object',\n MARGIN: 'object',\n SPEED: 'object',\n COLOR: 'array',\n };\n }\n\n // 初始弹幕样式\n static get cssText() {\n return `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n }\n\n // 是否在移动端使用了自动旋屏,会影响弹幕的left和top值\n get isRotate() {\n return this.art.plugins?.autoOrientation?.state;\n }\n\n // 计算上空白边距\n get marginTop() {\n const { clamp } = this.utils;\n const value = this.option.margin[0];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n // 计算下空白边距\n get marginBottom() {\n const { clamp } = this.utils;\n const value = this.option.margin[1];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[1];\n }\n\n // 计算弹幕字体大小\n get fontSize() {\n const { clamp } = this.utils;\n const { clientHeight } = this.$player;\n\n const fontSize = this.option.fontSize;\n\n if (typeof fontSize === 'number') {\n return Math.round(clamp(fontSize, 12, clientHeight));\n }\n\n if (typeof fontSize === 'string' && fontSize.endsWith('%')) {\n const ratio = parseFloat(fontSize) / 100;\n return Math.round(clamp(clientHeight * ratio, 12, clientHeight));\n }\n\n return Danmuku.option.fontSize;\n }\n\n // 获取弹幕DOM节点\n get $ref() {\n const $ref = this.$refs.pop() || document.createElement('div');\n $ref.style.cssText = Danmuku.cssText;\n $ref.dataset.mode = '';\n $ref.className = '';\n return $ref;\n }\n\n // 获取准备好发送的弹幕\n get readys() {\n const { currentTime } = this.art;\n\n const result = [];\n\n // 有的是ready状态:之前因为弹幕太多而暂停发送的弹幕\n this.filter('ready', (danmu) => result.push(danmu));\n\n // 有的是wait状态:符合时间范围的弹幕\n this.filter('wait', (danmu) => {\n if (currentTime + 0.1 >= danmu.time && danmu.time >= currentTime - 0.1) {\n result.push(danmu);\n }\n });\n\n return result;\n }\n\n // 可见的弹幕的数据,用于计算下一个弹幕的top值\n get visibles() {\n const result = [];\n const { clientWidth } = this.$player;\n const clientLeft = this.getLeft(this.$player);\n\n this.filter('emit', (danmu) => {\n const top = danmu.$ref.offsetTop;\n const left = this.getLeft(danmu.$ref) - clientLeft;\n const height = danmu.$ref.clientHeight;\n const width = danmu.$ref.clientWidth;\n const distance = left + width;\n const right = clientWidth - distance;\n const speed = distance / danmu.$restTime;\n\n const emit = {};\n emit.top = top;\n emit.left = left;\n emit.height = height;\n emit.width = width;\n emit.right = right;\n emit.speed = speed;\n emit.distance = distance;\n emit.time = danmu.$restTime;\n emit.mode = danmu.mode;\n\n result.push(emit);\n });\n\n return result;\n }\n\n // 计算弹幕速度\n get speed() {\n return this.option.synchronousPlayback && this.art.playbackRate\n ? this.option.speed / Number(this.art.playbackRate)\n : this.option.speed;\n }\n\n // 加载弹幕\n async load(danmuku) {\n const { errorHandle } = this.utils;\n\n let danmus = [];\n const target = danmuku || this.option.danmuku;\n\n try {\n if (typeof target === 'function') {\n danmus = await target(); // 异步函数获取\n } else if (target instanceof Promise) {\n danmus = await target; // 从 Promise 对象获取\n } else if (typeof target === 'string') {\n danmus = await bilibiliDanmuParseFromUrl(target); // 从B站xml链接解析\n } else if (Array.isArray(target)) {\n danmus = target; // 直接传入数组\n }\n\n errorHandle(Array.isArray(danmus), 'Danmuku need return an array as result');\n\n // 假如没有传入弹幕参数,则清空弹幕,否则追加弹幕\n if (danmuku === undefined) {\n this.reset(); // 重置弹幕\n this.queue = []; // 清空弹幕队列\n this.states = { wait: [], ready: [], emit: [], stop: [] }; // 清空弹幕状态池\n this.$refs = []; // 清空弹幕DOM节点池\n this.$danmuku.innerText = ''; // 清空弹幕层\n }\n\n // 逐个验证原始弹幕并转换到弹幕队列\n for (let index = 0; index < danmus.length; index++) {\n const danmu = danmus[index];\n await this.emit(danmu);\n }\n\n this.art.emit('artplayerPluginDanmuku:loaded', this.queue);\n } catch (error) {\n this.art.emit('artplayerPluginDanmuku:error', error);\n throw error;\n }\n\n return this;\n }\n\n // 把原始弹幕转换到弹幕队列\n async emit(danmu) {\n const { clamp } = this.utils;\n\n this.validator(danmu, {\n text: 'string', // 弹幕文本\n mode: '?number', // 弹幕模式: 0: 滚动,1: 顶部,2: 底部\n color: '?string', // 弹幕颜色\n time: '?number', // 弹幕时间\n border: '?boolean', // 弹幕是否有边框\n style: '?object', // 弹幕额外样式\n });\n\n // 弹幕文本为空则直接忽略\n if (!danmu.text.trim()) return this;\n\n // 设置弹幕时间,如果没有则默认为当前时间加 0.5 秒\n if (danmu.time) {\n danmu.time = clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = this.art.currentTime + 0.5;\n }\n\n // 设置弹幕模式,如果没有则默认为全局配置\n if (danmu.mode === undefined) {\n danmu.mode = this.option.mode;\n }\n\n // 设置弹幕单独样式,如果没有则默认为空对象\n if (danmu.style === undefined) {\n danmu.style = {};\n }\n\n // 设置弹幕颜色,如果没有则默认为全局配置\n if (danmu.color === undefined) {\n danmu.color = this.option.color;\n }\n\n // 弹幕模式只能是 0, 1, 2\n if (![0, 1, 2].includes(danmu.mode)) return this;\n\n // 自定义弹幕过滤函数\n if (!this.option.filter(danmu)) return this;\n\n // 添加自定义属性\n const item = {\n ...danmu,\n $state: 'wait', // 弹幕初始状态\n $id: this.index++, // 弹幕唯一标识\n $ref: null, // 弹幕 DOM 节点\n $restTime: 0, // 弹幕剩余时间\n $lastStartTime: 0, // 弹幕上次开始时间\n };\n\n // 转换为wait状态\n this.setState(item, 'wait');\n\n // 添加到实际弹幕队列\n this.queue.push(item);\n\n // 弹幕有四个状态:\n // - wait: 弹幕还未开始显示,没有被添加到 DOM 中\n // - ready: 弹幕准备好显示,没有被添加到 DOM 中\n // - emit: 弹幕正在显示,已经被添加到 DOM 中\n // - stop: 弹幕正在停止显示,已经被添加到 DOM 中\n\n return this;\n }\n\n // 动态配置\n config(option) {\n const { clamp } = this.utils;\n const { $controlsCenter } = this.art.template;\n\n // 判断配置项是否有变化\n const changed = Object.keys(option).some(\n (key) => JSON.stringify(this.option[key]) !== JSON.stringify(option[key]),\n );\n\n // 没有变化则直接返回\n if (!changed) return this;\n\n // 更新配置项\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n this.validator(this.option, Danmuku.scheme);\n\n this.option.mode = clamp(this.option.mode, 0, 2);\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.lockTime = clamp(this.option.lockTime, 1, 60);\n this.option.maxLength = clamp(this.option.maxLength, 1, 1000);\n this.option.mount = this.option.mount || $controlsCenter;\n\n // 动态配置有字体大小,需要重新渲染\n if (option.fontSize) {\n this.reset();\n }\n\n // 通过配置项控制弹幕的显示和隐藏\n if (this.option.visible) {\n this.show();\n } else {\n this.hide();\n }\n\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n\n return this;\n }\n\n // 计算DOM的left值,受到旋屏影响\n getLeft($ref) {\n const rect = $ref.getBoundingClientRect();\n return this.isRotate ? rect.top : rect.left;\n }\n\n // 复杂运算交给 Web Worker 处理\n postMessage(message = {}) {\n return new Promise((resolve) => {\n message.id = Date.now(); // 生成唯一标识\n this.worker.postMessage(message);\n this.worker.onmessage = (event) => {\n const { data } = event;\n // 判断是否是当前的消息\n if (data.id === message.id) {\n resolve(data);\n }\n };\n });\n }\n\n // 根据状态获取弹幕\n filter(state, callback) {\n const danmus = this.states[state] || [];\n for (let index = 0; index < danmus.length; index++) {\n callback(danmus[index]);\n }\n return danmus;\n }\n\n // 设置弹幕状态\n setState(danmu, state) {\n // 从原状态池中删除\n this.states[danmu.$state] = this.states[danmu.$state].filter((item) => item !== danmu);\n\n // 设置新状态\n danmu.$state = state;\n\n // 设置DOM节点状态\n if (danmu.$ref) {\n danmu.$ref.dataset.state = state;\n }\n\n // 添加到新状态池中\n this.states[state].push(danmu);\n }\n\n // 重置弹幕到wait状态,回收弹幕DOM节点\n makeWait(danmu) {\n this.setState(danmu, 'wait');\n if (danmu.$ref) {\n danmu.$ref.style.cssText = Danmuku.cssText;\n danmu.$ref.style.visibility = 'hidden';\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n\n // 实时更新弹幕\n update() {\n const { setStyles } = this.utils;\n\n this.timer = window.requestAnimationFrame(async () => {\n if (this.art.playing && !this.isHide) {\n // 实时计算弹幕的剩余显示时间\n this.filter('emit', (danmu) => {\n const emitTime = (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$restTime -= emitTime;\n danmu.$lastStartTime = Date.now();\n // 超过时间即重置弹幕\n if (danmu.$restTime <= 0) {\n this.makeWait(danmu);\n }\n });\n\n // 获取准备好发送的弹幕,可能包含ready和wait状态的弹幕\n const readys = this.readys;\n for (let index = 0; index < readys.length; index++) {\n const danmu = readys[index];\n\n // 弹幕发送前的过滤器\n const state = await this.option.beforeVisible(danmu);\n\n if (state) {\n const { clientWidth, clientHeight } = this.$player;\n danmu.$ref = this.$ref; // 获取弹幕DOM节点\n danmu.$ref.innerText = danmu.text; // 设置弹幕文本\n\n // 提前添加到弹幕层中,用于计算top值\n this.$danmuku.appendChild(danmu.$ref);\n\n // 设置初始弹幕样式\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.fontSize}px`;\n danmu.$ref.style.color = danmu.color;\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : null;\n danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null;\n\n // 设置单独弹幕样式\n setStyles(danmu.$ref, danmu.style);\n\n // 记录弹幕时间戳\n danmu.$lastStartTime = Date.now();\n\n // 计算弹幕剩余时间\n danmu.$restTime = this.speed;\n\n // 计算弹幕滚动的距离\n const distance = clientWidth + danmu.$ref.clientWidth;\n\n // 计算弹幕的top值\n const { result: top } = await this.postMessage({\n type: 'getDanmuTop',\n target: {\n mode: danmu.mode,\n height: danmu.$ref.clientHeight,\n speed: distance / danmu.$restTime,\n }, // 当前弹幕信息\n visibles: this.visibles, // 可见的弹幕的数据\n antiOverlap: this.option.antiOverlap,\n clientWidth: clientWidth,\n clientHeight: clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (danmu.$ref) {\n if (!this.isStop && top !== undefined) {\n this.setState(danmu, 'emit'); // 转换为emit状态\n danmu.$ref.style.top = `${top}px`;\n danmu.$ref.style.visibility = 'visible';\n danmu.$ref.dataset.mode = danmu.mode; // CSS控制模式的显示和隐藏\n\n switch (danmu.mode) {\n // 滚动的弹幕\n case 0: {\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = `translateX(${-distance}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n // falls through\n case 2:\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.marginLeft = `-${danmu.$ref.clientWidth / 2}px`;\n break;\n default:\n break;\n }\n\n this.art.emit('artplayerPluginDanmuku:visible', danmu);\n } else {\n // 假如弹幕已经停止或者没有 top 值,则重置弹幕为ready状态,回收弹幕DOM节点,等待下次发送\n this.setState(danmu, 'ready');\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n }\n }\n }\n\n // 递归调用\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n // 重置正在显示的弹幕: stop/emit 状态的弹幕\n resize() {\n const { clientWidth } = this.$player;\n\n this.filter('stop', (danmu) => {\n switch (danmu.mode) {\n // 滚动的弹幕\n case 0:\n danmu.$ref.style.left = `${clientWidth}px`;\n break;\n default:\n break;\n }\n });\n\n this.filter('emit', (danmu) => {\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n // 滚动的弹幕\n case 0: {\n const distance = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.transform = `translateX(${-distance}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n }\n\n // 继续弹幕\n continue() {\n const { clientWidth } = this.$player;\n this.filter('stop', (danmu) => {\n this.setState(danmu, 'emit'); // 转换为emit状态\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n // 继续滚动的弹幕\n case 0: {\n const distance = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-distance}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n // 暂停弹幕\n suspend() {\n const { clientWidth } = this.$player;\n this.filter('emit', (danmu) => {\n this.setState(danmu, 'stop'); // 转换为stop状态\n switch (danmu.mode) {\n // 停止滚动的弹幕\n case 0: {\n const translateX = clientWidth - (this.getLeft(danmu.$ref) - this.getLeft(this.$player));\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.timer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n reset() {\n this.queue.forEach((danmu) => this.makeWait(danmu));\n this.art.emit('artplayerPluginDanmuku:reset');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.$danmuku.style.opacity = 1;\n this.option.visible = true;\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.$danmuku.style.opacity = 0;\n this.option.visible = false;\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n destroy() {\n this.stop();\n this.worker.terminate();\n this.art.off('video:play', this.start);\n this.art.off('video:playing', this.start);\n this.art.off('video:pause', this.stop);\n this.art.off('video:waiting', this.stop);\n this.art.off('resize', this.reset);\n this.art.off('destroy', this.destroy);\n this.art.emit('artplayerPluginDanmuku:destroy');\n }\n}\n","function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n return 2;\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nfunction bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const reg = new RegExp(/.+?)\"(?: .*?)?>(?.+?)<\\/d>/gs);\n const matches = xmlString.matchAll(reg);\n return Array.from(matches)\n .map((match) => {\n const attr = match.groups.p.split(',');\n if (attr.length >= 8) {\n const text = match.groups.text\n .trim()\n .replaceAll('"', '\"')\n .replaceAll(''', \"'\")\n .replaceAll('<', '<')\n .replaceAll('>', '>')\n .replaceAll('&', '&');\n\n return {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n };\n } else {\n return null;\n }\n })\n .filter(Boolean);\n}\n\nfunction onmessage({ data }) {\n const { xml, id } = data;\n if (!id || !xml) return;\n const danmus = bilibiliDanmuParseFromXml(xml);\n self.postMessage({ danmus, id });\n}\n\nfunction createWorker() {\n const workerText = `\n ${getMode.toString()}\n ${bilibiliDanmuParseFromXml.toString()}\n onmessage = ${onmessage.toString()}\n `;\n const blob = new Blob([workerText], { type: 'application/javascript' });\n return new Worker(URL.createObjectURL(blob));\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n const res = await fetch(url);\n const xml = await res.text();\n\n try {\n const worker = createWorker();\n worker.onmessage = (event) => {\n const { danmus, id } = event.data;\n if (!id || !danmus) return;\n resolve(danmus);\n worker.terminate();\n };\n worker.postMessage({ xml, id: Date.now() });\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n const danmus = bilibiliDanmuParseFromXml(xml);\n resolve(danmus);\n }\n });\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","module.exports = \"7a58a7689dcfe725\";","import style from 'bundle-text:./style.less';\nimport $on from 'bundle-text:./img/on.svg';\nimport $off from 'bundle-text:./img/off.svg';\nimport $config from 'bundle-text:./img/config.svg';\nimport $style from 'bundle-text:./img/style.svg';\nimport $mode_0_off from 'bundle-text:./img/mode_0_off.svg';\nimport $mode_0_on from 'bundle-text:./img/mode_0_on.svg';\nimport $mode_1_off from 'bundle-text:./img/mode_1_off.svg';\nimport $mode_1_on from 'bundle-text:./img/mode_1_on.svg';\nimport $mode_2_off from 'bundle-text:./img/mode_2_off.svg';\nimport $mode_2_on from 'bundle-text:./img/mode_2_on.svg';\nimport $check_on from 'bundle-text:./img/check_on.svg';\nimport $check_off from 'bundle-text:./img/check_off.svg';\n\nexport default class Setting {\n constructor(art, danmuku) {\n this.art = art;\n this.danmuku = danmuku;\n this.utils = art.constructor.utils;\n\n const { setStyle } = this.utils;\n const { $controlsCenter } = art.template;\n setStyle($controlsCenter, 'display', 'flex');\n\n this.template = {\n $controlsCenter,\n $mount: $controlsCenter,\n $danmuku: null,\n $toggle: null,\n $config: null,\n $configPanel: null,\n $configModes: null,\n $style: null,\n $stylePanel: null,\n $styleModes: null,\n $colors: null,\n $opacitySlider: null,\n $opacityValue: null,\n $marginSlider: null,\n $marginValue: null,\n $fontSizeSlider: null,\n $fontSizeValue: null,\n $speedSlider: null,\n $speedValue: null,\n $input: null,\n $send: null,\n };\n\n this.slider = {\n opacity: null,\n margin: null,\n fontSize: null,\n speed: null,\n };\n\n this.emitting = false;\n this.isLock = false;\n this.timer = null;\n\n this.createTemplate();\n this.createSliders();\n this.createEvents();\n\n this.mount(this.option.mount);\n\n art.on('resize', () => this.resize());\n art.on('fullscreen', (state) => this.onFullscreen(state));\n art.on('fullscreenWeb', (state) => this.onFullscreen(state));\n\n art.proxy(this.template.$config, 'mouseenter', () => {\n this.onMouseEnter({\n $control: this.template.$config,\n $panel: this.template.$configPanel,\n });\n });\n\n art.proxy(this.template.$style, 'mouseenter', () => {\n this.onMouseEnter({\n $control: this.template.$style,\n $panel: this.template.$stylePanel,\n });\n });\n }\n\n static get icons() {\n return {\n $on,\n $off,\n $config,\n $style,\n $mode_0_off,\n $mode_0_on,\n $mode_1_off,\n $mode_1_on,\n $mode_2_off,\n $mode_2_on,\n $check_on,\n $check_off,\n };\n }\n\n get option() {\n return this.danmuku.option;\n }\n\n get outside() {\n return this.template.$mount !== this.template.$controlsCenter;\n }\n\n get TEMPLATE() {\n const { option } = this;\n return `\n
      \n ${$on}${$off}\n
      \n
      \n ${$config}\n
      \n
      \n
      \n 按类型屏蔽\n
      \n
      \n ${$mode_0_off}${$mode_0_on}\n
      滚动
      \n
      \n
      \n ${$mode_1_off}${$mode_1_on}\n
      顶部
      \n
      \n
      \n ${$mode_2_off}${$mode_2_on}\n
      底部
      \n
      \n
      \n
      \n
      \n
      \n ${$check_on}${$check_off}\n 防止弹幕重叠\n
      \n
      \n ${$check_on}${$check_off}\n 同步视频速度\n
      \n
      \n
      \n 不透明度\n
      \n
      未知
      \n
      \n
      \n 显示区域\n
      \n
      未知
      \n
      \n
      \n 弹幕字号\n
      \n
      未知
      \n
      \n
      \n 弹幕速度\n
      \n
      未知
      \n
      \n
      \n
      \n
      \n
      \n
      \n ${$style}\n
      \n
      \n
      \n 模式\n
      \n
      \n ${$mode_0_on}\n
      滚动
      \n
      \n
      \n ${$mode_1_on}\n
      顶部
      \n
      \n
      \n ${$mode_2_on}\n
      底部
      \n
      \n
      \n
      \n
      \n 颜色\n
      \n ${this.COLOR.map((color) => `
      `).join('')}\n
      \n
      \n
      \n
      \n
      \n \n
      发送
      \n
      \n `;\n }\n\n get OPACITY() {\n return {\n min: 0,\n max: 100,\n steps: [],\n ...this.option.OPACITY,\n };\n }\n\n get FONT_SIZE() {\n return {\n min: 12,\n max: 120,\n steps: [],\n ...this.option.FONT_SIZE,\n };\n }\n\n get MARGIN() {\n return {\n min: 0,\n max: 3,\n steps: [\n {\n name: '1/4',\n value: [10, '75%'],\n },\n {\n name: '半屏',\n value: [10, '50%'],\n },\n {\n name: '3/4',\n value: [10, '25%'],\n },\n {\n name: '满屏',\n value: [10, 10],\n },\n ],\n ...this.option.MARGIN,\n };\n }\n\n get SPEED() {\n return {\n min: 0,\n max: 4,\n steps: [\n {\n name: '极慢',\n value: 10,\n },\n {\n name: '较慢',\n value: 7.5,\n hide: true,\n },\n {\n name: '适中',\n value: 5,\n },\n {\n name: '较快',\n value: 2.5,\n hide: true,\n },\n {\n name: '极快',\n value: 1,\n },\n ],\n ...this.option.SPEED,\n };\n }\n\n get COLOR() {\n return this.option.COLOR.length\n ? this.option.COLOR\n : [\n '#FE0302',\n '#FF7204',\n '#FFAA02',\n '#FFD302',\n '#FFFF00',\n '#A0EE00',\n '#00CD00',\n '#019899',\n '#4266BE',\n '#89D5FF',\n '#CC0273',\n '#222222',\n '#9B9B9B',\n '#FFFFFF',\n ];\n }\n\n query(selector) {\n const { query } = this.utils;\n const { $danmuku } = this.template;\n return query(selector, $danmuku);\n }\n\n append(el, target) {\n const { append } = this.utils;\n const children = [...el.children];\n if (children.some((item) => item === target)) return;\n append(el, target);\n }\n\n setData(key, value) {\n const { $player } = this.art.template;\n const { $mount } = this.template;\n $player.dataset[key] = value;\n if (this.outside) {\n $mount.dataset[key] = value;\n }\n }\n\n createTemplate() {\n const { createElement, tooltip } = this.utils;\n\n const $danmuku = createElement('div');\n $danmuku.className = 'artplayer-plugin-danmuku';\n $danmuku.innerHTML = this.TEMPLATE;\n\n this.template.$danmuku = $danmuku;\n this.template.$toggle = this.query('.apd-toggle');\n this.template.$config = this.query('.apd-config');\n this.template.$configPanel = this.query('.apd-config-panel');\n this.template.$configModes = this.query('.apd-config-mode .apd-modes');\n this.template.$style = this.query('.apd-style');\n this.template.$stylePanel = this.query('.apd-style-panel');\n this.template.$styleModes = this.query('.apd-style-mode .apd-modes');\n this.template.$colors = this.query('.apd-colors');\n this.template.$antiOverlap = this.query('.apd-anti-overlap');\n this.template.$syncVideo = this.query('.apd-sync-video');\n this.template.$opacitySlider = this.query('.apd-config-opacity .apd-slider');\n this.template.$opacityValue = this.query('.apd-config-opacity .apd-value');\n this.template.$marginSlider = this.query('.apd-config-margin .apd-slider');\n this.template.$marginValue = this.query('.apd-config-margin .apd-value');\n this.template.$fontSizeSlider = this.query('.apd-config-fontSize .apd-slider');\n this.template.$fontSizeValue = this.query('.apd-config-fontSize .apd-value');\n this.template.$speedSlider = this.query('.apd-config-speed .apd-slider');\n this.template.$speedValue = this.query('.apd-config-speed .apd-value');\n this.template.$input = this.query('.apd-input');\n this.template.$send = this.query('.apd-send');\n\n const { $toggle } = this.template;\n\n this.art.on('artplayerPluginDanmuku:show', () => {\n tooltip($toggle, '关闭弹幕');\n });\n\n this.art.on('artplayerPluginDanmuku:hide', () => {\n tooltip($toggle, '打开弹幕');\n });\n }\n\n createEvents() {\n const { $toggle, $configModes, $styleModes, $colors, $antiOverlap, $syncVideo, $send, $input } = this.template;\n\n this.art.proxy($toggle, 'click', () => {\n this.danmuku.config({\n visible: !this.option.visible,\n });\n this.reset();\n });\n\n this.art.proxy($configModes, 'click', (event) => {\n const $mode = event.target.closest('.apd-mode');\n if (!$mode) return;\n const mode = Number($mode.dataset.mode);\n if (this.option.modes.includes(mode)) {\n this.danmuku.config({\n modes: this.option.modes.filter((m) => m !== mode),\n });\n } else {\n this.danmuku.config({\n modes: [...this.option.modes, mode],\n });\n }\n this.reset();\n });\n\n this.art.proxy($antiOverlap, 'click', () => {\n this.danmuku.config({\n antiOverlap: !this.option.antiOverlap,\n });\n this.reset();\n });\n\n this.art.proxy($syncVideo, 'click', () => {\n this.danmuku.config({\n synchronousPlayback: !this.option.synchronousPlayback,\n });\n this.reset();\n });\n\n this.art.proxy($styleModes, 'click', (event) => {\n const $mode = event.target.closest('.apd-mode');\n if (!$mode) return;\n const mode = Number($mode.dataset.mode);\n this.danmuku.config({\n mode: mode,\n });\n this.reset();\n });\n\n this.art.proxy($colors, 'click', (event) => {\n const $color = event.target.closest('.apd-color');\n if (!$color) return;\n this.danmuku.config({\n color: $color.dataset.color,\n });\n this.reset();\n });\n\n this.art.proxy($send, 'click', () => this.emit());\n\n this.art.proxy($input, 'keypress', (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n this.emit();\n }\n });\n }\n\n createSliders() {\n this.slider.opacity = this.createSlider({\n ...this.OPACITY,\n container: this.template.$opacitySlider,\n findIndex: () => {\n return Math.round(this.option.opacity * 100);\n },\n onChange: (index) => {\n const { $opacityValue } = this.template;\n $opacityValue.textContent = `${index}%`;\n this.danmuku.config({\n opacity: index / 100,\n });\n },\n });\n\n this.slider.margin = this.createSlider({\n ...this.MARGIN,\n container: this.template.$marginSlider,\n findIndex: () => {\n return this.MARGIN.steps.findIndex(\n (item) => item.value[0] === this.option.margin[0] && item.value[1] === this.option.margin[1],\n );\n },\n onChange: (index) => {\n const margin = this.MARGIN.steps[index];\n if (!margin) return;\n const { $marginValue } = this.template;\n $marginValue.textContent = margin.name;\n this.danmuku.config({\n margin: margin.value,\n });\n },\n });\n\n this.slider.fontSize = this.createSlider({\n ...this.FONT_SIZE,\n container: this.template.$fontSizeSlider,\n findIndex: () => {\n return this.danmuku.fontSize;\n },\n onChange: (index) => {\n const { $fontSizeValue } = this.template;\n $fontSizeValue.textContent = `${index}px`;\n if (index === this.danmuku.fontSize) return;\n this.danmuku.config({\n fontSize: index,\n });\n },\n });\n\n this.slider.speed = this.createSlider({\n ...this.SPEED,\n container: this.template.$speedSlider,\n findIndex: () => {\n return this.SPEED.steps.findIndex((item) => item.value === this.option.speed);\n },\n onChange: (index) => {\n const speed = this.SPEED.steps[index];\n if (!speed) return;\n const { $speedValue } = this.template;\n $speedValue.textContent = speed.name;\n this.danmuku.config({\n speed: speed.value,\n });\n },\n });\n }\n\n createSlider({ min, max, container, findIndex, onChange, steps = [] }) {\n const { query, clamp } = this.utils;\n\n container.innerHTML = `\n
      \n
      \n ${steps.map(() => `
      `).join('')}\n
      \n
      \n
      \n
      \n
      \n ${steps.map((step) => (step.hide ? '' : `
      ${step.name}
      `)).join('')}\n
      \n `;\n\n const $dot = query('.apd-slider-dot', container);\n const $progress = query('.apd-slider-progress', container);\n\n let isDroging = false;\n\n function reset(index = findIndex()) {\n if (index < min || index > max) return;\n const percentage = (index - min) / (max - min);\n $dot.style.left = `${percentage * 100}%`;\n if (steps.length === 0) {\n $progress.style.width = $dot.style.left;\n }\n onChange(index);\n }\n\n function updateLeft(event) {\n const { left, width } = container.getBoundingClientRect();\n const value = clamp(event.clientX - left, 0, width);\n const index = Math.round((value / width) * (max - min) + min);\n reset(index);\n }\n\n this.art.proxy(container, 'click', (event) => {\n updateLeft(event);\n });\n\n this.art.proxy(container, 'mousedown', (event) => {\n isDroging = event.button === 0;\n });\n\n this.art.on('document:mousemove', (event) => {\n if (isDroging) {\n updateLeft(event);\n }\n });\n\n this.art.on('document:mouseup', (event) => {\n if (isDroging) {\n isDroging = false;\n updateLeft(event);\n }\n });\n\n return { reset };\n }\n\n onFullscreen(state) {\n const { $danmuku, $controlsCenter, $mount } = this.template;\n if (this.outside) {\n if (state) {\n this.append($controlsCenter, $danmuku);\n } else {\n this.append($mount, $danmuku);\n }\n } else {\n this.append($controlsCenter, $danmuku);\n }\n }\n\n onMouseEnter({ $control, $panel }) {\n const { $player } = this.art.template;\n const controlRect = $control.getBoundingClientRect();\n const panelRect = $panel.getBoundingClientRect();\n const playerRect = $player.getBoundingClientRect();\n\n const half = panelRect.width / 2 - controlRect.width / 2;\n const left = playerRect.left - (controlRect.left - half);\n const right = controlRect.right + half - playerRect.right;\n\n if (left > 0) {\n $panel.style.left = `${-half + left}px`;\n } else if (right > 0) {\n $panel.style.left = `${-half - right}px`;\n } else {\n $panel.style.left = `${-half}px`;\n }\n }\n\n async emit() {\n const { $input } = this.template;\n\n const text = $input.value.trim();\n if (!text.length) return;\n if (this.isLock) return;\n if (this.emitting) return;\n\n const danmu = {\n text: text,\n mode: this.option.mode,\n color: this.option.color,\n time: this.art.currentTime,\n };\n\n try {\n this.emitting = true;\n const state = await this.option.beforeEmit(danmu);\n this.emitting = false;\n\n if (state !== true) return;\n\n danmu.border = true;\n delete danmu.time;\n this.danmuku.emit(danmu);\n $input.value = '';\n\n this.lock();\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n this.emitting = false;\n }\n }\n\n lock() {\n const { addClass } = this.utils;\n const { $send } = this.template;\n\n this.isLock = true;\n let time = this.option.lockTime;\n $send.innerText = time;\n addClass($send, 'apd-lock');\n\n const loop = () => {\n this.timer = setTimeout(() => {\n if (time === 0) {\n this.unlock();\n } else {\n time -= 1;\n $send.innerText = time;\n loop();\n }\n }, 1000);\n };\n\n loop();\n }\n\n unlock() {\n const { removeClass } = this.utils;\n const { $send } = this.template;\n clearTimeout(this.timer);\n this.isLock = false;\n $send.innerText = '发送';\n removeClass($send, 'apd-lock');\n }\n\n resize() {\n if (this.outside) return;\n if (this.art.fullscreen) return;\n if (this.art.fullscreenWeb) return;\n const { $player, $controlsCenter } = this.art.template;\n const { $danmuku } = this.template;\n if (this.art.width < this.option.width) {\n this.append($player, $danmuku);\n } else {\n this.append($controlsCenter, $danmuku);\n }\n }\n\n reset() {\n const { inverseClass, tooltip } = this.utils;\n const { $toggle, $colors } = this.template;\n\n this.slider.opacity.reset();\n this.slider.margin.reset();\n this.slider.fontSize.reset();\n this.slider.speed.reset();\n\n this.setData('danmukuVisible', this.option.visible);\n this.setData('danmukuMode', this.option.mode);\n this.setData('danmukuColor', this.option.color);\n this.setData('danmukuMode0', this.option.modes.includes(0));\n this.setData('danmukuMode1', this.option.modes.includes(1));\n this.setData('danmukuMode2', this.option.modes.includes(2));\n this.setData('danmukuAntiOverlap', this.option.antiOverlap);\n this.setData('danmukuSyncVideo', this.option.synchronousPlayback);\n this.setData('danmukuTheme', this.option.theme);\n this.setData('danmukuEmitter', this.option.emitter);\n\n const colors = $colors.children;\n const $color = Array.from(colors).find((item) => item.dataset.color === this.option.color.toUpperCase());\n $color && inverseClass($color, 'apd-active');\n\n tooltip($toggle, this.option.visible ? '关闭弹幕' : '打开弹幕');\n\n this.resize();\n }\n\n mount(target) {\n const { errorHandle } = this.utils;\n const $el = typeof target === 'string' ? document.querySelector(target) : target;\n errorHandle($el, `Can not find the mount point: ${target}`);\n this.append($el, this.template.$danmuku);\n this.template.$mount = $el;\n this.reset();\n }\n}\n\nif (typeof document !== 'undefined') {\n const id = 'artplayer-plugin-danmuku';\n const $style = document.getElementById(id);\n if ($style) {\n $style.textContent = style;\n } else {\n const $style = document.createElement('style');\n $style.id = id;\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n","module.exports = \"c09c1588fb4faeee\";","module.exports = \"9cb90863dc3c9a4a\";","module.exports = \"628c4c1d1f0914ae\";","module.exports = \"4a37db4fe35f5e6c\";","module.exports = \"8041896cc7b87454\";","module.exports = \"27fd2e805f7e2f23\";","module.exports = \"909d5129494f122f\";","module.exports = \"b7497c63c700b215\";","module.exports = \"46d7b39385b87ee2\";","module.exports = \"cef7220743b52d16\";","module.exports = \"ff5fa44c0fa0d3e8\";","module.exports = \"1a75f737d749272f\";","module.exports = \"24113e84ce531d81\";","const lib = {\n map(value, inMin, inMax, outMin, outMax) {\n return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;\n },\n range(start, end, tick) {\n const s = Math.round(start / tick) * tick;\n return Array.from(\n {\n length: Math.floor((end - start) / tick),\n },\n (v, k) => {\n return k * tick + s;\n },\n );\n },\n};\n\nconst line = (pointA, pointB) => {\n const lengthX = pointB[0] - pointA[0];\n const lengthY = pointB[1] - pointA[1];\n return {\n length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),\n angle: Math.atan2(lengthY, lengthX),\n };\n};\n\nexport default function heatmap(art, danmuku, option) {\n const { query } = art.constructor.utils;\n\n art.controls.add({\n name: 'heatmap',\n position: 'top',\n html: '',\n style: {\n position: 'absolute',\n top: '-100px',\n left: '0px',\n right: '0px',\n height: '100px',\n width: '100%',\n pointerEvents: 'none',\n },\n mounted($heatmap) {\n let $start = null;\n let $stop = null;\n\n function update(arg = []) {\n $start = null;\n $stop = null;\n $heatmap.innerHTML = '';\n\n if (!art.duration || art.option.isLive) return;\n\n const svg = {\n w: $heatmap.offsetWidth,\n h: $heatmap.offsetHeight,\n };\n\n const options = {\n xMin: 0,\n xMax: svg.w,\n yMin: 0,\n yMax: 128,\n scale: 0.25,\n opacity: 0.2,\n minHeight: Math.floor(svg.h * 0.05),\n sampling: Math.floor(svg.w / 100),\n smoothing: 0.2,\n flattening: 0.2,\n };\n\n if (typeof option === 'object') {\n Object.assign(options, option);\n }\n\n let points = [];\n\n if (Array.isArray(arg) && arg.length) {\n points = [...arg];\n } else {\n const gap = art.duration / svg.w;\n for (let x = 0; x <= svg.w; x += options.sampling) {\n const y = danmuku.queue.filter(\n ({ time }) => time > x * gap && time <= (x + options.sampling) * gap,\n ).length;\n points.push([x, y]);\n }\n }\n\n if (points.length === 0) return;\n\n const lastPoint = points[points.length - 1];\n const lastX = lastPoint[0];\n const lastY = lastPoint[1];\n if (lastX !== svg.w) {\n points.push([svg.w, lastY]);\n }\n\n const yPoints = points.map((point) => point[1]);\n const yMin = Math.min(...yPoints);\n const yMax = Math.max(...yPoints);\n const yMid = (yMin + yMax) / 2;\n\n for (let i = 0; i < points.length; i++) {\n const point = points[i];\n const y = point[1];\n point[1] = y * (y > yMid ? 1 + options.scale : 1 - options.scale) + options.minHeight;\n }\n\n const controlPoint = (current, previous, next, reverse) => {\n const p = previous || current;\n const n = next || current;\n const o = line(p, n);\n const flat = lib.map(Math.cos(o.angle) * options.flattening, 0, 1, 1, 0);\n const angle = o.angle * flat + (reverse ? Math.PI : 0);\n const length = o.length * options.smoothing;\n const x = current[0] + Math.cos(angle) * length;\n const y = current[1] + Math.sin(angle) * length;\n return [x, y];\n };\n\n const bezierCommand = (point, i, a) => {\n const cps = controlPoint(a[i - 1], a[i - 2], point);\n const cpe = controlPoint(point, a[i - 1], a[i + 1], true);\n const close = i === a.length - 1 ? ' z' : '';\n return `C ${cps[0]},${cps[1]} ${cpe[0]},${cpe[1]} ${point[0]},${point[1]}${close}`;\n };\n\n const pointsPositions = points.map((e) => {\n const x = lib.map(e[0], options.xMin, options.xMax, 0, svg.w);\n const y = lib.map(e[1], options.yMin, options.yMax, svg.h, 0);\n return [x, y];\n });\n\n const pathD = pointsPositions.reduce(\n (acc, e, i, a) =>\n i === 0\n ? `M ${a[a.length - 1][0]},${svg.h} L ${e[0]},${svg.h} L ${e[0]},${e[1]}`\n : `${acc} ${bezierCommand(e, i, a)}`,\n '',\n );\n\n $heatmap.innerHTML = `\n \n \n \n \n \n \n \n \n \n \n \n `;\n\n $start = query('#heatmap-start', $heatmap);\n $stop = query('#heatmap-stop', $heatmap);\n $start.setAttribute('offset', `${art.played * 100}%`);\n $stop.setAttribute('offset', `${art.played * 100}%`);\n }\n\n art.on('video:timeupdate', () => {\n if ($start && $stop) {\n $start.setAttribute('offset', `${art.played * 100}%`);\n $stop.setAttribute('offset', `${art.played * 100}%`);\n }\n });\n\n art.on('setBar', (type, percentage) => {\n if ($start && $stop && type === 'played') {\n $start.setAttribute('offset', `${percentage * 100}%`);\n $stop.setAttribute('offset', `${percentage * 100}%`);\n }\n });\n\n art.on('ready', () => update());\n art.on('resize', () => update());\n art.on('artplayerPluginDanmuku:loaded', () => update());\n art.on('artplayerPluginDanmuku:points', (points) => update(points));\n },\n });\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer-plugin-danmuku/src/index.js","packages/artplayer-plugin-danmuku/src/danmuku.js","packages/artplayer-plugin-danmuku/src/bilibili.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-54089e51cb2f5cb0.js","packages/artplayer-plugin-danmuku/src/setting.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-e633bd0642c0f6d8.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-04a4ccdcbe82b9fc.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-6d3492096472ebee.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-4366f15bf5589225.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-3a33dc2ac5713237.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7405474972f49ad1.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-0c32b0aed97d3724.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-bfb87ad7bdac92c0.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-90cca85b3e6e9028.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-44a2c233ef45411a.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-7d429a40e7f4f4ac.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-081fb7f7de945ff8.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-61cba682068f8950.js","packages/artplayer-plugin-danmuku/src/heatmap.js"],"sourcesContent":["import Danmuku from './danmuku';\nimport Setting from './setting';\nimport heatmap from './heatmap';\n\nexport default function artplayerPluginDanmuku(option) {\n return (art) => {\n const danmuku = new Danmuku(art, option);\n const setting = new Setting(art, danmuku);\n\n if (danmuku.option.heatmap) {\n heatmap(art, danmuku, danmuku.option.heatmap);\n }\n\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n load: danmuku.load.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n reset: danmuku.reset.bind(danmuku),\n mount: setting.mount.bind(setting),\n get option() {\n return danmuku.option;\n },\n get isHide() {\n return danmuku.isHide;\n },\n get isStop() {\n return danmuku.isStop;\n },\n };\n };\n}\n\nartplayerPluginDanmuku.icons = Setting.icons;\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginDanmuku'] = artplayerPluginDanmuku;\n}\n","import { bilibiliDanmuParseFromUrl } from './bilibili';\nimport workerText from 'bundle-text:./worker';\n\nexport default class Danmuku {\n constructor(art, option) {\n const { constructor, template } = art;\n\n this.utils = constructor.utils; // 工具库\n this.validator = constructor.validator; // 配置校验器\n this.$danmuku = template.$danmuku; // 弹幕层容器\n this.$player = template.$player; // 播放器容器\n\n this.art = art;\n this.queue = []; // 实际弹幕队列\n this.$refs = []; // 弹幕DOM节点池\n this.isStop = false; // 是否停止\n this.isHide = false; // 是否隐藏\n this.timer = null; // 定时器\n this.index = 0; // 弹幕索引\n\n // 格式化后的配置项\n this.option = Danmuku.option;\n\n // 弹幕状态池\n this.states = { wait: [], ready: [], emit: [], stop: [] };\n\n // 初始化配置\n this.config(option);\n\n // 创建 Web Worker, 用于计算弹幕的 top 值\n const blob = new Blob([workerText], { type: 'application/javascript' });\n this.worker = new Worker(URL.createObjectURL(blob));\n\n // 绑定公用事件\n this.start = this.start.bind(this);\n this.stop = this.stop.bind(this);\n this.reset = this.reset.bind(this);\n this.resize = this.resize.bind(this);\n this.destroy = this.destroy.bind(this);\n\n // 监听事件\n art.on('video:play', this.start);\n art.on('video:playing', this.start);\n art.on('video:pause', this.stop);\n art.on('video:waiting', this.stop);\n art.on('destroy', this.destroy);\n art.on('resize', this.resize);\n\n // 开始加载弹幕\n this.load();\n }\n\n // 默认配置\n static get option() {\n return {\n danmuku: [], // 弹幕数据\n speed: 5, // 弹幕持续时间,范围在[1 ~ 10]\n margin: [10, '25%'], // 弹幕上下边距,支持像素数字和百分比\n opacity: 1, // 弹幕透明度,范围在[0 ~ 1]\n color: '#FFFFFF', // 默认弹幕颜色,可以被单独弹幕项覆盖\n mode: 0, // 默认弹幕模式: 0: 滚动,1: 顶部,2: 底部\n modes: [0, 1, 2], // 弹幕可见的模式\n fontSize: 25, // 弹幕字体大小,支持像素数字和百分比\n antiOverlap: true, // 弹幕是否防重叠\n synchronousPlayback: false, // 是否同步播放速度\n mount: undefined, // 弹幕发射器挂载点, 默认为播放器控制栏中部\n heatmap: false, // 是否开启热力图\n width: 512, // 当播放器宽度小于此值时,弹幕发射器置于播放器底部\n points: [], // 热力图数据\n filter: () => true, // 弹幕载入前的过滤器,只支持返回布尔值\n beforeEmit: () => true, // 弹幕发送前的过滤器,支持返回 Promise\n beforeVisible: () => true, // 弹幕显示前的过滤器,支持返回 Promise\n visible: true, // 弹幕层是否可见\n emitter: true, // 是否开启弹幕发射器\n maxLength: 200, // 弹幕输入框最大长度, 范围在[1 ~ 1000]\n lockTime: 5, // 输入框锁定时间,范围在[1 ~ 60]\n theme: 'dark', // 弹幕主题,支持 dark 和 light,只在自定义挂载时生效\n OPACITY: {}, // 不透明度配置项\n FONT_SIZE: {}, // 弹幕字号配置项\n MARGIN: {}, // 显示区域配置项\n SPEED: {}, // 弹幕速度配置项\n COLOR: [], // 颜色列表配置项\n };\n }\n\n // 配置校验\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n margin: 'array',\n opacity: 'number',\n color: 'string',\n mode: 'number',\n modes: 'array',\n fontSize: 'number|string',\n antiOverlap: 'boolean',\n synchronousPlayback: 'boolean',\n mount: '?htmldivelement|string',\n heatmap: 'object|boolean',\n width: 'number',\n points: 'array',\n filter: 'function',\n beforeEmit: 'function',\n beforeVisible: 'function',\n visible: 'boolean',\n emitter: 'boolean',\n maxLength: 'number',\n lockTime: 'number',\n theme: 'string',\n OPACITY: 'object',\n FONT_SIZE: 'object',\n MARGIN: 'object',\n SPEED: 'object',\n COLOR: 'array',\n };\n }\n\n // 初始弹幕样式\n static get cssText() {\n return `\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, \"Microsoft JhengHei\", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n `;\n }\n\n // 是否在移动端使用了自动旋屏,会影响弹幕的left和top值\n get isRotate() {\n return this.art.plugins?.autoOrientation?.state;\n }\n\n // 计算上空白边距\n get marginTop() {\n const { clamp } = this.utils;\n const value = this.option.margin[0];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[0];\n }\n\n // 计算下空白边距\n get marginBottom() {\n const { clamp } = this.utils;\n const value = this.option.margin[1];\n const { clientHeight } = this.$player;\n\n if (typeof value === 'number') {\n return clamp(value, 0, clientHeight);\n }\n\n if (typeof value === 'string' && value.endsWith('%')) {\n const ratio = parseFloat(value) / 100;\n return clamp(clientHeight * ratio, 0, clientHeight);\n }\n\n return Danmuku.option.margin[1];\n }\n\n // 计算弹幕字体大小\n get fontSize() {\n const { clamp } = this.utils;\n const { clientHeight } = this.$player;\n\n const fontSize = this.option.fontSize;\n\n if (typeof fontSize === 'number') {\n return Math.round(clamp(fontSize, 12, clientHeight));\n }\n\n if (typeof fontSize === 'string' && fontSize.endsWith('%')) {\n const ratio = parseFloat(fontSize) / 100;\n return Math.round(clamp(clientHeight * ratio, 12, clientHeight));\n }\n\n return Danmuku.option.fontSize;\n }\n\n // 获取弹幕DOM节点\n get $ref() {\n const $ref = this.$refs.pop() || document.createElement('div');\n $ref.style.cssText = Danmuku.cssText;\n $ref.dataset.mode = '';\n $ref.className = '';\n return $ref;\n }\n\n // 获取准备好发送的弹幕\n get readys() {\n const { currentTime } = this.art;\n\n const result = [];\n\n // 有的是ready状态:之前因为弹幕太多而暂停发送的弹幕\n this.filter('ready', (danmu) => result.push(danmu));\n\n // 有的是wait状态:符合时间范围的弹幕\n this.filter('wait', (danmu) => {\n if (currentTime + 0.1 >= danmu.time && danmu.time >= currentTime - 0.1) {\n result.push(danmu);\n }\n });\n\n return result;\n }\n\n // 可见的弹幕的数据,用于计算下一个弹幕的top值\n get visibles() {\n const result = [];\n const { clientWidth } = this.$player;\n const clientLeft = this.getLeft(this.$player);\n\n this.filter('emit', (danmu) => {\n const top = danmu.$ref.offsetTop;\n const left = this.getLeft(danmu.$ref) - clientLeft;\n const height = danmu.$ref.clientHeight;\n const width = danmu.$ref.clientWidth;\n const distance = left + width;\n const right = clientWidth - distance;\n const speed = distance / danmu.$restTime;\n\n const emit = {};\n emit.top = top;\n emit.left = left;\n emit.height = height;\n emit.width = width;\n emit.right = right;\n emit.speed = speed;\n emit.distance = distance;\n emit.time = danmu.$restTime;\n emit.mode = danmu.mode;\n\n result.push(emit);\n });\n\n return result;\n }\n\n // 计算弹幕速度\n get speed() {\n return this.option.synchronousPlayback && this.art.playbackRate\n ? this.option.speed / Number(this.art.playbackRate)\n : this.option.speed;\n }\n\n // 加载弹幕\n async load(danmuku) {\n const { errorHandle } = this.utils;\n\n let danmus = [];\n const target = danmuku || this.option.danmuku;\n\n try {\n if (typeof target === 'function') {\n danmus = await target(); // 异步函数获取\n } else if (target instanceof Promise) {\n danmus = await target; // 从 Promise 对象获取\n } else if (typeof target === 'string') {\n danmus = await bilibiliDanmuParseFromUrl(target); // 从B站xml链接解析\n } else if (Array.isArray(target)) {\n danmus = target; // 直接传入数组\n }\n\n errorHandle(Array.isArray(danmus), 'Danmuku need return an array as result');\n\n // 假如没有传入弹幕参数,则清空弹幕,否则追加弹幕\n if (danmuku === undefined) {\n this.reset(); // 重置弹幕\n this.queue = []; // 清空弹幕队列\n this.states = { wait: [], ready: [], emit: [], stop: [] }; // 清空弹幕状态池\n this.$refs = []; // 清空弹幕DOM节点池\n this.$danmuku.innerText = ''; // 清空弹幕层\n }\n\n // 逐个验证原始弹幕并转换到弹幕队列\n for (let index = 0; index < danmus.length; index++) {\n const danmu = danmus[index];\n await this.emit(danmu);\n }\n\n this.art.emit('artplayerPluginDanmuku:loaded', this.queue);\n } catch (error) {\n this.art.emit('artplayerPluginDanmuku:error', error);\n throw error;\n }\n\n return this;\n }\n\n // 把原始弹幕转换到弹幕队列\n async emit(danmu) {\n const { clamp } = this.utils;\n\n this.validator(danmu, {\n text: 'string', // 弹幕文本\n mode: '?number', // 弹幕模式: 0: 滚动,1: 顶部,2: 底部\n color: '?string', // 弹幕颜色\n time: '?number', // 弹幕时间\n border: '?boolean', // 弹幕是否有边框\n style: '?object', // 弹幕额外样式\n });\n\n // 弹幕文本为空则直接忽略\n if (!danmu.text.trim()) return this;\n\n // 设置弹幕时间,如果没有则默认为当前时间加 0.5 秒\n if (danmu.time) {\n danmu.time = clamp(danmu.time, 0, Infinity);\n } else {\n danmu.time = this.art.currentTime + 0.5;\n }\n\n // 设置弹幕模式,如果没有则默认为全局配置\n if (danmu.mode === undefined) {\n danmu.mode = this.option.mode;\n }\n\n // 设置弹幕单独样式,如果没有则默认为空对象\n if (danmu.style === undefined) {\n danmu.style = {};\n }\n\n // 设置弹幕颜色,如果没有则默认为全局配置\n if (danmu.color === undefined) {\n danmu.color = this.option.color;\n }\n\n // 弹幕模式只能是 0, 1, 2\n if (![0, 1, 2].includes(danmu.mode)) return this;\n\n // 自定义弹幕过滤函数\n if (!this.option.filter(danmu)) return this;\n\n // 添加自定义属性\n const item = {\n ...danmu,\n $state: 'wait', // 弹幕初始状态\n $id: this.index++, // 弹幕唯一标识\n $ref: null, // 弹幕 DOM 节点\n $restTime: 0, // 弹幕剩余时间\n $lastStartTime: 0, // 弹幕上次开始时间\n };\n\n // 转换为wait状态\n this.setState(item, 'wait');\n\n // 添加到实际弹幕队列\n this.queue.push(item);\n\n // 弹幕有四个状态:\n // - wait: 弹幕还未开始显示,没有被添加到 DOM 中\n // - ready: 弹幕准备好显示,没有被添加到 DOM 中\n // - emit: 弹幕正在显示,已经被添加到 DOM 中\n // - stop: 弹幕正在停止显示,已经被添加到 DOM 中\n\n return this;\n }\n\n // 动态配置\n config(option) {\n const { clamp } = this.utils;\n const { $controlsCenter } = this.art.template;\n\n // 判断配置项是否有变化\n const changed = Object.keys(option).some(\n (key) => JSON.stringify(this.option[key]) !== JSON.stringify(option[key]),\n );\n\n // 没有变化则直接返回\n if (!changed) return this;\n\n // 更新配置项\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n this.validator(this.option, Danmuku.scheme);\n\n this.option.mode = clamp(this.option.mode, 0, 2);\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.lockTime = clamp(this.option.lockTime, 1, 60);\n this.option.maxLength = clamp(this.option.maxLength, 1, 1000);\n this.option.mount = this.option.mount || $controlsCenter;\n\n // 动态配置有字体大小,需要重新渲染\n if (option.fontSize) {\n this.reset();\n }\n\n // 通过配置项控制弹幕的显示和隐藏\n if (this.option.visible) {\n this.show();\n } else {\n this.hide();\n }\n\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n\n return this;\n }\n\n // 计算DOM的left值,受到旋屏影响\n getLeft($ref) {\n const rect = $ref.getBoundingClientRect();\n return this.isRotate ? rect.top : rect.left;\n }\n\n // 复杂运算交给 Web Worker 处理\n postMessage(message = {}) {\n return new Promise((resolve) => {\n message.id = Date.now(); // 生成唯一标识\n this.worker.postMessage(message);\n this.worker.onmessage = (event) => {\n const { data } = event;\n // 判断是否是当前的消息\n if (data.id === message.id) {\n resolve(data);\n }\n };\n });\n }\n\n // 根据状态获取弹幕\n filter(state, callback) {\n const danmus = this.states[state] || [];\n for (let index = 0; index < danmus.length; index++) {\n callback(danmus[index]);\n }\n return danmus;\n }\n\n // 设置弹幕状态\n setState(danmu, state) {\n // 从原状态池中删除\n this.states[danmu.$state] = this.states[danmu.$state].filter((item) => item !== danmu);\n\n // 设置新状态\n danmu.$state = state;\n\n // 设置DOM节点状态\n if (danmu.$ref) {\n danmu.$ref.dataset.state = state;\n }\n\n // 添加到新状态池中\n this.states[state].push(danmu);\n }\n\n // 重置弹幕到wait状态,回收弹幕DOM节点\n makeWait(danmu) {\n this.setState(danmu, 'wait');\n if (danmu.$ref) {\n danmu.$ref.style.cssText = Danmuku.cssText;\n danmu.$ref.style.visibility = 'hidden';\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n\n // 实时更新弹幕\n update() {\n const { setStyles } = this.utils;\n\n this.timer = window.requestAnimationFrame(async () => {\n if (this.art.playing && !this.isHide) {\n // 实时计算弹幕的剩余显示时间\n this.filter('emit', (danmu) => {\n const emitTime = (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$restTime -= emitTime;\n danmu.$lastStartTime = Date.now();\n // 超过时间即重置弹幕\n if (danmu.$restTime <= 0) {\n this.makeWait(danmu);\n }\n });\n\n // 获取准备好发送的弹幕,可能包含ready和wait状态的弹幕\n const readys = this.readys;\n\n for (let index = 0; index < readys.length; index++) {\n const danmu = readys[index];\n\n // 弹幕发送前的过滤器\n const state = await this.option.beforeVisible(danmu);\n\n if (state) {\n const { clientWidth, clientHeight } = this.$player;\n danmu.$ref = this.$ref; // 获取弹幕DOM节点\n danmu.$ref.innerText = danmu.text; // 设置弹幕文本\n\n // 提前添加到弹幕层中,用于计算top值\n this.$danmuku.appendChild(danmu.$ref);\n\n // 设置初始弹幕样式\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.fontSize}px`;\n danmu.$ref.style.color = danmu.color;\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : null;\n danmu.$ref.style.backgroundColor = danmu.border ? 'rgb(0 0 0 / 50%)' : null;\n\n // 设置单独弹幕样式\n setStyles(danmu.$ref, danmu.style);\n\n // 记录弹幕时间戳\n danmu.$lastStartTime = Date.now();\n\n // 计算弹幕剩余时间\n danmu.$restTime = this.speed;\n\n // 计算弹幕滚动的距离\n const distance = clientWidth + danmu.$ref.clientWidth;\n\n // 计算弹幕的top值\n const { result: top } = await this.postMessage({\n type: 'getDanmuTop',\n target: {\n mode: danmu.mode,\n height: danmu.$ref.clientHeight,\n speed: distance / danmu.$restTime,\n }, // 当前弹幕信息\n visibles: this.visibles, // 可见的弹幕的数据\n antiOverlap: this.option.antiOverlap,\n clientWidth: clientWidth,\n clientHeight: clientHeight,\n marginBottom: this.marginBottom,\n marginTop: this.marginTop,\n });\n\n if (danmu.$ref) {\n if (!this.isStop && top !== undefined) {\n this.setState(danmu, 'emit'); // 转换为emit状态\n danmu.$ref.style.top = `${top}px`;\n danmu.$ref.style.visibility = 'visible';\n danmu.$ref.dataset.mode = danmu.mode; // CSS控制模式的显示和隐藏\n\n switch (danmu.mode) {\n // 滚动的弹幕\n case 0: {\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = `translateX(${-distance}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 1:\n // falls through\n case 2:\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.marginLeft = `-${danmu.$ref.clientWidth / 2}px`;\n break;\n default:\n break;\n }\n\n this.art.emit('artplayerPluginDanmuku:visible', danmu);\n } else {\n // 假如弹幕已经停止或者没有 top 值,则重置弹幕为ready状态,回收弹幕DOM节点,等待下次发送\n this.setState(danmu, 'ready');\n this.$refs.push(danmu.$ref);\n danmu.$ref = null;\n }\n }\n }\n }\n }\n\n // 递归调用\n if (!this.isStop) {\n this.update();\n }\n });\n return this;\n }\n\n // 重置正在显示的弹幕: stop/emit 状态的弹幕\n resize() {\n const { clientWidth } = this.$player;\n\n this.filter('stop', (danmu) => {\n switch (danmu.mode) {\n // 滚动的弹幕\n case 0:\n danmu.$ref.style.left = `${clientWidth}px`;\n break;\n default:\n break;\n }\n });\n\n this.filter('emit', (danmu) => {\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n // 滚动的弹幕\n case 0: {\n const distance = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.left = `${clientWidth}px`;\n danmu.$ref.style.transform = `translateX(${-distance}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n }\n\n // 继续弹幕\n continue() {\n const { clientWidth } = this.$player;\n this.filter('stop', (danmu) => {\n this.setState(danmu, 'emit'); // 转换为emit状态\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n // 继续滚动的弹幕\n case 0: {\n const distance = clientWidth + danmu.$ref.clientWidth;\n danmu.$ref.style.transform = `translateX(${-distance}px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n // 暂停弹幕\n suspend() {\n const { clientWidth } = this.$player;\n this.filter('emit', (danmu) => {\n this.setState(danmu, 'stop'); // 转换为stop状态\n switch (danmu.mode) {\n // 停止滚动的弹幕\n case 0: {\n const translateX = clientWidth - (this.getLeft(danmu.$ref) - this.getLeft(this.$player));\n danmu.$ref.style.transform = `translateX(${-translateX}px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n\n return this;\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.timer);\n this.art.emit('artplayerPluginDanmuku:stop');\n return this;\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n return this;\n }\n\n reset() {\n this.queue.forEach((danmu) => this.makeWait(danmu));\n this.art.emit('artplayerPluginDanmuku:reset');\n return this;\n }\n\n show() {\n this.isHide = false;\n this.$danmuku.style.opacity = 1;\n this.option.visible = true;\n this.art.emit('artplayerPluginDanmuku:show');\n return this;\n }\n\n hide() {\n this.isHide = true;\n this.$danmuku.style.opacity = 0;\n this.option.visible = false;\n this.art.emit('artplayerPluginDanmuku:hide');\n return this;\n }\n\n destroy() {\n this.stop();\n this.worker.terminate();\n this.art.off('video:play', this.start);\n this.art.off('video:playing', this.start);\n this.art.off('video:pause', this.stop);\n this.art.off('video:waiting', this.stop);\n this.art.off('resize', this.reset);\n this.art.off('destroy', this.destroy);\n this.art.emit('artplayerPluginDanmuku:destroy');\n }\n}\n","function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 0;\n case 4:\n return 2;\n case 5:\n return 1;\n default:\n return 0;\n }\n}\n\nfunction bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const reg = new RegExp(/.+?)\"(?: .*?)?>(?.+?)<\\/d>/gs);\n const matches = xmlString.matchAll(reg);\n return Array.from(matches)\n .map((match) => {\n const attr = match.groups.p.split(',');\n if (attr.length >= 8) {\n const text = match.groups.text\n .trim()\n .replaceAll('"', '\"')\n .replaceAll(''', \"'\")\n .replaceAll('<', '<')\n .replaceAll('>', '>')\n .replaceAll('&', '&');\n\n return {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n };\n } else {\n return null;\n }\n })\n .filter(Boolean);\n}\n\nfunction onmessage({ data }) {\n const { xml, id } = data;\n if (!id || !xml) return;\n const danmus = bilibiliDanmuParseFromXml(xml);\n self.postMessage({ danmus, id });\n}\n\nfunction createWorker() {\n const workerText = `\n ${getMode.toString()}\n ${bilibiliDanmuParseFromXml.toString()}\n onmessage = ${onmessage.toString()}\n `;\n const blob = new Blob([workerText], { type: 'application/javascript' });\n return new Worker(URL.createObjectURL(blob));\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n const res = await fetch(url);\n const xml = await res.text();\n\n try {\n const worker = createWorker();\n worker.onmessage = (event) => {\n const { danmus, id } = event.data;\n if (!id || !danmus) return;\n resolve(danmus);\n worker.terminate();\n };\n worker.postMessage({ xml, id: Date.now() });\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n const danmus = bilibiliDanmuParseFromXml(xml);\n resolve(danmus);\n }\n });\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","module.exports = \"7a58a7689dcfe725\";","import style from 'bundle-text:./style.less';\nimport $on from 'bundle-text:./img/on.svg';\nimport $off from 'bundle-text:./img/off.svg';\nimport $config from 'bundle-text:./img/config.svg';\nimport $style from 'bundle-text:./img/style.svg';\nimport $mode_0_off from 'bundle-text:./img/mode_0_off.svg';\nimport $mode_0_on from 'bundle-text:./img/mode_0_on.svg';\nimport $mode_1_off from 'bundle-text:./img/mode_1_off.svg';\nimport $mode_1_on from 'bundle-text:./img/mode_1_on.svg';\nimport $mode_2_off from 'bundle-text:./img/mode_2_off.svg';\nimport $mode_2_on from 'bundle-text:./img/mode_2_on.svg';\nimport $check_on from 'bundle-text:./img/check_on.svg';\nimport $check_off from 'bundle-text:./img/check_off.svg';\n\nexport default class Setting {\n constructor(art, danmuku) {\n this.art = art;\n this.danmuku = danmuku;\n this.utils = art.constructor.utils;\n\n const { setStyle } = this.utils;\n const { $controlsCenter } = art.template;\n setStyle($controlsCenter, 'display', 'flex');\n\n this.template = {\n $controlsCenter,\n $mount: $controlsCenter,\n $danmuku: null,\n $toggle: null,\n $config: null,\n $configPanel: null,\n $configModes: null,\n $style: null,\n $stylePanel: null,\n $styleModes: null,\n $colors: null,\n $opacitySlider: null,\n $opacityValue: null,\n $marginSlider: null,\n $marginValue: null,\n $fontSizeSlider: null,\n $fontSizeValue: null,\n $speedSlider: null,\n $speedValue: null,\n $input: null,\n $send: null,\n };\n\n this.slider = {\n opacity: null,\n margin: null,\n fontSize: null,\n speed: null,\n };\n\n this.emitting = false;\n this.isLock = false;\n this.timer = null;\n\n this.createTemplate();\n this.createSliders();\n this.createEvents();\n\n this.mount(this.option.mount);\n\n art.on('resize', () => this.resize());\n art.on('fullscreen', (state) => this.onFullscreen(state));\n art.on('fullscreenWeb', (state) => this.onFullscreen(state));\n\n art.proxy(this.template.$config, 'mouseenter', () => {\n this.onMouseEnter({\n $control: this.template.$config,\n $panel: this.template.$configPanel,\n });\n });\n\n art.proxy(this.template.$style, 'mouseenter', () => {\n this.onMouseEnter({\n $control: this.template.$style,\n $panel: this.template.$stylePanel,\n });\n });\n }\n\n static get icons() {\n return {\n $on,\n $off,\n $config,\n $style,\n $mode_0_off,\n $mode_0_on,\n $mode_1_off,\n $mode_1_on,\n $mode_2_off,\n $mode_2_on,\n $check_on,\n $check_off,\n };\n }\n\n get option() {\n return this.danmuku.option;\n }\n\n get outside() {\n return this.template.$mount !== this.template.$controlsCenter;\n }\n\n get TEMPLATE() {\n const { option } = this;\n return `\n
      \n ${$on}${$off}\n
      \n
      \n ${$config}\n
      \n
      \n
      \n 按类型屏蔽\n
      \n
      \n ${$mode_0_off}${$mode_0_on}\n
      滚动
      \n
      \n
      \n ${$mode_1_off}${$mode_1_on}\n
      顶部
      \n
      \n
      \n ${$mode_2_off}${$mode_2_on}\n
      底部
      \n
      \n
      \n
      \n
      \n
      \n ${$check_on}${$check_off}\n 防止弹幕重叠\n
      \n
      \n ${$check_on}${$check_off}\n 同步视频速度\n
      \n
      \n
      \n 不透明度\n
      \n
      未知
      \n
      \n
      \n 显示区域\n
      \n
      未知
      \n
      \n
      \n 弹幕字号\n
      \n
      未知
      \n
      \n
      \n 弹幕速度\n
      \n
      未知
      \n
      \n
      \n
      \n
      \n
      \n
      \n ${$style}\n
      \n
      \n
      \n 模式\n
      \n
      \n ${$mode_0_on}\n
      滚动
      \n
      \n
      \n ${$mode_1_on}\n
      顶部
      \n
      \n
      \n ${$mode_2_on}\n
      底部
      \n
      \n
      \n
      \n
      \n 颜色\n
      \n ${this.COLOR.map((color) => `
      `).join('')}\n
      \n
      \n
      \n
      \n
      \n \n
      发送
      \n
      \n `;\n }\n\n get OPACITY() {\n return {\n min: 0,\n max: 100,\n steps: [],\n ...this.option.OPACITY,\n };\n }\n\n get FONT_SIZE() {\n return {\n min: 12,\n max: 120,\n steps: [],\n ...this.option.FONT_SIZE,\n };\n }\n\n get MARGIN() {\n return {\n min: 0,\n max: 3,\n steps: [\n {\n name: '1/4',\n value: [10, '75%'],\n },\n {\n name: '半屏',\n value: [10, '50%'],\n },\n {\n name: '3/4',\n value: [10, '25%'],\n },\n {\n name: '满屏',\n value: [10, 10],\n },\n ],\n ...this.option.MARGIN,\n };\n }\n\n get SPEED() {\n return {\n min: 0,\n max: 4,\n steps: [\n {\n name: '极慢',\n value: 10,\n },\n {\n name: '较慢',\n value: 7.5,\n hide: true,\n },\n {\n name: '适中',\n value: 5,\n },\n {\n name: '较快',\n value: 2.5,\n hide: true,\n },\n {\n name: '极快',\n value: 1,\n },\n ],\n ...this.option.SPEED,\n };\n }\n\n get COLOR() {\n return this.option.COLOR.length\n ? this.option.COLOR\n : [\n '#FE0302',\n '#FF7204',\n '#FFAA02',\n '#FFD302',\n '#FFFF00',\n '#A0EE00',\n '#00CD00',\n '#019899',\n '#4266BE',\n '#89D5FF',\n '#CC0273',\n '#222222',\n '#9B9B9B',\n '#FFFFFF',\n ];\n }\n\n query(selector) {\n const { query } = this.utils;\n const { $danmuku } = this.template;\n return query(selector, $danmuku);\n }\n\n append(el, target) {\n const { append } = this.utils;\n const children = [...el.children];\n if (children.some((item) => item === target)) return;\n append(el, target);\n }\n\n setData(key, value) {\n const { $player } = this.art.template;\n const { $mount } = this.template;\n $player.dataset[key] = value;\n if (this.outside) {\n $mount.dataset[key] = value;\n }\n }\n\n createTemplate() {\n const { createElement, tooltip } = this.utils;\n\n const $danmuku = createElement('div');\n $danmuku.className = 'artplayer-plugin-danmuku';\n $danmuku.innerHTML = this.TEMPLATE;\n\n this.template.$danmuku = $danmuku;\n this.template.$toggle = this.query('.apd-toggle');\n this.template.$config = this.query('.apd-config');\n this.template.$configPanel = this.query('.apd-config-panel');\n this.template.$configModes = this.query('.apd-config-mode .apd-modes');\n this.template.$style = this.query('.apd-style');\n this.template.$stylePanel = this.query('.apd-style-panel');\n this.template.$styleModes = this.query('.apd-style-mode .apd-modes');\n this.template.$colors = this.query('.apd-colors');\n this.template.$antiOverlap = this.query('.apd-anti-overlap');\n this.template.$syncVideo = this.query('.apd-sync-video');\n this.template.$opacitySlider = this.query('.apd-config-opacity .apd-slider');\n this.template.$opacityValue = this.query('.apd-config-opacity .apd-value');\n this.template.$marginSlider = this.query('.apd-config-margin .apd-slider');\n this.template.$marginValue = this.query('.apd-config-margin .apd-value');\n this.template.$fontSizeSlider = this.query('.apd-config-fontSize .apd-slider');\n this.template.$fontSizeValue = this.query('.apd-config-fontSize .apd-value');\n this.template.$speedSlider = this.query('.apd-config-speed .apd-slider');\n this.template.$speedValue = this.query('.apd-config-speed .apd-value');\n this.template.$input = this.query('.apd-input');\n this.template.$send = this.query('.apd-send');\n\n const { $toggle } = this.template;\n\n this.art.on('artplayerPluginDanmuku:show', () => {\n tooltip($toggle, '关闭弹幕');\n });\n\n this.art.on('artplayerPluginDanmuku:hide', () => {\n tooltip($toggle, '打开弹幕');\n });\n }\n\n createEvents() {\n const { $toggle, $configModes, $styleModes, $colors, $antiOverlap, $syncVideo, $send, $input } = this.template;\n\n this.art.proxy($toggle, 'click', () => {\n this.danmuku.config({\n visible: !this.option.visible,\n });\n this.reset();\n });\n\n this.art.proxy($configModes, 'click', (event) => {\n const $mode = event.target.closest('.apd-mode');\n if (!$mode) return;\n const mode = Number($mode.dataset.mode);\n if (this.option.modes.includes(mode)) {\n this.danmuku.config({\n modes: this.option.modes.filter((m) => m !== mode),\n });\n } else {\n this.danmuku.config({\n modes: [...this.option.modes, mode],\n });\n }\n this.reset();\n });\n\n this.art.proxy($antiOverlap, 'click', () => {\n this.danmuku.config({\n antiOverlap: !this.option.antiOverlap,\n });\n this.reset();\n });\n\n this.art.proxy($syncVideo, 'click', () => {\n this.danmuku.config({\n synchronousPlayback: !this.option.synchronousPlayback,\n });\n this.reset();\n });\n\n this.art.proxy($styleModes, 'click', (event) => {\n const $mode = event.target.closest('.apd-mode');\n if (!$mode) return;\n const mode = Number($mode.dataset.mode);\n this.danmuku.config({\n mode: mode,\n });\n this.reset();\n });\n\n this.art.proxy($colors, 'click', (event) => {\n const $color = event.target.closest('.apd-color');\n if (!$color) return;\n this.danmuku.config({\n color: $color.dataset.color,\n });\n this.reset();\n });\n\n this.art.proxy($send, 'click', () => this.emit());\n\n this.art.proxy($input, 'keypress', (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n this.emit();\n }\n });\n }\n\n createSliders() {\n this.slider.opacity = this.createSlider({\n ...this.OPACITY,\n container: this.template.$opacitySlider,\n findIndex: () => {\n return Math.round(this.option.opacity * 100);\n },\n onChange: (index) => {\n const { $opacityValue } = this.template;\n $opacityValue.textContent = `${index}%`;\n this.danmuku.config({\n opacity: index / 100,\n });\n },\n });\n\n this.slider.margin = this.createSlider({\n ...this.MARGIN,\n container: this.template.$marginSlider,\n findIndex: () => {\n return this.MARGIN.steps.findIndex(\n (item) => item.value[0] === this.option.margin[0] && item.value[1] === this.option.margin[1],\n );\n },\n onChange: (index) => {\n const margin = this.MARGIN.steps[index];\n if (!margin) return;\n const { $marginValue } = this.template;\n $marginValue.textContent = margin.name;\n this.danmuku.config({\n margin: margin.value,\n });\n },\n });\n\n this.slider.fontSize = this.createSlider({\n ...this.FONT_SIZE,\n container: this.template.$fontSizeSlider,\n findIndex: () => {\n return this.danmuku.fontSize;\n },\n onChange: (index) => {\n const { $fontSizeValue } = this.template;\n $fontSizeValue.textContent = `${index}px`;\n if (index === this.danmuku.fontSize) return;\n this.danmuku.config({\n fontSize: index,\n });\n },\n });\n\n this.slider.speed = this.createSlider({\n ...this.SPEED,\n container: this.template.$speedSlider,\n findIndex: () => {\n return this.SPEED.steps.findIndex((item) => item.value === this.option.speed);\n },\n onChange: (index) => {\n const speed = this.SPEED.steps[index];\n if (!speed) return;\n const { $speedValue } = this.template;\n $speedValue.textContent = speed.name;\n this.danmuku.config({\n speed: speed.value,\n });\n },\n });\n }\n\n createSlider({ min, max, container, findIndex, onChange, steps = [] }) {\n const { query, clamp } = this.utils;\n\n container.innerHTML = `\n
      \n
      \n ${steps.map(() => `
      `).join('')}\n
      \n
      \n
      \n
      \n
      \n ${steps.map((step) => (step.hide ? '' : `
      ${step.name}
      `)).join('')}\n
      \n `;\n\n const $dot = query('.apd-slider-dot', container);\n const $progress = query('.apd-slider-progress', container);\n\n let isDroging = false;\n\n function reset(index = findIndex()) {\n if (index < min || index > max) return;\n const percentage = (index - min) / (max - min);\n $dot.style.left = `${percentage * 100}%`;\n if (steps.length === 0) {\n $progress.style.width = $dot.style.left;\n }\n onChange(index);\n }\n\n function updateLeft(event) {\n const { left, width } = container.getBoundingClientRect();\n const value = clamp(event.clientX - left, 0, width);\n const index = Math.round((value / width) * (max - min) + min);\n reset(index);\n }\n\n this.art.proxy(container, 'click', (event) => {\n updateLeft(event);\n });\n\n this.art.proxy(container, 'mousedown', (event) => {\n isDroging = event.button === 0;\n });\n\n this.art.on('document:mousemove', (event) => {\n if (isDroging) {\n updateLeft(event);\n }\n });\n\n this.art.on('document:mouseup', (event) => {\n if (isDroging) {\n isDroging = false;\n updateLeft(event);\n }\n });\n\n return { reset };\n }\n\n onFullscreen(state) {\n const { $danmuku, $controlsCenter, $mount } = this.template;\n if (this.outside) {\n if (state) {\n this.append($controlsCenter, $danmuku);\n } else {\n this.append($mount, $danmuku);\n }\n } else {\n this.append($controlsCenter, $danmuku);\n }\n }\n\n onMouseEnter({ $control, $panel }) {\n const { $player } = this.art.template;\n const controlRect = $control.getBoundingClientRect();\n const panelRect = $panel.getBoundingClientRect();\n const playerRect = $player.getBoundingClientRect();\n\n const half = panelRect.width / 2 - controlRect.width / 2;\n const left = playerRect.left - (controlRect.left - half);\n const right = controlRect.right + half - playerRect.right;\n\n if (left > 0) {\n $panel.style.left = `${-half + left}px`;\n } else if (right > 0) {\n $panel.style.left = `${-half - right}px`;\n } else {\n $panel.style.left = `${-half}px`;\n }\n }\n\n async emit() {\n const { $input } = this.template;\n\n const text = $input.value.trim();\n if (!text.length) return;\n if (this.isLock) return;\n if (this.emitting) return;\n\n const danmu = {\n text: text,\n mode: this.option.mode,\n color: this.option.color,\n time: this.art.currentTime,\n };\n\n try {\n this.emitting = true;\n const state = await this.option.beforeEmit(danmu);\n this.emitting = false;\n\n if (state !== true) return;\n\n danmu.border = true;\n delete danmu.time;\n this.danmuku.emit(danmu);\n $input.value = '';\n\n this.lock();\n // eslint-disable-next-line no-unused-vars\n } catch (error) {\n this.emitting = false;\n }\n }\n\n lock() {\n const { addClass } = this.utils;\n const { $send } = this.template;\n\n this.isLock = true;\n let time = this.option.lockTime;\n $send.innerText = time;\n addClass($send, 'apd-lock');\n\n const loop = () => {\n this.timer = setTimeout(() => {\n if (time === 0) {\n this.unlock();\n } else {\n time -= 1;\n $send.innerText = time;\n loop();\n }\n }, 1000);\n };\n\n loop();\n }\n\n unlock() {\n const { removeClass } = this.utils;\n const { $send } = this.template;\n clearTimeout(this.timer);\n this.isLock = false;\n $send.innerText = '发送';\n removeClass($send, 'apd-lock');\n }\n\n resize() {\n if (this.outside) return;\n if (this.art.fullscreen) return;\n if (this.art.fullscreenWeb) return;\n const { $player, $controlsCenter } = this.art.template;\n const { $danmuku } = this.template;\n if (this.art.width < this.option.width) {\n this.append($player, $danmuku);\n } else {\n this.append($controlsCenter, $danmuku);\n }\n }\n\n reset() {\n const { inverseClass, tooltip } = this.utils;\n const { $toggle, $colors } = this.template;\n\n this.slider.opacity.reset();\n this.slider.margin.reset();\n this.slider.fontSize.reset();\n this.slider.speed.reset();\n\n this.setData('danmukuVisible', this.option.visible);\n this.setData('danmukuMode', this.option.mode);\n this.setData('danmukuColor', this.option.color);\n this.setData('danmukuMode0', this.option.modes.includes(0));\n this.setData('danmukuMode1', this.option.modes.includes(1));\n this.setData('danmukuMode2', this.option.modes.includes(2));\n this.setData('danmukuAntiOverlap', this.option.antiOverlap);\n this.setData('danmukuSyncVideo', this.option.synchronousPlayback);\n this.setData('danmukuTheme', this.option.theme);\n this.setData('danmukuEmitter', this.option.emitter);\n\n const colors = $colors.children;\n const $color = Array.from(colors).find((item) => item.dataset.color === this.option.color.toUpperCase());\n $color && inverseClass($color, 'apd-active');\n\n tooltip($toggle, this.option.visible ? '关闭弹幕' : '打开弹幕');\n\n this.resize();\n }\n\n mount(target) {\n const { errorHandle } = this.utils;\n const $el = typeof target === 'string' ? document.querySelector(target) : target;\n errorHandle($el, `Can not find the mount point: ${target}`);\n this.append($el, this.template.$danmuku);\n this.template.$mount = $el;\n this.reset();\n }\n}\n\nif (typeof document !== 'undefined') {\n const id = 'artplayer-plugin-danmuku';\n const $style = document.getElementById(id);\n if ($style) {\n $style.textContent = style;\n } else {\n const $style = document.createElement('style');\n $style.id = id;\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n","module.exports = \"c09c1588fb4faeee\";","module.exports = \"9cb90863dc3c9a4a\";","module.exports = \"628c4c1d1f0914ae\";","module.exports = \"4a37db4fe35f5e6c\";","module.exports = \"8041896cc7b87454\";","module.exports = \"27fd2e805f7e2f23\";","module.exports = \"909d5129494f122f\";","module.exports = \"b7497c63c700b215\";","module.exports = \"46d7b39385b87ee2\";","module.exports = \"cef7220743b52d16\";","module.exports = \"ff5fa44c0fa0d3e8\";","module.exports = \"1a75f737d749272f\";","module.exports = \"24113e84ce531d81\";","const lib = {\n map(value, inMin, inMax, outMin, outMax) {\n return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;\n },\n range(start, end, tick) {\n const s = Math.round(start / tick) * tick;\n return Array.from(\n {\n length: Math.floor((end - start) / tick),\n },\n (v, k) => {\n return k * tick + s;\n },\n );\n },\n};\n\nconst line = (pointA, pointB) => {\n const lengthX = pointB[0] - pointA[0];\n const lengthY = pointB[1] - pointA[1];\n return {\n length: Math.sqrt(Math.pow(lengthX, 2) + Math.pow(lengthY, 2)),\n angle: Math.atan2(lengthY, lengthX),\n };\n};\n\nexport default function heatmap(art, danmuku, option) {\n const { query } = art.constructor.utils;\n\n art.controls.add({\n name: 'heatmap',\n position: 'top',\n html: '',\n style: {\n position: 'absolute',\n top: '-100px',\n left: '0px',\n right: '0px',\n height: '100px',\n width: '100%',\n pointerEvents: 'none',\n },\n mounted($heatmap) {\n let $start = null;\n let $stop = null;\n\n function update(arg = []) {\n $start = null;\n $stop = null;\n $heatmap.innerHTML = '';\n\n if (!art.duration || art.option.isLive) return;\n\n const svg = {\n w: $heatmap.offsetWidth,\n h: $heatmap.offsetHeight,\n };\n\n const options = {\n xMin: 0,\n xMax: svg.w,\n yMin: 0,\n yMax: 128,\n scale: 0.25,\n opacity: 0.2,\n minHeight: Math.floor(svg.h * 0.05),\n sampling: Math.floor(svg.w / 100),\n smoothing: 0.2,\n flattening: 0.2,\n };\n\n if (typeof option === 'object') {\n Object.assign(options, option);\n }\n\n let points = [];\n\n if (Array.isArray(arg) && arg.length) {\n points = [...arg];\n } else {\n const gap = art.duration / svg.w;\n for (let x = 0; x <= svg.w; x += options.sampling) {\n const y = danmuku.queue.filter(\n ({ time }) => time > x * gap && time <= (x + options.sampling) * gap,\n ).length;\n points.push([x, y]);\n }\n }\n\n if (points.length === 0) return;\n\n const lastPoint = points[points.length - 1];\n const lastX = lastPoint[0];\n const lastY = lastPoint[1];\n if (lastX !== svg.w) {\n points.push([svg.w, lastY]);\n }\n\n const yPoints = points.map((point) => point[1]);\n const yMin = Math.min(...yPoints);\n const yMax = Math.max(...yPoints);\n const yMid = (yMin + yMax) / 2;\n\n for (let i = 0; i < points.length; i++) {\n const point = points[i];\n const y = point[1];\n point[1] = y * (y > yMid ? 1 + options.scale : 1 - options.scale) + options.minHeight;\n }\n\n const controlPoint = (current, previous, next, reverse) => {\n const p = previous || current;\n const n = next || current;\n const o = line(p, n);\n const flat = lib.map(Math.cos(o.angle) * options.flattening, 0, 1, 1, 0);\n const angle = o.angle * flat + (reverse ? Math.PI : 0);\n const length = o.length * options.smoothing;\n const x = current[0] + Math.cos(angle) * length;\n const y = current[1] + Math.sin(angle) * length;\n return [x, y];\n };\n\n const bezierCommand = (point, i, a) => {\n const cps = controlPoint(a[i - 1], a[i - 2], point);\n const cpe = controlPoint(point, a[i - 1], a[i + 1], true);\n const close = i === a.length - 1 ? ' z' : '';\n return `C ${cps[0]},${cps[1]} ${cpe[0]},${cpe[1]} ${point[0]},${point[1]}${close}`;\n };\n\n const pointsPositions = points.map((e) => {\n const x = lib.map(e[0], options.xMin, options.xMax, 0, svg.w);\n const y = lib.map(e[1], options.yMin, options.yMax, svg.h, 0);\n return [x, y];\n });\n\n const pathD = pointsPositions.reduce(\n (acc, e, i, a) =>\n i === 0\n ? `M ${a[a.length - 1][0]},${svg.h} L ${e[0]},${svg.h} L ${e[0]},${e[1]}`\n : `${acc} ${bezierCommand(e, i, a)}`,\n '',\n );\n\n $heatmap.innerHTML = `\n \n \n \n \n \n \n \n \n \n \n \n `;\n\n $start = query('#heatmap-start', $heatmap);\n $stop = query('#heatmap-stop', $heatmap);\n $start.setAttribute('offset', `${art.played * 100}%`);\n $stop.setAttribute('offset', `${art.played * 100}%`);\n }\n\n art.on('video:timeupdate', () => {\n if ($start && $stop) {\n $start.setAttribute('offset', `${art.played * 100}%`);\n $stop.setAttribute('offset', `${art.played * 100}%`);\n }\n });\n\n art.on('setBar', (type, percentage) => {\n if ($start && $stop && type === 'played') {\n $start.setAttribute('offset', `${percentage * 100}%`);\n $stop.setAttribute('offset', `${percentage * 100}%`);\n }\n });\n\n art.on('ready', () => update());\n art.on('resize', () => update());\n art.on('artplayerPluginDanmuku:loaded', () => update());\n art.on('artplayerPluginDanmuku:points', (points) => update(points));\n },\n });\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-plugin-vast/index.js b/docs/uncompiled/artplayer-plugin-vast/index.js index cb8fd7742..d883664aa 100644 --- a/docs/uncompiled/artplayer-plugin-vast/index.js +++ b/docs/uncompiled/artplayer-plugin-vast/index.js @@ -146,32 +146,704 @@ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "default", ()=>artplayerPluginVast); -var _styleLess = require("bundle-text:./style.less"); -var _styleLessDefault = parcelHelpers.interopDefault(_styleLess); -function artplayerPluginVast(option) { - return (art)=>{ +var _vastImaPlayer = require("@glomex/vast-ima-player"); +function artplayerPluginVast(callback) { + return async (art)=>{ + const { template, constructor } = art; + const { createElement, setStyles, append } = constructor.utils; + const { $video, $player } = template; + await (0, _vastImaPlayer.loadImaSdk)(); + const google = window.google; + const ima = google.ima; + const adsRenderingSettings = new ima.AdsRenderingSettings(); + const playerOptions = new (0, _vastImaPlayer.PlayerOptions)(); + const id = `art-${Date.now()}`; + const $container = createElement("div"); + append($player, $container); + $container.id = id; + setStyles($container, { + position: "absolute", + inset: "0", + width: "100%", + height: "100%", + zIndex: "150", + display: "none" + }); + const imaPlayer = new (0, _vastImaPlayer.Player)(ima, $video, $container, adsRenderingSettings, playerOptions); + function playUrl(url) { + const playAdsRequest = new ima.AdsRequest(); + playAdsRequest.adTagUrl = url; + imaPlayer.playAds(playAdsRequest); + } + function playRes(res) { + const playAdsRequest = new ima.AdsRequest(); + playAdsRequest.adsResponse = res; + imaPlayer.playAds(playAdsRequest); + } + if (typeof callback === "function") await callback({ + art, + id, + ima, + imaPlayer, + $container, + playUrl, + playRes + }); return { name: "artplayerPluginVast" }; }; } -if (typeof document !== "undefined") { - const id = "artplayer-plugin-vast"; - const $style = document.getElementById(id); - if ($style) $style.textContent = (0, _styleLessDefault.default); - else { - const $style = document.createElement("style"); - $style.id = id; - $style.textContent = (0, _styleLessDefault.default); - document.head.appendChild($style); +if (typeof window !== "undefined") window["artplayerPluginVast"] = artplayerPluginVast; + +},{"@glomex/vast-ima-player":"9NIGZ","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"9NIGZ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "Player", ()=>nt); +parcelHelpers.export(exports, "PlayerError", ()=>T); +parcelHelpers.export(exports, "PlayerEvent", ()=>R); +parcelHelpers.export(exports, "PlayerOptions", ()=>E); +parcelHelpers.export(exports, "loadImaSdk", ()=>e); +var t = null, i = function() { + t = null; +}, e = function() { + var e = window; + return e.google && e.google.ima ? Promise.resolve(e.google.ima) : t || ((t = new Promise(function(t, i) { + var e = document.createElement("script"); + e.async = !0, e.src = "https://imasdk.googleapis.com/js/sdkloader/ima3.js", e.onload = t, e.onerror = i, document.body.appendChild(e); + }).then(function() { + return e.google.ima; + })).then(i).catch(i), t); +}; +function n(t, i) { + for(var e = 0; e < i.length; e++){ + var n = i[e]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n); } } -if (typeof window !== "undefined") window["ArtplayerPluginVast"] = artplayerPluginVast; +function s(t, i, e) { + return i && n(t.prototype, i), e && n(t, e), t; +} +function h() { + return h = Object.assign || function(t) { + for(var i = 1; i < arguments.length; i++){ + var e = arguments[i]; + for(var n in e)Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); + } + return t; + }, h.apply(this, arguments); +} +function r(t, i) { + t.prototype = Object.create(i.prototype), t.prototype.constructor = t, a(t, i); +} +function o(t) { + return o = Object.setPrototypeOf ? Object.getPrototypeOf : function(t) { + return t.__proto__ || Object.getPrototypeOf(t); + }, o(t); +} +function a(t, i) { + return a = Object.setPrototypeOf || function(t, i) { + return t.__proto__ = i, t; + }, a(t, i); +} +function u() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})), !0; + } catch (t) { + return !1; + } +} +function c(t, i, e) { + return c = u() ? Reflect.construct : function(t, i, e) { + var n = [ + null + ]; + n.push.apply(n, i); + var s = new (Function.bind.apply(t, n)); + return e && a(s, e.prototype), s; + }, c.apply(null, arguments); +} +function d(t) { + var i = "function" == typeof Map ? new Map : void 0; + return d = function(t) { + if (null === t || -1 === Function.toString.call(t).indexOf("[native code]")) return t; + if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== i) { + if (i.has(t)) return i.get(t); + i.set(t, e); + } + function e() { + return c(t, arguments, o(this).constructor); + } + return e.prototype = Object.create(t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0 + } + }), a(e, t); + }, d(t); +} +function l(t) { + if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return t; +} +function f(t, i) { + (null == i || i > t.length) && (i = t.length); + for(var e = 0, n = new Array(i); e < i; e++)n[e] = t[e]; + return n; +} +var v = 0; +function b(t) { + return "__private_" + v++ + "_" + t; +} +function w(t, i) { + if (!Object.prototype.hasOwnProperty.call(t, i)) throw new TypeError("attempted to use private field on non-instance"); + return t; +} +var m = {}; +m.CustomEvent = "function" == typeof CustomEvent ? CustomEvent : function(t) { + return i[t] = new i("").constructor[t], i; + function i(t, i) { + i || (i = {}); + var e = document.createEvent("CustomEvent"); + return e.initCustomEvent(t, !!i.bubbles, !!i.cancelable, i.detail), e; + } +}("prototype"); +var p, y, O = m.CustomEvent, j = b("mediaElement"), g = b("currentTime"), A = b("enabled"), k = function() { + function t(t) { + Object.defineProperty(this, j, { + writable: !0, + value: void 0 + }), Object.defineProperty(this, g, { + writable: !0, + value: void 0 + }), Object.defineProperty(this, A, { + writable: !0, + value: void 0 + }), this.seeking = void 0, w(this, j)[j] = t, w(this, g)[g] = 0, w(this, A)[A] = !1, this.seeking = !1, this.t = this.t.bind(this), this.i = this.i.bind(this), this.h = this.h.bind(this), this.enable(); + } + var i = t.prototype; + return i.i = function() { + this.seeking = !0; + }, i.h = function() { + this.seeking = !1; + }, i.t = function() { + var t, i; + this.seeking || null != (t = w(this, j)[j]) && t.paused || (w(this, g)[g] = null == (i = w(this, j)[j]) ? void 0 : i.currentTime); + }, i.enable = function() { + var t, i, e; + w(this, A)[A] || (null == (t = w(this, j)[j]) || t.addEventListener("seeking", this.i), null == (i = w(this, j)[j]) || i.addEventListener("seeked", this.h), null == (e = w(this, j)[j]) || e.addEventListener("timeupdate", this.t), w(this, A)[A] = !0); + }, i.disable = function() { + var t, i, e; + w(this, A)[A] && (null == (t = w(this, j)[j]) || t.removeEventListener("seeking", this.i), null == (i = w(this, j)[j]) || i.removeEventListener("seeked", this.h), null == (e = w(this, j)[j]) || e.removeEventListener("timeupdate", this.t), w(this, A)[A] = !1); + }, i.play = function() { + var t = this; + return new Promise(function(i) { + var e; + i(null == (e = w(t, j)[j]) ? void 0 : e.play()); + }); + }, i.pause = function() { + var t; + null == (t = w(this, j)[j]) || t.pause(); + }, i.reset = function() { + w(this, g)[g] = 0, w(this, A)[A] = !1, this.seeking = !1, this.enable(); + }, i.destroy = function() { + w(this, g)[g] = 0, w(this, A)[A] = !1, this.seeking = !1, this.disable(), w(this, j)[j] = void 0; + }, s(t, [ + { + key: "enabled", + get: function() { + return w(this, A)[A]; + } + }, + { + key: "currentTime", + get: function() { + return w(this, g)[g]; + } + }, + { + key: "duration", + get: function() { + var t; + return null == (t = w(this, j)[j]) ? void 0 : t.duration; + } + }, + { + key: "muted", + get: function() { + var t; + return null == (t = w(this, j)[j]) ? void 0 : t.muted; + } + }, + { + key: "volume", + get: function() { + var t; + return null == (t = w(this, j)[j]) ? void 0 : t.volume; + } + } + ]), t; +}(), C = function() { + function t() { + this.delegate = document.createDocumentFragment(); + } + var i = t.prototype; + return i.addEventListener = function() { + this.delegate.addEventListener.apply(this.delegate, [].slice.call(arguments)); + }, i.dispatchEvent = function() { + return this.delegate.dispatchEvent.apply(this.delegate, [].slice.call(arguments)); + }, i.removeEventListener = function() { + return this.delegate.removeEventListener.apply(this.delegate, [].slice.call(arguments)); + }, t; +}(), P = [ + "abort", + "canplay", + "canplaythrough", + "durationchange", + "emptied", + "ended", + "error", + "loadeddata", + "loadedmetadata", + "loadstart", + "pause", + "play", + "playing", + "progress", + "ratechange", + "seeked", + "seeking", + "stalled", + "suspend", + "timeupdate", + "volumechange", + "waiting" +]; +!function(t) { + t.MEDIA_START = "MediaStart", t.MEDIA_IMPRESSION = "MediaImpression", t.MEDIA_STOP = "MediaStop", t.MEDIA_CUE_POINTS_CHANGE = "MediaCuePointsChange", t.MEDIA_RESUMED = "MediaResumed"; +}(p || (p = {})), function(t) { + t.AD_ERROR = "AdError", t.AD_BUFFERING = "AdBuffering", t.LOADED = "AdLoaded", t.IMPRESSION = "AdImpression", t.STARTED = "AdStarted", t.FIRST_QUARTILE = "AdFirstQuartile", t.MIDPOINT = "AdMidpoint", t.THIRD_QUARTILE = "AdThirdQuartile", t.AD_PROGRESS = "AdProgress", t.COMPLETE = "AdComplete", t.CLICK = "AdClick", t.PAUSED = "AdPaused", t.RESUMED = "AdResumed", t.SKIPPED = "AdSkipped", t.SKIPPABLE_STATE_CHANGED = "AdSkippableStateChanged", t.VOLUME_CHANGED = "AdVolumeChanged", t.VOLUME_MUTED = "AdMuted", t.AD_METADATA = "AdMetadata", t.AD_BREAK_READY = "AdBreakReady", t.CONTENT_PAUSE_REQUESTED = "AdContentPauseRequested", t.CONTENT_RESUME_REQUESTED = "AdContentResumeRequested", t.ALL_ADS_COMPLETED = "AdAllAdsCompleted", t.DURATION_CHANGE = "AdDurationChange", t.INTERACTION = "AdInteraction", t.LINEAR_CHANGED = "AdLinearChanged", t.LOG = "AdLog", t.USER_CLOSE = "AdUserClose", t.AD_CAN_PLAY = "AdCanPlay", t.EXPANDED_CHANGED = "AdExpandedChanged", t.VIEWABLE_IMPRESSION = "AdViewableImpression"; +}(y || (y = {})); +var R = h({}, y, p), E = function() { + this.disableCustomPlaybackForIOS10Plus = !1, this.autoResize = !0, this.clickTrackingElement = void 0; +}, T = function(t) { + function i() { + var i; + return (i = t.call.apply(t, [ + this + ].concat([].slice.call(arguments))) || this).errorCode = void 0, i.innerError = void 0, i.type = void 0, i.vastErrorCode = void 0, i; + } + return r(i, t), i; +}(d(Error)); +T.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT = 9e3, T.ERROR_CODE_REQUEST_ADS_TIMEOUT = 9001; +var S = b("mediaElement"), M = b("adElement"), x = b("customPlayhead"), I = b("adsRenderingSettings"), B = b("ima"), L = b("adDisplayContainer"), D = b("adsManager"), W = b("width"), _ = b("height"), q = b("adsLoader"), F = b("playerOptions"), N = b("resizeObserver"), V = b("currentAd"), G = b("loadedAd"), Q = b("mediaStartTriggered"), U = b("mediaImpressionTriggered"), z = b("mediaInActivation"), Z = b("customPlaybackTimeAdjustedOnEnded"), $ = b("cuePoints"), H = b("adCurrentTime"), J = b("adDuration"), K = b("startAdCallback"), X = b("adsManagerLoadedTimeout"), Y = b("requestAdsTimeout"), tt = b("wasExternallyPaused"), it = b("lastNonZeroAdVolume"), et = b("activatePromise"), nt = function(t) { + function i(i, e, n, s, h) { + var r; + void 0 === s && (s = new i.AdsRenderingSettings), void 0 === h && (h = new E), r = t.call(this) || this, Object.defineProperty(l(r), S, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), M, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), x, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), I, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), B, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), L, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), D, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), W, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), _, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), q, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), F, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), N, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), V, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), G, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), Q, { + writable: !0, + value: !1 + }), Object.defineProperty(l(r), U, { + writable: !0, + value: !1 + }), Object.defineProperty(l(r), z, { + writable: !0, + value: !1 + }), Object.defineProperty(l(r), Z, { + writable: !0, + value: !1 + }), Object.defineProperty(l(r), $, { + writable: !0, + value: [] + }), Object.defineProperty(l(r), H, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), J, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), K, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), X, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), Y, { + writable: !0, + value: void 0 + }), Object.defineProperty(l(r), tt, { + writable: !0, + value: !1 + }), Object.defineProperty(l(r), it, { + writable: !0, + value: 1 + }), Object.defineProperty(l(r), et, { + writable: !0, + value: Promise.resolve() + }), w(l(r), S)[S] = e, w(l(r), M)[M] = n, w(l(r), B)[B] = i, w(l(r), F)[F] = h, w(l(r), I)[I] = s, w(l(r), I)[I].restoreCustomPlaybackStateOnAdBreakComplete = !0, h.disableCustomPlaybackForIOS10Plus && !w(l(r), S)[S].hasAttribute("playsinline") && w(l(r), S)[S].setAttribute("playsinline", ""), w(l(r), B)[B].settings.setDisableCustomPlaybackForIOS10Plus(h.disableCustomPlaybackForIOS10Plus), w(l(r), x)[x] = new k(w(l(r), S)[S]), r.o = r.o.bind(l(r)), P.forEach(function(t) { + w(l(r), S)[S].addEventListener(t, r.o); + }), r.u = r.u.bind(l(r)), r.l = r.l.bind(l(r)); + var o = w(l(r), S)[S], a = o.offsetHeight, u = o.offsetWidth; + return w(l(r), W)[W] = u, w(l(r), _)[_] = a, h.autoResize && window.ResizeObserver && (w(l(r), N)[N] = new window.ResizeObserver(function(t) { + return r.v(t); + }), w(l(r), N)[N].observe(w(l(r), S)[S])), r; + } + r(i, t); + var e = i.prototype; + return e.activate = function() { + var t = this; + if (!w(this, Q)[Q] && !w(this, z)[z] && (w(this, z)[z] = !0, w(this, S)[S].paused)) { + var i = function() { + return w(t, S)[S].pause(), new Promise(function(i) { + setTimeout(function() { + w(t, z)[z] = !1, i(); + }, 1); + }); + }; + w(this, et)[et] = new Promise(function(i) { + return i(w(t, S)[S].play()); + }).then(i).catch(i); + } + }, e.playAds = function(t) { + this.m(t); + }, e.loadAds = function(t, i) { + this.m(t, !1, i); + }, e.p = function() { + var t = this; + return w(this, et)[et].then(function() { + return new Promise(function(i) { + return i(w(t, S)[S].play()); + }); + }); + }, e.m = function(t, i, e) { + var n = this; + void 0 === i && (i = !0), this.reset(), this.O(), w(this, B)[B].settings.setAutoPlayAdBreaks(i), w(this, S)[S].ended && (w(this, x)[x].reset(), w(this, S)[S].currentTime = 0), w(this, K)[K] = e, t.linearAdSlotWidth = w(this, W)[W], t.linearAdSlotHeight = w(this, _)[_], t.nonLinearAdSlotWidth = w(this, W)[W], t.nonLinearAdSlotHeight = w(this, _)[_], null == t.contentDuration && (t.contentDuration = -3), w(this, X)[X] = window.setTimeout(function() { + var t = new T("No adsManagerLoadedEvent within 5000ms."); + t.errorCode = T.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT, n.j(t); + }, 5e3), w(this, Y)[Y] = window.setTimeout(function() { + var t = new T("No response for ads-request within 10000ms."); + t.errorCode = T.ERROR_CODE_REQUEST_ADS_TIMEOUT, n.j(t); + }, 1e4), w(this, q)[q].requestAds(t); + }, e.O = function() { + w(this, L)[L] = new (w(this, B))[B].AdDisplayContainer(w(this, M)[M], w(this, F)[F].disableCustomPlaybackForIOS10Plus ? void 0 : w(this, S)[S], w(this, F)[F].clickTrackingElement), w(this, q)[q] = new (w(this, B))[B].AdsLoader(w(this, L)[L]), w(this, q)[q].addEventListener(w(this, B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.u, !1), w(this, q)[q].addEventListener(w(this, B)[B].AdErrorEvent.Type.AD_ERROR, this.l, !1); + }, e.skipAd = function() { + w(this, D)[D] && w(this, D)[D].skip(); + }, e.discardAdBreak = function() { + w(this, D)[D] && w(this, D)[D].discardAdBreak(); + }, e.play = function() { + var t = this; + w(this, tt)[tt] = !1, !w(this, x)[x].enabled && w(this, D)[D] ? w(this, D)[D].resume() : w(this, X)[X] || this.p().then(function() {}).catch(function() { + t.dispatchEvent(new O("pause")); + }); + }, e.pause = function() { + w(this, tt)[tt] = !0, !w(this, x)[x].enabled && w(this, D)[D] ? w(this, D)[D].pause() : w(this, S)[S].pause(); + }, e.g = function(t) { + w(this, $)[$] = [].concat(t), this.dispatchEvent(new O(R.MEDIA_CUE_POINTS_CHANGE, { + detail: { + cuePoints: [].concat(w(this, $)[$]) + } + })); + }, e.A = function(t) { + var i = this.cuePoints.indexOf(t); + i > -1 && (w(this, $)[$].splice(i, 1), this.g(w(this, $)[$])); + }, e.resizeAd = function(t, i) { + w(this, W)[W] = t, w(this, _)[_] = i, w(this, D)[D] && w(this, D)[D].resize(t, i, this.k()), w(this, M)[M].style.width = t + "px", w(this, M)[M].style.height = i + "px"; + }, e.reset = function(t) { + void 0 === t && (t = !1), t && (w(this, U)[U] = !1, w(this, Q)[Q] = !1, w(this, Z)[Z] = !1), this.C(), w(this, $)[$] = [], w(this, tt)[tt] = !1, w(this, K)[K] = void 0, w(this, D)[D] && w(this, D)[D].destroy(), w(this, D)[D] = void 0, w(this, B)[B].settings.setAutoPlayAdBreaks(!0), t && this.P(), w(this, M)[M].style.display = "none"; + }, e.P = function() { + w(this, q)[q] && (w(this, q)[q].removeEventListener(w(this, B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.u, !1), w(this, q)[q].removeEventListener(w(this, B)[B].AdErrorEvent.Type.AD_ERROR, this.l, !1), w(this, q)[q].destroy()), w(this, L)[L] && w(this, L)[L].destroy(); + }, e.destroy = function() { + var t, i, e, n, s = this; + this.reset(!0), w(this, x)[x].destroy(), P.forEach(function(t) { + w(s, S)[S].removeEventListener(t, s.o); + }), null == (t = w(this, q)[q]) || t.removeEventListener(w(this, B)[B].AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.u, !1), null == (i = w(this, L)[L]) || i.destroy(), null == (e = w(this, q)[q]) || e.destroy(), w(this, U)[U] = !1, w(this, Z)[Z] = !1, w(this, Q)[Q] = !1, null == (n = w(this, N)[N]) || n.disconnect(); + }, e.isCustomPlaybackUsed = function() { + return !1 === w(this, B)[B].settings.getDisableCustomPlaybackForIOS10Plus() && !w(this, M)[M].querySelector("video"); + }, e.C = function() { + window.clearTimeout(w(this, X)[X]), window.clearTimeout(w(this, Y)[Y]), w(this, X)[X] = void 0, w(this, Y)[Y] = void 0, w(this, V)[V] = void 0, w(this, H)[H] = void 0, w(this, J)[J] = void 0, w(this, M)[M].style.display = "none", w(this, M)[M].classList.remove("nonlinear"), w(this, D)[D] && this.R(); + }, e.o = function(t) { + var i = this; + if (w(this, x)[x].enabled || "volumechange" === t.type) { + if ("timeupdate" === t.type) { + if (w(this, S)[S].currentTime < .5) return; + if (w(this, D)[D]) { + var e = w(this, D)[D].getCuePoints().filter(function(t) { + return t >= 0 && t < w(i, x)[x].currentTime; + }).pop(); + this.A(e); + } + !w(this, U)[U] && w(this, Q)[Q] && (this.dispatchEvent(new O(R.MEDIA_IMPRESSION)), w(this, U)[U] = !0); + } + if ("play" !== t.type || w(this, Q)[Q] || w(this, z)[z] || (this.dispatchEvent(new O(R.MEDIA_START)), w(this, Q)[Q] = !0), "ended" === t.type && (this.isCustomPlaybackUsed() && w(this, S)[S].currentTime === w(this, S)[S].duration && w(this, $)[$].indexOf(-1) > -1 && (w(this, S)[S].currentTime = w(this, S)[S].duration - 1e-5, w(this, Z)[Z] = !0), w(this, q)[q].contentComplete(), w(this, D)[D] || this.T()), !window.ResizeObserver && w(this, F)[F].autoResize && "loadedmetadata" === t.type) { + var n = w(this, S)[S], s = n.offsetHeight, h = n.offsetWidth; + w(this, W)[W] = h, w(this, _)[_] = s, this.R(); + } + w(this, z)[z] && "volumechange" !== t.type || this.dispatchEvent(new O(t.type)); + } + }, e.S = function(t) { + var i = this, e = w(this, B)[B].AdEvent; + switch(t.type){ + case e.Type.LOADED: + var n = t.getAd(); + w(this, K)[K] && 0 === w(this, $)[$].length ? w(this, K)[K]({ + ad: n, + start: function() { + i.M(), w(i, K)[K] = void 0; + }, + startWithoutReset: function() { + i.M(); + } + }) : w(this, G)[G] = n; + break; + case e.Type.AD_BREAK_READY: + this.C(), w(this, K)[K] ? (w(this, K)[K]({ + ad: w(this, G)[G], + adBreakTime: t.getAdData().adBreakTime, + start: function() { + i.M(), w(i, K)[K] = void 0; + }, + startWithoutReset: function() { + i.M(); + } + }), w(this, G)[G] = void 0) : this.M(); + break; + case e.Type.STARTED: + var s = w(this, V)[V] = t.getAd(); + s.getAdPodInfo().getAdPosition() > 1 && w(this, D)[D].setVolume(w(this, D)[D].getVolume()), w(this, M)[M].classList.remove("nonlinear"), this.R(), s.isLinear() ? (w(this, x)[x].disable(), w(this, J)[J] = s.getDuration(), w(this, H)[H] = 0) : (w(this, M)[M].classList.add("nonlinear"), this.I()), w(this, M)[M].style.display = "", w(this, tt)[tt] && (w(this, tt)[tt] = !1, w(this, D)[D].pause()); + break; + case e.Type.ALL_ADS_COMPLETED: + if (w(this, Z)[Z]) return; + this.isCustomPlaybackUsed() && Boolean(w(this, V)[V]) && -1 !== w(this, V)[V].getAdPodInfo().getTimeOffset() && this.I(), this.reset(); + break; + case e.Type.CONTENT_PAUSE_REQUESTED: + this.C(), w(this, V)[V] = t.getAd(), w(this, M)[M].style.display = "", w(this, S)[S].pause(), this.R(), w(this, V)[V] && this.A(w(this, V)[V].getAdPodInfo().getTimeOffset()), w(this, D)[D].setVolume(w(this, S)[S].muted ? 0 : w(this, S)[S].volume), w(this, x)[x].disable(), w(this, J)[J] = w(this, V)[V].getDuration(), w(this, H)[H] = 0; + break; + case e.Type.CONTENT_RESUME_REQUESTED: + var h = Boolean(w(this, V)[V]); + if (h) { + var r = w(this, D)[D].getVolume(); + w(this, S)[S].muted = 0 === r, w(this, S)[S].volume = w(this, it)[it]; + } + w(this, Z)[Z] && (w(this, S)[S].currentTime = w(this, S)[S].duration + 1, w(this, Z)[Z] = !1), w(this, S)[S].ended ? (this.reset(), this.T()) : this.C(), h && (w(this, tt)[tt] = !1, this.I()); + break; + case e.Type.AD_METADATA: + this.g(w(this, D)[D].getCuePoints()), -1 === w(this, $)[$].indexOf(0) && (w(this, K)[K] ? w(this, K)[K]({ + start: function() { + i.I(), w(i, K)[K] = void 0; + }, + startWithoutReset: function() { + i.I(); + } + }) : this.I()); + break; + case e.Type.AD_PROGRESS: + var o = t.getAdData(); + w(this, H)[H] = o.currentTime, w(this, J)[J] = o.duration; + break; + case e.Type.LOG: + var a = t.getAdData(); + w(this, K)[K] ? w(this, K)[K]({ + start: function() { + i.I(), w(i, K)[K] = void 0; + }, + startWithoutReset: function() { + i.I(); + } + }) : a.adError && !w(this, V)[V] && this.I(); + break; + case e.Type.VOLUME_CHANGED: + var u = w(this, D)[D].getVolume(); + u > 0 && (w(this, it)[it] = u); + } + }, e.l = function(t) { + this.j(this.B(t)); + }, e.u = function(t) { + var i = this, e = w(this, B)[B], n = e.AdEvent, s = e.AdErrorEvent.Type.AD_ERROR; + window.clearTimeout(w(this, X)[X]); + var h = w(this, D)[D] = t.getAdsManager(w(this, x)[x], w(this, I)[I]); + Object.keys(n.Type).forEach(function(t) { + h.addEventListener(n.Type[t], function(e) { + if (i.S(e), R[t]) { + var n = [ + "LOG", + "AD_PROGRESS" + ].indexOf(t) > -1; + i.dispatchEvent(new O(R[t], { + detail: { + ad: e.getAd() || w(i, V)[V], + adData: n ? e.getAdData() : {} + } + })); + } + }); + }), h.addEventListener(s, function(t) { + return i.j(i.B(t)); + }); + try { + var r; + h.init(w(this, W)[W], w(this, _)[_], this.k()), h.setVolume(w(this, S)[S].muted ? 0 : w(this, S)[S].volume), null == (r = w(this, L)[L]) || r.initialize(), w(this, K)[K] || this.M(); + } catch (t) { + this.j(new T(t.message)); + } + }, e.M = function() { + if (w(this, Q)[Q] || (this.dispatchEvent(new O(R.MEDIA_START)), w(this, Q)[Q] = !0), w(this, D)[D]) try { + w(this, D)[D].start(); + } catch (t) { + this.j(new T(t.message)); + } + else this.I(); + }, e.T = function() { + var t = this; + setTimeout(function() { + w(t, U)[U] = !1, w(t, Q)[Q] = !1, w(t, Z)[Z] = !1, t.dispatchEvent(new O(R.MEDIA_STOP)); + }, 1); + }, e.v = function(t) { + for(var i, e = function(t, i) { + var e = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; + if (e) return (e = e.call(t)).next.bind(e); + if (Array.isArray(t) || (e = function(t, i) { + if (t) { + if ("string" == typeof t) return f(t, i); + var e = Object.prototype.toString.call(t).slice(8, -1); + return "Object" === e && t.constructor && (e = t.constructor.name), "Map" === e || "Set" === e ? Array.from(t) : "Arguments" === e || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e) ? f(t, i) : void 0; + } + }(t))) { + e && (t = e); + var n = 0; + return function() { + return n >= t.length ? { + done: !0 + } : { + done: !1, + value: t[n++] + }; + }; + } + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + }(t); !(i = e()).done;){ + var n = i.value; + n.contentBoxSize && 1 === n.contentBoxSize.length ? (w(this, W)[W] = n.contentBoxSize[0].inlineSize, w(this, _)[_] = n.contentBoxSize[0].blockSize) : n.contentBoxSize && n.contentBoxSize.inlineSize ? (w(this, W)[W] = n.contentBoxSize.inlineSize, w(this, _)[_] = n.contentBoxSize.blockSize) : (w(this, W)[W] = n.contentRect.width, w(this, _)[_] = n.contentRect.height); + } + this.R(); + }, e.R = function() { + if (w(this, F)[F].autoResize && w(this, D)[D]) { + var t = w(this, V)[V], i = this.k(); + t && !t.isLinear() ? t && (t.getWidth() > w(this, W)[W] || t.getHeight() > w(this, _)[_] ? this.resizeAd(w(this, W)[W], w(this, _)[_]) : (w(this, D)[D].resize(t.getWidth(), t.getHeight() + 20, i), w(this, M)[M].style.width = t.getWidth() + "px", w(this, M)[M].style.height = t.getHeight() + 20 + "px")) : this.resizeAd(w(this, W)[W], w(this, _)[_]); + } + }, e.k = function() { + return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement || w(this, S)[S].webkitDisplayingFullscreen ? w(this, B)[B].ViewMode.FULLSCREEN : w(this, B)[B].ViewMode.NORMAL; + }, e.I = function() { + var t = this; + w(this, M)[M].style.display = "none", w(this, S)[S].ended || (w(this, x)[x].enable(), w(this, tt)[tt] ? (w(this, S)[S].pause(), this.dispatchEvent(new O("pause"))) : (this.p().then(function() {}).catch(function() { + t.dispatchEvent(new O("pause")); + }), this.dispatchEvent(new O("play")), this.dispatchEvent(new O(R.MEDIA_RESUMED))), w(this, tt)[tt] = !1); + }, e.B = function(t) { + var i = t.getError(), e = new T(i.getMessage()); + return e.type = i.getType(), e.errorCode = i.getErrorCode(), e.vastErrorCode = i.getVastErrorCode && i.getVastErrorCode(), e.innerError = i.getInnerError(), e; + }, e.j = function(t) { + var i = this; + this.dispatchEvent(new O(R.AD_ERROR, { + detail: { + error: t + } + })), this.C(), w(this, K)[K] ? w(this, K)[K]({ + start: function() { + i.I(), w(i, K)[K] = void 0; + }, + startWithoutReset: function() { + i.I(); + } + }) : this.I(); + }, s(i, [ + { + key: "volume", + get: function() { + return !w(this, x)[x].enabled && w(this, D)[D] ? w(this, D)[D].getVolume() : w(this, S)[S].volume; + }, + set: function(t) { + !w(this, x)[x].enabled && w(this, D)[D] && w(this, D)[D].setVolume(t), w(this, S)[S].volume = t; + } + }, + { + key: "muted", + get: function() { + return !w(this, x)[x].enabled && w(this, D)[D] ? 0 === w(this, D)[D].getVolume() : w(this, S)[S].muted; + }, + set: function(t) { + !w(this, x)[x].enabled && w(this, D)[D] && w(this, D)[D].setVolume(t ? 0 : w(this, it)[it]), w(this, S)[S].muted = t; + } + }, + { + key: "currentTime", + get: function() { + return void 0 !== w(this, H)[H] ? w(this, H)[H] : w(this, S)[S].currentTime; + }, + set: function(t) { + w(this, x)[x].enabled && (w(this, S)[S].currentTime = t); + } + }, + { + key: "duration", + get: function() { + return void 0 !== w(this, J)[J] ? w(this, J)[J] : w(this, S)[S].duration; + } + }, + { + key: "cuePoints", + get: function() { + return [].concat(w(this, $)[$]); + } + } + ]), i; +}(C); -},{"bundle-text:./style.less":"8l0EI","@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"8l0EI":[function(require,module,exports) { -module.exports = "\n"; - -},{}],"5dUr6":[function(require,module,exports) { +},{"@parcel/transformer-js/src/esmodule-helpers.js":"5dUr6"}],"5dUr6":[function(require,module,exports) { exports.interopDefault = function(a) { return a && a.__esModule ? a : { default: a diff --git a/docs/uncompiled/artplayer-plugin-vast/index.js.map b/docs/uncompiled/artplayer-plugin-vast/index.js.map index 210225d2d..4cf091d05 100644 --- a/docs/uncompiled/artplayer-plugin-vast/index.js.map +++ b/docs/uncompiled/artplayer-plugin-vast/index.js.map @@ -1 +1 @@ -{"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAEwB;AAFxB;;AAEe,SAAS,oBAAoB,MAAM;IAC9C,OAAO,CAAC;QACJ,OAAO;YACH,MAAM;QACV;IACJ;AACJ;AAEA,IAAI,OAAO,aAAa,aAAa;IACjC,MAAM,KAAK;IACX,MAAM,SAAS,SAAS,cAAc,CAAC;IACvC,IAAI,QACA,OAAO,WAAW,GAAG,CAAA,GAAA,yBAAK,AAAD;SACtB;QACH,MAAM,SAAS,SAAS,aAAa,CAAC;QACtC,OAAO,EAAE,GAAG;QACZ,OAAO,WAAW,GAAG,CAAA,GAAA,yBAAK,AAAD;QACzB,SAAS,IAAI,CAAC,WAAW,CAAC;IAC9B;AACJ;AAEA,IAAI,OAAO,WAAW,aAClB,MAAM,CAAC,sBAAsB,GAAG;;;ACxBpC,OAAO,OAAO,GAAG;;;ACAjB,QAAQ,cAAc,GAAG,SAAU,CAAC;IAClC,OAAO,KAAK,EAAE,UAAU,GAAG,IAAI;QAAC,SAAS;IAAC;AAC5C;AAEA,QAAQ,iBAAiB,GAAG,SAAU,CAAC;IACrC,OAAO,cAAc,CAAC,GAAG,cAAc;QAAC,OAAO;IAAI;AACrD;AAEA,QAAQ,SAAS,GAAG,SAAU,MAAM,EAAE,IAAI;IACxC,OAAO,IAAI,CAAC,QAAQ,OAAO,CAAC,SAAU,GAAG;QACvC,IACE,QAAQ,aACR,QAAQ,gBACR,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,MAE3C;QAGF,OAAO,cAAc,CAAC,MAAM,KAAK;YAC/B,YAAY;YACZ,KAAK;gBACH,OAAO,MAAM,CAAC,IAAI;YACpB;QACF;IACF;IAEA,OAAO;AACT;AAEA,QAAQ,MAAM,GAAG,SAAU,IAAI,EAAE,QAAQ,EAAE,GAAG;IAC5C,OAAO,cAAc,CAAC,MAAM,UAAU;QACpC,YAAY;QACZ,KAAK;IACP;AACF","sources":["packages/artplayer-plugin-vast/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-51ac63d836a077a2.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import style from 'bundle-text:./style.less';\n\nexport default function artplayerPluginVast(option) {\n return (art) => {\n return {\n name: 'artplayerPluginVast',\n };\n };\n}\n\nif (typeof document !== 'undefined') {\n const id = 'artplayer-plugin-vast';\n const $style = document.getElementById(id);\n if ($style) {\n $style.textContent = style;\n } else {\n const $style = document.createElement('style');\n $style.id = id;\n $style.textContent = style;\n document.head.appendChild($style);\n }\n}\n\nif (typeof window !== 'undefined') {\n window['ArtplayerPluginVast'] = artplayerPluginVast;\n}\n","module.exports = \"91964bfa4021818a\";","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file +{"mappings":"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","sources":["packages/artplayer-plugin-vast/src/index.js","packages/artplayer-plugin-vast/node_modules/_@glomex_vast-ima-player@1.21.0@@glomex/vast-ima-player/dist/vast-ima-player.module.js","packages/artplayer-plugin-vast/node_modules/_@glomex_vast-ima-player@1.21.0@@glomex/vast-ima-player/node_modules/@alugha/ima/lib/esm/loadScript.js","packages/artplayer-plugin-vast/node_modules/_@glomex_vast-ima-player@1.21.0@@glomex/vast-ima-player/node_modules/@alugha/ima/lib/esm/loadImaSdk.js","packages/artplayer-plugin-vast/node_modules/_@glomex_vast-ima-player@1.21.0@@glomex/vast-ima-player/node_modules/@ungap/custom-event/esm/index.js","packages/artplayer-plugin-vast/node_modules/_@glomex_vast-ima-player@1.21.0@@glomex/vast-ima-player/src/vast-ima-player.ts","packages/artplayer-plugin-vast/node_modules/_@glomex_vast-ima-player@1.21.0@@glomex/vast-ima-player/src/custom-playhead.ts","packages/artplayer-plugin-vast/node_modules/_@glomex_vast-ima-player@1.21.0@@glomex/vast-ima-player/src/delegated-event-target.ts","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import { Player, PlayerOptions, loadImaSdk } from '@glomex/vast-ima-player';\n\nexport default function artplayerPluginVast(callback) {\n return async (art) => {\n const { template, constructor } = art;\n const { createElement, setStyles, append } = constructor.utils;\n const { $video, $player } = template;\n\n await loadImaSdk();\n const google = window.google;\n const ima = google.ima;\n\n const adsRenderingSettings = new ima.AdsRenderingSettings();\n const playerOptions = new PlayerOptions();\n\n const id = `art-${Date.now()}`;\n const $container = createElement('div');\n append($player, $container);\n $container.id = id;\n setStyles($container, {\n position: 'absolute',\n inset: '0',\n width: '100%',\n height: '100%',\n zIndex: '150',\n display: 'none',\n });\n\n const imaPlayer = new Player(ima, $video, $container, adsRenderingSettings, playerOptions);\n\n function playUrl(url) {\n const playAdsRequest = new ima.AdsRequest();\n playAdsRequest.adTagUrl = url;\n imaPlayer.playAds(playAdsRequest);\n }\n\n function playRes(res) {\n const playAdsRequest = new ima.AdsRequest();\n playAdsRequest.adsResponse = res;\n imaPlayer.playAds(playAdsRequest);\n }\n\n if (typeof callback === 'function') {\n await callback({ art, id, ima, imaPlayer, $container, playUrl, playRes });\n }\n\n return {\n name: 'artplayerPluginVast',\n };\n };\n}\n\nif (typeof window !== 'undefined') {\n window['artplayerPluginVast'] = artplayerPluginVast;\n}\n",null,"// Asynchronous loader for external scripts\nvar loadScript = function (src) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = src;\n script.onload = resolve;\n script.onerror = reject;\n document.body.appendChild(script);\n });\n};\nexport default loadScript;\n","import loadScript from \"./loadScript\";\nvar imaSdkSrc = \"https://imasdk.googleapis.com/js/sdkloader/ima3.js\";\nvar pendingPromise = null;\nvar promiseFinished = function () {\n pendingPromise = null;\n};\nvar loadImaSdk = function () {\n var w = window;\n if (w.google && w.google.ima) {\n return Promise.resolve(w.google.ima);\n }\n if (pendingPromise) {\n return pendingPromise;\n }\n pendingPromise = loadScript(imaSdkSrc).then(function () { return w.google.ima; });\n pendingPromise.then(promiseFinished).catch(promiseFinished);\n return pendingPromise;\n};\nexport default loadImaSdk;\n","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\nself.CustomEvent = typeof CustomEvent === 'function' ?\n CustomEvent :\n (function (__p__) {\n CustomEvent[__p__] = new CustomEvent('').constructor[__p__];\n return CustomEvent;\n function CustomEvent(type, init) {\n if (!init) init = {};\n var e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, !!init.bubbles, !!init.cancelable, init.detail);\n return e;\n }\n }('prototype'));\nexport default self.CustomEvent;\n","/**\n * tslint:disable:max-classes-per-file\n *\n * @format\n */\n\nimport type { ImaSdk, google } from '@alugha/ima';\nimport CustomEvent from '@ungap/custom-event';\nimport { CustomPlayhead } from './custom-playhead';\nimport { DelegatedEventTarget } from './delegated-event-target';\n\nconst IGNORE_UNTIL_CURRENT_TIME = 0.5;\nconst ADS_MANAGER_LOADED_TIMEOUT = 5000;\nconst REQUEST_ADS_TIMEOUT = 10000;\nconst MEDIA_ELEMENT_EVENTS = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n];\n\n/**\n * Additional media events that help managing the\n * lifecycle of a media file playback.\n */\nenum AdditionalMediaEvent {\n /** Fired when initial media file play happened. */\n MEDIA_START = 'MediaStart',\n /** Fired when the first frame of the media file is played after linear preroll. */\n MEDIA_IMPRESSION = 'MediaImpression',\n /** Fired when the media file playback finished after potential postroll. */\n MEDIA_STOP = 'MediaStop',\n /** Fired when ad break cue points change. */\n MEDIA_CUE_POINTS_CHANGE = 'MediaCuePointsChange',\n /**\n * Fired when media resumes playback. CONTENT_RESUME_REQUESTED\n * is sometimes triggered before playback and this event is only\n * triggered after ad is finished or when content resumes.\n */\n MEDIA_RESUMED = 'MediaResumed'\n}\n\n/**\n * Adjusted enum of https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/reference/js/google.ima.AdEvent\n * to follow VPAID spec event names.\n */\nenum ImaToAdEventMap {\n // most relevant Ad events\n /**\n * Fired when an ad error occurred (standalone ad or ad within an ad rule).\n * IMA provides these events on different objects and this event normalizes it.\n */\n AD_ERROR = 'AdError',\n /** Fired when the ad has stalled playback to buffer. */\n AD_BUFFERING = 'AdBuffering',\n /** Fired when ad data is available. */\n LOADED = 'AdLoaded',\n /** Fired when the impression URL has been pinged. */\n IMPRESSION = 'AdImpression',\n /** Fired when the ad starts playing. */\n STARTED = 'AdStarted',\n /** Fired when the ad playhead crosses first quartile. */\n FIRST_QUARTILE = 'AdFirstQuartile',\n /** Fired when the ad playhead crosses midpoint. */\n MIDPOINT = 'AdMidpoint',\n /** Fired when the ad playhead crosses third quartile. */\n THIRD_QUARTILE = 'AdThirdQuartile',\n /** Fired when the ad's current time value changes. */\n AD_PROGRESS = 'AdProgress',\n /** Fired when the ad completes playing. */\n COMPLETE = 'AdComplete',\n /** Fired when the ad is clicked. */\n CLICK = 'AdClick',\n /** Fired when the ad is paused. */\n PAUSED = 'AdPaused',\n /** Fired when the ad is resumed. */\n RESUMED = 'AdResumed',\n /** Fired when the ad is skipped by the user. */\n SKIPPED = 'AdSkipped',\n /** Fired when the displayed ads skippable state is changed. */\n SKIPPABLE_STATE_CHANGED = 'AdSkippableStateChanged',\n /** Fired when the ad volume has changed. */\n VOLUME_CHANGED = 'AdVolumeChanged',\n /** Fired when the ad volume has been muted. */\n VOLUME_MUTED = 'AdMuted',\n\n // Ad lifecycle events\n /** Fired when an ads list is loaded. This is when ad rule cuePoints are available. */\n AD_METADATA = 'AdMetadata',\n /** Fired when an ad rule or a VMAP ad break would have played if autoPlayAdBreaks is false. */\n AD_BREAK_READY = 'AdBreakReady',\n /** Fired when content should be paused. This usually happens right before an ad is about to cover the content. */\n CONTENT_PAUSE_REQUESTED = 'AdContentPauseRequested',\n /** Fired when content should be resumed. This usually happens when an ad finishes or collapses. */\n CONTENT_RESUME_REQUESTED = 'AdContentResumeRequested',\n /** Fired when the ads manager is done playing all the ads. */\n ALL_ADS_COMPLETED = 'AdAllAdsCompleted',\n\n // VPAID events\n /** Fired when the ad's duration changes. */\n DURATION_CHANGE = 'AdDurationChange',\n /** Fired when an ad triggers the interaction callback. Ad interactions contain an interaction ID string in the ad data. */\n INTERACTION = 'AdInteraction',\n /** Fired when the displayed ad changes from linear to nonlinear, or vice versa. */\n LINEAR_CHANGED = 'AdLinearChanged',\n /** Fired when a non-fatal error is encountered. The user need not take any action since the SDK will continue with the same or next ad playback depending on the error situation. */\n LOG = 'AdLog',\n /** Fired when the ad is closed by the user. */\n USER_CLOSE = 'AdUserClose',\n\n // Undocumented events\n /** Not document by IMA */\n AD_CAN_PLAY = 'AdCanPlay',\n /** Not document by IMA */\n EXPANDED_CHANGED = 'AdExpandedChanged',\n /** Not document by IMA */\n VIEWABLE_IMPRESSION = 'AdViewableImpression'\n}\n\ntype PlayerEvent = AdditionalMediaEvent | ImaToAdEventMap;\n\n/**\n * Available events of the VAST-IMA-Player.\n *\n * Also see https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/reference/js/google.ima.AdEvent\n *\n * The player also triggers the normal media element events\n * (https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events)\n * when the content playback happens. This is useful when\n * \"disableCustomPlaybackForIOS10Plus = false\" (default) is configured and\n * the same media element is used on iOS to render both ad and content.\n * Those event names are not enumerated here because they are known.\n */\nexport const PlayerEvent = {\n ...ImaToAdEventMap,\n ...AdditionalMediaEvent\n};\n\nexport class PlayerOptions {\n /** Sets whether to disable custom playback on iOS 10+ browsers. If true, ads will play inline if the content video is inline. This enables TrueView skippable ads. However, the ad will stay inline and not support iOS's native fullscreen. */\n disableCustomPlaybackForIOS10Plus: boolean = false;\n /** Enables or disables auto resizing of adsManager. If enabled it also resizes non-linear ads. */\n autoResize: boolean = true;\n /** Allows to have a separate 'Learn More' click tracking element on mobile. */\n clickTrackingElement?: HTMLElement;\n}\n\nexport class PlayerError extends Error {\n errorCode: number;\n innerError: Error;\n type: string;\n vastErrorCode: number;\n\n static ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT = 9000;\n static ERROR_CODE_REQUEST_ADS_TIMEOUT = 9001;\n\n constructor(...args) {\n super(...args);\n }\n}\n\ntype StartAd = {\n start: () => void;\n startWithoutReset: () => void;\n ad?: google.ima.Ad;\n adBreakTime?: number;\n};\n\ntype StartAdCallback = (startAd: StartAd) => void;\n\n/**\n * Convenience player wrapper for the Google IMA HTML5 SDK\n */\nexport class Player extends DelegatedEventTarget {\n #mediaElement: HTMLVideoElement;\n #adElement: HTMLElement;\n #customPlayhead: CustomPlayhead;\n #adsRenderingSettings: google.ima.AdsRenderingSettings;\n #ima: ImaSdk;\n #adDisplayContainer: google.ima.AdDisplayContainer | undefined;\n #adsManager: google.ima.AdsManager | undefined;\n #width: number;\n #height: number;\n #adsLoader: google.ima.AdsLoader;\n #playerOptions: PlayerOptions;\n #resizeObserver: any;\n #currentAd: google.ima.Ad;\n #loadedAd: google.ima.Ad;\n #mediaStartTriggered: boolean = false;\n #mediaImpressionTriggered: boolean = false;\n #mediaInActivation: boolean = false;\n #customPlaybackTimeAdjustedOnEnded: boolean = false;\n #cuePoints: number[] = [];\n #adCurrentTime: number;\n #adDuration: number;\n #startAdCallback: StartAdCallback;\n #adsManagerLoadedTimeout: number;\n #requestAdsTimeout: number;\n #wasExternallyPaused: boolean = false;\n #lastNonZeroAdVolume: number = 1;\n #activatePromise = Promise.resolve();\n\n constructor(\n ima: ImaSdk,\n mediaElement: HTMLVideoElement,\n adElement: HTMLElement,\n adsRenderingSettings: google.ima.AdsRenderingSettings = new ima.AdsRenderingSettings(),\n options: PlayerOptions = new PlayerOptions()\n ) {\n super();\n this.#mediaElement = mediaElement;\n this.#adElement = adElement;\n this.#ima = ima;\n this.#playerOptions = options;\n this.#adsRenderingSettings = adsRenderingSettings;\n // for iOS to reset to initial content state\n this.#adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete =\n true;\n\n if (\n options.disableCustomPlaybackForIOS10Plus &&\n !this.#mediaElement.hasAttribute('playsinline')\n ) {\n // assign \"playsinline\" when on iOS two video elements\n // will be used for content and ad playback\n this.#mediaElement.setAttribute('playsinline', '');\n }\n this.#ima.settings.setDisableCustomPlaybackForIOS10Plus(\n options.disableCustomPlaybackForIOS10Plus\n );\n\n // later used for to determine playhead for triggering midrolls\n // and to determine whether the player is currently playing content\n this.#customPlayhead = new CustomPlayhead(this.#mediaElement);\n this._handleMediaElementEvents = this._handleMediaElementEvents.bind(this);\n MEDIA_ELEMENT_EVENTS.forEach((eventName) => {\n this.#mediaElement.addEventListener(\n eventName,\n this._handleMediaElementEvents\n );\n });\n\n this._onAdsManagerLoaded = this._onAdsManagerLoaded.bind(this);\n this._onAdsLoaderError = this._onAdsLoaderError.bind(this);\n\n // initial synchronization of width / height\n const { offsetHeight, offsetWidth } = this.#mediaElement;\n this.#width = offsetWidth;\n this.#height = offsetHeight;\n\n if (options.autoResize) {\n // @ts-ignore\n if (window.ResizeObserver) {\n // @ts-ignore\n this.#resizeObserver = new window.ResizeObserver((entries) =>\n this._resizeObserverCallback(entries)\n );\n this.#resizeObserver.observe(this.#mediaElement);\n }\n }\n }\n\n /**\n * This allows synchronous activation of the media element\n * and the Google IMA ad-display-container. Useful when you\n * have to do async work before calling \"playAds\".\n */\n activate() {\n if (this.#mediaStartTriggered || this.#mediaInActivation) return;\n this.#mediaInActivation = true;\n if (this.#mediaElement.paused) {\n const ready = () => {\n this.#mediaElement.pause();\n return new Promise((resolve) => {\n setTimeout(() => {\n // We don't want to expose the activation detail\n // to the outside and ignore events during activation phase.\n // Waiting a little so that \"pause\" got emitted from above pause() call\n this.#mediaInActivation = false;\n resolve();\n }, 1);\n });\n };\n this.#activatePromise = new Promise((resolve) =>\n resolve(this.#mediaElement.play())\n )\n .then(ready)\n .catch(ready);\n }\n }\n\n /**\n * This is the entry point to start ad playback. It can be used\n * as such:\n *\n * - With a single VAST at the beginning to play a preroll\n * - Anyhwere during content playback with a single VAST\n * - With a single VMAP at the beginning\n */\n playAds(adsRequest: google.ima.AdsRequest) {\n this._requestAds(adsRequest);\n }\n\n /**\n * Similar to \"playAds\" method but with the difference\n * that it allows to first load the ad and start it separately\n * within the given callback.\n *\n * When a VAST or a VMAP ad break is given the callback is called\n * with a \"start\" method which either starts playing the individual\n * VAST ad or starts the VMAP ad break. If \"start\" method is not called\n * it won't play the ad.\n */\n loadAds(adsRequest: google.ima.AdsRequest, startAdCallback: StartAdCallback) {\n this._requestAds(adsRequest, false, startAdCallback);\n }\n\n private _mediaElementPlay() {\n return this.#activatePromise.then(\n () => new Promise((resolve) => resolve(this.#mediaElement.play()))\n );\n }\n\n private _requestAds(\n adsRequest: google.ima.AdsRequest,\n autoPlayAdBreaks: boolean = true,\n startAdCallback?: StartAdCallback\n ) {\n this.reset();\n this._setupIma();\n // it is important that this is set after\n // a new AdsLoader and AdDisplayContainer\n // was created because preloading ads wouldn't\n // work as expected for multiple ads\n this.#ima.settings.setAutoPlayAdBreaks(autoPlayAdBreaks);\n // in case of replay we go back to start\n if (this.#mediaElement.ended) {\n this.#customPlayhead.reset();\n this.#mediaElement.currentTime = 0;\n }\n this.#startAdCallback = startAdCallback;\n adsRequest.linearAdSlotWidth = this.#width;\n adsRequest.linearAdSlotHeight = this.#height;\n adsRequest.nonLinearAdSlotWidth = this.#width;\n adsRequest.nonLinearAdSlotHeight = this.#height;\n\n // see version 3.442.0 changelog about postroll prefetching\n // fixes issue with a disappearing nonlinear preroll that gets\n // followed by a linear postroll\n // https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/history\n if (adsRequest.contentDuration == null) {\n adsRequest.contentDuration = -3;\n }\n\n // trigger an error after 5s in case adsManagerLoaded\n // does not come up, so that content playback starts\n this.#adsManagerLoadedTimeout = window.setTimeout(() => {\n const error = new PlayerError(\n `No adsManagerLoadedEvent within ${ADS_MANAGER_LOADED_TIMEOUT}ms.`\n );\n error.errorCode = PlayerError.ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT;\n this._onAdError(error);\n }, ADS_MANAGER_LOADED_TIMEOUT);\n // trigger an error when no error / ad break ready / ... event\n // occurred within 5s after requesting ads\n this.#requestAdsTimeout = window.setTimeout(() => {\n const error = new PlayerError(\n `No response for ads-request within ${REQUEST_ADS_TIMEOUT}ms.`\n );\n error.errorCode = PlayerError.ERROR_CODE_REQUEST_ADS_TIMEOUT;\n this._onAdError(error);\n }, REQUEST_ADS_TIMEOUT);\n\n this.#adsLoader.requestAds(adsRequest);\n }\n\n private _setupIma() {\n this.#adDisplayContainer = new this.#ima.AdDisplayContainer(\n this.#adElement,\n // used as single element for linear ad playback on iOS\n this.#playerOptions.disableCustomPlaybackForIOS10Plus\n ? undefined\n : this.#mediaElement,\n // allows to override the 'Learn More' button on mobile\n this.#playerOptions.clickTrackingElement\n );\n this.#adsLoader = new this.#ima.AdsLoader(this.#adDisplayContainer);\n this.#adsLoader.addEventListener(\n this.#ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,\n this._onAdsManagerLoaded,\n false\n );\n this.#adsLoader.addEventListener(\n this.#ima.AdErrorEvent.Type.AD_ERROR,\n this._onAdsLoaderError,\n false\n );\n }\n\n skipAd() {\n if (this.#adsManager) {\n this.#adsManager.skip();\n }\n }\n\n discardAdBreak() {\n if (this.#adsManager) {\n this.#adsManager.discardAdBreak();\n }\n }\n\n /**\n * Starts playback of either content or ad element.\n */\n play() {\n this.#wasExternallyPaused = false;\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.resume();\n } else if (!this.#adsManagerLoadedTimeout) {\n // do not trigger play during ad loading process\n // so when \"play\" gets called externally twice it does\n // not start the content playback before the ad is loaded\n this._mediaElementPlay()\n .then(() => {\n // empty\n })\n .catch(() => {\n // just in case we don't receive a \"pause\" event\n this.dispatchEvent(new CustomEvent('pause'));\n });\n }\n }\n\n /**\n * Pauses playback of either content or ad element.\n */\n pause() {\n this.#wasExternallyPaused = true;\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.pause();\n } else {\n this.#mediaElement.pause();\n }\n }\n\n /**\n * Sets volume of either content or ad element.\n */\n set volume(volume: number) {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.setVolume(volume);\n }\n this.#mediaElement.volume = volume;\n }\n\n /**\n * Returns volume of either content or ad element.\n */\n get volume() {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n return this.#adsManager.getVolume();\n }\n return this.#mediaElement.volume;\n }\n\n /**\n * Sets muted state on either content or ad element.\n */\n set muted(muted: boolean) {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n this.#adsManager.setVolume(muted ? 0 : this.#lastNonZeroAdVolume);\n }\n this.#mediaElement.muted = muted;\n }\n\n /**\n * Returns muted state of either content or ad element.\n */\n get muted() {\n if (!this.#customPlayhead.enabled && this.#adsManager) {\n return this.#adsManager.getVolume() === 0;\n }\n return this.#mediaElement.muted;\n }\n\n /**\n * Sets current time of content element when not in ad playback mode.\n */\n set currentTime(currentTime: number) {\n if (this.#customPlayhead.enabled) {\n this.#mediaElement.currentTime = currentTime;\n }\n }\n\n /**\n * Returns current playhead time of either content or ad element.\n */\n get currentTime() {\n if (this.#adCurrentTime !== undefined) {\n return this.#adCurrentTime;\n }\n return this.#mediaElement.currentTime;\n }\n\n /**\n * Returns current duration of either content or ad element.\n */\n get duration() {\n if (this.#adDuration !== undefined) {\n return this.#adDuration;\n }\n return this.#mediaElement.duration;\n }\n\n /**\n * Returns list of ad break cue points that weren't played yet.\n * Only available after \"AdMetadata\" event when VMAP is passed in playAds.\n */\n get cuePoints() {\n return [...this.#cuePoints];\n }\n\n private _setCuePoints(cuePoints: number[]) {\n this.#cuePoints = [...cuePoints];\n this.dispatchEvent(\n new CustomEvent(PlayerEvent.MEDIA_CUE_POINTS_CHANGE, {\n detail: { cuePoints: [...this.#cuePoints] }\n })\n );\n }\n\n /**\n * Remove already played cuepoints\n *\n * @param timeOffset offset in seconds as defined in VMAP or 0 for preroll and -1 for postroll\n */\n private _adjustCuePoints(timeOffset) {\n const cuePointIndex = this.cuePoints.indexOf(timeOffset);\n if (cuePointIndex > -1) {\n this.#cuePoints.splice(cuePointIndex, 1);\n this._setCuePoints(this.#cuePoints);\n }\n }\n\n /**\n * Allows resizing the ad element. Useful when options.autoResize = false.\n */\n resizeAd(width: number, height: number) {\n this.#width = width;\n this.#height = height;\n if (this.#adsManager) {\n this.#adsManager.resize(width, height, this._getViewMode());\n }\n this.#adElement.style.width = `${width}px`;\n this.#adElement.style.height = `${height}px`;\n }\n\n /**\n * Cleans up current ad and ad manager session or the complete IMA (via force).\n *\n * Externally call this function with \"force = true\" when you want to switch\n * the content source or move the player to another DOM node before doing\n * another \"playAds\" or \"loadAds\", so that it does a full cleanup.\n *\n * @param force - enforce a full cleanup\n * @returns a promise which resolves after all the cleanup work is done\n */\n reset(force: boolean = false) {\n if (force) {\n this.#mediaImpressionTriggered = false;\n this.#mediaStartTriggered = false;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n }\n this._resetAd();\n this.#cuePoints = [];\n this.#wasExternallyPaused = false;\n this.#startAdCallback = undefined;\n // always destroy ads-manager\n if (this.#adsManager) {\n this.#adsManager.destroy();\n }\n this.#adsManager = undefined;\n // also reset autoplay ad breaks\n // because setting it to false again\n // in _setupIma would not properly\n // reset IMA\n this.#ima.settings.setAutoPlayAdBreaks(true);\n if (force) {\n this._resetIma();\n }\n this.#adElement.style.display = 'none';\n }\n\n private _resetIma() {\n if (this.#adsLoader) {\n this.#adsLoader.removeEventListener(\n this.#ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,\n this._onAdsManagerLoaded,\n false\n );\n this.#adsLoader.removeEventListener(\n this.#ima.AdErrorEvent.Type.AD_ERROR,\n this._onAdsLoaderError,\n false\n );\n this.#adsLoader.destroy();\n }\n\n if (this.#adDisplayContainer) {\n this.#adDisplayContainer.destroy();\n }\n }\n\n /**\n * Completely destroys this instance. It is unusable after that.\n */\n destroy() {\n this.reset(true);\n this.#customPlayhead.destroy();\n MEDIA_ELEMENT_EVENTS.forEach((eventName) => {\n this.#mediaElement.removeEventListener(\n eventName,\n this._handleMediaElementEvents\n );\n });\n this.#adsLoader?.removeEventListener(\n this.#ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,\n this._onAdsManagerLoaded,\n false\n );\n this.#adDisplayContainer?.destroy();\n this.#adsLoader?.destroy();\n this.#mediaImpressionTriggered = false;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n this.#mediaStartTriggered = false;\n this.#resizeObserver?.disconnect();\n }\n\n isCustomPlaybackUsed() {\n const { settings } = this.#ima;\n return (\n settings.getDisableCustomPlaybackForIOS10Plus() === false &&\n !this.#adElement.querySelector('video')\n );\n }\n\n private _resetAd() {\n window.clearTimeout(this.#adsManagerLoadedTimeout);\n window.clearTimeout(this.#requestAdsTimeout);\n this.#adsManagerLoadedTimeout = undefined;\n this.#requestAdsTimeout = undefined;\n this.#currentAd = undefined;\n this.#adCurrentTime = undefined;\n this.#adDuration = undefined;\n this.#adElement.style.display = 'none';\n this.#adElement.classList.remove('nonlinear');\n if (this.#adsManager) {\n // just ensure to start from defined width/height\n this._resizeAdsManager();\n }\n }\n\n private _handleMediaElementEvents(event: Event) {\n // always forward volumechange events\n if (!this.#customPlayhead.enabled && event.type !== 'volumechange') return;\n if (event.type === 'timeupdate') {\n // ignoring first timeupdate after play\n // because we can be in ad state too early\n if (this.#mediaElement.currentTime < IGNORE_UNTIL_CURRENT_TIME) {\n return;\n }\n if (this.#adsManager) {\n const cuePointsAfterJump = this.#adsManager\n .getCuePoints()\n .filter((cuePoint) => {\n return cuePoint >= 0 && cuePoint < this.#customPlayhead.currentTime;\n });\n const cuePointToRemove = cuePointsAfterJump.pop();\n // in case the ad-break lead to an error it cannot be detected which\n // ad break was affected because IMA could've preloaded an ad-break\n // without emitting an event for it\n this._adjustCuePoints(cuePointToRemove);\n }\n if (!this.#mediaImpressionTriggered && this.#mediaStartTriggered) {\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_IMPRESSION));\n this.#mediaImpressionTriggered = true;\n }\n }\n if (\n event.type === 'play' &&\n !this.#mediaStartTriggered &&\n !this.#mediaInActivation // we don't want to trigger \"MEDIA_START\" during activation phase\n ) {\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_START));\n this.#mediaStartTriggered = true;\n }\n if (event.type === 'ended') {\n if (\n this.isCustomPlaybackUsed() &&\n this.#mediaElement.currentTime === this.#mediaElement.duration &&\n this.#cuePoints.indexOf(-1) > -1\n ) {\n /* Fixing a bug with postroll on iOS\n * when a postroll gets started via \"contentComplete\"\n * and a single video-tag is used IMA does not reset\n * back to the content after the postroll finished.\n * Setting the time of the video tag a little shorter\n * than the duration, so that the video-tag is not set to \"ended\".\n */\n this.#mediaElement.currentTime = this.#mediaElement.duration - 0.00001;\n this.#customPlaybackTimeAdjustedOnEnded = true;\n }\n this.#adsLoader.contentComplete();\n if (!this.#adsManager) {\n this._mediaStop();\n }\n }\n // @ts-ignore\n if (\n !window.ResizeObserver &&\n this.#playerOptions.autoResize &&\n event.type === 'loadedmetadata'\n ) {\n // in case ResizeObserver is not supported we want\n // to use at least the size after the media element got\n // loaded\n const { offsetHeight, offsetWidth } = this.#mediaElement;\n this.#width = offsetWidth;\n this.#height = offsetHeight;\n this._resizeAdsManager();\n }\n if (!this.#mediaInActivation || event.type === 'volumechange') {\n this.dispatchEvent(new CustomEvent(event.type));\n }\n }\n\n private _handleAdsManagerEvents(event: google.ima.AdEvent) {\n const { AdEvent } = this.#ima;\n\n // @ts-ignore\n switch (event.type) {\n case AdEvent.Type.LOADED:\n // For an individual VAST ad inform on \"LOADED\" to\n // to allow starting the ad manually.\n // In case of VMAP it could preload ads before the\n // actual ad break. For VMAP it allows starting the ad\n // on \"AD_BREAK_READY\" instead.\n const loadedAd = event.getAd();\n if (this.#startAdCallback && this.#cuePoints.length === 0) {\n this.#startAdCallback({\n ad: loadedAd,\n start: () => {\n this._startAdsManager();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._startAdsManager();\n }\n });\n } else {\n this.#loadedAd = loadedAd;\n }\n break;\n case AdEvent.Type.AD_BREAK_READY:\n this._resetAd();\n // for a VMAP schedule\n if (this.#startAdCallback) {\n this.#startAdCallback({\n ad: this.#loadedAd,\n adBreakTime: event.getAdData().adBreakTime,\n start: () => {\n this._startAdsManager();\n // we reset after we received the first\n // start() after preroll\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._startAdsManager();\n }\n });\n this.#loadedAd = undefined;\n } else {\n this._startAdsManager();\n }\n break;\n case AdEvent.Type.STARTED:\n const ad = (this.#currentAd = event.getAd());\n // when playing an ad-pod IMA uses two video-tags\n // and switches between those but does not set volume\n // on both video-tags. Calling setVolume with the\n // previously stored volume synchronizes volume with\n // the other video-tag\n if (ad.getAdPodInfo().getAdPosition() > 1) {\n this.#adsManager.setVolume(this.#adsManager.getVolume());\n }\n this.#adElement.classList.remove('nonlinear');\n this._resizeAdsManager();\n // single or non-linear ads\n if (!ad.isLinear()) {\n this.#adElement.classList.add('nonlinear');\n this._playContent();\n } else {\n this.#customPlayhead.disable();\n this.#adDuration = ad.getDuration();\n this.#adCurrentTime = 0;\n }\n this.#adElement.style.display = '';\n if (this.#wasExternallyPaused) {\n this.#wasExternallyPaused = false;\n this.#adsManager.pause();\n }\n break;\n case AdEvent.Type.ALL_ADS_COMPLETED:\n if (this.#customPlaybackTimeAdjustedOnEnded) {\n return;\n }\n if (\n this.isCustomPlaybackUsed() &&\n Boolean(this.#currentAd) &&\n this.#currentAd.getAdPodInfo().getTimeOffset() !== -1\n ) {\n // on iOS it sometimes only triggers ALL_ADS_COMPLETED\n // before CONTENT_RESUME_REQUESTED\n this._playContent();\n }\n this.reset();\n break;\n case AdEvent.Type.CONTENT_PAUSE_REQUESTED:\n this._resetAd();\n this.#currentAd = event.getAd();\n this.#adElement.style.display = '';\n this.#mediaElement.pause();\n this._resizeAdsManager();\n if (this.#currentAd) {\n this._adjustCuePoints(this.#currentAd.getAdPodInfo().getTimeOffset());\n }\n // synchronize volume state because IMA does not do that\n this.#adsManager.setVolume(\n this.#mediaElement.muted ? 0 : this.#mediaElement.volume\n );\n // pause requested is a signal that an adbreak with a linear ad got started\n this.#customPlayhead.disable();\n this.#adDuration = this.#currentAd.getDuration();\n this.#adCurrentTime = 0;\n break;\n case AdEvent.Type.CONTENT_RESUME_REQUESTED:\n const adPlayedPreviously = Boolean(this.#currentAd);\n // synchronize ad volume state back to content\n // because IMA does not do that\n if (adPlayedPreviously) {\n const adVolume = this.#adsManager.getVolume();\n if (adVolume === 0) {\n this.#mediaElement.muted = true;\n } else {\n this.#mediaElement.muted = false;\n }\n this.#mediaElement.volume = this.#lastNonZeroAdVolume;\n }\n if (this.#customPlaybackTimeAdjustedOnEnded) {\n // Fixing the issue on iOS and postroll where we have to\n // adjust current time.\n // We jump back to the content end, so that \"ended\" is assigned again.\n this.#mediaElement.currentTime = this.#mediaElement.duration + 1;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n }\n\n if (this.#mediaElement.ended) {\n // after postroll\n this.reset();\n this._mediaStop();\n } else {\n this._resetAd();\n }\n // only start playback when there previously was an ad\n // CONTENT_RESUME_REQUESTED also gets triggered when \"start\"\n // is not called on preroll when \"loadAds\" is used\n if (adPlayedPreviously) {\n this.#wasExternallyPaused = false;\n this._playContent();\n }\n break;\n case AdEvent.Type.AD_METADATA:\n this._setCuePoints(this.#adsManager.getCuePoints());\n if (this.#cuePoints.indexOf(0) === -1) {\n if (!this.#startAdCallback) {\n this._playContent();\n } else {\n this.#startAdCallback({\n start: () => {\n this._playContent();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._playContent();\n }\n });\n }\n }\n break;\n case AdEvent.Type.AD_PROGRESS:\n const adDataProgress = event.getAdData();\n this.#adCurrentTime = adDataProgress.currentTime;\n this.#adDuration = adDataProgress.duration;\n break;\n case AdEvent.Type.LOG:\n const adData = event.getAdData();\n // called when an error occurred in VMAP (e.g. empty preroll)\n if (this.#startAdCallback) {\n this.#startAdCallback({\n start: () => {\n this._playContent();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._playContent();\n }\n });\n } else if (adData.adError && !this.#currentAd) {\n this._playContent();\n }\n break;\n case AdEvent.Type.VOLUME_CHANGED:\n const currentVolume = this.#adsManager.getVolume();\n if (currentVolume > 0) {\n this.#lastNonZeroAdVolume = currentVolume;\n }\n break;\n }\n }\n\n private _onAdsLoaderError(event: google.ima.AdErrorEvent) {\n this._onAdError(this._createPlayerErrorFromImaErrorEvent(event));\n }\n\n private _onAdsManagerLoaded(loadedEvent: google.ima.AdsManagerLoadedEvent) {\n const {\n AdEvent,\n AdErrorEvent: {\n Type: { AD_ERROR }\n }\n } = this.#ima;\n window.clearTimeout(this.#adsManagerLoadedTimeout);\n const adsManager = (this.#adsManager = loadedEvent.getAdsManager(\n this.#customPlayhead,\n this.#adsRenderingSettings\n ));\n\n Object.keys(AdEvent.Type).forEach((imaEventName) => {\n adsManager.addEventListener(AdEvent.Type[imaEventName], (event) => {\n this._handleAdsManagerEvents(event);\n if (PlayerEvent[imaEventName]) {\n const isEventWithAdData =\n ['LOG', 'AD_PROGRESS'].indexOf(imaEventName) > -1;\n this.dispatchEvent(\n new CustomEvent(PlayerEvent[imaEventName], {\n detail: {\n ad: event.getAd() || this.#currentAd,\n adData: isEventWithAdData ? event.getAdData() : {}\n }\n })\n );\n }\n });\n });\n adsManager.addEventListener(AD_ERROR, (event) =>\n this._onAdError(this._createPlayerErrorFromImaErrorEvent(event))\n );\n\n // start ad playback\n try {\n adsManager.init(this.#width, this.#height, this._getViewMode());\n // initial sync of volume so that muted autoplay works\n adsManager.setVolume(\n this.#mediaElement.muted ? 0 : this.#mediaElement.volume\n );\n // ensure to initialize the ad container at least once before\n // starting it. For playback with sound it requires a synchronous\n // .activate()\n this.#adDisplayContainer?.initialize();\n if (!this.#startAdCallback) {\n this._startAdsManager();\n }\n } catch (adError) {\n this._onAdError(new PlayerError(adError.message));\n }\n }\n\n private _startAdsManager() {\n if (!this.#mediaStartTriggered) {\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_START));\n this.#mediaStartTriggered = true;\n }\n if (this.#adsManager) {\n try {\n this.#adsManager.start();\n } catch (error) {\n this._onAdError(new PlayerError(error.message));\n }\n } else {\n this._playContent();\n }\n }\n\n private _mediaStop() {\n setTimeout(() => {\n this.#mediaImpressionTriggered = false;\n this.#mediaStartTriggered = false;\n this.#customPlaybackTimeAdjustedOnEnded = false;\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_STOP));\n }, 1);\n }\n\n private _resizeObserverCallback(entries) {\n for (const entry of entries) {\n if (entry.contentBoxSize && entry.contentBoxSize.length === 1) {\n this.#width = entry.contentBoxSize[0].inlineSize;\n this.#height = entry.contentBoxSize[0].blockSize;\n } else if (entry.contentBoxSize && entry.contentBoxSize.inlineSize) {\n this.#width = entry.contentBoxSize.inlineSize;\n this.#height = entry.contentBoxSize.blockSize;\n } else {\n this.#width = entry.contentRect.width;\n this.#height = entry.contentRect.height;\n }\n }\n this._resizeAdsManager();\n }\n\n private _resizeAdsManager() {\n if (!this.#playerOptions.autoResize || !this.#adsManager) return;\n\n const ad = this.#currentAd;\n const viewMode = this._getViewMode();\n const isNonLinearAd = ad && !ad.isLinear();\n\n if (!isNonLinearAd) {\n this.resizeAd(this.#width, this.#height);\n } else if (ad) {\n if (ad.getWidth() > this.#width || ad.getHeight() > this.#height) {\n this.resizeAd(this.#width, this.#height);\n } else {\n // in case we won't add pixels in height here it triggers a VAST error\n // that there is not enough space to render the nonlinear ad\n // when \"useStyledNonLinearAds\" is given the height needs to be higher so\n // that the close button fits in\n this.#adsManager.resize(ad.getWidth(), ad.getHeight() + 20, viewMode);\n this.#adElement.style.width = `${ad.getWidth()}px`;\n this.#adElement.style.height = `${ad.getHeight() + 20}px`;\n }\n }\n }\n\n private _getViewMode() {\n if (\n document.fullscreenElement || // Standard syntax\n // @ts-ignore\n document.webkitFullscreenElement || // Chrome, Safari and Opera synta\n // @ts-ignore\n document.mozFullScreenElement || // Firefox syntax\n // @ts-ignore\n document.msFullscreenElement || // IE/Edge syntax\n // @ts-ignore\n this.#mediaElement.webkitDisplayingFullscreen // Video in fullscreen, e.g. Safari iOS\n ) {\n return this.#ima.ViewMode.FULLSCREEN;\n }\n return this.#ima.ViewMode.NORMAL;\n }\n\n private _playContent() {\n this.#adElement.style.display = 'none';\n\n if (!this.#mediaElement.ended) {\n this.#customPlayhead.enable();\n if (!this.#wasExternallyPaused) {\n this._mediaElementPlay()\n .then(() => {\n // empty\n })\n .catch(() => {\n // just in case we don't receive a \"pause\" event\n this.dispatchEvent(new CustomEvent('pause'));\n });\n this.dispatchEvent(new CustomEvent('play'));\n this.dispatchEvent(new CustomEvent(PlayerEvent.MEDIA_RESUMED));\n } else {\n this.#mediaElement.pause();\n // somehow the above \"pause()\" does not send out pause event\n this.dispatchEvent(new CustomEvent('pause'));\n }\n this.#wasExternallyPaused = false;\n }\n }\n\n private _createPlayerErrorFromImaErrorEvent(event: google.ima.AdErrorEvent) {\n const error = event.getError();\n const playerError = new PlayerError(error.getMessage());\n playerError.type = error.getType();\n playerError.errorCode = error.getErrorCode();\n playerError.vastErrorCode =\n error.getVastErrorCode && error.getVastErrorCode();\n playerError.innerError = error.getInnerError();\n return playerError;\n }\n\n private _onAdError(error: PlayerError) {\n this.dispatchEvent(\n new CustomEvent(PlayerEvent.AD_ERROR, {\n detail: { error }\n })\n );\n this._resetAd();\n if (this.#startAdCallback) {\n this.#startAdCallback({\n start: () => {\n this._playContent();\n this.#startAdCallback = undefined;\n },\n startWithoutReset: () => {\n this._playContent();\n }\n });\n } else {\n this._playContent();\n }\n }\n}\n","/**\n * Improved version of: https://developers.google.com/interactive-media-ads/docs/sdks/html5/ad-rules#known-issues-with-mobile-safari\n */\nexport class CustomPlayhead {\n #mediaElement?: HTMLVideoElement;\n #currentTime?: number;\n #enabled: boolean;\n seeking: boolean;\n\n constructor(mediaElement: HTMLVideoElement) {\n this.#mediaElement = mediaElement;\n this.#currentTime = 0;\n this.#enabled = false;\n this.seeking = false;\n this._onTimeupdate = this._onTimeupdate.bind(this);\n this._onSeeking = this._onSeeking.bind(this);\n this._onSeeked = this._onSeeked.bind(this);\n this.enable();\n }\n\n private _onSeeking() {\n this.seeking = true;\n }\n\n private _onSeeked() {\n this.seeking = false;\n }\n\n private _onTimeupdate() {\n if (!this.seeking && !this.#mediaElement?.paused) {\n this.#currentTime = this.#mediaElement?.currentTime;\n }\n }\n\n get enabled() {\n return this.#enabled;\n }\n\n enable() {\n if (this.#enabled) return;\n this.#mediaElement?.addEventListener('seeking', this._onSeeking);\n this.#mediaElement?.addEventListener('seeked', this._onSeeked);\n this.#mediaElement?.addEventListener('timeupdate', this._onTimeupdate);\n this.#enabled = true;\n }\n\n disable() {\n if (!this.#enabled) return;\n this.#mediaElement?.removeEventListener('seeking', this._onSeeking);\n this.#mediaElement?.removeEventListener('seeked', this._onSeeked);\n this.#mediaElement?.removeEventListener('timeupdate', this._onTimeupdate);\n this.#enabled = false;\n }\n\n get currentTime() {\n return this.#currentTime;\n }\n\n get duration() {\n return this.#mediaElement?.duration;\n }\n\n get muted() {\n return this.#mediaElement?.muted;\n }\n\n get volume() {\n return this.#mediaElement?.volume;\n }\n\n play() {\n return new Promise((resolve) => {\n resolve(this.#mediaElement?.play());\n });\n }\n\n pause() {\n this.#mediaElement?.pause();\n }\n\n reset() {\n this.#currentTime = 0;\n this.#enabled = false;\n this.seeking = false;\n this.enable();\n }\n\n destroy() {\n this.#currentTime = 0;\n this.#enabled = false;\n this.seeking = false;\n this.disable();\n this.#mediaElement = undefined;\n }\n}\n","export class DelegatedEventTarget implements EventTarget {\n\n private delegate = document.createDocumentFragment();\n\n addEventListener(...args: any): void {\n this.delegate.addEventListener.apply(this.delegate, args);\n }\n\n dispatchEvent(...args: any): boolean {\n return this.delegate.dispatchEvent.apply(this.delegate, args);\n }\n\n removeEventListener(...args: any): void {\n return this.delegate.removeEventListener.apply(this.delegate, args);\n }\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (\n key === 'default' ||\n key === '__esModule' ||\n Object.prototype.hasOwnProperty.call(dest, key)\n ) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n"],"names":["pendingPromise","promiseFinished","loadImaSdk","w","window","google","ima","Promise","resolve","reject","script","document","createElement","async","src","onload","onerror","body","appendChild","then","catch","self","CustomEvent","__p__","constructor","type","init","e","createEvent","initCustomEvent","bubbles","cancelable","detail","AdditionalMediaEvent","ImaToAdEventMap","CustomPlayhead","mediaElement","seeking","_classPrivateFieldLooseBase","this","_onTimeupdate","bind","_onSeeking","_onSeeked","enable","_classPrivateFieldLoo","paused","_classPrivateFieldLoo2","currentTime","addEventListener","disable","removeEventListener","play","_this","_classPrivateFieldLoo9","pause","reset","destroy","undefined","_classPrivateFieldLoo11","duration","_classPrivateFieldLoo12","muted","_classPrivateFieldLoo13","volume","DelegatedEventTarget","delegate","createDocumentFragment","apply","dispatchEvent","MEDIA_ELEMENT_EVENTS","PlayerEvent","PlayerOptions","disableCustomPlaybackForIOS10Plus","autoResize","clickTrackingElement","PlayerError","errorCode","innerError","vastErrorCode","Error","ERROR_CODE_ADS_MANAGER_LOADED_TIMEOUT","ERROR_CODE_REQUEST_ADS_TIMEOUT","Player","adElement","adsRenderingSettings","options","AdsRenderingSettings","_this2","restoreCustomPlaybackStateOnAdBreakComplete","hasAttribute","setAttribute","settings","setDisableCustomPlaybackForIOS10Plus","_handleMediaElementEvents","forEach","eventName","_onAdsManagerLoaded","_onAdsLoaderError","offsetHeight","offsetWidth","ResizeObserver","entries","_resizeObserverCallback","observe","activate","ready","_this3","setTimeout","playAds","adsRequest","_requestAds","loadAds","startAdCallback","_mediaElementPlay","_this4","autoPlayAdBreaks","_setupIma","setAutoPlayAdBreaks","ended","linearAdSlotWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","contentDuration","error","_this5","_onAdError","requestAds","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","AdErrorEvent","AD_ERROR","skipAd","skip","discardAdBreak","enabled","resume","_this6","_setCuePoints","cuePoints","MEDIA_CUE_POINTS_CHANGE","_adjustCuePoints","timeOffset","cuePointIndex","indexOf","splice","resizeAd","width","height","resize","_getViewMode","style","force","_resetAd","_resetIma","display","_this7","disconnect","isCustomPlaybackUsed","getDisableCustomPlaybackForIOS10Plus","querySelector","clearTimeout","classList","remove","_resizeAdsManager","event","cuePointToRemove","getCuePoints","filter","cuePoint","_this8","pop","MEDIA_IMPRESSION","MEDIA_START","contentComplete","_mediaStop","_handleAdsManagerEvents","AdEvent","LOADED","loadedAd","getAd","length","ad","start","_this9","_startAdsManager","startWithoutReset","AD_BREAK_READY","adBreakTime","getAdData","STARTED","getAdPodInfo","getAdPosition","setVolume","getVolume","isLinear","getDuration","add","_playContent","ALL_ADS_COMPLETED","Boolean","getTimeOffset","CONTENT_PAUSE_REQUESTED","CONTENT_RESUME_REQUESTED","adPlayedPreviously","adVolume","AD_METADATA","AD_PROGRESS","adDataProgress","LOG","adData","adError","VOLUME_CHANGED","currentVolume","_createPlayerErrorFromImaErrorEvent","loadedEvent","adsManager","getAdsManager","Object","keys","imaEventName","_this10","isEventWithAdData","initialize","message","_this11","MEDIA_STOP","entry","contentBoxSize","inlineSize","blockSize","contentRect","viewMode","getWidth","getHeight","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","webkitDisplayingFullscreen","ViewMode","FULLSCREEN","NORMAL","_this12","MEDIA_RESUMED","getError","playerError","getMessage","getType","getErrorCode","getVastErrorCode","getInnerError","_this13"],"version":3,"file":"index.js.map","sourceRoot":"../../../"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-proxy-libmedia/index.js b/docs/uncompiled/artplayer-proxy-libmedia/index.js deleted file mode 100644 index 0c60baf80..000000000 --- a/docs/uncompiled/artplayer-proxy-libmedia/index.js +++ /dev/null @@ -1,188 +0,0 @@ -// modules are defined as an array -// [ module function, map of requires ] -// -// map of requires is short require name -> numeric require -// -// anything defined in a previous bundle is accessed via the -// orig method which is the require for previous bundles - -(function (modules, entry, mainEntry, parcelRequireName, globalName) { - /* eslint-disable no-undef */ - var globalObject = - typeof globalThis !== 'undefined' - ? globalThis - : typeof self !== 'undefined' - ? self - : typeof window !== 'undefined' - ? window - : typeof global !== 'undefined' - ? global - : {}; - /* eslint-enable no-undef */ - - // Save the require from previous bundle to this closure if any - var previousRequire = - typeof globalObject[parcelRequireName] === 'function' && - globalObject[parcelRequireName]; - - var cache = previousRequire.cache || {}; - // Do not use `require` to prevent Webpack from trying to bundle this call - var nodeRequire = - typeof module !== 'undefined' && - typeof module.require === 'function' && - module.require.bind(module); - - function newRequire(name, jumped) { - if (!cache[name]) { - if (!modules[name]) { - // if we cannot find the module within our internal map or - // cache jump to the current global require ie. the last bundle - // that was added to the page. - var currentRequire = - typeof globalObject[parcelRequireName] === 'function' && - globalObject[parcelRequireName]; - if (!jumped && currentRequire) { - return currentRequire(name, true); - } - - // If there are other bundles on this page the require from the - // previous one is saved to 'previousRequire'. Repeat this as - // many times as there are bundles until the module is found or - // we exhaust the require chain. - if (previousRequire) { - return previousRequire(name, true); - } - - // Try the node require function if it exists. - if (nodeRequire && typeof name === 'string') { - return nodeRequire(name); - } - - var err = new Error("Cannot find module '" + name + "'"); - err.code = 'MODULE_NOT_FOUND'; - throw err; - } - - localRequire.resolve = resolve; - localRequire.cache = {}; - - var module = (cache[name] = new newRequire.Module(name)); - - modules[name][0].call( - module.exports, - localRequire, - module, - module.exports, - this - ); - } - - return cache[name].exports; - - function localRequire(x) { - var res = localRequire.resolve(x); - return res === false ? {} : newRequire(res); - } - - function resolve(x) { - var id = modules[name][1][x]; - return id != null ? id : x; - } - } - - function Module(moduleName) { - this.id = moduleName; - this.bundle = newRequire; - this.exports = {}; - } - - newRequire.isParcelRequire = true; - newRequire.Module = Module; - newRequire.modules = modules; - newRequire.cache = cache; - newRequire.parent = previousRequire; - newRequire.register = function (id, exports) { - modules[id] = [ - function (require, module) { - module.exports = exports; - }, - {}, - ]; - }; - - Object.defineProperty(newRequire, 'root', { - get: function () { - return globalObject[parcelRequireName]; - }, - }); - - globalObject[parcelRequireName] = newRequire; - - for (var i = 0; i < entry.length; i++) { - newRequire(entry[i]); - } - - if (mainEntry) { - // Expose entry point to Node, AMD or browser globals - // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js - var mainExports = newRequire(mainEntry); - - // CommonJS - if (typeof exports === 'object' && typeof module !== 'undefined') { - module.exports = mainExports; - - // RequireJS - } else if (typeof define === 'function' && define.amd) { - define(function () { - return mainExports; - }); - - //