Files
ArtPlayer/docs/compiled/artplayer-proxy-mediabunny.js
T
2025-12-13 14:11:16 +08:00

8 lines
308 KiB
JavaScript

/*!
* artplayer-proxy-mediabunny.js v1.0.0
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2025 Harvey Zack
* Released under the MIT License.
*/
!function(e,r,a,i,s,n,o,l){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},d="function"==typeof c[i]&&c[i],u=d.i||{},h=d.cache||{},m="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,a){if(!h[r]){if(!e[r]){if(s[r])return s[r];var n="function"==typeof c[i]&&c[i];if(!a&&n)return n(r,!0);if(d)return d(r,!0);if(m&&"string"==typeof r)return m(r);var o=Error("Cannot find module '"+r+"'");throw o.code="MODULE_NOT_FOUND",o}u.resolve=function(a){var i=e[r][1][a];return null!=i?i:a},u.cache={};var l=h[r]=new p.Module(r);e[r][0].call(l.exports,u,l,l.exports,c)}return h[r].exports;function u(e){var r=u.resolve(e);if(!1===r)return{};if(Array.isArray(r)){var a={__esModule:!0};return r.forEach(function(e){var r=e[0],i=e[1],s=e[2]||e[0],n=p(i);"*"===r?Object.keys(n).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(a,e)||Object.defineProperty(a,e,{enumerable:!0,get:function(){return n[e]}})}):"*"===s?Object.defineProperty(a,r,{enumerable:!0,value:n}):Object.defineProperty(a,r,{enumerable:!0,get:function(){return"default"===s?n.__esModule?n.default:n:n[s]}})}),a}return p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=m,this.exports={}},p.modules=e,p.cache=h,p.parent=d,p.distDir=void 0,p.publicUrl=void 0,p.devServer=void 0,p.i=u,p.register=function(r,a){e[r]=[function(e,r){r.exports=a},{}]},Object.defineProperty(p,"root",{get:function(){return c[i]}}),c[i]=p;for(var f=0;f<r.length;f++)p(r[f]);if(a){var g=p(a);"object"==typeof exports&&"undefined"!=typeof module?module.exports=g:"function"==typeof define&&define.amd&&define(function(){return g})}}({"1qMFK":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"default",()=>l);var n=e("./proxy/canvasProxy.js"),o=s.interopDefault(n);function l(e={}){return r=>(0,o.default)(r,e)}"undefined"!=typeof window&&(window.artplayerProxyMediabunny=l)},{"./proxy/canvasProxy.js":"ln3T4","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],ln3T4:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"default",()=>l);var n=e("../shim/mediabunnyVideoShim.js"),o=s.interopDefault(n);function l(e,r){let{constructor:a}=e,{createElement:i}=a.utils,s=i("canvas"),n=s.getContext("2d"),l=(0,o.default)({art:e,canvas:s,ctx:n,option:r}),c={};for(let e in s)"function"==typeof s[e]&&(c[e]=s[e].bind(s));for(let e in l)e in s||Object.defineProperty(s,e,{get(){let r=l[e];return"function"==typeof r?r.bind(l):r},set(r){l[e]=r},configurable:!0,enumerable:!0});for(let e in c)s[e]=(...r)=>c[e](...r);function d(){e.template?.$player&&!e.option.autoSize&&Object.assign(s.style,{width:"100%",height:"100%",objectFit:"contain"})}return e.on("destroy",()=>{l.destroy()}),e.on("resize",d),e.on("video:loadedmetadata",d),s}},{"../shim/mediabunnyVideoShim.js":"aLQUP","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aLQUP:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"default",()=>u);var n=e("../engine/mediabunnyEngine.js"),o=s.interopDefault(n),l=e("../utils/clamp.js"),c=s.interopDefault(l),d=e("./videoEvents.js");function u({art:e,canvas:r,ctx:a,option:i}){let s=(0,d.createVideoEventTarget)(),n=(0,o.default)({canvas:r,ctx:a,events:s,option:i}),l=null,u=i.volume??.7,h=!!i.muted,m=1;n.setVolume(u,h);let{events:p}=e.constructor.config;p.forEach(r=>{s.addEventListener(r,r=>{e.emit(`video:${r.type}`,r)})});let f={addEventListener:s.addEventListener,removeEventListener:s.removeEventListener,get src(){return l},set src(v){l=v,v&&n.load(v)},get currentTime(){return n.currentTime},set currentTime(t){n.seek(Number(t)||0)},get duration(){return n.duration},get buffered(){let e=n.duration;if(!e||Number.isNaN(e))return{length:0,start:()=>0,end:()=>0};return{length:1,start:()=>0,end:()=>e}},get played(){let e=n.duration,r=n.currentTime;if(!e||Number.isNaN(e)||r<=0)return{length:0,start:()=>0,end:()=>0};return{length:1,start:()=>0,end:()=>r}},get paused(){return n.paused},get playing(){return!n.paused&&!n.ended},get ended(){return n.ended},get readyState(){return n.readyState},get networkState(){return n.networkState},get error(){return n.error},get seeking(){return n.seeking},get seekable(){let e=n.duration;if(!e||Number.isNaN(e))return{length:0,start:()=>0,end:()=>0};return{length:1,start:()=>0,end:()=>e}},get playbackRate(){return m},set playbackRate(v){let e=Number(v);if(Number.isNaN(e)||e<=0)return;m=e,n.setPlaybackRate(e),s.emit("ratechange")},get volume(){return u},set volume(v){u=(0,c.default)(v,0,1),h=!1,n.setVolume(u,h),s.emit("volumechange")},get muted(){return h},set muted(v){h=!!v,n.setVolume(u,h),s.emit("volumechange")},play:()=>n.play(),pause(){n.pause()},load(){l&&n.load(l)},destroy(){n.destroy()},get videoWidth(){return n.videoWidth},get videoHeight(){return n.videoHeight},get playsInline(){return!0},set playsInline(v){},get autoplay(){return i.autoplay||!1},set autoplay(v){},get loop(){return i.loop||!1},set loop(v){},get controls(){return!1},set controls(v){},get crossOrigin(){return i.crossOrigin||""},set crossOrigin(v){},get currentSrc(){return l},get poster(){return i.poster||""},set poster(v){i.poster=v},get preload(){return"auto"},set preload(v){},get defaultMuted(){return!1},set defaultMuted(v){},get defaultPlaybackRate(){return 1},set defaultPlaybackRate(v){},canPlayType:e=>"maybe",getBoundingClientRect:()=>r.getBoundingClientRect(),requestVideoFrameCallback:e=>requestAnimationFrame(r=>{e(r,{presentationTime:n.currentTime,expectedDisplayTime:r+16.6,width:n.videoWidth,height:n.videoHeight,mediaTime:n.currentTime,presentedFrames:0,processingDuration:0,captureTime:r,receiveTime:r,rtpTimestamp:0})}),cancelVideoFrameCallback(e){cancelAnimationFrame(e)},setAttribute(e,a){"src"===e?this.src=a:"autoplay"===e?this.autoplay=a:"loop"===e?this.loop=a:"muted"===e?this.muted=!0:r.setAttribute(e,a)}};return i.source?f.src=i.source:e.option?.url&&(f.src=e.option.url),f}},{"../engine/mediabunnyEngine.js":"hMkle","../utils/clamp.js":"i5ob4","./videoEvents.js":"5969H","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],hMkle:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"default",()=>d);var n=e("./audioEngine.js"),o=s.interopDefault(n),l=e("./videoEngine.js"),c=s.interopDefault(l);function d({canvas:e,ctx:r,events:a,option:i={}}){let s=(0,o.default)(a),n=(0,c.default)({canvas:e,ctx:r,events:a,timeupdateInterval:i.timeupdateInterval??250,avSyncTolerance:i.avSyncTolerance??.12,dropLateFrames:i.dropLateFrames??!1,poster:i.poster??"",preflightRange:i.preflightRange??!1}),l=!0,d=!1,u=0,h=0,m=null,p=!1,f=0;async function g(e){let r=++f;b(),d=!1,m=null,h=2,u=0,setTimeout(()=>a.emit("waiting"),0),setTimeout(()=>a.emit("loadstart"),0);let o=Number.isFinite(i.loadTimeout)?i.loadTimeout:12e3,l=null,c=o>0?new Promise((e,r)=>{l=setTimeout(()=>r(Error("Load timeout")),o)}):null,p=(async()=>{try{let i=!1,o=!1,l=()=>{i&&o&&(u=1,a.emit("loadedmetadata"),a.emit("durationchange"))},c=n.load(e,()=>{r===f&&(i=!0,l())}),d=s.load(e,()=>{r===f&&(o=!0,l())});if(await Promise.all([c,d]),r!==f)return;u=4,h=1,a.emit("loadeddata"),a.emit("canplay"),a.emit("canplaythrough")}catch(e){if(r!==f)return;m={code:4,message:e.message},h=3,a.emit("error"),console.error(e)}finally{l&&clearTimeout(l)}})();if(c)try{await Promise.race([p,c])}catch(e){if(r!==f)return;f++,m={code:4,message:e.message},h=3,a.emit("error")}else await p}async function k(){l&&(d=!1,l=!1,await s.play(),n.start(s),a.emit("play"),a.emit("playing"))}function b(){l||(l=!0,s.pause(),n.stop(),a.emit("pause"))}async function T(e){let r=!l;d=!1,p=!0,a.emit("seeking"),a.emit("waiting"),b(),await s.seek(e),await n.seek(e),p=!1,a.emit("seeked"),r&&!d&&await k()}return a.addEventListener?.("ended",()=>{d=!0,l=!0}),{load:g,play:k,pause:b,seek:T,destroy:function(){b(),s.destroy(),n.destroy()},setVolume:s.setVolume,setPlaybackRate(e){s.setPlaybackRate(e),n.setPlaybackRate(e)},get currentTime(){return s.currentTime},get duration(){return s.duration||n.duration},get paused(){return l},get seeking(){return p},get ended(){return d},get readyState(){return u},get networkState(){return h},get error(){return m},get videoWidth(){return n.width},get videoHeight(){return n.height}}}},{"./audioEngine.js":"d0iOY","./videoEngine.js":"8o8Re","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],d0iOY:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"default",()=>o);var n=e("mediabunny");function o(e){let r=null,a=null,i=null,s=null,o=null,l=0,c=0,d=0,u=NaN,h=!0,m=.7,p=!1,f=1,g=0,k=new Set;function b(){return h?c:(i.currentTime-l)*f+c}function T(){if(!s)return;let e=p?0:m;s.gain.value=e*e}function y(e){if(i)return;let r=window.AudioContext||window.webkitAudioContext;try{i=new r({sampleRate:e})}catch{i=new r}(s=i.createGain()).connect(i.destination),T()}function S(){for(let e of k)e.stop();k.clear()}async function w(){await o?.return(),o=null}async function I(r){if(a)for(await w(),o=a.buffers(b());;){let a;if(r!==g||h)return;let n=o.next(),u=setInterval(()=>{r!==g||h?clearInterval(u):"running"===i.state&&i.currentTime>=d-.2&&(i.suspend(),e.emit("waiting"))},50);try{a=await n}catch(e){console.error(e);break}finally{clearInterval(u)}if(r!==g||h)return;if("suspended"===i.state&&(await i.resume(),e.emit("canplay"),e.emit("playing")),a.done)break;let{buffer:m,timestamp:p}=a.value,b=i.createBufferSource();b.buffer=m,b.connect(s),b.playbackRate.value=f;let T=l+(p-c)/f,y=T+m.duration/f;y>d&&(d=y),T>=i.currentTime?b.start(T):b.start(i.currentTime,(i.currentTime-T)*f),k.add(b),b.onended=()=>k.delete(b)}}function x(){h||(c=b(),h=!0,w(),S())}return{load:async function e(e,i){let s=++g;await w(),S(),h=!0,c=0,l=0;let o="string"==typeof e?new(0,n.UrlSource)(e):e instanceof Blob?new(0,n.BlobSource)(e):"undefined"!=typeof ReadableStream&&e instanceof ReadableStream?new(0,n.ReadableStreamSource)(e):e;if(!o||(r=new(0,n.Input)({source:o,formats:n.ALL_FORMATS}),u=await r.computeDuration(),s!==g))return;let d=await r.getPrimaryAudioTrack();if(!d||null===d.codec||!await d.canDecode()){a=null,y(),i&&i();return}y(d.sampleRate),a=new(0,n.AudioBufferSink)(d),i&&i()},play:async function e(){h&&(i||y(),"suspended"===i.state&&await i.resume(),d=l=i.currentTime,h=!1,I(++g))},pause:x,seek:async function e(e){c=Math.max(0,e),d=l=i.currentTime,g++,h||I(g)},destroy:function(){g++,x(),i?.close(),i=null,r=null,a=null},setVolume(e,r){m=e,p=r,T()},setPlaybackRate(e){e!==f&&(h||(c=b(),l=i.currentTime),f=e,h||I(++g))},get currentTime(){return b()},get duration(){return u},get paused(){return h}}}},{mediabunny:[["ALL_FORMATS","eC3Vq"],["AudioBufferSink","h5xyX"],["BlobSource","d2urb"],["ReadableStreamSource","d2urb"],["UrlSource","d2urb"],["Input","cI9DB"]],"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],eC3Vq:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"InputFormat",()=>T),s.export(a,"IsobmffInputFormat",()=>y),s.export(a,"Mp4InputFormat",()=>S),s.export(a,"QuickTimeInputFormat",()=>w),s.export(a,"MatroskaInputFormat",()=>I),s.export(a,"WebMInputFormat",()=>x),s.export(a,"Mp3InputFormat",()=>E),s.export(a,"WaveInputFormat",()=>P),s.export(a,"OggInputFormat",()=>C),s.export(a,"FlacInputFormat",()=>B),s.export(a,"AdtsInputFormat",()=>_),s.export(a,"MP4",()=>A),s.export(a,"QTFF",()=>D),s.export(a,"MATROSKA",()=>M),s.export(a,"WEBM",()=>F),s.export(a,"MP3",()=>R),s.export(a,"WAVE",()=>U),s.export(a,"OGG",()=>L),s.export(a,"ADTS",()=>O),s.export(a,"FLAC",()=>N),s.export(a,"ALL_FORMATS",()=>j);var n=e("./isobmff/isobmff-demuxer.js"),o=e("./matroska/ebml.js"),l=e("./matroska/matroska-demuxer.js"),c=e("./mp3/mp3-demuxer.js"),d=e("../shared/mp3-misc.js"),u=e("./id3.js"),h=e("./mp3/mp3-reader.js"),m=e("./ogg/ogg-demuxer.js"),p=e("./wave/wave-demuxer.js"),f=e("./adts/adts-reader.js"),g=e("./adts/adts-demuxer.js"),k=e("./reader.js"),b=e("./flac/flac-demuxer.js");class T{}class y extends T{async _getMajorBrand(e){let r=e._reader.requestSlice(0,12);return(r instanceof Promise&&(r=await r),r)?(r.skip(4),"ftyp"!==(0,k.readAscii)(r,4))?null:(0,k.readAscii)(r,4):null}_createDemuxer(e){return new(0,n.IsobmffDemuxer)(e)}}class S extends y{async _canReadInput(e){let r=await this._getMajorBrand(e);return!!r&&"qt "!==r}get name(){return"MP4"}get mimeType(){return"video/mp4"}}class w extends y{async _canReadInput(e){return"qt "===await this._getMajorBrand(e)}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}}class I extends T{async isSupportedEBMLOfDocType(e,r){let a=e._reader.requestSlice(0,o.MAX_HEADER_SIZE);if(a instanceof Promise&&(a=await a),!a)return!1;let i=(0,o.readVarIntSize)(a);if(null===i||i<1||i>8||(0,o.readUnsignedInt)(a,i)!==o.EBMLId.EBML)return!1;let s=(0,o.readElementSize)(a);if(null===s)return!1;let n=e._reader.requestSlice(a.filePos,s);if(n instanceof Promise&&(n=await n),!n)return!1;let l=a.filePos;for(;n.filePos<=l+s-o.MIN_HEADER_SIZE;){let e=(0,o.readElementHeader)(n);if(!e)break;let{id:a,size:i}=e,s=n.filePos;if(null===i)return!1;switch(a){case o.EBMLId.EBMLVersion:case o.EBMLId.EBMLReadVersion:if(1!==(0,o.readUnsignedInt)(n,i))return!1;break;case o.EBMLId.DocType:if((0,o.readAsciiString)(n,i)!==r)return!1;break;case o.EBMLId.DocTypeVersion:if((0,o.readUnsignedInt)(n,i)>4)return!1}n.filePos=s+i}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new(0,l.MatroskaDemuxer)(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}}class x extends I{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}}class E extends T{async _canReadInput(e){let r=e._reader.requestSlice(0,10);if(r instanceof Promise&&(r=await r),!r)return!1;let a=0,i=!1;for(;;){let r=e._reader.requestSlice(a,u.ID3_V2_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)break;let s=(0,u.readId3V2Header)(r);if(!s)break;i=!0,a=r.filePos+s.size}let s=await (0,h.readNextFrameHeader)(e._reader,a,a+4096);if(!s)return!1;if(i)return!0;a=s.startPos+s.header.totalSize;let n=await (0,h.readNextFrameHeader)(e._reader,a,a+d.FRAME_HEADER_SIZE);if(!n)return!1;let o=s.header,l=n.header;return o.channel===l.channel&&o.sampleRate===l.sampleRate}_createDemuxer(e){return new(0,c.Mp3Demuxer)(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}}class P extends T{async _canReadInput(e){let r=e._reader.requestSlice(0,12);if(r instanceof Promise&&(r=await r),!r)return!1;let a=(0,k.readAscii)(r,4);return("RIFF"===a||"RIFX"===a||"RF64"===a)&&(r.skip(4),"WAVE"===(0,k.readAscii)(r,4))}_createDemuxer(e){return new(0,p.WaveDemuxer)(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}}class C extends T{async _canReadInput(e){let r=e._reader.requestSlice(0,4);return r instanceof Promise&&(r=await r),!!r&&"OggS"===(0,k.readAscii)(r,4)}_createDemuxer(e){return new(0,m.OggDemuxer)(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}}class B extends T{async _canReadInput(e){let r=e._reader.requestSlice(0,4);return r instanceof Promise&&(r=await r),!!r&&"fLaC"===(0,k.readAscii)(r,4)}get name(){return"FLAC"}get mimeType(){return"audio/flac"}_createDemuxer(e){return new(0,b.FlacDemuxer)(e)}}class _ extends T{async _canReadInput(e){let r=e._reader.requestSliceRange(0,f.MIN_FRAME_HEADER_SIZE,f.MAX_FRAME_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)return!1;let a=(0,f.readFrameHeader)(r);if(!a||((r=e._reader.requestSliceRange(a.frameLength,f.MIN_FRAME_HEADER_SIZE,f.MAX_FRAME_HEADER_SIZE))instanceof Promise&&(r=await r),!r))return!1;let i=(0,f.readFrameHeader)(r);return!!i&&a.objectType===i.objectType&&a.samplingFrequencyIndex===i.samplingFrequencyIndex&&a.channelConfiguration===i.channelConfiguration}_createDemuxer(e){return new(0,g.AdtsDemuxer)(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}}let A=new S,D=new w,M=new I,F=new x,R=new E,U=new P,L=new C,O=new _,N=new B,j=[A,D,M,F,U,L,N,R,O]},{"./isobmff/isobmff-demuxer.js":"c6bfa","./matroska/ebml.js":"B0jDs","./matroska/matroska-demuxer.js":"fOHz2","./mp3/mp3-demuxer.js":"i9O6t","../shared/mp3-misc.js":"25tyg","./id3.js":"69HAt","./mp3/mp3-reader.js":"8Pxtf","./ogg/ogg-demuxer.js":"5cgt7","./wave/wave-demuxer.js":"lUIAt","./adts/adts-reader.js":"5Z778","./adts/adts-demuxer.js":"2HibR","./reader.js":"3hF2Q","./flac/flac-demuxer.js":"h7VU7","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],c6bfa:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"IsobmffDemuxer",()=>g);var n=e("../codec.js"),o=e("../codec-data.js"),l=e("../demuxer.js"),c=e("../input-track.js"),d=e("../misc.js"),u=e("../packet.js"),h=e("./isobmff-misc.js"),m=e("./isobmff-reader.js"),p=e("../reader.js"),f=e("../metadata.js");class g extends l.Demuxer{constructor(e){super(e),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.currentFragment=null,this.lastReadFragment=null,this.reader=e._reader}async computeDuration(){let e=await this.getTracks();return Math.max(0,...await Promise.all(e.map(e=>e.computeDuration())))}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(e=>e.inputTrack.getCodecParameterString()));return(0,h.buildIsobmffMimeType)({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(e=>e.info?.type==="video"),hasAudio:this.tracks.some(e=>e.info?.type==="audio"),codecStrings:e.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let r=this.reader.requestSliceRange(e,m.MIN_BOX_HEADER_SIZE,m.MAX_BOX_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)break;let a=e,i=(0,m.readBoxHeader)(r);if(!i)break;if("ftyp"===i.name){let e=(0,p.readAscii)(r,4);this.isQuickTime="qt "===e}else if("moov"===i.name){let e=this.reader.requestSlice(r.filePos,i.contentSize);if(e instanceof Promise&&(e=await e),!e)break;for(let r of(this.moovSlice=e,this.readContiguousBoxes(this.moovSlice),this.tracks.sort((e,r)=>Number(r.disposition.default)-Number(e.disposition.default)),this.tracks)){let e=r.editListPreviousSegmentDurations/this.movieTimescale;r.editListOffset-=Math.round(e*r.timescale)}break}e=a+i.totalSize}if(this.isFragmented&&null!==this.reader.fileSize){let e=this.reader.requestSlice(this.reader.fileSize-4,4);e instanceof Promise&&(e=await e),(0,d.assert)(e);let r=(0,p.readU32Be)(e),a=this.reader.fileSize-r;if(a>=0&&a<=this.reader.fileSize-m.MAX_BOX_HEADER_SIZE){let e=this.reader.requestSliceRange(a,m.MIN_BOX_HEADER_SIZE,m.MAX_BOX_HEADER_SIZE);if(e instanceof Promise&&(e=await e),e){let r=(0,m.readBoxHeader)(e);if(r&&"mfra"===r.name){let a=this.reader.requestSlice(e.filePos,r.contentSize);a instanceof Promise&&(a=await a),a&&this.readContiguousBoxes(a)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let r={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};e.sampleTable=r,(0,d.assert)(this.moovSlice);let a=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(a),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&n.PCM_AUDIO_CODECS.includes(e.info.codec)&&0===r.sampleCompositionTimeOffsets.length){(0,d.assert)(e.info?.type==="audio");let a=(0,n.parsePcmCodec)(e.info.codec),i=[],s=[];for(let n=0;n<r.sampleToChunk.length;n++){let o=r.sampleToChunk[n],l=r.sampleToChunk[n+1],c=(l?l.startChunkIndex:r.chunkOffsets.length)-o.startChunkIndex;for(let n=0;n<c;n++){let l=o.startSampleIndex+n*o.samplesPerChunk,c=l+o.samplesPerChunk,u=(0,d.binarySearchLessOrEqual)(r.sampleTimingEntries,l,e=>e.startIndex),h=r.sampleTimingEntries[u],m=(0,d.binarySearchLessOrEqual)(r.sampleTimingEntries,c,e=>e.startIndex),p=r.sampleTimingEntries[m],f=h.startDecodeTimestamp+(l-h.startIndex)*h.delta,g=p.startDecodeTimestamp+(c-p.startIndex)*p.delta-f,k=(0,d.last)(i);k&&k.delta===g?k.count++:i.push({startIndex:o.startChunkIndex+n,startDecodeTimestamp:f,count:1,delta:g});let b=o.samplesPerChunk*a.sampleSize*e.info.numberOfChannels;s.push(b)}o.startSampleIndex=o.startChunkIndex,o.samplesPerChunk=1}r.sampleTimingEntries=i,r.sampleSizes=s}if(r.sampleCompositionTimeOffsets.length>0){for(let e of(r.presentationTimestamps=[],r.sampleTimingEntries))for(let a=0;a<e.count;a++)r.presentationTimestamps.push({presentationTimestamp:e.startDecodeTimestamp+a*e.delta,sampleIndex:e.startIndex+a});for(let e of r.sampleCompositionTimeOffsets)for(let a=0;a<e.count;a++){let i=e.startIndex+a,s=r.presentationTimestamps[i];s&&(s.presentationTimestamp+=e.offset)}r.presentationTimestamps.sort((e,r)=>e.presentationTimestamp-r.presentationTimestamp),r.presentationTimestampIndexMap=Array(r.presentationTimestamps.length).fill(-1);for(let e=0;e<r.presentationTimestamps.length;e++)r.presentationTimestampIndexMap[r.presentationTimestamps[e].sampleIndex]=e}return r}async readFragment(e){if(this.lastReadFragment?.moofOffset===e)return this.lastReadFragment;let r=this.reader.requestSliceRange(e,m.MIN_BOX_HEADER_SIZE,m.MAX_BOX_HEADER_SIZE);r instanceof Promise&&(r=await r),(0,d.assert)(r);let a=(0,m.readBoxHeader)(r);(0,d.assert)(a?.name==="moof");let i=this.reader.requestSlice(e,a.totalSize);i instanceof Promise&&(i=await i),(0,d.assert)(i),this.traverseBox(i);let s=this.lastReadFragment;for(let[,r]of((0,d.assert)(s&&s.moofOffset===e),s.trackData)){let e=r.track,{fragmentPositionCache:a}=e;if(!r.startTimestampIsFinal){let i=e.fragmentLookupTable.find(e=>e.moofOffset===s.moofOffset);if(i)x(r,i.timestamp);else{let e=(0,d.binarySearchLessOrEqual)(a,s.moofOffset-1,e=>e.moofOffset);-1!==e&&x(r,a[e].endTimestamp)}r.startTimestampIsFinal=!0}let i=(0,d.binarySearchLessOrEqual)(a,r.startTimestamp,e=>e.startTimestamp);(-1===i||a[i].moofOffset!==s.moofOffset)&&a.splice(i+1,0,{moofOffset:s.moofOffset,startTimestamp:r.startTimestamp,endTimestamp:r.endTimestamp})}return s}readContiguousBoxes(e){let r=e.filePos;for(;e.filePos-r<=e.length-m.MIN_BOX_HEADER_SIZE&&this.traverseBox(e););}*iterateContiguousBoxes(e){let r=e.filePos;for(;e.filePos-r<=e.length-m.MIN_BOX_HEADER_SIZE;){let r=e.filePos,a=(0,m.readBoxHeader)(e);if(!a)break;yield{boxInfo:a,slice:e},e.filePos=r+a.totalSize}}traverseBox(e){let r=e.filePos,a=(0,m.readBoxHeader)(e);if(!a)return!1;let i=e.filePos,s=r+a.totalSize;switch(a.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(e.slice(i,a.contentSize));break;case"mvhd":{let r=(0,p.readU8)(e);e.skip(3),1===r?(e.skip(16),this.movieTimescale=(0,p.readU32Be)(e),this.movieDurationInTimescale=(0,p.readU64Be)(e)):(e.skip(8),this.movieTimescale=(0,p.readU32Be)(e),this.movieDurationInTimescale=(0,p.readU32Be)(e))}break;case"trak":{let r={id:-1,demuxer:this,inputTrack:null,disposition:{...f.DEFAULT_TRACK_DISPOSITION},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:d.UNDETERMINED_LANGUAGE,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};this.currentTrack=r,this.readContiguousBoxes(e.slice(i,a.contentSize)),-1!==r.id&&-1!==r.timescale&&null!==r.info&&("video"===r.info.type&&-1!==r.info.width?(r.inputTrack=new(0,c.InputVideoTrack)(this.input,new b(r)),this.tracks.push(r)):"audio"===r.info.type&&-1!==r.info.numberOfChannels&&(r.inputTrack=new(0,c.InputAudioTrack)(this.input,new T(r)),this.tracks.push(r))),this.currentTrack=null}break;case"tkhd":{let r=this.currentTrack;if(!r)break;let a=(0,p.readU8)(e),i=(0,p.readU24Be)(e);if(r.disposition.default=!!(1&i),0===a)e.skip(8),r.id=(0,p.readU32Be)(e),e.skip(4),r.durationInMovieTimescale=(0,p.readU32Be)(e);else if(1===a)e.skip(16),r.id=(0,p.readU32Be)(e),e.skip(4),r.durationInMovieTimescale=(0,p.readU64Be)(e);else throw Error(`Incorrect track header version ${a}.`);e.skip(16);let s=[(0,m.readFixed_16_16)(e),(0,m.readFixed_16_16)(e),(0,m.readFixed_2_30)(e),(0,m.readFixed_16_16)(e),(0,m.readFixed_16_16)(e),(0,m.readFixed_2_30)(e),(0,m.readFixed_16_16)(e),(0,m.readFixed_16_16)(e),(0,m.readFixed_2_30)(e)],n=(0,d.normalizeRotation)((0,d.roundToMultiple)(E(s),90));(0,d.assert)(0===n||90===n||180===n||270===n),r.rotation=n}break;case"elst":{let r=this.currentTrack;if(!r)break;let a=(0,p.readU8)(e);e.skip(3);let i=!1,s=0,n=(0,p.readU32Be)(e);for(let o=0;o<n;o++){let n=1===a?(0,p.readU64Be)(e):(0,p.readU32Be)(e),o=1===a?(0,p.readI64Be)(e):(0,p.readI32Be)(e),l=(0,m.readFixed_16_16)(e);if(0!==n){if(i){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(-1===o){s+=n;continue}if(1!==l){console.warn("Unsupported edit list entry: media rate must be 1.");break}r.editListPreviousSegmentDurations=s,r.editListOffset=o,i=!0}}}break;case"mdhd":{let r=this.currentTrack;if(!r)break;let a=(0,p.readU8)(e);e.skip(3),0===a?(e.skip(8),r.timescale=(0,p.readU32Be)(e),r.durationInMediaTimescale=(0,p.readU32Be)(e)):1===a&&(e.skip(16),r.timescale=(0,p.readU32Be)(e),r.durationInMediaTimescale=(0,p.readU64Be)(e));let i=(0,p.readU16Be)(e);if(i>0){r.languageCode="";for(let e=0;e<3;e++)r.languageCode=String.fromCharCode(96+(31&i))+r.languageCode,i>>=5;(0,d.isIso639Dash2LanguageCode)(r.languageCode)||(r.languageCode=d.UNDETERMINED_LANGUAGE)}}break;case"hdlr":{let r=this.currentTrack;if(!r)break;e.skip(8);let a=(0,p.readAscii)(e,4);"vide"===a?r.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:"soun"===a&&(r.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let s=this.currentTrack;if(!s)break;s.sampleTableByteOffset=r,this.readContiguousBoxes(e.slice(i,a.contentSize))}break;case"stsd":{let r=this.currentTrack;if(!r||null===r.info||r.sampleTable)break;let a=(0,p.readU8)(e);e.skip(3);let i=(0,p.readU32Be)(e);for(let s=0;s<i;s++){let i=e.filePos,s=(0,m.readBoxHeader)(e);if(!s)break;r.internalCodecId=s.name;let o=s.name.toLowerCase();if("video"===r.info.type)"avc1"===o||"avc3"===o?(r.info.codec="avc",r.info.avcType="avc1"===o?1:3):"hvc1"===o||"hev1"===o?r.info.codec="hevc":"vp08"===o?r.info.codec="vp8":"vp09"===o?r.info.codec="vp9":"av01"===o?r.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${s.name}').`),e.skip(24),r.info.width=(0,p.readU16Be)(e),r.info.height=(0,p.readU16Be)(e),e.skip(50),this.readContiguousBoxes(e.slice(e.filePos,i+s.totalSize-e.filePos));else{"mp4a"===o||("opus"===o?r.info.codec="opus":"flac"===o?r.info.codec="flac":"twos"===o||"sowt"===o||"raw "===o||"in24"===o||"in32"===o||"fl32"===o||"fl64"===o||"lpcm"===o||"ipcm"===o||"fpcm"===o||("ulaw"===o?r.info.codec="ulaw":"alaw"===o?r.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${s.name}').`))),e.skip(8);let l=(0,p.readU16Be)(e);e.skip(6);let c=(0,p.readU16Be)(e),d=(0,p.readU16Be)(e);e.skip(4);let u=(0,p.readU32Be)(e)/65536;if(0===a&&l>0){if(1===l)e.skip(4),d=8*(0,p.readU32Be)(e),e.skip(8);else if(2===l){e.skip(4),u=(0,p.readF64Be)(e),c=(0,p.readU32Be)(e),e.skip(4),d=(0,p.readU32Be)(e);let a=(0,p.readU32Be)(e);if(e.skip(8),"lpcm"===o){let e=d+7>>3,i=!!(1&a),s=!!(2&a),n=4&a?-1:0;d>0&&d<=64&&(i?32===d&&(r.info.codec=s?"pcm-f32be":"pcm-f32"):n&1<<e-1?1===e?r.info.codec="pcm-s8":2===e?r.info.codec=s?"pcm-s16be":"pcm-s16":3===e?r.info.codec=s?"pcm-s24be":"pcm-s24":4===e&&(r.info.codec=s?"pcm-s32be":"pcm-s32"):1===e&&(r.info.codec="pcm-u8")),null===r.info.codec&&console.warn("Unsupported PCM format.")}}}"opus"===r.info.codec&&(u=n.OPUS_SAMPLE_RATE),r.info.numberOfChannels=c,r.info.sampleRate=u,"twos"===o?8===d?r.info.codec="pcm-s8":16===d?r.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${d} for codec 'twos'.`),r.info.codec=null):"sowt"===o?8===d?r.info.codec="pcm-s8":16===d?r.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${d} for codec 'sowt'.`),r.info.codec=null):"raw "===o?r.info.codec="pcm-u8":"in24"===o?r.info.codec="pcm-s24be":"in32"===o?r.info.codec="pcm-s32be":"fl32"===o?r.info.codec="pcm-f32be":"fl64"===o?r.info.codec="pcm-f64be":"ipcm"===o?r.info.codec="pcm-s16be":"fpcm"===o&&(r.info.codec="pcm-f32be"),this.readContiguousBoxes(e.slice(e.filePos,i+s.totalSize-e.filePos))}}}break;case"avcC":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info),r.info.codecDescription=(0,p.readBytes)(e,a.contentSize)}break;case"hvcC":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info),r.info.codecDescription=(0,p.readBytes)(e,a.contentSize)}break;case"vpcC":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info?.type==="video"),e.skip(4);let a=(0,p.readU8)(e),i=(0,p.readU8)(e),s=(0,p.readU8)(e),n=(0,p.readU8)(e),o=(0,p.readU8)(e),l=(0,p.readU8)(e);r.info.vp9CodecInfo={profile:a,level:i,bitDepth:s>>4,chromaSubsampling:s>>1&7,videoFullRangeFlag:1&s,colourPrimaries:n,transferCharacteristics:o,matrixCoefficients:l}}break;case"av1C":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info?.type==="video"),e.skip(1);let a=(0,p.readU8)(e),i=a>>5,s=(0,p.readU8)(e),n=s>>6&1;r.info.av1CodecInfo={profile:i,level:31&a,tier:s>>7,bitDepth:2===i&&n?s>>5&1?12:10:n?10:8,monochrome:s>>4&1,chromaSubsamplingX:s>>3&1,chromaSubsamplingY:s>>2&1,chromaSamplePosition:3&s}}break;case"colr":{let r=this.currentTrack;if(!r||((0,d.assert)(r.info?.type==="video"),"nclx"!==(0,p.readAscii)(e,4)))break;let a=(0,p.readU16Be)(e),i=(0,p.readU16Be)(e),s=(0,p.readU16Be)(e),n=!!(128&(0,p.readU8)(e));r.info.colorSpace={primaries:d.COLOR_PRIMARIES_MAP_INVERSE[a],transfer:d.TRANSFER_CHARACTERISTICS_MAP_INVERSE[i],matrix:d.MATRIX_COEFFICIENTS_MAP_INVERSE[s],fullRange:n}}break;case"esds":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info?.type==="audio"),e.skip(4);let a=(0,p.readU8)(e);(0,d.assert)(3===a),(0,m.readIsomVariableInteger)(e),e.skip(2);let i=(0,p.readU8)(e);if((128&i)!=0&&e.skip(2),(64&i)!=0){let r=(0,p.readU8)(e);e.skip(r)}(32&i)!=0&&e.skip(2);let s=(0,p.readU8)(e);(0,d.assert)(4===s);let o=(0,m.readIsomVariableInteger)(e),l=e.filePos,c=(0,p.readU8)(e);if(64===c||103===c?(r.info.codec="aac",r.info.aacCodecInfo={isMpeg2:103===c}):105===c||107===c?r.info.codec="mp3":221===c?r.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${c}) - discarding track.`),e.skip(12),o>e.filePos-l){let a=(0,p.readU8)(e);(0,d.assert)(5===a);let i=(0,m.readIsomVariableInteger)(e);if(r.info.codecDescription=(0,p.readBytes)(e,i),"aac"===r.info.codec){let e=(0,n.parseAacAudioSpecificConfig)(r.info.codecDescription);null!==e.numberOfChannels&&(r.info.numberOfChannels=e.numberOfChannels),null!==e.sampleRate&&(r.info.sampleRate=e.sampleRate)}}}break;case"enda":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info?.type==="audio"),255&(0,p.readU16Be)(e)&&("pcm-s16be"===r.info.codec?r.info.codec="pcm-s16":"pcm-s24be"===r.info.codec?r.info.codec="pcm-s24":"pcm-s32be"===r.info.codec?r.info.codec="pcm-s32":"pcm-f32be"===r.info.codec?r.info.codec="pcm-f32":"pcm-f64be"===r.info.codec&&(r.info.codec="pcm-f64"))}break;case"pcmC":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info?.type==="audio"),e.skip(4);let a=!!(1&(0,p.readU8)(e)),i=(0,p.readU8)(e);"pcm-s16be"===r.info.codec?a?16===i?r.info.codec="pcm-s16":24===i?r.info.codec="pcm-s24":32===i?r.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${i}.`),r.info.codec=null):16===i?r.info.codec="pcm-s16be":24===i?r.info.codec="pcm-s24be":32===i?r.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${i}.`),r.info.codec=null):"pcm-f32be"===r.info.codec&&(a?32===i?r.info.codec="pcm-f32":64===i?r.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${i}.`),r.info.codec=null):32===i?r.info.codec="pcm-f32be":64===i?r.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${i}.`),r.info.codec=null));break}case"dOps":{let r,a=this.currentTrack;if(!a)break;(0,d.assert)(a.info?.type==="audio"),e.skip(1);let i=(0,p.readU8)(e),s=(0,p.readU16Be)(e),n=(0,p.readU32Be)(e),o=(0,p.readI16Be)(e),l=(0,p.readU8)(e);r=0!==l?(0,p.readBytes)(e,2+i):new Uint8Array(0);let c=new Uint8Array(19+r.byteLength),u=new DataView(c.buffer);u.setUint32(0,0x4f707573,!1),u.setUint32(4,0x48656164,!1),u.setUint8(8,1),u.setUint8(9,i),u.setUint16(10,s,!0),u.setUint32(12,n,!0),u.setInt16(16,o,!0),u.setUint8(18,l),c.set(r,19),a.info.codecDescription=c,a.info.numberOfChannels=i}break;case"dfLa":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.info?.type==="audio"),e.skip(4);let a=e.filePos;for(;e.filePos<s;){let a=(0,p.readU8)(e),i=(0,p.readU24Be)(e);if((127&a)===o.FlacBlockType.STREAMINFO){e.skip(10);let a=(0,p.readU32Be)(e),i=a>>>12,s=(a>>9&7)+1;r.info.sampleRate=i,r.info.numberOfChannels=s,e.skip(20)}else e.skip(i);if(128&a)break}let i=e.filePos;e.filePos=a;let n=(0,p.readBytes)(e,i-a),l=new Uint8Array(4+n.byteLength);new DataView(l.buffer).setUint32(0,0x664c6143,!1),l.set(n,4),r.info.codecDescription=l}break;case"stts":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4);let a=(0,p.readU32Be)(e),i=0,s=0;for(let n=0;n<a;n++){let a=(0,p.readU32Be)(e),n=(0,p.readU32Be)(e);r.sampleTable.sampleTimingEntries.push({startIndex:i,startDecodeTimestamp:s,count:a,delta:n}),i+=a,s+=a*n}}break;case"ctts":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4);let a=(0,p.readU32Be)(e),i=0;for(let s=0;s<a;s++){let a=(0,p.readU32Be)(e),s=(0,p.readI32Be)(e);r.sampleTable.sampleCompositionTimeOffsets.push({startIndex:i,count:a,offset:s}),i+=a}}break;case"stsz":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4);let a=(0,p.readU32Be)(e),i=(0,p.readU32Be)(e);if(0===a)for(let a=0;a<i;a++){let a=(0,p.readU32Be)(e);r.sampleTable.sampleSizes.push(a)}else r.sampleTable.sampleSizes.push(a)}break;case"stz2":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4),e.skip(3);let a=(0,p.readU8)(e),i=(0,p.readU32Be)(e),s=(0,p.readBytes)(e,Math.ceil(i*a/8)),n=new(0,d.Bitstream)(s);for(let e=0;e<i;e++){let e=n.readBits(a);r.sampleTable.sampleSizes.push(e)}}break;case"stss":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4),r.sampleTable.keySampleIndices=[];let a=(0,p.readU32Be)(e);for(let i=0;i<a;i++){let a=(0,p.readU32Be)(e)-1;r.sampleTable.keySampleIndices.push(a)}0!==r.sampleTable.keySampleIndices[0]&&r.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4);let a=(0,p.readU32Be)(e);for(let i=0;i<a;i++){let a=(0,p.readU32Be)(e)-1,i=(0,p.readU32Be)(e),s=(0,p.readU32Be)(e);r.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:a,samplesPerChunk:i,sampleDescriptionIndex:s})}let i=0;for(let e=0;e<r.sampleTable.sampleToChunk.length;e++)r.sampleTable.sampleToChunk[e].startSampleIndex=i,e<r.sampleTable.sampleToChunk.length-1&&(i+=(r.sampleTable.sampleToChunk[e+1].startChunkIndex-r.sampleTable.sampleToChunk[e].startChunkIndex)*r.sampleTable.sampleToChunk[e].samplesPerChunk)}break;case"stco":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4);let a=(0,p.readU32Be)(e);for(let i=0;i<a;i++){let a=(0,p.readU32Be)(e);r.sampleTable.chunkOffsets.push(a)}}break;case"co64":{let r=this.currentTrack;if(!r||!r.sampleTable)break;e.skip(4);let a=(0,p.readU32Be)(e);for(let i=0;i<a;i++){let a=(0,p.readU64Be)(e);r.sampleTable.chunkOffsets.push(a)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(i,a.contentSize));break;case"mehd":{let r=(0,p.readU8)(e);e.skip(3);let a=1===r?(0,p.readU64Be)(e):(0,p.readU32Be)(e);this.movieDurationInTimescale=a}break;case"trex":{e.skip(4);let r=(0,p.readU32Be)(e),a=(0,p.readU32Be)(e),i=(0,p.readU32Be)(e),s=(0,p.readU32Be)(e),n=(0,p.readU32Be)(e);this.fragmentTrackDefaults.push({trackId:r,defaultSampleDescriptionIndex:a,defaultSampleDuration:i,defaultSampleSize:s,defaultSampleFlags:n})}break;case"tfra":{let r=(0,p.readU8)(e);e.skip(3);let a=(0,p.readU32Be)(e),i=this.tracks.find(e=>e.id===a);if(!i)break;let s=(0,p.readU32Be)(e),n=[p.readU8,p.readU16Be,p.readU24Be,p.readU32Be],o=n[(48&s)>>4],l=n[(12&s)>>2],c=n[3&s],d=(0,p.readU32Be)(e);for(let a=0;a<d;a++){let a=1===r?(0,p.readU64Be)(e):(0,p.readU32Be)(e),s=1===r?(0,p.readU64Be)(e):(0,p.readU32Be)(e);o(e),l(e),c(e),i.fragmentLookupTable.push({timestamp:a,moofOffset:s})}i.fragmentLookupTable.sort((e,r)=>e.timestamp-r.timestamp);for(let e=0;e<i.fragmentLookupTable.length-1;e++){let r=i.fragmentLookupTable[e],a=i.fragmentLookupTable[e+1];r.timestamp===a.timestamp&&(i.fragmentLookupTable.splice(e+1,1),e--)}}break;case"moof":this.currentFragment={moofOffset:r,moofSize:a.totalSize,implicitBaseDataOffset:r,trackData:new Map},this.readContiguousBoxes(e.slice(i,a.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if((0,d.assert)(this.currentFragment),this.readContiguousBoxes(e.slice(i,a.contentSize)),this.currentTrack){let e=this.currentFragment.trackData.get(this.currentTrack.id);if(e){let{currentFragmentState:r}=this.currentTrack;(0,d.assert)(r),null!==r.startTimestamp&&(x(e,r.startTimestamp),e.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{(0,d.assert)(this.currentFragment),e.skip(1);let r=(0,p.readU24Be)(e),a=(0,p.readU32Be)(e),i=this.tracks.find(e=>e.id===a);if(!i)break;let s=this.fragmentTrackDefaults.find(e=>e.trackId===a);this.currentTrack=i,i.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:s?.defaultSampleDescriptionIndex??null,defaultSampleDuration:s?.defaultSampleDuration??null,defaultSampleSize:s?.defaultSampleSize??null,defaultSampleFlags:s?.defaultSampleFlags??null,startTimestamp:null},1&r?i.currentFragmentState.baseDataOffset=(0,p.readU64Be)(e):131072&r&&(i.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),2&r&&(i.currentFragmentState.sampleDescriptionIndex=(0,p.readU32Be)(e)),8&r&&(i.currentFragmentState.defaultSampleDuration=(0,p.readU32Be)(e)),16&r&&(i.currentFragmentState.defaultSampleSize=(0,p.readU32Be)(e)),32&r&&(i.currentFragmentState.defaultSampleFlags=(0,p.readU32Be)(e)),65536&r&&(i.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let r=this.currentTrack;if(!r)break;(0,d.assert)(r.currentFragmentState);let a=(0,p.readU8)(e);e.skip(3);let i=0===a?(0,p.readU32Be)(e):(0,p.readU64Be)(e);r.currentFragmentState.startTimestamp=i}break;case"trun":{let r=this.currentTrack;if(!r)break;if((0,d.assert)(this.currentFragment),(0,d.assert)(r.currentFragmentState),this.currentFragment.trackData.has(r.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let a=(0,p.readU8)(e),i=(0,p.readU24Be)(e),s=!!(256&i),n=!!(512&i),o=!!(1024&i),l=!!(2048&i),c=(0,p.readU32Be)(e),u=r.currentFragmentState.baseDataOffset;1&i&&(u+=(0,p.readI32Be)(e));let h=null;4&i&&(h=(0,p.readU32Be)(e));let m=u;if(0===c){this.currentFragment.implicitBaseDataOffset=m;break}let f=0,g={track:r,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(r.id,g);for(let i=0;i<c;i++){let c,u,k;s?c=(0,p.readU32Be)(e):((0,d.assert)(null!==r.currentFragmentState.defaultSampleDuration),c=r.currentFragmentState.defaultSampleDuration),n?u=(0,p.readU32Be)(e):((0,d.assert)(null!==r.currentFragmentState.defaultSampleSize),u=r.currentFragmentState.defaultSampleSize),o?k=(0,p.readU32Be)(e):((0,d.assert)(null!==r.currentFragmentState.defaultSampleFlags),k=r.currentFragmentState.defaultSampleFlags),0===i&&null!==h&&(k=h);let b=0;l&&(b=0===a?(0,p.readU32Be)(e):(0,p.readI32Be)(e));let T=!(65536&k);g.samples.push({presentationTimestamp:f+b,duration:c,byteOffset:m,byteSize:u,isKeyFrame:T}),m+=u,f+=c}g.presentationTimestamps=g.samples.map((e,r)=>({presentationTimestamp:e.presentationTimestamp,sampleIndex:r})).sort((e,r)=>e.presentationTimestamp-r.presentationTimestamp);for(let e=0;e<g.presentationTimestamps.length;e++){let r=g.presentationTimestamps[e],a=g.samples[r.sampleIndex];null===g.firstKeyFrameTimestamp&&a.isKeyFrame&&(g.firstKeyFrameTimestamp=a.presentationTimestamp),e<g.presentationTimestamps.length-1&&(a.duration=g.presentationTimestamps[e+1].presentationTimestamp-r.presentationTimestamp)}let k=g.samples[g.presentationTimestamps[0].sampleIndex],b=g.samples[(0,d.last)(g.presentationTimestamps).sampleIndex];g.startTimestamp=k.presentationTimestamp,g.endTimestamp=b.presentationTimestamp+b.duration,this.currentFragment.implicitBaseDataOffset=m}break;case"udta":for(let{boxInfo:r,slice:s}of this.iterateContiguousBoxes(e.slice(i,a.contentSize))){if("meta"!==r.name&&!this.currentTrack){let e=s.filePos;this.metadataTags.raw??={},"©"===r.name[0]?this.metadataTags.raw[r.name]??=(0,m.readMetadataStringShort)(s):this.metadataTags.raw[r.name]??=(0,p.readBytes)(s,r.contentSize),s.filePos=e}switch(r.name){case"meta":s.skip(-r.headerSize),this.traverseBox(s);break;case"©nam":case"name":this.currentTrack?this.currentTrack.name=d.textDecoder.decode((0,p.readBytes)(s,r.contentSize)):this.metadataTags.title??=(0,m.readMetadataStringShort)(s);break;case"©des":this.currentTrack||(this.metadataTags.description??=(0,m.readMetadataStringShort)(s));break;case"©ART":this.currentTrack||(this.metadataTags.artist??=(0,m.readMetadataStringShort)(s));break;case"©alb":this.currentTrack||(this.metadataTags.album??=(0,m.readMetadataStringShort)(s));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=(0,m.readMetadataStringShort)(s));break;case"©gen":this.currentTrack||(this.metadataTags.genre??=(0,m.readMetadataStringShort)(s));break;case"©day":if(!this.currentTrack){let e=new Date((0,m.readMetadataStringShort)(s));Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"©cmt":this.currentTrack||(this.metadataTags.comment??=(0,m.readMetadataStringShort)(s));break;case"©lyr":this.currentTrack||(this.metadataTags.lyrics??=(0,m.readMetadataStringShort)(s))}}break;case"meta":{if(this.currentTrack)break;let r=(0,p.readU32Be)(e);this.currentMetadataKeys=new Map,0!==r?this.readContiguousBoxes(e.slice(i,a.contentSize)):this.readContiguousBoxes(e.slice(i+4,a.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let r=(0,p.readU32Be)(e);for(let a=0;a<r;a++){let r=(0,p.readU32Be)(e);e.skip(4);let i=d.textDecoder.decode((0,p.readBytes)(e,r-8));this.currentMetadataKeys.set(a+1,i)}}break;case"ilst":if(!this.currentMetadataKeys)break;for(let{boxInfo:r,slice:s}of this.iterateContiguousBoxes(e.slice(i,a.contentSize))){let e=r.name,a=(e.charCodeAt(0)<<24)+(e.charCodeAt(1)<<16)+(e.charCodeAt(2)<<8)+e.charCodeAt(3);this.currentMetadataKeys.has(a)&&(e=this.currentMetadataKeys.get(a));let i=(0,m.readDataBox)(s);switch(this.metadataTags.raw??={},this.metadataTags.raw[e]??=i,e){case"©nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof i&&(this.metadataTags.title??=i);break;case"©des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":"string"==typeof i&&(this.metadataTags.description??=i);break;case"©ART":case"com.apple.quicktime.artist":case"artist":"string"==typeof i&&(this.metadataTags.artist??=i);break;case"©alb":case"albm":case"com.apple.quicktime.album":case"album":"string"==typeof i&&(this.metadataTags.album??=i);break;case"aART":case"album_artist":"string"==typeof i&&(this.metadataTags.albumArtist??=i);break;case"©cmt":case"com.apple.quicktime.comment":case"comment":"string"==typeof i&&(this.metadataTags.comment??=i);break;case"©gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof i&&(this.metadataTags.genre??=i);break;case"©lyr":case"lyrics":"string"==typeof i&&(this.metadataTags.lyrics??=i);break;case"©day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof i){let e=new Date(i);Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"covr":case"com.apple.quicktime.artwork":i instanceof f.RichImageData?(this.metadataTags.images??=[],this.metadataTags.images.push({data:i.data,kind:"coverFront",mimeType:i.mimeType})):i instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:i,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof i){let e=i.split("/"),r=Number.parseInt(e[0],10),a=e[1]&&Number.parseInt(e[1],10);Number.isInteger(r)&&r>0&&(this.metadataTags.trackNumber??=r),a&&Number.isInteger(a)&&a>0&&(this.metadataTags.tracksTotal??=a)}break;case"trkn":if(i instanceof Uint8Array&&i.length>=6){let e=(0,d.toDataView)(i),r=e.getUint16(2,!1),a=e.getUint16(4,!1);r>0&&(this.metadataTags.trackNumber??=r),a>0&&(this.metadataTags.tracksTotal??=a)}break;case"disc":case"disk":if(i instanceof Uint8Array&&i.length>=6){let e=(0,d.toDataView)(i),r=e.getUint16(2,!1),a=e.getUint16(4,!1);r>0&&(this.metadataTags.discNumber??=r),a>0&&(this.metadataTags.discsTotal??=a)}}}}return e.filePos=s,!0}}class k{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}getDisposition(){return this.internalTrack.disposition}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){let e=await this.getFirstPacket({metadataOnly:!0});return e?.timestamp??0}async getFirstPacket(e){let r=await this.fetchPacketForSampleIndex(0,e);return r||!this.internalTrack.demuxer.isFragmented?r:this.performFragmentedLookup(null,e=>e.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return(0,d.roundIfAlmostInteger)(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,r){let a=this.mapTimestampIntoTimescale(e),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=y(i,a),n=await this.fetchPacketForSampleIndex(s,r);return P(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,e=>{let r=e.trackData.get(this.internalTrack.id);if(!r)return{sampleIndex:-1,correctSampleFound:!1};let i=(0,d.binarySearchLessOrEqual)(r.presentationTimestamps,a,e=>e.presentationTimestamp);return{sampleIndex:-1!==i?r.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&a<r.endTimestamp}},a,a,r):n}async getNextPacket(e,r){let a=this.packetToSampleIndex.get(e);if(void 0!==a)return this.fetchPacketForSampleIndex(a+1,r);let i=this.packetToFragmentLocation.get(e);if(void 0===i)throw Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,e=>{if(e===i.fragment){let r=e.trackData.get(this.internalTrack.id);if(i.sampleIndex+1<r.samples.length)return{sampleIndex:i.sampleIndex+1,correctSampleFound:!0}}else if(e.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,r)}async getKeyPacket(e,r){let a=this.mapTimestampIntoTimescale(e),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=S(i,a),n=await this.fetchPacketForSampleIndex(s,r);return P(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,e=>{let r=e.trackData.get(this.internalTrack.id);if(!r)return{sampleIndex:-1,correctSampleFound:!1};let i=(0,d.findLastIndex)(r.presentationTimestamps,e=>r.samples[e.sampleIndex].isKeyFrame&&e.presentationTimestamp<=a);return{sampleIndex:-1!==i?r.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&a<r.endTimestamp}},a,a,r):n}async getNextKeyPacket(e,r){let a=this.packetToSampleIndex.get(e);if(void 0!==a){let e=I(this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a);return this.fetchPacketForSampleIndex(e,r)}let i=this.packetToFragmentLocation.get(e);if(void 0===i)throw Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,e=>{if(e===i.fragment){let r=e.trackData.get(this.internalTrack.id).samples.findIndex((e,r)=>e.isKeyFrame&&r>i.sampleIndex);if(-1!==r)return{sampleIndex:r,correctSampleFound:!0}}else{let r=e.trackData.get(this.internalTrack.id);if(r&&null!==r.firstKeyFrameTimestamp){let e=r.samples.findIndex(e=>e.isKeyFrame);return(0,d.assert)(-1!==e),{sampleIndex:e,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,r)}async fetchPacketForSampleIndex(e,r){let a;if(-1===e)return null;let i=w(this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),e);if(!i)return null;if(r.metadataOnly)a=u.PLACEHOLDER_DATA;else{let e=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);e instanceof Promise&&(e=await e),(0,d.assert)(e),a=(0,p.readBytes)(e,i.sampleSize)}let s=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,n=i.duration/this.internalTrack.timescale,o=new(0,u.EncodedPacket)(a,i.isKeyFrame?"key":"delta",s,n,e,i.sampleSize);return this.packetToSampleIndex.set(o,e),o}async fetchPacketInFragment(e,r,a){let i;if(-1===r)return null;let s=e.trackData.get(this.internalTrack.id).samples[r];if((0,d.assert)(s),a.metadataOnly)i=u.PLACEHOLDER_DATA;else{let e=this.internalTrack.demuxer.reader.requestSlice(s.byteOffset,s.byteSize);e instanceof Promise&&(e=await e),(0,d.assert)(e),i=(0,p.readBytes)(e,s.byteSize)}let n=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,o=s.duration/this.internalTrack.timescale,l=new(0,u.EncodedPacket)(i,s.isKeyFrame?"key":"delta",n,o,e.moofOffset+r,s.byteSize);return this.packetToFragmentLocation.set(l,{fragment:e,sampleIndex:r}),l}async performFragmentedLookup(e,r,a,i,s){let n,o=this.internalTrack.demuxer,l=null,c=null,u=-1;if(e){let{sampleIndex:a,correctSampleFound:i}=r(e);if(i)return this.fetchPacketInFragment(e,a,s);-1!==a&&(c=e,u=a)}let h=(0,d.binarySearchLessOrEqual)(this.internalTrack.fragmentLookupTable,a,e=>e.timestamp),p=-1!==h?this.internalTrack.fragmentLookupTable[h]:null,f=(0,d.binarySearchLessOrEqual)(this.internalTrack.fragmentPositionCache,a,e=>e.startTimestamp),g=-1!==f?this.internalTrack.fragmentPositionCache[f]:null,k=Math.max(p?.moofOffset??0,g?.moofOffset??0)||null;for(e?null===k||e.moofOffset>=k?(n=e.moofOffset+e.moofSize,l=e):n=k:n=k??0;;){if(l){let e=l.trackData.get(this.internalTrack.id);if(e&&e.startTimestamp>i)break}let e=o.reader.requestSliceRange(n,m.MIN_BOX_HEADER_SIZE,m.MAX_BOX_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e)break;let a=n,d=(0,m.readBoxHeader)(e);if(!d)break;if("moof"===d.name){let{sampleIndex:e,correctSampleFound:i}=r(l=await o.readFragment(a));if(i)return this.fetchPacketInFragment(l,e,s);-1!==e&&(c=l,u=e)}n=a+d.totalSize}if(p&&(!c||c.moofOffset<p.moofOffset)){let e=this.internalTrack.fragmentLookupTable[h-1];(0,d.assert)(!e||e.timestamp<p.timestamp);let a=e?.timestamp??-1/0;return this.performFragmentedLookup(null,r,a,i,s)}return c?this.fetchPacketInFragment(c,u,s):null}}class b extends k{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if("vp9"!==this.internalTrack.info.codec||this.internalTrack.info.vp9CodecInfo){if("av1"===this.internalTrack.info.codec&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&(0,o.extractAv1CodecInfoFromPacket)(e.data)}}else{let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&(0,o.extractVp9CodecInfoFromPacket)(e.data)}return{codec:(0,n.extractVideoCodecString)(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}}class T extends k{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:(0,n.extractAudioCodecString)(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}}let y=(e,r)=>{if(e.presentationTimestamps){let a=(0,d.binarySearchLessOrEqual)(e.presentationTimestamps,r,e=>e.presentationTimestamp);return -1===a?-1:e.presentationTimestamps[a].sampleIndex}{let a=(0,d.binarySearchLessOrEqual)(e.sampleTimingEntries,r,e=>e.startDecodeTimestamp);if(-1===a)return -1;let i=e.sampleTimingEntries[a];return i.startIndex+Math.min(Math.floor((r-i.startDecodeTimestamp)/i.delta),i.count-1)}},S=(e,r)=>{if(!e.keySampleIndices)return y(e,r);if(e.presentationTimestamps){let a=(0,d.binarySearchLessOrEqual)(e.presentationTimestamps,r,e=>e.presentationTimestamp);if(-1===a)return -1;for(let r=a;r>=0;r--){let a=e.presentationTimestamps[r].sampleIndex;if(-1!==(0,d.binarySearchExact)(e.keySampleIndices,a,e=>e))return a}return -1}{let a=y(e,r),i=(0,d.binarySearchLessOrEqual)(e.keySampleIndices,a,e=>e);return e.keySampleIndices[i]??-1}},w=(e,r)=>{let a=(0,d.binarySearchLessOrEqual)(e.sampleTimingEntries,r,e=>e.startIndex),i=e.sampleTimingEntries[a];if(!i||i.startIndex+i.count<=r)return null;let s=i.startDecodeTimestamp+(r-i.startIndex)*i.delta,n=(0,d.binarySearchLessOrEqual)(e.sampleCompositionTimeOffsets,r,e=>e.startIndex),o=e.sampleCompositionTimeOffsets[n];o&&r-o.startIndex<o.count&&(s+=o.offset);let l=e.sampleSizes[Math.min(r,e.sampleSizes.length-1)],c=(0,d.binarySearchLessOrEqual)(e.sampleToChunk,r,e=>e.startSampleIndex),u=e.sampleToChunk[c];(0,d.assert)(u);let h=u.startChunkIndex+Math.floor((r-u.startSampleIndex)/u.samplesPerChunk),m=e.chunkOffsets[h],p=u.startSampleIndex+(h-u.startChunkIndex)*u.samplesPerChunk,f=0,g=m;if(1===e.sampleSizes.length)g+=l*(r-p),f+=l*u.samplesPerChunk;else for(let a=p;a<p+u.samplesPerChunk;a++){let i=e.sampleSizes[a];a<r&&(g+=i),f+=i}let k=i.delta;if(e.presentationTimestamps){let a=e.presentationTimestampIndexMap[r];(0,d.assert)(void 0!==a),a<e.presentationTimestamps.length-1&&(k=e.presentationTimestamps[a+1].presentationTimestamp-s)}return{presentationTimestamp:s,duration:k,sampleOffset:g,sampleSize:l,chunkOffset:m,chunkSize:f,isKeyFrame:!e.keySampleIndices||-1!==(0,d.binarySearchExact)(e.keySampleIndices,r,e=>e)}},I=(e,r)=>{if(!e.keySampleIndices)return r+1;let a=(0,d.binarySearchLessOrEqual)(e.keySampleIndices,r,e=>e);return e.keySampleIndices[a+1]??-1},x=(e,r)=>{for(let a of(e.startTimestamp+=r,e.endTimestamp+=r,e.samples))a.presentationTimestamp+=r;for(let a of e.presentationTimestamps)a.presentationTimestamp+=r},E=e=>{let[r,,,a]=e,i=Math.hypot(r,a),s=-(180/Math.PI*Math.atan2(a/i,r/i));return Number.isFinite(s)?s:0},P=e=>0===e.sampleSizes.length},{"../codec.js":"8wd8o","../codec-data.js":"4Hepu","../demuxer.js":"6cHW1","../input-track.js":"8ofmg","../misc.js":"dpOkn","../packet.js":"i61Hy","./isobmff-misc.js":"8o5uh","./isobmff-reader.js":"8Phe1","../reader.js":"3hF2Q","../metadata.js":"fFgR1","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8wd8o":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"VIDEO_CODECS",()=>o),s.export(a,"PCM_AUDIO_CODECS",()=>l),s.export(a,"NON_PCM_AUDIO_CODECS",()=>c),s.export(a,"AUDIO_CODECS",()=>d),s.export(a,"SUBTITLE_CODECS",()=>u),s.export(a,"VP9_LEVEL_TABLE",()=>p),s.export(a,"buildVideoCodecString",()=>b),s.export(a,"generateVp9CodecConfigurationFromCodecString",()=>T),s.export(a,"generateAv1CodecConfigurationFromCodecString",()=>y),s.export(a,"extractVideoCodecString",()=>S),s.export(a,"buildAudioCodecString",()=>w),s.export(a,"extractAudioCodecString",()=>I),s.export(a,"aacFrequencyTable",()=>x),s.export(a,"aacChannelMap",()=>E),s.export(a,"parseAacAudioSpecificConfig",()=>P),s.export(a,"buildAacAudioSpecificConfig",()=>C),s.export(a,"OPUS_SAMPLE_RATE",()=>B),s.export(a,"parsePcmCodec",()=>A),s.export(a,"inferCodecFromCodecString",()=>D),s.export(a,"getVideoEncoderConfigExtension",()=>M),s.export(a,"getAudioEncoderConfigExtension",()=>F),s.export(a,"validateVideoChunkMetadata",()=>j),s.export(a,"validateAudioChunkMetadata",()=>V),s.export(a,"validateSubtitleMetadata",()=>H);var n=e("./misc.js");let o=["avc","hevc","vp9","av1","vp8"],l=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],c=["aac","opus","mp3","vorbis","flac"],d=[...c,...l],u=["webvtt"],h=[{maxMacroblocks:99,maxBitrate:64e3,level:10},{maxMacroblocks:396,maxBitrate:192e3,level:11},{maxMacroblocks:396,maxBitrate:384e3,level:12},{maxMacroblocks:396,maxBitrate:768e3,level:13},{maxMacroblocks:396,maxBitrate:2e6,level:20},{maxMacroblocks:792,maxBitrate:4e6,level:21},{maxMacroblocks:1620,maxBitrate:4e6,level:22},{maxMacroblocks:1620,maxBitrate:1e7,level:30},{maxMacroblocks:3600,maxBitrate:14e6,level:31},{maxMacroblocks:5120,maxBitrate:2e7,level:32},{maxMacroblocks:8192,maxBitrate:2e7,level:40},{maxMacroblocks:8192,maxBitrate:5e7,level:41},{maxMacroblocks:8704,maxBitrate:5e7,level:42},{maxMacroblocks:22080,maxBitrate:135e6,level:50},{maxMacroblocks:36864,maxBitrate:24e7,level:51},{maxMacroblocks:36864,maxBitrate:24e7,level:52},{maxMacroblocks:139264,maxBitrate:24e7,level:60},{maxMacroblocks:139264,maxBitrate:48e7,level:61},{maxMacroblocks:139264,maxBitrate:8e8,level:62}],m=[{maxPictureSize:36864,maxBitrate:128e3,tier:"L",level:30},{maxPictureSize:122880,maxBitrate:15e5,tier:"L",level:60},{maxPictureSize:245760,maxBitrate:3e6,tier:"L",level:63},{maxPictureSize:552960,maxBitrate:6e6,tier:"L",level:90},{maxPictureSize:983040,maxBitrate:1e7,tier:"L",level:93},{maxPictureSize:2228224,maxBitrate:12e6,tier:"L",level:120},{maxPictureSize:2228224,maxBitrate:3e7,tier:"H",level:120},{maxPictureSize:2228224,maxBitrate:2e7,tier:"L",level:123},{maxPictureSize:2228224,maxBitrate:5e7,tier:"H",level:123},{maxPictureSize:8912896,maxBitrate:25e6,tier:"L",level:150},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:150},{maxPictureSize:8912896,maxBitrate:4e7,tier:"L",level:153},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:153},{maxPictureSize:8912896,maxBitrate:6e7,tier:"L",level:156},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:156},{maxPictureSize:0x2200000,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:0x2200000,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:0x2200000,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:0x2200000,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:0x2200000,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:0x2200000,maxBitrate:8e8,tier:"H",level:186}],p=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:0x2200000,maxBitrate:18e7,level:60},{maxPictureSize:0x2200000,maxBitrate:24e7,level:61},{maxPictureSize:0x2200000,maxBitrate:48e7,level:62}],f=[{maxPictureSize:147456,maxBitrate:15e5,tier:"M",level:0},{maxPictureSize:278784,maxBitrate:3e6,tier:"M",level:1},{maxPictureSize:665856,maxBitrate:6e6,tier:"M",level:4},{maxPictureSize:1065024,maxBitrate:1e7,tier:"M",level:5},{maxPictureSize:2359296,maxBitrate:12e6,tier:"M",level:8},{maxPictureSize:2359296,maxBitrate:3e7,tier:"H",level:8},{maxPictureSize:2359296,maxBitrate:2e7,tier:"M",level:9},{maxPictureSize:2359296,maxBitrate:5e7,tier:"H",level:9},{maxPictureSize:8912896,maxBitrate:3e7,tier:"M",level:12},{maxPictureSize:8912896,maxBitrate:1e8,tier:"H",level:12},{maxPictureSize:8912896,maxBitrate:4e7,tier:"M",level:13},{maxPictureSize:8912896,maxBitrate:16e7,tier:"H",level:13},{maxPictureSize:8912896,maxBitrate:6e7,tier:"M",level:14},{maxPictureSize:8912896,maxBitrate:24e7,tier:"H",level:14},{maxPictureSize:0x2200000,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:0x2200000,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:0x2200000,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:0x2200000,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:0x2200000,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:0x2200000,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:0x2200000,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:0x2200000,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:0x2200000,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:0x2200000,maxBitrate:8e8,tier:"H",level:19}],g=".01.01.01.01.00",k=".0.110.01.01.01.0",b=(e,r,a,i)=>{if("avc"===e){let e=Math.ceil(r/16)*Math.ceil(a/16),s=h.find(r=>e<=r.maxMacroblocks&&i<=r.maxBitrate)??(0,n.last)(h),o=s?s.level:0,l="64".padStart(2,"0"),c=o.toString(16).padStart(2,"0");return`avc1.${l}00${c}`}if("hevc"===e){let e=r*a,s=m.find(r=>e<=r.maxPictureSize&&i<=r.maxBitrate)??(0,n.last)(m);return`hev1.1.6.${s.tier}${s.level}.B0`}if("vp8"===e)return"vp8";if("vp9"===e){let e=r*a,s=p.find(r=>e<=r.maxPictureSize&&i<=r.maxBitrate)??(0,n.last)(p);return`vp09.00.${s.level.toString().padStart(2,"0")}.08`}if("av1"===e){let e=r*a,s=f.find(r=>e<=r.maxPictureSize&&i<=r.maxBitrate)??(0,n.last)(f),o=s.level.toString().padStart(2,"0");return`av01.0.${o}${s.tier}.08`}throw TypeError(`Unhandled codec '${e}'.`)},T=e=>{let r=e.split(".");return[1,1,Number(r[1]),2,1,Number(r[2]),3,1,Number(r[3]),4,1,r[4]?Number(r[4]):1]},y=e=>{let r=e.split("."),a=Number(r[1]),i=r[2];return[129,(a<<5)+Number(i.slice(0,-1)),(("H"===i.slice(-1))<<7)+((8!==Number(r[3]))<<6)+0+((r[4]?Number(r[4]):0)<<4)+((r[5]?Number(r[5][0]):1)<<3)+((r[5]?Number(r[5][1]):1)<<2)+(r[5]?Number(r[5][2]):0),0]},S=e=>{let{codec:r,codecDescription:a,colorSpace:i,avcCodecInfo:s,hevcCodecInfo:o,vp9CodecInfo:l,av1CodecInfo:c}=e;if("avc"===r){if((0,n.assert)(null!==e.avcType),s){let r=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc${e.avcType}.${(0,n.bytesToHexString)(r)}`}if(!a||a.byteLength<4)throw TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${e.avcType}.${(0,n.bytesToHexString)(a.subarray(1,4))}`}if("hevc"===r){let e,r,i,s,l,c;if(o)e=o.generalProfileSpace,r=o.generalProfileIdc,i=(0,n.reverseBitsU32)(o.generalProfileCompatibilityFlags),s=o.generalTierFlag,l=o.generalLevelIdc,c=[...o.generalConstraintIndicatorFlags];else{if(!a||a.byteLength<23)throw TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let o=(0,n.toDataView)(a),d=o.getUint8(1);e=d>>6&3,r=31&d,i=(0,n.reverseBitsU32)(o.getUint32(2)),s=d>>5&1,l=o.getUint8(12),c=[];for(let e=0;e<6;e++)c.push(o.getUint8(6+e))}let d="hev1.";for(d+=["","A","B","C"][e]+r,d+=".",d+=i.toString(16).toUpperCase(),d+=".",d+=0===s?"L":"H",d+=l;c.length>0&&0===c[c.length-1];)c.pop();return c.length>0&&(d+=".",d+=c.map(e=>e.toString(16).toUpperCase()).join(".")),d}if("vp8"===r)return"vp8";if("vp9"===r){if(!l){let r=e.width*e.height,a=(0,n.last)(p).level;for(let e of p)if(r<=e.maxPictureSize){a=e.level;break}return`vp09.00.${a.toString().padStart(2,"0")}.08`}let r=l.profile.toString().padStart(2,"0"),a=l.level.toString().padStart(2,"0"),i=l.bitDepth.toString().padStart(2,"0"),s=l.chromaSubsampling.toString().padStart(2,"0"),o=l.colourPrimaries.toString().padStart(2,"0"),c=l.transferCharacteristics.toString().padStart(2,"0"),d=l.matrixCoefficients.toString().padStart(2,"0"),u=l.videoFullRangeFlag.toString().padStart(2,"0"),h=`vp09.${r}.${a}.${i}.${s}`;return(h+=`.${o}.${c}.${d}.${u}`).endsWith(g)&&(h=h.slice(0,-g.length)),h}if("av1"===r){if(!c){let r=e.width*e.height,a=(0,n.last)(p).level;for(let e of p)if(r<=e.maxPictureSize){a=e.level;break}return`av01.0.${a.toString().padStart(2,"0")}M.08`}let r=c.profile,a=c.level.toString().padStart(2,"0"),s=c.tier?"H":"M",o=c.bitDepth.toString().padStart(2,"0"),l=c.monochrome?"1":"0",d=100*c.chromaSubsamplingX+10*c.chromaSubsamplingY+ +(c.chromaSubsamplingX&&c.chromaSubsamplingY?c.chromaSamplePosition:0),u=i?.primaries?n.COLOR_PRIMARIES_MAP[i.primaries]:1,h=i?.transfer?n.TRANSFER_CHARACTERISTICS_MAP[i.transfer]:1,m=i?.matrix?n.MATRIX_COEFFICIENTS_MAP[i.matrix]:1,f=+!!i?.fullRange,g=`av01.${r}.${a}${s}.${o}`;return g+=`.${l}.${d.toString().padStart(3,"0")}`,g+=`.${u.toString().padStart(2,"0")}`,g+=`.${h.toString().padStart(2,"0")}`,g+=`.${m.toString().padStart(2,"0")}`,(g+=`.${f}`).endsWith(k)&&(g=g.slice(0,-k.length)),g}throw TypeError(`Unhandled codec '${r}'.`)},w=(e,r,a)=>{if("aac"===e)return r>=2&&a<=24e3?"mp4a.40.29":a<=24e3?"mp4a.40.5":"mp4a.40.2";if("mp3"===e)return"mp3";if("opus"===e)return"opus";if("vorbis"===e)return"vorbis";if("flac"===e)return"flac";else if(l.includes(e))return e;throw TypeError(`Unhandled codec '${e}'.`)},I=e=>{let{codec:r,codecDescription:a,aacCodecInfo:i}=e;if("aac"===r){if(!i)throw TypeError("AAC codec info must be provided.");if(i.isMpeg2)return"mp4a.67";{let e=P(a);return`mp4a.40.${e.objectType}`}}if("mp3"===r)return"mp3";if("opus"===r)return"opus";if("vorbis"===r)return"vorbis";if("flac"===r)return"flac";else if(r&&l.includes(r))return r;throw TypeError(`Unhandled codec '${r}'.`)},x=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],E=[-1,1,2,3,4,5,6,8],P=e=>{if(!e||e.byteLength<2)throw TypeError("AAC description must be at least 2 bytes long.");let r=new(0,n.Bitstream)(e),a=r.readBits(5);31===a&&(a=32+r.readBits(6));let i=r.readBits(4),s=null;15===i?s=r.readBits(24):i<x.length&&(s=x[i]);let o=r.readBits(4),l=null;return o>=1&&o<=7&&(l=E[o]),{objectType:a,frequencyIndex:i,sampleRate:s,channelConfiguration:o,numberOfChannels:l}},C=e=>{let r=x.indexOf(e.sampleRate),a=null;-1===r&&(r=15,a=e.sampleRate);let i=E.indexOf(e.numberOfChannels);if(-1===i)throw TypeError(`Unsupported number of channels: ${e.numberOfChannels}`);let s=13;e.objectType>=32&&(s+=6),15===r&&(s+=24);let o=new Uint8Array(Math.ceil(s/8)),l=new(0,n.Bitstream)(o);return e.objectType<32?l.writeBits(5,e.objectType):(l.writeBits(5,31),l.writeBits(6,e.objectType-32)),l.writeBits(4,r),15===r&&l.writeBits(24,a),l.writeBits(4,i),o},B=48e3,_=/^pcm-([usf])(\d+)+(be)?$/,A=e=>{let r;if((0,n.assert)(l.includes(e)),"ulaw"===e)return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if("alaw"===e)return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let a=_.exec(e);(0,n.assert)(a),r="u"===a[1]?"unsigned":"s"===a[1]?"signed":"float";let i=Number(a[2])/8;return{dataType:r,sampleSize:i,littleEndian:"be"!==a[3],silentValue:128*("pcm-u8"===e)}},D=e=>{if(e.startsWith("avc1")||e.startsWith("avc3"))return"avc";if(e.startsWith("hev1")||e.startsWith("hvc1"))return"hevc";if("vp8"===e)return"vp8";if(e.startsWith("vp09"))return"vp9";if(e.startsWith("av01"))return"av1";if(e.startsWith("mp4a.40")||"mp4a.67"===e)return"aac";if("mp3"===e||"mp4a.69"===e||"mp4a.6B"===e||"mp4a.6b"===e)return"mp3";if("opus"===e)return"opus";if("vorbis"===e)return"vorbis";if("flac"===e)return"flac";else if("ulaw"===e)return"ulaw";else if("alaw"===e)return"alaw";else if(_.test(e))return e;return"webvtt"===e?"webvtt":null},M=e=>"avc"===e?{avc:{format:"avc"}}:"hevc"===e?{hevc:{format:"hevc"}}:{},F=e=>"aac"===e?{aac:{format:"aac"}}:"opus"===e?{opus:{format:"opus"}}:{},R=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],U=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,L=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,O=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,N=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,j=e=>{if(!e)throw TypeError("Video chunk metadata must be provided.");if("object"!=typeof e)throw TypeError("Video chunk metadata must be an object.");if(!e.decoderConfig)throw TypeError("Video chunk metadata must include a decoder configuration.");if("object"!=typeof e.decoderConfig)throw TypeError("Video chunk metadata decoder configuration must be an object.");if("string"!=typeof e.decoderConfig.codec)throw TypeError("Video chunk metadata decoder configuration must specify a codec string.");if(!R.some(r=>e.decoderConfig.codec.startsWith(r)))throw TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(e.decoderConfig.codedWidth)||e.decoderConfig.codedWidth<=0)throw TypeError("Video chunk metadata decoder configuration must specify a valid codedWidth (positive integer).");if(!Number.isInteger(e.decoderConfig.codedHeight)||e.decoderConfig.codedHeight<=0)throw TypeError("Video chunk metadata decoder configuration must specify a valid codedHeight (positive integer).");if(void 0!==e.decoderConfig.description&&!(0,n.isAllowSharedBufferSource)(e.decoderConfig.description))throw TypeError("Video chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(void 0!==e.decoderConfig.colorSpace){let{colorSpace:r}=e.decoderConfig;if("object"!=typeof r)throw TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let a=Object.keys(n.COLOR_PRIMARIES_MAP);if(null!=r.primaries&&!a.includes(r.primaries))throw TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${a.join(", ")}.`);let i=Object.keys(n.TRANSFER_CHARACTERISTICS_MAP);if(null!=r.transfer&&!i.includes(r.transfer))throw TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${i.join(", ")}.`);let s=Object.keys(n.MATRIX_COEFFICIENTS_MAP);if(null!=r.matrix&&!s.includes(r.matrix))throw TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);if(null!=r.fullRange&&"boolean"!=typeof r.fullRange)throw TypeError("Video chunk metadata decoder configuration colorSpace fullRange, when defined, must be a boolean.")}if(e.decoderConfig.codec.startsWith("avc1")||e.decoderConfig.codec.startsWith("avc3")){if(!U.test(e.decoderConfig.codec))throw TypeError("Video chunk metadata decoder configuration codec string for AVC must be a valid AVC codec string as specified in Section 3.4 of RFC 6381.")}else if(e.decoderConfig.codec.startsWith("hev1")||e.decoderConfig.codec.startsWith("hvc1")){if(!L.test(e.decoderConfig.codec))throw TypeError("Video chunk metadata decoder configuration codec string for HEVC must be a valid HEVC codec string as specified in Section E.3 of ISO 14496-15.")}else if(e.decoderConfig.codec.startsWith("vp8")){if("vp8"!==e.decoderConfig.codec)throw TypeError('Video chunk metadata decoder configuration codec string for VP8 must be "vp8".')}else if(e.decoderConfig.codec.startsWith("vp09")){if(!O.test(e.decoderConfig.codec))throw TypeError('Video chunk metadata decoder configuration codec string for VP9 must be a valid VP9 codec string as specified in Section "Codecs Parameter String" of https://www.webmproject.org/vp9/mp4/.')}else if(e.decoderConfig.codec.startsWith("av01")&&!N.test(e.decoderConfig.codec))throw TypeError('Video chunk metadata decoder configuration codec string for AV1 must be a valid AV1 codec string as specified in Section "Codecs Parameter String" of https://aomediacodec.github.io/av1-isobmff/.')},z=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],V=e=>{if(!e)throw TypeError("Audio chunk metadata must be provided.");if("object"!=typeof e)throw TypeError("Audio chunk metadata must be an object.");if(!e.decoderConfig)throw TypeError("Audio chunk metadata must include a decoder configuration.");if("object"!=typeof e.decoderConfig)throw TypeError("Audio chunk metadata decoder configuration must be an object.");if("string"!=typeof e.decoderConfig.codec)throw TypeError("Audio chunk metadata decoder configuration must specify a codec string.");if(!z.some(r=>e.decoderConfig.codec.startsWith(r)))throw TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the WebCodecs Codec Registry.");if(!Number.isInteger(e.decoderConfig.sampleRate)||e.decoderConfig.sampleRate<=0)throw TypeError("Audio chunk metadata decoder configuration must specify a valid sampleRate (positive integer).");if(!Number.isInteger(e.decoderConfig.numberOfChannels)||e.decoderConfig.numberOfChannels<=0)throw TypeError("Audio chunk metadata decoder configuration must specify a valid numberOfChannels (positive integer).");if(void 0!==e.decoderConfig.description&&!(0,n.isAllowSharedBufferSource)(e.decoderConfig.description))throw TypeError("Audio chunk metadata decoder configuration description, when defined, must be an ArrayBuffer or an ArrayBuffer view.");if(e.decoderConfig.codec.startsWith("mp4a")&&"mp4a.69"!==e.decoderConfig.codec&&"mp4a.6B"!==e.decoderConfig.codec&&"mp4a.6b"!==e.decoderConfig.codec){if(!["mp4a.40.2","mp4a.40.02","mp4a.40.5","mp4a.40.05","mp4a.40.29","mp4a.67"].includes(e.decoderConfig.codec))throw TypeError("Audio chunk metadata decoder configuration codec string for AAC must be a valid AAC codec string as specified in https://www.w3.org/TR/webcodecs-aac-codec-registration/.");if(!e.decoderConfig.description)throw TypeError("Audio chunk metadata decoder configuration for AAC must include a description, which is expected to be an AudioSpecificConfig as specified in ISO 14496-3.")}else if(e.decoderConfig.codec.startsWith("mp3")||e.decoderConfig.codec.startsWith("mp4a")){if("mp3"!==e.decoderConfig.codec&&"mp4a.69"!==e.decoderConfig.codec&&"mp4a.6B"!==e.decoderConfig.codec&&"mp4a.6b"!==e.decoderConfig.codec)throw TypeError('Audio chunk metadata decoder configuration codec string for MP3 must be "mp3", "mp4a.69" or "mp4a.6B".')}else if(e.decoderConfig.codec.startsWith("opus")){if("opus"!==e.decoderConfig.codec)throw TypeError('Audio chunk metadata decoder configuration codec string for Opus must be "opus".');if(e.decoderConfig.description&&e.decoderConfig.description.byteLength<18)throw TypeError("Audio chunk metadata decoder configuration description, when specified, is expected to be an Identification Header as specified in Section 5.1 of RFC 7845.")}else if(e.decoderConfig.codec.startsWith("vorbis")){if("vorbis"!==e.decoderConfig.codec)throw TypeError('Audio chunk metadata decoder configuration codec string for Vorbis must be "vorbis".');if(!e.decoderConfig.description)throw TypeError("Audio chunk metadata decoder configuration for Vorbis must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-vorbis-codec-registration/.")}else if(e.decoderConfig.codec.startsWith("flac")){if("flac"!==e.decoderConfig.codec)throw TypeError('Audio chunk metadata decoder configuration codec string for FLAC must be "flac".');if(!e.decoderConfig.description||e.decoderConfig.description.byteLength<42)throw TypeError("Audio chunk metadata decoder configuration for FLAC must include a description, which is expected to adhere to the format described in https://www.w3.org/TR/webcodecs-flac-codec-registration/.")}else if((e.decoderConfig.codec.startsWith("pcm")||e.decoderConfig.codec.startsWith("ulaw")||e.decoderConfig.codec.startsWith("alaw"))&&!l.includes(e.decoderConfig.codec))throw TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${l.join(", ")}).`)},H=e=>{if(!e)throw TypeError("Subtitle metadata must be provided.");if("object"!=typeof e)throw TypeError("Subtitle metadata must be an object.");if(!e.config)throw TypeError("Subtitle metadata must include a config object.");if("object"!=typeof e.config)throw TypeError("Subtitle metadata config must be an object.");if("string"!=typeof e.config.description)throw TypeError("Subtitle metadata config description must be a string.")}},{"./misc.js":"dpOkn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],dpOkn:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function n(e){if(!e)throw Error("Assertion failed.")}s.defineInteropFlag(a),s.export(a,"assert",()=>n),s.export(a,"normalizeRotation",()=>o),s.export(a,"last",()=>l),s.export(a,"isU32",()=>c),s.export(a,"Bitstream",()=>d),s.export(a,"readExpGolomb",()=>u),s.export(a,"readSignedExpGolomb",()=>h),s.export(a,"writeBits",()=>m),s.export(a,"toUint8Array",()=>p),s.export(a,"toDataView",()=>f),s.export(a,"textDecoder",()=>g),s.export(a,"textEncoder",()=>k),s.export(a,"isIso88591Compatible",()=>b),s.export(a,"COLOR_PRIMARIES_MAP",()=>y),s.export(a,"COLOR_PRIMARIES_MAP_INVERSE",()=>S),s.export(a,"TRANSFER_CHARACTERISTICS_MAP",()=>w),s.export(a,"TRANSFER_CHARACTERISTICS_MAP_INVERSE",()=>I),s.export(a,"MATRIX_COEFFICIENTS_MAP",()=>x),s.export(a,"MATRIX_COEFFICIENTS_MAP_INVERSE",()=>E),s.export(a,"colorSpaceIsComplete",()=>P),s.export(a,"isAllowSharedBufferSource",()=>C),s.export(a,"AsyncMutex",()=>B),s.export(a,"bytesToHexString",()=>_),s.export(a,"reverseBitsU32",()=>A),s.export(a,"binarySearchExact",()=>D),s.export(a,"binarySearchLessOrEqual",()=>M),s.export(a,"insertSorted",()=>F),s.export(a,"promiseWithResolvers",()=>R),s.export(a,"removeItem",()=>U),s.export(a,"findLast",()=>L),s.export(a,"findLastIndex",()=>O),s.export(a,"toAsyncIterator",()=>N),s.export(a,"validateAnyIterable",()=>j),s.export(a,"assertNever",()=>z),s.export(a,"getUint24",()=>V),s.export(a,"getInt24",()=>H),s.export(a,"setUint24",()=>W),s.export(a,"setInt24",()=>q),s.export(a,"setInt64",()=>G),s.export(a,"mapAsyncGenerator",()=>K),s.export(a,"clamp",()=>X),s.export(a,"UNDETERMINED_LANGUAGE",()=>$),s.export(a,"roundIfAlmostInteger",()=>Q),s.export(a,"roundToMultiple",()=>Z),s.export(a,"ilog",()=>Y),s.export(a,"isIso639Dash2LanguageCode",()=>ee),s.export(a,"SECOND_TO_MICROSECOND_FACTOR",()=>et),s.export(a,"mergeRequestInit",()=>er),s.export(a,"retriedFetch",()=>ei),s.export(a,"computeRationalApproximation",()=>es),s.export(a,"CallSerializer",()=>en),s.export(a,"isWebKit",()=>el),s.export(a,"isFirefox",()=>ed),s.export(a,"isChromium",()=>eh),s.export(a,"getChromiumVersion",()=>ep),s.export(a,"coalesceIndex",()=>ef),s.export(a,"closedIntervalsOverlap",()=>eg),s.export(a,"keyValueIterator",()=>ek),s.export(a,"imageMimeTypeToExtension",()=>eb),s.export(a,"base64ToBytes",()=>eT),s.export(a,"bytesToBase64",()=>ey),s.export(a,"uint8ArraysAreEqual",()=>eS),s.export(a,"polyfillSymbolDispose",()=>ew),s.export(a,"isNumber",()=>eI);let o=e=>{let r=(e%360+360)%360;if(0===r||90===r||180===r||270===r)return r;throw Error(`Invalid rotation ${e}.`)},l=e=>e&&e[e.length-1],c=e=>e>=0&&e<0x100000000;class d{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),r=this.bytes[e]??0,a=7-(7&this.pos);return this.pos++,(r&1<<a)>>a}readBits(e){if(1===e)return this.readBit();let r=0;for(let a=0;a<e;a++)r<<=1,r|=this.readBit();return r}writeBits(e,r){let a=this.pos+e;for(let e=this.pos;e<a;e++){let i=Math.floor(e/8),s=this.bytes[i],n=7-(7&e);s&=~(1<<n),s|=(r&1<<a-e-1)>>a-e-1<<n,this.bytes[i]=s}this.pos=a}readAlignedByte(){if(this.pos%8!=0)throw Error("Bitstream is not byte-aligned.");let e=this.pos/8,r=this.bytes[e]??0;return this.pos+=8,r}skipBits(e){this.pos+=e}getBitsLeft(){return 8*this.bytes.length-this.pos}clone(){let e=new d(this.bytes);return e.pos=this.pos,e}}let u=e=>{let r=0;for(;0===e.readBits(1)&&r<32;)r++;if(r>=32)throw Error("Invalid exponential-Golomb code.");return(1<<r)-1+e.readBits(r)},h=e=>{let r=u(e);return(1&r)==0?-(r>>1):r+1>>1},m=(e,r,a,i)=>{for(let s=r;s<a;s++){let r=Math.floor(s/8),n=e[r],o=7-(7&s);n&=~(1<<o),n|=(i&1<<a-s-1)>>a-s-1<<o,e[r]=n}},p=e=>e.constructor===Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e),f=e=>e.constructor===DataView?e:ArrayBuffer.isView(e)?new DataView(e.buffer,e.byteOffset,e.byteLength):new DataView(e),g=new TextDecoder,k=new TextEncoder,b=e=>{for(let r=0;r<e.length;r++)if(e.charCodeAt(r)>255)return!1;return!0},T=e=>Object.fromEntries(Object.entries(e).map(([e,r])=>[r,e])),y={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},S=T(y),w={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},I=T(w),x={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},E=T(x),P=e=>!!e&&!!e.primaries&&!!e.transfer&&!!e.matrix&&void 0!==e.fullRange,C=e=>e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||ArrayBuffer.isView(e);class B{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,r=new Promise(r=>{e=r}),a=this.currentPromise;return this.currentPromise=r,await a,e}}let _=e=>[...e].map(e=>e.toString(16).padStart(2,"0")).join(""),A=e=>(e=(e=(e=(e=(e=e>>1&0x55555555|(0x55555555&e)<<1)>>2&0x33333333|(0x33333333&e)<<2)>>4&0xf0f0f0f|(0xf0f0f0f&e)<<4)>>8&0xff00ff|(0xff00ff&e)<<8)>>16&65535|(65535&e)<<16)>>>0,D=(e,r,a)=>{let i=0,s=e.length-1,n=-1;for(;i<=s;){let o=i+s>>1,l=a(e[o]);l===r?(n=o,s=o-1):l<r?i=o+1:s=o-1}return n},M=(e,r,a)=>{let i=0,s=e.length-1,n=-1;for(;i<=s;){let o=i+(s-i+1)/2|0;a(e[o])<=r?(n=o,i=o+1):s=o-1}return n},F=(e,r,a)=>{let i=M(e,a(r),a);e.splice(i+1,0,r)},R=()=>{let e,r;return{promise:new Promise((a,i)=>{e=a,r=i}),resolve:e,reject:r}},U=(e,r)=>{let a=e.indexOf(r);-1!==a&&e.splice(a,1)},L=(e,r)=>{for(let a=e.length-1;a>=0;a--)if(r(e[a]))return e[a]},O=(e,r)=>{for(let a=e.length-1;a>=0;a--)if(r(e[a]))return a;return -1},N=async function*(e){Symbol.iterator in e?yield*e[Symbol.iterator]():yield*e[Symbol.asyncIterator]()},j=e=>{if(!(Symbol.iterator in e)&&!(Symbol.asyncIterator in e))throw TypeError("Argument must be an iterable or async iterable.")},z=e=>{throw Error(`Unexpected value: ${e}`)},V=(e,r,a)=>{let i=e.getUint8(r),s=e.getUint8(r+1),n=e.getUint8(r+2);return a?i|s<<8|n<<16:i<<16|s<<8|n},H=(e,r,a)=>V(e,r,a)<<8>>8,W=(e,r,a,i)=>{a>>>=0,a&=0xffffff,i?(e.setUint8(r,255&a),e.setUint8(r+1,a>>>8&255),e.setUint8(r+2,a>>>16&255)):(e.setUint8(r,a>>>16&255),e.setUint8(r+1,a>>>8&255),e.setUint8(r+2,255&a))},q=(e,r,a,i)=>{(a=X(a,-8388608,8388607))<0&&(a=a+0x1000000&0xffffff),W(e,r,a,i)},G=(e,r,a,i)=>{i?(e.setUint32(r+0,a,!0),e.setInt32(r+4,Math.floor(a/0x100000000),!0)):(e.setInt32(r+0,Math.floor(a/0x100000000),!0),e.setUint32(r+4,a,!0))},K=(e,r)=>({async next(){let a=await e.next();return a.done?{value:void 0,done:!0}:{value:r(a.value),done:!1}},return:()=>e.return(),throw:r=>e.throw(r),[Symbol.asyncIterator](){return this}}),X=(e,r,a)=>Math.max(r,Math.min(a,e)),$="und",Q=e=>{let r=Math.round(e);return Math.abs(e/r-1)<10*Number.EPSILON?r:e},Z=(e,r)=>Math.round(e/r)*r,Y=e=>{let r=0;for(;e;)r++,e>>=1;return r},J=/^[a-z]{3}$/,ee=e=>J.test(e),et=1e6*(1+Number.EPSILON),er=(e,r)=>{let a={...e,...r};if(e.headers||r.headers){let i=e.headers?ea(e.headers):{},s=r.headers?ea(r.headers):{},n={...i};Object.entries(s).forEach(([e,r])=>{let a=Object.keys(n).find(r=>r.toLowerCase()===e.toLowerCase());a&&delete n[a],n[e]=r}),a.headers=n}return a},ea=e=>{if(e instanceof Headers){let r={};return e.forEach((e,a)=>{r[a]=e}),r}if(Array.isArray(e)){let r={};return e.forEach(([e,a])=>{r[e]=a}),r}return e},ei=async(e,r,a,i,s)=>{let n=0;for(;;)try{return await e(r,a)}catch(a){if(s())throw a;let e=i(++n,a,r);if(null===e)throw a;if(console.error("Retrying failed fetch. Error:",a),!Number.isFinite(e)||e<0)throw TypeError("Retry delay must be a non-negative finite number.");if(e>0&&await new Promise(r=>setTimeout(r,1e3*e)),s())throw a}},es=(e,r)=>{let a=e<0?-1:1,i=0,s=1,n=1,o=0,l=e=Math.abs(e);for(;;){let e=Math.floor(l),a=e*n+i,c=e*o+s;if(c>r||(i=n,s=o,n=a,o=c,!isFinite(l=1/(l-e))))break}return{numerator:a*n,denominator:o}};class en{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}}let eo=null,el=()=>null!==eo?eo:eo=!!("undefined"!=typeof navigator&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),ec=null,ed=()=>null!==ec?ec:ec="undefined"!=typeof navigator&&navigator.userAgent?.includes("Firefox"),eu=null,eh=()=>null!==eu?eu:eu=!!("undefined"!=typeof navigator&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),em=null,ep=()=>{if(null!==em)return em;if("undefined"==typeof navigator)return null;let e=/\bChrome\/(\d+)/.exec(navigator.userAgent);return e?em=Number(e[1]):null},ef=(e,r)=>-1!==e?e:r,eg=(e,r,a,i)=>e<=i&&a<=r,ek=function*(e){for(let r in e){let a=e[r];void 0!==a&&(yield{key:r,value:a})}},eb=e=>{switch(e.toLowerCase()){case"image/jpeg":case"image/jpg":return".jpg";case"image/png":return".png";case"image/gif":return".gif";case"image/webp":return".webp";case"image/bmp":return".bmp";case"image/svg+xml":return".svg";case"image/tiff":return".tiff";case"image/avif":return".avif";case"image/x-icon":case"image/vnd.microsoft.icon":return".ico";default:return null}},eT=e=>{let r=atob(e),a=new Uint8Array(r.length);for(let e=0;e<r.length;e++)a[e]=r.charCodeAt(e);return a},ey=e=>{let r="";for(let a=0;a<e.length;a++)r+=String.fromCharCode(e[a]);return btoa(r)},eS=(e,r)=>{if(e.length!==r.length)return!1;for(let a=0;a<e.length;a++)if(e[a]!==r[a])return!1;return!0},ew=()=>{Symbol.dispose??=Symbol("Symbol.dispose")},eI=e=>"number"==typeof e&&!Number.isNaN(e)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6ykb1":[function(e,r,a,i){a.interopDefault=function(e){return e&&e.__esModule?e:{default:e}},a.defineInteropFlag=function(e){Object.defineProperty(e,"__esModule",{value:!0})},a.exportAll=function(e,r){return Object.keys(e).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(r,a)||Object.defineProperty(r,a,{enumerable:!0,get:function(){return e[a]}})}),r},a.export=function(e,r,a){Object.defineProperty(e,r,{enumerable:!0,get:a})}},{}],"4Hepu":[function(e,r,a,i){var s,n,o,l,c,d,u=e("@parcel/transformer-js/src/esmodule-helpers.js");u.defineInteropFlag(a),u.export(a,"AvcNalUnitType",()=>l),u.export(a,"HevcNalUnitType",()=>c),u.export(a,"findNalUnitsInAnnexB",()=>p),u.export(a,"transformAnnexBToLengthPrefixed",()=>k),u.export(a,"extractAvcNalUnits",()=>b),u.export(a,"extractAvcDecoderConfigurationRecord",()=>y),u.export(a,"serializeAvcDecoderConfigurationRecord",()=>S),u.export(a,"deserializeAvcDecoderConfigurationRecord",()=>w),u.export(a,"parseAvcSps",()=>I),u.export(a,"extractHevcNalUnits",()=>x),u.export(a,"extractNalUnitTypeForHevc",()=>E),u.export(a,"extractHevcDecoderConfigurationRecord",()=>P),u.export(a,"serializeHevcDecoderConfigurationRecord",()=>R),u.export(a,"extractVp9CodecInfoFromPacket",()=>U),u.export(a,"iterateAv1PacketObus",()=>L),u.export(a,"extractAv1CodecInfoFromPacket",()=>O),u.export(a,"parseOpusIdentificationHeader",()=>N),u.export(a,"parseOpusTocByte",()=>z),u.export(a,"parseModesFromVorbisSetupPacket",()=>V),u.export(a,"determineVideoPacketType",()=>H),u.export(a,"FlacBlockType",()=>d),u.export(a,"readVorbisComments",()=>W),u.export(a,"createVorbisComments",()=>q);var h=e("./codec.js"),m=e("./misc.js");(s=l||(l={}))[s.IDR=5]="IDR",s[s.SEI=6]="SEI",s[s.SPS=7]="SPS",s[s.PPS=8]="PPS",s[s.SPS_EXT=13]="SPS_EXT",(n=c||(c={}))[n.RASL_N=8]="RASL_N",n[n.RASL_R=9]="RASL_R",n[n.BLA_W_LP=16]="BLA_W_LP",n[n.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",n[n.VPS_NUT=32]="VPS_NUT",n[n.SPS_NUT=33]="SPS_NUT",n[n.PPS_NUT=34]="PPS_NUT",n[n.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",n[n.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT";let p=e=>{let r=[],a=0;for(;a<e.length;){let i=-1,s=0;for(let r=a;r<e.length-3;r++){if(0===e[r]&&0===e[r+1]&&1===e[r+2]){i=r,s=3;break}if(r<e.length-4&&0===e[r]&&0===e[r+1]&&0===e[r+2]&&1===e[r+3]){i=r,s=4;break}}if(-1===i)break;if(a>0&&i>a){let s=e.subarray(a,i);s.length>0&&r.push(s)}a=i+s}if(a<e.length){let i=e.subarray(a);i.length>0&&r.push(i)}return r},f=(e,r)=>{let a=[],i=0,s=new DataView(e.buffer,e.byteOffset,e.byteLength);for(;i+r<=e.length;){let n;1===r?n=s.getUint8(i):2===r?n=s.getUint16(i,!1):3===r?n=(0,m.getUint24)(s,i,!1):4===r?n=s.getUint32(i,!1):((0,m.assertNever)(r),(0,m.assert)(!1)),i+=r;let o=e.subarray(i,i+n);a.push(o),i+=n}return a},g=e=>{let r=[],a=e.length;for(let i=0;i<a;i++)i+2<a&&0===e[i]&&0===e[i+1]&&3===e[i+2]?(r.push(0,0),i+=2):r.push(e[i]);return new Uint8Array(r)},k=e=>{let r=p(e);if(0===r.length)return null;let a=0;for(let e of r)a+=4+e.byteLength;let i=new Uint8Array(a),s=new DataView(i.buffer),n=0;for(let e of r){let r=e.byteLength;s.setUint32(n,r,!1),n+=4,i.set(e,n),n+=e.byteLength}return i},b=(e,r)=>r.description?f(e,(3&(0,m.toUint8Array)(r.description)[4])+1):p(e),T=e=>31&e[0],y=e=>{try{let r=p(e),a=r.filter(e=>T(e)===l.SPS),i=r.filter(e=>T(e)===l.PPS),s=r.filter(e=>T(e)===l.SPS_EXT);if(0===a.length||0===i.length)return null;let n=a[0],o=I(n);(0,m.assert)(null!==o);let c=100===o.profileIdc||110===o.profileIdc||122===o.profileIdc||144===o.profileIdc;return{configurationVersion:1,avcProfileIndication:o.profileIdc,profileCompatibility:o.constraintFlags,avcLevelIndication:o.levelIdc,lengthSizeMinusOne:3,sequenceParameterSets:a,pictureParameterSets:i,chromaFormat:c?o.chromaFormatIdc:null,bitDepthLumaMinus8:c?o.bitDepthLumaMinus8:null,bitDepthChromaMinus8:c?o.bitDepthChromaMinus8:null,sequenceParameterSetExt:c?s:null}}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},S=e=>{let r=[];for(let a of(r.push(e.configurationVersion),r.push(e.avcProfileIndication),r.push(e.profileCompatibility),r.push(e.avcLevelIndication),r.push(252|3&e.lengthSizeMinusOne),r.push(224|31&e.sequenceParameterSets.length),e.sequenceParameterSets)){let e=a.byteLength;r.push(e>>8),r.push(255&e);for(let i=0;i<e;i++)r.push(a[i])}for(let a of(r.push(e.pictureParameterSets.length),e.pictureParameterSets)){let e=a.byteLength;r.push(e>>8),r.push(255&e);for(let i=0;i<e;i++)r.push(a[i])}if(100===e.avcProfileIndication||110===e.avcProfileIndication||122===e.avcProfileIndication||144===e.avcProfileIndication)for(let a of((0,m.assert)(null!==e.chromaFormat),(0,m.assert)(null!==e.bitDepthLumaMinus8),(0,m.assert)(null!==e.bitDepthChromaMinus8),(0,m.assert)(null!==e.sequenceParameterSetExt),r.push(252|3&e.chromaFormat),r.push(248|7&e.bitDepthLumaMinus8),r.push(248|7&e.bitDepthChromaMinus8),r.push(e.sequenceParameterSetExt.length),e.sequenceParameterSetExt)){let e=a.byteLength;r.push(e>>8),r.push(255&e);for(let i=0;i<e;i++)r.push(a[i])}return new Uint8Array(r)},w=e=>{try{let r=(0,m.toDataView)(e),a=0,i=r.getUint8(a++),s=r.getUint8(a++),n=r.getUint8(a++),o=r.getUint8(a++),l=3&r.getUint8(a++),c=31&r.getUint8(a++),d=[];for(let i=0;i<c;i++){let i=r.getUint16(a,!1);a+=2,d.push(e.subarray(a,a+i)),a+=i}let u=r.getUint8(a++),h=[];for(let i=0;i<u;i++){let i=r.getUint16(a,!1);a+=2,h.push(e.subarray(a,a+i)),a+=i}let p={configurationVersion:i,avcProfileIndication:s,profileCompatibility:n,avcLevelIndication:o,lengthSizeMinusOne:l,sequenceParameterSets:d,pictureParameterSets:h,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if((100===s||110===s||122===s||144===s)&&a+4<=e.length){let i=3&r.getUint8(a++),s=7&r.getUint8(a++),n=7&r.getUint8(a++),o=r.getUint8(a++);p.chromaFormat=i,p.bitDepthLumaMinus8=s,p.bitDepthChromaMinus8=n;let l=[];for(let i=0;i<o;i++){let i=r.getUint16(a,!1);a+=2,l.push(e.subarray(a,a+i)),a+=i}p.sequenceParameterSetExt=l}return p}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},I=e=>{try{let r=new(0,m.Bitstream)(g(e));r.skipBits(1),r.skipBits(2);let a=r.readBits(5);if(7!==a)return null;let i=r.readAlignedByte(),s=r.readAlignedByte(),n=r.readAlignedByte();(0,m.readExpGolomb)(r);let o=null,l=null,c=null;if((100===i||110===i||122===i||244===i||44===i||83===i||86===i||118===i||128===i)&&(o=(0,m.readExpGolomb)(r),3===o&&r.skipBits(1),l=(0,m.readExpGolomb)(r),c=(0,m.readExpGolomb)(r),r.skipBits(1),r.readBits(1))){for(let e=0;e<(3!==o?8:12);e++)if(r.readBits(1)){let a=e<6?16:64,i=8,s=8;for(let e=0;e<a;e++){if(0!==s){let e=(0,m.readSignedExpGolomb)(r);s=(i+e+256)%256}i=0===s?i:s}}}(0,m.readExpGolomb)(r);let d=(0,m.readExpGolomb)(r);if(0===d)(0,m.readExpGolomb)(r);else if(1===d){r.skipBits(1),(0,m.readSignedExpGolomb)(r),(0,m.readSignedExpGolomb)(r);let e=(0,m.readExpGolomb)(r);for(let a=0;a<e;a++)(0,m.readSignedExpGolomb)(r)}(0,m.readExpGolomb)(r),r.skipBits(1),(0,m.readExpGolomb)(r),(0,m.readExpGolomb)(r);let u=r.readBits(1);return{profileIdc:i,constraintFlags:s,levelIdc:n,frameMbsOnlyFlag:u,chromaFormatIdc:o,bitDepthLumaMinus8:l,bitDepthChromaMinus8:c}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},x=(e,r)=>r.description?f(e,(3&(0,m.toUint8Array)(r.description)[21])+1):p(e),E=e=>e[0]>>1&63,P=e=>{try{let r=p(e),a=r.filter(e=>E(e)===c.VPS_NUT),i=r.filter(e=>E(e)===c.SPS_NUT),s=r.filter(e=>E(e)===c.PPS_NUT),n=r.filter(e=>E(e)===c.PREFIX_SEI_NUT||E(e)===c.SUFFIX_SEI_NUT);if(0===i.length||0===s.length)return null;let o=i[0],l=new(0,m.Bitstream)(g(o));l.skipBits(16),l.readBits(4);let d=l.readBits(3),u=l.readBits(1),{general_profile_space:h,general_tier_flag:f,general_profile_idc:k,general_profile_compatibility_flags:b,general_constraint_indicator_flags:T,general_level_idc:y}=C(l,d);(0,m.readExpGolomb)(l);let S=(0,m.readExpGolomb)(l);3===S&&l.skipBits(1),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),l.readBits(1)&&((0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l));let w=(0,m.readExpGolomb)(l),I=(0,m.readExpGolomb)(l);(0,m.readExpGolomb)(l);let x=l.readBits(1)?0:d;for(let e=x;e<=d;e++)(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l);(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),l.readBits(1)&&l.readBits(1)&&B(l),l.skipBits(1),l.skipBits(1),l.readBits(1)&&(l.skipBits(4),l.skipBits(4),(0,m.readExpGolomb)(l),(0,m.readExpGolomb)(l),l.skipBits(1));let P=(0,m.readExpGolomb)(l);if(_(l,P),l.readBits(1)){let e=(0,m.readExpGolomb)(l);for(let r=0;r<e;r++)(0,m.readExpGolomb)(l),l.skipBits(1)}l.skipBits(1),l.skipBits(1);let A=0;l.readBits(1)&&(A=D(l,d));let M=0;if(s.length>0){let e=s[0],r=new(0,m.Bitstream)(g(e));r.skipBits(16),(0,m.readExpGolomb)(r),(0,m.readExpGolomb)(r),r.skipBits(1),r.skipBits(1),r.skipBits(3),r.skipBits(1),r.skipBits(1),(0,m.readExpGolomb)(r),(0,m.readExpGolomb)(r),(0,m.readSignedExpGolomb)(r),r.skipBits(1),r.skipBits(1),r.readBits(1)&&(0,m.readExpGolomb)(r),(0,m.readSignedExpGolomb)(r),(0,m.readSignedExpGolomb)(r),r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let a=r.readBits(1),i=r.readBits(1);M=a||i?a&&!i?2:!a&&i?3:0:0}let F=[...a.length?[{arrayCompleteness:1,nalUnitType:c.VPS_NUT,nalUnits:a}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:c.SPS_NUT,nalUnits:i}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:c.PPS_NUT,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:E(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:h,generalTierFlag:f,generalProfileIdc:k,generalProfileCompatibilityFlags:b,generalConstraintIndicatorFlags:T,generalLevelIdc:y,minSpatialSegmentationIdc:A,parallelismType:M,chromaFormatIdc:S,bitDepthLumaMinus8:w,bitDepthChromaMinus8:I,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:d+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:F}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},C=(e,r)=>{let a=e.readBits(2),i=e.readBits(1),s=e.readBits(5),n=0;for(let r=0;r<32;r++)n=n<<1|e.readBits(1);let o=new Uint8Array(6);for(let r=0;r<6;r++)o[r]=e.readBits(8);let l=e.readBits(8),c=[],d=[];for(let a=0;a<r;a++)c.push(e.readBits(1)),d.push(e.readBits(1));if(r>0)for(let a=r;a<8;a++)e.skipBits(2);for(let a=0;a<r;a++)c[a]&&e.skipBits(88),d[a]&&e.skipBits(8);return{general_profile_space:a,general_tier_flag:i,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:l}},B=e=>{for(let r=0;r<4;r++)for(let a=0;a<(3===r?2:6);a++)if(e.readBits(1)){let a=Math.min(64,1<<4+(r<<1));r>1&&(0,m.readSignedExpGolomb)(e);for(let r=0;r<a;r++)(0,m.readSignedExpGolomb)(e)}else(0,m.readExpGolomb)(e)},_=(e,r)=>{let a=[];for(let i=0;i<r;i++)a[i]=A(e,i,r,a)},A=(e,r,a,i)=>{let s=0,n=0,o=0;if(0!==r&&(n=e.readBits(1)),n){o=r===a?r-((0,m.readExpGolomb)(e)+1):r-1,e.readBits(1),(0,m.readExpGolomb)(e);let n=i[o]??0;for(let r=0;r<=n;r++)e.readBits(1)||e.readBits(1);s=i[o]}else{let r=(0,m.readExpGolomb)(e),a=(0,m.readExpGolomb)(e);for(let a=0;a<r;a++)(0,m.readExpGolomb)(e),e.readBits(1);for(let r=0;r<a;r++)(0,m.readExpGolomb)(e),e.readBits(1);s=r+a}return s},D=(e,r)=>{if(e.readBits(1)&&255===e.readBits(8)&&(e.readBits(16),e.readBits(16)),e.readBits(1)&&e.readBits(1),e.readBits(1)&&(e.readBits(3),e.readBits(1),e.readBits(1)&&(e.readBits(8),e.readBits(8),e.readBits(8))),e.readBits(1)&&((0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e)),e.readBits(1),e.readBits(1),e.readBits(1),e.readBits(1)&&((0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e)),e.readBits(1)&&(e.readBits(32),e.readBits(32),e.readBits(1)&&(0,m.readExpGolomb)(e),e.readBits(1)&&M(e,!0,r)),e.readBits(1)){e.readBits(1),e.readBits(1),e.readBits(1);let r=(0,m.readExpGolomb)(e);return(0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e),r}return 0},M=(e,r,a)=>{let i=!1,s=!1,n=!1;r&&(i=1===e.readBits(1),s=1===e.readBits(1),(i||s)&&((n=1===e.readBits(1))&&(e.readBits(8),e.readBits(5),e.readBits(1),e.readBits(5)),e.readBits(4),e.readBits(4),n&&e.readBits(4),e.readBits(5),e.readBits(5),e.readBits(5)));for(let r=0;r<=a;r++){let r=1===e.readBits(1),a=!0;r||(a=1===e.readBits(1));let o=!1;a?(0,m.readExpGolomb)(e):o=1===e.readBits(1);let l=1;o||(l=(0,m.readExpGolomb)(e)+1),i&&F(e,l,n),s&&F(e,l,n)}},F=(e,r,a)=>{for(let i=0;i<r;i++)(0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e),a&&((0,m.readExpGolomb)(e),(0,m.readExpGolomb)(e)),e.readBits(1)},R=e=>{let r=[];for(let a of(r.push(e.configurationVersion),r.push((3&e.generalProfileSpace)<<6|(1&e.generalTierFlag)<<5|31&e.generalProfileIdc),r.push(e.generalProfileCompatibilityFlags>>>24&255),r.push(e.generalProfileCompatibilityFlags>>>16&255),r.push(e.generalProfileCompatibilityFlags>>>8&255),r.push(255&e.generalProfileCompatibilityFlags),r.push(...e.generalConstraintIndicatorFlags),r.push(255&e.generalLevelIdc),r.push(240|e.minSpatialSegmentationIdc>>8&15),r.push(255&e.minSpatialSegmentationIdc),r.push(252|3&e.parallelismType),r.push(252|3&e.chromaFormatIdc),r.push(248|7&e.bitDepthLumaMinus8),r.push(248|7&e.bitDepthChromaMinus8),r.push(e.avgFrameRate>>8&255),r.push(255&e.avgFrameRate),r.push((3&e.constantFrameRate)<<6|(7&e.numTemporalLayers)<<3|(1&e.temporalIdNested)<<2|3&e.lengthSizeMinusOne),r.push(255&e.arrays.length),e.arrays))for(let e of(r.push((1&a.arrayCompleteness)<<7|63&a.nalUnitType),r.push(a.nalUnits.length>>8&255),r.push(255&a.nalUnits.length),a.nalUnits)){r.push(e.length>>8&255),r.push(255&e.length);for(let a=0;a<e.length;a++)r.push(e[a])}return new Uint8Array(r)},U=e=>{let r=new(0,m.Bitstream)(e);if(2!==r.readBits(2))return null;let a=r.readBits(1),i=(r.readBits(1)<<1)+a;if(3===i&&r.skipBits(1),1===r.readBits(1)||0!==r.readBits(1)||(r.skipBits(2),4817730!==r.readBits(24)))return null;let s=8;i>=2&&(s=r.readBits(1)?12:10);let n=r.readBits(3),o=0,l=0;if(7!==n)if(l=r.readBits(1),1===i||3===i){let e=r.readBits(1),a=r.readBits(1);o=e||a?e&&!a?2:1:3,r.skipBits(1)}else o=1;else o=3,l=1;let c=(r.readBits(16)+1)*(r.readBits(16)+1),d=(0,m.last)(h.VP9_LEVEL_TABLE).level;for(let e of h.VP9_LEVEL_TABLE)if(c<=e.maxPictureSize){d=e.level;break}return{profile:i,level:d,bitDepth:s,chromaSubsampling:o,videoFullRangeFlag:l,colourPrimaries:2===n?1:1===n?6:2,transferCharacteristics:2===n?1:1===n?6:2,matrixCoefficients:7===n?0:2===n?1:1===n?6:2}},L=function*(e){let r=new(0,m.Bitstream)(e),a=()=>{let e=0;for(let a=0;a<8;a++){let i=r.readAlignedByte();if(e|=(127&i)<<7*a,!(128&i))break;if(7===a&&128&i)return null}return e>=0x100000000-1?null:e};for(;r.getBitsLeft()>=8;){let i;r.skipBits(1);let s=r.readBits(4),n=r.readBits(1),o=r.readBits(1);if(r.skipBits(1),n&&r.skipBits(8),o){let e=a();if(null===e)return;i=e}else i=Math.floor(r.getBitsLeft()/8);(0,m.assert)(r.pos%8==0),yield{type:s,data:e.subarray(r.pos/8,r.pos/8+i)},r.skipBits(8*i)}},O=e=>{for(let{type:r,data:a}of L(e)){if(1!==r)continue;let e=new(0,m.Bitstream)(a),i=e.readBits(3);e.readBits(1);let s=e.readBits(1),n=0,o=0,l=0;if(s)n=e.readBits(5);else{if(e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.readBits(1)))return null;let r=e.readBits(1);r&&(l=e.readBits(5),e.skipBits(32),e.skipBits(5),e.skipBits(5));let a=e.readBits(5);for(let i=0;i<=a;i++){e.skipBits(12);let a=e.readBits(5);if(0===i&&(n=a),a>7){let r=e.readBits(1);0===i&&(o=r)}if(r&&e.readBits(1)){let r=l+1;e.skipBits(r),e.skipBits(r),e.skipBits(1)}e.readBits(1)&&e.skipBits(4)}}let c=e.readBits(4),d=e.readBits(4),u=c+1;e.skipBits(u);let h=d+1;e.skipBits(h);if((s?0:e.readBits(1))&&(e.skipBits(4),e.skipBits(3)),e.skipBits(1),e.skipBits(1),e.skipBits(1),!s){e.skipBits(1),e.skipBits(1),e.skipBits(1),e.skipBits(1);let r=e.readBits(1);r&&(e.skipBits(1),e.skipBits(1));let a=e.readBits(1);(a?2:e.readBits(1))>0&&(e.readBits(1)||e.skipBits(1)),r&&e.skipBits(3)}e.skipBits(1),e.skipBits(1),e.skipBits(1);let p=e.readBits(1),f=8;2===i&&p?f=e.readBits(1)?12:10:i<=2&&(f=p?10:8);let g=0;1!==i&&(g=e.readBits(1));let k=1,b=1,T=0;return!g&&(0===i?(k=1,b=1):1===i?(k=0,b=0):12===f&&(k=e.readBits(1))&&(b=e.readBits(1)),k&&b&&(T=e.readBits(2))),{profile:i,level:n,tier:o,bitDepth:f,monochrome:g,chromaSubsamplingX:k,chromaSubsamplingY:b,chromaSamplePosition:T}}return null},N=e=>{let r=(0,m.toDataView)(e),a=r.getUint8(9),i=r.getUint16(10,!0),s=r.getUint32(12,!0),n=r.getInt16(16,!0),o=r.getUint8(18),l=null;return o&&(l=e.subarray(19,21+a)),{outputChannelCount:a,preSkip:i,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:l}},j=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],z=e=>({durationInSamples:j[e[0]>>3]}),V=e=>{if(e.length<7)throw Error("Setup header is too short.");if(5!==e[0])throw Error("Wrong packet type in Setup header.");if("vorbis"!==String.fromCharCode(...e.slice(1,7)))throw Error("Invalid packet signature in Setup header.");let r=e.length,a=new Uint8Array(r);for(let i=0;i<r;i++)a[i]=e[r-1-i];let i=new(0,m.Bitstream)(a),s=0;for(;i.getBitsLeft()>97;)if(1===i.readBits(1)){s=i.pos;break}if(0===s)throw Error("Invalid Setup header: framing bit not found.");let n=0,o=!1,l=0;for(;i.getBitsLeft()>=97;){let e=i.pos,r=i.readBits(8),a=i.readBits(16),s=i.readBits(16);if(r>63||0!==a||0!==s){i.pos=e;break}if(i.skipBits(1),++n>64)break;i.clone().readBits(6)+1===n&&(o=!0,l=n)}if(!o)throw Error("Invalid Setup header: mode header not found.");if(l>63)throw Error(`Unsupported mode count: ${l}.`);let c=l;i.pos=0,i.skipBits(s);let d=Array(c).fill(0);for(let e=c-1;e>=0;e--)i.skipBits(40),d[e]=i.readBits(1);return{modeBlockflags:d}},H=(e,r,a)=>{switch(e){case"avc":{let e=b(a,r),i=e.some(e=>T(e)===l.IDR);if(!i&&(!(0,m.isChromium)()||(0,m.getChromiumVersion)()>=144))for(let r of e){if(T(r)!==l.SEI)continue;let e=g(r),a=1;do{let r=0;for(;;){let i=e[a++];if(void 0===i||(r+=i,i<255))break}let s=0;for(;;){let r=e[a++];if(void 0===r||(s+=r,r<255))break}if(6===r){let r=new(0,m.Bitstream)(e);r.pos=8*a;let s=(0,m.readExpGolomb)(r),n=r.readBits(1);if(0===s&&1===n){i=!0;break}}a+=s}while(a<e.length-1)}return i?"key":"delta"}case"hevc":return x(a,r).some(e=>{let r=E(e);return c.BLA_W_LP<=r&&r<=c.RSV_IRAP_VCL23})?"key":"delta";case"vp8":return 0==(1&a[0])?"key":"delta";case"vp9":{let e=new(0,m.Bitstream)(a);if(2!==e.readBits(2))return null;let r=e.readBits(1);if(3===(e.readBits(1)<<1)+r&&e.skipBits(1),e.readBits(1))return null;return 0===e.readBits(1)?"key":"delta"}case"av1":{let e=!1;for(let{type:r,data:i}of L(a))if(1===r){let r=new(0,m.Bitstream)(i);r.skipBits(4),e=!!r.readBits(1)}else if(3===r||6===r||7===r){if(e)return"key";let r=new(0,m.Bitstream)(i);if(r.readBits(1))return null;return 0===r.readBits(2)?"key":"delta"}return null}default:(0,m.assertNever)(e),(0,m.assert)(!1)}};(o=d||(d={}))[o.STREAMINFO=0]="STREAMINFO",o[o.VORBIS_COMMENT=4]="VORBIS_COMMENT",o[o.PICTURE=6]="PICTURE";let W=(e,r)=>{let a=(0,m.toDataView)(e),i=0,s=a.getUint32(i,!0);i+=4;let n=m.textDecoder.decode(e.subarray(i,i+s));i+=s,s>0&&(r.raw??={},r.raw.vendor??=n);let o=a.getUint32(i,!0);i+=4;for(let s=0;s<o;s++){let s=a.getUint32(i,!0);i+=4;let n=m.textDecoder.decode(e.subarray(i,i+s));i+=s;let o=n.indexOf("=");if(-1===o)continue;let l=n.slice(0,o).toUpperCase(),c=n.slice(o+1);switch(r.raw??={},r.raw[l]??=c,l){case"TITLE":r.title??=c;break;case"DESCRIPTION":r.description??=c;break;case"ARTIST":r.artist??=c;break;case"ALBUM":r.album??=c;break;case"ALBUMARTIST":r.albumArtist??=c;break;case"COMMENT":r.comment??=c;break;case"LYRICS":r.lyrics??=c;break;case"TRACKNUMBER":{let e=c.split("/"),a=Number.parseInt(e[0],10),i=e[1]&&Number.parseInt(e[1],10);Number.isInteger(a)&&a>0&&(r.trackNumber??=a),i&&Number.isInteger(i)&&i>0&&(r.tracksTotal??=i)}break;case"TRACKTOTAL":{let e=Number.parseInt(c,10);Number.isInteger(e)&&e>0&&(r.tracksTotal??=e)}break;case"DISCNUMBER":{let e=c.split("/"),a=Number.parseInt(e[0],10),i=e[1]&&Number.parseInt(e[1],10);Number.isInteger(a)&&a>0&&(r.discNumber??=a),i&&Number.isInteger(i)&&i>0&&(r.discsTotal??=i)}break;case"DISCTOTAL":{let e=Number.parseInt(c,10);Number.isInteger(e)&&e>0&&(r.discsTotal??=e)}break;case"DATE":{let e=new Date(c);Number.isNaN(e.getTime())||(r.date??=e)}break;case"GENRE":r.genre??=c;break;case"METADATA_BLOCK_PICTURE":{let e=(0,m.base64ToBytes)(c),a=(0,m.toDataView)(e),i=a.getUint32(0,!1),s=a.getUint32(4,!1),n=String.fromCharCode(...e.subarray(8,8+s)),o=a.getUint32(8+s,!1),l=m.textDecoder.decode(e.subarray(12+s,12+s+o)),d=a.getUint32(s+o+28),u=e.subarray(s+o+32,s+o+32+d);r.images??=[],r.images.push({data:u,mimeType:n,kind:3===i?"coverFront":4===i?"coverBack":"unknown",name:void 0,description:l||void 0})}}}},q=(e,r,a)=>{let i=[e],s=m.textEncoder.encode("Mediabunny"),n=new Uint8Array(4+s.length),o=new DataView(n.buffer);o.setUint32(0,s.length,!0),n.set(s,4),i.push(n);let l=new Set,c=(e,r)=>{let a=`${e}=${r}`,s=m.textEncoder.encode(a);(o=new DataView((n=new Uint8Array(4+s.length)).buffer)).setUint32(0,s.length,!0),n.set(s,4),i.push(n),l.add(e)};for(let{key:e,value:i}of(0,m.keyValueIterator)(r))switch(e){case"title":c("TITLE",i);break;case"description":c("DESCRIPTION",i);break;case"artist":c("ARTIST",i);break;case"album":c("ALBUM",i);break;case"albumArtist":c("ALBUMARTIST",i);break;case"genre":c("GENRE",i);break;case"date":{let e=r.raw?.DATE??r.raw?.date;c("DATE",e&&"string"==typeof e?e:i.toISOString().slice(0,10))}break;case"comment":c("COMMENT",i);break;case"lyrics":c("LYRICS",i);break;case"trackNumber":c("TRACKNUMBER",i.toString());break;case"tracksTotal":c("TRACKTOTAL",i.toString());break;case"discNumber":c("DISCNUMBER",i.toString());break;case"discsTotal":c("DISCTOTAL",i.toString());break;case"images":if(!a)break;for(let e of i){let r="coverFront"===e.kind?3:4*("coverBack"===e.kind),a=new Uint8Array(e.mimeType.length);for(let r=0;r<e.mimeType.length;r++)a[r]=e.mimeType.charCodeAt(r);let i=m.textEncoder.encode(e.description??""),s=new Uint8Array(8+a.length+4+i.length+16+4+e.data.length),n=(0,m.toDataView)(s);n.setUint32(0,r,!1),n.setUint32(4,a.length,!1),s.set(a,8),n.setUint32(8+a.length,i.length,!1),s.set(i,12+a.length),n.setUint32(28+a.length+i.length,e.data.length,!1),s.set(e.data,32+a.length+i.length),c("METADATA_BLOCK_PICTURE",(0,m.bytesToBase64)(s))}break;case"raw":break;default:(0,m.assertNever)(e)}if(r.raw)for(let e in r.raw){let a=r.raw[e]??r.raw[e.toLowerCase()];"vendor"===e||null==a||l.has(e)||"string"==typeof a&&c(e,a)}let d=new Uint8Array(4);(0,m.toDataView)(d).setUint32(0,l.size,!0),i.splice(2,0,d);let u=new Uint8Array(i.reduce((e,r)=>e+r.length,0)),h=0;for(let e of i)u.set(e,h),h+=e.length;return u}},{"./codec.js":"8wd8o","./misc.js":"dpOkn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"6cHW1":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"Demuxer",()=>n);class n{constructor(e){this.input=e}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8ofmg":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"InputTrack",()=>u),s.export(a,"InputVideoTrack",()=>h),s.export(a,"InputAudioTrack",()=>m);var n=e("./codec-data.js"),o=e("./custom-coder.js"),l=e("./media-sink.js"),c=e("./misc.js"),d=e("./packet.js");class u{constructor(e,r){this.input=e,this._backing=r}isVideoTrack(){return this instanceof h}isAudioTrack(){return this instanceof m}get id(){return this._backing.getId()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}get disposition(){return this._backing.getDisposition()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let r=new(0,l.EncodedPacketSink)(this),a=1/0,i=-1/0,s=0,n=0;for await(let o of r.packets(void 0,void 0,{metadataOnly:!0})){if(s>=e&&o.timestamp>=i)break;a=Math.min(a,o.timestamp),i=Math.max(i,o.timestamp+o.duration),s++,n+=o.byteLength}return{packetCount:s,averagePacketRate:s?Number((s/(i-a)).toPrecision(16)):0,averageBitrate:s?Number((8*n/(i-a)).toPrecision(16)):0}}}class h extends u{constructor(e,r){super(e,r),this._backing=r}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180==0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180==0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return"bt2020"===e.primaries||"smpte432"===e.primaries||"pg"===e.transfer||"hlg"===e.transfer||"bt2020-ncl"===e.matrix}canBeTransparent(){return this._backing.canBeTransparent()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){let e=await this._backing.getDecoderConfig();return e?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let r=this._backing.getCodec();if((0,c.assert)(null!==r),o.customVideoDecoders.some(a=>a.supports(r,e)))return!0;if("undefined"==typeof VideoDecoder)return!1;let a=await VideoDecoder.isConfigSupported(e);return!0===a.supported}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof d.EncodedPacket))throw TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw TypeError("packet must not be metadata-only to determine its type.");if(null===this.codec)return null;let r=await this.getDecoderConfig();return(0,c.assert)(r),(0,n.determineVideoPacketType)(this.codec,r,e.data)}}class m extends u{constructor(e,r){super(e,r),this._backing=r}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){let e=await this._backing.getDecoderConfig();return e?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let r=this._backing.getCodec();if((0,c.assert)(null!==r),o.customAudioDecoders.some(a=>a.supports(r,e))||e.codec.startsWith("pcm-"))return!0;{if("undefined"==typeof AudioDecoder)return!1;let r=await AudioDecoder.isConfigSupported(e);return!0===r.supported}}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof d.EncodedPacket))throw TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}},{"./codec-data.js":"4Hepu","./custom-coder.js":"3RBiS","./media-sink.js":"h5xyX","./misc.js":"dpOkn","./packet.js":"i61Hy","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3RBiS":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"CustomVideoDecoder",()=>n),s.export(a,"CustomAudioDecoder",()=>o),s.export(a,"CustomVideoEncoder",()=>l),s.export(a,"CustomAudioEncoder",()=>c),s.export(a,"customVideoDecoders",()=>d),s.export(a,"customAudioDecoders",()=>u),s.export(a,"customVideoEncoders",()=>h),s.export(a,"customAudioEncoders",()=>m),s.export(a,"registerDecoder",()=>p),s.export(a,"registerEncoder",()=>f);class n{static supports(e,r){return!1}}class o{static supports(e,r){return!1}}class l{static supports(e,r){return!1}}class c{static supports(e,r){return!1}}let d=[],u=[],h=[],m=[],p=e=>{if(e.prototype instanceof n){if(d.includes(e))return void console.warn("Video decoder already registered.");d.push(e)}else if(e.prototype instanceof o){if(u.includes(e))return void console.warn("Audio decoder already registered.");u.push(e)}else throw TypeError("Decoder must be a CustomVideoDecoder or CustomAudioDecoder.")},f=e=>{if(e.prototype instanceof l){if(h.includes(e))return void console.warn("Video encoder already registered.");h.push(e)}else if(e.prototype instanceof c){if(m.includes(e))return void console.warn("Audio encoder already registered.");m.push(e)}else throw TypeError("Encoder must be a CustomVideoEncoder or CustomAudioEncoder.")}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],h5xyX:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"EncodedPacketSink",()=>b),s.export(a,"BaseMediaSampleSink",()=>y),s.export(a,"VideoSampleSink",()=>x),s.export(a,"CanvasSink",()=>E),s.export(a,"AudioSampleSink",()=>B),s.export(a,"AudioBufferSink",()=>_);var n=e("./codec.js"),o=e("./codec-data.js"),l=e("./custom-coder.js"),c=e("./input.js"),d=e("./input-track.js"),u=e("./misc.js"),h=e("./packet.js"),m=e("./pcm.js"),p=e("./sample.js");let f=e=>{if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.metadataOnly&&"boolean"!=typeof e.metadataOnly)throw TypeError("options.metadataOnly, when defined, must be a boolean.");if(void 0!==e.verifyKeyPackets&&"boolean"!=typeof e.verifyKeyPackets)throw TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(e.verifyKeyPackets&&e.metadataOnly)throw TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},g=e=>{if(!(0,u.isNumber)(e))throw TypeError("timestamp must be a number.")},k=(e,r,a)=>a.verifyKeyPackets?r.then(async r=>{if(!r||"delta"===r.type)return r;let a=await e.determinePacketType(r);return a&&(r.type=a),r}):r;class b{constructor(e){if(!(e instanceof d.InputTrack))throw TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){if(f(e),this._track.input._disposed)throw new(0,c.InputDisposedError);return k(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,r={}){if(g(e),f(r),this._track.input._disposed)throw new(0,c.InputDisposedError);return k(this._track,this._track._backing.getPacket(e,r),r)}getNextPacket(e,r={}){if(!(e instanceof h.EncodedPacket))throw TypeError("packet must be an EncodedPacket.");if(f(r),this._track.input._disposed)throw new(0,c.InputDisposedError);return k(this._track,this._track._backing.getNextPacket(e,r),r)}async getKeyPacket(e,r={}){if(g(e),f(r),this._track.input._disposed)throw new(0,c.InputDisposedError);if(!r.verifyKeyPackets)return this._track._backing.getKeyPacket(e,r);let a=await this._track._backing.getKeyPacket(e,r);return a&&((0,u.assert)("key"===a.type),"delta"===await this._track.determinePacketType(a))?this.getKeyPacket(a.timestamp-1/this._track.timeResolution,r):a}async getNextKeyPacket(e,r={}){if(!(e instanceof h.EncodedPacket))throw TypeError("packet must be an EncodedPacket.");if(f(r),this._track.input._disposed)throw new(0,c.InputDisposedError);if(!r.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,r);let a=await this._track._backing.getNextKeyPacket(e,r);return a&&((0,u.assert)("key"===a.type),"delta"===await this._track.determinePacketType(a))?this.getNextKeyPacket(a,r):a}packets(e,r,a={}){if(void 0!==e&&!(e instanceof h.EncodedPacket))throw TypeError("startPacket must be an EncodedPacket.");if(void 0!==e&&e.isMetadataOnly&&!a?.metadataOnly)throw TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(void 0!==r&&!(r instanceof h.EncodedPacket))throw TypeError("endPacket must be an EncodedPacket.");if(f(a),this._track.input._disposed)throw new(0,c.InputDisposedError);let i=[],{promise:s,resolve:n}=(0,u.promiseWithResolvers)(),{promise:o,resolve:l}=(0,u.promiseWithResolvers)(),d=!1,m=!1,p=null,g=[],k=()=>Math.max(2,g.length);(async()=>{let c=e??await this.getFirstPacket(a);for(;c&&!m&&!this._track.input._disposed&&!(r&&c.sequenceNumber>=r?.sequenceNumber);){if(i.length>k()){({promise:o,resolve:l}=(0,u.promiseWithResolvers)()),await o;continue}i.push(c),n(),({promise:s,resolve:n}=(0,u.promiseWithResolvers)()),c=await this.getNextPacket(c,a)}d=!0,n()})().catch(e=>{p||(p=e,n())});let b=this._track;return{async next(){for(;;)if(b.input._disposed)throw new(0,c.InputDisposedError);else if(m)return{value:void 0,done:!0};else if(p)throw p;else if(i.length>0){let e=i.shift(),r=performance.now();for(g.push(r);g.length>0&&r-g[0]>=1e3;)g.shift();return l(),{value:e,done:!1}}else{if(d)return{value:void 0,done:!0};await s}},return:async()=>(m=!0,l(),n(),{value:void 0,done:!0}),async throw(e){throw e},[Symbol.asyncIterator](){return this}}}}class T{constructor(e,r){this.onSample=e,this.onError=r}}class y{mediaSamplesInRange(e=0,r=1/0){g(e),g(r);let a=[],i=!1,s=null,{promise:n,resolve:o}=(0,u.promiseWithResolvers)(),{promise:l,resolve:d}=(0,u.promiseWithResolvers)(),h=!1,m=!1,p=!1,f=null;(async()=>{let c,g=Error(),k=await this._createDecoder(l=>{(d(),l.timestamp>=r&&(m=!0),m)?l.close():(s&&(l.timestamp>e?(a.push(s),i=!0):s.close()),l.timestamp>=e&&(a.push(l),i=!0),s=i?null:l,a.length>0&&(o(),{promise:n,resolve:o}=(0,u.promiseWithResolvers)()))},e=>{f||(e.stack=g.stack,f=e,o())}),b=this._createPacketSink(),T=await b.getKeyPacket(e,{verifyKeyPackets:!0})??await b.getFirstPacket(),y=T;if(r<1/0){let e=await b.getPacket(r),a=e?"key"===e.type&&e.timestamp===r?e:await b.getNextKeyPacket(e,{verifyKeyPackets:!0}):null;a&&(c=a)}let w=b.packets(T??void 0,c);for(await w.next();y&&!m&&!this._track.input._disposed;){let e=S(a.length);if(a.length+k.getDecodeQueueSize()>e){({promise:l,resolve:d}=(0,u.promiseWithResolvers)()),await l;continue}k.decode(y);let r=await w.next();if(r.done)break;y=r.value}await w.return(),p||this._track.input._disposed||await k.flush(),k.close(),!i&&s&&a.push(s),h=!0,o()})().catch(e=>{f||(f=e,o())});let k=this._track,b=()=>{for(let e of(s?.close(),a))e.close()};return{async next(){for(;;)if(k.input._disposed)throw b(),new(0,c.InputDisposedError);else if(p)return{value:void 0,done:!0};else if(f)throw b(),f;else if(a.length>0){let e=a.shift();return d(),{value:e,done:!1}}else{if(h)return{value:void 0,done:!0};await n}},return:async()=>(p=!0,m=!0,d(),o(),b(),{value:void 0,done:!0}),async throw(e){throw e},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){(0,u.validateAnyIterable)(e);let r=(0,u.toAsyncIterator)(e),a=[],i=[],{promise:s,resolve:n}=(0,u.promiseWithResolvers)(),{promise:o,resolve:l}=(0,u.promiseWithResolvers)(),d=!1,h=!1,m=null,p=e=>{i.push(e),n(),{promise:s,resolve:n}=(0,u.promiseWithResolvers)()};(async()=>{let e=Error(),s=await this._createDecoder(e=>{if(l(),h)return void e.close();let r=0;for(;a.length>0&&e.timestamp-a[0]>-1e-10;)r++,a.shift();if(r>0)for(let a=0;a<r;a++)p(a<r-1?e.clone():e);else e.close()},r=>{m||(r.stack=e.stack,m=r,n())}),c=this._createPacketSink(),f=null,k=null,b=-1,T=async()=>{(0,u.assert)(k);let e=k;for(s.decode(e);e.sequenceNumber<b;){let r=S(i.length);for(;i.length+s.getDecodeQueueSize()>r&&!h;)({promise:o,resolve:l}=(0,u.promiseWithResolvers)()),await o;if(h)break;let a=await c.getNextPacket(e);(0,u.assert)(a),s.decode(a),e=a}b=-1},y=async()=>{await s.flush();for(let e=0;e<a.length;e++)p(null);a.length=0};for await(let e of r){if(g(e),h||this._track.input._disposed)break;let r=await c.getPacket(e),i=r&&await c.getKeyPacket(e,{verifyKeyPackets:!0});if(!i){-1!==b&&(await T(),await y()),p(null),f=null;continue}f&&(i.sequenceNumber!==k.sequenceNumber||r.timestamp<f.timestamp)&&(await T(),await y()),a.push(r.timestamp),b=Math.max(r.sequenceNumber,b),f=r,k=i}h||this._track.input._disposed||(-1!==b&&await T(),await y()),s.close(),d=!0,n()})().catch(e=>{m||(m=e,n())});let f=this._track,k=()=>{for(let e of i)e?.close()};return{async next(){for(;;)if(f.input._disposed)throw k(),new(0,c.InputDisposedError);else if(h)return{value:void 0,done:!0};else if(m)throw k(),m;else if(i.length>0){let e=i.shift();return(0,u.assert)(void 0!==e),l(),{value:e,done:!1}}else{if(d)return{value:void 0,done:!0};await s}},return:async()=>(h=!0,l(),n(),k(),{value:void 0,done:!0}),async throw(e){throw e},[Symbol.asyncIterator](){return this}}}}let S=e=>0===e?40:8;class w extends T{constructor(e,r,a,i,s,n){super(e,r),this.codec=a,this.decoderConfig=i,this.rotation=s,this.timeResolution=n,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new(0,u.CallSerializer),this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1,this.alphaDecoder=null,this.alphaHadKeyframe=!1,this.colorQueue=[],this.alphaQueue=[],this.merger=null,this.mergerCreationFailed=!1,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue=[],this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1;const c=l.customVideoDecoders.find(e=>e.supports(a,i));if(c)this.customDecoder=new c,this.customDecoder.codec=a,this.customDecoder.config=i,this.customDecoder.onSample=e=>{if(!(e instanceof p.VideoSample))throw TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(e)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{const e=e=>{if(this.alphaQueue.length>0){let r=this.alphaQueue.shift();(0,u.assert)(void 0!==r),this.mergeAlpha(e,r)}else this.colorQueue.push(e)};if("avc"===a&&this.decoderConfig.description&&(0,u.isChromium)()){const e=(0,o.deserializeAvcDecoderConfigurationRecord)((0,u.toUint8Array)(this.decoderConfig.description));if(e&&e.sequenceParameterSets.length>0){const r=(0,o.parseAvcSps)(e.sequenceParameterSets[0]);r&&0===r.frameMbsOnlyFlag&&(this.decoderConfig={...this.decoderConfig,hardwareAcceleration:"prefer-software"})}}this.decoder=new VideoDecoder({output:r=>{try{e(r)}catch(e){this.onError(e)}},error:r}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:((0,u.assert)(this.decoder),Math.max(this.decoder.decodeQueueSize,this.alphaDecoder?.decodeQueueSize??0))}decode(e){if("hevc"===this.codec&&this.currentPacketIndex>0&&!this.raslSkipped){if(this.hasHevcRaslPicture(e.data))return;this.raslSkipped=!0}this.currentPacketIndex++,this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):((0,u.assert)(this.decoder),(0,u.isWebKit)()||(0,u.insertSorted)(this.inputTimestamps,e.timestamp,e=>e),this.decoder.decode(e.toEncodedVideoChunk()),this.decodeAlphaData(e))}decodeAlphaData(e){if(!e.sideData.alpha||this.mergerCreationFailed)return void this.pushNullAlphaFrame();if(!this.merger)try{this.merger=new I}catch(r){console.error("Due to an error, only color data will be decoded.",r),this.mergerCreationFailed=!0,this.decodeAlphaData(e);return}if(!this.alphaDecoder){let e=e=>{if(this.alphaDecoderQueueSize--,this.colorQueue.length>0){let r=this.colorQueue.shift();(0,u.assert)(void 0!==r),this.mergeAlpha(r,e)}else this.alphaQueue.push(e);for(this.decodedAlphaChunkCount++;this.nullAlphaFrameQueue.length>0&&this.nullAlphaFrameQueue[0]===this.decodedAlphaChunkCount;)if(this.nullAlphaFrameQueue.shift(),this.colorQueue.length>0){let e=this.colorQueue.shift();(0,u.assert)(void 0!==e),this.mergeAlpha(e,null)}else this.alphaQueue.push(null)};this.alphaDecoder=new VideoDecoder({output:r=>{try{e(r)}catch(e){this.onError(e)}},error:this.onError}),this.alphaDecoder.configure(this.decoderConfig)}let r=(0,o.determineVideoPacketType)(this.codec,this.decoderConfig,e.sideData.alpha);if(this.alphaHadKeyframe||(this.alphaHadKeyframe="key"===r),this.alphaHadKeyframe){if("hevc"===this.codec&&this.currentAlphaPacketIndex>0&&!this.alphaRaslSkipped){if(this.hasHevcRaslPicture(e.sideData.alpha))return void this.pushNullAlphaFrame();this.alphaRaslSkipped=!0}this.currentAlphaPacketIndex++,this.alphaDecoder.decode(e.alphaToEncodedVideoChunk(r??e.type)),this.alphaDecoderQueueSize++}else this.pushNullAlphaFrame()}pushNullAlphaFrame(){0===this.alphaDecoderQueueSize?this.alphaQueue.push(null):this.nullAlphaFrameQueue.push(this.decodedAlphaChunkCount+this.alphaDecoderQueueSize)}hasHevcRaslPicture(e){return(0,o.extractHevcNalUnits)(e,this.decoderConfig).some(e=>{let r=(0,o.extractNalUnitTypeForHevc)(e);return r===o.HevcNalUnitType.RASL_N||r===o.HevcNalUnitType.RASL_R})}sampleHandler(e){if((0,u.isWebKit)()){if(this.sampleQueue.length>0&&e.timestamp>=(0,u.last)(this.sampleQueue).timestamp){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}(0,u.insertSorted)(this.sampleQueue,e,e=>e.timestamp)}else{let r=this.inputTimestamps.shift();(0,u.assert)(void 0!==r),e.setTimestamp(r),this.finalizeAndEmitSample(e)}}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}mergeAlpha(e,r){if(!r){let r=new(0,p.VideoSample)(e);this.sampleHandler(r);return}(0,u.assert)(this.merger),this.merger.update(e,r),e.close(),r.close();let a=new VideoFrame(this.merger.canvas,{timestamp:e.timestamp,duration:e.duration??void 0}),i=new(0,p.VideoSample)(a);this.sampleHandler(i)}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):((0,u.assert)(this.decoder),await Promise.all([this.decoder.flush(),this.alphaDecoder?.flush()]),this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.alphaHadKeyframe=!1,this.decodedAlphaChunkCount=0,this.alphaDecoderQueueSize=0,this.nullAlphaFrameQueue.length=0,this.currentAlphaPacketIndex=0,this.alphaRaslSkipped=!1),(0,u.isWebKit)()){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}this.currentPacketIndex=0,this.raslSkipped=!1}close(){for(let e of(this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):((0,u.assert)(this.decoder),this.decoder.close(),this.alphaDecoder?.close(),this.colorQueue.forEach(e=>e.close()),this.colorQueue.length=0,this.alphaQueue.forEach(e=>e?.close()),this.alphaQueue.length=0,this.merger?.close()),this.sampleQueue))e.close();this.sampleQueue.length=0}}class I{constructor(){"undefined"!=typeof OffscreenCanvas?this.canvas=new OffscreenCanvas(300,150):this.canvas=document.createElement("canvas");const e=this.canvas.getContext("webgl2",{premultipliedAlpha:!1});if(!e)throw Error("Couldn't acquire WebGL 2 context.");this.gl=e,this.program=this.createProgram(),this.vao=this.createVAO(),this.colorTexture=this.createTexture(),this.alphaTexture=this.createTexture(),this.gl.useProgram(this.program),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_colorTexture"),0),this.gl.uniform1i(this.gl.getUniformLocation(this.program,"u_alphaTexture"),1)}createProgram(){let e=this.createShader(this.gl.VERTEX_SHADER,`#version 300 es in vec2 a_position; in vec2 a_texCoord; out vec2 v_texCoord; void main() { gl_Position = vec4(a_position, 0.0, 1.0); v_texCoord = a_texCoord; } `),r=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es precision highp float; uniform sampler2D u_colorTexture; uniform sampler2D u_alphaTexture; in vec2 v_texCoord; out vec4 fragColor; void main() { vec3 color = texture(u_colorTexture, v_texCoord).rgb; float alpha = texture(u_alphaTexture, v_texCoord).r; fragColor = vec4(color, alpha); } `),a=this.gl.createProgram();return this.gl.attachShader(a,e),this.gl.attachShader(a,r),this.gl.linkProgram(a),a}createShader(e,r){let a=this.gl.createShader(e);return this.gl.shaderSource(a,r),this.gl.compileShader(a),a}createVAO(){let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let r=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),a=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,a),this.gl.bufferData(this.gl.ARRAY_BUFFER,r,this.gl.STATIC_DRAW);let i=this.gl.getAttribLocation(this.program,"a_position"),s=this.gl.getAttribLocation(this.program,"a_texCoord");return this.gl.enableVertexAttribArray(i),this.gl.vertexAttribPointer(i,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(s),this.gl.vertexAttribPointer(s,2,this.gl.FLOAT,!1,16,8),e}createTexture(){let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),e}update(e,r){(e.displayWidth!==this.canvas.width||e.displayHeight!==this.canvas.height)&&(this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight),this.gl.activeTexture(this.gl.TEXTURE0),this.gl.bindTexture(this.gl.TEXTURE_2D,this.colorTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this.gl.activeTexture(this.gl.TEXTURE1),this.gl.bindTexture(this.gl.TEXTURE_2D,this.alphaTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,r),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.gl.clear(this.gl.COLOR_BUFFER_BIT),this.gl.bindVertexArray(this.vao),this.gl.drawArrays(this.gl.TRIANGLE_STRIP,0,4)}close(){this.gl.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null}}class x extends y{constructor(e){if(!(e instanceof d.InputVideoTrack))throw TypeError("videoTrack must be an InputVideoTrack.");super(),this._track=e}async _createDecoder(e,r){if(!await this._track.canDecode())throw Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let a=this._track.codec,i=this._track.rotation,s=await this._track.getDecoderConfig(),n=this._track.timeResolution;return(0,u.assert)(a&&s),new w(e,r,a,s,i,n)}_createPacketSink(){return new b(this._track)}async getSample(e){for await(let r of(g(e),this.mediaSamplesAtTimestamps([e])))return r;throw Error("Internal error: Iterator returned nothing.")}samples(e=0,r=1/0){return this.mediaSamplesInRange(e,r)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}}class E{constructor(e,r={}){if(this._nextCanvasIndex=0,!(e instanceof d.InputVideoTrack))throw TypeError("videoTrack must be an InputVideoTrack.");if(r&&"object"!=typeof r)throw TypeError("options must be an object.");if(void 0!==r.alpha&&"boolean"!=typeof r.alpha)throw TypeError("options.alpha, when provided, must be a boolean.");if(void 0!==r.width&&(!Number.isInteger(r.width)||r.width<=0))throw TypeError("options.width, when defined, must be a positive integer.");if(void 0!==r.height&&(!Number.isInteger(r.height)||r.height<=0))throw TypeError("options.height, when defined, must be a positive integer.");if(void 0!==r.fit&&!["fill","contain","cover"].includes(r.fit))throw TypeError('options.fit, when provided, must be one of "fill", "contain", or "cover".');if(void 0!==r.width&&void 0!==r.height&&void 0===r.fit)throw TypeError("When both options.width and options.height are provided, options.fit must also be provided.");if(void 0!==r.rotation&&![0,90,180,270].includes(r.rotation))throw TypeError("options.rotation, when provided, must be 0, 90, 180 or 270.");if(void 0!==r.crop&&(0,p.validateCropRectangle)(r.crop,"options."),void 0!==r.poolSize&&("number"!=typeof r.poolSize||!Number.isInteger(r.poolSize)||r.poolSize<0))throw TypeError("poolSize must be a non-negative integer.");const a=r.rotation??e.rotation,[i,s]=a%180==0?[e.codedWidth,e.codedHeight]:[e.codedHeight,e.codedWidth],n=r.crop;n&&(0,p.clampCropRectangle)(n,i,s);let[o,l]=n?[n.width,n.height]:[i,s];const c=o/l;void 0!==r.width&&void 0===r.height?l=Math.round((o=r.width)/c):void 0===r.width&&void 0!==r.height?o=Math.round((l=r.height)*c):void 0!==r.width&&void 0!==r.height&&(o=r.width,l=r.height),this._videoTrack=e,this._alpha=r.alpha??!1,this._width=o,this._height=l,this._rotation=a,this._crop=n,this._fit=r.fit??"fill",this._videoSampleSink=new x(e),this._canvasPool=Array.from({length:r.poolSize??0},()=>null)}_videoSampleToWrappedCanvas(e){let r=this._canvasPool[this._nextCanvasIndex],a=!1;r||("undefined"!=typeof document?((r=document.createElement("canvas")).width=this._width,r.height=this._height):r=new OffscreenCanvas(this._width,this._height),this._canvasPool.length>0&&(this._canvasPool[this._nextCanvasIndex]=r),a=!0),this._canvasPool.length>0&&(this._nextCanvasIndex=(this._nextCanvasIndex+1)%this._canvasPool.length);let i=r.getContext("2d",{alpha:this._alpha||(0,u.isFirefox)()});(0,u.assert)(i),i.resetTransform(),a||(!this._alpha&&(0,u.isFirefox)()?(i.fillStyle="black",i.fillRect(0,0,this._width,this._height)):i.clearRect(0,0,this._width,this._height)),e.drawWithFit(i,{fit:this._fit,rotation:this._rotation,crop:this._crop});let s={canvas:r,timestamp:e.timestamp,duration:e.duration};return e.close(),s}async getCanvas(e){g(e);let r=await this._videoSampleSink.getSample(e);return r&&this._videoSampleToWrappedCanvas(r)}canvases(e=0,r=1/0){return(0,u.mapAsyncGenerator)(this._videoSampleSink.samples(e,r),e=>this._videoSampleToWrappedCanvas(e))}canvasesAtTimestamps(e){return(0,u.mapAsyncGenerator)(this._videoSampleSink.samplesAtTimestamps(e),e=>e&&this._videoSampleToWrappedCanvas(e))}}class P extends T{constructor(e,r,a,i){super(e,r),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new(0,u.CallSerializer),this.customDecoderQueueSize=0,this.currentTimestamp=null;const s=r=>{(null===this.currentTimestamp||Math.abs(r.timestamp-this.currentTimestamp)>=r.duration)&&(this.currentTimestamp=r.timestamp);let a=this.currentTimestamp;if(this.currentTimestamp+=r.duration,0===r.numberOfFrames)return void r.close();let s=i.sampleRate;r.setTimestamp(Math.round(a*s)/s),e(r)},n=l.customAudioDecoders.find(e=>e.supports(a,i));n?(this.customDecoder=new n,this.customDecoder.codec=a,this.customDecoder.config=i,this.customDecoder.onSample=e=>{if(!(e instanceof p.AudioSample))throw TypeError("The argument passed to onSample must be an AudioSample.");s(e)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new AudioDecoder({output:e=>{try{s(new(0,p.AudioSample)(e))}catch(e){this.onError(e)}},error:r}),this.decoder.configure(i))}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:((0,u.assert)(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):((0,u.assert)(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):((0,u.assert)(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):((0,u.assert)(this.decoder),this.decoder.close())}}class C extends T{constructor(e,r,a){super(e,r),this.decoderConfig=a,this.currentTimestamp=null,(0,u.assert)(n.PCM_AUDIO_CODECS.includes(a.codec)),this.codec=a.codec;const{dataType:i,sampleSize:s,littleEndian:o}=(0,n.parsePcmCodec)(this.codec);switch(this.inputSampleSize=s,s){case 1:"unsigned"===i?this.readInputValue=(e,r)=>e.getUint8(r)-128:"signed"===i?this.readInputValue=(e,r)=>e.getInt8(r):"ulaw"===i?this.readInputValue=(e,r)=>(0,m.fromUlaw)(e.getUint8(r)):"alaw"===i?this.readInputValue=(e,r)=>(0,m.fromAlaw)(e.getUint8(r)):(0,u.assert)(!1);break;case 2:"unsigned"===i?this.readInputValue=(e,r)=>e.getUint16(r,o)-32768:"signed"===i?this.readInputValue=(e,r)=>e.getInt16(r,o):(0,u.assert)(!1);break;case 3:"unsigned"===i?this.readInputValue=(e,r)=>(0,u.getUint24)(e,r,o)-8388608:"signed"===i?this.readInputValue=(e,r)=>(0,u.getInt24)(e,r,o):(0,u.assert)(!1);break;case 4:"unsigned"===i?this.readInputValue=(e,r)=>e.getUint32(r,o)-0x80000000:"signed"===i?this.readInputValue=(e,r)=>e.getInt32(r,o):"float"===i?this.readInputValue=(e,r)=>e.getFloat32(r,o):(0,u.assert)(!1);break;case 8:"float"===i?this.readInputValue=(e,r)=>e.getFloat64(r,o):(0,u.assert)(!1);break;default:(0,u.assertNever)(s),(0,u.assert)(!1)}switch(s){case 1:"ulaw"===i||"alaw"===i?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(e,r,a)=>e.setInt16(r,a,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(e,r,a)=>e.setUint8(r,a+128));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(e,r,a)=>e.setInt16(r,a,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(e,r,a)=>e.setInt32(r,a<<8,!0);break;case 4:this.outputSampleSize=4,"float"===i?(this.outputFormat="f32",this.writeOutputValue=(e,r,a)=>e.setFloat32(r,a,!0)):(this.outputFormat="s32",this.writeOutputValue=(e,r,a)=>e.setInt32(r,a,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(e,r,a)=>e.setFloat32(r,a,!0);break;default:(0,u.assertNever)(s),(0,u.assert)(!1)}}getDecodeQueueSize(){return 0}decode(e){let r=(0,u.toDataView)(e.data),a=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,i=new ArrayBuffer(a*this.decoderConfig.numberOfChannels*this.outputSampleSize),s=new DataView(i);for(let e=0;e<a*this.decoderConfig.numberOfChannels;e++){let a=e*this.inputSampleSize,i=e*this.outputSampleSize,n=this.readInputValue(r,a);this.writeOutputValue(s,i,n)}let n=a/this.decoderConfig.sampleRate;(null===this.currentTimestamp||Math.abs(e.timestamp-this.currentTimestamp)>=n)&&(this.currentTimestamp=e.timestamp);let o=this.currentTimestamp;this.currentTimestamp+=n;let l=new(0,p.AudioSample)({format:this.outputFormat,data:i,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:a,timestamp:o});this.onSample(l)}async flush(){}close(){}}class B extends y{constructor(e){if(!(e instanceof d.InputAudioTrack))throw TypeError("audioTrack must be an InputAudioTrack.");super(),this._track=e}async _createDecoder(e,r){if(!await this._track.canDecode())throw Error("This audio track cannot be decoded by this browser. Make sure to check decodability before using a track.");let a=this._track.codec,i=await this._track.getDecoderConfig();return((0,u.assert)(a&&i),n.PCM_AUDIO_CODECS.includes(i.codec))?new C(e,r,i):new P(e,r,a,i)}_createPacketSink(){return new b(this._track)}async getSample(e){for await(let r of(g(e),this.mediaSamplesAtTimestamps([e])))return r;throw Error("Internal error: Iterator returned nothing.")}samples(e=0,r=1/0){return this.mediaSamplesInRange(e,r)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}}class _{constructor(e){if(!(e instanceof d.InputAudioTrack))throw TypeError("audioTrack must be an InputAudioTrack.");this._audioSampleSink=new B(e)}_audioSampleToWrappedArrayBuffer(e){let r={buffer:e.toAudioBuffer(),timestamp:e.timestamp,duration:e.duration};return e.close(),r}async getBuffer(e){g(e);let r=await this._audioSampleSink.getSample(e);return r&&this._audioSampleToWrappedArrayBuffer(r)}buffers(e=0,r=1/0){return(0,u.mapAsyncGenerator)(this._audioSampleSink.samples(e,r),e=>this._audioSampleToWrappedArrayBuffer(e))}buffersAtTimestamps(e){return(0,u.mapAsyncGenerator)(this._audioSampleSink.samplesAtTimestamps(e),e=>e&&this._audioSampleToWrappedArrayBuffer(e))}}},{"./codec.js":"8wd8o","./codec-data.js":"4Hepu","./custom-coder.js":"3RBiS","./input.js":"cI9DB","./input-track.js":"8ofmg","./misc.js":"dpOkn","./packet.js":"i61Hy","./pcm.js":"bPgId","./sample.js":"9Wy36","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],cI9DB:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"Input",()=>d),s.export(a,"InputDisposedError",()=>u);var n=e("./input-format.js"),o=e("./misc.js"),l=e("./reader.js"),c=e("./source.js");(0,o.polyfillSymbolDispose)();class d{get disposed(){return this._disposed}constructor(e){if(this._demuxerPromise=null,this._format=null,this._disposed=!1,!e||"object"!=typeof e)throw TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(e=>!(e instanceof n.InputFormat)))throw TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof c.Source))throw TypeError("options.source must be a Source.");if(e.source._disposed)throw Error("options.source must not be disposed.");this._formats=e.formats,this._source=e.source,this._reader=new(0,l.Reader)(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{for(let e of(this._reader.fileSize=await this._source.getSizeOrNull(),this._formats))if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),(0,o.assert)(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(e=>e.isVideoTrack())}async getAudioTracks(){return(await this.getTracks()).filter(e=>e.isAudioTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(e=>e.isVideoTrack())??null}async getPrimaryAudioTrack(){return(await this.getTracks()).find(e=>e.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){this._disposed||(this._disposed=!0,this._source._disposed=!0,this._source._dispose())}[Symbol.dispose](){this.dispose()}}class u extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}}},{"./input-format.js":"eC3Vq","./misc.js":"dpOkn","./reader.js":"3hF2Q","./source.js":"d2urb","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"3hF2Q":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"Reader",()=>l),s.export(a,"FileSlice",()=>c),s.export(a,"readBytes",()=>u),s.export(a,"readU8",()=>h),s.export(a,"readU16",()=>m),s.export(a,"readU16Be",()=>p),s.export(a,"readU24Be",()=>f),s.export(a,"readI16Be",()=>g),s.export(a,"readU32",()=>k),s.export(a,"readU32Be",()=>b),s.export(a,"readU32Le",()=>T),s.export(a,"readI32Be",()=>y),s.export(a,"readI32Le",()=>S),s.export(a,"readU64",()=>w),s.export(a,"readU64Be",()=>I),s.export(a,"readI64Be",()=>x),s.export(a,"readI64Le",()=>E),s.export(a,"readF32Be",()=>P),s.export(a,"readF64Be",()=>C),s.export(a,"readAscii",()=>B);var n=e("./input.js"),o=e("./misc.js");class l{constructor(e){this.source=e}requestSlice(e,r){if(this.source._disposed)throw new(0,n.InputDisposedError);if(null!==this.fileSize&&e+r>this.fileSize)return null;let a=e+r,i=this.source._read(e,a);return i instanceof Promise?i.then(r=>r?new c(r.bytes,r.view,r.offset,e,a):null):i?new c(i.bytes,i.view,i.offset,e,a):null}requestSliceRange(e,r,a){if(this.source._disposed)throw new(0,n.InputDisposedError);if(null!==this.fileSize)return this.requestSlice(e,(0,o.clamp)(this.fileSize-e,r,a));{let i=this.requestSlice(e,a),s=i=>{if(i)return i;let s=i=>((0,o.assert)(null!==i),this.requestSlice(e,(0,o.clamp)(i-e,r,a))),n=this.source._retrieveSize();return n instanceof Promise?n.then(s):s(n)};return i instanceof Promise?i.then(s):s(i)}}}class c{constructor(e,r,a,i,s){this.bytes=e,this.view=r,this.offset=a,this.start=i,this.end=s,this.bufferPos=i-a}static tempFromBytes(e){return new c(e,(0,o.toDataView)(e),0,0,e.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(e){this.bufferPos=e-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(e){this.bufferPos+=e}slice(e,r=this.end-e){if(e<this.start||e+r>this.end)throw RangeError("Slicing outside of original slice.");return new c(this.bytes,this.view,this.offset,e,e+r)}}let d=(e,r)=>{if(e.filePos<e.start||e.filePos+r>e.end)throw RangeError(`Tried reading [${e.filePos}, ${e.filePos+r}), but slice is [${e.start}, ${e.end}). This is likely an internal error, please report it alongside the file that caused it.`)},u=(e,r)=>{d(e,r);let a=e.bytes.subarray(e.bufferPos,e.bufferPos+r);return e.bufferPos+=r,a},h=e=>(d(e,1),e.view.getUint8(e.bufferPos++)),m=(e,r)=>{d(e,2);let a=e.view.getUint16(e.bufferPos,r);return e.bufferPos+=2,a},p=e=>{d(e,2);let r=e.view.getUint16(e.bufferPos,!1);return e.bufferPos+=2,r},f=e=>{d(e,3);let r=(0,o.getUint24)(e.view,e.bufferPos,!1);return e.bufferPos+=3,r},g=e=>{d(e,2);let r=e.view.getInt16(e.bufferPos,!1);return e.bufferPos+=2,r},k=(e,r)=>{d(e,4);let a=e.view.getUint32(e.bufferPos,r);return e.bufferPos+=4,a},b=e=>{d(e,4);let r=e.view.getUint32(e.bufferPos,!1);return e.bufferPos+=4,r},T=e=>{d(e,4);let r=e.view.getUint32(e.bufferPos,!0);return e.bufferPos+=4,r},y=e=>{d(e,4);let r=e.view.getInt32(e.bufferPos,!1);return e.bufferPos+=4,r},S=e=>{d(e,4);let r=e.view.getInt32(e.bufferPos,!0);return e.bufferPos+=4,r},w=(e,r)=>{let a,i;return r?(a=k(e,!0),i=k(e,!0)):(i=k(e,!1),a=k(e,!1)),0x100000000*i+a},I=e=>0x100000000*b(e)+b(e),x=e=>0x100000000*y(e)+b(e),E=e=>{let r=T(e);return 0x100000000*S(e)+r},P=e=>{d(e,4);let r=e.view.getFloat32(e.bufferPos,!1);return e.bufferPos+=4,r},C=e=>{d(e,8);let r=e.view.getFloat64(e.bufferPos,!1);return e.bufferPos+=8,r},B=(e,r)=>{d(e,r);let a="";for(let i=0;i<r;i++)a+=String.fromCharCode(e.bytes[e.bufferPos++]);return a}},{"./input.js":"cI9DB","./misc.js":"dpOkn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],d2urb:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"Source",()=>d),s.export(a,"BufferSource",()=>u),s.export(a,"BlobSource",()=>h),s.export(a,"UrlSource",()=>p),s.export(a,"FilePathSource",()=>f),s.export(a,"StreamSource",()=>g),s.export(a,"ReadableStreamSource",()=>k);var n=e("./misc.js"),o=e("./node.js"),l=e("./input.js");let c=void 0!==o?o:void 0;class d{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){if(this._disposed)throw new(0,l.InputDisposedError);return this._sizePromise??=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new(0,l.InputDisposedError);let e=await this.getSizeOrNull();if(null===e)throw Error("Cannot determine the size of an unsized source.");return e}}class u extends d{constructor(e){if(!(e instanceof ArrayBuffer)&&!("undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer)&&!ArrayBuffer.isView(e))throw TypeError("buffer must be an ArrayBuffer, SharedArrayBuffer, or ArrayBufferView.");super(),this._onreadCalled=!1,this._bytes=(0,n.toUint8Array)(e),this._view=(0,n.toDataView)(e)}_retrieveSize(){return this._bytes.byteLength}_read(){return this._onreadCalled||(this.onread?.(0,this._bytes.byteLength),this._onreadCalled=!0),{bytes:this._bytes,view:this._view,offset:0}}_dispose(){}}class h extends d{constructor(e,r={}){if(!(e instanceof Blob))throw TypeError("blob must be a Blob.");if(!r||"object"!=typeof r)throw TypeError("options must be an object.");if(void 0!==r.maxCacheSize&&(!(0,n.isNumber)(r.maxCacheSize)||r.maxCacheSize<0))throw TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._readers=new WeakMap,this._blob=e,this._orchestrator=new T({maxCacheSize:r.maxCacheSize??8388608,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:b.fileSystem})}_retrieveSize(){let e=this._blob.size;return this._orchestrator.fileSize=e,e}_read(e,r){return this._orchestrator.read(e,r)}async _runWorker(e){let r=this._readers.get(e);for(void 0===r&&(r=("stream"in this._blob)&&!(0,n.isWebKit)()?this._blob.slice(e.currentPos).stream().getReader():null,this._readers.set(e,r));e.currentPos<e.targetPos&&!e.aborted;)if(r){let{done:a,value:i}=await r.read();if(a)throw this._orchestrator.forgetWorker(e),Error("Blob reader stopped unexpectedly before all requested data was read.");if(e.aborted)break;this.onread?.(e.currentPos,e.currentPos+i.length),this._orchestrator.supplyWorkerData(e,i)}else{let r=await this._blob.slice(e.currentPos,e.targetPos).arrayBuffer();if(e.aborted)break;this.onread?.(e.currentPos,e.currentPos+r.byteLength),this._orchestrator.supplyWorkerData(e,new Uint8Array(r))}e.running=!1}_dispose(){this._orchestrator.dispose()}}let m=(e,r,a)=>{if(r instanceof Error&&(r.message.includes("Failed to fetch")||r.message.includes("Load failed")||r.message.includes("NetworkError when attempting to fetch resource"))){let e=null;try{"undefined"!=typeof window&&void 0!==window.location&&(e=new URL(a instanceof Request?a.url:a,window.location.href).origin)}catch{}if(("undefined"==typeof navigator||"boolean"!=typeof navigator.onLine||navigator.onLine)&&null!==e&&e!==window.location.origin)return console.warn("Request will not be retried because a CORS error was suspected due to different origins. You can modify this behavior by providing your own function for the 'getRetryDelay' option."),null}return Math.min(2**(e-2),16)};class p extends d{constructor(e,r={}){if("string"!=typeof e&&!(e instanceof URL)&&!("undefined"!=typeof Request&&e instanceof Request))throw TypeError("url must be a string, URL or Request.");if(!r||"object"!=typeof r)throw TypeError("options must be an object.");if(void 0!==r.requestInit&&(!r.requestInit||"object"!=typeof r.requestInit))throw TypeError("options.requestInit, when provided, must be an object.");if(void 0!==r.getRetryDelay&&"function"!=typeof r.getRetryDelay)throw TypeError("options.getRetryDelay, when provided, must be a function.");if(void 0!==r.maxCacheSize&&(!(0,n.isNumber)(r.maxCacheSize)||r.maxCacheSize<0))throw TypeError("options.maxCacheSize, when provided, must be a non-negative number.");if(void 0!==r.fetchFn&&"function"!=typeof r.fetchFn)throw TypeError("options.fetchFn, when provided, must be a function.");super(),this._existingResponses=new WeakMap,this._url=e,this._options=r,this._getRetryDelay=r.getRetryDelay??m,this._orchestrator=new T({maxCacheSize:r.maxCacheSize??0x4000000,maxWorkerCount:2,runWorker:this._runWorker.bind(this),prefetchProfile:b.network})}async _retrieveSize(){let e,r,a=new AbortController,i=await (0,n.retriedFetch)(this._options.fetchFn??fetch,this._url,(0,n.mergeRequestInit)(this._options.requestInit??{},{headers:{Range:"bytes=0-"},signal:a.signal}),this._getRetryDelay,()=>this._disposed);if(!i.ok)throw Error(`Error fetching ${String(this._url)}: ${i.status} ${i.statusText}`);if(206===i.status)r=this._getTotalLengthFromRangeResponse(i),e=this._orchestrator.createWorker(0,Math.min(r,524288));else{let a=i.headers.get("Content-Length");if(a)r=Number(a),e=this._orchestrator.createWorker(0,r),this._orchestrator.options.maxCacheSize=1/0,console.warn("HTTP server did not respond with 206 Partial Content, meaning the entire remote resource now has to be downloaded. For efficient media file streaming across a network, please make sure your server supports range requests.");else throw Error(`HTTP response (status ${i.status}) must surface Content-Length header.`)}return this._orchestrator.fileSize=r,this._existingResponses.set(e,{response:i,abortController:a}),this._orchestrator.runWorker(e),r}_read(e,r){return this._orchestrator.read(e,r)}async _runWorker(e){for(;;){let r=this._existingResponses.get(e);this._existingResponses.delete(e);let a=r?.abortController,i=r?.response;if(a||(a=new AbortController,i=await (0,n.retriedFetch)(this._options.fetchFn??fetch,this._url,(0,n.mergeRequestInit)(this._options.requestInit??{},{headers:{Range:`bytes=${e.currentPos}-`},signal:a.signal}),this._getRetryDelay,()=>this._disposed)),(0,n.assert)(i),!i.ok)throw Error(`Error fetching ${String(this._url)}: ${i.status} ${i.statusText}`);if(e.currentPos>0&&206!==i.status)throw Error("HTTP server did not respond with 206 Partial Content to a range request. To enable efficient media file streaming across a network, please make sure your server supports range requests.");if(!i.body)throw Error("Missing HTTP response body stream. The used fetch function must provide the response body as a ReadableStream.");let s=i.body.getReader();for(;;){let r;if(e.currentPos>=e.targetPos||e.aborted){a.abort(),e.running=!1;return}try{r=await s.read()}catch(r){if(this._disposed)throw r;let e=this._getRetryDelay(1,r,this._url);if(null!==e){console.error("Error while reading response stream. Attempting to resume.",r),await new Promise(r=>setTimeout(r,1e3*e));break}throw r}if(e.aborted)break;let{done:i,value:n}=r;if(i){if(e.currentPos>=e.targetPos){this._orchestrator.forgetWorker(e),e.running=!1;return}break}this.onread?.(e.currentPos,e.currentPos+n.length),this._orchestrator.supplyWorkerData(e,n)}if(e.aborted)break}e.running=!1}_getTotalLengthFromRangeResponse(e){let r=e.headers.get("Content-Range");if(r){let e=/\/(\d+)/.exec(r);if(e)return Number(e[1])}let a=e.headers.get("Content-Length");if(a)return Number(a);throw Error("Partial HTTP response (status 206) must surface either Content-Range or Content-Length header.")}_dispose(){this._orchestrator.dispose()}}class f extends d{constructor(e,r={}){if("string"!=typeof e)throw TypeError("filePath must be a string.");if(!r||"object"!=typeof r)throw TypeError("options must be an object.");if(void 0!==r.maxCacheSize&&(!(0,n.isNumber)(r.maxCacheSize)||r.maxCacheSize<0))throw TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._fileHandle=null,this._streamSource=new g({getSize:async()=>(this._fileHandle=await c.fs.open(e,"r"),(await this._fileHandle.stat()).size),read:async(e,r)=>{(0,n.assert)(this._fileHandle);let a=new Uint8Array(r-e);return await this._fileHandle.read(a,0,r-e,e),a},maxCacheSize:r.maxCacheSize,prefetchProfile:"fileSystem"})}_read(e,r){return this._streamSource._read(e,r)}_retrieveSize(){return this._streamSource._retrieveSize()}_dispose(){this._streamSource._dispose(),this._fileHandle?.close(),this._fileHandle=null}}class g extends d{constructor(e){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if("function"!=typeof e.getSize)throw TypeError("options.getSize must be a function.");if("function"!=typeof e.read)throw TypeError("options.read must be a function.");if(void 0!==e.dispose&&"function"!=typeof e.dispose)throw TypeError("options.dispose, when provided, must be a function.");if(void 0!==e.maxCacheSize&&(!(0,n.isNumber)(e.maxCacheSize)||e.maxCacheSize<0))throw TypeError("options.maxCacheSize, when provided, must be a non-negative number.");if(e.prefetchProfile&&!["none","fileSystem","network"].includes(e.prefetchProfile))throw TypeError("options.prefetchProfile, when provided, must be one of 'none', 'fileSystem' or 'network'.");super(),this._options=e,this._orchestrator=new T({maxCacheSize:e.maxCacheSize??8388608,maxWorkerCount:2,prefetchProfile:b[e.prefetchProfile??"none"],runWorker:this._runWorker.bind(this)})}_retrieveSize(){let e=this._options.getSize();if(e instanceof Promise)return e.then(e=>{if(!Number.isInteger(e)||e<0)throw TypeError("options.getSize must return or resolve to a non-negative integer.");return this._orchestrator.fileSize=e,e});if(!Number.isInteger(e)||e<0)throw TypeError("options.getSize must return or resolve to a non-negative integer.");return this._orchestrator.fileSize=e,e}_read(e,r){return this._orchestrator.read(e,r)}async _runWorker(e){for(;e.currentPos<e.targetPos&&!e.aborted;){let r=e.currentPos,a=e.targetPos,i=this._options.read(e.currentPos,a);if(i instanceof Promise&&(i=await i),e.aborted)break;if(i instanceof Uint8Array){if((i=(0,n.toUint8Array)(i)).length!==a-e.currentPos)throw Error(`options.read returned a Uint8Array with unexpected length: Requested ${a-e.currentPos} bytes, but got ${i.length}.`);this.onread?.(e.currentPos,e.currentPos+i.length),this._orchestrator.supplyWorkerData(e,i)}else if(i instanceof ReadableStream){let s=i.getReader();for(;e.currentPos<a&&!e.aborted;){let{done:i,value:o}=await s.read();if(i){if(e.currentPos<a)throw Error(`ReadableStream returned by options.read ended before supplying enough data. Requested ${a-r} bytes, but got ${e.currentPos-r}`);break}if(!(o instanceof Uint8Array))throw TypeError("ReadableStream returned by options.read must yield Uint8Array chunks.");if(e.aborted)break;let l=(0,n.toUint8Array)(o);this.onread?.(e.currentPos,e.currentPos+l.length),this._orchestrator.supplyWorkerData(e,l)}}else throw TypeError("options.read must return or resolve to a Uint8Array or a ReadableStream.")}e.running=!1}_dispose(){this._orchestrator.dispose(),this._options.dispose?.()}}class k extends d{constructor(e,r={}){if(!(e instanceof ReadableStream))throw TypeError("stream must be a ReadableStream.");if(!r||"object"!=typeof r)throw TypeError("options must be an object.");if(void 0!==r.maxCacheSize&&(!(0,n.isNumber)(r.maxCacheSize)||r.maxCacheSize<0))throw TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._reader=null,this._cache=[],this._pendingSlices=[],this._currentIndex=0,this._targetIndex=0,this._maxRequestedIndex=0,this._endIndex=null,this._pulling=!1,this._stream=e,this._maxCacheSize=r.maxCacheSize??0x1000000}_retrieveSize(){return this._endIndex}_read(e,r){if(null!==this._endIndex&&r>this._endIndex)return null;this._maxRequestedIndex=Math.max(this._maxRequestedIndex,r);let a=(0,n.binarySearchLessOrEqual)(this._cache,e,e=>e.start),i=-1!==a?this._cache[a]:null;if(i&&i.start<=e&&r<=i.end)return{bytes:i.bytes,view:i.view,offset:i.start};let s=e,o=new Uint8Array(r-e);if(-1!==a)for(let i=a;i<this._cache.length;i++){let a=this._cache[i];if(a.start>=r)break;let n=Math.max(e,a.start);n>s&&this._throwDueToCacheMiss();let l=Math.min(r,a.end);n<l&&(o.set(a.bytes.subarray(n-a.start,l-a.start),n-e),s=l)}if(s===r)return{bytes:o,view:(0,n.toDataView)(o),offset:e};this._currentIndex>s&&this._throwDueToCacheMiss();let{promise:l,resolve:c,reject:d}=(0,n.promiseWithResolvers)();return this._pendingSlices.push({start:e,end:r,bytes:o,resolve:c,reject:d}),this._targetIndex=Math.max(this._targetIndex,r),this._pulling||(this._pulling=!0,this._pull().catch(e=>{if(this._pulling=!1,this._pendingSlices.length>0)this._pendingSlices.forEach(r=>r.reject(e)),this._pendingSlices.length=0;else throw e})),l}_throwDueToCacheMiss(){throw Error("Read is before the cached region. With ReadableStreamSource, you must access the data more sequentially or increase the size of its cache.")}async _pull(){for(this._reader??=this._stream.getReader();this._currentIndex<this._targetIndex&&!this._disposed;){let{done:e,value:r}=await this._reader.read();if(e){for(let e of this._pendingSlices)e.resolve(null);this._pendingSlices.length=0,this._endIndex=this._currentIndex;break}let a=this._currentIndex,i=this._currentIndex+r.byteLength;for(let e=0;e<this._pendingSlices.length;e++){let s=this._pendingSlices[e],o=Math.max(a,s.start),l=Math.min(i,s.end);o<l&&(s.bytes.set(r.subarray(o-a,l-a),o-s.start),l===s.end&&(s.resolve({bytes:s.bytes,view:(0,n.toDataView)(s.bytes),offset:s.start}),this._pendingSlices.splice(e,1),e--))}for(this._cache.push({start:a,end:i,bytes:r,view:(0,n.toDataView)(r),age:0});this._cache.length>0;){let e=this._cache[0];if(this._maxRequestedIndex-e.end<=this._maxCacheSize)break;this._cache.shift()}this._currentIndex+=r.byteLength}this._pulling=!1}_dispose(){this._pendingSlices.length=0,this._cache.length=0}}let b={none:(e,r)=>({start:e,end:r}),fileSystem:(e,r)=>({start:e=65536*Math.floor((e-65536)/65536),end:r=65536*Math.ceil((r+65536)/65536)}),network:(e,r,a)=>{for(let i of(e=Math.max(0,65536*Math.floor((e-65536)/65536)),a)){let a=Math.max((i.startPos+i.targetPos)/2,i.targetPos-8388608);if((0,n.closedIntervalsOverlap)(e,r,a,i.targetPos)){let e=i.targetPos-i.startPos,a=8388608*Math.ceil((e+1)/8388608),s=Math.min(2**Math.ceil(Math.log2(e+1)),a);r=Math.max(r,i.startPos+s)}}return r=Math.max(r,e+524288),{start:e,end:r}}};class T{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0,this.disposed=!1}read(e,r){(0,n.assert)(null!==this.fileSize);let a=this.options.prefetchProfile(e,r,this.workers),i=Math.max(a.start,0),s=Math.min(a.end,this.fileSize);(0,n.assert)(i<=e&&r<=s);let o=null,l=(0,n.binarySearchLessOrEqual)(this.cache,e,e=>e.start),c=-1!==l?this.cache[l]:null;c&&c.start<=e&&r<=c.end&&(c.age=this.nextAge++,o={bytes:c.bytes,view:c.view,offset:c.start});let d=(0,n.binarySearchLessOrEqual)(this.cache,i,e=>e.start),u=o?null:new Uint8Array(r-e),h=0,m=i,p=[];if(-1!==d){for(let a=d;a<this.cache.length;a++){let o=this.cache[a];if(o.start>=s)break;if(o.end<=i)continue;let l=Math.max(i,o.start),c=Math.min(s,o.end);if((0,n.assert)(l<=c),m<l&&p.push({start:m,end:l}),m=c,u){let a=Math.max(e,o.start),i=Math.min(r,o.end);if(a<i){let r=a-e;u.set(o.bytes.subarray(a-o.start,i-o.start),r),r===h&&(h=i-e)}}o.age=this.nextAge++}m<s&&p.push({start:m,end:s})}else p.push({start:i,end:s});if(u&&h>=u.length&&(o={bytes:u,view:(0,n.toDataView)(u),offset:e}),0===p.length)return(0,n.assert)(o),o;let{promise:f,resolve:g,reject:k}=(0,n.promiseWithResolvers)(),b=[];for(let a of p){let i=Math.max(e,a.start),s=Math.min(r,a.end);i===a.start&&s===a.end?b.push(a):i<s&&b.push({start:i,end:s})}for(let r of p){let a=u&&{start:e,bytes:u,holes:b,resolve:g,reject:k},i=!1;for(let e of this.workers)if((0,n.closedIntervalsOverlap)(r.start-131072,r.start,e.currentPos,e.targetPos)){e.targetPos=Math.max(e.targetPos,r.end),i=!0,a&&!e.pendingSlices.includes(a)&&e.pendingSlices.push(a),e.running||this.runWorker(e);break}if(!i){let e=this.createWorker(r.start,r.end);a&&(e.pendingSlices=[a]),this.runWorker(e)}}return o||((0,n.assert)(u),o=f.then(r=>({bytes:r,view:(0,n.toDataView)(r),offset:e}))),o}createWorker(e,r){let a={startPos:e,currentPos:e,targetPos:r,running:!1,aborted:this.disposed,pendingSlices:[],age:this.nextAge++};for(this.workers.push(a);this.workers.length>this.options.maxWorkerCount;){let e=0,r=this.workers[0];for(let a=1;a<this.workers.length;a++){let i=this.workers[a];i.age<r.age&&(e=a,r=i)}if(r.running&&r.pendingSlices.length>0)break;r.aborted=!0,this.workers.splice(e,1)}return a}runWorker(e){(0,n.assert)(!e.running),(0,n.assert)(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(r=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(e=>e.reject(r)),e.pendingSlices.length=0;else throw r})}supplyWorkerData(e,r){(0,n.assert)(!e.aborted);let a=e.currentPos,i=a+r.length;this.insertIntoCache({start:a,end:i,bytes:r,view:(0,n.toDataView)(r),age:this.nextAge++}),e.currentPos+=r.length,e.targetPos=Math.max(e.targetPos,e.currentPos);for(let s=0;s<e.pendingSlices.length;s++){let n=e.pendingSlices[s],o=Math.max(a,n.start),l=Math.min(i,n.start+n.bytes.length);o<l&&n.bytes.set(r.subarray(o-a,l-a),o-n.start);for(let e=0;e<n.holes.length;e++){let r=n.holes[e];a<=r.start&&i>r.start&&(r.start=i),r.end<=r.start&&(n.holes.splice(e,1),e--)}0===n.holes.length&&(n.resolve(n.bytes),e.pendingSlices.splice(s,1),s--)}for(let r=0;r<this.workers.length;r++){let s=this.workers[r];e!==s&&!s.running&&(0,n.closedIntervalsOverlap)(a,i,s.currentPos,s.targetPos)&&(this.workers.splice(r,1),r--)}}forgetWorker(e){let r=this.workers.indexOf(e);(0,n.assert)(-1!==r),this.workers.splice(r,1)}insertIntoCache(e){if(0===this.options.maxCacheSize)return;let r=(0,n.binarySearchLessOrEqual)(this.cache,e.start,e=>e.start)+1;if(r>0){let a=this.cache[r-1];if(a.end>=e.end)return;if(a.end>e.start){let i=new Uint8Array(e.end-a.start);i.set(a.bytes,0),i.set(e.bytes,e.start-a.start),this.currentCacheSize+=e.end-a.end,a.bytes=i,a.view=(0,n.toDataView)(i),a.end=e.end,r--,e=a}else this.cache.splice(r,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(r,0,e),this.currentCacheSize+=e.bytes.length;for(let a=r+1;a<this.cache.length;a++){let r=this.cache[a];if(e.end<=r.start)break;if(e.end>=r.end){this.cache.splice(a,1),this.currentCacheSize-=r.bytes.length,a--;continue}let i=new Uint8Array(r.end-e.start);i.set(e.bytes,0),i.set(r.bytes,r.start-e.start),this.currentCacheSize-=e.end-r.start,e.bytes=i,e.view=(0,n.toDataView)(i),e.end=r.end,this.cache.splice(a,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let e=0,r=this.cache[0];for(let a=1;a<this.cache.length;a++){let i=this.cache[a];i.age<r.age&&(e=a,r=i)}if(this.currentCacheSize-r.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(e,1),this.currentCacheSize-=r.bytes.length}}dispose(){for(let e of this.workers)e.aborted=!0;this.workers.length=0,this.cache.length=0,this.disposed=!0}}},{"./misc.js":"dpOkn","./node.js":"a3i1H","./input.js":"cI9DB","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],a3i1H:[function(e,r,a,i){},{}],i61Hy:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"PLACEHOLDER_DATA",()=>o),s.export(a,"EncodedPacket",()=>l);var n=e("./misc.js");let o=new Uint8Array(0);class l{constructor(e,r,a,i,s=-1,n,l){if(this.data=e,this.type=r,this.timestamp=a,this.duration=i,this.sequenceNumber=s,e===o&&void 0===n)throw Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(void 0===n&&(n=e.byteLength),!(e instanceof Uint8Array))throw TypeError("data must be a Uint8Array.");if("key"!==r&&"delta"!==r)throw TypeError('type must be either "key" or "delta".');if(!Number.isFinite(a))throw TypeError("timestamp must be a number.");if(!Number.isFinite(i)||i<0)throw TypeError("duration must be a non-negative number.");if(!Number.isFinite(s))throw TypeError("sequenceNumber must be a number.");if(!Number.isInteger(n)||n<0)throw TypeError("byteLength must be a non-negative integer.");if(void 0!==l&&("object"!=typeof l||!l))throw TypeError("sideData, when provided, must be an object.");if(l?.alpha!==void 0&&!(l.alpha instanceof Uint8Array))throw TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(l?.alphaByteLength!==void 0&&(!Number.isInteger(l.alphaByteLength)||l.alphaByteLength<0))throw TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=n,this.sideData=l??{},this.sideData.alpha&&void 0===this.sideData.alphaByteLength&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===o}get microsecondTimestamp(){return Math.trunc(n.SECOND_TO_MICROSECOND_FACTOR*this.timestamp)}get microsecondDuration(){return Math.trunc(n.SECOND_TO_MICROSECOND_FACTOR*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(e=this.type){if(!this.sideData.alpha)throw TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:e,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw TypeError("Metadata-only packets cannot be converted to an audio chunk.");if("undefined"==typeof EncodedAudioChunk)throw Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e,r){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let a=new Uint8Array(e.byteLength);return e.copyTo(a),new l(a,e.type,e.timestamp/1e6,(e.duration??0)/1e6,void 0,void 0,r)}clone(e){if(void 0!==e&&("object"!=typeof e||null===e))throw TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw TypeError("options.duration, when provided, must be a number.");return new l(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}}},{"./misc.js":"dpOkn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bPgId:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"toUlaw",()=>n),s.export(a,"fromUlaw",()=>o),s.export(a,"toAlaw",()=>l),s.export(a,"fromAlaw",()=>c);let n=e=>{let r=e,a=4096,i=0,s=12,n=0;for(r<0&&(r=-r,i=128),(r+=33)>8191&&(r=8191);(r&a)!==a&&s>=5;)a>>=1,s--;return n=r>>s-4&15,255&~(i|s-5<<4|n)},o=e=>{let r=0,a=0,i=~e;128&i&&(i&=-129,r=-1);let s=(1<<(a=((240&i)>>4)+5)|(15&i)<<a-4|1<<a-5)-33;return 0===r?s:-s},l=e=>{let r=2048,a=0,i=11,s=0,n=e;for(n<0&&(n=-n,a=128),n>4095&&(n=4095);(n&r)!==r&&i>=5;)r>>=1,i--;return s=n>>(4===i?1:i-4)&15,(a|i-4<<4|s)^85},c=e=>{let r=0,a=0,i=85^e;128&i&&(i&=-129,r=-1);let s=0;return s=4!=(a=((240&i)>>4)+4)?1<<a|(15&i)<<a-4|1<<a-5:i<<1|1,0===r?s:-s}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"9Wy36":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"VideoSample",()=>d),s.export(a,"clampCropRectangle",()=>h),s.export(a,"validateCropRectangle",()=>m),s.export(a,"AudioSample",()=>f);var n=e("./misc.js");(0,n.polyfillSymbolDispose)();let o=-1/0,l=-1/0,c=null;"undefined"!=typeof FinalizationRegistry&&(c=new FinalizationRegistry(e=>{let r=Date.now();"video"===e.type?(r-o>=1e3&&(console.error("A VideoSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your VideoSamples as soon as you're done using them."),o=r),"undefined"!=typeof VideoFrame&&e.data instanceof VideoFrame&&e.data.close()):(r-l>=1e3&&(console.error("An AudioSample was garbage collected without first being closed. For proper resource management, make sure to call close() on all your AudioSamples as soon as you're done using them."),l=r),"undefined"!=typeof AudioData&&e.data instanceof AudioData&&e.data.close())}));class d{get displayWidth(){return this.rotation%180==0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180==0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(n.SECOND_TO_MICROSECOND_FACTOR*this.timestamp)}get microsecondDuration(){return Math.trunc(n.SECOND_TO_MICROSECOND_FACTOR*this.duration)}get hasAlpha(){return this.format&&this.format.includes("A")}constructor(e,r){if(this._closed=!1,e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||ArrayBuffer.isView(e)){if(!r||"object"!=typeof r)throw TypeError("init must be an object.");if(!("format"in r)||"string"!=typeof r.format)throw TypeError("init.format must be a string.");if(!Number.isInteger(r.codedWidth)||r.codedWidth<=0)throw TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(r.codedHeight)||r.codedHeight<=0)throw TypeError("init.codedHeight must be a positive integer.");if(void 0!==r.rotation&&![0,90,180,270].includes(r.rotation))throw TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(r.timestamp))throw TypeError("init.timestamp must be a number.");if(void 0!==r.duration&&(!Number.isFinite(r.duration)||r.duration<0))throw TypeError("init.duration, when provided, must be a non-negative number.");this._data=(0,n.toUint8Array)(e).slice(),this.format=r.format,this.codedWidth=r.codedWidth,this.codedHeight=r.codedHeight,this.rotation=r.rotation??0,this.timestamp=r.timestamp,this.duration=r.duration??0,this.colorSpace=new VideoColorSpace(r.colorSpace)}else if("undefined"!=typeof VideoFrame&&e instanceof VideoFrame){if(r?.rotation!==void 0&&![0,90,180,270].includes(r.rotation))throw TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(r?.timestamp!==void 0&&!Number.isFinite(r?.timestamp))throw TypeError("init.timestamp, when provided, must be a number.");if(r?.duration!==void 0&&(!Number.isFinite(r.duration)||r.duration<0))throw TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.displayWidth,this.codedHeight=e.displayHeight,this.rotation=r?.rotation??0,this.timestamp=r?.timestamp??e.timestamp/1e6,this.duration=r?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof SVGImageElement&&e instanceof SVGImageElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof HTMLVideoElement&&e instanceof HTMLVideoElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas){if(!r||"object"!=typeof r)throw TypeError("init must be an object.");if(void 0!==r.rotation&&![0,90,180,270].includes(r.rotation))throw TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(r.timestamp))throw TypeError("init.timestamp must be a number.");if(void 0!==r.duration&&(!Number.isFinite(r.duration)||r.duration<0))throw TypeError("init.duration, when provided, must be a non-negative number.");if("undefined"!=typeof VideoFrame)return new d(new VideoFrame(e,{timestamp:Math.trunc(r.timestamp*n.SECOND_TO_MICROSECOND_FACTOR),duration:Math.trunc((r.duration??0)*n.SECOND_TO_MICROSECOND_FACTOR)||void 0}),r);let a=0,i=0;if("naturalWidth"in e?(a=e.naturalWidth,i=e.naturalHeight):"videoWidth"in e?(a=e.videoWidth,i=e.videoHeight):"width"in e&&(a=Number(e.width),i=Number(e.height)),!a||!i)throw TypeError("Could not determine dimensions.");const s=new OffscreenCanvas(a,i),o=s.getContext("2d",{alpha:(0,n.isFirefox)(),willReadFrequently:!0});(0,n.assert)(o),o.drawImage(e,0,0),this._data=s,this.format="RGBX",this.codedWidth=a,this.codedHeight=i,this.rotation=r.rotation??0,this.timestamp=r.timestamp,this.duration=r.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.");c?.register(this,{type:"video",data:this._data},this)}clone(){if(this._closed)throw Error("VideoSample is closed.");return((0,n.assert)(null!==this._data),u(this._data))?new d(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?new d(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation}):new d(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})}close(){this._closed||(c?.unregister(this),u(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw Error("VideoSample is closed.");return((0,n.assert)(null!==this._data),u(this._data))?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!(0,n.isAllowSharedBufferSource)(e))throw TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw Error("VideoSample is closed.");if((0,n.assert)(null!==this._data),u(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)(0,n.toUint8Array)(e).set(this._data);else{let r=this._data.getContext("2d");(0,n.assert)(r);let a=r.getImageData(0,0,this.codedWidth,this.codedHeight);(0,n.toUint8Array)(e).set(a.data)}}toVideoFrame(){if(this._closed)throw Error("VideoSample is closed.");return((0,n.assert)(null!==this._data),u(this._data))?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0})}draw(e,r,a,i,s,n,o,l,c){let d=0,u=0,h=this.displayWidth,m=this.displayHeight,p=0,f=0,g=this.displayWidth,k=this.displayHeight;if(void 0!==n?(d=r,u=a,h=i,m=s,p=n,f=o,void 0!==l?(g=l,k=c):(g=h,k=m)):(p=r,f=a,void 0!==i&&(g=i,k=s)),!("undefined"!=typeof CanvasRenderingContext2D&&e instanceof CanvasRenderingContext2D||"undefined"!=typeof OffscreenCanvasRenderingContext2D&&e instanceof OffscreenCanvasRenderingContext2D))throw TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(d))throw TypeError("sx must be a number.");if(!Number.isFinite(u))throw TypeError("sy must be a number.");if(!Number.isFinite(h)||h<0)throw TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(m)||m<0)throw TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(p))throw TypeError("dx must be a number.");if(!Number.isFinite(f))throw TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(k)||k<0)throw TypeError("dHeight must be a non-negative number.");if(this._closed)throw Error("VideoSample is closed.");({sx:d,sy:u,sWidth:h,sHeight:m}=this._rotateSourceRegion(d,u,h,m,this.rotation));let b=this.toCanvasImageSource();e.save();let T=p+g/2,y=f+k/2;e.translate(T,y),e.rotate(this.rotation*Math.PI/180);let S=this.rotation%180==0?1:g/k;e.scale(1/S,S),e.drawImage(b,d,u,h,m,-g/2,-k/2,g,k),e.restore()}drawWithFit(e,r){let a,i,s,n;if(!("undefined"!=typeof CanvasRenderingContext2D&&e instanceof CanvasRenderingContext2D||"undefined"!=typeof OffscreenCanvasRenderingContext2D&&e instanceof OffscreenCanvasRenderingContext2D))throw TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!r||"object"!=typeof r)throw TypeError("options must be an object.");if(!["fill","contain","cover"].includes(r.fit))throw TypeError("options.fit must be 'fill', 'contain', or 'cover'.");if(void 0!==r.rotation&&![0,90,180,270].includes(r.rotation))throw TypeError("options.rotation, when provided, must be 0, 90, 180, or 270.");void 0!==r.crop&&m(r.crop,"options.");let o=e.canvas.width,l=e.canvas.height,c=r.rotation??this.rotation,[d,u]=c%180==0?[this.codedWidth,this.codedHeight]:[this.codedHeight,this.codedWidth];r.crop&&h(r.crop,d,u);let{sx:p,sy:f,sWidth:g,sHeight:k}=this._rotateSourceRegion(r.crop?.left??0,r.crop?.top??0,r.crop?.width??d,r.crop?.height??u,c);if("fill"===r.fit)a=0,i=0,s=o,n=l;else{let[e,c]=r.crop?[r.crop.width,r.crop.height]:[d,u],h="contain"===r.fit?Math.min(o/e,l/c):Math.max(o/e,l/c);s=e*h,n=c*h,a=(o-s)/2,i=(l-n)/2}e.save();let b=c%180==0?1:s/n;e.translate(o/2,l/2),e.rotate(c*Math.PI/180),e.scale(1/b,b),e.translate(-o/2,-l/2),e.drawImage(this.toCanvasImageSource(),p,f,g,k,a,i,s,n),e.restore()}_rotateSourceRegion(e,r,a,i,s){return 90===s?[e,r,a,i]=[r,this.codedHeight-e-a,i,a]:180===s?[e,r]=[this.codedWidth-e-a,this.codedHeight-r-i]:270===s&&([e,r,a,i]=[this.codedWidth-r-i,e,i,a]),{sx:e,sy:r,sWidth:a,sHeight:i}}toCanvasImageSource(){if(this._closed)throw Error("VideoSample is closed.");if((0,n.assert)(null!==this._data),!(this._data instanceof Uint8Array))return this._data;{let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}}setRotation(e){if(![0,90,180,270].includes(e))throw TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw TypeError("newDuration must be a non-negative number.");this.duration=e}[Symbol.dispose](){this.close()}}let u=e=>"undefined"!=typeof VideoFrame&&e instanceof VideoFrame,h=(e,r,a)=>{e.left=Math.min(e.left,r),e.top=Math.min(e.top,a),e.width=Math.min(e.width,r-e.left),e.height=Math.min(e.height,a-e.top),(0,n.assert)(e.width>=0),(0,n.assert)(e.height>=0)},m=(e,r)=>{if(!e||"object"!=typeof e)throw TypeError(r+"crop, when provided, must be an object.");if(!Number.isInteger(e.left)||e.left<0)throw TypeError(r+"crop.left must be a non-negative integer.");if(!Number.isInteger(e.top)||e.top<0)throw TypeError(r+"crop.top must be a non-negative integer.");if(!Number.isInteger(e.width)||e.width<0)throw TypeError(r+"crop.width must be a non-negative integer.");if(!Number.isInteger(e.height)||e.height<0)throw TypeError(r+"crop.height must be a non-negative integer.")},p=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]);class f{get microsecondTimestamp(){return Math.trunc(n.SECOND_TO_MICROSECOND_FACTOR*this.timestamp)}get microsecondDuration(){return Math.trunc(n.SECOND_TO_MICROSECOND_FACTOR*this.duration)}constructor(e){if(this._closed=!1,y(e)){if(null===e.format)throw TypeError("AudioData with null format is not supported.");this._data=e,this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=e.numberOfFrames,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp/1e6,this.duration=e.numberOfFrames/e.sampleRate}else{let r;if(!e||"object"!=typeof e)throw TypeError("Invalid AudioDataInit: must be an object.");if(!p.has(e.format))throw TypeError("Invalid AudioDataInit: invalid format.");if(!Number.isFinite(e.sampleRate)||e.sampleRate<=0)throw TypeError("Invalid AudioDataInit: sampleRate must be >0.");if(!Number.isInteger(e.numberOfChannels)||0===e.numberOfChannels)throw TypeError("Invalid AudioDataInit: numberOfChannels must be an integer > 0.");if(!Number.isFinite(e?.timestamp))throw TypeError("init.timestamp must be a number.");const a=e.data.byteLength/(g(e.format)*e.numberOfChannels);if(!Number.isInteger(a))throw TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");if(this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=a,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=a/e.sampleRate,e.data instanceof ArrayBuffer)r=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))r=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw TypeError("Invalid AudioDataInit: data is not a BufferSource.");const i=this.numberOfFrames*this.numberOfChannels*g(this.format);if(r.byteLength<i)throw TypeError("Invalid AudioDataInit: insufficient data size.");this._data=r}c?.register(this,{type:"audio",data:this._data},this)}allocationSize(e){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(!Number.isInteger(e.planeIndex)||e.planeIndex<0)throw TypeError("planeIndex must be a non-negative integer.");if(void 0!==e.format&&!p.has(e.format))throw TypeError("Invalid format.");if(void 0!==e.frameOffset&&(!Number.isInteger(e.frameOffset)||e.frameOffset<0))throw TypeError("frameOffset must be a non-negative integer.");if(void 0!==e.frameCount&&(!Number.isInteger(e.frameCount)||e.frameCount<0))throw TypeError("frameCount must be a non-negative integer.");if(this._closed)throw Error("AudioSample is closed.");let r=e.format??this.format,a=e.frameOffset??0;if(a>=this.numberOfFrames)throw RangeError("frameOffset out of range");let i=void 0!==e.frameCount?e.frameCount:this.numberOfFrames-a;if(i>this.numberOfFrames-a)throw RangeError("frameCount out of range");let s=g(r),n=k(r);if(n&&e.planeIndex>=this.numberOfChannels||!n&&0!==e.planeIndex)throw RangeError("planeIndex out of range");return(n?i:i*this.numberOfChannels)*s}copyTo(e,r){if(!(0,n.isAllowSharedBufferSource)(e))throw TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!r||"object"!=typeof r)throw TypeError("options must be an object.");if(!Number.isInteger(r.planeIndex)||r.planeIndex<0)throw TypeError("planeIndex must be a non-negative integer.");if(void 0!==r.format&&!p.has(r.format))throw TypeError("Invalid format.");if(void 0!==r.frameOffset&&(!Number.isInteger(r.frameOffset)||r.frameOffset<0))throw TypeError("frameOffset must be a non-negative integer.");if(void 0!==r.frameCount&&(!Number.isInteger(r.frameCount)||r.frameCount<0))throw TypeError("frameCount must be a non-negative integer.");if(this._closed)throw Error("AudioSample is closed.");let{planeIndex:a,format:i,frameCount:s,frameOffset:o}=r,l=i??this.format;if(!l)throw Error("Destination format not determined");let c=this.numberOfFrames,d=this.numberOfChannels,u=o??0;if(u>=c)throw RangeError("frameOffset out of range");let h=void 0!==s?s:c-u;if(h>c-u)throw RangeError("frameCount out of range");let m=g(l),f=k(l);if(f&&a>=d||!f&&0!==a)throw RangeError("planeIndex out of range");let S=f?h:h*d;if(e.byteLength<S*m)throw RangeError("Destination buffer is too small");let w=(0,n.toDataView)(e),I=T(l);if(y(this._data))if(f)if("f32-planar"===l)this._data.copyTo(e,{planeIndex:a,frameOffset:u,frameCount:h,format:"f32-planar"});else{let e=new ArrayBuffer(4*h),r=new Float32Array(e);this._data.copyTo(r,{planeIndex:a,frameOffset:u,frameCount:h,format:"f32-planar"});let i=new DataView(e);for(let e=0;e<h;e++)I(w,e*m,i.getFloat32(4*e,!0))}else{let e=new Float32Array(h);for(let r=0;r<d;r++){this._data.copyTo(e,{planeIndex:r,frameOffset:u,frameCount:h,format:"f32-planar"});for(let a=0;a<h;a++)I(w,(a*d+r)*m,e[a])}}else{let e=this._data,r=(0,n.toDataView)(e),i=this.format,s=b(i),o=g(i),l=k(i);for(let e=0;e<h;e++)if(f)I(w,e*m,s(r,l?(a*c+(e+u))*o:((e+u)*d+a)*o));else for(let a=0;a<d;a++)I(w,(e*d+a)*m,s(r,l?(a*c+(e+u))*o:((e+u)*d+a)*o))}}clone(){if(this._closed)throw Error("AudioSample is closed.");if(!y(this._data))return new f({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data});{let e=new f(this._data.clone());return e.setTimestamp(this.timestamp),e}}close(){this._closed||(c?.unregister(this),y(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw Error("AudioSample is closed.");if(!y(this._data))return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:this._data.buffer instanceof ArrayBuffer?this._data.buffer:this._data.slice()});if(this._data.timestamp===this.microsecondTimestamp)return this._data.clone();if(k(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),r=new ArrayBuffer(e*this.numberOfChannels);for(let a=0;a<this.numberOfChannels;a++)this.copyTo(new Uint8Array(r,a*e,e),{planeIndex:a,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:r})}{let e=new ArrayBuffer(this.allocationSize({planeIndex:0,format:this.format}));return this.copyTo(e,{planeIndex:0,format:this.format}),new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:e})}}toAudioBuffer(){if(this._closed)throw Error("AudioSample is closed.");let e=new AudioBuffer({numberOfChannels:this.numberOfChannels,length:this.numberOfFrames,sampleRate:this.sampleRate}),r=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let a=0;a<this.numberOfChannels;a++)this.copyTo(r,{planeIndex:a,format:"f32-planar"}),e.copyToChannel(r,a);return e}setTimestamp(e){if(!Number.isFinite(e))throw TypeError("newTimestamp must be a number.");this.timestamp=e}[Symbol.dispose](){this.close()}static*_fromAudioBuffer(e,r){if(!(e instanceof AudioBuffer))throw TypeError("audioBuffer must be an AudioBuffer.");let a=e.numberOfChannels,i=e.sampleRate,s=e.length,n=Math.floor(24e4/a),o=0,l=s;for(;l>0;){let s=Math.min(n,l),c=new Float32Array(a*s);for(let r=0;r<a;r++)e.copyFromChannel(c.subarray(r*s,(r+1)*s),r,o);yield new f({format:"f32-planar",sampleRate:i,numberOfFrames:s,numberOfChannels:a,timestamp:r+o/i,data:c}),o+=s,l-=s}}static fromAudioBuffer(e,r){if(!(e instanceof AudioBuffer))throw TypeError("audioBuffer must be an AudioBuffer.");let a=e.numberOfChannels,i=e.sampleRate,s=e.length,n=Math.floor(24e4/a),o=0,l=s,c=[];for(;l>0;){let s=Math.min(n,l),d=new Float32Array(a*s);for(let r=0;r<a;r++)e.copyFromChannel(d.subarray(r*s,(r+1)*s),r,o);let u=new f({format:"f32-planar",sampleRate:i,numberOfFrames:s,numberOfChannels:a,timestamp:r+o/i,data:d});c.push(u),o+=s,l-=s}return c}}let g=e=>{switch(e){case"u8":case"u8-planar":return 1;case"s16":case"s16-planar":return 2;case"s32":case"s32-planar":case"f32":case"f32-planar":return 4;default:throw Error("Unknown AudioSampleFormat")}},k=e=>{switch(e){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},b=e=>{switch(e){case"u8":case"u8-planar":return(e,r)=>(e.getUint8(r)-128)/128;case"s16":case"s16-planar":return(e,r)=>e.getInt16(r,!0)/32768;case"s32":case"s32-planar":return(e,r)=>e.getInt32(r,!0)/0x80000000;case"f32":case"f32-planar":return(e,r)=>e.getFloat32(r,!0)}},T=e=>{switch(e){case"u8":case"u8-planar":return(e,r,a)=>e.setUint8(r,(0,n.clamp)((a+1)*127.5,0,255));case"s16":case"s16-planar":return(e,r,a)=>e.setInt16(r,(0,n.clamp)(Math.round(32767*a),-32768,32767),!0);case"s32":case"s32-planar":return(e,r,a)=>e.setInt32(r,(0,n.clamp)(Math.round(0x7fffffff*a),-0x80000000,0x7fffffff),!0);case"f32":case"f32-planar":return(e,r,a)=>e.setFloat32(r,a,!0)}},y=e=>"undefined"!=typeof AudioData&&e instanceof AudioData},{"./misc.js":"dpOkn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8o5uh":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"buildIsobmffMimeType",()=>n);let n=e=>{let r=(e.hasVideo?"video/":e.hasAudio?"audio/":"application/")+(e.isQuickTime?"quicktime":"mp4");if(e.codecStrings.length>0){let a=[...new Set(e.codecStrings)];r+=`; codecs="${a.join(", ")}"`}return r}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8Phe1":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"MIN_BOX_HEADER_SIZE",()=>c),s.export(a,"MAX_BOX_HEADER_SIZE",()=>d),s.export(a,"readBoxHeader",()=>u),s.export(a,"readFixed_16_16",()=>h),s.export(a,"readFixed_2_30",()=>m),s.export(a,"readIsomVariableInteger",()=>p),s.export(a,"readMetadataStringShort",()=>f),s.export(a,"readDataBox",()=>g);var n=e("../metadata.js"),o=e("../misc.js"),l=e("../reader.js");let c=8,d=16,u=e=>{let r=(0,l.readU32Be)(e),a=(0,l.readAscii)(e,4),i=8;1===r&&(r=(0,l.readU64Be)(e),i=16);let s=r-i;return s<0?null:{name:a,totalSize:r,headerSize:i,contentSize:s}},h=e=>(0,l.readI32Be)(e)/65536,m=e=>(0,l.readI32Be)(e)/0x40000000,p=e=>{let r=0;for(let a=0;a<4;a++){r<<=7;let a=(0,l.readU8)(e);if(r|=127&a,(128&a)==0)break}return r},f=e=>{let r=(0,l.readU16Be)(e);return e.skip(2),r=Math.min(r,e.remainingLength),o.textDecoder.decode((0,l.readBytes)(e,r))},g=e=>{let r=u(e);if(!r||"data"!==r.name||e.remainingLength<8)return null;let a=(0,l.readU32Be)(e);e.skip(4);let i=(0,l.readBytes)(e,r.contentSize-8);switch(a){case 1:return o.textDecoder.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new(0,n.RichImageData)(i,"image/jpeg");case 14:return new(0,n.RichImageData)(i,"image/png");case 27:return new(0,n.RichImageData)(i,"image/bmp");default:return i}}},{"../metadata.js":"fFgR1","../misc.js":"dpOkn","../reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fFgR1:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"RichImageData",()=>n),s.export(a,"AttachedFile",()=>o),s.export(a,"validateMetadataTags",()=>l),s.export(a,"metadataTagsAreEmpty",()=>c),s.export(a,"DEFAULT_TRACK_DISPOSITION",()=>d),s.export(a,"validateTrackDisposition",()=>u);class n{constructor(e,r){if(this.data=e,this.mimeType=r,!(e instanceof Uint8Array))throw TypeError("data must be a Uint8Array.");if("string"!=typeof r)throw TypeError("mimeType must be a string.")}}class o{constructor(e,r,a,i){if(this.data=e,this.mimeType=r,this.name=a,this.description=i,!(e instanceof Uint8Array))throw TypeError("data must be a Uint8Array.");if(void 0!==r&&"string"!=typeof r)throw TypeError("mimeType, when provided, must be a string.");if(void 0!==a&&"string"!=typeof a)throw TypeError("name, when provided, must be a string.");if(void 0!==i&&"string"!=typeof i)throw TypeError("description, when provided, must be a string.")}}let l=e=>{if(!e||"object"!=typeof e)throw TypeError("tags must be an object.");if(void 0!==e.title&&"string"!=typeof e.title)throw TypeError("tags.title, when provided, must be a string.");if(void 0!==e.description&&"string"!=typeof e.description)throw TypeError("tags.description, when provided, must be a string.");if(void 0!==e.artist&&"string"!=typeof e.artist)throw TypeError("tags.artist, when provided, must be a string.");if(void 0!==e.album&&"string"!=typeof e.album)throw TypeError("tags.album, when provided, must be a string.");if(void 0!==e.albumArtist&&"string"!=typeof e.albumArtist)throw TypeError("tags.albumArtist, when provided, must be a string.");if(void 0!==e.trackNumber&&(!Number.isInteger(e.trackNumber)||e.trackNumber<=0))throw TypeError("tags.trackNumber, when provided, must be a positive integer.");if(void 0!==e.tracksTotal&&(!Number.isInteger(e.tracksTotal)||e.tracksTotal<=0))throw TypeError("tags.tracksTotal, when provided, must be a positive integer.");if(void 0!==e.discNumber&&(!Number.isInteger(e.discNumber)||e.discNumber<=0))throw TypeError("tags.discNumber, when provided, must be a positive integer.");if(void 0!==e.discsTotal&&(!Number.isInteger(e.discsTotal)||e.discsTotal<=0))throw TypeError("tags.discsTotal, when provided, must be a positive integer.");if(void 0!==e.genre&&"string"!=typeof e.genre)throw TypeError("tags.genre, when provided, must be a string.");if(void 0!==e.date&&(!(e.date instanceof Date)||Number.isNaN(e.date.getTime())))throw TypeError("tags.date, when provided, must be a valid Date.");if(void 0!==e.lyrics&&"string"!=typeof e.lyrics)throw TypeError("tags.lyrics, when provided, must be a string.");if(void 0!==e.images){if(!Array.isArray(e.images))throw TypeError("tags.images, when provided, must be an array.");for(let r of e.images){if(!r||"object"!=typeof r)throw TypeError("Each image in tags.images must be an object.");if(!(r.data instanceof Uint8Array))throw TypeError("Each image.data must be a Uint8Array.");if("string"!=typeof r.mimeType)throw TypeError("Each image.mimeType must be a string.");if(!["coverFront","coverBack","unknown"].includes(r.kind))throw TypeError("Each image.kind must be 'coverFront', 'coverBack', or 'unknown'.")}}if(void 0!==e.comment&&"string"!=typeof e.comment)throw TypeError("tags.comment, when provided, must be a string.");if(void 0!==e.raw){if(!e.raw||"object"!=typeof e.raw)throw TypeError("tags.raw, when provided, must be an object.");for(let r of Object.values(e.raw))if(null!==r&&"string"!=typeof r&&!(r instanceof Uint8Array)&&!(r instanceof n)&&!(r instanceof o))throw TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, or null.")}},c=e=>void 0===e.title&&void 0===e.description&&void 0===e.artist&&void 0===e.album&&void 0===e.albumArtist&&void 0===e.trackNumber&&void 0===e.tracksTotal&&void 0===e.discNumber&&void 0===e.discsTotal&&void 0===e.genre&&void 0===e.date&&void 0===e.lyrics&&(!e.images||0===e.images.length)&&void 0===e.comment&&(void 0===e.raw||0===Object.keys(e.raw).length),d={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},u=e=>{if(!e||"object"!=typeof e)throw TypeError("disposition must be an object.");if(void 0!==e.default&&"boolean"!=typeof e.default)throw TypeError("disposition.default must be a boolean.");if(void 0!==e.forced&&"boolean"!=typeof e.forced)throw TypeError("disposition.forced must be a boolean.");if(void 0!==e.original&&"boolean"!=typeof e.original)throw TypeError("disposition.original must be a boolean.");if(void 0!==e.commentary&&"boolean"!=typeof e.commentary)throw TypeError("disposition.commentary must be a boolean.");if(void 0!==e.hearingImpaired&&"boolean"!=typeof e.hearingImpaired)throw TypeError("disposition.hearingImpaired must be a boolean.");if(void 0!==e.visuallyImpaired&&"boolean"!=typeof e.visuallyImpaired)throw TypeError("disposition.visuallyImpaired must be a boolean.")}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],B0jDs:[function(e,r,a,i){var s,n,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(a),o.export(a,"EBMLFloat32",()=>d),o.export(a,"EBMLFloat64",()=>u),o.export(a,"EBMLSignedInt",()=>h),o.export(a,"EBMLUnicodeString",()=>m),o.export(a,"EBMLId",()=>n),o.export(a,"LEVEL_0_EBML_IDS",()=>p),o.export(a,"LEVEL_1_EBML_IDS",()=>f),o.export(a,"LEVEL_0_AND_1_EBML_IDS",()=>g),o.export(a,"measureUnsignedInt",()=>k),o.export(a,"measureUnsignedBigInt",()=>b),o.export(a,"measureSignedInt",()=>T),o.export(a,"measureVarInt",()=>y),o.export(a,"EBMLWriter",()=>S),o.export(a,"MAX_VAR_INT_SIZE",()=>w),o.export(a,"MIN_HEADER_SIZE",()=>I),o.export(a,"MAX_HEADER_SIZE",()=>x),o.export(a,"readVarIntSize",()=>E),o.export(a,"readVarInt",()=>P),o.export(a,"readUnsignedInt",()=>C),o.export(a,"readUnsignedBigInt",()=>B),o.export(a,"readSignedInt",()=>_),o.export(a,"readElementId",()=>A),o.export(a,"readElementSize",()=>D),o.export(a,"readElementHeader",()=>M),o.export(a,"readAsciiString",()=>F),o.export(a,"readUnicodeString",()=>R),o.export(a,"readFloat",()=>U),o.export(a,"searchForNextElementId",()=>L),o.export(a,"resync",()=>O),o.export(a,"CODEC_STRING_MAP",()=>N),o.export(a,"assertDefinedSize",()=>j);var l=e("../misc.js"),c=e("../reader.js");class d{constructor(e){this.value=e}}class u{constructor(e){this.value=e}}class h{constructor(e){this.value=e}}class m{constructor(e){this.value=e}}(s=n||(n={}))[s.EBML=0x1a45dfa3]="EBML",s[s.EBMLVersion=17030]="EBMLVersion",s[s.EBMLReadVersion=17143]="EBMLReadVersion",s[s.EBMLMaxIDLength=17138]="EBMLMaxIDLength",s[s.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",s[s.DocType=17026]="DocType",s[s.DocTypeVersion=17031]="DocTypeVersion",s[s.DocTypeReadVersion=17029]="DocTypeReadVersion",s[s.Void=236]="Void",s[s.Segment=0x18538067]="Segment",s[s.SeekHead=0x114d9b74]="SeekHead",s[s.Seek=19899]="Seek",s[s.SeekID=21419]="SeekID",s[s.SeekPosition=21420]="SeekPosition",s[s.Duration=17545]="Duration",s[s.Info=0x1549a966]="Info",s[s.TimestampScale=2807729]="TimestampScale",s[s.MuxingApp=19840]="MuxingApp",s[s.WritingApp=22337]="WritingApp",s[s.Tracks=0x1654ae6b]="Tracks",s[s.TrackEntry=174]="TrackEntry",s[s.TrackNumber=215]="TrackNumber",s[s.TrackUID=29637]="TrackUID",s[s.TrackType=131]="TrackType",s[s.FlagEnabled=185]="FlagEnabled",s[s.FlagDefault=136]="FlagDefault",s[s.FlagForced=21930]="FlagForced",s[s.FlagOriginal=21934]="FlagOriginal",s[s.FlagHearingImpaired=21931]="FlagHearingImpaired",s[s.FlagVisualImpaired=21932]="FlagVisualImpaired",s[s.FlagCommentary=21935]="FlagCommentary",s[s.FlagLacing=156]="FlagLacing",s[s.Name=21358]="Name",s[s.Language=2274716]="Language",s[s.LanguageBCP47=2274717]="LanguageBCP47",s[s.CodecID=134]="CodecID",s[s.CodecPrivate=25506]="CodecPrivate",s[s.CodecDelay=22186]="CodecDelay",s[s.SeekPreRoll=22203]="SeekPreRoll",s[s.DefaultDuration=2352003]="DefaultDuration",s[s.Video=224]="Video",s[s.PixelWidth=176]="PixelWidth",s[s.PixelHeight=186]="PixelHeight",s[s.AlphaMode=21440]="AlphaMode",s[s.Audio=225]="Audio",s[s.SamplingFrequency=181]="SamplingFrequency",s[s.Channels=159]="Channels",s[s.BitDepth=25188]="BitDepth",s[s.SimpleBlock=163]="SimpleBlock",s[s.BlockGroup=160]="BlockGroup",s[s.Block=161]="Block",s[s.BlockAdditions=30113]="BlockAdditions",s[s.BlockMore=166]="BlockMore",s[s.BlockAdditional=165]="BlockAdditional",s[s.BlockAddID=238]="BlockAddID",s[s.BlockDuration=155]="BlockDuration",s[s.ReferenceBlock=251]="ReferenceBlock",s[s.Cluster=0x1f43b675]="Cluster",s[s.Timestamp=231]="Timestamp",s[s.Cues=0x1c53bb6b]="Cues",s[s.CuePoint=187]="CuePoint",s[s.CueTime=179]="CueTime",s[s.CueTrackPositions=183]="CueTrackPositions",s[s.CueTrack=247]="CueTrack",s[s.CueClusterPosition=241]="CueClusterPosition",s[s.Colour=21936]="Colour",s[s.MatrixCoefficients=21937]="MatrixCoefficients",s[s.TransferCharacteristics=21946]="TransferCharacteristics",s[s.Primaries=21947]="Primaries",s[s.Range=21945]="Range",s[s.Projection=30320]="Projection",s[s.ProjectionType=30321]="ProjectionType",s[s.ProjectionPoseRoll=30325]="ProjectionPoseRoll",s[s.Attachments=0x1941a469]="Attachments",s[s.AttachedFile=24999]="AttachedFile",s[s.FileDescription=18046]="FileDescription",s[s.FileName=18030]="FileName",s[s.FileMediaType=18016]="FileMediaType",s[s.FileData=18012]="FileData",s[s.FileUID=18094]="FileUID",s[s.Chapters=0x1043a770]="Chapters",s[s.Tags=0x1254c367]="Tags",s[s.Tag=29555]="Tag",s[s.Targets=25536]="Targets",s[s.TargetTypeValue=26826]="TargetTypeValue",s[s.TargetType=25546]="TargetType",s[s.TagTrackUID=25541]="TagTrackUID",s[s.TagEditionUID=25545]="TagEditionUID",s[s.TagChapterUID=25540]="TagChapterUID",s[s.TagAttachmentUID=25542]="TagAttachmentUID",s[s.SimpleTag=26568]="SimpleTag",s[s.TagName=17827]="TagName",s[s.TagLanguage=17530]="TagLanguage",s[s.TagString=17543]="TagString",s[s.TagBinary=17541]="TagBinary",s[s.ContentEncodings=28032]="ContentEncodings",s[s.ContentEncoding=25152]="ContentEncoding",s[s.ContentEncodingOrder=20529]="ContentEncodingOrder",s[s.ContentEncodingScope=20530]="ContentEncodingScope",s[s.ContentCompression=20532]="ContentCompression",s[s.ContentCompAlgo=16980]="ContentCompAlgo",s[s.ContentCompSettings=16981]="ContentCompSettings",s[s.ContentEncryption=20533]="ContentEncryption";let p=[n.EBML,n.Segment],f=[n.SeekHead,n.Info,n.Cluster,n.Tracks,n.Cues,n.Attachments,n.Chapters,n.Tags],g=[...p,...f],k=e=>{if(e<256)return 1;if(e<65536)return 2;if(e<0x1000000)return 3;if(e<0x100000000)return 4;if(e<0x10000000000)return 5;else return 6},b=e=>{if(e<1n<<8n)return 1;if(e<1n<<16n)return 2;if(e<1n<<24n)return 3;if(e<1n<<32n)return 4;if(e<1n<<40n)return 5;else if(e<1n<<48n)return 6;else if(e<1n<<56n)return 7;else return 8},T=e=>{if(e>=-64&&e<64)return 1;if(e>=-8192&&e<8192)return 2;if(e>=-1048576&&e<1048576)return 3;if(e>=-0x8000000&&e<0x8000000)return 4;if(e>=-0x400000000&&e<0x400000000)return 5;else return 6},y=e=>{if(e<127)return 1;if(e<16383)return 2;if(e<2097151)return 3;if(e<0xfffffff)return 4;if(e<0x800000000-1)return 5;else if(e<0x40000000000-1)return 6;else throw Error("EBML varint size not supported "+e)};class S{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap,this.dataOffsets=new WeakMap}writeByte(e){this.helperView.setUint8(0,e),this.writer.write(this.helper.subarray(0,1))}writeFloat32(e){this.helperView.setFloat32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeFloat64(e){this.helperView.setFloat64(0,e,!1),this.writer.write(this.helper)}writeUnsignedInt(e,r=k(e)){let a=0;switch(r){case 6:this.helperView.setUint8(a++,e/0x10000000000|0);case 5:this.helperView.setUint8(a++,e/0x100000000|0);case 4:this.helperView.setUint8(a++,e>>24);case 3:this.helperView.setUint8(a++,e>>16);case 2:this.helperView.setUint8(a++,e>>8);case 1:this.helperView.setUint8(a++,e);break;default:throw Error("Bad unsigned int size "+r)}this.writer.write(this.helper.subarray(0,a))}writeUnsignedBigInt(e,r=b(e)){let a=0;for(let i=r-1;i>=0;i--)this.helperView.setUint8(a++,Number(e>>BigInt(8*i)&255n));this.writer.write(this.helper.subarray(0,a))}writeSignedInt(e,r=T(e)){e<0&&(e+=2**(8*r)),this.writeUnsignedInt(e,r)}writeVarInt(e,r=y(e)){let a=0;switch(r){case 1:this.helperView.setUint8(a++,128|e);break;case 2:this.helperView.setUint8(a++,64|e>>8),this.helperView.setUint8(a++,e);break;case 3:this.helperView.setUint8(a++,32|e>>16),this.helperView.setUint8(a++,e>>8),this.helperView.setUint8(a++,e);break;case 4:this.helperView.setUint8(a++,16|e>>24),this.helperView.setUint8(a++,e>>16),this.helperView.setUint8(a++,e>>8),this.helperView.setUint8(a++,e);break;case 5:this.helperView.setUint8(a++,8|e/0x100000000&7),this.helperView.setUint8(a++,e>>24),this.helperView.setUint8(a++,e>>16),this.helperView.setUint8(a++,e>>8),this.helperView.setUint8(a++,e);break;case 6:this.helperView.setUint8(a++,4|e/0x10000000000&3),this.helperView.setUint8(a++,e/0x100000000|0),this.helperView.setUint8(a++,e>>24),this.helperView.setUint8(a++,e>>16),this.helperView.setUint8(a++,e>>8),this.helperView.setUint8(a++,e);break;default:throw Error("Bad EBML varint size "+r)}this.writer.write(this.helper.subarray(0,a))}writeAsciiString(e){this.writer.write(new Uint8Array(e.split("").map(e=>e.charCodeAt(0))))}writeEBML(e){if(null!==e)if(e instanceof Uint8Array)this.writer.write(e);else if(Array.isArray(e))for(let r of e)this.writeEBML(r);else if(this.offsets.set(e,this.writer.getPos()),this.writeUnsignedInt(e.id),Array.isArray(e.data)){let r=this.writer.getPos(),a=-1===e.size?1:e.size??4;-1===e.size?this.writeByte(255):this.writer.seek(this.writer.getPos()+a);let i=this.writer.getPos();if(this.dataOffsets.set(e,i),this.writeEBML(e.data),-1!==e.size){let e=this.writer.getPos()-i,s=this.writer.getPos();this.writer.seek(r),this.writeVarInt(e,a),this.writer.seek(s)}}else if("number"==typeof e.data){let r=e.size??k(e.data);this.writeVarInt(r),this.writeUnsignedInt(e.data,r)}else if("bigint"==typeof e.data){let r=e.size??b(e.data);this.writeVarInt(r),this.writeUnsignedBigInt(e.data,r)}else if("string"==typeof e.data)this.writeVarInt(e.data.length),this.writeAsciiString(e.data);else if(e.data instanceof Uint8Array)this.writeVarInt(e.data.byteLength,e.size),this.writer.write(e.data);else if(e.data instanceof d)this.writeVarInt(4),this.writeFloat32(e.data.value);else if(e.data instanceof u)this.writeVarInt(8),this.writeFloat64(e.data.value);else if(e.data instanceof h){let r=e.size??T(e.data.value);this.writeVarInt(r),this.writeSignedInt(e.data.value,r)}else if(e.data instanceof m){let r=l.textEncoder.encode(e.data.value);this.writeVarInt(r.length),this.writer.write(r)}else(0,l.assertNever)(e.data)}}let w=8,I=2,x=16,E=e=>{let r=(0,c.readU8)(e);if(e.skip(-1),0===r)return null;let a=1,i=128;for(;(r&i)==0;)a++,i>>=1;return a},P=e=>{let r=(0,c.readU8)(e);if(0===r)return null;let a=1,i=128;for(;(r&i)==0;)a++,i>>=1;let s=r&i-1;for(let r=1;r<a;r++)s*=256,s+=(0,c.readU8)(e);return s},C=(e,r)=>{if(r<1||r>8)throw Error("Bad unsigned int size "+r);let a=0;for(let i=0;i<r;i++)a*=256,a+=(0,c.readU8)(e);return a},B=(e,r)=>{if(r<1)throw Error("Bad unsigned int size "+r);let a=0n;for(let i=0;i<r;i++)a<<=8n,a+=BigInt((0,c.readU8)(e));return a},_=(e,r)=>{let a=C(e,r);return a&1<<8*r-1&&(a-=2**(8*r)),a},A=e=>{let r=E(e);return null===r?null:C(e,r)},D=e=>{let r=(0,c.readU8)(e);return 255===r?r=null:(e.skip(-1),0x100000000000000===(r=P(e))&&(r=null)),r},M=e=>{let r=A(e);return null===r?null:{id:r,size:D(e)}},F=(e,r)=>{let a=(0,c.readBytes)(e,r),i=0;for(;i<r&&0!==a[i];)i+=1;return String.fromCharCode(...a.subarray(0,i))},R=(e,r)=>{let a=(0,c.readBytes)(e,r),i=0;for(;i<r&&0!==a[i];)i+=1;return l.textDecoder.decode(a.subarray(0,i))},U=(e,r)=>{if(0===r)return 0;if(4!==r&&8!==r)throw Error("Bad float size "+r);return 4===r?(0,c.readF32Be)(e):(0,c.readF64Be)(e)},L=async(e,r,a,i)=>{let s=new Set(a),n=r;for(;null===i||n<i;){let r=e.requestSliceRange(n,I,x);if(r instanceof Promise&&(r=await r),!r)break;let a=M(r);if(!a)break;if(s.has(a.id))return{pos:n,found:!0};j(a.size),n=r.filePos+a.size}return{pos:null!==i&&i>n?i:n,found:!1}},O=async(e,r,a,i)=>{let s=new Set(a),n=r;for(;n<i;){let r=e.requestSliceRange(n,0,Math.min(65536,i-n));if(r instanceof Promise&&(r=await r),!r||r.length<w)break;for(let e=0;e<r.length-w;e++){r.filePos=n;let e=A(r);if(null!==e&&s.has(e))return n;n++}}return null},N={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function j(e){if(null===e)throw Error("Undefined element size is used in a place where it is not supported.")}},{"../misc.js":"dpOkn","../reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],fOHz2:[function(e,r,a,i){var s,n,o,l,c,d,u=e("@parcel/transformer-js/src/esmodule-helpers.js");u.defineInteropFlag(a),u.export(a,"MatroskaDemuxer",()=>I);var h=e("../codec-data.js"),m=e("../codec.js"),p=e("../demuxer.js"),f=e("../input-track.js"),g=e("../metadata.js"),k=e("../misc.js"),b=e("../packet.js"),T=e("./ebml.js"),y=e("./matroska-misc.js"),S=e("../reader.js");(s=l||(l={}))[s.None=0]="None",s[s.Xiph=1]="Xiph",s[s.FixedSize=2]="FixedSize",s[s.Ebml=3]="Ebml",(n=c||(c={}))[n.Block=1]="Block",n[n.Private=2]="Private",n[n.Next=4]="Next",(o=d||(d={}))[o.Zlib=0]="Zlib",o[o.Bzlib=1]="Bzlib",o[o.lzo1x=2]="lzo1x",o[o.HeaderStripping=3]="HeaderStripping";let w=[{id:T.EBMLId.SeekHead,flag:"seekHeadSeen"},{id:T.EBMLId.Info,flag:"infoSeen"},{id:T.EBMLId.Tracks,flag:"tracksSeen"},{id:T.EBMLId.Cues,flag:"cuesSeen"}];class I extends p.Demuxer{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentBlockAdditional=null,this.currentCueTime=null,this.currentDecodingInstruction=null,this.currentTagTargetIsMovie=!0,this.currentSimpleTagName=null,this.currentAttachedFile=null,this.isWebM=!1,this.reader=e._reader}async computeDuration(){let e=await this.getTracks();return Math.max(0,...await Promise.all(e.map(e=>e.computeDuration())))}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(e=>e.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),r=await Promise.all(e.map(e=>e.getCodecParameterString()));return(0,y.buildMatroskaMimeType)({isWebM:this.isWebM,hasVideo:this.segments.some(e=>e.tracks.some(e=>e.info?.type==="video")),hasAudio:this.segments.some(e=>e.tracks.some(e=>e.info?.type==="audio")),codecStrings:r.filter(Boolean)})}async getMetadataTags(){for(let e of(await this.readMetadata(),this.segments))e.metadataTagsCollected||(null!==this.reader.fileSize&&await this.loadSegmentMetadata(e),e.metadataTagsCollected=!0);let e={};for(let r of this.segments)e={...e,...r.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let r=this.reader.requestSliceRange(e,T.MIN_HEADER_SIZE,T.MAX_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)break;let a=(0,T.readElementHeader)(r);if(!a)break;let i=a.id,s=a.size,n=r.filePos;if(i===T.EBMLId.EBML){(0,T.assertDefinedSize)(s);let e=this.reader.requestSlice(n,s);if(e instanceof Promise&&(e=await e),!e)break;this.readContiguousElements(e)}else if(i===T.EBMLId.Segment){if(await this.readSegment(n,s),null===s||null===this.reader.fileSize)break}else if(i===T.EBMLId.Cluster){if(null===this.reader.fileSize)break;null===s&&(s=(await (0,T.searchForNextElementId)(this.reader,n,T.LEVEL_0_AND_1_EBML_IDS,this.reader.fileSize)).pos-n);let e=(0,k.last)(this.segments);e&&(e.elementEndPos=n+s)}(0,T.assertDefinedSize)(s),e=n+s}})()}async readSegment(e,r){this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,tagsSeen:!1,attachmentsSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:e,elementEndPos:null===r?null:e+r,clusterSeekStartPos:e,lastReadCluster:null,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let a=e;for(;null===this.currentSegment.elementEndPos||a<this.currentSegment.elementEndPos;){let e=this.reader.requestSliceRange(a,T.MIN_HEADER_SIZE,T.MAX_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e)break;let r=a,i=(0,T.readElementHeader)(e);if(!i||!T.LEVEL_1_EBML_IDS.includes(i.id)&&i.id!==T.EBMLId.Void){let e=await (0,T.resync)(this.reader,r,T.LEVEL_1_EBML_IDS,Math.min(this.currentSegment.elementEndPos??1/0,r+0xa00000));if(e){a=e;continue}break}let{id:s,size:n}=i,o=e.filePos,l=w.findIndex(e=>e.id===s);if(-1!==l){let e=w[l].flag;this.currentSegment[e]=!0,(0,T.assertDefinedSize)(n);let r=this.reader.requestSlice(o,n);r instanceof Promise&&(r=await r),r&&this.readContiguousElements(r)}else if(s===T.EBMLId.Tags||s===T.EBMLId.Attachments){s===T.EBMLId.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,(0,T.assertDefinedSize)(n);let e=this.reader.requestSlice(o,n);e instanceof Promise&&(e=await e),e&&this.readContiguousElements(e)}else if(s===T.EBMLId.Cluster){this.currentSegment.clusterSeekStartPos=r;break}if(null===n)break;a=o+n}if(this.currentSegment.seekEntries.sort((e,r)=>e.segmentPosition-r.segmentPosition),null!==this.reader.fileSize)for(let r of this.currentSegment.seekEntries){let a=w.find(e=>e.id===r.id);if(!a||this.currentSegment[a.flag])continue;let i=this.reader.requestSliceRange(e+r.segmentPosition,T.MIN_HEADER_SIZE,T.MAX_HEADER_SIZE);if(i instanceof Promise&&(i=await i),!i)continue;let s=(0,T.readElementHeader)(i);if(!s)continue;let{id:n,size:o}=s;if(n!==a.id)continue;(0,T.assertDefinedSize)(o),this.currentSegment[a.flag]=!0;let l=this.reader.requestSlice(i.filePos,o);l instanceof Promise&&(l=await l),l&&this.readContiguousElements(l)}-1===this.currentSegment.timestampScale&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e3),this.currentSegment.tracks.sort((e,r)=>Number(r.disposition.default)-Number(e.disposition.default));let i=new Map(this.currentSegment.tracks.map(e=>[e.id,e]));for(let e of this.currentSegment.cuePoints){let r=i.get(e.trackId);r&&r.cuePoints.push(e)}for(let e of this.currentSegment.tracks){e.cuePoints.sort((e,r)=>e.time-r.time);for(let r=0;r<e.cuePoints.length-1;r++){let a=e.cuePoints[r],i=e.cuePoints[r+1];a.time===i.time&&(e.cuePoints.splice(r+1,1),r--)}}let s=null,n=-1/0;for(let e of this.currentSegment.tracks)e.cuePoints.length>n&&(n=e.cuePoints.length,s=e);for(let e of this.currentSegment.tracks)0===e.cuePoints.length&&(e.cuePoints=s.cuePoints);this.currentSegment=null}async readCluster(e,r){if(r.lastReadCluster?.elementStartPos===e)return r.lastReadCluster;let a=this.reader.requestSliceRange(e,T.MIN_HEADER_SIZE,T.MAX_HEADER_SIZE);a instanceof Promise&&(a=await a),(0,k.assert)(a);let i=(0,T.readElementHeader)(a);(0,k.assert)(i);let s=i.id;(0,k.assert)(s===T.EBMLId.Cluster);let n=i.size,o=a.filePos;null===n&&(n=(await (0,T.searchForNextElementId)(this.reader,o,T.LEVEL_0_AND_1_EBML_IDS,r.elementEndPos)).pos-o);let c=this.reader.requestSlice(o,n);c instanceof Promise&&(c=await c);let d={segment:r,elementStartPos:e,elementEndPos:o+n,dataStartPos:o,timestamp:-1,trackData:new Map};for(let[,r]of(this.currentCluster=d,c&&(d.elementEndPos=this.readContiguousElements(c,T.LEVEL_0_AND_1_EBML_IDS)),d.trackData)){let a=r.track;(0,k.assert)(r.blocks.length>0);let i=!1;for(let e=0;e<r.blocks.length;e++){let a=r.blocks[e];a.timestamp+=d.timestamp,i||=a.lacing!==l.None}r.presentationTimestamps=r.blocks.map((e,r)=>({timestamp:e.timestamp,blockIndex:r})).sort((e,r)=>e.timestamp-r.timestamp);for(let e=0;e<r.presentationTimestamps.length;e++){let i=r.presentationTimestamps[e],s=r.blocks[i.blockIndex];null===r.firstKeyFrameTimestamp&&s.isKeyFrame&&(r.firstKeyFrameTimestamp=s.timestamp),e<r.presentationTimestamps.length-1?s.duration=r.presentationTimestamps[e+1].timestamp-s.timestamp:0===s.duration&&null!=a.defaultDuration&&s.lacing===l.None&&(s.duration=a.defaultDuration)}i&&(this.expandLacedBlocks(r.blocks,a),r.presentationTimestamps=r.blocks.map((e,r)=>({timestamp:e.timestamp,blockIndex:r})).sort((e,r)=>e.timestamp-r.timestamp));let s=r.blocks[r.presentationTimestamps[0].blockIndex],n=r.blocks[(0,k.last)(r.presentationTimestamps).blockIndex];r.startTimestamp=s.timestamp,r.endTimestamp=n.timestamp+n.duration;let o=(0,k.binarySearchLessOrEqual)(a.clusterPositionCache,r.startTimestamp,e=>e.startTimestamp);(-1===o||a.clusterPositionCache[o].elementStartPos!==e)&&a.clusterPositionCache.splice(o+1,0,{elementStartPos:d.elementStartPos,startTimestamp:r.startTimestamp})}return r.lastReadCluster=d,d}getTrackDataInCluster(e,r){let a=e.trackData.get(r);if(!a){let i=e.segment.tracks.find(e=>e.id===r);if(!i)return null;a={track:i,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(r,a)}return a}expandLacedBlocks(e,r){for(let a=0;a<e.length;a++){let i=e[a];if(i.lacing===l.None)continue;i.decoded||(i.data=this.decodeBlockData(r,i.data),i.decoded=!0);let s=S.FileSlice.tempFromBytes(i.data),n=[],o=(0,S.readU8)(s)+1;switch(i.lacing){case l.Xiph:{let e=0;for(let r=0;r<o-1;r++){let r=0;for(;s.bufferPos<s.length;){let a=(0,S.readU8)(s);if(r+=a,a<255){n.push(r),e+=r;break}}}n.push(s.length-(s.bufferPos+e))}break;case l.FixedSize:{let e=Math.floor((s.length-1)/o);for(let r=0;r<o;r++)n.push(e)}break;case l.Ebml:{let e=(0,T.readVarInt)(s);(0,k.assert)(null!==e);let r=e;n.push(r);let a=r;for(let e=1;e<o-1;e++){let e=s.bufferPos,i=(0,T.readVarInt)(s);(0,k.assert)(null!==i),r+=i-((1<<7*(s.bufferPos-e)-1)-1),n.push(r),a+=r}n.push(s.length-(s.bufferPos+a))}break;default:(0,k.assert)(!1)}(0,k.assert)(n.length===o),e.splice(a,1);let c=i.duration||o*(r.defaultDuration??0);for(let r=0;r<o;r++){let d=n[r],u=(0,S.readBytes)(s,d),h=i.timestamp+c*r/o,m=c/o;e.splice(a+r,0,{timestamp:h,duration:m,isKeyFrame:i.isKeyFrame,data:u,lacing:l.None,decoded:!0,mainAdditional:i.mainAdditional})}a+=o,a--}}async loadSegmentMetadata(e){for(let r of e.seekEntries){if((r.id!==T.EBMLId.Tags||e.tagsSeen)&&(r.id!==T.EBMLId.Attachments||e.attachmentsSeen))continue;let a=this.reader.requestSliceRange(e.dataStartPos+r.segmentPosition,T.MIN_HEADER_SIZE,T.MAX_HEADER_SIZE);if(a instanceof Promise&&(a=await a),!a)continue;let i=(0,T.readElementHeader)(a);if(!i||i.id!==r.id)continue;let{size:s}=i;(0,T.assertDefinedSize)(s),(0,k.assert)(!this.currentSegment),this.currentSegment=e;let n=this.reader.requestSlice(a.filePos,s);n instanceof Promise&&(n=await n),n&&this.readContiguousElements(n),this.currentSegment=null,r.id===T.EBMLId.Tags?e.tagsSeen=!0:r.id===T.EBMLId.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e,r){let a=e.filePos;for(;e.filePos-a<=e.length-T.MIN_HEADER_SIZE;){let a=e.filePos;if(!this.traverseElement(e,r))return a}return e.filePos}traverseElement(e,r){let a=(0,T.readElementHeader)(e);if(!a||r&&r.includes(a.id))return!1;let{id:i,size:s}=a,n=e.filePos;switch((0,T.assertDefinedSize)(s),i){case T.EBMLId.DocType:this.isWebM="webm"===(0,T.readAsciiString)(e,s);break;case T.EBMLId.Seek:{if(!this.currentSegment)break;let r={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(r),this.readContiguousElements(e.slice(n,s)),(-1===r.id||-1===r.segmentPosition)&&this.currentSegment.seekEntries.pop()}break;case T.EBMLId.SeekID:{let r=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!r)break;r.id=(0,T.readUnsignedInt)(e,s)}break;case T.EBMLId.SeekPosition:{let r=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!r)break;r.segmentPosition=(0,T.readUnsignedInt)(e,s)}break;case T.EBMLId.TimestampScale:if(!this.currentSegment)break;this.currentSegment.timestampScale=(0,T.readUnsignedInt)(e,s),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale;break;case T.EBMLId.Duration:if(!this.currentSegment)break;this.currentSegment.duration=(0,T.readFloat)(e,s);break;case T.EBMLId.TrackEntry:if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...g.DEFAULT_TRACK_DISPOSITION},inputTrack:null,codecId:null,codecPrivate:null,defaultDuration:null,name:null,languageCode:k.UNDETERMINED_LANGUAGE,decodingInstructions:[],info:null},this.readContiguousElements(e.slice(n,s)),this.currentTrack.decodingInstructions.some(e=>e.data?.type!=="decompress"||e.scope!==c.Block||e.data.algorithm!==d.HeaderStripping)&&(console.warn(`Track #${this.currentTrack.id} has an unsupported content encoding; dropping.`),this.currentTrack=null),this.currentTrack&&-1!==this.currentTrack.id&&this.currentTrack.codecId&&this.currentTrack.info){let e=this.currentTrack.codecId.indexOf("/"),r=-1===e?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,e);if("video"===this.currentTrack.info.type&&-1!==this.currentTrack.info.width&&-1!==this.currentTrack.info.height){this.currentTrack.codecId===T.CODEC_STRING_MAP.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===T.CODEC_STRING_MAP.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):r===T.CODEC_STRING_MAP.vp8?this.currentTrack.info.codec="vp8":r===T.CODEC_STRING_MAP.vp9?this.currentTrack.info.codec="vp9":r===T.CODEC_STRING_MAP.av1&&(this.currentTrack.info.codec="av1");let e=this.currentTrack,a=new(0,f.InputVideoTrack)(this.input,new E(e));this.currentTrack.inputTrack=a,this.currentSegment.tracks.push(this.currentTrack)}else if("audio"===this.currentTrack.info.type&&-1!==this.currentTrack.info.numberOfChannels&&-1!==this.currentTrack.info.sampleRate){r===T.CODEC_STRING_MAP.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===T.CODEC_STRING_MAP.mp3?this.currentTrack.info.codec="mp3":r===T.CODEC_STRING_MAP.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate,this.currentTrack.info.sampleRate=m.OPUS_SAMPLE_RATE):r===T.CODEC_STRING_MAP.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):r===T.CODEC_STRING_MAP.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):"A_PCM/INT/LIT"===this.currentTrack.codecId?8===this.currentTrack.info.bitDepth?this.currentTrack.info.codec="pcm-u8":16===this.currentTrack.info.bitDepth?this.currentTrack.info.codec="pcm-s16":24===this.currentTrack.info.bitDepth?this.currentTrack.info.codec="pcm-s24":32===this.currentTrack.info.bitDepth&&(this.currentTrack.info.codec="pcm-s32"):"A_PCM/INT/BIG"===this.currentTrack.codecId?8===this.currentTrack.info.bitDepth?this.currentTrack.info.codec="pcm-u8":16===this.currentTrack.info.bitDepth?this.currentTrack.info.codec="pcm-s16be":24===this.currentTrack.info.bitDepth?this.currentTrack.info.codec="pcm-s24be":32===this.currentTrack.info.bitDepth&&(this.currentTrack.info.codec="pcm-s32be"):"A_PCM/FLOAT/IEEE"===this.currentTrack.codecId&&(32===this.currentTrack.info.bitDepth?this.currentTrack.info.codec="pcm-f32":64===this.currentTrack.info.bitDepth&&(this.currentTrack.info.codec="pcm-f64"));let e=this.currentTrack,a=new(0,f.InputAudioTrack)(this.input,new P(e));this.currentTrack.inputTrack=a,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null;break;case T.EBMLId.TrackNumber:if(!this.currentTrack)break;this.currentTrack.id=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.TrackType:{if(!this.currentTrack)break;let r=(0,T.readUnsignedInt)(e,s);1===r?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null,alphaMode:!1}:2===r&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case T.EBMLId.FlagEnabled:if(!this.currentTrack)break;(0,T.readUnsignedInt)(e,s)||(this.currentSegment.tracks.pop(),this.currentTrack=null);break;case T.EBMLId.FlagDefault:if(!this.currentTrack)break;this.currentTrack.disposition.default=!!(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.FlagForced:if(!this.currentTrack)break;this.currentTrack.disposition.forced=!!(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.FlagOriginal:if(!this.currentTrack)break;this.currentTrack.disposition.original=!!(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.FlagHearingImpaired:if(!this.currentTrack)break;this.currentTrack.disposition.hearingImpaired=!!(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.FlagVisualImpaired:if(!this.currentTrack)break;this.currentTrack.disposition.visuallyImpaired=!!(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.FlagCommentary:if(!this.currentTrack)break;this.currentTrack.disposition.commentary=!!(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.CodecID:if(!this.currentTrack)break;this.currentTrack.codecId=(0,T.readAsciiString)(e,s);break;case T.EBMLId.CodecPrivate:if(!this.currentTrack)break;this.currentTrack.codecPrivate=(0,S.readBytes)(e,s);break;case T.EBMLId.DefaultDuration:if(!this.currentTrack)break;this.currentTrack.defaultDuration=this.currentTrack.segment.timestampFactor*(0,T.readUnsignedInt)(e,s)/1e9;break;case T.EBMLId.Name:if(!this.currentTrack)break;this.currentTrack.name=(0,T.readUnicodeString)(e,s);break;case T.EBMLId.Language:if(!this.currentTrack||this.currentTrack.languageCode!==k.UNDETERMINED_LANGUAGE)break;this.currentTrack.languageCode=(0,T.readAsciiString)(e,s),(0,k.isIso639Dash2LanguageCode)(this.currentTrack.languageCode)||(this.currentTrack.languageCode=k.UNDETERMINED_LANGUAGE);break;case T.EBMLId.LanguageBCP47:{if(!this.currentTrack)break;let r=(0,T.readAsciiString)(e,s).split("-")[0];r?this.currentTrack.languageCode=r:this.currentTrack.languageCode=k.UNDETERMINED_LANGUAGE}break;case T.EBMLId.Video:if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.PixelWidth:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.PixelHeight:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.AlphaMode:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.alphaMode=1===(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.Colour:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let r=(0,T.readUnsignedInt)(e,s),a=k.MATRIX_COEFFICIENTS_MAP_INVERSE[r]??null;this.currentTrack.info.colorSpace.matrix=a}break;case T.EBMLId.Range:if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=2===(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let r=(0,T.readUnsignedInt)(e,s),a=k.TRANSFER_CHARACTERISTICS_MAP_INVERSE[r]??null;this.currentTrack.info.colorSpace.transfer=a}break;case T.EBMLId.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let r=(0,T.readUnsignedInt)(e,s),a=k.COLOR_PRIMARIES_MAP_INVERSE[r]??null;this.currentTrack.info.colorSpace.primaries=a}break;case T.EBMLId.Projection:if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let r=(0,T.readFloat)(e,s);try{this.currentTrack.info.rotation=(0,k.normalizeRotation)(-r)}catch{}}break;case T.EBMLId.Audio:if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.SamplingFrequency:if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=(0,T.readFloat)(e,s);break;case T.EBMLId.Channels:if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.BitDepth:if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.CuePoint:if(!this.currentSegment)break;this.readContiguousElements(e.slice(n,s)),this.currentCueTime=null;break;case T.EBMLId.CueTime:this.currentCueTime=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.CueTrackPositions:{if(null===this.currentCueTime)break;(0,k.assert)(this.currentSegment);let r={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(r),this.readContiguousElements(e.slice(n,s)),(-1===r.trackId||-1===r.clusterPosition)&&this.currentSegment.cuePoints.pop()}break;case T.EBMLId.CueTrack:{let r=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!r)break;r.trackId=(0,T.readUnsignedInt)(e,s)}break;case T.EBMLId.CueClusterPosition:{let r=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!r)break;(0,k.assert)(this.currentSegment),r.clusterPosition=this.currentSegment.dataStartPos+(0,T.readUnsignedInt)(e,s)}break;case T.EBMLId.Timestamp:if(!this.currentCluster)break;this.currentCluster.timestamp=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.SimpleBlock:{if(!this.currentCluster)break;let r=(0,T.readVarInt)(e);if(null===r)break;let a=this.getTrackDataInCluster(this.currentCluster,r);if(!a)break;let i=(0,S.readI16Be)(e),o=(0,S.readU8)(e),l=!!(128&o);a.track.info?.type==="audio"&&a.track.info.codec&&(l=!0);let c=(0,S.readBytes)(e,s-(e.filePos-n)),d=a.track.decodingInstructions.length>0;a.blocks.push({timestamp:i,duration:0,isKeyFrame:l,data:c,lacing:o>>1&3,decoded:!d,mainAdditional:null})}break;case T.EBMLId.BlockGroup:if(!this.currentCluster)break;this.readContiguousElements(e.slice(n,s)),this.currentBlock=null;break;case T.EBMLId.Block:{if(!this.currentCluster)break;let r=(0,T.readVarInt)(e);if(null===r)break;let a=this.getTrackDataInCluster(this.currentCluster,r);if(!a)break;let i=(0,S.readI16Be)(e),o=(0,S.readU8)(e),l=(0,S.readBytes)(e,s-(e.filePos-n)),c=a.track.decodingInstructions.length>0;this.currentBlock={timestamp:i,duration:0,isKeyFrame:!0,data:l,lacing:o>>1&3,decoded:!c,mainAdditional:null},a.blocks.push(this.currentBlock)}break;case T.EBMLId.BlockAdditions:this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.BlockMore:if(!this.currentBlock)break;this.currentBlockAdditional={addId:1,data:null},this.readContiguousElements(e.slice(n,s)),this.currentBlockAdditional.data&&1===this.currentBlockAdditional.addId&&(this.currentBlock.mainAdditional=this.currentBlockAdditional.data),this.currentBlockAdditional=null;break;case T.EBMLId.BlockAdditional:if(!this.currentBlockAdditional)break;this.currentBlockAdditional.data=(0,S.readBytes)(e,s);break;case T.EBMLId.BlockAddID:if(!this.currentBlockAdditional)break;this.currentBlockAdditional.addId=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.BlockDuration:if(!this.currentBlock)break;this.currentBlock.duration=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.ReferenceBlock:if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;break;case T.EBMLId.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.Targets:this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.TargetTypeValue:50!==(0,T.readUnsignedInt)(e,s)&&(this.currentTagTargetIsMovie=!1);break;case T.EBMLId.TagTrackUID:case T.EBMLId.TagEditionUID:case T.EBMLId.TagChapterUID:case T.EBMLId.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case T.EBMLId.SimpleTag:if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.TagName:this.currentSimpleTagName=(0,T.readUnicodeString)(e,s);break;case T.EBMLId.TagString:{if(!this.currentSimpleTagName)break;let r=(0,T.readUnicodeString)(e,s);this.processTagValue(this.currentSimpleTagName,r)}break;case T.EBMLId.TagBinary:{if(!this.currentSimpleTagName)break;let r=(0,S.readBytes)(e,s);this.processTagValue(this.currentSimpleTagName,r)}break;case T.EBMLId.AttachedFile:{if(!this.currentSegment)break;this.currentAttachedFile={fileUid:null,fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(n,s));let r=this.currentSegment.metadataTags;if(this.currentAttachedFile.fileUid&&this.currentAttachedFile.fileData&&(r.raw??={},r.raw[this.currentAttachedFile.fileUid.toString()]=new(0,g.AttachedFile)(this.currentAttachedFile.fileData,this.currentAttachedFile.fileMediaType??void 0,this.currentAttachedFile.fileName??void 0,this.currentAttachedFile.fileDescription??void 0)),this.currentAttachedFile.fileMediaType?.startsWith("image/")&&this.currentAttachedFile.fileData){let e=this.currentAttachedFile.fileName,a="unknown";if(e){let r=e.toLowerCase();r.startsWith("cover.")?a="coverFront":r.startsWith("back.")&&(a="coverBack")}r.images??=[],r.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:a,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case T.EBMLId.FileUID:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileUid=(0,T.readUnsignedBigInt)(e,s);break;case T.EBMLId.FileName:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=(0,T.readUnicodeString)(e,s);break;case T.EBMLId.FileMediaType:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=(0,T.readAsciiString)(e,s);break;case T.EBMLId.FileData:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=(0,S.readBytes)(e,s);break;case T.EBMLId.FileDescription:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=(0,T.readUnicodeString)(e,s);break;case T.EBMLId.ContentEncodings:if(!this.currentTrack)break;this.readContiguousElements(e.slice(n,s)),this.currentTrack.decodingInstructions.sort((e,r)=>r.order-e.order);break;case T.EBMLId.ContentEncoding:this.currentDecodingInstruction={order:0,scope:c.Block,data:null},this.readContiguousElements(e.slice(n,s)),this.currentDecodingInstruction.data&&this.currentTrack.decodingInstructions.push(this.currentDecodingInstruction),this.currentDecodingInstruction=null;break;case T.EBMLId.ContentEncodingOrder:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.order=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.ContentEncodingScope:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.scope=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.ContentCompression:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decompress",algorithm:d.Zlib,settings:null},this.readContiguousElements(e.slice(n,s));break;case T.EBMLId.ContentCompAlgo:if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.algorithm=(0,T.readUnsignedInt)(e,s);break;case T.EBMLId.ContentCompSettings:if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.settings=(0,S.readBytes)(e,s);break;case T.EBMLId.ContentEncryption:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decrypt"}}return e.filePos=n+s,!0}decodeBlockData(e,r){(0,k.assert)(e.decodingInstructions.length>0);let a=r;for(let r of e.decodingInstructions)if((0,k.assert)(r.data),"decompress"===r.data.type&&r.data.algorithm===d.HeaderStripping&&r.data.settings&&r.data.settings.length>0){let e=r.data.settings,i=new Uint8Array(e.length+a.length);i.set(e,0),i.set(a,e.length),a=i}return a}processTagValue(e,r){if(!this.currentSegment?.metadataTags)return;let a=this.currentSegment.metadataTags;if(a.raw??={},a.raw[e]??=r,"string"==typeof r)switch(e.toLowerCase()){case"title":a.title??=r;break;case"description":a.description??=r;break;case"artist":a.artist??=r;break;case"album":a.album??=r;break;case"album_artist":a.albumArtist??=r;break;case"genre":a.genre??=r;break;case"comment":a.comment??=r;break;case"lyrics":a.lyrics??=r;break;case"date":{let e=new Date(r);Number.isNaN(e.getTime())||(a.date??=e)}break;case"track_number":case"part_number":{let e=r.split("/"),i=Number.parseInt(e[0],10),s=e[1]&&Number.parseInt(e[1],10);Number.isInteger(i)&&i>0&&(a.trackNumber??=i),s&&Number.isInteger(s)&&s>0&&(a.tracksTotal??=s)}break;case"disc_number":case"disc":{let e=r.split("/"),i=Number.parseInt(e[0],10),s=e[1]&&Number.parseInt(e[1],10);Number.isInteger(i)&&i>0&&(a.discNumber??=i),s&&Number.isInteger(s)&&s>0&&(a.discsTotal??=s)}}}}class x{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.codecId}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){let e=await this.getFirstPacket({metadataOnly:!0});return e?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}getDisposition(){return this.internalTrack.disposition}async getFirstPacket(e){return this.performClusterLookup(null,e=>e.trackData.get(this.internalTrack.id)?{blockIndex:0,correctBlockFound:!0}:{blockIndex:-1,correctBlockFound:!1},-1/0,1/0,e)}intoTimescale(e){return(0,k.roundIfAlmostInteger)(e*this.internalTrack.segment.timestampFactor)}async getPacket(e,r){let a=this.intoTimescale(e);return this.performClusterLookup(null,e=>{let r=e.trackData.get(this.internalTrack.id);if(!r)return{blockIndex:-1,correctBlockFound:!1};let i=(0,k.binarySearchLessOrEqual)(r.presentationTimestamps,a,e=>e.timestamp);return{blockIndex:-1!==i?r.presentationTimestamps[i].blockIndex:-1,correctBlockFound:-1!==i&&a<r.endTimestamp}},a,a,r)}async getNextPacket(e,r){let a=this.packetToClusterLocation.get(e);if(void 0===a)throw Error("Packet was not created from this track.");return this.performClusterLookup(a.cluster,e=>{if(e===a.cluster){let r=e.trackData.get(this.internalTrack.id);if(a.blockIndex+1<r.blocks.length)return{blockIndex:a.blockIndex+1,correctBlockFound:!0}}else if(e.trackData.get(this.internalTrack.id))return{blockIndex:0,correctBlockFound:!0};return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,r)}async getKeyPacket(e,r){let a=this.intoTimescale(e);return this.performClusterLookup(null,e=>{let r=e.trackData.get(this.internalTrack.id);if(!r)return{blockIndex:-1,correctBlockFound:!1};let i=(0,k.findLastIndex)(r.presentationTimestamps,e=>r.blocks[e.blockIndex].isKeyFrame&&e.timestamp<=a);return{blockIndex:-1!==i?r.presentationTimestamps[i].blockIndex:-1,correctBlockFound:-1!==i&&a<r.endTimestamp}},a,a,r)}async getNextKeyPacket(e,r){let a=this.packetToClusterLocation.get(e);if(void 0===a)throw Error("Packet was not created from this track.");return this.performClusterLookup(a.cluster,e=>{if(e===a.cluster){let r=e.trackData.get(this.internalTrack.id).blocks.findIndex((e,r)=>e.isKeyFrame&&r>a.blockIndex);if(-1!==r)return{blockIndex:r,correctBlockFound:!0}}else{let r=e.trackData.get(this.internalTrack.id);if(r&&null!==r.firstKeyFrameTimestamp){let e=r.blocks.findIndex(e=>e.isKeyFrame);return(0,k.assert)(-1!==e),{blockIndex:e,correctBlockFound:!0}}}return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,r)}async fetchPacketInCluster(e,r,a){if(-1===r)return null;let i=e.trackData.get(this.internalTrack.id).blocks[r];(0,k.assert)(i),i.decoded||(i.data=this.internalTrack.demuxer.decodeBlockData(this.internalTrack,i.data),i.decoded=!0);let s=a.metadataOnly?b.PLACEHOLDER_DATA:i.data,n=i.timestamp/this.internalTrack.segment.timestampFactor,o=i.duration/this.internalTrack.segment.timestampFactor,l={};i.mainAdditional&&this.internalTrack.info?.type==="video"&&this.internalTrack.info.alphaMode&&(l.alpha=a.metadataOnly?b.PLACEHOLDER_DATA:i.mainAdditional,l.alphaByteLength=i.mainAdditional.byteLength);let c=new(0,b.EncodedPacket)(s,i.isKeyFrame?"key":"delta",n,o,e.dataStartPos+r,i.data.byteLength,l);return this.packetToClusterLocation.set(c,{cluster:e,blockIndex:r}),c}async performClusterLookup(e,r,a,i,s){let n,{demuxer:o,segment:l}=this.internalTrack,c=null,d=null,u=-1;if(e){let{blockIndex:a,correctBlockFound:i}=r(e);if(i)return this.fetchPacketInCluster(e,a,s);-1!==a&&(d=e,u=a)}let h=(0,k.binarySearchLessOrEqual)(this.internalTrack.cuePoints,a,e=>e.time),m=-1!==h?this.internalTrack.cuePoints[h]:null,p=(0,k.binarySearchLessOrEqual)(this.internalTrack.clusterPositionCache,a,e=>e.startTimestamp),f=-1!==p?this.internalTrack.clusterPositionCache[p]:null,g=Math.max(m?.clusterPosition??0,f?.elementStartPos??0)||null;for(e?null===g||e.elementStartPos>=g?(n=e.elementEndPos,c=e):n=g:n=g??l.clusterSeekStartPos;null===l.elementEndPos||n<=l.elementEndPos-T.MIN_HEADER_SIZE;){if(c){let e=c.trackData.get(this.internalTrack.id);if(e&&e.startTimestamp>i)break}let e=o.reader.requestSliceRange(n,T.MIN_HEADER_SIZE,T.MAX_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e)break;let a=n,h=(0,T.readElementHeader)(e);if(!h||!T.LEVEL_1_EBML_IDS.includes(h.id)&&h.id!==T.EBMLId.Void){let e=await (0,T.resync)(o.reader,a,T.LEVEL_1_EBML_IDS,Math.min(l.elementEndPos??1/0,a+0xa00000));if(e){n=e;continue}break}let m=h.id,p=h.size,f=e.filePos;if(m===T.EBMLId.Cluster){p=(c=await o.readCluster(a,l)).elementEndPos-f;let{blockIndex:e,correctBlockFound:i}=r(c);if(i)return this.fetchPacketInCluster(c,e,s);-1!==e&&(d=c,u=e)}null===p&&((0,k.assert)(m!==T.EBMLId.Cluster),p=(await (0,T.searchForNextElementId)(o.reader,f,T.LEVEL_0_AND_1_EBML_IDS,l.elementEndPos)).pos-f);let g=f+p;if(null===l.elementEndPos){let e=o.reader.requestSliceRange(g,T.MIN_HEADER_SIZE,T.MAX_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e)break;if((0,T.readElementId)(e)===T.EBMLId.Segment){l.elementEndPos=g;break}}n=g}if(m&&(!d||d.elementStartPos<m.clusterPosition)){let e=this.internalTrack.cuePoints[h-1];(0,k.assert)(!e||e.time<m.time);let a=e?.time??-1/0;return this.performClusterLookup(null,r,a,i,s)}return d?this.fetchPacketInCluster(d,u,s):null}}class E extends x{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async canBeTransparent(){return this.internalTrack.info.alphaMode}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return"vp9"!==this.internalTrack.info.codec&&"av1"!==this.internalTrack.info.codec&&("avc"!==this.internalTrack.info.codec||this.internalTrack.info.codecDescription)&&("hevc"!==this.internalTrack.info.codec||this.internalTrack.info.codecDescription)||(e=await this.getFirstPacket({})),{codec:(0,m.extractVideoCodecString)({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcType:1,avcCodecInfo:"avc"===this.internalTrack.info.codec&&e?(0,h.extractAvcDecoderConfigurationRecord)(e.data):null,hevcCodecInfo:"hevc"===this.internalTrack.info.codec&&e?(0,h.extractHevcDecoderConfigurationRecord)(e.data):null,vp9CodecInfo:"vp9"===this.internalTrack.info.codec&&e?(0,h.extractVp9CodecInfoFromPacket)(e.data):null,av1CodecInfo:"av1"===this.internalTrack.info.codec&&e?(0,h.extractAv1CodecInfoFromPacket)(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}}class P extends x{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:(0,m.extractAudioCodecString)({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}}},{"../codec-data.js":"4Hepu","../codec.js":"8wd8o","../demuxer.js":"6cHW1","../input-track.js":"8ofmg","../metadata.js":"fFgR1","../misc.js":"dpOkn","../packet.js":"i61Hy","./ebml.js":"B0jDs","./matroska-misc.js":"axlni","../reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],axlni:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"buildMatroskaMimeType",()=>n);let n=e=>{let r=(e.hasVideo?"video/":e.hasAudio?"audio/":"application/")+(e.isWebM?"webm":"x-matroska");if(e.codecStrings.length>0){let a=[...new Set(e.codecStrings.filter(Boolean))];r+=`; codecs="${a.join(", ")}"`}return r}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i9O6t:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"Mp3Demuxer",()=>f);var n=e("../demuxer.js"),o=e("../input-track.js"),l=e("../metadata.js"),c=e("../misc.js"),d=e("../packet.js"),u=e("../../shared/mp3-misc.js"),h=e("../id3.js"),m=e("./mp3-reader.js"),p=e("../reader.js");class f extends n.Demuxer{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new(0,c.AsyncMutex),this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();if(!this.firstFrameHeader)throw Error("No valid MP3 frame found.");this.tracks=[new(0,o.InputAudioTrack)(this.input,new g(this))]})()}async advanceReader(){if(0===this.lastLoadedPos)for(;;){let e=this.reader.requestSlice(this.lastLoadedPos,h.ID3_V2_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let r=(0,h.readId3V2Header)(e);if(!r)break;this.lastLoadedPos=e.filePos+r.size}let e=await (0,m.readNextFrameHeader)(this.reader,this.lastLoadedPos,this.reader.fileSize);if(!e){this.lastSampleLoaded=!0;return}let r=e.header;this.lastLoadedPos=e.startPos+r.totalSize-1;let a=(0,u.getXingOffset)(r.mpegVersionId,r.channel),i=this.reader.requestSlice(e.startPos+a,4);if(i instanceof Promise&&(i=await i),i){let e=(0,p.readU32Be)(i);if(e===u.XING||e===u.INFO)return}this.firstFrameHeader||(this.firstFrameHeader=r),r.sampleRate!==this.firstFrameHeader.sampleRate&&console.warn(`MP3 changed sample rate mid-file: ${this.firstFrameHeader.sampleRate} Hz to ${r.sampleRate} Hz. Might be a bug, so please report this file.`);let s=r.audioSamplesInFrame/this.firstFrameHeader.sampleRate,n={timestamp:this.nextTimestampInSamples/this.firstFrameHeader.sampleRate,duration:s,dataStart:e.startPos,dataSize:r.totalSize};this.loadedSamples.push(n),this.nextTimestampInSamples+=r.audioSamplesInFrame}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return(0,c.assert)(e),e.computeDuration()}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let e=0,r=!1;for(;;){let a=this.reader.requestSlice(e,h.ID3_V2_HEADER_SIZE);if(a instanceof Promise&&(a=await a),!a)break;let i=(0,h.readId3V2Header)(a);if(!i)break;r=!0;let s=this.reader.requestSlice(a.filePos,i.size);if(s instanceof Promise&&(s=await s),!s)break;(0,h.parseId3V2Tag)(s,i,this.metadataTags),e=a.filePos+i.size}if(!r&&null!==this.reader.fileSize&&this.reader.fileSize>=h.ID3_V1_TAG_SIZE){let e=this.reader.requestSlice(this.reader.fileSize-h.ID3_V1_TAG_SIZE,h.ID3_V1_TAG_SIZE);e instanceof Promise&&(e=await e),(0,c.assert)(e);let r=(0,p.readAscii)(e,3);"TAG"===r&&(0,h.parseId3V1Tag)(e,this.metadataTags)}return this.metadataTags}finally{e()}}}class g{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return(0,c.assert)(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return c.UNDETERMINED_LANGUAGE}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return(0,c.assert)(this.demuxer.firstFrameHeader),3===this.demuxer.firstFrameHeader.channel?1:2}getSampleRate(){return(0,c.assert)(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...l.DEFAULT_TRACK_DISPOSITION}}async getDecoderConfig(){return(0,c.assert)(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:3===this.demuxer.firstFrameHeader.channel?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,r){let a;if(-1===e)return null;let i=this.demuxer.loadedSamples[e];if(!i)return null;if(r.metadataOnly)a=d.PLACEHOLDER_DATA;else{let e=this.demuxer.reader.requestSlice(i.dataStart,i.dataSize);if(e instanceof Promise&&(e=await e),!e)return null;a=(0,p.readBytes)(e,i.dataSize)}return new(0,d.EncodedPacket)(a,"key",i.timestamp,i.duration,e,i.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,r){let a=await this.demuxer.readingMutex.acquire();try{let a=(0,c.binarySearchExact)(this.demuxer.loadedSamples,e.timestamp,e=>e.timestamp);if(-1===a)throw Error("Packet was not created from this track.");let i=a+1;for(;i>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(i,r)}finally{a()}}async getPacket(e,r){let a=await this.demuxer.readingMutex.acquire();try{for(;;){let a=(0,c.binarySearchLessOrEqual)(this.demuxer.loadedSamples,e,e=>e.timestamp);if(-1===a&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded||a>=0&&a+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(a,r);await this.demuxer.advanceReader()}}finally{a()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}}},{"../demuxer.js":"6cHW1","../input-track.js":"8ofmg","../metadata.js":"fFgR1","../misc.js":"dpOkn","../packet.js":"i61Hy","../../shared/mp3-misc.js":"25tyg","../id3.js":"69HAt","./mp3-reader.js":"8Pxtf","../reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"25tyg":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"FRAME_HEADER_SIZE",()=>n),s.export(a,"SAMPLING_RATES",()=>o),s.export(a,"KILOBIT_RATES",()=>l),s.export(a,"XING",()=>c),s.export(a,"INFO",()=>d),s.export(a,"computeMp3FrameSize",()=>u),s.export(a,"getXingOffset",()=>h),s.export(a,"readFrameHeader",()=>m),s.export(a,"encodeSynchsafe",()=>p),s.export(a,"decodeSynchsafe",()=>f);let n=4,o=[44100,48e3,32e3],l=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1,-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1,-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1,-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],c=0x58696e67,d=0x496e666f,u=(e,r,a,i,s)=>0===r?0:1===r?Math.floor(144*a/(i<<e))+s:2===r?Math.floor(144*a/i)+s:(Math.floor(12*a/i)+s)*4,h=(e,r)=>3===e?3===r?21:36:3===r?13:21,m=(e,r)=>{let a,i=e>>>24,s=e>>>16&255,n=e>>>8&255,c=255&e;if(255!==i&&255!==s&&255!==n&&255!==c)return{header:null,bytesAdvanced:4};if(255!==i||(224&s)!=224)return{header:null,bytesAdvanced:1};let d=0,h=0;16&s?d=8&s?0:1:(d=1,h=1);let m=s>>3&3,p=s>>1&3,f=(n>>2&3)%3,g=l[64*d+16*p+(n>>4&15)];if(-1===g)return{header:null,bytesAdvanced:1};let k=1e3*g,b=o[f]>>d+h,T=u(d,p,k,b,n>>1&1);return null!==r&&r<T?{header:null,bytesAdvanced:1}:(a=3===m?3===p?384:1152:3===p?384:2===p?1152:576,{header:{totalSize:T,mpegVersionId:m,layer:p,bitrate:k,frequencyIndex:f,sampleRate:b,channel:c>>6&3,modeExtension:c>>4&3,copyright:c>>3&1,original:c>>2&1,emphasis:3&c,audioSamplesInFrame:a},bytesAdvanced:1})},p=e=>{let r=127,a=0,i=e;for(;(0x7fffffff^r)!=0;)a=(i&~r)<<1|i&r,r=(r+1<<8)-1,i=a;return a},f=e=>{let r=0x7f000000,a=0;for(;0!==r;)a>>=1,a|=e&r,r>>=8;return a}},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"69HAt":[function(e,r,a,i){var s,n,o,l,c=e("@parcel/transformer-js/src/esmodule-helpers.js");c.defineInteropFlag(a),c.export(a,"Id3V2HeaderFlags",()=>o),c.export(a,"Id3V2TextEncoding",()=>l),c.export(a,"ID3_V1_TAG_SIZE",()=>m),c.export(a,"ID3_V2_HEADER_SIZE",()=>p),c.export(a,"ID3_V1_GENRES",()=>f),c.export(a,"parseId3V1Tag",()=>g),c.export(a,"readId3V1String",()=>k),c.export(a,"readId3V2Header",()=>b),c.export(a,"parseId3V2Tag",()=>T),c.export(a,"Id3V2Reader",()=>y),c.export(a,"Id3V2Writer",()=>S);var d=e("../shared/mp3-misc.js"),u=e("./misc.js"),h=e("./reader.js");(s=o||(o={}))[s.Unsynchronisation=128]="Unsynchronisation",s[s.ExtendedHeader=64]="ExtendedHeader",s[s.ExperimentalIndicator=32]="ExperimentalIndicator",s[s.Footer=16]="Footer",(n=l||(l={}))[n.ISO_8859_1=0]="ISO_8859_1",n[n.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",n[n.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",n[n.UTF_8=3]="UTF_8";let m=128,p=10,f=["Blues","Classic rock","Country","Dance","Disco","Funk","Grunge","Hip-hop","Jazz","Metal","New age","Oldies","Other","Pop","Rhythm and blues","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death metal","Pranks","Soundtrack","Euro-techno","Ambient","Trip-hop","Vocal","Jazz & funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound clip","Gospel","Noise","Alternative rock","Bass","Soul","Punk","Space","Meditative","Instrumental pop","Instrumental rock","Ethnic","Gothic","Darkwave","Techno-industrial","Electronic","Pop-folk","Eurodance","Dream","Southern rock","Comedy","Cult","Gangsta","Top 40","Christian rap","Pop/funk","Jungle music","Native US","Cabaret","New wave","Psychedelic","Rave","Showtunes","Trailer","Lo-fi","Tribal","Acid punk","Acid jazz","Polka","Retro","Musical","Rock 'n' roll","Hard rock","Folk","Folk rock","National folk","Swing","Fast fusion","Bebop","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic rock","Progressive rock","Psychedelic rock","Symphonic rock","Slow rock","Big band","Chorus","Easy listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber music","Sonata","Symphony","Booty bass","Primus","Porn groove","Satire","Slow jam","Club","Tango","Samba","Folklore","Ballad","Power ballad","Rhythmic Soul","Freestyle","Duet","Punk rock","Drum solo","A cappella","Euro-house","Dance hall","Goa music","Drum & bass","Club-house","Hardcore techno","Terror","Indie","Britpop","Negerpunk","Polsk punk","Beat","Christian gangsta rap","Heavy metal","Black metal","Crossover","Contemporary Christian","Christian rock","Merengue","Salsa","Thrash metal","Anime","Jpop","Synthpop","Christmas","Art rock","Baroque","Bhangra","Big beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math rock","New romantic","Nu-breakz","Post-punk","Post-rock","Psytrance","Shoegaze","Space rock","Trop rock","World music","Neoclassical","Audiobook","Audio theatre","Neue Deutsche Welle","Podcast","Indie rock","G-Funk","Dubstep","Garage rock","Psybient"],g=(e,r)=>{let a,i=e.filePos;r.raw??={},r.raw.TAG??=(0,h.readBytes)(e,m-3),e.filePos=i;let s=k(e,30);s&&(r.title??=s);let n=k(e,30);n&&(r.artist??=n);let o=k(e,30);o&&(r.album??=o);let l=Number.parseInt(k(e,4),10);Number.isInteger(l)&&l>0&&(r.date??=new Date(l,0,1));let c=(0,h.readBytes)(e,30);if(0===c[28]&&0!==c[29]){let i=c[29];i>0&&(r.trackNumber??=i),e.skip(-30),a=k(e,28),e.skip(2)}else e.skip(-30),a=k(e,30);a&&(r.comment??=a);let d=(0,h.readU8)(e);d<f.length&&(r.genre??=f[d])},k=(e,r)=>{let a=(0,h.readBytes)(e,r),i=(0,u.coalesceIndex)(a.indexOf(0),a.length),s=a.subarray(0,i),n="";for(let e=0;e<s.length;e++)n+=String.fromCharCode(s[e]);return n.trimEnd()},b=e=>{let r=e.filePos,a=(0,h.readAscii)(e,3),i=(0,h.readU8)(e),s=(0,h.readU8)(e),n=(0,h.readU8)(e),o=(0,h.readU32Be)(e);return"ID3"!==a||255===i||255===s||(0x80808080&o)!=0?(e.filePos=r,null):{majorVersion:i,revision:s,flags:n,size:(0,d.decodeSynchsafe)(o)}},T=(e,r,a)=>{if(![2,3,4].includes(r.majorVersion))return void console.warn(`Unsupported ID3v2 major version: ${r.majorVersion}`);let i=(0,h.readBytes)(e,r.size),s=new y(r,i);if(r.flags&o.Footer&&s.removeFooter(),r.flags&o.Unsynchronisation&&3===r.majorVersion&&s.ununsynchronizeAll(),r.flags&o.ExtendedHeader){let e=s.readU32();3===r.majorVersion?s.pos+=e:s.pos+=e-4}for(;s.pos<=s.bytes.length-s.frameHeaderSize();){let e=s.readId3V2Frame();if(!e)break;let i=s.pos,n=s.pos+e.size,l=!1,c=!1,d=!1;if(3===r.majorVersion?(l=!!(64&e.flags),c=!!(128&e.flags)):4===r.majorVersion&&(l=!!(4&e.flags),c=!!(8&e.flags),d=!!(2&e.flags)||!!(r.flags&o.Unsynchronisation)),l){console.warn(`Skipping encrypted ID3v2 frame ${e.id}`),s.pos=n;continue}if(c){console.warn(`Skipping compressed ID3v2 frame ${e.id}`),s.pos=n;continue}switch(d&&s.ununsynchronizeRegion(s.pos,n),a.raw??={},"T"===e.id[0]?a.raw[e.id]??=s.readId3V2EncodingAndText(n):a.raw[e.id]??=s.readBytes(e.size),s.pos=i,e.id){case"TIT2":case"TT2":a.title??=s.readId3V2EncodingAndText(n);break;case"TIT3":case"TT3":a.description??=s.readId3V2EncodingAndText(n);break;case"TPE1":case"TP1":a.artist??=s.readId3V2EncodingAndText(n);break;case"TALB":case"TAL":a.album??=s.readId3V2EncodingAndText(n);break;case"TPE2":case"TP2":a.albumArtist??=s.readId3V2EncodingAndText(n);break;case"TRCK":case"TRK":{let e=s.readId3V2EncodingAndText(n).split("/"),r=Number.parseInt(e[0],10),i=e[1]&&Number.parseInt(e[1],10);Number.isInteger(r)&&r>0&&(a.trackNumber??=r),i&&Number.isInteger(i)&&i>0&&(a.tracksTotal??=i)}break;case"TPOS":case"TPA":{let e=s.readId3V2EncodingAndText(n).split("/"),r=Number.parseInt(e[0],10),i=e[1]&&Number.parseInt(e[1],10);Number.isInteger(r)&&r>0&&(a.discNumber??=r),i&&Number.isInteger(i)&&i>0&&(a.discsTotal??=i)}break;case"TCON":case"TCO":{let e=s.readId3V2EncodingAndText(n),r=/^\((\d+)\)/.exec(e);if(r){let e=Number.parseInt(r[1]);if(void 0!==f[e]){a.genre??=f[e];break}}if(r=/^\d+$/.exec(e)){let e=Number.parseInt(r[0]);if(void 0!==f[e]){a.genre??=f[e];break}}a.genre??=e}break;case"TDRC":case"TDAT":{let e=new Date(s.readId3V2EncodingAndText(n));Number.isNaN(e.getTime())||(a.date??=e)}break;case"TYER":case"TYE":{let e=Number.parseInt(s.readId3V2EncodingAndText(n),10);Number.isInteger(e)&&(a.date??=new Date(e,0,1))}break;case"USLT":case"ULT":{let e=s.readU8();s.pos+=3,s.readId3V2Text(e,n),a.lyrics??=s.readId3V2Text(e,n)}break;case"COMM":case"COM":{let e=s.readU8();s.pos+=3,s.readId3V2Text(e,n),a.comment??=s.readId3V2Text(e,n)}break;case"APIC":case"PIC":{let e,i=s.readId3V2TextEncoding();if(2===r.majorVersion){let r=s.readAscii(3);e="PNG"===r?"image/png":"JPG"===r?"image/jpeg":"image/*"}else e=s.readId3V2Text(i,n);let o=s.readU8(),l=s.readId3V2Text(i,n).trimEnd(),c=n-s.pos;if(c>=0){let r=s.readBytes(c);a.images||(a.images=[]),a.images.push({data:r,mimeType:e,kind:3===o?"coverFront":4===o?"coverBack":"unknown",description:l})}}break;default:s.pos+=e.size}s.pos=n}};class y{constructor(e,r){this.header=e,this.bytes=r,this.pos=0,this.view=new DataView(r.buffer,r.byteOffset,r.byteLength)}frameHeaderSize(){return 2===this.header.majorVersion?6:10}ununsynchronizeAll(){let e=[];for(let r=0;r<this.bytes.length;r++){let a=this.bytes[r];e.push(a),255===a&&r!==this.bytes.length-1&&0===this.bytes[r]&&r++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,r){let a=[];for(let i=e;i<r;i++){let e=this.bytes[i];a.push(e),255===e&&i!==r-1&&0===this.bytes[i+1]&&i++}let i=this.bytes.subarray(0,e),s=this.bytes.subarray(r);this.bytes=new Uint8Array(i.length+a.length+s.length),this.bytes.set(i,0),this.bytes.set(a,i.length),this.bytes.set(s,i.length+a.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-p),this.view=new DataView(this.bytes.buffer)}readBytes(e){let r=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,r}readU8(){let e=this.view.getUint8(this.pos);return this.pos+=1,e}readU16(){let e=this.view.getUint16(this.pos,!1);return this.pos+=2,e}readU24(){let e=this.view.getUint16(this.pos,!1),r=this.view.getUint8(this.pos+1);return this.pos+=3,256*e+r}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let r="";for(let a=0;a<e;a++)r+=String.fromCharCode(this.view.getUint8(this.pos+a));return this.pos+=e,r}readId3V2Frame(){if(2===this.header.majorVersion){let e=this.readAscii(3);return"\0\0\0"===e?null:{id:e,size:this.readU24(),flags:0}}{let e=this.readAscii(4);if("\0\0\0\0"===e)return null;let r=this.readU32(),a=4===this.header.majorVersion?(0,d.decodeSynchsafe)(r):r,i=this.readU16(),s=this.pos,n=e=>{let r=this.pos+e;if(r>this.bytes.length)return!1;if(r<=this.bytes.length-this.frameHeaderSize()){this.pos+=e;let r=this.readAscii(4);if("\0\0\0\0"!==r&&!/[0-9A-Z]{4}/.test(r))return!1}return!0};if(!n(a)){let e=4===this.header.majorVersion?r:(0,d.decodeSynchsafe)(r);n(e)&&(a=e)}return this.pos=s,{id:e,size:a,flags:i}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,r){let a=this.pos,i=this.readBytes(r-this.pos);switch(e){case l.ISO_8859_1:{let e="";for(let r=0;r<i.length;r++){let s=i[r];if(0===s){this.pos=a+r+1;break}e+=String.fromCharCode(s)}return e}case l.UTF_16_WITH_BOM:if(255===i[0]&&254===i[1]){let e=new TextDecoder("utf-16le"),r=(0,u.coalesceIndex)(i.findIndex((e,r)=>0===e&&0===i[r+1]&&r%2==0),i.length);return this.pos=a+Math.min(r+2,i.length),e.decode(i.subarray(2,r))}if(254===i[0]&&255===i[1]){let e=new TextDecoder("utf-16be"),r=(0,u.coalesceIndex)(i.findIndex((e,r)=>0===e&&0===i[r+1]&&r%2==0),i.length);return this.pos=a+Math.min(r+2,i.length),e.decode(i.subarray(2,r))}{let e=(0,u.coalesceIndex)(i.findIndex(e=>0===e),i.length);return this.pos=a+Math.min(e+1,i.length),u.textDecoder.decode(i.subarray(0,e))}case l.UTF_16_BE_NO_BOM:{let e=new TextDecoder("utf-16be"),r=(0,u.coalesceIndex)(i.findIndex((e,r)=>0===e&&0===i[r+1]&&r%2==0),i.length);return this.pos=a+Math.min(r+2,i.length),e.decode(i.subarray(0,r))}case l.UTF_8:{let e=(0,u.coalesceIndex)(i.findIndex(e=>0===e),i.length);return this.pos=a+Math.min(e+1,i.length),u.textDecoder.decode(i.subarray(0,e))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let r=this.readId3V2TextEncoding();return this.readId3V2Text(r,e)}}class S{constructor(e){this.helper=new Uint8Array(8),this.helperView=(0,u.toDataView)(this.helper),this.writer=e}writeId3V2Tag(e){let r=this.writer.getPos();this.writeAscii("ID3"),this.writeU8(4),this.writeU8(0),this.writeU8(0),this.writeSynchsafeU32(0);let a=this.writer.getPos(),i=new Set;for(let{key:r,value:a}of(0,u.keyValueIterator)(e))switch(r){case"title":this.writeId3V2TextFrame("TIT2",a),i.add("TIT2");break;case"description":this.writeId3V2TextFrame("TIT3",a),i.add("TIT3");break;case"artist":this.writeId3V2TextFrame("TPE1",a),i.add("TPE1");break;case"album":this.writeId3V2TextFrame("TALB",a),i.add("TALB");break;case"albumArtist":this.writeId3V2TextFrame("TPE2",a),i.add("TPE2");break;case"trackNumber":{let r=void 0!==e.tracksTotal?`${a}/${e.tracksTotal}`:a.toString();this.writeId3V2TextFrame("TRCK",r),i.add("TRCK")}break;case"discNumber":{let r=void 0!==e.discsTotal?`${a}/${e.discsTotal}`:a.toString();this.writeId3V2TextFrame("TPOS",r),i.add("TPOS")}break;case"genre":this.writeId3V2TextFrame("TCON",a),i.add("TCON");break;case"date":this.writeId3V2TextFrame("TDRC",a.toISOString().slice(0,10)),i.add("TDRC");break;case"lyrics":this.writeId3V2LyricsFrame(a),i.add("USLT");break;case"comment":this.writeId3V2CommentFrame(a),i.add("COMM");break;case"images":{let e={coverFront:3,coverBack:4,unknown:0};for(let r of a){let a=e[r.kind]??0,i=r.description??"";this.writeId3V2ApicFrame(r.mimeType,a,i,r.data)}}break;case"tracksTotal":case"discsTotal":case"raw":break;default:(0,u.assertNever)(r)}if(e.raw)for(let r in e.raw){let a,s=e.raw[r];if(!(null==s||4!==r.length||i.has(r))){if("string"==typeof s){let e=u.textEncoder.encode(s);(a=new Uint8Array(e.byteLength+2))[0]=l.UTF_8,a.set(e,1)}else{if(!(s instanceof Uint8Array))continue;a=s}this.writeAscii(r),this.writeSynchsafeU32(a.byteLength),this.writeU16(0),this.writer.write(a)}}let s=this.writer.getPos(),n=s-a;return this.writer.seek(r+6),this.writeSynchsafeU32(n),this.writer.seek(s),n+10}writeU8(e){this.helper[0]=e,this.writer.write(this.helper.subarray(0,1))}writeU16(e){this.helperView.setUint16(0,e,!1),this.writer.write(this.helper.subarray(0,2))}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeAscii(e){for(let r=0;r<e.length;r++)this.helper[r]=e.charCodeAt(r);this.writer.write(this.helper.subarray(0,e.length))}writeSynchsafeU32(e){this.writeU32((0,d.encodeSynchsafe)(e))}writeIsoString(e){let r=new Uint8Array(e.length+1);for(let a=0;a<e.length;a++)r[a]=e.charCodeAt(a);r[e.length]=0,this.writer.write(r)}writeUtf8String(e){let r=u.textEncoder.encode(e);this.writer.write(r),this.writeU8(0)}writeId3V2TextFrame(e,r){let a=(0,u.isIso88591Compatible)(r),i=a?r.length:u.textEncoder.encode(r).byteLength;this.writeAscii(e),this.writeSynchsafeU32(1+i+1),this.writeU16(0),this.writeU8(a?l.ISO_8859_1:l.UTF_8),a?this.writeIsoString(r):this.writeUtf8String(r)}writeId3V2LyricsFrame(e){let r=(0,u.isIso88591Compatible)(e),a=5+e.length+1;this.writeAscii("USLT"),this.writeSynchsafeU32(a),this.writeU16(0),this.writeU8(r?l.ISO_8859_1:l.UTF_8),this.writeAscii("und"),r?(this.writeIsoString(""),this.writeIsoString(e)):(this.writeUtf8String(""),this.writeUtf8String(e))}writeId3V2CommentFrame(e){let r=(0,u.isIso88591Compatible)(e),a=r?e.length:u.textEncoder.encode(e).byteLength;this.writeAscii("COMM"),this.writeSynchsafeU32(5+a+1),this.writeU16(0),this.writeU8(r?l.ISO_8859_1:l.UTF_8),this.writeU8(117),this.writeU8(110),this.writeU8(100),r?(this.writeIsoString(""),this.writeIsoString(e)):(this.writeUtf8String(""),this.writeUtf8String(e))}writeId3V2ApicFrame(e,r,a,i){let s=(0,u.isIso88591Compatible)(e)&&(0,u.isIso88591Compatible)(a),n=s?a.length:u.textEncoder.encode(a).byteLength,o=1+e.length+1+1+n+1+i.byteLength;this.writeAscii("APIC"),this.writeSynchsafeU32(o),this.writeU16(0),this.writeU8(s?l.ISO_8859_1:l.UTF_8),s?this.writeIsoString(e):this.writeUtf8String(e),this.writeU8(r),s?this.writeIsoString(a):this.writeUtf8String(a),this.writer.write(i)}}},{"../shared/mp3-misc.js":"25tyg","./misc.js":"dpOkn","./reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8Pxtf":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"readNextFrameHeader",()=>l);var n=e("../../shared/mp3-misc.js"),o=e("../reader.js");let l=async(e,r,a)=>{let i=r;for(;null===a||i<a;){let r=e.requestSlice(i,n.FRAME_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)break;let a=(0,o.readU32Be)(r),s=(0,n.readFrameHeader)(a,null!==e.fileSize?e.fileSize-i:null);if(s.header)return{header:s.header,startPos:i};i+=s.bytesAdvanced}return null}},{"../../shared/mp3-misc.js":"25tyg","../reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5cgt7":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"OggDemuxer",()=>g);var n=e("../codec.js"),o=e("../codec-data.js"),l=e("../demuxer.js"),c=e("../input-track.js"),d=e("../metadata.js"),u=e("../misc.js"),h=e("../packet.js"),m=e("../reader.js"),p=e("./ogg-misc.js"),f=e("./ogg-reader.js");class g extends l.Demuxer{constructor(e){super(e),this.metadataPromise=null,this.bitstreams=[],this.tracks=[],this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let r=this.reader.requestSliceRange(e,f.MIN_PAGE_HEADER_SIZE,f.MAX_PAGE_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)break;let a=(0,f.readPageHeader)(r);if(!a||!(2&a.headerType))break;this.bitstreams.push({serialNumber:a.serialNumber,bosPage:a,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=a.headerStartPos+a.totalSize}for(let e of this.bitstreams){let r=await this.readPacket(e.bosPage,0);r&&(r.data.byteLength>=7&&1===r.data[0]&&118===r.data[1]&&111===r.data[2]&&114===r.data[3]&&98===r.data[4]&&105===r.data[5]&&115===r.data[6]?await this.readVorbisMetadata(r,e):r.data.byteLength>=8&&79===r.data[0]&&112===r.data[1]&&117===r.data[2]&&115===r.data[3]&&72===r.data[4]&&101===r.data[5]&&97===r.data[6]&&100===r.data[7]&&await this.readOpusMetadata(r,e),null!==e.codecInfo.codec&&this.tracks.push(new(0,c.InputAudioTrack)(this.input,new k(e,this))))}})()}async readVorbisMetadata(e,r){let a=await this.findNextPacketStart(e);if(!a)return;let i=await this.readPacket(a.startPage,a.startSegmentIndex);if(!i||!(a=await this.findNextPacketStart(i)))return;let s=await this.readPacket(a.startPage,a.startSegmentIndex);if(!s||3!==i.data[0]||5!==s.data[0])return;let n=[],l=e=>{for(;n.push(Math.min(255,e)),!(e<255);)e-=255};l(e.data.length),l(i.data.length);let c=new Uint8Array(1+n.length+e.data.length+i.data.length+s.data.length);c[0]=2,c.set(n,1),c.set(e.data,1+n.length),c.set(i.data,1+n.length+e.data.length),c.set(s.data,1+n.length+e.data.length+i.data.length),r.codecInfo.codec="vorbis",r.description=c,r.lastMetadataPacket=s;let d=(0,u.toDataView)(e.data);r.numberOfChannels=d.getUint8(11),r.sampleRate=d.getUint32(12,!0);let h=d.getUint8(28);r.codecInfo.vorbisInfo={blocksizes:[1<<(15&h),1<<(h>>4)],modeBlockflags:(0,o.parseModesFromVorbisSetupPacket)(s.data).modeBlockflags},(0,o.readVorbisComments)(i.data.subarray(7),this.metadataTags)}async readOpusMetadata(e,r){let a=await this.findNextPacketStart(e);if(!a)return;let i=await this.readPacket(a.startPage,a.startSegmentIndex);if(!i)return;r.codecInfo.codec="opus",r.description=e.data,r.lastMetadataPacket=i;let s=(0,o.parseOpusIdentificationHeader)(e.data);r.numberOfChannels=s.outputChannelCount,r.sampleRate=n.OPUS_SAMPLE_RATE,r.codecInfo.opusInfo={preSkip:s.preSkip},(0,o.readVorbisComments)(i.data.subarray(8),this.metadataTags)}async readPacket(e,r){(0,u.assert)(r<e.lacingValues.length);let a=0;for(let i=0;i<r;i++)a+=e.lacingValues[i];let i=e,s=a,n=r,o=[];e:for(;;){let r=this.reader.requestSlice(i.dataStartPos,i.dataSize);r instanceof Promise&&(r=await r),(0,u.assert)(r);let l=(0,m.readBytes)(r,i.dataSize);for(;;){if(n===i.lacingValues.length){o.push(l.subarray(a,s));break}let e=i.lacingValues[n];if(s+=e,e<255){o.push(l.subarray(a,s));break e}n++}let c=i.headerStartPos+i.totalSize;for(;;){let r=this.reader.requestSliceRange(c,f.MIN_PAGE_HEADER_SIZE,f.MAX_PAGE_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)return null;let a=(0,f.readPageHeader)(r);if(!a)return null;if((i=a).serialNumber===e.serialNumber)break;c=i.headerStartPos+i.totalSize}a=0,s=0,n=0}let l=new Uint8Array(o.reduce((e,r)=>e+r.length,0)),c=0;for(let e=0;e<o.length;e++){let r=o[e];l.set(r,c),c+=r.length}return{data:l,endPage:i,endSegmentIndex:n}}async findNextPacketStart(e){if(e.endSegmentIndex<e.endPage.lacingValues.length-1)return{startPage:e.endPage,startSegmentIndex:e.endSegmentIndex+1};if(4&e.endPage.headerType)return null;let r=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let a=this.reader.requestSliceRange(r,f.MIN_PAGE_HEADER_SIZE,f.MAX_PAGE_HEADER_SIZE);if(a instanceof Promise&&(a=await a),!a)return null;let i=(0,f.readPageHeader)(a);if(!i)return null;if(i.serialNumber===e.endPage.serialNumber)return{startPage:i,startSegmentIndex:0};r=i.headerStartPos+i.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(e=>e.getCodecParameterString()));return(0,p.buildOggMimeType)({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks();return Math.max(0,...await Promise.all(e.map(e=>e.computeDuration())))}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}}class k{constructor(e,r){this.bitstream=e,this.demuxer=r,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new(0,u.AsyncMutex),this.internalSampleRate="opus"===e.codecInfo.codec?n.OPUS_SAMPLE_RATE:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}getInternalCodecId(){return null}async getDecoderConfig(){return(0,u.assert)(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getName(){return null}getLanguageCode(){return u.UNDETERMINED_LANGUAGE}getDisposition(){return{...d.DEFAULT_TRACK_DISPOSITION}}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return"opus"===this.bitstream.codecInfo.codec?((0,u.assert)(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,r,a){if(!e)return null;let{durationInSamples:i,vorbisBlockSize:s}=(0,p.extractSampleMetadata)(e.data,this.bitstream.codecInfo,r.vorbisLastBlocksize),n=new(0,h.EncodedPacket)(a.metadataOnly?h.PLACEHOLDER_DATA:e.data,"key",Math.max(0,r.timestampInSamples)/this.internalSampleRate,i/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(n,{packet:e,timestampInSamples:r.timestampInSamples,durationInSamples:i,vorbisLastBlockSize:r.vorbisLastBlocksize,vorbisBlockSize:s}),n}async getFirstPacket(e){(0,u.assert)(this.bitstream.lastMetadataPacket);let r=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!r)return null;let a=0;"opus"===this.bitstream.codecInfo.codec&&((0,u.assert)(this.bitstream.codecInfo.opusInfo),a-=this.bitstream.codecInfo.opusInfo.preSkip);let i=await this.demuxer.readPacket(r.startPage,r.startSegmentIndex);return this.createEncodedPacketFromOggPacket(i,{timestampInSamples:a,vorbisLastBlocksize:null},e)}async getNextPacket(e,r){let a=this.encodedPacketToMetadata.get(e);if(!a)throw Error("Packet was not created from this track.");let i=await this.demuxer.findNextPacketStart(a.packet);if(!i)return null;let s=a.timestampInSamples+a.durationInSamples,n=await this.demuxer.readPacket(i.startPage,i.startSegmentIndex);return this.createEncodedPacketFromOggPacket(n,{timestampInSamples:s,vorbisLastBlocksize:a.vorbisBlockSize},r)}async getPacket(e,r){let a,i;if(null===this.demuxer.reader.fileSize)return this.getPacketSequential(e,r);let s=(0,u.roundIfAlmostInteger)(e*this.internalSampleRate);if(0===s)return this.getFirstPacket(r);if(s<0)return null;(0,u.assert)(this.bitstream.lastMetadataPacket);let n=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!n)return null;let o=n.startPage,l=this.demuxer.reader.fileSize,c=[o];e:for(;o.headerStartPos+o.totalSize<l;){let e=Math.floor((o.headerStartPos+l)/2),r=e;for(;;){let a=Math.min(r+f.MAX_PAGE_SIZE,l-f.MIN_PAGE_HEADER_SIZE),i=this.demuxer.reader.requestSlice(r,a-r);if(i instanceof Promise&&(i=await i),(0,u.assert)(i),!(0,f.findNextPageHeader)(i,a)){l=e+f.MIN_PAGE_HEADER_SIZE;continue e}let n=this.demuxer.reader.requestSliceRange(i.filePos,f.MIN_PAGE_HEADER_SIZE,f.MAX_PAGE_HEADER_SIZE);n instanceof Promise&&(n=await n),(0,u.assert)(n);let d=(0,f.readPageHeader)(n);(0,u.assert)(d);let h=!1;if(d.serialNumber===this.bitstream.serialNumber)h=!0;else{let e=this.demuxer.reader.requestSlice(d.headerStartPos,d.totalSize);e instanceof Promise&&(e=await e),(0,u.assert)(e);let r=(0,m.readBytes)(e,d.totalSize);h=(0,p.computeOggPageCrc)(r)===d.checksum}if(!h){r=d.headerStartPos+4;continue}if(h&&d.serialNumber!==this.bitstream.serialNumber||-1===d.granulePosition){r=d.headerStartPos+d.totalSize;continue}this.granulePositionToTimestampInSamples(d.granulePosition)>s?l=d.headerStartPos:(o=d,c.push(d));continue e}}let d=n.startPage;for(let e of c){if(e.granulePosition===o.granulePosition)break;(!d||e.headerStartPos>d.headerStartPos)&&(d=e)}let g=d,k=[g];for(;g.serialNumber!==this.bitstream.serialNumber||g.granulePosition!==o.granulePosition;){let e=g.headerStartPos+g.totalSize,r=this.demuxer.reader.requestSliceRange(e,f.MIN_PAGE_HEADER_SIZE,f.MAX_PAGE_HEADER_SIZE);r instanceof Promise&&(r=await r),(0,u.assert)(r);let a=(0,f.readPageHeader)(r);(0,u.assert)(a),(g=a).serialNumber===this.bitstream.serialNumber&&k.push(g)}(0,u.assert)(-1!==g.granulePosition);let y=null,S=g,w=0;if(g.headerStartPos===n.startPage.headerStartPos)a=this.granulePositionToTimestampInSamples(0),i=!0,y=0;else{a=0,i=!1;for(let e=g.lacingValues.length-1;e>=0;e--)if(g.lacingValues[e]<255){y=e+1;break}if(null===y)throw Error("Invalid page with granule position: no packets end on this page.");w=y-1;let e={data:h.PLACEHOLDER_DATA,endPage:S,endSegmentIndex:w};if(await this.demuxer.findNextPacketStart(e)){let e=T(k,g,y);(0,u.assert)(e);let r=b(k,e.page,e.segmentIndex);r&&(g=r.page,y=r.segmentIndex)}else for(;;){let e=T(k,g,y);if(!e)break;let r=b(k,e.page,e.segmentIndex);if(!r)break;if(g=r.page,y=r.segmentIndex,e.page.headerStartPos!==S.headerStartPos){S=e.page,w=e.segmentIndex;break}}}let I=null,x=null;for(;null!==g;){(0,u.assert)(null!==y);let e=await this.demuxer.readPacket(g,y);if(!e)break;if(!(g.headerStartPos===n.startPage.headerStartPos&&y<n.startSegmentIndex)){let n=this.createEncodedPacketFromOggPacket(e,{timestampInSamples:a,vorbisLastBlocksize:x?.vorbisBlockSize??null},r);(0,u.assert)(n);let o=this.encodedPacketToMetadata.get(n);if((0,u.assert)(o),i||e.endPage.headerStartPos!==S.headerStartPos||e.endSegmentIndex!==w?a+=o.durationInSamples:(a=this.granulePositionToTimestampInSamples(g.granulePosition),i=!0,n=this.createEncodedPacketFromOggPacket(e,{timestampInSamples:a-o.durationInSamples,vorbisLastBlocksize:x?.vorbisBlockSize??null},r),(0,u.assert)(n),o=this.encodedPacketToMetadata.get(n),(0,u.assert)(o)),I=n,x=o,i&&(Math.max(a,0)>s||Math.max(o.timestampInSamples,0)===s))break}let o=await this.demuxer.findNextPacketStart(e);if(!o)break;g=o.startPage,y=o.startSegmentIndex}return I}async getPacketSequential(e,r){let a=await this.sequentialScanMutex.acquire();try{let a,i=(0,u.roundIfAlmostInteger)(e*this.internalSampleRate);e=i/this.internalSampleRate;let s=(0,u.binarySearchLessOrEqual)(this.sequentialScanCache,i,e=>e.timestampInSamples);if(-1!==s){let e=this.sequentialScanCache[s];a=this.createEncodedPacketFromOggPacket(e.packet,{timestampInSamples:e.timestampInSamples,vorbisLastBlocksize:e.vorbisLastBlockSize},r)}else a=await this.getFirstPacket(r);let n=0;for(;a&&a.timestamp<e;){let i=await this.getNextPacket(a,r);if(!i||i.timestamp>e)break;if(a=i,n++,100===n){n=0;let e=this.encodedPacketToMetadata.get(a);(0,u.assert)(e),this.sequentialScanCache.length>0&&(0,u.assert)((0,u.last)(this.sequentialScanCache).timestampInSamples<=e.timestampInSamples),this.sequentialScanCache.push(e)}}return a}finally{a()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}}let b=(e,r,a)=>{let i=r,s=a;e:for(;;){for(s--;s>=0;s--)if(i.lacingValues[s]<255){s++;break e}if((0,u.assert)(-1===s),!(1&i.headerType)){s=0;break}let r=(0,u.findLast)(e,e=>e.headerStartPos<i.headerStartPos);if(!r)return null;s=(i=r).lacingValues.length}if((0,u.assert)(-1!==s),s===i.lacingValues.length){let r=e[e.indexOf(i)+1];(0,u.assert)(r),i=r,s=0}return{page:i,segmentIndex:s}},T=(e,r,a)=>{if(a>0)return{page:r,segmentIndex:a-1};let i=(0,u.findLast)(e,e=>e.headerStartPos<r.headerStartPos);return i?{page:i,segmentIndex:i.lacingValues.length-1}:null}},{"../codec.js":"8wd8o","../codec-data.js":"4Hepu","../demuxer.js":"6cHW1","../input-track.js":"8ofmg","../metadata.js":"fFgR1","../misc.js":"dpOkn","../packet.js":"i61Hy","../reader.js":"3hF2Q","./ogg-misc.js":"7ByLQ","./ogg-reader.js":"i9qmX","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"7ByLQ":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"OGGS",()=>l),s.export(a,"computeOggPageCrc",()=>d),s.export(a,"extractSampleMetadata",()=>u),s.export(a,"buildOggMimeType",()=>h);var n=e("../codec-data.js"),o=e("../misc.js");let l=0x5367674f,c=new Uint32Array(256);for(let e=0;e<256;e++){let r=e<<24;for(let e=0;e<8;e++)r=0x80000000&r?r<<1^0x4c11db7:r<<1;c[e]=r>>>0}let d=e=>{let r=(0,o.toDataView)(e),a=r.getUint32(22,!0);r.setUint32(22,0,!0);let i=0;for(let r=0;r<e.length;r++)i=(i<<8^c[i>>>24^e[r]])>>>0;return r.setUint32(22,a,!0),i},u=(e,r,a)=>{let i=0,s=null;if(e.length>0)if("vorbis"===r.codec){(0,o.assert)(r.vorbisInfo);let n=r.vorbisInfo.modeBlockflags.length,l=(1<<(0,o.ilog)(n-1))-1<<1,c=(e[0]&l)>>1;if(c>=r.vorbisInfo.modeBlockflags.length)throw Error("Invalid mode number.");let d=a,u=r.vorbisInfo.modeBlockflags[c];if(s=r.vorbisInfo.blocksizes[u],1===u){let a=e[0]&(1|l)+1?1:0;d=r.vorbisInfo.blocksizes[a]}i=null!==d?d+s>>2:0}else"opus"===r.codec&&(i=(0,n.parseOpusTocByte)(e).durationInSamples);return{durationInSamples:i,vorbisBlockSize:s}},h=e=>{let r="audio/ogg";if(e.codecStrings){let a=[...new Set(e.codecStrings)];r+=`; codecs="${a.join(", ")}"`}return r}},{"../codec-data.js":"4Hepu","../misc.js":"dpOkn","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i9qmX:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"MIN_PAGE_HEADER_SIZE",()=>l),s.export(a,"MAX_PAGE_HEADER_SIZE",()=>c),s.export(a,"MAX_PAGE_SIZE",()=>d),s.export(a,"readPageHeader",()=>u),s.export(a,"findNextPageHeader",()=>h);var n=e("../reader.js"),o=e("./ogg-misc.js");let l=27,c=282,d=65307,u=e=>{let r=e.filePos;if((0,n.readU32Le)(e)!==o.OGGS)return null;e.skip(1);let a=(0,n.readU8)(e),i=(0,n.readI64Le)(e),s=(0,n.readU32Le)(e),l=(0,n.readU32Le)(e),c=(0,n.readU32Le)(e),d=(0,n.readU8)(e),u=new Uint8Array(d);for(let r=0;r<d;r++)u[r]=(0,n.readU8)(e);let h=27+d,m=u.reduce((e,r)=>e+r,0);return{headerStartPos:r,totalSize:h+m,dataStartPos:r+h,dataSize:m,headerType:a,granulePosition:i,serialNumber:s,sequenceNumber:l,checksum:c,lacingValues:u}},h=(e,r)=>{for(;e.filePos<r-3;){let r=(0,n.readU32Le)(e),a=255&r,i=r>>>8&255,s=r>>>16&255,l=r>>>24&255;if(79===a||79===i||79===s||79===l){if(e.skip(-4),r===o.OGGS)return!0;e.skip(1)}}return!1}},{"../reader.js":"3hF2Q","./ogg-misc.js":"7ByLQ","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],lUIAt:[function(e,r,a,i){var s,n,o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(a),o.export(a,"WaveFormat",()=>n),o.export(a,"WaveDemuxer",()=>f);var l=e("../demuxer.js"),c=e("../input-track.js"),d=e("../metadata.js"),u=e("../misc.js"),h=e("../packet.js"),m=e("../reader.js"),p=e("../id3.js");(s=n||(n={}))[s.PCM=1]="PCM",s[s.IEEE_FLOAT=3]="IEEE_FLOAT",s[s.ALAW=6]="ALAW",s[s.MULAW=7]="MULAW",s[s.EXTENSIBLE=65534]="EXTENSIBLE";class f extends l.Demuxer{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.lastKnownPacketIndex=0,this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=this.reader.requestSlice(0,12);e instanceof Promise&&(e=await e),(0,u.assert)(e);let r=(0,m.readAscii)(e,4),a="RIFX"!==r,i="RF64"===r,s=(0,m.readU32)(e,a),n=i?this.reader.fileSize:Math.min(s+8,this.reader.fileSize??1/0);if("WAVE"!==(0,m.readAscii)(e,4))throw Error("Invalid WAVE file - wrong format");let o=0,l=null,d=e.filePos;for(;null===n||d<n;){let e=this.reader.requestSlice(d,8);if(e instanceof Promise&&(e=await e),!e)break;let r=(0,m.readAscii)(e,4),s=(0,m.readU32)(e,a),c=e.filePos;if(i&&0===o&&"ds64"!==r)throw Error('Invalid RF64 file: First chunk must be "ds64".');if("fmt "===r)await this.parseFmtChunk(c,s,a);else if("data"===r){if(l??=s,this.dataStart=e.filePos,this.dataSize=Math.min(l,(n??1/0)-this.dataStart),null===this.reader.fileSize)break}else if("ds64"===r){let e=this.reader.requestSlice(c,s);if(e instanceof Promise&&(e=await e),!e)break;let r=(0,m.readU64)(e,a);l=(0,m.readU64)(e,a),n=Math.min(r+8,this.reader.fileSize??1/0)}else"LIST"===r?await this.parseListChunk(c,s,a):("ID3 "===r||"id3 "===r)&&await this.parseId3Chunk(c,s);d=c+s+(1&s),o++}if(!this.audioInfo)throw Error('Invalid WAVE file - missing "fmt " chunk');if(-1===this.dataStart)throw Error('Invalid WAVE file - missing "data" chunk');let h=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/h)*h,this.tracks.push(new(0,c.InputAudioTrack)(this.input,new g(this)))})()}async parseFmtChunk(e,r,a){let i,s=this.reader.requestSlice(e,r);if(s instanceof Promise&&(s=await s),!s)return;let o=(0,m.readU16)(s,a),l=(0,m.readU16)(s,a),c=(0,m.readU32)(s,a);s.skip(4);let d=(0,m.readU16)(s,a);if((i=14===r?8:(0,m.readU16)(s,a),r>=18&&357!==o)&&Math.min(r-18,(0,m.readU16)(s,a))>=22&&o===n.EXTENSIBLE){s.skip(6);let e=(0,m.readBytes)(s,16);o=e[0]|e[1]<<8}(o===n.MULAW||o===n.ALAW)&&(i=8),this.audioInfo={format:o,numberOfChannels:l,sampleRate:c,sampleSizeInBytes:Math.ceil(i/8),blockSizeInBytes:d}}async parseListChunk(e,r,a){let i=this.reader.requestSlice(e,r);if(i instanceof Promise&&(i=await i),!i)return;let s=(0,m.readAscii)(i,4);if("INFO"!==s&&"INF0"!==s)return;let n=i.filePos;for(;n<=e+r-8;){i.filePos=n;let e=(0,m.readAscii)(i,4),r=(0,m.readU32)(i,a),s=(0,m.readBytes)(i,r),o=0;for(let e=0;e<s.length&&0!==s[e];e++)o++;let l=String.fromCharCode(...s.subarray(0,o));switch(this.metadataTags.raw??={},this.metadataTags.raw[e]=l,e){case"INAM":case"TITL":this.metadataTags.title??=l;break;case"TIT3":this.metadataTags.description??=l;break;case"IART":this.metadataTags.artist??=l;break;case"IPRD":this.metadataTags.album??=l;break;case"IPRT":case"ITRK":case"TRCK":{let e=l.split("/"),r=Number.parseInt(e[0],10),a=e[1]&&Number.parseInt(e[1],10);Number.isInteger(r)&&r>0&&(this.metadataTags.trackNumber??=r),a&&Number.isInteger(a)&&a>0&&(this.metadataTags.tracksTotal??=a)}break;case"ICRD":case"IDIT":{let e=new Date(l);Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"YEAR":{let e=Number.parseInt(l,10);Number.isInteger(e)&&e>0&&(this.metadataTags.date??=new Date(e,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=l;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=l}n+=8+r+(1&r)}}async parseId3Chunk(e,r){let a=this.reader.requestSlice(e,r);if(a instanceof Promise&&(a=await a),!a)return;let i=(0,p.readId3V2Header)(a);if(i){let r=a.slice(e+10,i.size);(0,p.parseId3V2Tag)(r,i,this.metadataTags)}}getCodec(){if((0,u.assert)(this.audioInfo),this.audioInfo.format===n.MULAW)return"ulaw";if(this.audioInfo.format===n.ALAW)return"alaw";if(this.audioInfo.format===n.PCM){if(1===this.audioInfo.sampleSizeInBytes)return"pcm-u8";else if(2===this.audioInfo.sampleSizeInBytes)return"pcm-s16";else if(3===this.audioInfo.sampleSizeInBytes)return"pcm-s24";else if(4===this.audioInfo.sampleSizeInBytes)return"pcm-s32"}return this.audioInfo.format===n.IEEE_FLOAT&&4===this.audioInfo.sampleSizeInBytes?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return(0,u.assert)(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}}class g{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return(0,u.assert)(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?((0,u.assert)(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getNumberOfChannels(){return(0,u.assert)(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return(0,u.assert)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return(0,u.assert)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return u.UNDETERMINED_LANGUAGE}getDisposition(){return{...d.DEFAULT_TRACK_DISPOSITION}}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,r){let a;(0,u.assert)(this.demuxer.audioInfo);let i=2048*e*this.demuxer.audioInfo.blockSizeInBytes;if(i>=this.demuxer.dataSize)return null;let s=Math.min(2048*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-i);if(null===this.demuxer.reader.fileSize){let e=this.demuxer.reader.requestSlice(this.demuxer.dataStart+i,s);if(e instanceof Promise&&(e=await e),!e)return null}if(r.metadataOnly)a=h.PLACEHOLDER_DATA;else{let e=this.demuxer.reader.requestSlice(this.demuxer.dataStart+i,s);e instanceof Promise&&(e=await e),(0,u.assert)(e),a=(0,m.readBytes)(e,s)}let n=2048*e/this.demuxer.audioInfo.sampleRate,o=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,n),new(0,h.EncodedPacket)(a,"key",n,o,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,r){(0,u.assert)(this.demuxer.audioInfo);let a=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/2048,(this.demuxer.dataSize-1)/(2048*this.demuxer.audioInfo.blockSizeInBytes))),i=await this.getPacketAtIndex(a,r);if(i)return i;if(0===a)return null;(0,u.assert)(null===this.demuxer.reader.fileSize);let s=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,r);for(;s;){let e=await this.getNextPacket(s,r);if(!e)break;s=e}return s}getNextPacket(e,r){(0,u.assert)(this.demuxer.audioInfo);let a=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/2048);return this.getPacketAtIndex(a+1,r)}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}}},{"../demuxer.js":"6cHW1","../input-track.js":"8ofmg","../metadata.js":"fFgR1","../misc.js":"dpOkn","../packet.js":"i61Hy","../reader.js":"3hF2Q","../id3.js":"69HAt","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5Z778":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"MIN_FRAME_HEADER_SIZE",()=>l),s.export(a,"MAX_FRAME_HEADER_SIZE",()=>c),s.export(a,"readFrameHeader",()=>d);var n=e("../misc.js"),o=e("../reader.js");let l=7,c=9,d=e=>{let r=e.filePos,a=(0,o.readBytes)(e,9),i=new(0,n.Bitstream)(a);if(4095!==i.readBits(12)||(i.skipBits(1),0!==i.readBits(2)))return null;let s=i.readBits(1),l=i.readBits(2)+1,c=i.readBits(4);if(15===c)return null;i.skipBits(1);let d=i.readBits(3);if(0===d)throw Error("ADTS frames with channel configuration 0 are not supported.");i.skipBits(1),i.skipBits(1),i.skipBits(1),i.skipBits(1);let u=i.readBits(13);i.skipBits(11);let h=i.readBits(2)+1;if(1!==h)throw Error("ADTS frames with more than one AAC frame are not supported.");let m=null;return 1===s?e.filePos-=2:m=i.readBits(16),{objectType:l,samplingFrequencyIndex:c,channelConfiguration:d,frameLength:u,numberOfAacFrames:h,crcCheck:m,startPos:r}}},{"../misc.js":"dpOkn","../reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"2HibR":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"AdtsDemuxer",()=>p);var n=e("../codec.js"),o=e("../demuxer.js"),l=e("../input-track.js"),c=e("../misc.js"),d=e("../packet.js"),u=e("../reader.js"),h=e("../metadata.js"),m=e("./adts-reader.js");class p extends o.Demuxer{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.tracks=[],this.readingMutex=new(0,c.AsyncMutex),this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();(0,c.assert)(this.firstFrameHeader),this.tracks=[new(0,l.InputAudioTrack)(this.input,new f(this))]})()}async advanceReader(){let e=this.reader.requestSliceRange(this.lastLoadedPos,m.MIN_FRAME_HEADER_SIZE,m.MAX_FRAME_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let r=(0,m.readFrameHeader)(e);if(!r||null!==this.reader.fileSize&&r.startPos+r.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=r);let a=n.aacFrequencyTable[r.samplingFrequencyIndex];(0,c.assert)(void 0!==a);let i=r.crcCheck?m.MAX_FRAME_HEADER_SIZE:m.MIN_FRAME_HEADER_SIZE,s={timestamp:this.nextTimestampInSamples/a,duration:1024/a,dataStart:r.startPos+i,dataSize:r.frameLength-i};this.loadedSamples.push(s),this.nextTimestampInSamples+=1024,this.lastLoadedPos=r.startPos+r.frameLength}async getMimeType(){return"audio/aac"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return(0,c.assert)(e),e.computeDuration()}async getMetadataTags(){return{}}}class f{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/1024}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return c.UNDETERMINED_LANGUAGE}getCodec(){return"aac"}getInternalCodecId(){return(0,c.assert)(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){(0,c.assert)(this.demuxer.firstFrameHeader);let e=n.aacChannelMap[this.demuxer.firstFrameHeader.channelConfiguration];return(0,c.assert)(void 0!==e),e}getSampleRate(){(0,c.assert)(this.demuxer.firstFrameHeader);let e=n.aacFrequencyTable[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return(0,c.assert)(void 0!==e),e}getDisposition(){return{...h.DEFAULT_TRACK_DISPOSITION}}async getDecoderConfig(){(0,c.assert)(this.demuxer.firstFrameHeader);let e=new Uint8Array(3),r=new(0,c.Bitstream)(e),{objectType:a,samplingFrequencyIndex:i,channelConfiguration:s}=this.demuxer.firstFrameHeader;return a>31?(r.writeBits(5,31),r.writeBits(6,a-32)):r.writeBits(5,a),r.writeBits(4,i),r.writeBits(4,s),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate(),description:e.subarray(0,Math.ceil((r.pos-1)/8))}}async getPacketAtIndex(e,r){let a;if(-1===e)return null;let i=this.demuxer.loadedSamples[e];if(!i)return null;if(r.metadataOnly)a=d.PLACEHOLDER_DATA;else{let e=this.demuxer.reader.requestSlice(i.dataStart,i.dataSize);if(e instanceof Promise&&(e=await e),!e)return null;a=(0,u.readBytes)(e,i.dataSize)}return new(0,d.EncodedPacket)(a,"key",i.timestamp,i.duration,e,i.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,r){let a=await this.demuxer.readingMutex.acquire();try{let a=(0,c.binarySearchExact)(this.demuxer.loadedSamples,e.timestamp,e=>e.timestamp);if(-1===a)throw Error("Packet was not created from this track.");let i=a+1;for(;i>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(i,r)}finally{a()}}async getPacket(e,r){let a=await this.demuxer.readingMutex.acquire();try{for(;;){let a=(0,c.binarySearchLessOrEqual)(this.demuxer.loadedSamples,e,e=>e.timestamp);if(-1===a&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded||a>=0&&a+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(a,r);await this.demuxer.advanceReader()}}finally{a()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}}},{"../codec.js":"8wd8o","../demuxer.js":"6cHW1","../input-track.js":"8ofmg","../misc.js":"dpOkn","../packet.js":"i61Hy","../reader.js":"3hF2Q","../metadata.js":"fFgR1","./adts-reader.js":"5Z778","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],h7VU7:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"FlacDemuxer",()=>p);var n=e("../codec-data.js"),o=e("../demuxer.js"),l=e("../input-track.js"),c=e("../misc.js"),d=e("../packet.js"),u=e("../reader.js"),h=e("../metadata.js"),m=e("./flac-misc.js");class p extends o.Demuxer{constructor(e){super(e),this.loadedSamples=[],this.metadataPromise=null,this.track=null,this.metadataTags={},this.audioInfo=null,this.lastLoadedPos=null,this.blockingBit=null,this.readingMutex=new(0,c.AsyncMutex),this.lastSampleLoaded=!1,this.reader=e._reader}async computeDuration(){return await this.readMetadata(),(0,c.assert)(this.track),this.track.computeDuration()}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTracks(){return await this.readMetadata(),(0,c.assert)(this.track),[this.track]}async getMimeType(){return"audio/flac"}async readMetadata(){let e=4;return this.metadataPromise??=(async()=>{for(;null===this.reader.fileSize||e<this.reader.fileSize;){let r=this.reader.requestSlice(e,4);if(r instanceof Promise&&(r=await r),e+=4,null===r)throw Error(`Metadata block at position ${e} is too small! Corrupted file.`);(0,c.assert)(r);let a=(0,u.readU8)(r),i=(0,u.readU24Be)(r),s=(128&a)!=0;switch(127&a){case n.FlacBlockType.STREAMINFO:{let r=this.reader.requestSlice(e,i);if(r instanceof Promise&&(r=await r),(0,c.assert)(r),null===r)throw Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let a=(0,u.readBytes)(r,34),s=new(0,c.Bitstream)(a),n=s.readBits(16),o=s.readBits(16),d=s.readBits(24),h=s.readBits(24),m=s.readBits(20),p=s.readBits(3)+1;s.readBits(5);let g=s.readBits(36);s.skipBits(128);let k=new Uint8Array(42);k.set(new Uint8Array([102,76,97,67]),0),k.set(new Uint8Array([128,0,0,34]),4),k.set(a,8),this.audioInfo={numberOfChannels:p,sampleRate:m,totalSamples:g,minimumBlockSize:n,maximumBlockSize:o,minimumFrameSize:d,maximumFrameSize:h,description:k},this.track=new(0,l.InputAudioTrack)(this.input,new f(this));break}case n.FlacBlockType.VORBIS_COMMENT:{let r=this.reader.requestSlice(e,i);r instanceof Promise&&(r=await r),(0,c.assert)(r),(0,n.readVorbisComments)((0,u.readBytes)(r,i),this.metadataTags);break}case n.FlacBlockType.PICTURE:{let r=this.reader.requestSlice(e,i);r instanceof Promise&&(r=await r),(0,c.assert)(r);let a=(0,u.readU32Be)(r),s=(0,u.readU32Be)(r),n=c.textDecoder.decode((0,u.readBytes)(r,s)),o=(0,u.readU32Be)(r),l=c.textDecoder.decode((0,u.readBytes)(r,o));r.skip(16);let d=(0,u.readU32Be)(r),h=(0,u.readBytes)(r,d);this.metadataTags.images??=[],this.metadataTags.images.push({data:h,mimeType:n,kind:3===a?"coverFront":4===a?"coverBack":"unknown",description:l})}}if(e+=i,s){this.lastLoadedPos=e;break}}})()}async readNextFlacFrame({startPos:e,isFirstPacket:r}){(0,c.assert)(this.audioInfo);let a=this.audioInfo.maximumFrameSize+16,i=await this.reader.requestSliceRange(e,this.audioInfo.minimumFrameSize,a);if(!i)return null;let s=this.readFlacFrameHeader({slice:i,isFirstPacket:r});if(!s)return null;for(i.filePos=e+this.audioInfo.minimumFrameSize;;){if(i.filePos>i.end-6)return{num:s.num,blockSize:s.blockSize,sampleRate:s.sampleRate,size:i.end-e,isLastFrame:!0};if(255===(0,u.readU8)(i)){let r=i.filePos;if((0,u.readU8)(i)!==(1===this.blockingBit?249:248)){i.filePos=r;continue}i.skip(-2);let a=i.filePos-e,n=this.readFlacFrameHeader({slice:i,isFirstPacket:!1});if(!n){i.filePos=r;continue}if(0===this.blockingBit){if(n.num-s.num!=1){i.filePos=r;continue}}else if(n.num-s.num!==s.blockSize){i.filePos=r;continue}return{num:s.num,blockSize:s.blockSize,sampleRate:s.sampleRate,size:a,isLastFrame:!1}}}}readFlacFrameHeader({slice:e,isFirstPacket:r}){let a=e.filePos,i=(0,u.readBytes)(e,4),s=new(0,c.Bitstream)(i);if(32764!==s.readBits(15))return null;if(null===this.blockingBit){(0,c.assert)(r);let e=s.readBits(1);this.blockingBit=e}else if(1===this.blockingBit){if((0,c.assert)(!r),1!==s.readBits(1))return null}else if(0===this.blockingBit){if((0,c.assert)(!r),0!==s.readBits(1))return null}else throw Error("Invalid blocking bit");let n=(0,m.getBlockSizeOrUncommon)(s.readBits(4));if(!n)return null;(0,c.assert)(this.audioInfo);let o=(0,m.getSampleRateOrUncommon)(s.readBits(4),this.audioInfo.sampleRate);if(!o||(s.readBits(4),s.readBits(3),0!==s.readBits(1)))return null;let l=(0,m.readCodedNumber)(e),d=(0,m.readBlockSize)(e,n),h=(0,m.readSampleRate)(e,o);if(null===h||h!==this.audioInfo.sampleRate)return null;let p=e.filePos-a,f=(0,u.readU8)(e);return(e.skip(-p),e.skip(-1),f!==(0,m.calculateCrc8)((0,u.readBytes)(e,p)))?null:{num:l,blockSize:d,sampleRate:h}}async advanceReader(){await this.readMetadata(),(0,c.assert)(null!==this.lastLoadedPos),(0,c.assert)(this.audioInfo);let e=this.lastLoadedPos,r=await this.readNextFlacFrame({startPos:e,isFirstPacket:0===this.loadedSamples.length});if(!r){this.lastSampleLoaded=!0;return}let a=this.loadedSamples[this.loadedSamples.length-1],i={blockOffset:a?a.blockOffset+a.blockSize:0,blockSize:r.blockSize,byteOffset:e,byteSize:r.size};if(this.lastLoadedPos=this.lastLoadedPos+r.size,this.loadedSamples.push(i),r.isLastFrame){this.lastSampleLoaded=!0;return}}}class f{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return(0,c.assert)(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getSampleRate(){return(0,c.assert)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return c.UNDETERMINED_LANGUAGE}getTimeResolution(){return(0,c.assert)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getDisposition(){return{...h.DEFAULT_TRACK_DISPOSITION}}async getFirstTimestamp(){return 0}async getDecoderConfig(){return(0,c.assert)(this.demuxer.audioInfo),{codec:"flac",numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate,description:this.demuxer.audioInfo.description}}async getPacket(e,r){if((0,c.assert)(this.demuxer.audioInfo),e<0)throw Error("Timestamp cannot be negative");let a=await this.demuxer.readingMutex.acquire();try{for(;;){let a=(0,c.binarySearchLessOrEqual)(this.demuxer.loadedSamples,e,e=>e.blockOffset/this.demuxer.audioInfo.sampleRate);if(-1===a){await this.demuxer.advanceReader();continue}let i=this.demuxer.loadedSamples[a],s=i.blockOffset/this.demuxer.audioInfo.sampleRate,n=i.blockSize/this.demuxer.audioInfo.sampleRate;if(s+n<=e){if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(this.demuxer.loadedSamples.length-1,r);await this.demuxer.advanceReader();continue}return this.getPacketAtIndex(a,r)}}finally{a()}}async getNextPacket(e,r){let a=await this.demuxer.readingMutex.acquire();try{let a=e.sequenceNumber+1;if(this.demuxer.lastSampleLoaded&&a>=this.demuxer.loadedSamples.length)return null;for(;a>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(a,r)}finally{a()}}getKeyPacket(e,r){return this.getPacket(e,r)}getNextKeyPacket(e,r){return this.getNextPacket(e,r)}async getPacketAtIndex(e,r){let a,i=this.demuxer.loadedSamples[e];if(!i)return null;if(r.metadataOnly)a=d.PLACEHOLDER_DATA;else{let e=this.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);if(e instanceof Promise&&(e=await e),!e)return null;a=(0,u.readBytes)(e,i.byteSize)}(0,c.assert)(this.demuxer.audioInfo);let s=i.blockOffset/this.demuxer.audioInfo.sampleRate,n=i.blockSize/this.demuxer.audioInfo.sampleRate;return new(0,d.EncodedPacket)(a,"key",s,n,e,i.byteSize)}async getFirstPacket(e){for(;0===this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(0,e)}}},{"../codec-data.js":"4Hepu","../demuxer.js":"6cHW1","../input-track.js":"8ofmg","../misc.js":"dpOkn","../packet.js":"i61Hy","../reader.js":"3hF2Q","../metadata.js":"fFgR1","./flac-misc.js":"aXiDm","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],aXiDm:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"getBlockSizeOrUncommon",()=>l),s.export(a,"getSampleRateOrUncommon",()=>c),s.export(a,"readCodedNumber",()=>d),s.export(a,"readBlockSize",()=>u),s.export(a,"readSampleRate",()=>h),s.export(a,"calculateCrc8",()=>m);var n=e("../misc.js"),o=e("../reader.js");let l=e=>{if(0===e)return null;if(1===e)return 192;if(e>=2&&e<=5)return 144*2**e;if(6===e)return"uncommon-u8";if(7===e)return"uncommon-u16";else if(e>=8&&e<=15)return 2**e;else return null},c=(e,r)=>{switch(e){case 0:return r;case 1:return 88200;case 2:return 176400;case 3:return 192e3;case 4:return 8e3;case 5:return 16e3;case 6:return 22050;case 7:return 24e3;case 8:return 32e3;case 9:return 44100;case 10:return 48e3;case 11:return 96e3;case 12:return"uncommon-u8";case 13:return"uncommon-u16";case 14:return"uncommon-u16-10";default:return null}},d=e=>{let r=0,a=new(0,n.Bitstream)((0,o.readBytes)(e,1));for(;1===a.readBits(1);)r++;if(0===r)return a.readBits(7);let i=[],s=r-1,l=new(0,n.Bitstream)((0,o.readBytes)(e,s)),c=8-r-1;for(let e=0;e<c;e++)i.unshift(a.readBits(1));for(let e=0;e<s;e++)for(let e=0;e<8;e++){let r=l.readBits(1);e<2||i.unshift(r)}return i.reduce((e,r,a)=>e|r<<a,0)},u=(e,r)=>"uncommon-u16"===r?(0,o.readU16Be)(e)+1:"uncommon-u8"===r?(0,o.readU8)(e)+1:"number"==typeof r?r:void((0,n.assertNever)(r),(0,n.assert)(!1)),h=(e,r)=>"uncommon-u16"===r?(0,o.readU16Be)(e):"uncommon-u16-10"===r?10*(0,o.readU16Be)(e):"uncommon-u8"===r?(0,o.readU8)(e):"number"==typeof r?r:null,m=e=>{let r=0;for(let a of e){r^=a;for(let e=0;e<8;e++)(128&r)!=0?r=r<<1^7:r<<=1,r&=255}return r}},{"../misc.js":"dpOkn","../reader.js":"3hF2Q","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"8o8Re":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"default",()=>o);var n=e("mediabunny");function o({canvas:e,ctx:r,events:a,timeupdateInterval:i=250,avSyncTolerance:s=.12,dropLateFrames:o=!1,poster:l="",preflightRange:c=!1}){let d=null,u=null,h=null,m=null,p=0,f=0,g=0,k=0,b=NaN,T=null,y=0,S=!1,w=1,I=!1;async function x(e){if(!c||"string"!=typeof e)return!0;try{let r=(await fetch(e,{method:"HEAD"})).headers.get("accept-ranges");if(!r||"none"===r)return a.emit("error",new Event("RangeNotSupported")),!1;return!0}catch(e){return console.warn("preflight failed",e),!0}}function E(){if(!l||I)return;let a=new Image;a.onload=()=>{r.clearRect(0,0,e.width,e.height),e.width=a.naturalWidth||e.width,e.height=a.naturalHeight||e.height,r.drawImage(a,0,0,e.width,e.height),I=!0},a.src=l}async function P(){await h?.return(),h=null}function C(){r.clearRect(0,0,e.width,e.height)}async function B(e){if(await P(),!u)return;h=u.canvases(e);let i=(await h.next()).value??null;m=(await h.next()).value??null,i?(r.drawImage(i.canvas,0,0),a.emit("loadeddata")):E()}async function _(a){if(h)for(;;){let i=(await h.next()).value??null;if(!i||a!==f)return;let n=T.currentTime;if(o){let a=Math.max(.06,s/Math.max(1,w));if(i.timestamp<n-a)continue;if(i.timestamp<=n+a)r.clearRect(0,0,e.width,e.height),r.drawImage(i.canvas,0,0);else{m=i;return}}else if(i.timestamp<=n)r.clearRect(0,0,e.width,e.height),r.drawImage(i.canvas,0,0);else{m=i;return}}}function A(){if(!T)return;let s=T.currentTime,n=Date.now();if(n-y>=i&&(a.emit("timeupdate"),y=n),Number.isFinite(b)&&s>=b){D(),a.emit("ended");return}m&&m.timestamp<=s?(r.clearRect(0,0,e.width,e.height),r.drawImage(m.canvas,0,0),m=null,_(f),S&&(a.emit("canplay"),a.emit("playing"),S=!1)):!m&&(_(f),!m&&Number.isFinite(b)&&s<b&&!S&&(S=!0,a.emit("waiting"))),p=requestAnimationFrame(A)}function D(){cancelAnimationFrame(p)}return{load:async function r(r,a){let i=++f;if(await P(),C(),I=!1,!await x(r))return;let s="string"==typeof r?new(0,n.UrlSource)(r):r instanceof Blob?new(0,n.BlobSource)(r):"undefined"!=typeof ReadableStream&&r instanceof ReadableStream?new(0,n.ReadableStreamSource)(r):r;if(!s)return void E();if(d=new(0,n.Input)({source:s,formats:n.ALL_FORMATS}),b=await d.computeDuration(),i!==f)return;let o=await d.getPrimaryVideoTrack();if(!o){u=null,g=0,k=0,e.width=0,e.height=0,E(),a&&a();return}if(null===o.codec||!await o.canDecode()){u=null,g=0,k=0,e.width=0,e.height=0,C(),E(),a&&a();return}let l=await o.canBeTransparent();u=new(0,n.CanvasSink)(o,{poolSize:2,fit:"contain",alpha:l}),g=o.displayWidth,k=o.displayHeight,e.width=g,e.height=k,a&&a(),await B(0)},start:function(e){T=e,f++,S=!1,_(f),p=requestAnimationFrame(A)},stop:D,seek:async function e(e){f++,await B(e)},setPlaybackRate:function(e){w=Math.max(.1,Number(e)||1)},destroy:function(){f++,D(),P(),I=!1,d=null,u=null},get width(){return g},get height(){return k},get duration(){return b}}}},{mediabunny:[["ALL_FORMATS","eC3Vq"],["BlobSource","d2urb"],["ReadableStreamSource","d2urb"],["UrlSource","d2urb"],["CanvasSink","h5xyX"],["Input","cI9DB"]],"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],i5ob4:[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function n(e,r,a){return Math.max(r,Math.min(a,Number(e)||0))}s.defineInteropFlag(a),s.export(a,"default",()=>n)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5969H":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");function n(){let e=new Map;return{addEventListener:function(r,a){e.has(r)||e.set(r,[]),e.get(r).push(a)},removeEventListener:function(r,a){let i=e.get(r);if(!i)return;let s=i.indexOf(a);s>=0&&i.splice(s,1)},emit:function(r,a){let i=new Event(r);i.detail=a;let s=e.get(r);s&&s.forEach(e=>e(i))}}}s.defineInteropFlag(a),s.export(a,"createVideoEventTarget",()=>n)},{"@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}]},["1qMFK"],"1qMFK","parcelRequire4dc0",{});