Files
ArtPlayer/docs/compiled/artplayer-proxy-mediabunny.js
T
Harvey Zhao 99ad0d7b93 Update package.json
Remove options section from README for clarity

Add 'waiting' event emission during seeking in mediabunnyEngine

This change emits a 'waiting' event when the seeking process begins,
improving the event handling and allowing for better synchronization
during media playback.

fix(audioEngine): adjust audio context suspension timing for improved playback responsiveness

refactor(mediabunnyVideoShim): remove redundant width and height getters; enhance poster setter and add setAttribute method

feat: initialize artplayer-proxy-mediabunny with essential files and structure

feat: implement audio and video engines for mediabunny integration

- Added audioEngine.js to handle audio playback using MediaBunny.
- Created mediabunnyEngine.js to manage both audio and video playback.
- Implemented videoEngine.js for rendering video on a canvas.
- Introduced canvasProxy.js to create a canvas element and manage its methods.
- Developed mediabunnyVideoShim.js to bridge ArtPlayer and MediaBunny functionalities.
- Added videoEvents.js for custom event handling related to video playback.
- Included a utility function clamp.js for value clamping.

feat: add playback rate control to audio and video engines

- Introduced playback rate management in the audio engine, allowing dynamic adjustment of playback speed.
- Updated the mediabunny engine to expose the new setPlaybackRate method.
- Enhanced the mediabunny video shim to support playback rate adjustments, including getter and setter for playbackRate.
- Added event emission for rate changes to ensure proper handling in the application.

Enhance audio engine and video shim functionality

- Added a check to ensure the audio context is initialized before playing audio in the audio engine.
- Introduced a new 'playing' getter in the video shim to accurately reflect the playback state, indicating when the video is neither paused nor ended.

Refactor audio context initialization to handle errors and remove async/await

- Changed `ensureAudioContext` from async to synchronous to simplify error handling.
- Added a try-catch block to handle potential errors when creating the AudioContext with a specified sample rate.
- Updated calls to `ensureAudioContext` to remove unnecessary await statements.

Enhance Mediabunny Engine and Video Shim with State Management and Error Handling

- Added readyState, networkState, and error properties to the Mediabunny Engine for better state management.
- Implemented error handling during media loading, emitting appropriate events on error.
- Updated the Video Engine to emit a 'timeupdate' event for better synchronization.
- Extended the Mediabunny Video Shim to expose new properties (readyState, networkState, error) and methods for improved functionality.
- Added seekable property to the Video Shim to provide seekable range based on media duration.
- Implemented additional properties and methods in the Video Shim for autoplay, loop, controls, currentSrc, poster, preload, defaultMuted, and defaultPlaybackRate.
- Enhanced requestVideoFrameCallback and cancelVideoFrameCallback methods for better frame handling.

refactor: streamline audio and video engine implementations

- Updated audioEngine.js to improve readability and maintainability by using consistent formatting and simplifying function structures.
- Refactored mediabunnyEngine.js to enhance clarity and ensure consistent coding style.
- Enhanced videoEngine.js with improved async handling and clearer function definitions.
- Modified canvasProxy.js to maintain consistent formatting and improve readability.
- Updated mediabunnyVideoShim.js to streamline event handling and improve clarity.
- Refactored videoEvents.js for better readability and consistency in event listener management.
- Simplified clamp.js for improved readability.

feat: enhance audio and video loading with metadata callbacks

- Updated audioEngine to accept an optional onMetadata callback in the load function, which is triggered upon loading completion.
- Modified mediabunnyEngine to handle video and audio loading concurrently, emitting loadedmetadata and durationchange events only when both are ready.
- Enhanced videoEngine to include an onMetadata callback in the load function, ensuring metadata events are emitted appropriately.
- Implemented a throttling mechanism for the timeupdate event in videoEngine to reduce event emissions and improve performance.

feat: add seeking state and played property to mediabunny engine and video shim

- Introduced a `_seeking` state in the mediabunny engine to track seek operations.
- Emitted 'seeking' and 'seeked' events during seek operations.
- Added a `seeking` getter to expose the seeking state.
- Implemented a `played` property in the video shim to provide playback range information.
- Added `width` and `height` getters to the video shim for better video dimension access.
- Enhanced cross-origin handling in the video shim.

feat(audioEngine): enhance audio playback management with starvation detection

- Added an event emitter to notify when the audio context is waiting.
- Implemented a starvation check that suspends the audio context if playback is delayed.
- Introduced a mechanism to track the latest scheduled end time of audio buffers.
- Updated the handling of audio buffer playback to ensure proper state transitions.

refactor: remove unnecessary comments and streamline code in audio, video, and mediabunny engines

feat: add resize functionality to canvas proxy and update type definitions

- Implemented a resize function in canvasProxy.js to adjust canvas size based on player dimensions and video metadata.
- Updated TypeScript definitions for artplayer-proxy-mediabunny to include option and result types.
- Modified build-ts script to include all plugin type definitions.
- Added TypeScript definitions for artplayer-proxy-canvas and artplayer-proxy-mediabunny.

refactor: remove unused properties from Artplayer instance and make option parameter optional in artplayerProxyCanvas type definition

Enhance Mediabunny and Video Engine functionality

- Added event listener for 'ended' event in mediabunnyEngine to handle playback state.
- Modified seek function to check if playback should resume after seeking.
- Reset canvas dimensions to zero in videoEngine when video track is not available or cannot be decoded.
- Ensured canvas is cleared when video track is invalid to prevent rendering issues.

Emit 'waiting' event during loadstart in mediabunnyEngine

Refactor event emission in mediabunnyEngine and add sleep utility function

- Changed the event emission for 'loadstart' to be asynchronous using setTimeout.
- Introduced a new utility function 'sleep' to facilitate delayed execution in promises.

feat: enhance mediabunny proxy with new options and source handling

- Added options for event delay, load timeout, timeupdate interval, AV sync tolerance, poster, and source in README.
- Implemented source normalization in audio and video engines to support URL, Blob, and ReadableStream.
- Updated mediabunny engine to handle new options and improve load handling with timeout and error management.
- Enhanced video engine to draw a poster when no video source is available and manage playback rate.
- Modified shim to accept source option and integrate with the new engine options.
- Updated TypeScript definitions to reflect new options and source types.

feat: add dropLateFrames option to video and mediabunny engines

- Introduced dropLateFrames option in mediabunnyEngine and videoEngine to control frame dropping behavior.
- Updated videoEngine logic to handle frame rendering based on the dropLateFrames setting.
- Added type definition for dropLateFrames in TypeScript declaration file.

fix: delay loadstart event emission to ensure proper event handling

The 'loadstart' event emission is now wrapped in a setTimeout to ensure it is triggered after the current call stack is cleared. This change aims to improve the timing of event emissions and prevent potential issues with event handling in the mediabunny engine.

feat: add preflight range check and drop late frames option

- Updated README.md to include new options: dropLateFrames and preflightRange.
- Enhanced mediabunnyEngine to support new options with default values.
- Implemented preflight function in videoEngine to check server support for Range requests.
- Adjusted videoEngine to utilize preflight check before loading media.
- Updated TypeScript definitions to include preflightRange option.

Remove aspectRatio option from Artplayer configuration

Update README and mediabunny example URL for consistency

Refactor code structure for improved readability and maintainability

Update dependencies and fix play/seek state management in mediabunnyEngine

Refactor code structure for improved readability and maintainability

fix(types): update export syntax and formatting in TypeScript declaration files
2025-12-13 14:06:30 +08:00

8 lines
313 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||{},m=d.cache||{},h="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function p(r,a){if(!m[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(h&&"string"==typeof r)return h(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=m[r]=new p.Module(r);e[r][0].call(l.exports,u,l,l.exports,c)}return m[r].exports;function u(e){var r=u.resolve(e);return!1===r?{}:p(r)}}p.isParcelRequire=!0,p.Module=function(e){this.id=e,this.bundle=p,this.require=h,this.exports={}},p.modules=e,p.cache=m,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,m=!!i.muted,h=1;n.setVolume(u,m);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 h},set playbackRate(v){let e=Number(v);if(Number.isNaN(e)||e<=0)return;h=e,n.setPlaybackRate(e),s.emit("ratechange")},get volume(){return u},set volume(v){u=(0,c.default)(v,0,1),m=!1,n.setVolume(u,m),s.emit("volumechange")},get muted(){return m},set muted(v){m=!!v,n.setVolume(u,m),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,m=0,h=null,p=!1,f=0;async function g(e){let r=++f;b(),d=!1,h=null,m=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,m=1,a.emit("loadeddata"),a.emit("canplay"),a.emit("canplaythrough")}catch(e){if(r!==f)return;h={code:4,message:e.message},m=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++,h={code:4,message:e.message},m=3,a.emit("error")}else await p}async function k(){l&&(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;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 m},get error(){return h},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,m=!0,h=.7,p=!1,f=1,g=0,k=new Set;function b(){return m?c:(i.currentTime-l)*f+c}function T(){if(!s)return;let e=p?0:h;s.gain.value=e*e}function S(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 y(){for(let e of k)e.stop();k.clear()}async function x(){await o?.return(),o=null}async function I(r){if(a)for(await x(),o=a.buffers(b());;){let a;if(r!==g||m)return;let n=o.next(),u=setInterval(()=>{if(r!==g||m)return void 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||m)return;if("suspended"===i.state&&(await i.resume(),e.emit("canplay"),e.emit("playing")),a.done)break;let{buffer:h,timestamp:p}=a.value,b=i.createBufferSource();b.buffer=h,b.connect(s),b.playbackRate.value=f;let T=l+(p-c)/f,S=T+h.duration/f;S>d&&(d=S),T>=i.currentTime?b.start(T):b.start(i.currentTime,(i.currentTime-T)*f),k.add(b),b.onended=()=>k.delete(b)}}function w(){m||(c=b(),m=!0,x(),y())}return{load:async function e(e,i){let s=++g;await x(),y(),m=!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,S(),i&&i();return}S(d.sampleRate),a=new(0,n.AudioBufferSink)(d),i&&i()},play:async function e(){m&&(i||S(),"suspended"===i.state&&await i.resume(),d=l=i.currentTime,m=!1,I(++g))},pause:w,seek:async function e(e){c=Math.max(0,e),d=l=i.currentTime,g++,m||I(g)},destroy:function(){g++,w(),i?.close(),i=null,r=null,a=null},setVolume(e,r){h=e,p=r,T()},setPlaybackRate(e){e!==f&&(m||(c=b(),l=i.currentTime),f=e,m||I(++g))},get currentTime(){return b()},get duration(){return u},get paused(){return m}}}},{mediabunny:"5c8Rl","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],"5c8Rl":[function(e,r,a,i){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(a),s.export(a,"Output",()=>n.Output),s.export(a,"OutputFormat",()=>o.OutputFormat),s.export(a,"AdtsOutputFormat",()=>o.AdtsOutputFormat),s.export(a,"FlacOutputFormat",()=>o.FlacOutputFormat),s.export(a,"IsobmffOutputFormat",()=>o.IsobmffOutputFormat),s.export(a,"MkvOutputFormat",()=>o.MkvOutputFormat),s.export(a,"MovOutputFormat",()=>o.MovOutputFormat),s.export(a,"Mp3OutputFormat",()=>o.Mp3OutputFormat),s.export(a,"Mp4OutputFormat",()=>o.Mp4OutputFormat),s.export(a,"OggOutputFormat",()=>o.OggOutputFormat),s.export(a,"WavOutputFormat",()=>o.WavOutputFormat),s.export(a,"WebMOutputFormat",()=>o.WebMOutputFormat),s.export(a,"MediaSource",()=>l.MediaSource),s.export(a,"VideoSource",()=>l.VideoSource),s.export(a,"AudioSource",()=>l.AudioSource),s.export(a,"SubtitleSource",()=>l.SubtitleSource),s.export(a,"AudioBufferSource",()=>l.AudioBufferSource),s.export(a,"AudioSampleSource",()=>l.AudioSampleSource),s.export(a,"CanvasSource",()=>l.CanvasSource),s.export(a,"EncodedAudioPacketSource",()=>l.EncodedAudioPacketSource),s.export(a,"EncodedVideoPacketSource",()=>l.EncodedVideoPacketSource),s.export(a,"MediaStreamAudioTrackSource",()=>l.MediaStreamAudioTrackSource),s.export(a,"MediaStreamVideoTrackSource",()=>l.MediaStreamVideoTrackSource),s.export(a,"TextSubtitleSource",()=>l.TextSubtitleSource),s.export(a,"VideoSampleSource",()=>l.VideoSampleSource),s.export(a,"VIDEO_CODECS",()=>c.VIDEO_CODECS),s.export(a,"AUDIO_CODECS",()=>c.AUDIO_CODECS),s.export(a,"PCM_AUDIO_CODECS",()=>c.PCM_AUDIO_CODECS),s.export(a,"NON_PCM_AUDIO_CODECS",()=>c.NON_PCM_AUDIO_CODECS),s.export(a,"SUBTITLE_CODECS",()=>c.SUBTITLE_CODECS),s.export(a,"canEncode",()=>d.canEncode),s.export(a,"canEncodeVideo",()=>d.canEncodeVideo),s.export(a,"canEncodeAudio",()=>d.canEncodeAudio),s.export(a,"canEncodeSubtitles",()=>d.canEncodeSubtitles),s.export(a,"getEncodableCodecs",()=>d.getEncodableCodecs),s.export(a,"getEncodableVideoCodecs",()=>d.getEncodableVideoCodecs),s.export(a,"getEncodableAudioCodecs",()=>d.getEncodableAudioCodecs),s.export(a,"getEncodableSubtitleCodecs",()=>d.getEncodableSubtitleCodecs),s.export(a,"getFirstEncodableVideoCodec",()=>d.getFirstEncodableVideoCodec),s.export(a,"getFirstEncodableAudioCodec",()=>d.getFirstEncodableAudioCodec),s.export(a,"getFirstEncodableSubtitleCodec",()=>d.getFirstEncodableSubtitleCodec),s.export(a,"Quality",()=>d.Quality),s.export(a,"QUALITY_VERY_LOW",()=>d.QUALITY_VERY_LOW),s.export(a,"QUALITY_LOW",()=>d.QUALITY_LOW),s.export(a,"QUALITY_MEDIUM",()=>d.QUALITY_MEDIUM),s.export(a,"QUALITY_HIGH",()=>d.QUALITY_HIGH),s.export(a,"QUALITY_VERY_HIGH",()=>d.QUALITY_VERY_HIGH),s.export(a,"Target",()=>u.Target),s.export(a,"BufferTarget",()=>u.BufferTarget),s.export(a,"FilePathTarget",()=>u.FilePathTarget),s.export(a,"NullTarget",()=>u.NullTarget),s.export(a,"StreamTarget",()=>u.StreamTarget),s.export(a,"ALL_TRACK_TYPES",()=>n.ALL_TRACK_TYPES),s.export(a,"Source",()=>m.Source),s.export(a,"BlobSource",()=>m.BlobSource),s.export(a,"BufferSource",()=>m.BufferSource),s.export(a,"FilePathSource",()=>m.FilePathSource),s.export(a,"StreamSource",()=>m.StreamSource),s.export(a,"ReadableStreamSource",()=>m.ReadableStreamSource),s.export(a,"UrlSource",()=>m.UrlSource),s.export(a,"InputFormat",()=>h.InputFormat),s.export(a,"AdtsInputFormat",()=>h.AdtsInputFormat),s.export(a,"IsobmffInputFormat",()=>h.IsobmffInputFormat),s.export(a,"MatroskaInputFormat",()=>h.MatroskaInputFormat),s.export(a,"Mp3InputFormat",()=>h.Mp3InputFormat),s.export(a,"Mp4InputFormat",()=>h.Mp4InputFormat),s.export(a,"OggInputFormat",()=>h.OggInputFormat),s.export(a,"QuickTimeInputFormat",()=>h.QuickTimeInputFormat),s.export(a,"WaveInputFormat",()=>h.WaveInputFormat),s.export(a,"WebMInputFormat",()=>h.WebMInputFormat),s.export(a,"FlacInputFormat",()=>h.FlacInputFormat),s.export(a,"ALL_FORMATS",()=>h.ALL_FORMATS),s.export(a,"ADTS",()=>h.ADTS),s.export(a,"MATROSKA",()=>h.MATROSKA),s.export(a,"MP3",()=>h.MP3),s.export(a,"MP4",()=>h.MP4),s.export(a,"OGG",()=>h.OGG),s.export(a,"QTFF",()=>h.QTFF),s.export(a,"WAVE",()=>h.WAVE),s.export(a,"WEBM",()=>h.WEBM),s.export(a,"FLAC",()=>h.FLAC),s.export(a,"Input",()=>p.Input),s.export(a,"InputDisposedError",()=>p.InputDisposedError),s.export(a,"InputTrack",()=>f.InputTrack),s.export(a,"InputVideoTrack",()=>f.InputVideoTrack),s.export(a,"InputAudioTrack",()=>f.InputAudioTrack),s.export(a,"EncodedPacket",()=>g.EncodedPacket),s.export(a,"AudioSample",()=>k.AudioSample),s.export(a,"VideoSample",()=>k.VideoSample),s.export(a,"AudioBufferSink",()=>b.AudioBufferSink),s.export(a,"AudioSampleSink",()=>b.AudioSampleSink),s.export(a,"BaseMediaSampleSink",()=>b.BaseMediaSampleSink),s.export(a,"CanvasSink",()=>b.CanvasSink),s.export(a,"EncodedPacketSink",()=>b.EncodedPacketSink),s.export(a,"VideoSampleSink",()=>b.VideoSampleSink),s.export(a,"Conversion",()=>T.Conversion),s.export(a,"CustomVideoDecoder",()=>S.CustomVideoDecoder),s.export(a,"CustomVideoEncoder",()=>S.CustomVideoEncoder),s.export(a,"CustomAudioDecoder",()=>S.CustomAudioDecoder),s.export(a,"CustomAudioEncoder",()=>S.CustomAudioEncoder),s.export(a,"registerDecoder",()=>S.registerDecoder),s.export(a,"registerEncoder",()=>S.registerEncoder),s.export(a,"RichImageData",()=>y.RichImageData),s.export(a,"AttachedFile",()=>y.AttachedFile);var n=e("./output.js"),o=e("./output-format.js"),l=e("./media-source.js"),c=e("./codec.js"),d=e("./encode.js"),u=e("./target.js"),m=e("./source.js"),h=e("./input-format.js"),p=e("./input.js"),f=e("./input-track.js"),g=e("./packet.js"),k=e("./sample.js"),b=e("./media-sink.js"),T=e("./conversion.js"),S=e("./custom-coder.js"),y=e("./metadata.js")},{"./output.js":!1,"./output-format.js":!1,"./media-source.js":!1,"./codec.js":!1,"./encode.js":!1,"./target.js":!1,"./source.js":"d2urb","./input-format.js":"eC3Vq","./input.js":"cI9DB","./input-track.js":!1,"./packet.js":!1,"./sample.js":!1,"./media-sink.js":"h5xyX","./conversion.js":!1,"./custom-coder.js":!1,"./metadata.js":!1,"@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",()=>S),s.export(a,"extractVideoCodecString",()=>y),s.export(a,"buildAudioCodecString",()=>x),s.export(a,"extractAudioCodecString",()=>I),s.export(a,"aacFrequencyTable",()=>w),s.export(a,"aacChannelMap",()=>E),s.export(a,"parseAacAudioSpecificConfig",()=>C),s.export(a,"buildAacAudioSpecificConfig",()=>P),s.export(a,"OPUS_SAMPLE_RATE",()=>A),s.export(a,"parsePcmCodec",()=>_),s.export(a,"inferCodecFromCodecString",()=>D),s.export(a,"getVideoEncoderConfigExtension",()=>F),s.export(a,"getAudioEncoderConfigExtension",()=>M),s.export(a,"validateVideoChunkMetadata",()=>j),s.export(a,"validateAudioChunkMetadata",()=>z),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"],m=[{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}],h=[{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=m.find(r=>e<=r.maxMacroblocks&&i<=r.maxBitrate)??(0,n.last)(m),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=h.find(r=>e<=r.maxPictureSize&&i<=r.maxBitrate)??(0,n.last)(h);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("."),a=Number(r[1]),i=Number(r[2]);return[1,1,a,2,1,i,3,1,Number(r[3]),4,1,r[4]?Number(r[4]):1]},S=e=>{let r=e.split("."),a=Number(r[1]),i=r[2],s=Number(i.slice(0,-1)),n=+("H"===i.slice(-1)),o=Number(r[3]),l=r[4]?Number(r[4]):0,c=r[5]?Number(r[5][0]):1;return[129,(a<<5)+s,(n<<7)+((8!==o)<<6)+0+(l<<4)+(c<<3)+((r[5]?Number(r[5][1]):1)<<2)+(r[5]?Number(r[5][2]):0),0]},y=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"),m=`vp09.${r}.${a}.${i}.${s}`;return(m+=`.${o}.${c}.${d}.${u}`).endsWith(g)&&(m=m.slice(0,-g.length)),m}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,m=i?.transfer?n.TRANSFER_CHARACTERISTICS_MAP[i.transfer]:1,h=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+=`.${m.toString().padStart(2,"0")}`,g+=`.${h.toString().padStart(2,"0")}`,(g+=`.${f}`).endsWith(k)&&(g=g.slice(0,-k.length)),g}throw TypeError(`Unhandled codec '${r}'.`)},x=(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=C(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}'.`)},w=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],E=[-1,1,2,3,4,5,6,8],C=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<w.length&&(s=w[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}},P=e=>{let r=w.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},A=48e3,B=/^pcm-([usf])(\d+)+(be)?$/,_=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=B.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(B.test(e))return e;return"webvtt"===e?"webvtt":null},F=e=>"avc"===e?{avc:{format:"avc"}}:"hevc"===e?{hevc:{format:"hevc"}}:{},M=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/.')},V=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm"],z=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(!V.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",()=>m),s.export(a,"writeBits",()=>h),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",()=>S),s.export(a,"COLOR_PRIMARIES_MAP_INVERSE",()=>y),s.export(a,"TRANSFER_CHARACTERISTICS_MAP",()=>x),s.export(a,"TRANSFER_CHARACTERISTICS_MAP_INVERSE",()=>I),s.export(a,"MATRIX_COEFFICIENTS_MAP",()=>w),s.export(a,"MATRIX_COEFFICIENTS_MAP_INVERSE",()=>E),s.export(a,"colorSpaceIsComplete",()=>C),s.export(a,"isAllowSharedBufferSource",()=>P),s.export(a,"AsyncMutex",()=>A),s.export(a,"bytesToHexString",()=>B),s.export(a,"reverseBitsU32",()=>_),s.export(a,"binarySearchExact",()=>D),s.export(a,"binarySearchLessOrEqual",()=>F),s.export(a,"insertSorted",()=>M),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",()=>V),s.export(a,"getUint24",()=>z),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",()=>Q),s.export(a,"UNDETERMINED_LANGUAGE",()=>$),s.export(a,"roundIfAlmostInteger",()=>X),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",()=>em),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",()=>eS),s.export(a,"uint8ArraysAreEqual",()=>ey),s.export(a,"polyfillSymbolDispose",()=>ex),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)},m=e=>{let r=u(e);return(1&r)==0?-(r>>1):r+1>>1},h=(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])),S={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},y=T(S),x={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},I=T(x),w={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},E=T(w),C=e=>!!e&&!!e.primaries&&!!e.transfer&&!!e.matrix&&void 0!==e.fullRange,P=e=>e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||ArrayBuffer.isView(e);class A{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 B=e=>[...e].map(e=>e.toString(16).padStart(2,"0")).join(""),_=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},F=(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},M=(e,r,a)=>{let i=F(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.")},V=e=>{throw Error(`Unexpected value: ${e}`)},z=(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)=>z(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=Q(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}}),Q=(e,r,a)=>Math.max(r,Math.min(a,e)),$="und",X=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,em=()=>null!==eu?eu:eu=!!("undefined"!=typeof navigator&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),eh=null,ep=()=>{if(null!==eh)return eh;if("undefined"==typeof navigator)return null;let e=/\bChrome\/(\d+)/.exec(navigator.userAgent);return e?eh=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},eS=e=>{let r="";for(let a=0;a<e.length;a++)r+=String.fromCharCode(e[a]);return btoa(r)},ey=(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},ex=()=>{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})}},{}],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",()=>m),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 m 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 h=(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??h,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),m=0,h=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),h<l&&p.push({start:h,end:l}),h=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===m&&(m=i-e)}}o.age=this.nextAge++}h<s&&p.push({start:h,end:s})}else p.push({start:i,end:s});if(u&&m>=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){},{}],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"}],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",()=>S),s.export(a,"Mp4InputFormat",()=>y),s.export(a,"QuickTimeInputFormat",()=>x),s.export(a,"MatroskaInputFormat",()=>I),s.export(a,"WebMInputFormat",()=>w),s.export(a,"Mp3InputFormat",()=>E),s.export(a,"WaveInputFormat",()=>C),s.export(a,"OggInputFormat",()=>P),s.export(a,"FlacInputFormat",()=>A),s.export(a,"AdtsInputFormat",()=>B),s.export(a,"MP4",()=>_),s.export(a,"QTFF",()=>D),s.export(a,"MATROSKA",()=>F),s.export(a,"WEBM",()=>M),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"),m=e("./mp3/mp3-reader.js"),h=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 S 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 y extends S{async _canReadInput(e){let r=await this._getMajorBrand(e);return!!r&&"qt "!==r}get name(){return"MP4"}get mimeType(){return"video/mp4"}}class x extends S{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 w 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,m.readNextFrameHeader)(e._reader,a,a+4096);if(!s)return!1;if(i)return!0;a=s.startPos+s.header.totalSize;let n=await (0,m.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 C 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 P 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,h.OggDemuxer)(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}}class A 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 B 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 _=new y,D=new x,F=new I,M=new w,R=new E,U=new C,L=new P,O=new B,N=new A,j=[_,D,F,M,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"),m=e("./isobmff-misc.js"),h=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,m.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,h.MIN_BOX_HEADER_SIZE,h.MAX_BOX_HEADER_SIZE);if(r instanceof Promise&&(r=await r),!r)break;let a=e,i=(0,h.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-h.MAX_BOX_HEADER_SIZE){let e=this.reader.requestSliceRange(a,h.MIN_BOX_HEADER_SIZE,h.MAX_BOX_HEADER_SIZE);if(e instanceof Promise&&(e=await e),e){let r=(0,h.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),m=r.sampleTimingEntries[u],h=(0,d.binarySearchLessOrEqual)(r.sampleTimingEntries,c,e=>e.startIndex),p=r.sampleTimingEntries[h],f=m.startDecodeTimestamp+(l-m.startIndex)*m.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,h.MIN_BOX_HEADER_SIZE,h.MAX_BOX_HEADER_SIZE);r instanceof Promise&&(r=await r),(0,d.assert)(r);let a=(0,h.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)w(r,i.timestamp);else{let e=(0,d.binarySearchLessOrEqual)(a,s.moofOffset-1,e=>e.moofOffset);-1!==e&&w(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-h.MIN_BOX_HEADER_SIZE&&this.traverseBox(e););}*iterateContiguousBoxes(e){let r=e.filePos;for(;e.filePos-r<=e.length-h.MIN_BOX_HEADER_SIZE;){let r=e.filePos,a=(0,h.readBoxHeader)(e);if(!a)break;yield{boxInfo:a,slice:e},e.filePos=r+a.totalSize}}traverseBox(e){let r=e.filePos,a=(0,h.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,h.readFixed_16_16)(e),(0,h.readFixed_16_16)(e),(0,h.readFixed_2_30)(e),(0,h.readFixed_16_16)(e),(0,h.readFixed_16_16)(e),(0,h.readFixed_2_30)(e),(0,h.readFixed_16_16)(e),(0,h.readFixed_16_16)(e),(0,h.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,h.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,h.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,h.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,h.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,h.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&&(w(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 m=null;4&i&&(m=(0,p.readU32Be)(e));let h=u;if(0===c){this.currentFragment.implicitBaseDataOffset=h;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!==m&&(k=m);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:h,byteSize:u,isKeyFrame:T}),h+=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=h}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,h.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,h.readMetadataStringShort)(s);break;case"©des":this.currentTrack||(this.metadataTags.description??=(0,h.readMetadataStringShort)(s));break;case"©ART":this.currentTrack||(this.metadataTags.artist??=(0,h.readMetadataStringShort)(s));break;case"©alb":this.currentTrack||(this.metadataTags.album??=(0,h.readMetadataStringShort)(s));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=(0,h.readMetadataStringShort)(s));break;case"©gen":this.currentTrack||(this.metadataTags.genre??=(0,h.readMetadataStringShort)(s));break;case"©day":if(!this.currentTrack){let e=new Date((0,h.readMetadataStringShort)(s));Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"©cmt":this.currentTrack||(this.metadataTags.comment??=(0,h.readMetadataStringShort)(s));break;case"©lyr":this.currentTrack||(this.metadataTags.lyrics??=(0,h.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,h.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=S(i,a),n=await this.fetchPacketForSampleIndex(s,r);return C(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=y(i,a),n=await this.fetchPacketForSampleIndex(s,r);return C(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=x(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 m=(0,d.binarySearchLessOrEqual)(this.internalTrack.fragmentLookupTable,a,e=>e.timestamp),p=-1!==m?this.internalTrack.fragmentLookupTable[m]: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,h.MIN_BOX_HEADER_SIZE,h.MAX_BOX_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e)break;let a=n,d=(0,h.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[m-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 S=(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)}},y=(e,r)=>{if(!e.keySampleIndices)return S(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=S(e,r),i=(0,d.binarySearchLessOrEqual)(e.keySampleIndices,a,e=>e);return e.keySampleIndices[i]??-1}},x=(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 m=u.startChunkIndex+Math.floor((r-u.startSampleIndex)/u.samplesPerChunk),h=e.chunkOffsets[m],p=u.startSampleIndex+(m-u.startChunkIndex)*u.samplesPerChunk,f=0,g=h;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:h,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},w=(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},C=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"}],"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",()=>S),u.export(a,"serializeAvcDecoderConfigurationRecord",()=>y),u.export(a,"deserializeAvcDecoderConfigurationRecord",()=>x),u.export(a,"parseAvcSps",()=>I),u.export(a,"extractHevcNalUnits",()=>w),u.export(a,"extractNalUnitTypeForHevc",()=>E),u.export(a,"extractHevcDecoderConfigurationRecord",()=>C),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",()=>V),u.export(a,"parseModesFromVorbisSetupPacket",()=>z),u.export(a,"determineVideoPacketType",()=>H),u.export(a,"FlacBlockType",()=>d),u.export(a,"readVorbisComments",()=>W),u.export(a,"createVorbisComments",()=>q);var m=e("./codec.js"),h=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,h.getUint24)(s,i,!1):4===r?n=s.getUint32(i,!1):((0,h.assertNever)(r),(0,h.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,h.toUint8Array)(r.description)[4])+1):p(e),T=e=>31&e[0],S=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,h.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}},y=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,h.assert)(null!==e.chromaFormat),(0,h.assert)(null!==e.bitDepthLumaMinus8),(0,h.assert)(null!==e.bitDepthChromaMinus8),(0,h.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)},x=e=>{try{let r=(0,h.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++),m=[];for(let i=0;i<u;i++){let i=r.getUint16(a,!1);a+=2,m.push(e.subarray(a,a+i)),a+=i}let p={configurationVersion:i,avcProfileIndication:s,profileCompatibility:n,avcLevelIndication:o,lengthSizeMinusOne:l,sequenceParameterSets:d,pictureParameterSets:m,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,h.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,h.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,h.readExpGolomb)(r),3===o&&r.skipBits(1),l=(0,h.readExpGolomb)(r),c=(0,h.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,h.readSignedExpGolomb)(r);s=(i+e+256)%256}i=0===s?i:s}}}(0,h.readExpGolomb)(r);let d=(0,h.readExpGolomb)(r);if(0===d)(0,h.readExpGolomb)(r);else if(1===d){r.skipBits(1),(0,h.readSignedExpGolomb)(r),(0,h.readSignedExpGolomb)(r);let e=(0,h.readExpGolomb)(r);for(let a=0;a<e;a++)(0,h.readSignedExpGolomb)(r)}(0,h.readExpGolomb)(r),r.skipBits(1),(0,h.readExpGolomb)(r),(0,h.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}},w=(e,r)=>r.description?f(e,(3&(0,h.toUint8Array)(r.description)[21])+1):p(e),E=e=>e[0]>>1&63,C=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,h.Bitstream)(g(o));l.skipBits(16),l.readBits(4);let d=l.readBits(3),u=l.readBits(1),{general_profile_space:m,general_tier_flag:f,general_profile_idc:k,general_profile_compatibility_flags:b,general_constraint_indicator_flags:T,general_level_idc:S}=P(l,d);(0,h.readExpGolomb)(l);let y=(0,h.readExpGolomb)(l);3===y&&l.skipBits(1),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),l.readBits(1)&&((0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l));let x=(0,h.readExpGolomb)(l),I=(0,h.readExpGolomb)(l);(0,h.readExpGolomb)(l);let w=l.readBits(1)?0:d;for(let e=w;e<=d;e++)(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l);(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),l.readBits(1)&&l.readBits(1)&&A(l),l.skipBits(1),l.skipBits(1),l.readBits(1)&&(l.skipBits(4),l.skipBits(4),(0,h.readExpGolomb)(l),(0,h.readExpGolomb)(l),l.skipBits(1));let C=(0,h.readExpGolomb)(l);if(B(l,C),l.readBits(1)){let e=(0,h.readExpGolomb)(l);for(let r=0;r<e;r++)(0,h.readExpGolomb)(l),l.skipBits(1)}l.skipBits(1),l.skipBits(1);let _=0;l.readBits(1)&&(_=D(l,d));let F=0;if(s.length>0){let e=s[0],r=new(0,h.Bitstream)(g(e));r.skipBits(16),(0,h.readExpGolomb)(r),(0,h.readExpGolomb)(r),r.skipBits(1),r.skipBits(1),r.skipBits(3),r.skipBits(1),r.skipBits(1),(0,h.readExpGolomb)(r),(0,h.readExpGolomb)(r),(0,h.readSignedExpGolomb)(r),r.skipBits(1),r.skipBits(1),r.readBits(1)&&(0,h.readExpGolomb)(r),(0,h.readSignedExpGolomb)(r),(0,h.readSignedExpGolomb)(r),r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let a=r.readBits(1),i=r.readBits(1);F=a||i?a&&!i?2:!a&&i?3:0:0}let M=[...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:m,generalTierFlag:f,generalProfileIdc:k,generalProfileCompatibilityFlags:b,generalConstraintIndicatorFlags:T,generalLevelIdc:S,minSpatialSegmentationIdc:_,parallelismType:F,chromaFormatIdc:y,bitDepthLumaMinus8:x,bitDepthChromaMinus8:I,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:d+1,temporalIdNested:u,lengthSizeMinusOne:3,arrays:M}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},P=(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}},A=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,h.readSignedExpGolomb)(e);for(let r=0;r<a;r++)(0,h.readSignedExpGolomb)(e)}else(0,h.readExpGolomb)(e)},B=(e,r)=>{let a=[];for(let i=0;i<r;i++)a[i]=_(e,i,r,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,h.readExpGolomb)(e)+1):r-1,e.readBits(1),(0,h.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,h.readExpGolomb)(e),a=(0,h.readExpGolomb)(e);for(let a=0;a<r;a++)(0,h.readExpGolomb)(e),e.readBits(1);for(let r=0;r<a;r++)(0,h.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,h.readExpGolomb)(e),(0,h.readExpGolomb)(e)),e.readBits(1),e.readBits(1),e.readBits(1),e.readBits(1)&&((0,h.readExpGolomb)(e),(0,h.readExpGolomb)(e),(0,h.readExpGolomb)(e),(0,h.readExpGolomb)(e)),e.readBits(1)&&(e.readBits(32),e.readBits(32),e.readBits(1)&&(0,h.readExpGolomb)(e),e.readBits(1)&&F(e,!0,r)),e.readBits(1)){e.readBits(1),e.readBits(1),e.readBits(1);let r=(0,h.readExpGolomb)(e);return(0,h.readExpGolomb)(e),(0,h.readExpGolomb)(e),(0,h.readExpGolomb)(e),(0,h.readExpGolomb)(e),r}return 0},F=(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,h.readExpGolomb)(e):o=1===e.readBits(1);let l=1;o||(l=(0,h.readExpGolomb)(e)+1),i&&M(e,l,n),s&&M(e,l,n)}},M=(e,r,a)=>{for(let i=0;i<r;i++)(0,h.readExpGolomb)(e),(0,h.readExpGolomb)(e),a&&((0,h.readExpGolomb)(e),(0,h.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,h.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),d=(c+1)*(r.readBits(16)+1),u=(0,h.last)(m.VP9_LEVEL_TABLE).level;for(let e of m.VP9_LEVEL_TABLE)if(d<=e.maxPictureSize){u=e.level;break}return{profile:i,level:u,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,h.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,h.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,h.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 m=d+1;e.skipBits(m);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,h.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],V=e=>({durationInSamples:j[e[0]>>3]}),z=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,h.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,h.isChromium)()||(0,h.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,h.Bitstream)(e);r.pos=8*a;let s=(0,h.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 w(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,h.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,h.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,h.Bitstream)(i);if(r.readBits(1))return null;return 0===r.readBits(2)?"key":"delta"}return null}default:(0,h.assertNever)(e),(0,h.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,h.toDataView)(e),i=0,s=a.getUint32(i,!0);i+=4;let n=h.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=h.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,h.base64ToBytes)(c),a=(0,h.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=h.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=h.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=h.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,h.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=h.textEncoder.encode(e.description??""),s=new Uint8Array(8+a.length+4+i.length+16+4+e.data.length),n=(0,h.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,h.bytesToBase64)(s))}break;case"raw":break;default:(0,h.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,h.toDataView)(d).setUint32(0,l.size,!0),i.splice(2,0,d);let u=new Uint8Array(i.reduce((e,r)=>e+r.length,0)),m=0;for(let e of i)u.set(e,m),m+=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",()=>m),s.export(a,"InputAudioTrack",()=>h);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 m}isAudioTrack(){return this instanceof h}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 m 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 h 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",()=>m),s.export(a,"customAudioEncoders",()=>h),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=[],m=[],h=[],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(m.includes(e))return void console.warn("Video encoder already registered.");m.push(e)}else if(e.prototype instanceof c){if(h.includes(e))return void console.warn("Audio encoder already registered.");h.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",()=>S),s.export(a,"VideoSampleSink",()=>w),s.export(a,"CanvasSink",()=>E),s.export(a,"AudioSampleSink",()=>A),s.export(a,"AudioBufferSink",()=>B);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"),m=e("./packet.js"),h=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 m.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 m.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 m.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 m.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,h=!1,p=null,g=[],k=()=>Math.max(2,g.length);(async()=>{let c=e??await this.getFirstPacket(a);for(;c&&!h&&!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(h)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()=>(h=!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 S{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)(),m=!1,h=!1,p=!1,f=null;(async()=>{let c,g=Error(),k=await this._createDecoder(l=>{if(d(),l.timestamp>=r&&(h=!0),h)return void 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(),S=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 x=b.packets(T??void 0,c);for(await x.next();S&&!h&&!this._track.input._disposed;){let e=y(a.length);if(a.length+k.getDecodeQueueSize()>e){({promise:l,resolve:d}=(0,u.promiseWithResolvers)()),await l;continue}k.decode(S);let r=await x.next();if(r.done)break;S=r.value}await x.return(),p||this._track.input._disposed||await k.flush(),k.close(),!i&&s&&a.push(s),m=!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(m)return{value:void 0,done:!0};await n}},return:async()=>(p=!0,h=!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,m=!1,h=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(),m)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=>{h||(r.stack=e.stack,h=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=y(i.length);for(;i.length+s.getDecodeQueueSize()>r&&!m;)({promise:o,resolve:l}=(0,u.promiseWithResolvers)()),await o;if(m)break;let a=await c.getNextPacket(e);(0,u.assert)(a),s.decode(a),e=a}b=-1},S=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),m||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 S()),p(null),f=null;continue}f&&(i.sequenceNumber!==k.sequenceNumber||r.timestamp<f.timestamp)&&(await T(),await S()),a.push(r.timestamp),b=Math.max(r.sequenceNumber,b),f=r,k=i}m||this._track.input._disposed||(-1!==b&&await T(),await S()),s.close(),d=!0,n()})().catch(e=>{h||(h=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(m)return{value:void 0,done:!0};else if(h)throw k(),h;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()=>(m=!0,l(),n(),k(),{value:void 0,done:!0}),async throw(e){throw e},[Symbol.asyncIterator](){return this}}}}let y=e=>0===e?40:8;class x 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;let 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{let 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)()){let e=(0,o.deserializeAvcDecoderConfigurationRecord)((0,u.toUint8Array)(this.decoderConfig.description));if(e&&e.sequenceParameterSets.length>0){let 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");let 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 w extends S{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 x(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.");let 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],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 w(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 C 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;let 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 P 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;let{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,h.fromUlaw)(e.getUint8(r)):"alaw"===i?this.readInputValue=(e,r)=>(0,h.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 A extends S{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 P(e,r,i):new C(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 B{constructor(e){if(!(e instanceof d.InputAudioTrack))throw TypeError("audioTrack must be an InputAudioTrack.");this._audioSampleSink=new A(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"}],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",()=>m),s.export(a,"validateCropRectangle",()=>h),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.");let 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,m=this.displayWidth,h=this.displayHeight,p=0,f=0,g=this.displayWidth,k=this.displayHeight;if(void 0!==n?(d=r,u=a,m=i,h=s,p=n,f=o,void 0!==l?(g=l,k=c):(g=m,k=h)):(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(m)||m<0)throw TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(h)||h<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:m,sHeight:h}=this._rotateSourceRegion(d,u,m,h,this.rotation));let b=this.toCanvasImageSource();e.save();let T=p+g/2,S=f+k/2;e.translate(T,S),e.rotate(this.rotation*Math.PI/180);let y=this.rotation%180==0?1:g/k;e.scale(1/y,y),e.drawImage(b,d,u,m,h,-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&&h(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&&m(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],m="contain"===r.fit?Math.min(o/e,l/c):Math.max(o/e,l/c);s=e*m,n=c*m,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,m=(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)},h=(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,S(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.");let 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.");let 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 m=void 0!==s?s:c-u;if(m>c-u)throw RangeError("frameCount out of range");let h=g(l),f=k(l);if(f&&a>=d||!f&&0!==a)throw RangeError("planeIndex out of range");let y=f?m:m*d;if(e.byteLength<y*h)throw RangeError("Destination buffer is too small");let x=(0,n.toDataView)(e),I=T(l);if(S(this._data))if(f)if("f32-planar"===l)this._data.copyTo(e,{planeIndex:a,frameOffset:u,frameCount:m,format:"f32-planar"});else{let e=new ArrayBuffer(4*m),r=new Float32Array(e);this._data.copyTo(r,{planeIndex:a,frameOffset:u,frameCount:m,format:"f32-planar"});let i=new DataView(e);for(let e=0;e<m;e++)I(x,e*h,i.getFloat32(4*e,!0))}else{let e=new Float32Array(m);for(let r=0;r<d;r++){this._data.copyTo(e,{planeIndex:r,frameOffset:u,frameCount:m,format:"f32-planar"});for(let a=0;a<m;a++)I(x,(a*d+r)*h,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<m;e++)if(f)I(x,e*h,s(r,l?(a*c+(e+u))*o:((e+u)*d+a)*o));else for(let a=0;a<d;a++)I(x,(e*d+a)*h,s(r,l?(a*c+(e+u))*o:((e+u)*d+a)*o))}}clone(){if(this._closed)throw Error("AudioSample is closed.");if(!S(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),S(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw Error("AudioSample is closed.");if(!S(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)}},S=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",()=>m),s.export(a,"readFixed_2_30",()=>h),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}},m=e=>(0,l.readI32Be)(e)/65536,h=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"}],"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",()=>m),s.export(a,"readU16",()=>h),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",()=>S),s.export(a,"readI32Le",()=>y),s.export(a,"readU64",()=>x),s.export(a,"readU64Be",()=>I),s.export(a,"readI64Be",()=>w),s.export(a,"readI64Le",()=>E),s.export(a,"readF32Be",()=>C),s.export(a,"readF64Be",()=>P),s.export(a,"readAscii",()=>A);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},m=e=>(d(e,1),e.view.getUint8(e.bufferPos++)),h=(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},S=e=>{d(e,4);let r=e.view.getInt32(e.bufferPos,!1);return e.bufferPos+=4,r},y=e=>{d(e,4);let r=e.view.getInt32(e.bufferPos,!0);return e.bufferPos+=4,r},x=(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),w=e=>0x100000000*S(e)+b(e),E=e=>{let r=T(e);return 0x100000000*y(e)+r},C=e=>{d(e,4);let r=e.view.getFloat32(e.bufferPos,!1);return e.bufferPos+=4,r},P=e=>{d(e,8);let r=e.view.getFloat64(e.bufferPos,!1);return e.bufferPos+=8,r},A=(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"}],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",()=>m),o.export(a,"EBMLUnicodeString",()=>h),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",()=>S),o.export(a,"EBMLWriter",()=>y),o.export(a,"MAX_VAR_INT_SIZE",()=>x),o.export(a,"MIN_HEADER_SIZE",()=>I),o.export(a,"MAX_HEADER_SIZE",()=>w),o.export(a,"readVarIntSize",()=>E),o.export(a,"readVarInt",()=>C),o.export(a,"readUnsignedInt",()=>P),o.export(a,"readUnsignedBigInt",()=>A),o.export(a,"readSignedInt",()=>B),o.export(a,"readElementId",()=>_),o.export(a,"readElementSize",()=>D),o.export(a,"readElementHeader",()=>F),o.export(a,"readAsciiString",()=>M),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 m{constructor(e){this.value=e}}class h{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},S=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 y{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=S(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 m){let r=e.size??T(e.data.value);this.writeVarInt(r),this.writeSignedInt(e.data.value,r)}else if(e.data instanceof h){let r=l.textEncoder.encode(e.data.value);this.writeVarInt(r.length),this.writer.write(r)}else(0,l.assertNever)(e.data)}}let x=8,I=2,w=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},C=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},P=(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},A=(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},B=(e,r)=>{let a=P(e,r);return a&1<<8*r-1&&(a-=2**(8*r)),a},_=e=>{let r=E(e);return null===r?null:P(e,r)},D=e=>{let r=(0,c.readU8)(e);return 255===r?r=null:(e.skip(-1),0x100000000000000===(r=C(e))&&(r=null)),r},F=e=>{let r=_(e);return null===r?null:{id:r,size:D(e)}},M=(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,w);if(r instanceof Promise&&(r=await r),!r)break;let a=F(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<x)break;for(let e=0;e<r.length-x;e++){r.filePos=n;let e=_(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 m=e("../codec-data.js"),h=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"),S=e("./matroska-misc.js"),y=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 x=[{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,S.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=x.findIndex(e=>e.id===s);if(-1!==l){let e=x[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=x.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=y.FileSlice.tempFromBytes(i.data),n=[],o=(0,y.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,y.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,y.readBytes)(s,d),m=i.timestamp+c*r/o,h=c/o;e.splice(a+r,0,{timestamp:m,duration:h,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=h.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 C(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,y.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,y.readI16Be)(e),o=(0,y.readU8)(e),l=!!(128&o);a.track.info?.type==="audio"&&a.track.info.codec&&(l=!0);let c=(0,y.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,y.readI16Be)(e),o=(0,y.readU8)(e),l=(0,y.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,y.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,y.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,y.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,y.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 w{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 m=(0,k.binarySearchLessOrEqual)(this.internalTrack.cuePoints,a,e=>e.time),h=-1!==m?this.internalTrack.cuePoints[m]:null,p=(0,k.binarySearchLessOrEqual)(this.internalTrack.clusterPositionCache,a,e=>e.startTimestamp),f=-1!==p?this.internalTrack.clusterPositionCache[p]:null,g=Math.max(h?.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,m=(0,T.readElementHeader)(e);if(!m||!T.LEVEL_1_EBML_IDS.includes(m.id)&&m.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 h=m.id,p=m.size,f=e.filePos;if(h===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)(h!==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(h&&(!d||d.elementStartPos<h.clusterPosition)){let e=this.internalTrack.cuePoints[m-1];(0,k.assert)(!e||e.time<h.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 w{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,h.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,m.extractAvcDecoderConfigurationRecord)(e.data):null,hevcCodecInfo:"hevc"===this.internalTrack.info.codec&&e?(0,m.extractHevcDecoderConfigurationRecord)(e.data):null,vp9CodecInfo:"vp9"===this.internalTrack.info.codec&&e?(0,m.extractVp9CodecInfoFromPacket)(e.data):null,av1CodecInfo:"av1"===this.internalTrack.info.codec&&e?(0,m.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 C extends w{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,h.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"),m=e("../id3.js"),h=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,m.ID3_V2_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let r=(0,m.readId3V2Header)(e);if(!r)break;this.lastLoadedPos=e.filePos+r.size}let e=await (0,h.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,m.ID3_V2_HEADER_SIZE);if(a instanceof Promise&&(a=await a),!a)break;let i=(0,m.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,m.parseId3V2Tag)(s,i,this.metadataTags),e=a.filePos+i.size}if(!r&&null!==this.reader.fileSize&&this.reader.fileSize>=m.ID3_V1_TAG_SIZE){let e=this.reader.requestSlice(this.reader.fileSize-m.ID3_V1_TAG_SIZE,m.ID3_V1_TAG_SIZE);e instanceof Promise&&(e=await e),(0,c.assert)(e);let r=(0,p.readAscii)(e,3);"TAG"===r&&(0,m.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",()=>m),s.export(a,"readFrameHeader",()=>h),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,m=(e,r)=>3===e?3===r?21:36:3===r?13:21,h=(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,m=0;16&s?d=8&s?0:1:(d=1,m=1);let h=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+m,T=u(d,p,k,b,n>>1&1);return null!==r&&r<T?{header:null,bytesAdvanced:1}:(a=3===h?3===p?384:1152:3===p?384:2===p?1152:576,{header:{totalSize:T,mpegVersionId:h,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",()=>h),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",()=>S),c.export(a,"Id3V2Writer",()=>y);var d=e("../shared/mp3-misc.js"),u=e("./misc.js"),m=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 h=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,m.readBytes)(e,h-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,m.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,m.readU8)(e);d<f.length&&(r.genre??=f[d])},k=(e,r)=>{let a=(0,m.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,m.readAscii)(e,3),i=(0,m.readU8)(e),s=(0,m.readU8)(e),n=(0,m.readU8)(e),o=(0,m.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,m.readBytes)(e,r.size),s=new S(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 S{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 y{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"),m=e("../packet.js"),h=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 m=d.getUint8(28);r.codecInfo.vorbisInfo={blocksizes:[1<<(15&m),1<<(m>>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,h.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,m.EncodedPacket)(a.metadataOnly?m.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 m=!1;if(d.serialNumber===this.bitstream.serialNumber)m=!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,h.readBytes)(e,d.totalSize);m=(0,p.computeOggPageCrc)(r)===d.checksum}if(!m){r=d.headerStartPos+4;continue}if(m&&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 S=null,y=g,x=0;if(g.headerStartPos===n.startPage.headerStartPos)a=this.granulePositionToTimestampInSamples(0),i=!0,S=0;else{a=0,i=!1;for(let e=g.lacingValues.length-1;e>=0;e--)if(g.lacingValues[e]<255){S=e+1;break}if(null===S)throw Error("Invalid page with granule position: no packets end on this page.");x=S-1;let e={data:m.PLACEHOLDER_DATA,endPage:y,endSegmentIndex:x};if(await this.demuxer.findNextPacketStart(e)){let e=T(k,g,S);(0,u.assert)(e);let r=b(k,e.page,e.segmentIndex);r&&(g=r.page,S=r.segmentIndex)}else for(;;){let e=T(k,g,S);if(!e)break;let r=b(k,e.page,e.segmentIndex);if(!r)break;if(g=r.page,S=r.segmentIndex,e.page.headerStartPos!==y.headerStartPos){y=e.page,x=e.segmentIndex;break}}}let I=null,w=null;for(;null!==g;){(0,u.assert)(null!==S);let e=await this.demuxer.readPacket(g,S);if(!e)break;if(!(g.headerStartPos===n.startPage.headerStartPos&&S<n.startSegmentIndex)){let n=this.createEncodedPacketFromOggPacket(e,{timestampInSamples:a,vorbisLastBlocksize:w?.vorbisBlockSize??null},r);(0,u.assert)(n);let o=this.encodedPacketToMetadata.get(n);if((0,u.assert)(o),i||e.endPage.headerStartPos!==y.headerStartPos||e.endSegmentIndex!==x?a+=o.durationInSamples:(a=this.granulePositionToTimestampInSamples(g.granulePosition),i=!0,n=this.createEncodedPacketFromOggPacket(e,{timestampInSamples:a-o.durationInSamples,vorbisLastBlocksize:w?.vorbisBlockSize??null},r),(0,u.assert)(n),o=this.encodedPacketToMetadata.get(n),(0,u.assert)(o)),I=n,w=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,S=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",()=>m);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}},m=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",()=>m);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 m=27+d,h=u.reduce((e,r)=>e+r,0);return{headerStartPos:r,totalSize:m+h,dataStartPos:r+m,dataSize:h,headerType:a,granulePosition:i,serialNumber:s,sequenceNumber:l,checksum:c,lacingValues:u}},m=(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"),m=e("../packet.js"),h=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,h.readAscii)(e,4),a="RIFX"!==r,i="RF64"===r,s=(0,h.readU32)(e,a),n=i?this.reader.fileSize:Math.min(s+8,this.reader.fileSize??1/0);if("WAVE"!==(0,h.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,h.readAscii)(e,4),s=(0,h.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,h.readU64)(e,a);l=(0,h.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 m=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/m)*m,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,h.readU16)(s,a),l=(0,h.readU16)(s,a),c=(0,h.readU32)(s,a);s.skip(4);let d=(0,h.readU16)(s,a);if((i=14===r?8:(0,h.readU16)(s,a),r>=18&&357!==o)&&Math.min(r-18,(0,h.readU16)(s,a))>=22&&o===n.EXTENSIBLE){s.skip(6);let e=(0,h.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,h.readAscii)(i,4);if("INFO"!==s&&"INF0"!==s)return;let n=i.filePos;for(;n<=e+r-8;){i.filePos=n;let e=(0,h.readAscii)(i,4),r=(0,h.readU32)(i,a),s=(0,h.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=m.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,h.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,m.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 m=i.readBits(2)+1;if(1!==m)throw Error("ADTS frames with more than one AAC frame are not supported.");let h=null;return 1===s?e.filePos-=2:h=i.readBits(16),{objectType:l,samplingFrequencyIndex:c,channelConfiguration:d,frameLength:u,numberOfAacFrames:m,crcCheck:h,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"),m=e("../metadata.js"),h=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,h.MIN_FRAME_HEADER_SIZE,h.MAX_FRAME_HEADER_SIZE);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let r=(0,h.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?h.MAX_FRAME_HEADER_SIZE:h.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{...m.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"),m=e("../metadata.js"),h=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),m=s.readBits(24),h=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:h,totalSamples:g,minimumBlockSize:n,maximumBlockSize:o,minimumFrameSize:d,maximumFrameSize:m,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),m=(0,u.readBytes)(r,d);this.metadataTags.images??=[],this.metadataTags.images.push({data:m,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,h.getBlockSizeOrUncommon)(s.readBits(4));if(!n)return null;(0,c.assert)(this.audioInfo);let o=(0,h.getSampleRateOrUncommon)(s.readBits(4),this.audioInfo.sampleRate);if(!o||(s.readBits(4),s.readBits(3),0!==s.readBits(1)))return null;let l=(0,h.readCodedNumber)(e),d=(0,h.readBlockSize)(e,n),m=(0,h.readSampleRate)(e,o);if(null===m||m!==this.audioInfo.sampleRate)return null;let p=e.filePos-a,f=(0,u.readU8)(e);return(e.skip(-p),e.skip(-1),f!==(0,h.calculateCrc8)((0,u.readBytes)(e,p)))?null:{num:l,blockSize:d,sampleRate:m}}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{...m.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",()=>m),s.export(a,"calculateCrc8",()=>h);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)),m=(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,h=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,m=null,h=null,p=0,f=0,g=0,k=0,b=NaN,T=null,S=0,y=!1,x=1,I=!1;async function w(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 C(){await m?.return(),m=null}function P(){r.clearRect(0,0,e.width,e.height)}async function A(e){if(await C(),!u)return;m=u.canvases(e);let i=(await m.next()).value??null;h=(await m.next()).value??null,i?(r.drawImage(i.canvas,0,0),a.emit("loadeddata")):E()}async function B(a){if(m)for(;;){let i=(await m.next()).value??null;if(!i||a!==f)return;let n=T.currentTime;if(o){let a=Math.max(.06,s/Math.max(1,x));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{h=i;return}}else if(i.timestamp<=n)r.clearRect(0,0,e.width,e.height),r.drawImage(i.canvas,0,0);else{h=i;return}}}function _(){if(!T)return;let s=T.currentTime,n=Date.now();if(n-S>=i&&(a.emit("timeupdate"),S=n),Number.isFinite(b)&&s>=b){D(),a.emit("ended");return}h&&h.timestamp<=s?(r.clearRect(0,0,e.width,e.height),r.drawImage(h.canvas,0,0),h=null,B(f),y&&(a.emit("canplay"),a.emit("playing"),y=!1)):!h&&(B(f),!h&&Number.isFinite(b)&&s<b&&!y&&(y=!0,a.emit("waiting"))),p=requestAnimationFrame(_)}function D(){cancelAnimationFrame(p)}return{load:async function r(r,a){let i=++f;if(await C(),P(),I=!1,!await w(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,P(),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 A(0)},start:function(e){T=e,f++,y=!1,B(f),p=requestAnimationFrame(_)},stop:D,seek:async function e(e){f++,await A(e)},setPlaybackRate:function(e){x=Math.max(.1,Number(e)||1)},destroy:function(){f++,D(),C(),I=!1,d=null,u=null},get width(){return g},get height(){return k},get duration(){return b}}}},{mediabunny:"5c8Rl","@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",{});