UNPKG

@omnimedia/omnitool

Version:

open source video processing tools

7 lines 204 kB
function ur(n,e){return{error:t=>n.error({...e,...t}),rpcRequest:t=>n.rpcRequest({...e,...t}),rpcError:t=>n.rpcError({...e,...t})}}var at=()=>n=>({plain:n.none,errMessage:n.mix(n.brightRed,n.bold),errName:n.red,errStack:n.mix(n.red,n.dim),timestamp:n.blue,timestampErr:n.red});function Kr(){return at()}var te=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var ot=()=>({none:n=>n,uncolor:kn,mix:xn,hex:Sn,rgb:Gr,bgRgb:Tn});function kn(n){return n.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function xn(...n){return e=>{for(let t of n)e=t(e);return e}}function Sn(n){n=n.replace(/^#/,"");let e,t,r,s;if(n.length===3)e=parseInt(n.split("").map(i=>i+i).join(""),16);else if(n.length===6)e=parseInt(n,16);else throw new Error("Invalid hex color");return t=e>>16&255,r=e>>8&255,s=e&255,Gr(t,r,s)}function Gr(n,e,t){let r=`\x1B[38;2;${n};${e};${t}m`;return s=>`${r}${s}${te.reset}`}function Tn(n,e,t){let r=`\x1B[48;2;${n};${e};${t}m`;return s=>`${r}${s}${te.reset}`}var He={...Object.fromEntries(Object.entries(te).map(([n])=>[n,e=>e])),...ot()};var We={...Object.fromEntries(Object.entries(te).map(([n,e])=>[n,t=>`${e}${t}${te.reset}`])),...ot()};function mr(){return typeof Deno<"u"&&typeof Deno.version<"u"}function hr(){return typeof process<"u"&&process.versions&&process.versions.node}function Xr(){return hr()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":mr()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var fr=()=>Xr()?We:He;var ct=()=>({colors:n,theme:e})=>{let t=e(n);function r(a){let o=a.stack?` `+a.stack+` `:"";return[t.errName(a.name+":"),t.errMessage(a.message)].join(" ")+t.errStack(o)}function s(a){return a&&a instanceof Error?r(a):a}function i(a){return a&&a instanceof Error?r(a):t.errMessage(a)}return{stdout:a=>a.map(s),stderr:a=>a.map(i)}};function je(...n){return e=>({stdout:t=>{for(let r of n)t=r(e).stdout(t);return t},stderr:t=>{for(let r of n)t=r(e).stderr(t);return t}})}function vn(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var dt=n=>({colors:e,theme:t})=>{let r={...vn(),...n},s=t(e),i=new Date(r.now()),a=i.getUTCFullYear().toString().padStart(4,"0"),o=(i.getUTCMonth()+1).toString().padStart(2,"0"),c=i.getUTCDate().toString().padStart(2,"0"),l=`${a}-${o}-${c}`,d=i.getUTCHours().toString().padStart(2,"0"),u=i.getUTCMinutes().toString().padStart(2,"0"),h=i.getUTCSeconds().toString().padStart(2,"0"),m=i.getUTCMilliseconds().toString().padStart(3,"0"),f=`${d}:${u}:${h}.${m}`,w=`${l}::${f}`;return{stdout:g=>[s.timestamp(w),...g],stderr:g=>[s.timestampErr(w),...[r.icon].filter(Boolean),...g]}};function Qr(){return je(ct(),dt())}var lt=()=>({stdout:async n=>{await Deno.stdout.write(new TextEncoder().encode(n+` `))},stderr:async n=>{await Deno.stderr.write(new TextEncoder().encode(n+` `))}});var ut=()=>({stdout:async n=>void process.stdout.write(n+` `),stderr:async n=>void process.stderr.write(n+` `)});var mt=()=>({stdout:async n=>console.log(n),stderr:async n=>console.error(n)});var Yr=()=>mr()?lt():hr()?ut():mt();var Zr=()=>({stdout:async()=>{},stderr:async()=>{}});function Jr(){return()=>({stdout:n=>n,stderr:n=>n})}var Ce=class n{static writers={auto:Yr,void:Zr,deno:lt,node:ut,console:mt};static colors={auto:fr,colorful:()=>We,colorless:()=>He};static themes={auto:Kr,basic:at};static shapers={auto:Qr,none:Jr,errors:ct,timestamp:dt};writer=n.writers.auto();colors=n.colors.auto();theme=n.themes.auto();shaper=n.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=je(...e),this}};var $e=class extends Ce{static dummy(){return new this().setWriter(Ce.writers.void())}rpcRequest=async({request:e,...t})=>{let r=this.colors.none;this.log(...this.#e(t),r(`${e.method}()`))};rpcError=async({request:e,error:t,...r})=>{this.error(...this.#e(r),`${e.method}()`,t)};#e({meta:e,label:t,remote:r}){let s=this.colors.mix(this.colors.blue,this.colors.dim),i=this.colors.mix(this.colors.cyan,this.colors.dim);return[e?this.#t(e):void 0,t||void 0,r===void 0?void 0:r?s("<-"):i("->")].filter(Boolean)}#t(e){let{headers:t}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var q=class extends $e{rpcRequest=async()=>{}};var K=Object.freeze({eq(n,e){if(n.length!==e.length)return!1;for(let t=0;t<=n.length;t++)if(n.at(t)!==e.at(t))return!1;return!0},random(n){return crypto.getRandomValues(new Uint8Array(n))}});var oe=Object.freeze({fromBytes(n){return[...n].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(n){if(n.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(n.length/2);for(let t=0;t<n.length;t+=2)e[t/2]=parseInt(n.slice(t,t+2),16);return e},random(n=32){return this.fromBytes(K.random(n))},string(n){return oe.fromBytes(n)},bytes(n){return oe.toBytes(n)}});var pr=58,ht="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",gr=Object.freeze({fromBytes(n){let e=BigInt("0x"+oe.fromBytes(n)),t="";for(;e>0;){let r=e%BigInt(pr);e=e/BigInt(pr),t=ht[Number(r)]+t}for(let r of n)if(r===0)t=ht[0]+t;else break;return t},toBytes(n){let e=BigInt(0);for(let a of n){let o=ht.indexOf(a);if(o===-1)throw new Error(`Invalid character '${a}' in base58 string`);e=e*BigInt(pr)+BigInt(o)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=oe.toBytes(t),s=0;for(let a of n)if(a===ht[0])s++;else break;let i=new Uint8Array(s+r.length);return i.set(r,s),i},random(n=32){return this.fromBytes(K.random(n))},string(n){return gr.fromBytes(n)},bytes(n){return gr.toBytes(n)}});var es=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,r)=>[t,r])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,c=0,l=[];for(let d of e){if(d===this.lexicon.padding?.character)continue;let u=this.lookup[d];if(u===void 0)throw new Error(`Invalid character: ${d}`);for(o=o<<t|u,c+=t;c>=8;)c-=8,l.push(o>>c&255)}return new Uint8Array(l)}let r=0n,s=BigInt(this.lexicon.characters.length),i=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),i=!0);for(let o of e){let c=this.lookup[o];if(c===void 0)throw new Error(`Invalid character: ${o}`);r=r*s+BigInt(c)}let a=[];for(;r>0n;)a.unshift(Number(r%256n)),r=r/256n;return new Uint8Array(a)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,o=0,c="";for(let l of e)for(a=a<<8|l,o+=8;o>=t;){o-=t;let d=a>>o&(1<<t)-1;c+=this.lexicon.characters[d]}if(o>0){let l=a<<t-o&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let r=0n;for(let a of e)r=(r<<8n)+BigInt(a);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),i="";for(;r>0n;)i=this.lexicon.characters[Number(r%s)]+i,r=r/s;return i}toInteger(e){if(!e)return 0;let t=0n,r=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),r=!0);for(let i of e){let a=this.lookup[i];if(a===void 0)throw new Error(`Invalid character: ${i}`);t=t*s+BigInt(a)}return Number(r?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,r=BigInt(t?-e:e);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),i="";for(;r>0n;)i=this.lexicon.characters[Number(r%s)]+i,r=r/s;return t?`${this.negativePrefix}${i}`:i}random(e=32){return this.fromBytes(K.random(e))}};var yr=Object.freeze({fromBytes(n){return typeof btoa=="function"?btoa(String.fromCharCode(...n)):Buffer.from(n).toString("base64")},toBytes(n){return typeof atob=="function"?Uint8Array.from(atob(n),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(n,"base64"))},random(n=32){return this.fromBytes(K.random(n))},string(n){return yr.fromBytes(n)},bytes(n){return yr.toBytes(n)}});var ts=Object.freeze({fromBytes(n){return new TextDecoder().decode(n)},toBytes(n){return new TextEncoder().encode(n)},string(n){return ts.fromBytes(n)},bytes(n){return ts.toBytes(n)}});var ft=Object.freeze({set:n=>n!=null,unset:n=>n==null,boolean:n=>typeof n=="boolean",number:n=>typeof n=="number",string:n=>typeof n=="string",bigint:n=>typeof n=="bigint",object:n=>typeof n=="object"&&n!==null,array:n=>Array.isArray(n),fn:n=>typeof n=="function",symbol:n=>typeof n=="symbol"});function rs(n){let e=Promise.resolve();return(...t)=>{let r=()=>n(...t),s=e.then(r);return e=s.catch(()=>{}),s}}function ss(...n){return(...e)=>n.forEach(t=>t(...e))}var qe=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function pt(n,e){return n<=0||n===1/0?e():new Promise((t,r)=>{let s=setTimeout(()=>r(new qe(n)),n);e().then(t).catch(r).finally(()=>clearTimeout(s))})}function j(){let n,e,t=new Promise((s,i)=>{n=s,e=i});function r(s){return s.then(n).catch(e),t}return{promise:t,resolve:n,reject:e,entangle:r}}function ns(n,e){let t=n;for(let r of e)if(t=t[r],ft.unset(t))break;return t}function Cn(n){return{map:e=>is(n,e),filter:e=>as(n,e)}}Cn.pipe=Object.freeze({map:n=>e=>is(e,n),filter:n=>e=>as(e,n)});var is=(n,e)=>Object.fromEntries(Object.entries(n).map(([t,r])=>[t,e(r,t)])),as=(n,e)=>Object.fromEntries(Object.entries(n).filter(([t,r])=>e(r,t)));function os(){let n=new Set;function e(i){return n.add(i),()=>{n.delete(i)}}async function t(...i){await Promise.all([...n].map(a=>a(...i)))}async function r(){let{promise:i,resolve:a}=j(),o=e((...c)=>{a(c),o()});return i}function s(){n.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=r,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=r,t.clear=s,[t,e]}function gt(n){let e=os()[1];return n&&e.sub(n),e}function yt(n){let e=os()[0];return n&&e.sub(n),e}var Y=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var re;(function(n){n.version="2.0";function e(t){return"id"in t?t.id:null}n.getId=e,n.errorCodes={serverError:-32e3,unexposedError:-32001}})(re||(re={}));var wt=class extends Error{name=this.constructor.name},ce=class extends Error{name=this.constructor.name};async function cs({tap:n,request:e,action:t}){let r=re.getId(e);try{let s=await t();return r===null?null:{id:r,result:s,jsonrpc:re.version}}catch(s){return n.rpcError({request:e,error:s}),r===null?null:{id:r,jsonrpc:re.version,error:s instanceof wt?{code:re.errorCodes.serverError,message:s.message}:{code:re.errorCodes.unexposedError,message:"unexposed error"}}}}function bt(n){let e=n.tap??new q;return async t=>{let r=t.method.split("."),s=ns(n.fns,r),i=async()=>await s(...t.params);return e.rpcRequest({request:t}),await cs({tap:e,request:t,action:i})}}var Pe=Symbol("tune"),Pn=Symbol("query"),Rn=Symbol("notify"),In=Symbol("settings");function ds(n){function e(t){let r={notify:void 0};return new Proxy(()=>{},{apply:(s,i,a)=>n(t,a,r),get:(s,i)=>{if(i!=="then")return i===Pe?a=>(...o)=>n(t,o,{...r,...a}):i===Rn?(...a)=>n(t,a,{...r,notify:!0}):i===Pn?(...a)=>n(t,a,{...r,notify:!1}):i===In?r:(s[i]||(s[i]=e([...t,i])),s[i])},set:(s,i,a)=>(s[i]=a,!0)})}return e([])}function de(n){let{endpoint:e,tap:t=new q}=n,r=1;return ds(async(s,i,a)=>{let o=a.notify??n.notify??!1,c=a.transfer,l={jsonrpc:"2.0",method:s.join("."),params:i},d=o?l:{...l,id:r++};t.rpcRequest({request:d});let u=await e(d,{transfer:c});if(o&&!u)return null;if(!u)throw new ce("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new ce(n.label?`${n.label}: ${u.error.message}`:u.error.message);return u.result})}function Ke(n){return de({endpoint:bt(n),tap:n.tap})}var le=class{recv=yt();sendRequest=yt();sendResponse=yt();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,r=new this,s=[t.sendRequest.sub(a=>r.recv(a,{origin:e})),t.sendResponse.sub(a=>r.recv(a,{origin:e})),r.sendRequest.sub(a=>t.recv(a,{origin:e})),r.sendResponse.sub(a=>t.recv(a,{origin:e}))];return[t,r,()=>s.forEach(a=>a())]}};function kt(n,e){return n.addEventListener("message",e),()=>n.removeEventListener("message",e)}function ls(n,e){return async(t,{transfer:r}={})=>{if("id"in t){let s=j();return e(t,r,s.promise),n.wait(t.id,t.method).then(i=>(s.resolve(i),i))}else{let s=Promise.resolve(null);return e(t,r,s),s}}}function us(n){let e=[],t=[];for(let r of Array.isArray(n)?n:[n])"method"in r?e.push(r):t.push(r);return{requests:e,responses:t}}async function ms(n,e){let t=(await Promise.all(e.map(async r=>n(r)))).filter(r=>r!==null);return t.length===0?null:t.length===1?t[0]:t}var Re=class extends le{#e=new Y;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,r)=>e.postMessage(t,r)),this.sendResponse.sub((t,r)=>e.postMessage(t,r)),kt(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var xt=class{remote;transfer;constructor(e){this.remote=e}};var wr=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var St=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let r=j();return this.pending.set(e,{method:t,deferred:r}),await pt(this.timeout,()=>r.promise).catch(s=>{throw s instanceof qe&&(s.message=`request #${e} ${t}(), ${s.message}`),s})}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new ce(e.error.message)):t.deferred.resolve(e))}};var ue=class{options;remote;remoteEndpoint;#e;#t=new Y;constructor(e){this.options=e;let{conduit:t,tap:r}=e;this.#e=new St(e.timeout??wr.timeout),this.remoteEndpoint=ls(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=de({endpoint:this.remoteEndpoint,tap:r&&ur(r,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new xt(this.remote),{conduit:r,rpc:s,tap:i}=this.options,{requests:a,responses:o}=us(e);for(let u of o)this.#e.deliverResponse(u);if(!s)return;let c=await s(t),l=bt({fns:c,tap:i&&ur(i,{remote:!1})}),d=await ms(l,a);d&&await r.sendResponse(d,t.transfer)}dispose(){this.#t.dispose()}};var Z={derive:{host:n=>({host:n.remote.host,get transfer(){return n.transfer},set transfer(e){n.transfer=e}}),work:n=>({work:n.remote,get transfer(){return n.transfer},set transfer(e){n.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var J=new q;async function hs(n,e,t={}){let r=t.tap??J,s=new ue({tap:r,timeout:t.timeout??1/0,conduit:new Re(n.getSelf()),rpc:async i=>e(Z.derive.host(i))});return await s.remote.infra.ready(),s.remote.host}var Ie=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let r=t.tap??J,s=t.label??"comrade",i=e.loadWorker(t.workerUrl,s),a=j(),o={async ready(){a.resolve()}},c=new ue({tap:r,timeout:t.timeout??1/0,conduit:new Re(i),rpc:async l=>({infra:o,host:t.setupHost(Z.derive.work(l))})});return await a.promise,new this(i,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var Tt=class{threads;static async make(e,t){let r=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(r)].map(async(i,a)=>Ie.make(e,{...t,label:t.label??`${t.label??"comrade"}_${a+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let r=t.tap??J,s=async(i,a)=>this.#r({request:i,prom:j(),transfer:a?.transfer});this.work=de({tap:r,endpoint:s}),e.forEach(i=>this.#e.add(i))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#r(e){return this.#t.push(e),this.#s(),e.prom.promise}#s(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let r=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(r).finally(()=>{this.#e.add(e),this.#s()})}}};var fs=n=>({thread:e=>Ie.make(n,e),cluster:e=>Tt.make(n,e),worker:(e,t={})=>hs(n,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:r,tap:s=J}=e,i=Z.mock.host(),a=Z.mock.work();return a.work=Ke({tap:s,fns:t(i)}),i.host=Ke({tap:s,fns:r(a)}),{workShell:a,hostShell:i,work:a.work,host:i.host}},mockWork(e,t=J){let r=Z.mock.host(),s=Z.mock.work();return s.work=Ke({tap:t,fns:e(r)}),{workShell:s,hostShell:r,work:s.work,mockHost:i=>(r.host=Ke({tap:t,fns:i(s)}),{workShell:s,hostShell:r,work:s.work,host:r.host})}}});var ps=()=>({getSelf(){return self},guessOptimalThreadCount(){let n=navigator.hardwareConcurrency??1;return Math.max(1,n-1)},loadWorker(n,e){return new window.Worker(n,{name:e,type:"module"})},async loadWasm(n){return WebAssembly.instantiateStreaming(fetch(n))}});var Dn=ps(),Ee=fs(Dn);function p(n){if(!n)throw new Error("Assertion failed.")}var Ct=n=>{let e=(n%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${n}.`)},U=n=>n&&n[n.length-1];var B=class n{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,r=7-(this.pos&7),s=(t&1<<r)>>r;return this.pos++,s}readBits(e){if(e===1)return this.readBit();let t=0;for(let r=0;r<e;r++)t<<=1,t|=this.readBit();return t}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new n(this.bytes);return e.pos=this.pos,e}},C=n=>{let e=0;for(;n.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+n.readBits(e)},_e=n=>{let e=C(n);return(e&1)===0?-(e>>1):e+1>>1};var me=n=>n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength),G=n=>n instanceof DataView?n:n instanceof ArrayBuffer?new DataView(n):new DataView(n.buffer,n.byteOffset,n.byteLength),Cu=new TextEncoder,br=n=>Object.fromEntries(Object.entries(n).map(([e,t])=>[t,e])),kr={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Pt=br(kr),xr={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},Rt=br(xr),Sr={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},It=br(Sr);var Tr=n=>n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer||ArrayBuffer.isView(n),se=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),r=this.currentPromise;return this.currentPromise=t,await r,e}},vr=n=>[...n].map(e=>e.toString(16).padStart(2,"0")).join(""),Cr=n=>(n=n>>1&1431655765|(n&1431655765)<<1,n=n>>2&858993459|(n&858993459)<<2,n=n>>4&252645135|(n&252645135)<<4,n=n>>8&16711935|(n&16711935)<<8,n=n>>16&65535|(n&65535)<<16,n>>>0),D=(n,e,t)=>{let r=0,s=n.length-1,i=-1;for(;r<=s;){let a=r+s>>1,o=t(n[a]);o===e?(i=a,s=a-1):o<e?r=a+1:s=a-1}return i},F=(n,e,t)=>{let r=0,s=n.length-1,i=-1;for(;r<=s;){let a=r+(s-r+1)/2|0;t(n[a])<=e?(i=a,r=a+1):s=a-1}return i},V=()=>{let n,e;return{promise:new Promise((r,s)=>{n=r,e=s}),resolve:n,reject:e}},gs=(n,e)=>{let t=n.indexOf(e);t!==-1&&n.splice(t,1)},Pr=(n,e)=>{for(let t=n.length-1;t>=0;t--)if(e(n[t]))return n[t]},Et=(n,e)=>{for(let t=n.length-1;t>=0;t--)if(e(n[t]))return t;return-1},ys=async function*(n){Symbol.iterator in n?yield*n[Symbol.iterator]():yield*n[Symbol.asyncIterator]()},ws=n=>{if(!(Symbol.iterator in n)&&!(Symbol.asyncIterator in n))throw new TypeError("Argument must be an iterable or async iterable.")},_t=n=>{throw new Error(`Unexpected value: ${n}`)};var Rr=(n,e)=>({async next(){let t=await n.next();return t.done?{value:void 0,done:!0}:{value:e(t.value),done:!1}},return(){return n.return()},throw(t){return n.throw(t)},[Symbol.asyncIterator](){return this}});var L="und",Fe=(n,e)=>{let t=10**e;return Math.round(n*t)/t},bs=(n,e)=>Math.round(n/e)*e,ks=n=>{let e=0;for(;n;)e++,n>>=1;return e},An=/^[a-z]{3}$/,Ft=n=>An.test(n),ne=1e6*(1+Number.EPSILON),Ge=(n,e)=>{let t={...n};for(let r in e)typeof n[r]=="object"&&n[r]!==null&&typeof e[r]=="object"&&e[r]!==null?t[r]=Ge(n[r],e[r]):t[r]=e[r];return t},Dt=async(n,e,t)=>{let r=0;for(;;)try{return await fetch(n,e)}catch(s){r++;let i=t(r);if(i===null)throw s;if(console.error("Retrying failed fetch. Error:",s),!Number.isFinite(i)||i<0)throw new TypeError("Retry delay must be a non-negative finite number.");i>0&&await new Promise(a=>setTimeout(a,1e3*i))}};var vt=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var At=[],Ir=[];var De=["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"],Bn=["aac","opus","mp3","vorbis","flac"],Eu=[...Bn,...De];var he=[{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:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}];var xs=".01.01.01.01.00",Ss=".0.110.01.01.01.0";var Bt=n=>{let{codec:e,codecDescription:t,colorSpace:r,avcCodecInfo:s,hevcCodecInfo:i,vp9CodecInfo:a,av1CodecInfo:o}=n;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${vr(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${vr(t.subarray(1,4))}`}else if(e==="hevc"){let c,l,d,u,h,m;if(i)c=i.generalProfileSpace,l=i.generalProfileIdc,d=Cr(i.generalProfileCompatibilityFlags),u=i.generalTierFlag,h=i.generalLevelIdc,m=[...i.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let w=G(t),g=w.getUint8(1);c=g>>6&3,l=g&31,d=Cr(w.getUint32(2)),u=g>>5&1,h=w.getUint8(12),m=[];for(let b=0;b<6;b++)m.push(w.getUint8(6+b))}let f="hev1.";for(f+=["","A","B","C"][c]+l,f+=".",f+=d.toString(16).toUpperCase(),f+=".",f+=u===0?"L":"H",f+=h;m.length>0&&m[m.length-1]===0;)m.pop();return m.length>0&&(f+=".",f+=m.map(w=>w.toString(16).toUpperCase()).join(".")),f}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!a){let b=n.width*n.height,k=U(he).level;for(let P of he)if(b<=P.maxPictureSize){k=P.level;break}return`vp09.00.${k.toString().padStart(2,"0")}.08`}let c=a.profile.toString().padStart(2,"0"),l=a.level.toString().padStart(2,"0"),d=a.bitDepth.toString().padStart(2,"0"),u=a.chromaSubsampling.toString().padStart(2,"0"),h=a.colourPrimaries.toString().padStart(2,"0"),m=a.transferCharacteristics.toString().padStart(2,"0"),f=a.matrixCoefficients.toString().padStart(2,"0"),w=a.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${l}.${d}.${u}`;return g+=`.${h}.${m}.${f}.${w}`,g.endsWith(xs)&&(g=g.slice(0,-xs.length)),g}else if(e==="av1"){if(!o){let P=n.width*n.height,S=U(he).level;for(let y of he)if(P<=y.maxPictureSize){S=y.level;break}return`av01.0.${S.toString().padStart(2,"0")}M.08`}let c=o.profile,l=o.level.toString().padStart(2,"0"),d=o.tier?"H":"M",u=o.bitDepth.toString().padStart(2,"0"),h=o.monochrome?"1":"0",m=100*o.chromaSubsamplingX+10*o.chromaSubsamplingY+1*(o.chromaSubsamplingX&&o.chromaSubsamplingY?o.chromaSamplePosition:0),f=r?.primaries?kr[r.primaries]:1,w=r?.transfer?xr[r.transfer]:1,g=r?.matrix?Sr[r.matrix]:1,b=r?.fullRange?1:0,k=`av01.${c}.${l}${d}.${u}`;return k+=`.${h}.${m.toString().padStart(3,"0")}`,k+=`.${f.toString().padStart(2,"0")}`,k+=`.${w.toString().padStart(2,"0")}`,k+=`.${g.toString().padStart(2,"0")}`,k+=`.${b}`,k.endsWith(Ss)&&(k=k.slice(0,-Ss.length)),k}}throw new TypeError(`Unhandled codec '${e}'.`)};var Ot=n=>{let{codec:e,codecDescription:t,aacCodecInfo:r}=n;if(e==="aac"){if(!r)throw new TypeError("AAC codec info must be provided.");return r.isMpeg2?"mp4a.67":`mp4a.40.${Er(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&De.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Er=n=>{if(!n||n.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new B(n),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let r=e.readBits(4),s=null;if(r===15)s=e.readBits(24);else{let o=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];r<o.length&&(s=o[r])}let i=e.readBits(4),a=null;return i>=1&&i<=7&&(a={1:1,2:2,3:3,4:4,5:5,6:6,7:8}[i]),{objectType:t,frequencyIndex:r,sampleRate:s,channelConfiguration:i,numberOfChannels:a}},Ts=48e3,On=/^pcm-([usf])(\d+)+(be)?$/,vs=n=>{if(p(De.includes(n)),n==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(n==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=On.exec(n);p(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let r=Number(e[2])/8,s=e[3]!=="be",i=n==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:r,littleEndian:s,silentValue:i}};var fe=class{constructor(e){this._factor=e}_toVideoBitrate(e,t,r){let s=t*r,i={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},a=1920*1080,o=3e6,c=Math.pow(s/a,.95),u=o*c*i[e]*this._factor;return Math.ceil(u/1e3)*1e3}_toAudioBitrate(e){if(De.includes(e)||e==="flac")return;let r={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!r)throw new Error(`Unhandled codec: ${e}`);let s=r*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((a,o)=>Math.abs(o-s)<Math.abs(a-s)?o:a):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((a,o)=>Math.abs(o-s)<Math.abs(a-s)?o:a)),Math.round(s/1e3)*1e3}},_u=new fe(.3),Fu=new fe(.6),Du=new fe(1),Au=new fe(2),Bu=new fe(4);var zt=n=>{let e=[],t=0;for(;t<n.length;){let r=-1,s=0;for(let i=t;i<n.length-3;i++){if(n[i]===0&&n[i+1]===0&&n[i+2]===1){r=i,s=3;break}if(i<n.length-4&&n[i]===0&&n[i+1]===0&&n[i+2]===0&&n[i+3]===1){r=i,s=4;break}}if(r===-1)break;if(t>0&&r>t){let i=n.subarray(t,r);i.length>0&&e.push(i)}t=r+s}if(t<n.length){let r=n.subarray(t);r.length>0&&e.push(r)}return e},Cs=(n,e)=>{let t=[],r=0,s=new DataView(n.buffer,n.byteOffset,n.byteLength);for(;r+e<=n.length;){let i;e===1?i=s.getUint8(r):e===2?i=s.getUint16(r,!1):e===3?i=(s.getUint16(r,!1)<<8)+s.getUint8(r+2):e===4?i=s.getUint32(r,!1):(_t(e),p(!1)),r+=e;let a=n.subarray(r,r+i);t.push(a),r+=i}return t},_r=n=>{let e=[],t=n.length;for(let r=0;r<t;r++)r+2<t&&n[r]===0&&n[r+1]===0&&n[r+2]===3?(e.push(0,0),r+=2):e.push(n[r]);return new Uint8Array(e)};var Ut=n=>n[0]&31,_s=n=>{try{let e=zt(n),t=e.filter(h=>Ut(h)===7),r=e.filter(h=>Ut(h)===8),s=e.filter(h=>Ut(h)===13);if(t.length===0||r.length===0)return null;let i=t[0],a=new B(_r(i));if(a.skipBits(1),a.skipBits(2),a.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=a.readAlignedByte(),l=a.readAlignedByte(),d=a.readAlignedByte(),u={configurationVersion:1,avcProfileIndication:c,profileCompatibility:l,avcLevelIndication:d,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:r,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){C(a);let h=C(a);h===3&&a.skipBits(1);let m=C(a),f=C(a);u.chromaFormat=h,u.bitDepthLumaMinus8=m,u.bitDepthChromaMinus8=f,u.sequenceParameterSetExt=s}return u}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}};var Ps=32,Rs=33,Is=34,Un=39,zn=40,pe=n=>n[0]>>1&63,Fs=n=>{try{let e=zt(n),t=e.filter(R=>pe(R)===Ps),r=e.filter(R=>pe(R)===Rs),s=e.filter(R=>pe(R)===Is),i=e.filter(R=>pe(R)===Un||pe(R)===zn);if(r.length===0||s.length===0)return null;let a=r[0],o=new B(_r(a));o.skipBits(16),o.readBits(4);let c=o.readBits(3),l=o.readBits(1),{general_profile_space:d,general_tier_flag:u,general_profile_idc:h,general_profile_compatibility_flags:m,general_constraint_indicator_flags:f,general_level_idc:w}=Mn(o,c);C(o);let g=C(o);g===3&&o.skipBits(1),C(o),C(o),o.readBits(1)&&(C(o),C(o),C(o),C(o));let b=C(o),k=C(o);C(o);let S=o.readBits(1)?0:c;for(let R=S;R<=c;R++)C(o),C(o),C(o);C(o),C(o),C(o),C(o),C(o),C(o),o.readBits(1)&&o.readBits(1)&&Vn(o),o.skipBits(1),o.skipBits(1),o.readBits(1)&&(o.skipBits(4),o.skipBits(4),C(o),C(o),o.skipBits(1));let y=C(o);if(Nn(o,y),o.readBits(1)){let R=C(o);for(let I=0;I<R;I++)C(o),o.skipBits(1)}o.skipBits(1),o.skipBits(1);let x=0;o.readBits(1)&&(x=Hn(o,c));let v=0;if(s.length>0){let R=s[0],I=new B(_r(R));I.skipBits(16),C(I),C(I),I.skipBits(1),I.skipBits(1),I.skipBits(3),I.skipBits(1),I.skipBits(1),C(I),C(I),_e(I),I.skipBits(1),I.skipBits(1),I.readBits(1)&&C(I),_e(I),_e(I),I.skipBits(1),I.skipBits(1),I.skipBits(1),I.skipBits(1);let N=I.readBits(1),ae=I.readBits(1);!N&&!ae?v=0:N&&!ae?v=2:!N&&ae?v=3:v=0}let _=[...t.length?[{arrayCompleteness:1,nalUnitType:Ps,nalUnits:t}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:Rs,nalUnits:r}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:Is,nalUnits:s}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:pe(i[0]),nalUnits:i}]:[]];return{configurationVersion:1,generalProfileSpace:d,generalTierFlag:u,generalProfileIdc:h,generalProfileCompatibilityFlags:m,generalConstraintIndicatorFlags:f,generalLevelIdc:w,minSpatialSegmentationIdc:x,parallelismType:v,chromaFormatIdc:g,bitDepthLumaMinus8:b,bitDepthChromaMinus8:k,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:l,lengthSizeMinusOne:3,arrays:_}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},Mn=(n,e)=>{let t=n.readBits(2),r=n.readBits(1),s=n.readBits(5),i=0;for(let d=0;d<32;d++)i=i<<1|n.readBits(1);let a=new Uint8Array(6);for(let d=0;d<6;d++)a[d]=n.readBits(8);let o=n.readBits(8),c=[],l=[];for(let d=0;d<e;d++)c.push(n.readBits(1)),l.push(n.readBits(1));if(e>0)for(let d=e;d<8;d++)n.skipBits(2);for(let d=0;d<e;d++)c[d]&&n.skipBits(88),l[d]&&n.skipBits(8);return{general_profile_space:t,general_tier_flag:r,general_profile_idc:s,general_profile_compatibility_flags:i,general_constraint_indicator_flags:a,general_level_idc:o}},Vn=n=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!n.readBits(1))C(n);else{let s=Math.min(64,1<<4+(e<<1));e>1&&_e(n);for(let i=0;i<s;i++)_e(n)}},Nn=(n,e)=>{let t=[];for(let r=0;r<e;r++)t[r]=Ln(n,r,e,t)},Ln=(n,e,t,r)=>{let s=0,i=0,a=0;if(e!==0&&(i=n.readBits(1)),i){if(e===t){let c=C(n);a=e-(c+1)}else a=e-1;n.readBits(1),C(n);let o=r[a]??0;for(let c=0;c<=o;c++)n.readBits(1)||n.readBits(1);s=r[a]}else{let o=C(n),c=C(n);for(let l=0;l<o;l++)C(n),n.readBits(1);for(let l=0;l<c;l++)C(n),n.readBits(1);s=o+c}return s},Hn=(n,e)=>{if(n.readBits(1)&&n.readBits(8)===255&&(n.readBits(16),n.readBits(16)),n.readBits(1)&&n.readBits(1),n.readBits(1)&&(n.readBits(3),n.readBits(1),n.readBits(1)&&(n.readBits(8),n.readBits(8),n.readBits(8))),n.readBits(1)&&(C(n),C(n)),n.readBits(1),n.readBits(1),n.readBits(1),n.readBits(1)&&(C(n),C(n),C(n),C(n)),n.readBits(1)&&(n.readBits(32),n.readBits(32),n.readBits(1)&&C(n),n.readBits(1)&&Wn(n,!0,e)),n.readBits(1)){n.readBits(1),n.readBits(1),n.readBits(1);let t=C(n);return C(n),C(n),C(n),C(n),t}return 0},Wn=(n,e,t)=>{let r=!1,s=!1,i=!1;e&&(r=n.readBits(1)===1,s=n.readBits(1)===1,(r||s)&&(i=n.readBits(1)===1,i&&(n.readBits(8),n.readBits(5),n.readBits(1),n.readBits(5)),n.readBits(4),n.readBits(4),i&&n.readBits(4),n.readBits(5),n.readBits(5),n.readBits(5)));for(let a=0;a<=t;a++){let o=n.readBits(1)===1,c=!0;o||(c=n.readBits(1)===1);let l=!1;c?C(n):l=n.readBits(1)===1;let d=1;l||(d=C(n)+1),r&&Es(n,d,i),s&&Es(n,d,i)}},Es=(n,e,t)=>{for(let r=0;r<e;r++)C(n),C(n),t&&(C(n),C(n)),n.readBits(1)};var Mt=n=>{let e=new B(n);if(e.readBits(2)!==2)return null;let r=e.readBits(1),i=(e.readBits(1)<<1)+r;if(i===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let l=8;i>=2&&(l=e.readBits(1)?12:10);let d=e.readBits(3),u=0,h=0;if(d!==7)if(h=e.readBits(1),i===1||i===3){let v=e.readBits(1),_=e.readBits(1);u=!v&&!_?3:v&&!_?2:1,e.skipBits(1)}else u=1;else u=3,h=1;let m=e.readBits(16),f=e.readBits(16),w=m+1,g=f+1,b=w*g,k=U(he).level;for(let x of he)if(b<=x.maxPictureSize){k=x.level;break}return{profile:i,level:k,bitDepth:l,chromaSubsampling:u,videoFullRangeFlag:h,colourPrimaries:d===2?1:d===1?6:2,transferCharacteristics:d===2?1:d===1?6:2,matrixCoefficients:d===7?0:d===2?1:d===1?6:2}};function*Ds(n){let e=new B(n),t=()=>{let r=0;for(let s=0;s<8;s++){let i=e.readAlignedByte();if(r|=(i&127)<<s*7,!(i&128))break;if(s===7&&i&128)return null}return r>=2**32-1?null:r};for(;e.getBitsLeft()>=8;){e.skipBits(1);let r=e.readBits(4),s=e.readBits(1),i=e.readBits(1);e.skipBits(1),s&&e.skipBits(8);let a;if(i){let o=t();if(o===null)return;a=o}else a=Math.floor(e.getBitsLeft()/8);p(e.pos%8===0),yield{type:r,data:n.subarray(e.pos/8,e.pos/8+a)},e.skipBits(a*8)}}var Vt=n=>{for(let{type:e,data:t}of Ds(n)){if(e!==1)continue;let r=new B(t),s=r.readBits(3),i=r.readBits(1),a=r.readBits(1),o=0,c=0,l=0;if(a)o=r.readBits(5);else{if(r.readBits(1)&&(r.skipBits(32),r.skipBits(32),r.readBits(1)))return null;let b=r.readBits(1);b&&(l=r.readBits(5),r.skipBits(32),r.skipBits(5),r.skipBits(5));let k=r.readBits(5);for(let P=0;P<=k;P++){r.skipBits(12);let S=r.readBits(5);if(P===0&&(o=S),S>7){let x=r.readBits(1);P===0&&(c=x)}if(b&&r.readBits(1)){let v=l+1;r.skipBits(v),r.skipBits(v),r.skipBits(1)}r.readBits(1)&&r.skipBits(4)}}let d=r.readBits(1),u=8;s===2&&d?u=r.readBits(1)?12:10:s<=2&&(u=d?10:8);let h=0;s!==1&&(h=r.readBits(1));let m=1,f=1,w=0;return h||(s===0?(m=1,f=1):s===1?(m=0,f=0):u===12&&(m=r.readBits(1),m&&(f=r.readBits(1))),m&&f&&(w=r.readBits(2))),{profile:s,level:o,tier:c,bitDepth:u,monochrome:h,chromaSubsamplingX:m,chromaSubsamplingY:f,chromaSamplePosition:w}}return null},As=n=>{let e=G(n),t=e.getUint8(9),r=e.getUint16(10,!0),s=e.getUint32(12,!0),i=e.getInt16(16,!0),a=e.getUint8(18),o=null;return a&&(o=n.subarray(19,21+t)),{outputChannelCount:t,preSkip:r,inputSampleRate:s,outputGain:i,channelMappingFamily:a,channelMappingTable:o}},jn=[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],Bs=n=>{let e=n[0]>>3;return{durationInSamples:jn[e]}},Os=n=>{if(n.length<7)throw new Error("Setup header is too short.");if(n[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...n.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=n.length,r=new Uint8Array(t);for(let u=0;u<t;u++)r[u]=n[t-1-u];let s=new B(r),i=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){i=s.pos;break}if(i===0)throw new Error("Invalid Setup header: framing bit not found.");let a=0,o=!1,c=0;for(;s.getBitsLeft()>=97;){let u=s.pos,h=s.readBits(8),m=s.readBits(16),f=s.readBits(16);if(h>63||m!==0||f!==0){s.pos=u;break}if(s.skipBits(1),a++,a>64)break;s.clone().readBits(6)+1===a&&(o=!0,c=a)}if(!o)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let l=c;s.pos=0,s.skipBits(i);let d=Array(l).fill(0);for(let u=l-1;u>=0;u--)s.skipBits(40),d[u]=s.readBits(1);return{modeBlockflags:d}},Us=async(n,e)=>{switch(p(n.codec),n.codec){case"avc":{let t=await n.getDecoderConfig();p(t);let r;if(t.description){let o=(me(t.description)[4]&3)+1;r=Cs(e.data,o)}else r=zt(e.data);return r.some(i=>Ut(i)===5)?"key":"delta"}case"hevc":{let t=await n.getDecoderConfig();p(t);let r;if(t.description){let o=(me(t.description)[21]&3)+1;r=Cs(e.data,o)}else r=zt(e.data);return r.some(i=>{let a=pe(i);return 16<=a&&a<=23})?"key":"delta"}case"vp8":return(e.data[0]&1)===0?"key":"delta";case"vp9":{let t=new B(e.data);if(t.readBits(2)!==2)return null;let r=t.readBits(1);return(t.readBits(1)<<1)+r===3&&t.skipBits(1),t.readBits(1)?null:t.readBits(1)===0?"key":"delta"}case"av1":{let t=!1;for(let{type:r,data:s}of Ds(e.data))if(r===1){let i=new B(s);i.skipBits(4),t=!!i.readBits(1)}else if(r===3||r===6||r===7){if(t)return"key";let i=new B(s);return i.readBits(1)?null:i.readBits(2)===0?"key":"delta"}return null}default:_t(n.codec),p(!1)}};var zs=n=>{let t=(n.hasVideo?"video/":n.hasAudio?"audio/":"application/")+(n.isQuickTime?"quicktime":"mp4");if(n.codecStrings.length>0){let r=[...new Set(n.codecStrings)];t+=`; codecs="${r.join(", ")}"`}return t};var ge=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readI16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readU24(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+3);this.pos+=3;let r=e.getUint16(t,!1),s=e.getUint8(t+2);return r*256+s}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!1)}readU64(){let e=this.readU32(),t=this.readU32();return e*4294967296+t}readI64(){let e=this.readI32(),t=this.readU32();return e*4294967296+t}readF64(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+8);return this.pos+=8,e.getFloat64(t,!1)}readFixed_16_16(){return this.readI32()/65536}readFixed_2_30(){return this.readI32()/1073741824}readAscii(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let i=0;i<e;i++)s+=String.fromCharCode(t.getUint8(r+i));return s}readIsomVariableInteger(){let e=0;for(let t=0;t<4;t++){e<<=7;let r=this.readU8();if(e|=r&127,(r&128)===0)break}return e}readBoxHeader(){let e=this.readU32(),t=this.readAscii(4),r=8;return e===1&&(e=this.readU64(),r=16),{name:t,totalSize:e,headerSize:r,contentSize:e-r}}};var T;(function(n){n[n.EBML=440786851]="EBML",n[n.EBMLVersion=17030]="EBMLVersion",n[n.EBMLReadVersion=17143]="EBMLReadVersion",n[n.EBMLMaxIDLength=17138]="EBMLMaxIDLength",n[n.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",n[n.DocType=17026]="DocType",n[n.DocTypeVersion=17031]="DocTypeVersion",n[n.DocTypeReadVersion=17029]="DocTypeReadVersion",n[n.SeekHead=290298740]="SeekHead",n[n.Seek=19899]="Seek",n[n.SeekID=21419]="SeekID",n[n.SeekPosition=21420]="SeekPosition",n[n.Duration=17545]="Duration",n[n.Info=357149030]="Info",n[n.TimestampScale=2807729]="TimestampScale",n[n.MuxingApp=19840]="MuxingApp",n[n.WritingApp=22337]="WritingApp",n[n.Tracks=374648427]="Tracks",n[n.TrackEntry=174]="TrackEntry",n[n.TrackNumber=215]="TrackNumber",n[n.TrackUID=29637]="TrackUID",n[n.TrackType=131]="TrackType",n[n.FlagEnabled=185]="FlagEnabled",n[n.FlagDefault=136]="FlagDefault",n[n.FlagForced=21930]="FlagForced",n[n.FlagLacing=156]="FlagLacing",n[n.Language=2274716]="Language",n[n.CodecID=134]="CodecID",n[n.CodecPrivate=25506]="CodecPrivate",n[n.CodecDelay=22186]="CodecDelay",n[n.SeekPreRoll=22203]="SeekPreRoll",n[n.DefaultDuration=2352003]="DefaultDuration",n[n.Video=224]="Video",n[n.PixelWidth=176]="PixelWidth",n[n.PixelHeight=186]="PixelHeight",n[n.Audio=225]="Audio",n[n.SamplingFrequency=181]="SamplingFrequency",n[n.Channels=159]="Channels",n[n.BitDepth=25188]="BitDepth",n[n.Segment=408125543]="Segment",n[n.SimpleBlock=163]="SimpleBlock",n[n.BlockGroup=160]="BlockGroup",n[n.Block=161]="Block",n[n.BlockAdditions=30113]="BlockAdditions",n[n.BlockMore=166]="BlockMore",n[n.BlockAdditional=165]="BlockAdditional",n[n.BlockAddID=238]="BlockAddID",n[n.BlockDuration=155]="BlockDuration",n[n.ReferenceBlock=251]="ReferenceBlock",n[n.Cluster=524531317]="Cluster",n[n.Timestamp=231]="Timestamp",n[n.Cues=475249515]="Cues",n[n.CuePoint=187]="CuePoint",n[n.CueTime=179]="CueTime",n[n.CueTrackPositions=183]="CueTrackPositions",n[n.CueTrack=247]="CueTrack",n[n.CueClusterPosition=241]="CueClusterPosition",n[n.Colour=21936]="Colour",n[n.MatrixCoefficients=21937]="MatrixCoefficients",n[n.TransferCharacteristics=21946]="TransferCharacteristics",n[n.Primaries=21947]="Primaries",n[n.Range=21945]="Range",n[n.Projection=30320]="Projection",n[n.ProjectionType=30321]="ProjectionType",n[n.ProjectionPoseRoll=30325]="ProjectionPoseRoll",n[n.Attachments=423732329]="Attachments",n[n.Chapters=272869232]="Chapters",n[n.Tags=307544935]="Tags"})(T||(T={}));var $n=[T.EBML,T.Segment],qn=[T.EBMLMaxIDLength,T.EBMLMaxSizeLength,T.SeekHead,T.Info,T.Cluster,T.Tracks,T.Cues,T.Attachments,T.Chapters,T.Tags],Nt=[...$n,...qn];var Ms=8,Lt=2,ye=4+Ms,we=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readS16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readVarIntSize(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),r=e.getUint8(t),s=1,i=128;for(;(r&i)===0&&s<8;)s++,i>>=1;return s}readVarInt(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),r=e.getUint8(t),s=1,i=128;for(;(r&i)===0&&s<Ms;)s++,i>>=1;let{view:a,offset:o}=this.reader.getViewAndOffset(this.pos,this.pos+s),c=r&i-1;for(let l=1;l<s;l++)c*=256,c+=a.getUint8(o+l);return this.pos+=s,c}readUnsignedInt(e){if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=0;for(let i=0;i<e;i++)s*=256,s+=t.getUint8(r+i);return this.pos+=e,s}readSignedInt(e){let t=this.readUnsignedInt(e);return t&1<<e*8-1&&(t-=2**(e*8)),t}readFloat(e){if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=e===4?t.getFloat32(r,!1):t.getFloat64(r,!1);return this.pos+=e,s}readString(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,String.fromCharCode(...new Uint8Array(t.buffer,r,e))}readElementId(){let e=this.readVarIntSize();return this.readUnsignedInt(e)}readElementSize(){let e=this.readU8();return e===255?e=null:(this.pos--,e=this.readVarInt(),e===72057594037927940&&(e=null)),e}readElementHeader(){let e=this.readElementId(),t=this.readElementSize();return{id:e,size:t}}async searchForNextElementId(e,t){let s=new Set(e);for(;this.pos<t-ye;){this.reader.rangeIsLoaded(this.pos,this.pos+ye)||await this.reader.loadRange(this.pos,Math.min(this.pos+1048576,t));let i=this.pos,a=this.readElementHeader();if(s.has(a.id))return i;be(a.size),this.pos+=a.size}return null}},$={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 be(n){if(n===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var Vs=n=>{let t=(n.hasVideo?"video/":n.hasAudio?"audio/":"application/")+(n.isWebM?"webm":"x-matroska");if(n.codecStrings.length>0){let r=[...new Set(n.codecStrings.filter(Boolean))];t+=`; codecs="${r.join(", ")}"`}return t};var Kn={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},Gn={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},Xn={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},Ns=1483304551,Ls=1231971951,Qn=(n,e,t,r)=>Math.floor(n===3?(12*e/t+r)*4:144*e/t+r),Hs=(n,e)=>n===3?e===3?21:36:e===3?13:21,Ws=(n,e)=>{let t=e.pos,r=n>>>24,s=n>>>16&255,i=n>>>8&255,a=n&255;if(r!==255&&s!==255&&i!==255&&a!==255)return e.pos+=4,null;if(e.pos+=1,r!==255||(s&224)!==224)return null;let o=s>>3&3,c=s>>1&3,l=i>>4&15,d=i>>2&3,u=i>>1&1,h=a>>6&3,m=a>>4&3,f=a>>3&1,w=a>>2&1,g=a&3,b=o===3?Kn[c]?.[l]:Gn[c]?.[l];if(!b||b===-1)return null;let k=b*1e3,P=Xn[o]?.[d];if(!P||P===-1)return null;let S=Qn(c,k,P,u);if(e.fileSize!==null&&e.fileSize-t<S)return null;let y;return o===3?y=c===3?384:1152:c===3?y=384:c===2?y=1152:y=576,{startPos:t,totalSize:S,mpegVersionId:o,layer:c,bitrate:k,frequencyIndex:d,sampleRate:P,channel:h,modeExtension:m,copyright:f,original:w,emphasis:g,audioSamplesInFrame:y}};var Fr=1399285583,Yn=79764919,js=new Uint32Array(256);for(let n=0;n<256;n++){let e=n<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^Yn:e<<1;js[n]=e>>>0&4294967295}var $s=n=>{let e=G(n),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let r=0;for(let s=0;s<n.length;s++){let i=n[s];r=(r<<8^js[r>>>24^i])>>>0}return e.setUint32(22,t,!0),r},qs=(n,e,t)=>{let r=0,s=null;if(n.length>0)if(e.codec==="vorbis"){p(e.vorbisInfo);let i=e.vorbisInfo.modeBlockflags.length,o=(1<<ks(i-1))-1<<1,c=(n[0]&o)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let l=t,d=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[d],d===1){let u=(o|1)+1,h=n[0]&u?1:0;l=e.vorbisInfo.blocksizes[h]}r=l!==null?l+s>>2:0}else e.codec==="opus"&&(r=Bs(n).durationInSamples);return{durationInSamples:r,vorbisBlockSize:s}},Ks=n=>{let e="audio/ogg";if(n.codecStrings){let t=[...new Set(n.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var Be=27,ke=282,Gs=ke+65025,Ae=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos+=1,e.getUint8(t)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!0)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!0)}readI64(){let e=this.readU32();return this.readI32()*4294967296+e}readAscii(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let i=0;i<e;i++)s+=String.fromCharCode(t.getUint8(r+i));return s}readPageHeader(){let e=this.pos;if(this.readU32()!==Fr)return null;this.pos+=1;let r=this.readU8(),s=this.readI64(),i=this.readU32(),a=this.readU32(),o=this.readU32(),c=this.readU8(),l=new Uint8Array(c);for(let m=0;m<c;m++)l[m]=this.readU8();let d=27+c,u=l.reduce((m,f)=>m+f,0),h=d+u;return{headerStartPos:e,totalSize:h,dataStartPos:e+d,dataSize:u,headerType:r,granulePosition:s,serialNumber:i,sequenceNumber:a,checksum:o,lacingValues:l}}findNextPageHeader(e){for(;this.pos<e-3;){let t=this.readU32(),r=t&255,s=t>>>8&255,i=t>>>16&255,a=t>>>24&255,o=79;if(!(r!==o&&s!==o&&i!==o&&a!==o)){if(this.pos-=4,t===Fr)return!0;this.pos+=1}}return!1}};var H=class{constructor(e){this.input=e}};var z=new Uint8Array(0),A=class n{constructor(e,t,r,s,i=-1,a){if(this.data=e,this.type=t,this.timestamp=r,this.duration=s,this.sequenceNumber=i,e===z&&a===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(a===void 0&&(a=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(r))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(i))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(a)||a<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=a}get isMetadataOnly(){return this.data===z}get microsecondTimestamp