PageSourceSearch

https://cdn.hailuoai.video/open-hailuo-video-web/prod-en-0.1.876/_next/static/chunks/6576-0b08a4a3ddef80ee.js

js hailuoai.video collected 2026-10-02 03:24:40 UTC 464,198 bytes, 92 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6576],{67768:function(e,t,i){let r=(0,i(57833).Z)("check",[["path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M20 6L9 17l-5-5"}]],"0 0 24 24",!1);t.Z=r},41767:function(e,t,i){let r=(0,i(57833).Z)("videos",[["path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.25",d:"M4.667 2v12M2 5h2.667M2 8h12M2 11h2.667m6.666-9v12m0-9H14m-2.667 6H14M3.333 2h9.334C13.403 2 14 2.597 14 3.333v9.334c0 .736-.597 1.333-1.333 1.333H3.333A1.333 1.333 0 0 1 2 12.667V3.333C2 2.597 2.597 2 3.333 2"}]],"0 0 16 16",!1);t.Z=r},85105:function(e,t,i){i.d(t,{S:function(){return a},_:function(){return r}});let r=[48e3,44100,32e3],a=[24e3,22050,16e3]},66914:function(e,t,i){i.d(t,{Bx:function(){return l},H_:function(){return o},I5:function(){return h},J:function(){return s},NO:function(){return u},c0:function(){return c},hE:function(){return d},i8:function(){return n},o6:function(){return r}});let r=4,a=[44100,48e3,32e3],s=[-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],n=1483304551,o=1231971951,c=(e,t,i,r,a)=>0===t?0:1===t?Math.floor(144*i/(r<<e))+a:2===t?Math.floor(144*i/r)+a:(Math.floor(12*i/r)+a)*4,l=(e,t)=>3===e?3===t?21:36:3===t?13:21,d=(e,t)=>{let i;let r=e>>>24,n=e>>>16&255,o=e>>>8&255,l=255&e;if(255!==r&&255!==n&&255!==o&&255!==l)return{header:null,bytesAdvanced:4};if(255!==r||(224&n)!=224)return{header:null,bytesAdvanced:1};let d=0,u=0;16&n?d=8&n?0:1:(d=1,u=1);let h=n>>3&3,m=n>>1&3,f=(o>>2&3)%3,p=s[64*d+16*m+(o>>4&15)];if(-1===p)return{header:null,bytesAdvanced:1};let g=1e3*p,k=a[f]>>d+u,b=c(d,m,g,k,o>>1&1);return null!==t&&t<b?{header:null,bytesAdvanced:1}:(i=3===h?3===m?384:1152:3===m?384:2===m?1152:576,{header:{totalSize:b,mpegVersionId:h,layer:m,bitrate:g,frequencyIndex:f,sampleRate:k,channel:l>>6&3,modeExtension:l>>4&3,copyright:l>>3&1,original:l>>2&1,emphasis:3&l,audioSamplesInFrame:i},bytesAdvanced:1})},u=e=>{let t=127,i=0,r=e;for(;(2147483647^t)!=0;)i=(r&~t)<<1|r&t,t=(t+1<<8)-1,r=i;return i},h=e=>{let t=2130706432,i=0;for(;0!==t;)i>>=1,i|=e&t,t>>=8;return i}},45954:function(e,t,i){i.d(t,{Ls:function(){return s},MB:function(){return n},gM:function(){return o}});var r=i(73272),a=i(93731);let s=7,n=9,o=e=>{let t=e.filePos,i=(0,a.sB)(e,9),s=new r.Zi(i);if(4095!==s.readBits(12)||(s.skipBits(1),0!==s.readBits(2)))return null;let n=s.readBits(1),o=s.readBits(2)+1,c=s.readBits(4);if(15===c)return null;s.skipBits(1);let l=s.readBits(3);if(0===l)throw Error("ADTS frames with channel configuration 0 are not supported.");s.skipBits(1),s.skipBits(1),s.skipBits(1),s.skipBits(1);let d=s.readBits(13);s.skipBits(11);let u=s.readBits(2)+1;if(1!==u)throw Error("ADTS frames with more than one AAC frame are not supported.");let h=null;return 1===n?e.filePos-=2:h=s.readBits(16),{objectType:o,samplingFrequencyIndex:c,channelConfiguration:l,frameLength:d,numberOfAacFrames:u,crcCheck:h,startPos:t}}},97229:function(e,t,i){i.d(t,{$9:function(){return o},$W:function(){return W},A8:function(){return ei},AH:function(){return en},Al:function(){return L},BT:function(){return K},BW:function(){return _},Bc:function(){return p},Be:function(){return J},Dg:function(){return y},E3:function(){return T},FE:function(){return G},GL:function(){return Q},H:function(){return U},HS:function(){return v},KA:function(){return X},M3:function(){return er},Nt:function(){return B},Ob:function(){return N},P0:function(){return Y},Q3:function(){return w},RG:function(){return S},RO:function(){return j},Si:function(){return ea},Sq:function(){return f},Tn:function(){return I},UB:function(){return E},Zm:function(){return Z},bO:function(){return h},d:function(){return H},d$:function(){return C},ir:function(){return es},oS:function(){return ee},pP:function(){return m},qr:function(){return c},vY:function(){return n},xo:function(){return et},xx:function(){return b},zg:function(){return $}});var r,a,s,n,o,c,l=i(41201),d=i(73272),u=i(85105);(r=n||(n={}))[r.NON_IDR_SLICE=1]="NON_IDR_SLICE",r[r.SLICE_DPA=2]="SLICE_DPA",r[r.SLICE_DPB=3]="SLICE_DPB",r[r.SLICE_DPC=4]="SLICE_DPC",r[r.IDR=5]="IDR",r[r.SEI=6]="SEI",r[r.SPS=7]="SPS",r[r.PPS=8]="PPS",r[r.AUD=9]="AUD",r[r.SPS_EXT=13]="SPS_EXT",(a=o||(o={}))[a.RASL_N=8]="RASL_N",a[a.RASL_R=9]="RASL_R",a[a.BLA_W_LP=16]="BLA_W_LP",a[a.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",a[a.VPS_NUT=32]="VPS_NUT",a[a.SPS_NUT=33]="SPS_NUT",a[a.PPS_NUT=34]="PPS_NUT",a[a.AUD_NUT=35]="AUD_NUT",a[a.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",a[a.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT";let h=function*(e){let t=0,i=-1;for(;t<e.length-2;){let r=e.indexOf(0,t);if(-1===r||r>=e.length-2)break;let a=0;if((t=r)+3<e.length&&0===e[t+1]&&0===e[t+2]&&1===e[t+3]?a=4:0===e[t+1]&&1===e[t+2]&&(a=3),0===a){t++;continue}-1!==i&&t>i&&(yield{offset:i,length:t-i}),t=i=t+a}-1!==i&&i<e.length&&(yield{offset:i,length:e.length-i})},m=function*(e,t){let i=0,r=new DataView(e.buffer,e.byteOffset,e.byteLength);for(;i+t<=e.length;){let e;1===t?e=r.getUint8(i):2===t?e=r.getUint16(i,!1):3===t?e=(0,d.rB)(r,
1i,!1):((0,d.hu)(4===t),e=r.getUint32(i,!1)),i+=t,yield{offset:i,length:e},i+=e}},f=(e,t)=>t.description?m(e,(3&(0,d._f)(t.description)[4])+1):h(e),p=e=>31&e,g=e=>{let t=[],i=e.length;for(let r=0;r<i;r++)r+2<i&&0===e[r]&&0===e[r+1]&&3===e[r+2]?(t.push(0,0),r+=2):t.push(e[r]);return new Uint8Array(t)},k=new Uint8Array([0,0,0,1]),b=e=>{let t=new Uint8Array(e.reduce((e,t)=>e+k.byteLength+t.byteLength,0)),i=0;for(let r of e)t.set(k,i),i+=k.byteLength,t.set(r,i),i+=r.byteLength;return t},w=(e,t)=>{let i=new Uint8Array(e.reduce((e,i)=>e+t+i.byteLength,0)),r=0;for(let a of e){let e=new DataView(i.buffer,i.byteOffset,i.byteLength);switch(t){case 1:e.setUint8(r,a.byteLength);break;case 2:e.setUint16(r,a.byteLength,!1);break;case 3:(0,d.qN)(e,r,a.byteLength,!1);break;case 4:e.setUint32(r,a.byteLength,!1)}r+=t,i.set(a,r),r+=a.byteLength}return i},y=(e,t)=>t.description?w(e,(3&(0,d._f)(t.description)[4])+1):b(e),T=e=>{try{let t=[],i=[],r=[];for(let a of h(e)){let s=e.subarray(a.offset,a.offset+a.length),o=p(s[0]);o===n.SPS?t.push(s):o===n.PPS?i.push(s):o===n.SPS_EXT&&r.push(s)}if(0===t.length||0===i.length)return null;let a=t[0],s=C(a);(0,d.hu)(null!==s);let o=100===s.profileIdc||110===s.profileIdc||122===s.profileIdc||144===s.profileIdc;return{configurationVersion:1,avcProfileIndication:s.profileIdc,profileCompatibility:s.constraintFlags,avcLevelIndication:s.levelIdc,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:i,chromaFormat:o?s.chromaFormatIdc:null,bitDepthLumaMinus8:o?s.bitDepthLumaMinus8:null,bitDepthChromaMinus8:o?s.bitDepthChromaMinus8:null,sequenceParameterSetExt:o?r:null}}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}},S=e=>{let t=[];for(let i of(t.push(e.configurationVersion),t.push(e.avcProfileIndication),t.push(e.profileCompatibility),t.push(e.avcLevelIndication),t.push(252|3&e.lengthSizeMinusOne),t.pu
1sh(224|31&e.sequenceParameterSets.length),e.sequenceParameterSets)){let e=i.byteLength;t.push(e>>8),t.push(255&e);for(let r=0;r<e;r++)t.push(i[r])}for(let i of(t.push(e.pictureParameterSets.length),e.pictureParameterSets)){let e=i.byteLength;t.push(e>>8),t.push(255&e);for(let r=0;r<e;r++)t.push(i[r])}if(100===e.avcProfileIndication||110===e.avcProfileIndication||122===e.avcProfileIndication||144===e.avcProfileIndication)for(let i of((0,d.hu)(null!==e.chromaFormat),(0,d.hu)(null!==e.bitDepthLumaMinus8),(0,d.hu)(null!==e.bitDepthChromaMinus8),(0,d.hu)(null!==e.sequenceParameterSetExt),t.push(252|3&e.chromaFormat),t.push(248|7&e.bitDepthLumaMinus8),t.push(248|7&e.bitDepthChromaMinus8),t.push(e.sequenceParameterSetExt.length),e.sequenceParameterSetExt)){let e=i.byteLength;t.push(e>>8),t.push(255&e);for(let r=0;r<e;r++)t.push(i[r])}return new Uint8Array(t)},v=e=>{try{let t=(0,d.NK)(e),i=0,r=t.getUint8(i++),a=t.getUint8(i++),s=t.getUint8(i++),n=t.getUint8(i++),o=3&t.getUint8(i++),c=31&t.getUint8(i++),l=[];for(let r=0;r<c;r++){let r=t.getUint16(i,!1);i+=2,l.push(e.subarray(i,i+r)),i+=r}let u=t.getUint8(i++),h=[];for(let r=0;r<u;r++){let r=t.getUint16(i,!1);i+=2,h.push(e.subarray(i,i+r)),i+=r}let m={configurationVersion:r,avcProfileIndication:a,profileCompatibility:s,avcLevelIndication:n,lengthSizeMinusOne:o,sequenceParameterSets:l,pictureParameterSets:h,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if((100===a||110===a||122===a||144===a)&&i+4<=e.length){let r=3&t.getUint8(i++),a=7&t.getUint8(i++),s=7&t.getUint8(i++),n=t.getUint8(i++);m.chromaFormat=r,m.bitDepthLumaMinus8=a,m.bitDepthChromaMinus8=s;let o=[];for(let r=0;r<n;r++){let r=t.getUint16(i,!1);i+=2,o.push(e.subarray(i,i+r)),i+=r}m.sequenceParameterSetExt=o}return m}catch(e){return console.error("Error deserializing AVC Decoder Configuration Record:",e),null}},P={1:{num:1,den:1},2:{num:12,den:11},3:{num:10,den:11},4:{num:16,den:11},5:{num:40,den:33},6:{num:24,den:11},7:{num:20,den:11},8:{num:32,den:11},9:{num:80,den:33},10:{num:18,den:11},11:{num:15,den:11},12:{num:64,den:33},13:{num:160,den:99},14:{num:4,den:3},15:{num:3,den:2},16:{num:2,den:1}},C=e=>{try{let t=new d.Zi(g(e));t.skipBits(1),t.skipBits(2);let i=t.readBits(5);if(7!==i)return null;let r=t.readAlignedByte(),a=t.readAlignedByte(),s=t.readAlignedByte();(0,d.SI)(t);let n=1,o=0,c=0,u=0;if((100===r||110===r||122===r||244===r||44===r||83===r||86===r||118===r||128===r)&&(n=(0,d.SI)(t),3===n&&(u=t.readBits(1)),o=(0,d.SI)(t),c=(0,d.SI)(t),t.skipBits(1),t.readBits(1))){for(let e=0;e<(3!==n?8:12);e++)if(t.readBits(1)){let i=e<6?16:64,r=8,a=8;for(let e=0;e<i;e++){if(0!==a){let e=(0,d.bJ)(t);a=(r+e+256)%256}r=0===a?r:a}}}(0,d.SI)(t);let h=(0,d.SI)(t);if(0===h)(0,d.SI)(t);else if(1===h){t.skipBits(1),(0,d.bJ)(t),(0,d.bJ)(t);let e=(0,d.SI)(t);for(let i=0;i<e;i++)(0,d.bJ)(t)}(0,d.SI)(t),t.skipBits(1);let m=(0,d.SI)(t),f=(0,d.SI)(t),p=16*(m+1),k=16*(f+1),b=p,w=k,y=t.readBits(1);if(y||t.skipBits(1),t.skipBits(1),t.readBits(1)){let e,i;let r=(0,d.SI)(t),a=(0,d.SI)(t),s=(0,d.SI)(t),o=(0,d.SI)(t),c=0===u?n:0;if(0===c)e=1,i=2-y;else{let t=3===n?1:2,r=1===n?2:1;e=t,i=r*(2-y)}b-=e*(r+a),w-=i*(s+o)}let T=2,S=2,v=2,C=0,I={num:1,den:1},E=null,B=null;if(t.readBits(1)){if(t.readBits(1)){let e=t.readBits(8);if(255===e)I={num:t.readBits(16),den:t.readBits(16)};else{let t=P[e];t&&(I=t)}}t.readBits(1)&&t.skipBits(1),t.readBits(1)&&(t.skipBits(3),C=t.readBits(1),t.readBits(1)&&(T=t.readBits(8),S=t.readBits(8),v=t.readBits(8))),t.readBits(1)&&((0,d.SI)(t),(0,d.SI)(t)),t.readBits(1)&&(t.skipBits(32),t.skipBits(32),t.skipBits(1));let e=t.readBits(1);e&&x(t);let i=t.readBits(1);i&&x(t),(e||i)&&t.skipBits(1),t.skipBits(1),t.readBits(1)&&(t.skipBits(1),(0,d.SI)(t),(0,d.SI)(t),(0,d.SI)(t),(0,d.SI)(t),E=(0,d.SI)(t),B=(0,d.SI)(t))}if(null===E){if((0,d.hu)(null===B),(44===r||86===r||100===r||110===r||122===r||244===r)&&16&a)E=0,B=0;else{let e=l.sP.find(e=>e.level>=s)??(0,d.Z$)(l.sP),t=Math.min(Math.floor(e.maxDpbMbs/((2-y)*(f+1)*(m+1))),16);E=t,B=t}}return(0,d.hu)(null!==B),{profileIdc:r,constraintFlags:a,levelIdc:s,frameMbsOnlyFlag:y,chromaFormatIdc:n,bitDepthLumaMinus8:o,bitDepthChromaMinus8:c,codedWidth:p,codedHeight:k,displayWidth:b,displayHeight:w,pixelAspectRatio:I,colourPrimaries:T,matrixCoefficients:v,transferCharacteristics:S,fullRangeFlag:C,numReorderFrames:E,maxDecFrameBuffering:B}}catch(e){return console.error("Error parsing AVC SPS:",e),null}},x=e=>{let t=(0,d.SI)(e);e.skipBits(4),e.skipBits(4);for(let i=0;i<=t;i++)(0,d.SI)(e),(0,d.SI)(e),e.skipBits(1);e.skipBits(5),e.skipBits(5),e.skipBits(5),e.skipBits(5)},I=(e,t)=>t.description?m(e,(3&(0,d._f)(t.description)[21])+1):h(e),E=e=>e>>1&63,B=e=>{try{let t=new d.Zi(g(e));t.skipBits(16),t.readBits(4);let i=t.readBits(3),r=t.readBits(1),{general_profile_space:a,general_tier_flag:s,general_profile_idc:n,general_profile_compatibility_flags:o,general_constraint_indicator_flags:c,general_level_idc:l}=A(t,i);(0,d.SI)(t);let u=(0,d.SI)(t),h=0;3===u&&(h=t.readBits(1));let m=(0,d.SI)(t),f=(0,d.SI)(t),p=m,k=f;if(t.readBits(1)){let e=(0,d.SI)(t),i=(0,d.SI)(t),r=(0,d.SI)(t),a=(0,d.SI)(t),s=1,n=1,o=0===h?u:0;1===o?(s=2,n=2):2===o&&(s=2,n=1),p-=(e+i)*s,k-=(r+a)*n}let b=(0,d.SI)(t),w=(0,d.SI)(t);(0,d.SI)(t);let y=t.readBits(1)?0:i,T=0;for(let e=y;e<=i;e++)(0,d.SI)(t),T=(0,d.SI)(t),(0,d.SI)(t);(0,d.SI)(t),(0,d.SI)(t),(0,d.SI)(t),(0,d.SI)(t),(0,d.SI)(t),(0,d.SI)(t),t.readBits(1)&&t.readBits(1)&&R(t),t.skipBits(1),t.skipBits(1),t.readBits(1)&&(t.skipBits(4),t.skipBits(4),(0,d.SI)(t),(0,d.SI)(t),t.skipBits(1));let S=(0,d.SI)(t);if(F(t,S),t.readBits(1)){let e=(0,d.SI)(t);for(let i=0;i<e;i++)(0,d.SI)(t),t.skipBits(1)}t.skipBits(1),t.skipBits(1);let v=2,P=2,C=2,x=0,I=0,E={num:1,den:1};if(t.readBits(1)){let e=D(t,i);E=e.pixelAspectRatio,v=e.colourPrimaries,P=e.transferCharacteristics,C=e.matrixCoefficients,x=e.fullRangeFlag,I=e.minSpatialSegmentationIdc}return{displayWidth:p,displayHeight:k,pixelAspectRatio:E,colourPrimaries:v,transferCharacteristics:P,matrixCoefficients:C,fullRangeFlag:x,maxDecFrameBuffering:T+1,spsMaxSubLayersMinus1:i,spsTemporalIdNestingFlag:r,generalProfileSpace:a,generalTierFlag:s,generalProfileIdc:n,generalProfileCompatibilityFlags:o,generalConstraintIndicatorFlags:c,generalLevelIdc:l,chromaFormatIdc:u,bitDepthLumaMinus8:b,bitDepthChromaMinus8:w,minSpatialSegmentationIdc:I}}catch(e){return console.error("Error parsing HEVC SPS:",e),null}},_=e=>{try{let t=[],i=[],r=[],a=[];for(let s of h(e)){let n=e.subarray(s.offset,s.offset+s.length),c=E(n[0]);
1c===o.VPS_NUT?t.push(n):c===o.SPS_NUT?i.push(n):c===o.PPS_NUT?r.push(n):(c===o.PREFIX_SEI_NUT||c===o.SUFFIX_SEI_NUT)&&a.push(n)}if(0===i.length||0===r.length)return null;let s=B(i[0]);if(!s)return null;let n=0;if(r.length>0){let e=r[0],t=new d.Zi(g(e));t.skipBits(16),(0,d.SI)(t),(0,d.SI)(t),t.skipBits(1),t.skipBits(1),t.skipBits(3),t.skipBits(1),t.skipBits(1),(0,d.SI)(t),(0,d.SI)(t),(0,d.bJ)(t),t.skipBits(1),t.skipBits(1),t.readBits(1)&&(0,d.SI)(t),(0,d.bJ)(t),(0,d.bJ)(t),t.skipBits(1),t.skipBits(1),t.skipBits(1),t.skipBits(1);let i=t.readBits(1),a=t.readBits(1);n=i||a?i&&!a?2:!i&&a?3:0:0}let c=[...t.length?[{arrayCompleteness:1,nalUnitType:o.VPS_NUT,nalUnits:t}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:o.SPS_NUT,nalUnits:i}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:o.PPS_NUT,nalUnits:r}]:[],...a.length?[{arrayCompleteness:1,nalUnitType:E(a[0][0]),nalUnits:a}]:[]];return{configurationVersion:1,generalProfileSpace:s.generalProfileSpace,generalTierFlag:s.generalTierFlag,generalProfileIdc:s.generalProfileIdc,generalProfileCompatibilityFlags:s.generalProfileCompatibilityFlags,generalConstraintIndicatorFlags:s.generalConstraintIndicatorFlags,generalLevelIdc:s.generalLevelIdc,minSpatialSegmentationIdc:s.minSpatialSegmentationIdc,parallelismType:n,chromaFormatIdc:s.chromaFormatIdc,bitDepthLumaMinus8:s.bitDepthLumaMinus8,bitDepthChromaMinus8:s.bitDepthChromaMinus8,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:s.spsMaxSubLayersMinus1+1,temporalIdNested:s.spsTemporalIdNestingFlag,lengthSizeMinusOne:3,arrays:c}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},A=(e,t)=>{let i=e.readBits(2),r=e.readBits(1),a=e.readBits(5),s=0;for(let t=0;t<32;t++)s=s<<1|e.readBits(1);let n=new Uint8Array(6);for(let t=0;t<6;t++)n[t]=e.readBits(8);let o=e.readBits(8),c=[],l=[];for(let i=0;i<t;i++)c.push(e.readBits(1)),l.push(e.readBits(1));if(t>0)for(let i=t;i<8;i++)e.skipBits(2);for(let i=0;i<t;i++)c[i]&&e.skipBits(88),l[i]&&e.skipBits(8);return{general_profile_space:i,general_tier_flag:r,general_profile_idc:a,general_profile_compatibility_flags:s,general_constraint_indicator_flags:n,general_level_idc:o}},R=e=>{for(let t=0;t<4;t++)for(let i=0;i<(3===t?2:6);i++)if(e.readBits(1)){let i=Math.min(64,1<<4+(t<<1));t>1&&(0,d.bJ)(e);for(let t=0;t<i;t++)(0,d.bJ)(e)}else(0,d.SI)(e)},F=(e,t)=>{let i=[];for(let r=0;r<t;r++)i[r]=M(e,r,t,i)},M=(e,t,i,r)=>{let a=0,s=0,n=0;if(0!==t&&(s=e.readBits(1)),s){n=t===i?t-((0,d.SI)(e)+1):t-1,e.readBits(1),(0,d.SI)(e);let s=r[n]??0;for(let t=0;t<=s;t++)e.readBits(1)||e.readBits(1);a=r[n]}else{let t=(0,d.SI)(e),i=(0,d.SI)(e);for(let i=0;i<t;i++)(0,d.SI)(e),e.readBits(1);for(let t=0;t<i;t++)(0,d.SI)(e),e.readBits(1);a=t+i}return a},D=(e,t)=>{let i=2,r=2,a=2,s=0,n=0,o={num:1,den:1};if(e.readBits(1)){let t=e.readBits(8);if(255===t)o={num:e.readBits(16),den:e.readBits(16)};else{let e=P[t];e&&(o=e)}}return e.readBits(1)&&e.readBits(1),e.readBits(1)&&(e.readBits(3),s=e.readBits(1),e.readBits(1)&&(i=e.readBits(8),r=e.readBits(8),a=e.readBits(8))),e.readBits(1)&&((0,d.SI)(e),(0,d.SI)(e)),e.readBits(1),e.readBits(1),e.readBits(1),e.readBits(1)&&((0,d.SI)(e),(0,d.SI)(e),(0,d.SI)(e),(0,d.SI)(e)),e.readBits(1)&&(e.readBits(32),e.readBits(32),e.readBits(1)&&(0,d.SI)(e),e.readBits(1)&&z(e,!0,t)),e.readBits(1)&&(e.readBits(1),e.readBits(1),e.readBits(1),n=(0,d.SI)(e),(0,d.SI)(e),(0,d.SI)(e),(0,d.SI)(e),(0,d.SI)(e)),{pixelAspectRatio:o,colourPrimaries:i,transferCharacteristics:r,matrixCoefficients:a,fullRangeFlag:s,minSpatialSegmentationIdc:n}},z=(e,t,i)=>{let r=!1,a=!1,s=!1;t&&(r=1===e.readBits(1),a=1===e.readBits(1),(r||a)&&((s=1===e.readBits(1))&&(e.readBits(8),e.readBits(5),e.readBits(1),e.readBits(5)),e.readBits(4),e.readBits(4),s&&e.readBits(4),e.readBits(5),e.readBits(5),e.readBits(5)));for(let t=0;t<=i;t++){let t=1===e.readBits(1),i=!0;t||(i=1===e.readBits(1));let n=!1;i?(0,d.SI)(e):n=1===e.readBits(1);let o=1;n||(o=(0,d.SI)(e)+1),r&&O(e,o,s),a&&O(e,o,s)}}
1,O=(e,t,i)=>{for(let r=0;r<t;r++)(0,d.SI)(e),(0,d.SI)(e),i&&((0,d.SI)(e),(0,d.SI)(e)),e.readBits(1)},U=e=>{let t=[];for(let i of(t.push(e.configurationVersion),t.push((3&e.generalProfileSpace)<<6|(1&e.generalTierFlag)<<5|31&e.generalProfileIdc),t.push(e.generalProfileCompatibilityFlags>>>24&255),t.push(e.generalProfileCompatibilityFlags>>>16&255),t.push(e.generalProfileCompatibilityFlags>>>8&255),t.push(255&e.generalProfileCompatibilityFlags),t.push(...e.generalConstraintIndicatorFlags),t.push(255&e.generalLevelIdc),t.push(240|e.minSpatialSegmentationIdc>>8&15),t.push(255&e.minSpatialSegmentationIdc),t.push(252|3&e.parallelismType),t.push(252|3&e.chromaFormatIdc),t.push(248|7&e.bitDepthLumaMinus8),t.push(248|7&e.bitDepthChromaMinus8),t.push(e.avgFrameRate>>8&255),t.push(255&e.avgFrameRate),t.push((3&e.constantFrameRate)<<6|(7&e.numTemporalLayers)<<3|(1&e.temporalIdNested)<<2|3&e.lengthSizeMinusOne),t.push(255&e.arrays.length),e.arrays))for(let e of(t.push((1&i.arrayCompleteness)<<7|0|63&i.nalUnitType),t.push(i.nalUnits.length>>8&255),t.push(255&i.nalUnits.length),i.nalUnits)){t.push(e.length>>8&255),t.push(255&e.length);for(let i=0;i<e.length;i++)t.push(e[i])}return new Uint8Array(t)},N=e=>{try{let t=(0,d.NK)(e),i=0,r=t.getUint8(i++),a=t.getUint8(i++),s=t.getUint32(i,!1);i+=4;let n=e.subarray(i,i+6);i+=6;let o=t.getUint8(i++),c=(15&t.getUint8(i++))<<8|t.getUint8(i++),l=3&t.getUint8(i++),u=3&t.getUint8(i++),h=7&t.getUint8(i++),m=7&t.getUint8(i++),f=t.getUint16(i,!1);i+=2;let p=t.getUint8(i++),g=t.getUint8(i++),k=[];for(let r=0;r<g;r++){let r=t.getUint8(i++),a=r>>7&1,s=63&r,n=t.getUint16(i,!1);i+=2;let o=[];for(let r=0;r<n;r++){let r=t.getUint16(i,!1);i+=2,o.push(e.subarray(i,i+r)),i+=r}k.push({arrayCompleteness:a,nalUnitType:s,nalUnits:o})}return{configurationVersion:r,generalProfileSpace:a>>6&3,generalTierFlag:a>>5&1,generalProfileIdc:31&a,generalProfileCompatibilityFlags:s,generalConstraintIndicatorFlags:n,generalLevelIdc:o,minSpatialSegmentationIdc:c,parallelismType:l,chromaFormatIdc:u,bitDepthLumaMinus8:h,bitDepthChromaMinus8:m,avgFrameRate:f,constantFrameRate:p>>6&3,numTemporalLayers:p>>3&7,temporalIdNested:p>>2&1,lengthSizeMinusOne:3&p,arrays:k}}catch(e){return console.error("Error deserializing HEVC Decoder Configuration Record:",e),null}},L=e=>{let t=new d.Zi(e);if(2!==t.readBits(2))return null;let i=t.readBits(1),r=(t.readBits(1)<<1)+i;if(3===r&&t.skipBits(1),1===t.readBits(1)||0!==t.readBits(1)||(t.skipBits(2),4817730!==t.readBits(24)))return null;let a=8;r>=2&&(a=t.readBits(1)?12:10);let s=t.readBits(3),n=0,o=0;if(7!==s){if(o=t.readBits(1),1===r||3===r){let e=t.readBits(1),i=t.readBits(1);n=e||i?e&&!i?2:1:3,t.skipBits(1)}else n=1}else n=3,o=1;let c=(t.readBits(16)+1)*(t.readBits(16)+1),u=(0,d.Z$)(l.Am).level;for(let e of l.Am)if(c<=e.maxPictureSize){u=e.level;break}return{profile:r,level:u,bitDepth:a,chromaSubsampling:n,videoFullRangeFlag:o,colourPrimaries:2===s?1:1===s?6:2,transferCharacteristics:2===s?1:1===s?6:2,matrixCoefficients:7===s?0:2===s?1:1===s?6:2}},V=function*(e){let t=new d.Zi(e),i=()=>{let e=0;for(let i=0;i<8;i++){let r=t.readAlignedByte();if(e|=(127&r)<<7*i,!(128&r))break;if(7===i&&128&r)return null}return e>=4294967296-1?null:e};for(;t.getBitsLeft()>=8;){let r;t.skipBits(1);let a=t.readBits(4),s=t.readBits(1),n=t.readBits(1);if(t.skipBits(1),s&&t.skipBits(8),n){let e=i();if(null===e)return;r=e}else r=Math.floor(t.getBitsLeft()/8);(0,d.hu)(t.pos%8==0),yield{type:a,data:e.subarray(t.pos/8,t.pos/8+r)},t.skipBits(8*r)}},W=e=>{for(let{type:t,data:i}of V(e)){if(1!==t)continue;let e=new d.Zi(i),r=e.readBits(3);e.readBits(1);let a=e.readBits(1),s=0,n=0,o=0;if(a)s=e.readBits(5);else{if(e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.readBits(1)))return null;let t=e.readBits(1);t&&(o=e.readBits(5),e.skipBits(32),e.skipBits(5),e.skipBits(5));let i=e.readBits(5);for(let r=0;r<=i;r++){e.skipBits(12);let i=e.readBits(5);if(0===r&&(s=i),i>7){let t=e.readBits(1);0===r&&(n=t)}if(t&&e.readBits(1)){let t=o+1;e.skipBits(t),e.skipBits(t),e.skipBits(1)}e.readBits(1)&&e.skipBits(4)}}let c=e.readBits(4),l=e.readBits(4),u=c+1;e.skipBits(u);let h=l+1;e.skipBits(h);if((a?0:e.readBits(1))&&(e.skipBits(4),e.skipBits(3)),e.skipBits(1),e.skipBits(1),e.skipBits(1),!a){e.skipBits(1),e.skipBits(1),e.skipBits(1),e.skipBits(1);let t=e.readBits(1);t&&(e.skipBits(1),e.skipBits(1));let i=e.readBits(1);(i?2:e.readBits(1))>0&&!e.readBits(1)&&e.skipBits(1),t&&e.skipBits(3)}e.skipBits(1),e.skipBits(1),e.skipBits(1);let m=e.readBits(1),f=8;2===r&&m?f=e.readBits(1)?12:10:r<=2&&(f=m?10:8);let p=0;1!==r&&(p=e.readBits(1));let g=1,k=1,b=0;return!p&&(0===r?(g=1,k=1):1===r?(g=0,k=0):12===f&&(g=e.readBits(1))&&(k=e.readBits(1)),g&&k&&(b=e.readBits(2))),{profile:r,level:s,tier:n,bitDepth:f,monochrome:p,chromaSubsamplingX:g,chromaSubsamplingY:k,chromaSamplePosition:b}}return null},H=e=>{let t=(0,d.NK)(e),i=t.getUint8(9),r=t.getUint16(10,!0),a=t.getUint32(12,!0),s=t.getInt16(16,!0),n=t.getUint8(18),o=null;return n&&(o=e.subarray(19,21+i)),{outputChannelCount:i,preSkip:r,inputSampleRate:a,outputGain:s,channelMappingFamily:n,channelMappingTable:o}}
1,q=[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],G=e=>({durationInSamples:q[e[0]>>3]}),$=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 t=e.length,i=new Uint8Array(t);for(let r=0;r<t;r++)i[r]=e[t-1-r];let r=new d.Zi(i),a=0;for(;r.getBitsLeft()>97;)if(1===r.readBits(1)){a=r.pos;break}if(0===a)throw Error("Invalid Setup header: framing bit not found.");let s=0,n=!1,o=0;for(;r.getBitsLeft()>=97;){let e=r.pos,t=r.readBits(8),i=r.readBits(16),a=r.readBits(16);if(t>63||0!==i||0!==a){r.pos=e;break}if(r.skipBits(1),++s>64)break;r.clone().readBits(6)+1===s&&(n=!0,o=s)}if(!n)throw Error("Invalid Setup header: mode header not found.");if(o>63)throw Error(`Unsupported mode count: ${o}.`);let c=o;r.pos=0,r.skipBits(a);let l=Array(c).fill(0);for(let e=c-1;e>=0;e--)r.skipBits(40),l[e]=r.readBits(1);return{modeBlockflags:l}},j=(e,t,i)=>{switch(e){case"avc":for(let e of f(i,t)){let t=p(i[e.offset]);if(t>=n.NON_IDR_SLICE&&t<=n.SLICE_DPC)break;if(t===n.IDR)return"key";if(t===n.SEI&&(!(0,d.mJ)()||(0,d.AH)()>=144)){let t=g(i.subarray(e.offset,e.offset+e.length)),r=1;do{let e=0;for(;;){let i=t[r++];if(void 0===i||(e+=i,i<255))break}let i=0;for(;;){let e=t[r++];if(void 0===e||(i+=e,e<255))break}if(6===e){let e=new d.Zi(t);e.pos=8*r;let i=(0,d.SI)(e),a=e.readBits(1);if(0===i&&1===a)return"key"}r+=i}while(r<t.length-1)}}return"delta";case"hevc":for(let e of I(i,t)){let t=E(i[e.offset]);if(t<o.BLA_W_LP)break;if(t<=o.RSV_IRAP_VCL23)return"key"}return"delta";case"vp8":return 0==(1&i[0])?"key":"delta";case"vp9":{let e=new d.Zi(i);if(2!==e.readBits(2))return null;let t=e.readBits(1);if(3===(e.readBits(1)<<1)+t&&e.skipBits(1),e.readBits(1))return null;return 0===e.readBits(1)?"key":"delta"}case"av1":{let e=!1;for(let{type:t,data:r}of V(i))if(1===t){let t=new d.Zi(r);t.skipBits(4),e=!!t.readBits(1)}else if(3===t||6===t||7===t){if(e)return"key";let t=new d.Zi(r);if(t.readBits(1))return null;return 0===t.readBits(2)?"key":"delta"}return null}default:(0,d.vE)(e),(0,d.hu)(!1)}};(s=c||(c={}))[s.STREAMINFO=0]="STREAMINFO",s[s.VORBIS_COMMENT=4]="VORBIS_COMMENT",s[s.PICTURE=6]="PICTURE";let K=(e,t)=>{let i=(0,d.NK)(e),r=0,a=i.getUint32(r,!0);r+=4;let s=d.zN.decode(e.subarray(r,r+a));r+=a,a>0&&(t.raw??={},t.raw.vendor??=s);let n=i.getUint32(r,!0);r+=4;for(let a=0;a<n;a++){let a=i.getUint32(r,!0);r+=4;let s=d.zN.decode(e.subarray(r,r+a));r+=a;let n=s.indexOf("=");if(-1===n)continue;let o=s.slice(0,n).toUpperCase(),c=s.slice(n+1);switch(t.raw??={},t.raw[o]??=c,o){case"TITLE":t.title??=c;break;case"DESCRIPTION":t.description??=c;break;case"ARTIST":t.artist??=c;break;case"ALBUM":t.album??=c;break;case"ALBUMARTIST":t.albumArtist??=c;break;case"COMMENT":t.comment??=c;break;case"LYRICS":t.lyrics??=c;break;case"TRACKNUMBER":{let e=c.split("/"),i=Number.parseInt(e[0],10),r=e[1]&&Number.parseInt(e[1],10);Number.isInteger(i)&&i>0&&(t.trackNumber??=i),r&&Number.isInteger(r)&&r>0&&(t.tracksTotal??=r)}break;case"TRACKTOTAL":{let e=Number.parseInt(c,10);Number.isInteger(e)&&e>0&&(t.tracksTotal??=e)}break;case"DISCNUMBER":{let e=c.split("/"),i=Number.parseInt(e[0],10),r=e[1]&&Number.parseInt(e[1],10);Number.isInteger(i)&&i>0&&(t.discNumber??=i),r&&Number.isInteger(r)&&r>0&&(t.discsTotal??=r)}break;case"DISCTOTAL":{let e=Number.parseInt(c,10);Number.isInteger(e)&&e>0&&(t.discsTotal??=e)}break;case"DATE":{let e=new Date(c);Number.isNaN(e.getTime())||(t.date??=e)}break;case"GENRE":t.genre??=c;break;case"METADATA_BLOCK_PICTURE":{let e=(0,d.K9)(c),i=(0,d.NK)(e),r=i.getUint32(0,!1),a=i.getUint32(4,!1),s=String.fromCharCode(...e.subarray(8,8+a)),n=i.getUint32(8+a,!1),o=d.zN.decode(e.subarray(12+a,12+a+n)),l=i.getUint32(a+n+28),u=e.subarray(a+n+32,a+n+32+l);t.images??=[],t.images.push({data:u,mimeType:s,kind:3===r?"coverFront":4===r?"coverBack":"unknown",name:void 0,description:o||void 0})}}}},Q=(e,t,i)=>{let r=[e],a=d.oL.encode("Mediabunny"),s=new Uint8Array(4+a.length),n=new DataView(s.buffer);n.setUint32(0,a.length,!0),s.set(a,4),r.push(s);let o=new Set,c=(e,t)=>{let i=`${e}=${t}`,a=d.oL.encode(i);(n=new DataView((s=new Uint8Array(4+a.length)).buffer)).setUint32(0,a.length,!0),s.set(a,4),r.push(s),o.add(e)};for(let{key:e,value:r}of(0,d.lY)(t))switch(e){case"title":c("TITLE",r);break;
1case"description":c("DESCRIPTION",r);break;case"artist":c("ARTIST",r);break;case"album":c("ALBUM",r);break;case"albumArtist":c("ALBUMARTIST",r);break;case"genre":c("GENRE",r);break;case"date":{let e=t.raw?.DATE??t.raw?.date;c("DATE",e&&"string"==typeof e?e:r.toISOString().slice(0,10))}break;case"comment":c("COMMENT",r);break;case"lyrics":c("LYRICS",r);break;case"trackNumber":c("TRACKNUMBER",r.toString());break;case"tracksTotal":c("TRACKTOTAL",r.toString());break;case"discNumber":c("DISCNUMBER",r.toString());break;case"discsTotal":c("DISCTOTAL",r.toString());break;case"images":if(!i)break;for(let e of r){let t="coverFront"===e.kind?3:"coverBack"===e.kind?4:0,i=new Uint8Array(e.mimeType.length);for(let t=0;t<e.mimeType.length;t++)i[t]=e.mimeType.charCodeAt(t);let r=d.oL.encode(e.description??""),a=new Uint8Array(8+i.length+4+r.length+16+4+e.data.length),s=(0,d.NK)(a);s.setUint32(0,t,!1),s.setUint32(4,i.length,!1),a.set(i,8),s.setUint32(8+i.length,r.length,!1),a.set(r,12+i.length),s.setUint32(28+i.length+r.length,e.data.length,!1),a.set(e.data,32+i.length+r.length),c("METADATA_BLOCK_PICTURE",(0,d.J2)(a))}break;case"raw":break;default:(0,d.vE)(e)}if(t.raw)for(let e in t.raw){let i=t.raw[e]??t.raw[e.toLowerCase()];"vendor"===e||null==i||o.has(e)||"string"!=typeof i||c(e,i)}let l=new Uint8Array(4);(0,d.NK)(l).setUint32(0,o.size,!0),r.splice(2,0,l);let u=new Uint8Array(r.reduce((e,t)=>e+t.length,0)),h=0;for(let e of r)u.set(e,h),h+=e.length;return u},X=[2,1,2,3,3,4,4,5],Z=e=>{if(e.length<7||11!==e[0]||119!==e[1])return null;let t=new d.Zi(e);t.skipBits(16),t.skipBits(16);let i=t.readBits(2);if(3===i)return null;let r=t.readBits(6),a=t.readBits(5);if(a>8)return null;let s=t.readBits(3),n=t.readBits(3);return(1&n)!=0&&1!==n&&t.skipBits(2),(4&n)!=0&&t.skipBits(2),2===n&&t.skipBits(2),{fscod:i,bsid:a,bsmod:s,acmod:n,lfeon:t.readBits(1),bitRateCode:Math.floor(r/2)}},Y=[128,138,192,128,140,192,160,174,240,160,176,240,192,208,288,192,210,288,224,242,336,224,244,336,256,278,384,256,280,384,320,348,480,320,350,480,384,416,576,384,418,576,448,486,672,448,488,672,512,556,768,512,558,768,640,696,960,640,698,960,768,834,1152,768,836,1152,896,974,1344,896,976,1344,1024,1114,1536,1024,1116,1536,1280,1392,1920,1280,1394,1920,1536,1670,2304,1536,1672,2304,1792,1950,2688,1792,1952,2688,2048,2228,3072,2048,2230,3072,2304,2506,3456,2304,2508,3456,2560,2786,3840,2560,2788,3840],J=1536,ee=new Uint8Array([5,4,65,67,45,51]),et=new Uint8Array([5,4,69,65,67,51]),ei=[1,2,3,6],er=e=>{let t;if(e.length<6||11!==e[0]||119!==e[1])return null;let i=new d.Zi(e);i.skipBits(16);let r=i.readBits(2);if(i.skipBits(3),0!==r&&2!==r)return null;let a=i.readBits(11),s=i.readBits(2),n=0;3===s?(n=i.readBits(2),t=3):t=i.readBits(2);let o=i.readBits(3),c=i.readBits(1),l=i.readBits(5);if(l<11||l>16)return null;let h=ei[t];return{dataRate:Math.round((a+1)*(s<3?u._[s]/1e3:u.S[n]/1e3)/(16*h)),substreams:[{fscod:s,fscod2:n,bsid:l,bsmod:0,acmod:o,lfeon:c,numDepSub:0,chanLoc:0}]}},ea=e=>{if(e.length<2)return null;let t=new d.Zi(e),i=t.readBits(13),r=t.readBits(3),a=[];for(let i=0;i<=r&&!(Math.ceil(t.pos/8)+3>e.length);i++){let e=t.readBits(2),i=t.readBits(5);t.skipBits(1),t.skipBits(1);let r=t.readBits(3),s=t.readBits(3),n=t.readBits(1);t.skipBits(3);let o=t.readBits(4),c=0;o>0?c=t.readBits(9):t.skipBits(1),a.push({fscod:e,fscod2:null,bsid:i,bsmod:r,acmod:s,lfeon:n,numDepSub:o,chanLoc:c})}return 0===a.length?null:{dataRate:i,substreams:a}},es=e=>{let t=e.substreams[0];return((0,d.hu)(t),t.fscod<3)?u._[t.fscod]:null!==t.fscod2&&t.fscod2<3?u.S[t.fscod2]:null},en=e=>{let t=e.substreams[0];(0,d.hu)(t);let i=X[t.acmod]+t.lfeon;if(t.numDepSub>0){let e=[2,2,1,1,2,2,2,1,1];for(let r=0;r<9;r++)t.chanLoc&1<<8-r&&(i+=e[r])}return i}},41201:function(e,t,i){i.d(t,{$G:function(){return B},AS:function(){return I},Ah:function(){return b},Am:function(){return u},Au:function(){return a},Cd:function(){return E},HO:function(){return w},L3:function(){return C},NQ:function(){return U},ON:function(){return g},QK:function(){return P},Vr:function(){return n},Wn:function(){return z},YV:function(){return y},_8:function(){return v},eY:function(){return o},fQ:function(){return p},no:function(){return k},ow:function(){return _},sG:function(){return N},sP:function(){return l},tW:function(){return c},v6:function(){return T},y7:function(){return S},zE:function(){return s}});var r=i(73272);let a=["avc","hevc","vp9","av1","vp8"],s=["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"],n=["aac","opus","mp3","vorbis","flac","ac3","eac3"],o=[...n,...s],c=["webvtt"],l=[{maxMacroblocks:99,maxBitrate:64e3,maxDpbMbs:396,level:10},{maxMacroblocks:396,maxBitrate:192e3,maxDpbMbs:900,level:11},{maxMacroblocks:396,maxBitrate:384e3,maxDpbMbs:2376,level:12},{maxMacroblocks:396,maxBitrate:768e3,maxDpbMbs:2376,level:13},{maxMacroblocks:396,maxBitrate:2e6,maxDpbMbs:2376,level:20},{maxMacroblocks:792,maxBitrate:4e6,maxDpbMbs:4752,level:21},{maxMacroblocks:1620,maxBitrate:4e6,maxDpbMbs:8100,level:22},{maxMacroblocks:1620,maxBitrate:1e7,maxDpbMbs:8100,level:30},{maxMacroblocks:3600,maxBitrate:14e6,maxDpbMbs:18e3,level:31},{maxMacroblocks:5120,maxBitrate:2e7,maxDpbMbs:20480,level:32},{maxMacroblocks:8192,maxBitrate:2e7,maxDpbMbs:32768,level:40},{maxMacroblocks:8192,maxBitrate:5e7,maxDpbMbs:32768,level:41},{maxMacroblocks:8704,maxBitrate:5e7,maxDpbMbs:34816,level:42},{maxMacroblocks:22080,maxBitrate:135e6,maxDpbMbs:110400,level:50},{maxMacroblocks:36864,maxBitrate:24e7,maxDpbMbs:184320,level:51},{maxMacroblocks:36864,maxBitrate:24e7,maxDpbMbs:184320,level:52},{maxMacroblocks:139264,maxBitrate:24e7,maxDpbMbs:696320,level:60},{maxMacroblocks:139264,maxBitrate:48e7,maxDpbMbs:696320,level:61},{maxMacroblocks:139264,maxBitrate:8e8,maxDpbMbs:696320,level:62}],d=[{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:35651584,maxBitrate:6e7,tier:"L",level:180},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:180},{maxPictureSize:35651584,maxBitrate:12e7,tier:"L",level:183},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:183},{maxPictureSize:35651584,maxBitrate:24e7,tier:"L",level:186},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:186}],u=[{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}],h=[{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:35651584,maxBitrate:6e7,tier:"M",level:15},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:15},{maxPictureSize:35651584,maxBitrate:6e7,tier:"M",level:16},{maxPictureSize:35651584,maxBitrate:24e7,tier:"H",level:16},{maxPictureSize:35651584,maxBitrate:1e8,tier:"M",level:17},{maxPictureSize:35651584,maxBitrate:48e7,tier:"H",level:17},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:18},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:18},{maxPictureSize:35651584,maxBitrate:16e7,tier:"M",level:19},{maxPictureSize:35651584,maxBitrate:8e8,tier:"H",level:19}],m=".01.01.01.01.00",f=".0.110.01.01.01.0",p=(e,t,i,a)=>
1{if("avc"===e){let e=Math.ceil(t/16)*Math.ceil(i/16),s=l.find(t=>e<=t.maxMacroblocks&&a<=t.maxBitrate)??(0,r.Z$)(l),n=s?s.level:0,o="64".padStart(2,"0"),c=n.toString(16).padStart(2,"0");return`avc1.${o}00${c}`}if("hevc"===e){let e=t*i,s=d.find(t=>e<=t.maxPictureSize&&a<=t.maxBitrate)??(0,r.Z$)(d);return`hev1.1.6.${s.tier}${s.level}.B0`}if("vp8"===e)return"vp8";if("vp9"===e){let e=t*i,s=u.find(t=>e<=t.maxPictureSize&&a<=t.maxBitrate)??(0,r.Z$)(u);return`vp09.00.${s.level.toString().padStart(2,"0")}.08`}if("av1"===e){let e=t*i,s=h.find(t=>e<=t.maxPictureSize&&a<=t.maxBitrate)??(0,r.Z$)(h),n=s.level.toString().padStart(2,"0");return`av01.0.${n}${s.tier}.08`}throw TypeError(`Unhandled codec '${e}'.`)},g=e=>{let t=e.split("."),i=Number(t[1]);return[1,1,i,2,1,Number(t[2]),3,1,Number(t[3]),4,1,t[4]?Number(t[4]):1]},k=e=>{let t=e.split("."),i=Number(t[1]),r=t[2],a=Number(r.slice(0,-1)),s="H"===r.slice(-1)?1:0,n=Number(t[3]),o=t[4]?Number(t[4]):0,c=t[5]?Number(t[5][0]):1;return[129,(i<<5)+a,(s<<7)+((8===n?0:1)<<6)+0+(o<<4)+(c<<3)+((t[5]?Number(t[5][1]):1)<<2)+(t[5]?Number(t[5][2]):0),0]},b=e=>{let{codec:t,codecDescription:i,colorSpace:a,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:c}=e;if("avc"===t){if((0,r.hu)(null!==e.avcType),s){let t=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc${e.avcType}.${(0,r.G3)(t)}`}if(!i||i.byteLength<4)throw TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${e.avcType}.${(0,r.G3)(i.subarray(1,4))}`}if("hevc"===t){let e,t,a,s,o,c;if(n)e=n.generalProfileSpace,t=n.generalProfileIdc,a=(0,r.Sf)(n.generalProfileCompatibilityFlags),s=n.generalTierFlag,o=n.generalLevelIdc,c=[...n.generalConstraintIndicatorFlags];else{if(!i||i.byteLength<23)throw TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let n=(0,r.NK)(i),l=n.getUint8(1);e=l>>6&3,t=31&l,a=(0,r.Sf)(n.getUint32(2)),s=l>>5&1,o=n.getUint8(12),c=[];for(let e=0;e<6;e++)c.push(n.getUint8(6+e))}let l="hev1.";for(l+=["","A","B","C"][e]+t+"."+a.toString(16).toUpperCase()+"."+(0===s?"L":"H")+o;c.length>0&&0===c[c.length-1];)c.pop();return c.length>0&&(l+="."+c.map(e=>e.toString(16).toUpperCase()).join(".")),l}if("vp8"===t)return"vp8";if("vp9"===t){if(!o){let t=e.width*e.height,i=(0,r.Z$)(u).level;for(let e of u)if(t<=e.maxPictureSize){i=e.level;break}return`vp09.00.${i.toString().padStart(2,"0")}.08`}let t=o.profile.toString().padStart(2,"0"),i=o.level.toString().padStart(2,"0"),a=o.bitDepth.toString().padStart(2,"0"),s=o.chromaSubsampling.toString().padStart(2,"0"),n=o.colourPrimaries.toString().padStart(2,"0"),c=o.transferCharacteristics.toString().padStart(2,"0"),l=o.matrixCoefficients.toString().padStart(2,"0"),d=o.videoFullRangeFlag.toString().padStart(2,"0"),h=`vp09.${t}.${i}.${a}.${s}`;return(h+=`.${n}.${c}.${l}.${d}`).endsWith(m)&&(h=h.slice(0,-m.length)),h}if("av1"===t){if(!c){let t=e.width*e.height,i=(0,r.Z$)(u).level;for(let e of u)if(t<=e.maxPictureSize){i=e.level;break}return`av01.0.${i.toString().padStart(2,"0")}M.08`}let t=c.profile,i=c.level.toString().padStart(2,"0"),s=c.tier?"H":"M",n=c.bitDepth.toString().padStart(2,"0"),o=c.monochrome?"1":"0",l=100*c.chromaSubsamplingX+10*c.chromaSubsamplingY+1*(c.chromaSubsamplingX&&c.chromaSubsamplingY?c.chromaSamplePosition:0),d=a?.primaries?r.$9[a.primaries]:1,h=a?.transfer?r.V3[a.transfer]:1,m=a?.matrix?r.P0[a.matrix]:1,p=a?.fullRange?1:0,g=`av01.${t}.${i}${s}.${n}`;return(g+=`.${o}.${l.toString().padStart(3,"0")}.${d.toString().padStart(2,"0")}.${h.toString().padStart(2,"0")}.${m.toString().padStart(2,"0")}.${p}`).endsWith(f)&&(g=g.slice(0,-f.length)),g}throw TypeError(`Unhandled codec '${t}'.`)},w=(e,t,i)=>{if("aac"===e)return t>=2&&i<=24e3?"mp4a.40.29":i<=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";if("ac3"===e)return"ac-3";if("eac3"===e)return"ec-3";else if(s.includes(e))return e;throw TypeError(`Unhandled codec '${e}'.`)},y=e=>{let{codec:t,codecDescription:i,aacCodecInfo:r}=e;if("aac"===t){if(!r)throw TypeError("AAC codec info must be provided.");if(r.isMpeg2)return"mp4a.67";{let e;return e=null!==r.objectType?r.objectType:v(i).objectType,`mp4a.40.${e}`}}
1if("mp3"===t)return"mp3";if("opus"===t)return"opus";if("vorbis"===t)return"vorbis";if("flac"===t)return"flac";if("ac3"===t)return"ac-3";if("eac3"===t)return"ec-3";else if(t&&s.includes(t))return t;throw TypeError(`Unhandled codec '${t}'.`)},T=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],S=[-1,1,2,3,4,5,6,8],v=e=>{if(!e||e.byteLength<2)throw TypeError("AAC description must be at least 2 bytes long.");let t=new r.Zi(e),i=t.readBits(5);31===i&&(i=32+t.readBits(6));let a=t.readBits(4),s=null;15===a?s=t.readBits(24):a<T.length&&(s=T[a]);let n=t.readBits(4),o=null;return n>=1&&n<=7&&(o=S[n]),{objectType:i,frequencyIndex:a,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},P=e=>{let t=T.indexOf(e.sampleRate),i=null;-1===t&&(t=15,i=e.sampleRate);let a=S.indexOf(e.numberOfChannels);if(-1===a)throw TypeError(`Unsupported number of channels: ${e.numberOfChannels}`);let s=13;e.objectType>=32&&(s+=6),15===t&&(s+=24);let n=new Uint8Array(Math.ceil(s/8)),o=new r.Zi(n);return e.objectType<32?o.writeBits(5,e.objectType):(o.writeBits(5,31),o.writeBits(6,e.objectType-32)),o.writeBits(4,t),15===t&&o.writeBits(24,i),o.writeBits(4,a),n},C=48e3,x=/^pcm-([usf])(\d+)+(be)?$/,I=e=>{let t;if((0,r.hu)(s.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 i=x.exec(e);return(0,r.hu)(i),t="u"===i[1]?"unsigned":"s"===i[1]?"signed":"float",{dataType:t,sampleSize:Number(i[2])/8,littleEndian:"be"!==i[3],silentValue:"pcm-u8"===e?128:0}},E=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";if("ac-3"===e||"ac3"===e)return"ac3";if("ec-3"===e||"eac3"===e)return"eac3";else if("ulaw"===e)return"ulaw";else if("alaw"===e)return"alaw";else if(x.test(e))return e;return"webvtt"===e?"webvtt":null},B=e=>"avc"===e?{avc:{format:"avc"}}:"hevc"===e?{hevc:{format:"hevc"}}:{},_=e=>"aac"===e?{aac:{format:"aac"}}:"opus"===e?{opus:{format:"opus"}}:{},A=["avc1","avc3","hev1","hvc1","vp8","vp09","av01"],R=/^(avc1|avc3)\.[0-9a-fA-F]{6}$/,F=/^(hev1|hvc1)\.(?:[ABC]?\d+)\.[0-9a-fA-F]{1,8}\.[LH]\d+(?:\.[0-9a-fA-F]{1,2}){0,6}$/,M=/^vp09(?:\.\d{2}){3}(?:(?:\.\d{2}){5})?$/,D=/^av01\.\d\.\d{2}[MH]\.\d{2}(?:\.\d\.\d{3}\.\d{2}\.\d{2}\.\d{2}\.\d)?$/,z=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(!A.some(t=>e.decoderConfig.codec.startsWith(t)))throw TypeError("Video chunk metadata decoder configuration codec string must be a valid video codec string as specified in the Mediabunny 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,r.n0)(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:t}=e.decoderConfig;if("object"!=typeof t)throw TypeError("Video chunk metadata decoder configuration colorSpace, when provided, must be an object.");let i=Object.keys(r.$9);if(null!=t.primaries&&!i.includes(t.primaries))throw TypeError(`Video chunk metadata decoder configuration colorSpace primaries, when defined, must be one of ${i.join(", ")}.`);let a=Object.keys(r.V3);if(null!=t.transfer&&!a.includes(t.transfer))throw TypeError(`Video chunk metadata decoder configuration colorSpace transfer, when defined, must be one of ${a.join(", ")}.`);let s=Object.keys(r.P0);if(null!=t.matrix&&!s.includes(t.matrix))throw TypeError(`Video chunk metadata decoder configuration colorSpace matrix, when defined, must be one of ${s.join(", ")}.`);
1if(null!=t.fullRange&&"boolean"!=typeof t.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(!R.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(!F.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(!M.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")&&!D.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/.')},O=["mp4a","mp3","opus","vorbis","flac","ulaw","alaw","pcm","ac-3","ec-3"],U=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(!O.some(t=>e.decoderConfig.codec.startsWith(t)))throw TypeError("Audio chunk metadata decoder configuration codec string must be a valid audio codec string as specified in the Mediabunny 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,r.n0)(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/.")}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 
1in 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("ac-3")||e.decoderConfig.codec.startsWith("ac3")){if("ac-3"!==e.decoderConfig.codec)throw TypeError('Audio chunk metadata decoder configuration codec string for AC-3 must be "ac-3".')}else if(e.decoderConfig.codec.startsWith("ec-3")||e.decoderConfig.codec.startsWith("eac3")){if("ec-3"!==e.decoderConfig.codec)throw TypeError('Audio chunk metadata decoder configuration codec string for EC-3 must be "ec-3".')}else if((e.decoderConfig.codec.startsWith("pcm")||e.decoderConfig.codec.startsWith("ulaw")||e.decoderConfig.codec.startsWith("alaw"))&&!s.includes(e.decoderConfig.codec))throw TypeError(`Audio chunk metadata decoder configuration codec string for PCM must be one of the supported PCM codecs (${s.join(", ")}).`)},N=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.")}},48593:function(e,t,i){i.d(t,{uz:function(){return g}});var r=i(41201),a=i(71305),s=i(54897),n=i(51887),o=i(38114),c=i(73272),l=i(16065),d=i(66936),u=i(30285),h=i(45907),m=i(763);let f=e=>{if(void 0!==e&&(!e||"object"!=typeof e))throw TypeError("options.video, when provided, must be an object.");if(e?.discard!==void 0&&"boolean"!=typeof e.discard)throw TypeError("options.video.discard, when provided, must be a boolean.");if(e?.forceTranscode!==void 0&&"boolean"!=typeof e.forceTranscode)throw TypeError("options.video.forceTranscode, when provided, must be a boolean.");if(e?.codec!==void 0&&!r.Au.includes(e.codec))throw TypeError(`options.video.codec, when provided, must be one of: ${r.Au.join(", ")}.`);if(e?.bitrate!==void 0&&!(e.bitrate instanceof a.nJ)&&(!Number.isInteger(e.bitrate)||e.bitrate<=0))throw TypeError("options.video.bitrate, when provided, must be a positive integer or a quality.");if(e?.width!==void 0&&(!Number.isInteger(e.width)||e.width<=0))throw TypeError("options.video.width, when provided, must be a positive integer.");if(e?.height!==void 0&&(!Number.isInteger(e.height)||e.height<=0))throw TypeError("options.video.height, when provided, must be a positive integer.");if(e?.fit!==void 0&&!["fill","contain","cover"].includes(e.fit))throw TypeError("options.video.fit, when provided, must be one of 'fill', 'contain', or 'cover'.");if(e?.width!==void 0&&void 0!==e.height&&void 0===e.fit)throw TypeError("When both options.video.width and options.video.height are provided, options.video.fit must also be provided.");if(e?.rotate!==void 0&&![0,90,180,270].includes(e.rotate))throw TypeError("options.video.rotate, when provided, must be 0, 90, 180 or 270.");if(e?.allowRotationMetadata!==void 0&&"boolean"!=typeof e.allowRotationMetadata)throw TypeError("options.video.allowRotationMetadata, when provided, must be a boolean.");if(e?.crop!==void 0&&(0,u.DI)(e.crop,"options.video."),e?.frameRate!==void 0&&(!Number.isFinite(e.frameRate)||e.frameRate<=0))throw TypeError("options.video.frameRate, when provided, must be a finite positive number.");if(e?.alpha!==void 0&&!["discard","keep"].includes(e.alpha))throw TypeError("options.video.alpha, when provided, must be either 'discard' or 'keep'.");if(e?.keyFrameInterval!==void 0&&(!Number.isFinite(e.keyFrameInterval)||e.keyFrameInterval<0))throw TypeError("options.video.keyFrameInterval, when provided, must be a non-negative number.");if(e?.process!==void 0&&"function"!=typeof e.process)throw TypeError("options.video.process, when provided, must be a function.");
1if(e?.processedWidth!==void 0&&(!Number.isInteger(e.processedWidth)||e.processedWidth<=0))throw TypeError("options.video.processedWidth, when provided, must be a positive integer.");if(e?.processedHeight!==void 0&&(!Number.isInteger(e.processedHeight)||e.processedHeight<=0))throw TypeError("options.video.processedHeight, when provided, must be a positive integer.");if(e?.hardwareAcceleration!==void 0&&!["no-preference","prefer-hardware","prefer-software"].includes(e.hardwareAcceleration))throw TypeError("options.video.hardwareAcceleration, when provided, must be 'no-preference', 'prefer-hardware' or 'prefer-software'.")},p=e=>{if(void 0!==e&&(!e||"object"!=typeof e))throw TypeError("options.audio, when provided, must be an object.");if(e?.discard!==void 0&&"boolean"!=typeof e.discard)throw TypeError("options.audio.discard, when provided, must be a boolean.");if(e?.forceTranscode!==void 0&&"boolean"!=typeof e.forceTranscode)throw TypeError("options.audio.forceTranscode, when provided, must be a boolean.");if(e?.codec!==void 0&&!r.eY.includes(e.codec))throw TypeError(`options.audio.codec, when provided, must be one of: ${r.eY.join(", ")}.`);if(e?.bitrate!==void 0&&!(e.bitrate instanceof a.nJ)&&(!Number.isInteger(e.bitrate)||e.bitrate<=0))throw TypeError("options.audio.bitrate, when provided, must be a positive integer or a quality.");if(e?.numberOfChannels!==void 0&&(!Number.isInteger(e.numberOfChannels)||e.numberOfChannels<=0))throw TypeError("options.audio.numberOfChannels, when provided, must be a positive integer.");if(e?.sampleRate!==void 0&&(!Number.isInteger(e.sampleRate)||e.sampleRate<=0))throw TypeError("options.audio.sampleRate, when provided, must be a positive integer.");if(e?.process!==void 0&&"function"!=typeof e.process)throw TypeError("options.audio.process, when provided, must be a function.");if(e?.processedNumberOfChannels!==void 0&&(!Number.isInteger(e.processedNumberOfChannels)||e.processedNumberOfChannels<=0))throw TypeError("options.audio.processedNumberOfChannels, when provided, must be a positive integer.");if(e?.processedSampleRate!==void 0&&(!Number.isInteger(e.processedSampleRate)||e.processedSampleRate<=0))throw TypeError("options.audio.processedSampleRate, when provided, must be a positive integer.")};class g{static async init(e){let t=new g(e);return await t._init(),t}constructor(e){if(this._addedCounts={video:0,audio:0,subtitle:0},this._totalTrackCount=0,this._trackPromises=[],this._executed=!1,this._synchronizer=new b,this._totalDuration=null,this._maxTimestamps=new Map,this._canceled=!1,this.onProgress=void 0,this._computeProgress=!1,this._lastProgress=0,this.isValid=!1,this.utilizedTracks=[],this.discardedTracks=[],!e||"object"!=typeof e)throw TypeError("options must be an object.");if(!(e.input instanceof s.I))throw TypeError("options.input must be an Input.");if(!(e.output instanceof l.r))throw TypeError("options.output must be an Output.");if(e.output._tracks.length>0||Object.keys(e.output._metadataTags).length>0||"pending"!==e.output.state)throw TypeError("options.output must be fresh: no tracks or metadata tags added and not started.");if("function"!=typeof e.video&&f(e.video),"function"!=typeof e.audio&&p(e.audio),void 0!==e.trim&&(!e.trim||"object"!=typeof e.trim))throw TypeError("options.trim, when provided, must be an object.");if(e.trim?.start!==void 0&&!Number.isFinite(e.trim.start))throw TypeError("options.trim.start, when provided, must be a finite number.");if(e.trim?.end!==void 0&&!Number.isFinite(e.trim.end))throw TypeError("options.trim.end, when provided, must be a finite number.");if(e.trim?.start!==void 0&&void 0!==e.trim.end&&e.trim.start>=e.trim.end)throw TypeError("options.trim.start must be less than options.trim.end.");if(void 0!==e.tags&&("object"!=typeof e.tags||!e.tags)&&"function"!=typeof e.tags)throw TypeError("options.tags, when provided, must be an object or a function.");if("object"==typeof e.tags&&(0,h.RE)(e.tags),void 0!==e.showWarnings&&"boolean"!=typeof e.showWarnings)throw TypeError("options.showWarnings, when provided, must be a boolean.");this._options=e,this.input=e.input,this.output=e.output;let{promise:t,resolve:i}=(0,c.Bw)();this._started=t,this._start=i}async _init(){let e;this._startTimestamp=this._options.trim?.start??Math.max(await this.input.getFirstTimestamp(),0),this._endTimestamp=Math.max(this._options.trim?.end??1/0,this._startTimestamp);
1let t=await this.input.getTracks(),i=this.output.format.getSupportedTrackCounts(),r=1,a=1;for(let e of t){let t;if(e.isVideoTrack()?this._options.video&&("function"==typeof this._options.video?(f(t=await this._options.video(e,r)),r++):t=this._options.video):e.isAudioTrack()?this._options.audio&&("function"==typeof this._options.audio?(p(t=await this._options.audio(e,a)),a++):t=this._options.audio):(0,c.hu)(!1),t?.discard){this.discardedTracks.push({track:e,reason:"discarded_by_user"});continue}if(this._totalTrackCount===i.total.max){this.discardedTracks.push({track:e,reason:"max_track_count_reached"});continue}if(this._addedCounts[e.type]===i[e.type].max){this.discardedTracks.push({track:e,reason:"max_track_count_of_type_reached"});continue}e.isVideoTrack()?await this._processVideoTrack(e,t??{}):e.isAudioTrack()&&await this._processAudioTrack(e,t??{})}let s=await this.input.getMetadataTags();if(this._options.tags){let t="function"==typeof this._options.tags?await this._options.tags(s):this._options.tags;(0,h.RE)(t),e=t}else e=s;let n=(await this.input.getFormat()).mimeType===this.output.format.mimeType,o=s.raw===e.raw;if(s.raw&&o&&!n&&delete e.raw,this.output.setMetadataTags(e),this.isValid=this._totalTrackCount>=i.total.min&&this._addedCounts.video>=i.video.min&&this._addedCounts.audio>=i.audio.min&&this._addedCounts.subtitle>=i.subtitle.min,this._options.showWarnings??!0){let e=[],t=this.discardedTracks.filter(e=>"discarded_by_user"!==e.reason);t.length>0&&e.push("Some tracks had to be discarded from the conversion:",t),this.isValid||e.push("\n\n"+this._getInvalidityExplanation().join("")),e.length>0&&console.warn(...e)}}_getInvalidityExplanation(){let e=[];
1if(0===this.discardedTracks.length)e.push("Due to missing tracks, this conversion cannot be executed.");else{let t=this.discardedTracks.every(e=>"discarded_by_user"===e.reason||"no_encodable_target_codec"===e.reason);if(e.push("Due to discarded tracks, this conversion cannot be executed."),t){let t=this.discardedTracks.flatMap(e=>"discarded_by_user"===e.reason?[]:"video"===e.track.type?this.output.format.getSupportedVideoCodecs():"audio"===e.track.type?this.output.format.getSupportedAudioCodecs():this.output.format.getSupportedSubtitleCodecs());1===t.length?e.push(`
2Tracks were discarded because your environment is not able to encode '${t[0]}'.`):e.push(`
3Tracks were discarded because your environment is not able to encode any of the following codecs: ${t.map(e=>`'${e}'`).join(", ")}.`),t.includes("mp3")&&e.push(`
4The @mediabunny/mp3-encoder extension package provides support for encoding MP3.`),(t.includes("ac3")||t.includes("eac3"))&&e.push("\nThe @mediabunny/ac3 extension package provides support for encoding and decoding AC-3/E-AC-3.")}else e.push("\nCheck the discardedTracks field for more info.")}return e}async execute(){if(!this.isValid)throw Error("Cannot execute this conversion because its output configuration is invalid. Make sure to always check the isValid field before executing a conversion.\n"+this._getInvalidityExplanation().join(""));if(this._executed)throw Error("Conversion cannot be executed twice.");if(this._executed=!0,this.onProgress){let e=this.utilizedTracks.map(e=>e.computeDuration()),t=Math.max(0,...await Promise.all(e));for(let e of(this._computeProgress=!0,this._totalDuration=Math.min(t-this._startTimestamp,this._endTimestamp-this._startTimestamp),this.utilizedTracks))this._maxTimestamps.set(e.id,0);this.onProgress?.(0)}await this.output.start(),this._start();try{await Promise.all(this._trackPromises)}catch(e){throw this._canceled||this.cancel(),e}if(this._canceled)throw new k;await this.output.finalize(),this._computeProgress&&this.onProgress?.(1)}async cancel(){if("finalizing"!==this.output.state&&"finalized"!==this.output.state){if(this._canceled){console.warn("Conversion already canceled.");return}this._canceled=!0,await this.output.cancel()}}async _processVideoTrack(e,t){let i;let r=e.codec;if(!r){this.discardedTracks.push({track:e,reason:"unknown_source_codec"});return}let s=(0,c.lP)(e.rotation+(t.rotate??0)),h=s,f=this.output.format.supportsVideoRotationMetadata&&(t.allowRotationMetadata??!0),[p,g]=s%180==0?[e.squarePixelWidth,e.squarePixelHeight]:[e.squarePixelHeight,e.squarePixelWidth],k=t.crop;k&&(0,u.di)(k,p,g);let[b,w]=k?[k.width,k.height]:[p,g],y=b,T=w,S=y/T,v=e=>2*Math.ceil(e/2);void 0!==t.width&&void 0===t.height?(y=v(t.width),T=v(Math.round(y/S))):void 0===t.width&&void 0!==t.height?(T=v(t.height),y=v(Math.round(T*S))):void 0!==t.width&&void 0!==t.height&&(y=v(t.width),T=v(t.height));let P=await e.getFirstTimestamp(),C=this.output.format.getSupportedVideoCodecs(),x=!!t.forceTranscode||P<this._startTimestamp||!!t.frameRate||void 0!==t.keyFrameInterval||void 0!==t.process||void 0!==t.bitrate||!C.includes(r)||t.codec&&t.codec!==r||y!==b||T!==w||0!==s&&!f||!!k,I=t.alpha??"discard";if(x){if(!await e.canDecode()){this.discardedTracks.push({track:e,reason:"undecodable_source_codec"});return}t.codec&&(C=C.filter(e=>e===t.codec));let r=t.bitrate??a.n1,p=await (0,a.Rk)(C,{width:t.process&&t.processedWidth?t.processedWidth:y,height:t.process&&t.processedHeight?t.processedHeight:T,bitrate:r});if(!p){this.discardedTracks.push({track:e,reason:"no_encodable_target_codec"});return}let g={codec:p,bitrate:r,keyFrameInterval:t.keyFrameInterval,sizeChangeBehavior:t.fit??"passThrough",alpha:I,hardwareAcceleration:t.hardwareAcceleration},S=new o.Dg(g);i=S;let v=y!==b||T!==w||0!==s&&(!f||void 0!==t.process)||!!k||e.squarePixelWidth!==e.codedWidth||e.squarePixelHeight!==e.codedHeight;if(!v){let t=new l.r({format:new d.E1,target:new m.Fu}),i=new o.Dg(g);t.addVideoTrack(i),await t.start();let r=new n.dL(e),a=await r.getSample(P);if(a)try{await i.add(a),a.close(),await t.finalize()}catch(e){console.info("Error when probing encoder support. Falling back to rerender path.",e),v=!0,t.cancel()}else await t.cancel()}v?this._trackPromises.push((async()=>{await this._started;let i=new n.C(e,{width:y,height:T,fit:t.fit??"fill",rotation:s,crop:t.crop,poolSize:1,alpha:"keep"===I}
4).canvases(this._startTimestamp,this._endTimestamp),r=t.frameRate;h=0;let a=null,o=null,l=null,d=async i=>{(0,c.hu)(a),(0,c.hu)(void 0!==r);let s=Math.round((i-o)*r);for(let i=1;i<s;i++){let s=new u._A(a,{timestamp:o+i/r,duration:1/r});await this._registerVideoSample(e,t,S,s),s.close()}};for await(let{canvas:s,timestamp:n,duration:c}of i){if(this._canceled)return;let i=Math.max(n-this._startTimestamp,0);if(l=i+c,void 0!==r){let e=Math.floor(i*r)/r;if(null!==a){if(e<=o){a=s,o=e;continue}await d(e)}i=e}let h=new u._A(s,{timestamp:i,duration:void 0!==r?1/r:c});await this._registerVideoSample(e,t,S,h),h.close(),void 0!==r&&(a=s,o=i)}a&&((0,c.hu)(null!==l),(0,c.hu)(void 0!==r),await d(Math.floor(l*r)/r)),S.close(),this._synchronizer.closeTrack(e.id)})()):this._trackPromises.push((async()=>{await this._started;let i=new n.dL(e),r=t.frameRate,a=null,s=null,o=null,l=async i=>{(0,c.hu)(a),(0,c.hu)(void 0!==r);let n=Math.round((i-s)*r);for(let i=1;i<n;i++)a.setTimestamp(s+i/r),a.setDuration(1/r),await this._registerVideoSample(e,t,S,a);a.close()};for await(let n of i.samples(this._startTimestamp,this._endTimestamp)){if(this._canceled){n.close(),a?.close();return}let i=Math.max(n.timestamp-this._startTimestamp,0);if(o=i+n.duration,void 0!==r){let e=Math.floor(i*r)/r;if(null!==a){if(e<=s){a.close(),a=n,s=e;continue}await l(e)}i=e,n.setDuration(1/r)}n.setTimestamp(i),await this._registerVideoSample(e,t,S,n),void 0!==r?(a=n,s=i):n.close()}a&&((0,c.hu)(null!==o),(0,c.hu)(void 0!==r),await l(Math.floor(o*r)/r)),S.close(),this._synchronizer.closeTrack(e.id)})())}else{let t=new o.eS(r);i=t,this._trackPromises.push((async()=>{await this._started;let i=new n.a6(e),r={decoderConfig:await e.getDecoderConfig()??void 0},a=Number.isFinite(this._endTimestamp)?await i.getPacket(this._endTimestamp,{metadataOnly:!0})??void 0:void 0;for await(let s of i.packets(void 0,a,{verifyKeyPackets:!0})){if(this._canceled)return;let i=s.clone({timestamp:s.timestamp-this._startTimestamp,sideData:"discard"===I?{}:s.sideData});(0,c.hu)(i.timestamp>=0),this._reportProgress(e.id,i.timestamp),await t.add(i,r),this._synchronizer.shouldWait(e.id,i.timestamp)&&await this._synchronizer.wait(i.timestamp)}t.close(),this._synchronizer.closeTrack(e.id)})())}this.output.addVideoTrack(i,{frameRate:t.frameRate,languageCode:(0,c.Rh)(e.languageCode)?e.languageCode:void 0,name:e.name??void 0,disposition:e.disposition,rotation:h}),this._addedCounts.video++,this._totalTrackCount++,this.utilizedTracks.push(e)}async _registerVideoSample(e,t,i,r){let a;if(!this._canceled){if(this._reportProgress(e.id,r.timestamp),t.process){let e=t.process(r);e instanceof Promise&&(e=await e),Array.isArray(e)||(e=null===e?[]:[e]),a=e.map(e=>e instanceof u._A?e:"undefined"!=typeof VideoFrame&&e instanceof VideoFrame?new u._A(e):new u._A(e,{timestamp:r.timestamp,duration:r.duration}))}else a=[r];for(let t of a){if(this._canceled)break;await i.add(t),this._synchronizer.shouldWait(e.id,t.timestamp)&&await this._synchronizer.wait(t.timestamp)}for(let e of a)e!==r&&e.close()}}async _processAudioTrack(e,t){let i;let s=e.codec;if(!s){this.discardedTracks.push({track:e,reason:"unknown_source_codec"});return}let l=e.numberOfChannels,d=e.sampleRate,u=await e.getFirstTimestamp(),h=t.numberOfChannels??l,m=t.sampleRate??d,f=h!==l||m!==d||u<this._startTimestamp||u>this._startTimestamp&&!this.output.format.supportsTimestampedMediaData,p=this.output.format.getSupportedAudioCodecs();if(!(!t.forceTranscode&&!t.bitrate&&!f&&p.includes(s))||t.codec&&t.codec!==s||t.process){if(!await e.canDecode()){this.discardedTracks.push({track:e,reason:"undecodable_source_codec"});return}let s=null;t.codec&&(p=p.filter(e=>e===t.codec));let c=t.bitrate??a.n1,l=await (0,a.F5)(p,{numberOfChannels:t.process&&t.processedNumberOfChannels?t.processedNumberOfChannels:h,sampleRate:t.process&&t.processedSampleRate?t.processedSampleRate:m,bitrate:c});if(!l.some(e=>r.Vr.includes(e))&&p.some(e=>r.Vr.includes(e))&&(2!==h||48e3!==m)){let e=(await (0,a.F5)(p,{numberOfChannels:2,sampleRate:48e3,bitrate:c})).find(e=>r.Vr.includes(e));e&&(f=!0,s=e,h=2,m=48e3)}else s=l[0]??null;if(null===s){this.discardedTracks.push({track:e,reason:"no_encodable_target_co
4dec"});return}if(f)i=this._resampleAudio(e,t,s,h,m,c);else{let r=new o.SY({codec:s,bitrate:c});i=r,this._trackPromises.push((async()=>{for await(let i of(await this._started,new n.O8(e).samples(void 0,this._endTimestamp))){if(this._canceled){i.close();return}i.setTimestamp(i.timestamp-this._startTimestamp),await this._registerAudioSample(e,t,r,i),i.close()}r.close(),this._synchronizer.closeTrack(e.id)})())}}else{let t=new o.p7(s);i=t,this._trackPromises.push((async()=>{await this._started;let i=new n.a6(e),r={decoderConfig:await e.getDecoderConfig()??void 0},a=Number.isFinite(this._endTimestamp)?await i.getPacket(this._endTimestamp,{metadataOnly:!0})??void 0:void 0;for await(let s of i.packets(void 0,a)){if(this._canceled)return;let i=s.clone({timestamp:s.timestamp-this._startTimestamp});(0,c.hu)(i.timestamp>=0),this._reportProgress(e.id,i.timestamp),await t.add(i,r),this._synchronizer.shouldWait(e.id,i.timestamp)&&await this._synchronizer.wait(i.timestamp)}t.close(),this._synchronizer.closeTrack(e.id)})())}this.output.addAudioTrack(i,{languageCode:(0,c.Rh)(e.languageCode)?e.languageCode:void 0,name:e.name??void 0,disposition:e.disposition}),this._addedCounts.audio++,this._totalTrackCount++,this.utilizedTracks.push(e)}async _registerAudioSample(e,t,i,r){let a;if(!this._canceled){if(this._reportProgress(e.id,r.timestamp),t.process){let e=t.process(r);if(e instanceof Promise&&(e=await e),Array.isArray(e)||(e=null===e?[]:[e]),!e.every(e=>e instanceof u.Xw))throw TypeError("The audio process function must return an AudioSample, null, or an array of AudioSamples.");a=e}else a=[r];for(let t of a){if(this._canceled)break;await i.add(t),this._synchronizer.shouldWait(e.id,t.timestamp)&&await this._synchronizer.wait(t.timestamp)}for(let e of a)e!==r&&e.close()}}_resampleAudio(e,t,i,r,a,s){let c=new o.SY({codec:i,bitrate:s});return this._trackPromises.push((async()=>{await this._started;let i=new w({targetNumberOfChannels:r,targetSampleRate:a,startTime:this._startTimestamp,endTime:this._endTimestamp,onSample:async i=>{await this._registerAudioSample(e,t,c,i),i.close()}});for await(let t of new n.O8(e).samples(this._startTimestamp,this._endTimestamp)){if(this._canceled){t.close();return}await i.add(t),t.close()}await i.finalize(),c.close(),this._synchronizer.closeTrack(e.id)})()),c}_reportProgress(e,t){if(!this._computeProgress)return;(0,c.hu)(null!==this._totalDuration),this._maxTimestamps.set(e,Math.max(t,this._maxTimestamps.get(e)));let i=Math.min(...this._maxTimestamps.values()),r=(0,c.uZ)(i/this._totalDuration,0,1);r!==this._lastProgress&&(this._lastProgress=r,this.onProgress?.(r))}}class k extends Error{constructor(e="Conversion has been canceled."){super(e),this.name="ConversionCanceledError"}}class b{constructor(){this.maxTimestamps=new Map,this.resolvers=[]}computeMinAndMaybeResolve(){let e=1/0;for(let[,t]of this.maxTimestamps)e=Math.min(e,t);for(let t=0;t<this.resolvers.length;t++){let i=this.resolvers[t];i.timestamp-e<5&&(i.resolve(),this.resolvers.splice(t,1),t--)}return e}shouldWait(e,t){return this.maxTimestamps.set(e,Math.max(t,this.maxTimestamps.get(e)??-1/0)),t-this.computeMinAndMaybeResolve()>=5}wait(e){let{promise:t,resolve:i}=(0,c.Bw)();return this.resolvers.push({timestamp:e,resolve:i}),t}closeTrack(e){this.maxTimestamps.delete(e),this.computeMinAndMaybeResolve()}}class w{constructor(e){this.sourceSampleRate=null,this.sourceNumberOfChannels=null,this.targetSampleRate=e.targetSampleRate,this.targetNumberOfChannels=e.targetNumberOfChannels,this.startTime=e.startTime,this.endTime=e.endTime,this.onSample=e.onSample,this.bufferSizeInFrames=Math.floor(5*this.targetSampleRate),this.bufferSizeInSamples=this.bufferSizeInFrames*this.targetNumberOfChannels,this.outputBuffer=new Float32Array(this.bufferSizeInSamples),this.bufferStartFrame=0,this.maxWrittenFrame=-1}doChannelMixerSetup(){(0,c.hu)(null!==this.sourceNumberOfChannels);let e=this.sourceNumberOfChannels,t=this.targetNumberOfChannels;1===e&&2===t?this.channelMixer=(t,i)=>t[i*e]:1===e&&4===t?this.channelMixer=(t,i,r)=>t[i*e]*+(r<2):1===e&&6===t?this.channelMixer=(t,i,r)=>t[i*e]*+(2===r):2===e&&1===t?this.channelMixer=(t,i)=>{let r=i*e;return .5*(t[r]+t[r+1])}:2===e&&4===t?this.channelMixer=(t,i,r)=>
4t[i*e+r]*+(r<2):2===e&&6===t?this.channelMixer=(t,i,r)=>t[i*e+r]*+(r<2):4===e&&1===t?this.channelMixer=(t,i)=>{let r=i*e;return .25*(t[r]+t[r+1]+t[r+2]+t[r+3])}:4===e&&2===t?this.channelMixer=(t,i,r)=>{let a=i*e;return .5*(t[a+r]+t[a+r+2])}:4===e&&6===t?this.channelMixer=(t,i,r)=>{let a=i*e;return r<2?t[a+r]:2===r||3===r?0:t[a+r-2]}:6===e&&1===t?this.channelMixer=(t,i)=>{let r=i*e;return Math.SQRT1_2*(t[r]+t[r+1])+t[r+2]+.5*(t[r+4]+t[r+5])}:6===e&&2===t?this.channelMixer=(t,i,r)=>{let a=i*e;return t[a+r]+Math.SQRT1_2*(t[a+2]+t[a+r+4])}:6===e&&4===t?this.channelMixer=(t,i,r)=>{let a=i*e;return r<2?t[a+r]+Math.SQRT1_2*t[a+2]:t[a+r+2]}:this.channelMixer=(t,i,r)=>r<e?t[i*e+r]:0}ensureTempBufferSize(e){let t=this.tempSourceBuffer.length;for(;t<e;)t*=2;if(t!==this.tempSourceBuffer.length){let e=new Float32Array(t);e.set(this.tempSourceBuffer),this.tempSourceBuffer=e}}async add(e){null===this.sourceSampleRate&&(this.sourceSampleRate=e.sampleRate,this.sourceNumberOfChannels=e.numberOfChannels,this.tempSourceBuffer=new Float32Array(this.sourceSampleRate*this.sourceNumberOfChannels),this.doChannelMixerSetup());let t=e.numberOfFrames*e.numberOfChannels;this.ensureTempBufferSize(t);let i=e.allocationSize({planeIndex:0,format:"f32"}),r=new Float32Array(this.tempSourceBuffer.buffer,0,i/4);e.copyTo(r,{planeIndex:0,format:"f32"});let a=e.timestamp-this.startTime,s=Math.min(a+e.numberOfFrames/this.sourceSampleRate,this.endTime-this.startTime),n=Math.floor(a*this.targetSampleRate),o=Math.ceil(s*this.targetSampleRate);for(let t=n;t<o;t++){if(t<this.bufferStartFrame)continue;for(;t>=this.bufferStartFrame+this.bufferSizeInFrames;)await this.finalizeCurrentBuffer(),this.bufferStartFrame+=this.bufferSizeInFrames;let i=t-this.bufferStartFrame;(0,c.hu)(i<this.bufferSizeInFrames);let s=(t/this.targetSampleRate-a)*this.sourceSampleRate,n=Math.floor(s),o=Math.ceil(s),l=s-n;for(let t=0;t<this.targetNumberOfChannels;t++){let a=0,s=0;n>=0&&n<e.numberOfFrames&&(a=this.channelMixer(r,n,t)),o>=0&&o<e.numberOfFrames&&(s=this.channelMixer(r,o,t));let c=a+l*(s-a),d=i*this.targetNumberOfChannels+t;this.outputBuffer[d]+=c}this.maxWrittenFrame=Math.max(this.maxWrittenFrame,i)}}async finalizeCurrentBuffer(){if(this.maxWrittenFrame<0)return;let e=(this.maxWrittenFrame+1)*this.targetNumberOfChannels,t=new Float32Array(e);t.set(this.outputBuffer.subarray(0,e));let i=this.bufferStartFrame/this.targetSampleRate,r=new u.Xw({format:"f32",sampleRate:this.targetSampleRate,numberOfChannels:this.targetNumberOfChannels,timestamp:i,data:t});await this.onSample(r),this.outputBuffer.fill(0),this.maxWrittenFrame=-1}finalize(){return this.finalizeCurrentBuffer()}}},35206:function(e,t,i){i.d(t,{Gq:function(){return l},Ms:function(){return s},c6:function(){return o},hg:function(){return n},qm:function(){return c},w1:function(){return a}});class r{static supports(e,t){return!1}}class a{static supports(e,t){return!1}}let s=[],n=[],o=[],c=[],l=e=>{if(e.prototype instanceof r){if(o.includes(e)){console.warn("Video encoder already registered.");return}o.push(e)}else if(e.prototype instanceof a){if(c.includes(e)){console.warn("Audio encoder already registered.");return}c.push(e)}else throw TypeError("Encoder must be a CustomVideoEncoder or CustomAudioEncoder.")}},31395:function(e,t,i){i.d(t,{k:function(){return r}});class r{constructor(e){this.input=e}}},71305:function(e,t,i){i.d(t,{F5:function(){return g},OO:function(){return u},Rk:function(){return k},bj:function(){return n},ew:function(){return c},n1:function(){return m},nJ:function(){return h},vw:function(){return l}});var r=i(41201),a=i(35206),s=i(73272);let n=e=>{if(!e||"object"!=typeof e)throw TypeError("Encoding config must be an object.");if(!r.Au.includes(e.codec))throw TypeError(`Invalid video codec '${e.codec}'. Must be one of: ${r.Au.join(", ")}.`);if(!(e.bitrate instanceof h)&&(!Number.isInteger(e.bitrate)||e.bitrate<=0))throw TypeError("config.bitrate must be a positive integer or a quality.");
4if(void 0!==e.keyFrameInterval&&(!Number.isFinite(e.keyFrameInterval)||e.keyFrameInterval<0))throw TypeError("config.keyFrameInterval, when provided, must be a non-negative number.");if(void 0!==e.sizeChangeBehavior&&!["deny","passThrough","fill","contain","cover"].includes(e.sizeChangeBehavior))throw TypeError("config.sizeChangeBehavior, when provided, must be 'deny', 'passThrough', 'fill', 'contain' or 'cover'.");if(void 0!==e.onEncodedPacket&&"function"!=typeof e.onEncodedPacket)throw TypeError("config.onEncodedChunk, when provided, must be a function.");if(void 0!==e.onEncoderConfig&&"function"!=typeof e.onEncoderConfig)throw TypeError("config.onEncoderConfig, when provided, must be a function.");o(e.codec,e)},o=(e,t)=>{if(!t||"object"!=typeof t)throw TypeError("Encoding options must be an object.");if(void 0!==t.alpha&&!["discard","keep"].includes(t.alpha))throw TypeError("options.alpha, when provided, must be 'discard' or 'keep'.");if(void 0!==t.bitrateMode&&!["constant","variable"].includes(t.bitrateMode))throw TypeError("bitrateMode, when provided, must be 'constant' or 'variable'.");if(void 0!==t.latencyMode&&!["quality","realtime"].includes(t.latencyMode))throw TypeError("latencyMode, when provided, must be 'quality' or 'realtime'.");if(void 0!==t.fullCodecString&&"string"!=typeof t.fullCodecString)throw TypeError("fullCodecString, when provided, must be a string.");if(void 0!==t.fullCodecString&&(0,r.Cd)(t.fullCodecString)!==e)throw TypeError(`fullCodecString, when provided, must be a string that matches the specified codec (${e}).`);if(void 0!==t.hardwareAcceleration&&!["no-preference","prefer-hardware","prefer-software"].includes(t.hardwareAcceleration))throw TypeError("hardwareAcceleration, when provided, must be 'no-preference', 'prefer-hardware' or 'prefer-software'.");if(void 0!==t.scalabilityMode&&"string"!=typeof t.scalabilityMode)throw TypeError("scalabilityMode, when provided, must be a string.");if(void 0!==t.contentHint&&"string"!=typeof t.contentHint)throw TypeError("contentHint, when provided, must be a string.")},c=e=>{let t=e.bitrate instanceof h?e.bitrate._toVideoBitrate(e.codec,e.width,e.height):e.bitrate;return{codec:e.fullCodecString??(0,r.fQ)(e.codec,e.width,e.height,t),width:e.width,height:e.height,displayWidth:e.squarePixelWidth,displayHeight:e.squarePixelHeight,bitrate:t,bitrateMode:e.bitrateMode,alpha:e.alpha??"discard",framerate:e.framerate,latencyMode:e.latencyMode,hardwareAcceleration:e.hardwareAcceleration,scalabilityMode:e.scalabilityMode,contentHint:e.contentHint,...(0,r.$G)(e.codec)}},l=e=>{if(!e||"object"!=typeof e)throw TypeError("Encoding config must be an object.");if(!r.eY.includes(e.codec))throw TypeError(`Invalid audio codec '${e.codec}'. Must be one of: ${r.eY.join(", ")}.`);if(void 0===e.bitrate&&(!r.zE.includes(e.codec)||"flac"===e.codec))throw TypeError("config.bitrate must be provided for compressed audio codecs.");if(void 0!==e.bitrate&&!(e.bitrate instanceof h)&&(!Number.isInteger(e.bitrate)||e.bitrate<=0))throw TypeError("config.bitrate, when provided, must be a positive integer or a quality.");if(void 0!==e.onEncodedPacket&&"function"!=typeof e.onEncodedPacket)throw TypeError("config.onEncodedChunk, when provided, must be a function.");if(void 0!==e.onEncoderConfig&&"function"!=typeof e.onEncoderConfig)throw TypeError("config.onEncoderConfig, when provided, must be a function.");d(e.codec,e)},d=(e,t)=>{if(!t||"object"!=typeof t)throw TypeError("Encoding options must be an object.");if(void 0!==t.bitrateMode&&!["constant","variable"].includes(t.bitrateMode))throw TypeError("bitrateMode, when provided, must be 'constant' or 'variable'.");if(void 0!==t.fullCodecString&&"string"!=typeof t.fullCodecString)throw TypeError("fullCodecString, when provided, must be a string.");if(void 0!==t.fullCodecString&&(0,r.Cd)(t.fullCodecString)!==e)throw TypeError(`fullCodecString, when provided, must be a string that matches the specified codec (${e}).`)},u=e=>{let t=e.bitrate instanceof h?e.bitrate._toAudioBitrate(e.codec):e.bitrate;return{codec:e.fullCodecString??(0,r.HO)(e.codec,e.numberOfChannels,e.sampleRate),numberOfChannels:e.numberOfChannels,sampleRate:e.sampleRate,bitrate:t,bitrateMode:e.bitrateMode,...(0,r.ow)(e.codec)}};class h{constructor(e){this._factor=e}_toVideoBitrate(e,t,i){return 1e3*Math.ceil(3e6*Math.pow(t*i/2073600,.95)*({avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2})[e]*this._factor/1e3)}_toAudioBitrate(e){if(r.zE.includes(e)||"flac"===e)return;let t={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3,ac3:384e3,eac3:192e3}[e];if(!t)throw Error(`Unhandled codec: ${e}`);let i=t*this._factor;return"aac"===e?i=[96e3,128e3,16e4,192e3].reduce((e,t)=>
4Math.abs(t-i)<Math.abs(e-i)?t:e):"opus"===e||"vorbis"===e?i=Math.max(6e3,i):"mp3"===e&&(i=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((e,t)=>Math.abs(t-i)<Math.abs(e-i)?t:e)),1e3*Math.round(i/1e3)}}let m=new h(2),f=async(e,t={})=>{let{width:i=1280,height:n=720,bitrate:l=1e6,...d}=t;if(!r.Au.includes(e))return!1;if(!Number.isInteger(i)||i<=0)throw TypeError("width must be a positive integer.");if(!Number.isInteger(n)||n<=0)throw TypeError("height must be a positive integer.");if(!(l instanceof h)&&(!Number.isInteger(l)||l<=0))throw TypeError("bitrate must be a positive integer or a quality.");o(e,d);let u=null;return!!(a.c6.length>0&&(u??=c({codec:e,width:i,height:n,bitrate:l,framerate:void 0,...d}),a.c6.some(t=>t.supports(e,u))))||"undefined"!=typeof VideoEncoder&&(i%2!=1&&n%2!=1||"avc"!==e&&"hevc"!==e)&&(u??=c({codec:e,width:i,height:n,bitrate:l,framerate:void 0,...d,alpha:"discard"}),!!(await VideoEncoder.isConfigSupported(u)).supported&&(!(0,s.vU)()||new Promise(async e=>{try{let t=new VideoEncoder({output:()=>{},error:()=>e(!1)});t.configure(u);let r=new Uint8Array(i*n*4),a=new VideoFrame(r,{format:"RGBA",codedWidth:i,codedHeight:n,timestamp:0});t.encode(a),a.close(),await t.flush(),e(!0)}catch{e(!1)}})))},p=async(e,t={})=>{let{numberOfChannels:i=2,sampleRate:s=48e3,bitrate:n=128e3,...o}=t;if(!r.eY.includes(e))return!1;if(!Number.isInteger(i)||i<=0)throw TypeError("numberOfChannels must be a positive integer.");if(!Number.isInteger(s)||s<=0)throw TypeError("sampleRate must be a positive integer.");if(!(n instanceof h)&&(!Number.isInteger(n)||n<=0))throw TypeError("bitrate must be a positive integer.");d(e,o);let c=null;return!!(a.qm.length>0&&(c??=u({codec:e,numberOfChannels:i,sampleRate:s,bitrate:n,...o}),a.qm.some(t=>t.supports(e,c)))||r.zE.includes(e))||"undefined"!=typeof AudioEncoder&&(c??=u({codec:e,numberOfChannels:i,sampleRate:s,bitrate:n,...o}),!0===(await AudioEncoder.isConfigSupported(c)).supported)},g=async(e=r.eY,t)=>{let i=await Promise.all(e.map(e=>p(e,t)));return e.filter((e,t)=>i[t])},k=async(e,t)=>{for(let i of e)if(await f(i,t))return i;return null}},74010:function(e,t,i){i.d(t,{Lw:function(){return o},T3:function(){return l},_z:function(){return d},bD:function(){return s},gg:function(){return c},se:function(){return n}});var r=i(73272),a=i(93731);let s=e=>0===e?null:1===e?192:e>=2&&e<=5?144*2**e:6===e?"uncommon-u8":7===e?"uncommon-u16":e>=8&&e<=15?2**e:null,n=(e,t)=>{switch(e){case 0:return t;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}},o=e=>{let t=0,i=new r.Zi((0,a.sB)(e,1));for(;1===i.readBits(1);)t++;if(0===t)return i.readBits(7);let s=[],n=t-1,o=new r.Zi((0,a.sB)(e,n)),c=8-t-1;for(let e=0;e<c;e++)s.unshift(i.readBits(1));for(let e=0;e<n;e++)for(let e=0;e<8;e++){let t=o.readBits(1);e<2||s.unshift(t)}return s.reduce((e,t,i)=>e|t<<i,0)},c=(e,t)=>"uncommon-u16"===t?(0,a.jG)(e)+1:"uncommon-u8"===t?(0,a.s3)(e)+1:"number"==typeof t?t:void((0,r.vE)(t),(0,r.hu)(!1)),l=(e,t)=>"uncommon-u16"===t?(0,a.jG)(e):"uncommon-u16-10"===t?10*(0,a.jG)(e):"uncommon-u8"===t?(0,a.s3)(e):"number"==typeof t?t:null,d=e=>{let t=0;for(let i of e){t^=i;for(let e=0;e<8;e++)(128&t)!=0?t=t<<1^7:t<<=1,t&=255}return t}},1645:function(e,t,i){i.d(t,{HG:function(){return m},X6:function(){return d},Xm:function(){return g},gY:function(){return b},sA:function(){return u},wt:function(){return p}});var r,a,s,n,o=i(66914),c=i(73272),l=i(93731);(r=s||(s={}))[r.Unsynchronisation=128]="Unsynchronisation",r[r.ExtendedHeader=64]="ExtendedHeader",r[r.ExperimentalIndicator=32]="ExperimentalIndicator",r[r.Footer=16]="Footer",(a=n||(n={}))[a.ISO_8859_1=0]="ISO_8859_1",a[a.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",a[a.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",a[a.UTF_8=3]="UTF_8";let d=128,u=10,h=["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","S
4ound 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"],m=(e,t)=>{let i;let r=e.filePos;t.raw??={},t.raw.TAG??=(0,l.sB)(e,d-3),e.filePos=r;let a=f(e,30);a&&(t.title??=a);let s=f(e,30);s&&(t.artist??=s);let n=f(e,30);n&&(t.album??=n);let o=Number.parseInt(f(e,4),10);Number.isInteger(o)&&o>0&&(t.date??=new Date(o,0,1));let c=(0,l.sB)(e,30);if(0===c[28]&&0!==c[29]){let r=c[29];r>0&&(t.trackNumber??=r),e.skip(-30),i=f(e,28),e.skip(2)}else e.skip(-30),i=f(e,30);i&&(t.comment??=i);let u=(0,l.s3)(e);u<h.length&&(t.genre??=h[u])},f=(e,t)=>{let i=(0,l.sB)(e,t),r=(0,c.y$)(i.indexOf(0),i.length),a=i.subarray(0,r),s="";for(let e=0;e<a.length;e++)s+=String.fromCharCode(a[e]);return s.trimEnd()},p=e=>{let t=e.filePos,i=(0,l.yn)(e,3),r=(0,l.s3)(e),a=(0,l.s3)(e),s=(0,l.s3)(e),n=(0,l.dd)(e);return"ID3"!==i||255===r||255===a||(2155905152&n)!=0?(e.filePos=t,null):{majorVersion:r,revision:a,flags:s,size:(0,o.I5)(n)}},g=(e,t,i)=>{if(![2,3,4].includes(t.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${t.majorVersion}`);return}let r=(0,l.sB)(e,t.size),a=new k(t,r);if(t.flags&s.Footer&&a.removeFooter(),t.flags&s.Unsynchronisation&&3===t.majorVersion&&a.ununsynchronizeAll(),t.flags&s.ExtendedHeader){let e=a.readU32();3===t.majorVersion?a.pos+=e:a.pos+=e-4}for(;a.pos<=a.bytes.length-a.frameHeaderSize();){let e=a.readId3V2Frame();if(!e)break;let r=a.pos,n=a.pos+e.size,o=!1,c=!1,l=!1;if(3===t.majorVersion?(o=!!(64&e.flags),c=!!(128&e.flags)):4===t.majorVersion&&(o=!!(4&e.flags),c=!!(8&e.flags),l=!!(2&e.flags)||!!(t.flags&s.Unsynchronisation)),o){console.warn(`Skipping encrypted ID3v2 frame ${e.id}`),a.pos=n;continue}if(c){console.warn(`Skipping compressed ID3v2 frame ${e.id}`),a.pos=n;continue}switch(l&&a.ununsynchronizeRegion(a.pos,n),i.raw??={},"T"===e.id[0]?i.raw[e.id]??=a.readId3V2EncodingAndText(n):i.raw[e.id]??=a.readBytes(e.size),a.pos=r,e.id){case"TIT2":case"TT2":i.title??=a.readId3V2EncodingAndText(n);break;case"TIT3":case"TT3":i.description??=a.readId3V2EncodingAndText(n);break;case"TPE1":case"TP1":i.artist??=a.readId3V2EncodingAndText(n);break;case"TALB":case"TAL":i.album??=a.readId3V2EncodingAndText(n);break;case"TPE2":case"TP2":i.albumArtist??=a.readId3V2EncodingAndText(n);break;case"TRCK":case"TRK":{let e=a.readId3V2EncodingAndText(n).split("/"),t=Number.parseInt(e[0],10),r=e[1]&&Number.parseInt(e[1],10);Number.isInteger(t)&&t>0&&(i.trackNumber??=t),r&&Number.isInteger(r)&&r>0&&(i.tracksTotal??=r)}break;case"TPOS":case"TPA":{let e=a.readId3V2EncodingAndText(n).split("/"),t=Number.parseInt(e[0],10),r=e[1]&&Number.parseInt(e[1],10);Number.isInteger(t)&&t>0&&(i.discNumber??=t),r&&Number.isInteger(r)&&r>0&&(i.discsTotal??=r)}break;case"TCON":case"TCO":{let e=a.readId3V2EncodingAndText(n),t=/^\((\d+)\)/.exec(e);if(t){let e=Number.parseInt(t[1]);
4if(void 0!==h[e]){i.genre??=h[e];break}}if(t=/^\d+$/.exec(e)){let e=Number.parseInt(t[0]);if(void 0!==h[e]){i.genre??=h[e];break}}i.genre??=e}break;case"TDRC":case"TDAT":{let e=new Date(a.readId3V2EncodingAndText(n));Number.isNaN(e.getTime())||(i.date??=e)}break;case"TYER":case"TYE":{let e=Number.parseInt(a.readId3V2EncodingAndText(n),10);Number.isInteger(e)&&(i.date??=new Date(e,0,1))}break;case"USLT":case"ULT":{let e=a.readU8();a.pos+=3,a.readId3V2Text(e,n),i.lyrics??=a.readId3V2Text(e,n)}break;case"COMM":case"COM":{let e=a.readU8();a.pos+=3,a.readId3V2Text(e,n),i.comment??=a.readId3V2Text(e,n)}break;case"APIC":case"PIC":{let e;let r=a.readId3V2TextEncoding();if(2===t.majorVersion){let t=a.readAscii(3);e="PNG"===t?"image/png":"JPG"===t?"image/jpeg":"image/*"}else e=a.readId3V2Text(r,n);let s=a.readU8(),o=a.readId3V2Text(r,n).trimEnd(),c=n-a.pos;if(c>=0){let t=a.readBytes(c);i.images||(i.images=[]),i.images.push({data:t,mimeType:e,kind:3===s?"coverFront":4===s?"coverBack":"unknown",description:o})}}break;default:a.pos+=e.size}a.pos=n}};class k{constructor(e,t){this.header=e,this.bytes=t,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}frameHeaderSize(){return 2===this.header.majorVersion?6:10}ununsynchronizeAll(){let e=[];for(let t=0;t<this.bytes.length;t++){let i=this.bytes[t];e.push(i),255===i&&t!==this.bytes.length-1&&0===this.bytes[t]&&t++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,t){let i=[];for(let r=e;r<t;r++){let e=this.bytes[r];i.push(e),255===e&&r!==t-1&&0===this.bytes[r+1]&&r++}let r=this.bytes.subarray(0,e),a=this.bytes.subarray(t);this.bytes=new Uint8Array(r.length+i.length+a.length),this.bytes.set(r,0),this.bytes.set(i,r.length),this.bytes.set(a,r.length+i.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-u),this.view=new DataView(this.bytes.buffer)}readBytes(e){let t=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,t}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),t=this.view.getUint8(this.pos+1);return this.pos+=3,256*e+t}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(this.view.getUint8(this.pos+i));return this.pos+=e,t}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 t=this.readU32(),i=4===this.header.majorVersion?(0,o.I5)(t):t,r=this.readU16(),a=this.pos,s=e=>{let t=this.pos+e;if(t>this.bytes.length)return!1;if(t<=this.bytes.length-this.frameHeaderSize()){this.pos+=e;let t=this.readAscii(4);if("\0\0\0\0"!==t&&!/[0-9A-Z]{4}/.test(t))return!1}return!0};if(!s(i)){let e=4===this.header.majorVersion?t:(0,o.I5)(t);s(e)&&(i=e)}return this.pos=a,{id:e,size:i,flags:r}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,t){let i=this.pos,r=this.readBytes(t-this.pos);switch(e){case n.ISO_8859_1:{let e="";for(let t=0;t<r.length;t++){let a=r[t];if(0===a){this.pos=i+t+1;break}e+=String.fromCharCode(a)}return e}case n.UTF_16_WITH_BOM:if(255===r[0]&&254===r[1]){let e=new TextDecoder("utf-16le"),t=(0,c.y$)(r.findIndex((e,t)=>0===e&&0===r[t+1]&&t%2==0),r.length);return this.pos=i+Math.min(t+2,r.length),e.decode(r.subarray(2,t))}if(254===r[0]&&255===r[1]){let e=new TextDecoder("utf-16be"),t=(0,c.y$)(r.findIndex((e,t)=>0===e&&0===r[t+1]&&t%2==0),r.length);return this.pos=i+Math.min(t+2,r.length),e.decode(r.subarray(2,t))}{let e=(0,c.y$)(r.findIndex(e=>0===e),r.length);return this.pos=i+Math.min(e+1,r.length),c.zN.decode(r.subarray(0,e))}case n.UTF_16_BE_NO_BOM:{let e=new TextDecoder("utf-16be"),t=(0,c.y$)(r.findIndex((e,t)=>0===e&&0===r[t+1]&&t%2==0),r.length);return this.pos=i+Math.min(t+2,r.length),e.decode(r.subarray(0,t))}case n.UTF_8:{let e=(0,c.y$)(r.findIndex(e=>0===e),r.length);return this.pos=i+Math.min(e+1,r.length),c.zN.decode(r.subarray(0,e))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let t=this.readId3V2TextEncoding();return this.readId3V2Text(t,e)}}class b{constructor(e){this.helper=new Uint8Array(8),this.helperView=(0,c.NK)(this.helper),this.writer=e}writeId3V2Tag(e){let t=this.writer.getPos();this.writeAscii("ID3"),this.writeU8(4),this.writeU8(0),this.writeU8(0),this.writeSynchsafeU32(0);let i=this.writer.getPos(),r=new Set;for(let{key:t,value:i}
4of(0,c.lY)(e))switch(t){case"title":this.writeId3V2TextFrame("TIT2",i),r.add("TIT2");break;case"description":this.writeId3V2TextFrame("TIT3",i),r.add("TIT3");break;case"artist":this.writeId3V2TextFrame("TPE1",i),r.add("TPE1");break;case"album":this.writeId3V2TextFrame("TALB",i),r.add("TALB");break;case"albumArtist":this.writeId3V2TextFrame("TPE2",i),r.add("TPE2");break;case"trackNumber":{let t=void 0!==e.tracksTotal?`${i}/${e.tracksTotal}`:i.toString();this.writeId3V2TextFrame("TRCK",t),r.add("TRCK")}break;case"discNumber":{let t=void 0!==e.discsTotal?`${i}/${e.discsTotal}`:i.toString();this.writeId3V2TextFrame("TPOS",t),r.add("TPOS")}break;case"genre":this.writeId3V2TextFrame("TCON",i),r.add("TCON");break;case"date":this.writeId3V2TextFrame("TDRC",i.toISOString().slice(0,10)),r.add("TDRC");break;case"lyrics":this.writeId3V2LyricsFrame(i),r.add("USLT");break;case"comment":this.writeId3V2CommentFrame(i),r.add("COMM");break;case"images":{let e={coverFront:3,coverBack:4,unknown:0};for(let t of i){let i=e[t.kind]??0,r=t.description??"";this.writeId3V2ApicFrame(t.mimeType,i,r,t.data)}}break;case"tracksTotal":case"discsTotal":case"raw":break;default:(0,c.vE)(t)}if(e.raw)for(let t in e.raw){let i;let a=e.raw[t];if(!(null==a||4!==t.length||r.has(t))){if("string"==typeof a){let e=c.oL.encode(a);(i=new Uint8Array(e.byteLength+2))[0]=n.UTF_8,i.set(e,1)}else{if(!(a instanceof Uint8Array))continue;i=a}this.writeAscii(t),this.writeSynchsafeU32(i.byteLength),this.writeU16(0),this.writer.write(i)}}let a=this.writer.getPos(),s=a-i;return this.writer.seek(t+6),this.writeSynchsafeU32(s),this.writer.seek(a),s+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 t=0;t<e.length;t++)this.helper[t]=e.charCodeAt(t);this.writer.write(this.helper.subarray(0,e.length))}writeSynchsafeU32(e){this.writeU32((0,o.NO)(e))}writeIsoString(e){let t=new Uint8Array(e.length+1);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);t[e.length]=0,this.writer.write(t)}writeUtf8String(e){let t=c.oL.encode(e);this.writer.write(t),this.writeU8(0)}writeId3V2TextFrame(e,t){let i=(0,c.Xd)(t),r=i?t.length:c.oL.encode(t).byteLength;this.writeAscii(e),this.writeSynchsafeU32(1+r+1),this.writeU16(0),this.writeU8(i?n.ISO_8859_1:n.UTF_8),i?this.writeIsoString(t):this.writeUtf8String(t)}writeId3V2LyricsFrame(e){let t=(0,c.Xd)(e),i=5+e.length+1;this.writeAscii("USLT"),this.writeSynchsafeU32(i),this.writeU16(0),this.writeU8(t?n.ISO_8859_1:n.UTF_8),this.writeAscii("und"),t?(this.writeIsoString(""),this.writeIsoString(e)):(this.writeUtf8String(""),this.writeUtf8String(e))}writeId3V2CommentFrame(e){let t=(0,c.Xd)(e),i=t?e.length:c.oL.encode(e).byteLength;this.writeAscii("COMM"),this.writeSynchsafeU32(5+i+1),this.writeU16(0),this.writeU8(t?n.ISO_8859_1:n.UTF_8),this.writeU8(117),this.writeU8(110),this.writeU8(100),t?(this.writeIsoString(""),this.writeIsoString(e)):(this.writeUtf8String(""),this.writeUtf8String(e))}writeId3V2ApicFrame(e,t,i,r){let a=(0,c.Xd)(e)&&(0,c.Xd)(i),s=a?i.length:c.oL.encode(i).byteLength,o=1+e.length+1+1+s+1+r.byteLength;this.writeAscii("APIC"),this.writeSynchsafeU32(o),this.writeU16(0),this.writeU8(a?n.ISO_8859_1:n.UTF_8),a?this.writeIsoString(e):this.writeUtf8String(e),this.writeU8(t),a?this.writeIsoString(i):this.writeUtf8String(i),this.writer.write(r)}}},36212:function(e,t,i){i.d(t,{t6:function(){return eF},hQ:function(){return ev},Oj:function(){return eS},B1:function(){return em},QX:function(){return ef},_9:function(){return ek},nY:function(){return ew},uc:function(){return eT},dM:function(){return eg},O5:function(){return ey},hL:function(){return eb}});var r,a,s,n,o,c,l=i(41201),d=i(97229),u=i(31395),h=i(39510),m=i(73272),f=i(17930),p=i(98456),g=i(43105),k=i(93731),b=i(45907),w=i(85105);class y extends u.k{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,p.o)({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 t=this.reader.requestSliceRange(e,g.PM,g.cq);if(t instanceof Promise&&(t=await t),!t)break;let i=e,r=(0,g.mc)(t);if(!r)break;
4if("ftyp"===r.name){let e=(0,k.yn)(t,4);this.isQuickTime="qt  "===e}else if("moov"===r.name){let e=this.reader.requestSlice(t.filePos,r.contentSize);if(e instanceof Promise&&(e=await e),!e)break;for(let t of(this.moovSlice=e,this.readContiguousBoxes(this.moovSlice),this.tracks.sort((e,t)=>Number(t.disposition.default)-Number(e.disposition.default)),this.tracks)){let e=t.editListPreviousSegmentDurations/this.movieTimescale;t.editListOffset-=Math.round(e*t.timescale)}break}e=i+r.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,m.hu)(e);let t=(0,k.dd)(e),i=this.reader.fileSize-t;if(i>=0&&i<=this.reader.fileSize-g.cq){let e=this.reader.requestSliceRange(i,g.PM,g.cq);if(e instanceof Promise&&(e=await e),e){let t=(0,g.mc)(e);if(t&&"mfra"===t.name){let i=this.reader.requestSlice(e.filePos,t.contentSize);i instanceof Promise&&(i=await i),i&&this.readContiguousBoxes(i)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};e.sampleTable=t,(0,m.hu)(this.moovSlice);let i=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(i),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&l.zE.includes(e.info.codec)&&0===t.sampleCompositionTimeOffsets.length){(0,m.hu)(e.info?.type==="audio");let i=(0,l.AS)(e.info.codec),r=[],a=[];for(let s=0;s<t.sampleToChunk.length;s++){let n=t.sampleToChunk[s],o=t.sampleToChunk[s+1],c=(o?o.startChunkIndex:t.chunkOffsets.length)-n.startChunkIndex;for(let s=0;s<c;s++){let o=n.startSampleIndex+s*n.samplesPerChunk,c=o+n.samplesPerChunk,l=(0,m.sF)(t.sampleTimingEntries,o,e=>e.startIndex),d=t.sampleTimingEntries[l],u=(0,m.sF)(t.sampleTimingEntries,c,e=>e.startIndex),h=t.sampleTimingEntries[u],f=d.startDecodeTimestamp+(o-d.startIndex)*d.delta,p=h.startDecodeTimestamp+(c-h.startIndex)*h.delta-f,g=(0,m.Z$)(r);g&&g.delta===p?g.count++:r.push({startIndex:n.startChunkIndex+s,startDecodeTimestamp:f,count:1,delta:p});let k=n.samplesPerChunk*i.sampleSize*e.info.numberOfChannels;a.push(k)}n.startSampleIndex=n.startChunkIndex,n.samplesPerChunk=1}t.sampleTimingEntries=r,t.sampleSizes=a}if(t.sampleCompositionTimeOffsets.length>0){for(let e of(t.presentationTimestamps=[],t.sampleTimingEntries))for(let i=0;i<e.count;i++)t.presentationTimestamps.push({presentationTimestamp:e.startDecodeTimestamp+i*e.delta,sampleIndex:e.startIndex+i});for(let e of t.sampleCompositionTimeOffsets)for(let i=0;i<e.count;i++){let r=e.startIndex+i,a=t.presentationTimestamps[r];a&&(a.presentationTimestamp+=e.offset)}t.presentationTimestamps.sort((e,t)=>e.presentationTimestamp-t.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let e=0;e<t.presentationTimestamps.length;e++)t.presentationTimestampIndexMap[t.presentationTimestamps[e].sampleIndex]=e}return t}async readFragment(e){if(this.lastReadFragment?.moofOffset===e)return this.lastReadFragment;let t=this.reader.requestSliceRange(e,g.PM,g.cq);t instanceof Promise&&(t=await t),(0,m.hu)(t);let i=(0,g.mc)(t);(0,m.hu)(i?.name==="moof");let r=this.reader.requestSlice(e,i.totalSize);r instanceof Promise&&(r=await r),(0,m.hu)(r),this.traverseBox(r);let a=this.lastReadFragment;for(let[,t]of((0,m.hu)(a&&a.moofOffset===e),a.trackData)){let e=t.track,{fragmentPositionCache:i}=e;if(!t.startTimestampIsFinal){let r=e.fragmentLookupTable.find(e=>e.moofOffset===a.moofOffset);if(r)E(t,r.timestamp);else{let e=(0,m.sF)(i,a.moofOffset-1,e=>e.moofOffset);-1!==e&&E(t,i[e].endTimestamp)}t.startTimestampIsFinal=!0}let r=(0,m.sF)(i,t.startTimestamp,e=>e.startTimestamp);(-1===r||i[r].moofOffset!==a.moofOffset)&&i.splice(r+1,0,{moofOffset:a.moofOff
4set,startTimestamp:t.startTimestamp,endTimestamp:t.endTimestamp})}return a}readContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-g.PM&&this.traverseBox(e););}*iterateContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-g.PM;){let t=e.filePos,i=(0,g.mc)(e);if(!i)break;yield{boxInfo:i,slice:e},e.filePos=t+i.totalSize}}traverseBox(e){let t=e.filePos,i=(0,g.mc)(e);if(!i)return!1;let r=e.filePos,a=t+i.totalSize;switch(i.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(e.slice(r,i.contentSize));break;case"mvhd":{let t=(0,k.s3)(e);e.skip(3),1===t?(e.skip(16),this.movieTimescale=(0,k.dd)(e),this.movieDurationInTimescale=(0,k.Fk)(e)):(e.skip(8),this.movieTimescale=(0,k.dd)(e),this.movieDurationInTimescale=(0,k.dd)(e))}break;case"trak":{let t={id:-1,demuxer:this,inputTrack:null,disposition:{...b.CN},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:m.n3,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};this.currentTrack=t,this.readContiguousBoxes(e.slice(r,i.contentSize)),-1!==t.id&&-1!==t.timescale&&null!==t.info&&("video"===t.info.type&&-1!==t.info.width?(t.inputTrack=new h.mC(this.input,new S(t)),this.tracks.push(t)):"audio"===t.info.type&&-1!==t.info.numberOfChannels&&(t.inputTrack=new h.Rq(this.input,new v(t)),this.tracks.push(t))),this.currentTrack=null}break;case"tkhd":{let t=this.currentTrack;if(!t)break;let i=(0,k.s3)(e),r=(0,k.ZC)(e);if(t.disposition.default=!!(1&r),0===i)e.skip(8),t.id=(0,k.dd)(e),e.skip(4),t.durationInMovieTimescale=(0,k.dd)(e);else if(1===i)e.skip(16),t.id=(0,k.dd)(e),e.skip(4),t.durationInMovieTimescale=(0,k.Fk)(e);else throw Error(`Incorrect track header version ${i}.`);e.skip(16);let a=[(0,g.bm)(e),(0,g.bm)(e),(0,g.gV)(e),(0,g.bm)(e),(0,g.bm)(e),(0,g.gV)(e),(0,g.bm)(e),(0,g.bm)(e),(0,g.gV)(e)],s=(0,m.lP)((0,m.O9)(B(a),90));(0,m.hu)(0===s||90===s||180===s||270===s),t.rotation=s}break;case"elst":{let t=this.currentTrack;if(!t)break;let i=(0,k.s3)(e);e.skip(3);let r=!1,a=0,s=(0,k.dd)(e);for(let n=0;n<s;n++){let s=1===i?(0,k.Fk)(e):(0,k.dd)(e),n=1===i?(0,k.NN)(e):(0,k.c_)(e),o=(0,g.bm)(e);if(0!==s){if(r){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(-1===n){a+=s;continue}if(1!==o){console.warn("Unsupported edit list entry: media rate must be 1.");break}t.editListPreviousSegmentDurations=a,t.editListOffset=n,r=!0}}}break;case"mdhd":{let t=this.currentTrack;if(!t)break;let i=(0,k.s3)(e);e.skip(3),0===i?(e.skip(8),t.timescale=(0,k.dd)(e),t.durationInMediaTimescale=(0,k.dd)(e)):1===i&&(e.skip(16),t.timescale=(0,k.dd)(e),t.durationInMediaTimescale=(0,k.Fk)(e));let r=(0,k.jG)(e);if(r>0){t.languageCode="";for(let e=0;e<3;e++)t.languageCode=String.fromCharCode(96+(31&r))+t.languageCode,r>>=5;(0,m.Rh)(t.languageCode)||(t.languageCode=m.n3)}}break;case"hdlr":{let t=this.currentTrack;if(!t)break;e.skip(8);let i=(0,k.yn)(e,4);"vide"===i?t.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:"soun"===i&&(t.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let a=this.currentTrack;if(!a)break;a.sampleTableByteOffset=t,this.readContiguousBoxes(e.slice(r,i.contentSize))}break;case"stsd":{let t=this.currentTrack;if(!t||null===t.info||t.sampleTable)break;let i=(0,k.s3)(e);e.skip(3);let r=(0,k.dd)(e);for(let a=0;a<r;a++){let r=e.filePos,a=(0,g.mc)(e);if(!a)break;t.internalCodecId=a.name;let s=a.name.toLowerCase();if("video"===t.info.type)"avc1"===s||"avc3"===s?(t.info.codec="avc",t.info.avcType="avc1"===s?1:3):"hvc1"===s||"hev1"===s?t.info.codec="hevc":"vp08"===s?t.info.codec="vp8":"vp09"===s?t.info.codec="vp9":"av01"===s?t.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${a.name}').`),e.skip(24),t.info.width=(0,k.jG)(e),t.info.height=(0,k.jG)(e),t.info.squarePixelWidth=t.info.width,t.info.squarePixelHeight=t.info.height,e.skip(50),this.readContiguousBoxes(e.slice(e.filePos,r+a.totalSize-e.filePos));else{"mp4a"===s||("opus"===s?t.info.codec="opus":"flac"===s?t.info.codec="flac":"twos"===s||"sowt"===s||"raw "===s||"in24"===s||"in32"===s||"fl32"===s||"fl64"===s||"lpcm"===s||"ipcm"===s||"fpcm"===s||("ulaw"===s?t.info.codec="ulaw":"alaw"===s?t.info.codec="alaw":"ac-3"===s?t.info.codec="ac3":"ec-3"===s?t.info.codec="eac3":console.warn(`Unsupported audio codec (sample entry type '${a.name}').`))),e.skip(8);let n=(0,k.jG)(e);e.skip(6);let o=(0,k.jG)(e),c=(0,k.jG)(e);e.skip(4);let d=(0,k.dd)(e)/65536;if(0===i&&n>0){if(1===n)e.skip(4),c=8*(0,k.dd)(e),e.skip(8);else if(2===n){e.skip(4),d=(0,k.Ss)(e),o=(0,k.dd)(e),e.skip(4),c=(0,k.dd)(e);let i=(0,k.dd)(e);if(e.skip(8),"lpcm"===s){let e=c+7>>3,r=!!(1&i),a=!!(2&i),s=4&i?-1:0;c>0&&c<=64&&(r?32===c&&(t.info.codec=a?"pcm-f32be":"pcm-f32"):s&1<<e-1?1===e?t.info.codec="pcm-s8":2===e?t.info.codec=a?"pcm-s16be":"pcm-s16":3===e?t.info.codec=a?"pcm-s24be":"pcm-s24":4===e&&(t.info.codec=a?"pcm-s32be":"pcm-s32"):1===e&&(t.info.codec="pcm-u8")),null===t.info.codec&&console.warn("Unsupported PCM format.")}}}"opus"===t.info.codec&&(d=l.L3),t.info.numberOfChannels=o,t.info.sampleRate=d,"twos"===s?8===c?t.info.codec="pcm-s8":16===c?t.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${c} for codec 'twos'.`),t.info.codec=null):"sowt"===s?8===c?t.info.codec="pcm-s8":16===c?t.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${c}
4 for codec 'sowt'.`),t.info.codec=null):"raw "===s?t.info.codec="pcm-u8":"in24"===s?t.info.codec="pcm-s24be":"in32"===s?t.info.codec="pcm-s32be":"fl32"===s?t.info.codec="pcm-f32be":"fl64"===s?t.info.codec="pcm-f64be":"ipcm"===s?t.info.codec="pcm-s16be":"fpcm"===s&&(t.info.codec="pcm-f32be"),this.readContiguousBoxes(e.slice(e.filePos,r+a.totalSize-e.filePos))}}}break;case"avcC":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info),t.info.codecDescription=(0,k.sB)(e,i.contentSize)}break;case"hvcC":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info),t.info.codecDescription=(0,k.sB)(e,i.contentSize)}break;case"vpcC":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="video"),e.skip(4);let i=(0,k.s3)(e),r=(0,k.s3)(e),a=(0,k.s3)(e),s=(0,k.s3)(e),n=(0,k.s3)(e),o=(0,k.s3)(e);t.info.vp9CodecInfo={profile:i,level:r,bitDepth:a>>4,chromaSubsampling:a>>1&7,videoFullRangeFlag:1&a,colourPrimaries:s,transferCharacteristics:n,matrixCoefficients:o}}break;case"av1C":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="video"),e.skip(1);let i=(0,k.s3)(e),r=i>>5,a=(0,k.s3)(e),s=a>>6&1;t.info.av1CodecInfo={profile:r,level:31&i,tier:a>>7,bitDepth:2===r&&s?a>>5&1?12:10:s?10:8,monochrome:a>>4&1,chromaSubsamplingX:a>>3&1,chromaSubsamplingY:a>>2&1,chromaSamplePosition:3&a}}break;case"colr":{let t=this.currentTrack;if(!t||((0,m.hu)(t.info?.type==="video"),"nclx"!==(0,k.yn)(e,4)))break;let i=(0,k.jG)(e),r=(0,k.jG)(e),a=(0,k.jG)(e),s=!!(128&(0,k.s3)(e));t.info.colorSpace={primaries:m.vX[i],transfer:m.LT[r],matrix:m.KE[a],fullRange:s}}break;case"pasp":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="video");let i=(0,k.dd)(e),r=(0,k.dd)(e);i>r?t.info.squarePixelWidth=Math.round(t.info.width*i/r):t.info.squarePixelHeight=Math.round(t.info.height*r/i)}break;case"esds":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="audio"),e.skip(4);let i=(0,k.s3)(e);(0,m.hu)(3===i),(0,g.aU)(e),e.skip(2);let r=(0,k.s3)(e);if((128&r)!=0&&e.skip(2),(64&r)!=0){let t=(0,k.s3)(e);e.skip(t)}(32&r)!=0&&e.skip(2);let a=(0,k.s3)(e);(0,m.hu)(4===a);let s=(0,g.aU)(e),n=e.filePos,o=(0,k.s3)(e);if(64===o||103===o?(t.info.codec="aac",t.info.aacCodecInfo={isMpeg2:103===o,objectType:null}):105===o||107===o?t.info.codec="mp3":221===o?t.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${o}) - discarding track.`),e.skip(12),s>e.filePos-n){let i=(0,k.s3)(e);(0,m.hu)(5===i);let r=(0,g.aU)(e);if(t.info.codecDescription=(0,k.sB)(e,r),"aac"===t.info.codec){let e=(0,l._8)(t.info.codecDescription);null!==e.numberOfChannels&&(t.info.numberOfChannels=e.numberOfChannels),null!==e.sampleRate&&(t.info.sampleRate=e.sampleRate)}}}break;case"enda":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="audio"),255&(0,k.jG)(e)&&("pcm-s16be"===t.info.codec?t.info.codec="pcm-s16":"pcm-s24be"===t.info.codec?t.info.codec="pcm-s24":"pcm-s32be"===t.info.codec?t.info.codec="pcm-s32":"pcm-f32be"===t.info.codec?t.info.codec="pcm-f32":"pcm-f64be"===t.info.codec&&(t.info.codec="pcm-f64"))}break;case"pcmC":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="audio"),e.skip(4);let i=!!(1&(0,k.s3)(e)),r=(0,k.s3)(e);"pcm-s16be"===t.info.codec?i?16===r?t.info.codec="pcm-s16":24===r?t.info.codec="pcm-s24":32===r?t.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${r}.`),t.info.codec=null):16===r?t.info.codec="pcm-s16be":24===r?t.info.codec="pcm-s24be":32===r?t.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${r}.`),t.info.codec=null):"pcm-f32be"===t.info.codec&&(i?32===r?t.info.codec="pcm-f32":64===r?t.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${r}.`),t.info.codec=null):32===r?t.info.codec="pcm-f32be":64===r?t.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${r}.`),t.info.codec=null));break}case"dOps":{let t;let i=this.currentTrack;if(!i)break;(0,m.hu)(i.info?.type==="audio"),e.skip(1);let r=(0,k.s3)(e),a=(0,k.jG)(e),s=(0,k.dd)(e),n=(0,k.ww)(e),o=(0,k.s3)(e);t=0!==o?(0,k.sB)(e,2+r):new Uint8Array(0);let c=new Uint8Array(19+t.byteLength),l=new DataView(c.buffer);l.setUint32(0,1332770163,!1),l.setUint32(4,1214603620,!1),l.setUint8(8,1),l.setUint8(9,r),l.setUint16(10,a,!0),l.setUint32(12,
4s,!0),l.setInt16(16,n,!0),l.setUint8(18,o),c.set(t,19),i.info.codecDescription=c,i.info.numberOfChannels=r}break;case"dfLa":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="audio"),e.skip(4);let i=e.filePos;for(;e.filePos<a;){let i=(0,k.s3)(e),r=(0,k.ZC)(e);if((127&i)===d.qr.STREAMINFO){e.skip(10);let i=(0,k.dd)(e),r=i>>>12,a=(i>>9&7)+1;t.info.sampleRate=r,t.info.numberOfChannels=a,e.skip(20)}else e.skip(r);if(128&i)break}let r=e.filePos;e.filePos=i;let s=(0,k.sB)(e,r-i),n=new Uint8Array(4+s.byteLength);new DataView(n.buffer).setUint32(0,1716281667,!1),n.set(s,4),t.info.codecDescription=n}break;case"dac3":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="audio");let i=(0,k.sB)(e,3),r=new m.Zi(i),a=r.readBits(2);r.skipBits(8);let s=r.readBits(3),n=r.readBits(1);a<3&&(t.info.sampleRate=w._[a]),t.info.numberOfChannels=d.KA[s]+n}break;case"dec3":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.info?.type==="audio");let r=(0,k.sB)(e,i.contentSize),a=(0,d.Si)(r);if(!a){console.warn("Invalid dec3 box contents, ignoring.");break}let s=(0,d.ir)(a);null!==s&&(t.info.sampleRate=s),t.info.numberOfChannels=(0,d.AH)(a)}break;case"stts":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let i=(0,k.dd)(e),r=0,a=0;for(let s=0;s<i;s++){let i=(0,k.dd)(e),s=(0,k.dd)(e);t.sampleTable.sampleTimingEntries.push({startIndex:r,startDecodeTimestamp:a,count:i,delta:s}),r+=i,a+=i*s}}break;case"ctts":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let i=(0,k.dd)(e),r=0;for(let a=0;a<i;a++){let i=(0,k.dd)(e),a=(0,k.c_)(e);t.sampleTable.sampleCompositionTimeOffsets.push({startIndex:r,count:i,offset:a}),r+=i}}break;case"stsz":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let i=(0,k.dd)(e),r=(0,k.dd)(e);if(0===i)for(let i=0;i<r;i++){let i=(0,k.dd)(e);t.sampleTable.sampleSizes.push(i)}else t.sampleTable.sampleSizes.push(i)}break;case"stz2":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4),e.skip(3);let i=(0,k.s3)(e),r=(0,k.dd)(e),a=(0,k.sB)(e,Math.ceil(r*i/8)),s=new m.Zi(a);for(let e=0;e<r;e++){let e=s.readBits(i);t.sampleTable.sampleSizes.push(e)}}break;case"stss":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4),t.sampleTable.keySampleIndices=[];let i=(0,k.dd)(e);for(let r=0;r<i;r++){let i=(0,k.dd)(e)-1;t.sampleTable.keySampleIndices.push(i)}0!==t.sampleTable.keySampleIndices[0]&&t.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let i=(0,k.dd)(e);for(let r=0;r<i;r++){let i=(0,k.dd)(e)-1,r=(0,k.dd)(e),a=(0,k.dd)(e);t.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:i,samplesPerChunk:r,sampleDescriptionIndex:a})}let r=0;for(let e=0;e<t.sampleTable.sampleToChunk.length;e++)t.sampleTable.sampleToChunk[e].startSampleIndex=r,e<t.sampleTable.sampleToChunk.length-1&&(r+=(t.sampleTable.sampleToChunk[e+1].startChunkIndex-t.sampleTable.sampleToChunk[e].startChunkIndex)*t.sampleTable.sampleToChunk[e].samplesPerChunk)}break;case"stco":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let i=(0,k.dd)(e);for(let r=0;r<i;r++){let i=(0,k.dd)(e);t.sampleTable.chunkOffsets.push(i)}}break;case"co64":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let i=(0,k.dd)(e);for(let r=0;r<i;r++){let i=(0,k.Fk)(e);t.sampleTable.chunkOffsets.push(i)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(r,i.contentSize));break;case"mehd":{let t=(0,k.s3)(e);e.skip(3);let i=1===t?(0,k.Fk)(e):(0,k.dd)(e);this.movieDurationInTimescale=i}break;case"trex":{e.skip(4);let t=(0,k.dd)(e),i=(0,k.dd)(e),r=(0,k.dd)(e),a=(0,k.dd)(e),s=(0,k.dd)(e);this.fragmentTrackDefaults.push({trackId:t,defaultSampleDescriptionIndex:i,defaultSampleDuration:r,defaultSampleSize:a,defaultSampleFlags:s})}break;case"tfra":{let t=(0,k.s3)(e);e.skip(3);let i=(0,k.dd)(e),r=this.tracks.find(e=>e.id===i);if(!r)break;let a=(0,k.dd)(e),s=[k.s3,k.jG,k.ZC,k.dd],n=s[(48&a)>>4],o=s[(12&a)>>2],c=s[3&a],l=(0,k.dd)(e);for(let i=0;i<l;i++){let i=1===t?(0,k.Fk)(e):(0,k.dd)(e),a=1===t?(0,k.Fk)(e):(0,k.dd)(e);
4n(e),o(e),c(e),r.fragmentLookupTable.push({timestamp:i,moofOffset:a})}r.fragmentLookupTable.sort((e,t)=>e.timestamp-t.timestamp);for(let e=0;e<r.fragmentLookupTable.length-1;e++){let t=r.fragmentLookupTable[e],i=r.fragmentLookupTable[e+1];t.timestamp===i.timestamp&&(r.fragmentLookupTable.splice(e+1,1),e--)}}break;case"moof":this.currentFragment={moofOffset:t,moofSize:i.totalSize,implicitBaseDataOffset:t,trackData:new Map},this.readContiguousBoxes(e.slice(r,i.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if((0,m.hu)(this.currentFragment),this.readContiguousBoxes(e.slice(r,i.contentSize)),this.currentTrack){let e=this.currentFragment.trackData.get(this.currentTrack.id);if(e){let{currentFragmentState:t}=this.currentTrack;(0,m.hu)(t),null!==t.startTimestamp&&(E(e,t.startTimestamp),e.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{(0,m.hu)(this.currentFragment),e.skip(1);let t=(0,k.ZC)(e),i=(0,k.dd)(e),r=this.tracks.find(e=>e.id===i);if(!r)break;let a=this.fragmentTrackDefaults.find(e=>e.trackId===i);this.currentTrack=r,r.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:a?.defaultSampleDescriptionIndex??null,defaultSampleDuration:a?.defaultSampleDuration??null,defaultSampleSize:a?.defaultSampleSize??null,defaultSampleFlags:a?.defaultSampleFlags??null,startTimestamp:null},1&t?r.currentFragmentState.baseDataOffset=(0,k.Fk)(e):131072&t&&(r.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),2&t&&(r.currentFragmentState.sampleDescriptionIndex=(0,k.dd)(e)),8&t&&(r.currentFragmentState.defaultSampleDuration=(0,k.dd)(e)),16&t&&(r.currentFragmentState.defaultSampleSize=(0,k.dd)(e)),32&t&&(r.currentFragmentState.defaultSampleFlags=(0,k.dd)(e)),65536&t&&(r.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let t=this.currentTrack;if(!t)break;(0,m.hu)(t.currentFragmentState);let i=(0,k.s3)(e);e.skip(3);let r=0===i?(0,k.dd)(e):(0,k.Fk)(e);t.currentFragmentState.startTimestamp=r}break;case"trun":{let t=this.currentTrack;if(!t)break;if((0,m.hu)(this.currentFragment),(0,m.hu)(t.currentFragmentState),this.currentFragment.trackData.has(t.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let i=(0,k.s3)(e),r=(0,k.ZC)(e),a=!!(256&r),s=!!(512&r),n=!!(1024&r),o=!!(2048&r),c=(0,k.dd)(e),l=t.currentFragmentState.baseDataOffset;1&r&&(l+=(0,k.c_)(e));let d=null;4&r&&(d=(0,k.dd)(e));let u=l;if(0===c){this.currentFragment.implicitBaseDataOffset=u;break}let h=0,f={track:t,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(t.id,f);for(let r=0;r<c;r++){let c,l,p;a?c=(0,k.dd)(e):((0,m.hu)(null!==t.currentFragmentState.defaultSampleDuration),c=t.currentFragmentState.defaultSampleDuration),s?l=(0,k.dd)(e):((0,m.hu)(null!==t.currentFragmentState.defaultSampleSize),l=t.currentFragmentState.defaultSampleSize),n?p=(0,k.dd)(e):((0,m.hu)(null!==t.currentFragmentState.defaultSampleFlags),p=t.currentFragmentState.defaultSampleFlags),0===r&&null!==d&&(p=d);let g=0;o&&(g=0===i?(0,k.dd)(e):(0,k.c_)(e));let b=!(65536&p);f.samples.push({presentationTimestamp:h+g,duration:c,byteOffset:u,byteSize:l,isKeyFrame:b}),u+=l,h+=c}f.presentationTimestamps=f.samples.map((e,t)=>({presentationTimestamp:e.presentationTimestamp,sampleIndex:t})).sort((e,t)=>e.presentationTimestamp-t.presentationTimestamp);for(let e=0;e<f.presentationTimestamps.length;e++){let t=f.presentationTimestamps[e],i=f.samples[t.sampleIndex];if(null===f.firstKeyFrameTimestamp&&i.isKeyFrame&&(f.firstKeyFrameTimestamp=i.presentationTimestamp),e<f.presentationTimestamps.length-1){let r=f.presentationTimestamps[e+1];i.duration=r.presentationTimestamp-t.presentationTimestamp}}let p=f.samples[f.presentationTimestamps[0].sampleIndex],g=f.samples[(0,m.Z$)(f.presentationTimestamps).sampleIndex];f.startTimestamp=p.presentationTimestamp,f.endTimestamp=g.presentationTimestamp+g.duration,this.currentFragment.implicitBaseDataOffset=u}break;case"udta":for(let{boxInfo:t,slice:a}of this.iterateContiguousBoxes(e.slice(r,i.contentSize))){if("meta"!==t.name&&!this.currentTrack){let e=a.filePos;this.metadataTags.raw??={},"\xa9"===t.name[0]?this.metadataTags.raw[t.name]??=(0,g.d5)(a):this.metadataTags.raw[t.name]??=(0,k.sB)(a,t.contentSize),a.filePos=e}switch(t.name){case"meta":a.skip(-t.headerSize),this.traverseBox(a);break;case"\xa9nam":case"name":this.currentTrack?this.currentTrack.name=m.zN.decode((0,k.sB)(a,t.contentSize)):this.metadataTags.title??=(0,g.d5)(a);break;case"\xa9des":this.currentTrack||(this.metadataTags.description??=(0,g.d5)(a));break;case"\xa9ART":this.currentTrack||(this.metadataTags.artist??=(0,g.d5)(a));break;
4case"\xa9alb":this.currentTrack||(this.metadataTags.album??=(0,g.d5)(a));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=(0,g.d5)(a));break;case"\xa9gen":this.currentTrack||(this.metadataTags.genre??=(0,g.d5)(a));break;case"\xa9day":if(!this.currentTrack){let e=new Date((0,g.d5)(a));Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"\xa9cmt":this.currentTrack||(this.metadataTags.comment??=(0,g.d5)(a));break;case"\xa9lyr":this.currentTrack||(this.metadataTags.lyrics??=(0,g.d5)(a))}}break;case"meta":{if(this.currentTrack)break;let t=(0,k.dd)(e);this.currentMetadataKeys=new Map,0!==t?this.readContiguousBoxes(e.slice(r,i.contentSize)):this.readContiguousBoxes(e.slice(r+4,i.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let t=(0,k.dd)(e);for(let i=0;i<t;i++){let t=(0,k.dd)(e);e.skip(4);let r=m.zN.decode((0,k.sB)(e,t-8));this.currentMetadataKeys.set(i+1,r)}}break;case"ilst":if(!this.currentMetadataKeys)break;for(let{boxInfo:t,slice:a}of this.iterateContiguousBoxes(e.slice(r,i.contentSize))){let e=t.name,i=(e.charCodeAt(0)<<24)+(e.charCodeAt(1)<<16)+(e.charCodeAt(2)<<8)+e.charCodeAt(3);this.currentMetadataKeys.has(i)&&(e=this.currentMetadataKeys.get(i));let r=(0,g.pF)(a);switch(this.metadataTags.raw??={},this.metadataTags.raw[e]??=r,e){case"\xa9nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof r&&(this.metadataTags.title??=r);break;case"\xa9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":"string"==typeof r&&(this.metadataTags.description??=r);break;case"\xa9ART":case"com.apple.quicktime.artist":case"artist":"string"==typeof r&&(this.metadataTags.artist??=r);break;case"\xa9alb":case"albm":case"com.apple.quicktime.album":case"album":"string"==typeof r&&(this.metadataTags.album??=r);break;case"aART":case"album_artist":"string"==typeof r&&(this.metadataTags.albumArtist??=r);break;case"\xa9cmt":case"com.apple.quicktime.comment":case"comment":"string"==typeof r&&(this.metadataTags.comment??=r);break;case"\xa9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof r&&(this.metadataTags.genre??=r);break;case"\xa9lyr":case"lyrics":"string"==typeof r&&(this.metadataTags.lyrics??=r);break;case"\xa9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof r){let e=new Date(r);Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"covr":case"com.apple.quicktime.artwork":r instanceof b.jC?(this.metadataTags.images??=[],this.metadataTags.images.push({data:r.data,kind:"coverFront",mimeType:r.mimeType})):r instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:r,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof r){let e=r.split("/"),t=Number.parseInt(e[0],10),i=e[1]&&Number.parseInt(e[1],10);Number.isInteger(t)&&t>0&&(this.metadataTags.trackNumber??=t),i&&Number.isInteger(i)&&i>0&&(this.metadataTags.tracksTotal??=i)}break;case"trkn":if(r instanceof Uint8Array&&r.length>=6){let e=(0,m.NK)(r),t=e.getUint16(2,!1),i=e.getUint16(4,!1);t>0&&(this.metadataTags.trackNumber??=t),i>0&&(this.metadataTags.tracksTotal??=i)}break;case"disc":case"disk":if(r instanceof Uint8Array&&r.length>=6){let e=(0,m.NK)(r),t=e.getUint16(2,!1),i=e.getUint16(4,!1);t>0&&(this.metadataTags.discNumber??=t),i>0&&(this.metadataTags.discsTotal??=i)}}}}return e.filePos=a,!0}}class T{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){let e=this.internalTrack.demuxer,t=this.internalTrack.inputTrack.type,i=0;for(let r of e.tracks)if(r.inputTrack.type===t&&i++,r===this.internalTrack)break;return i}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 t=await this.fetchPacketForSampleIndex(0,e);return t||!this.internalTrack.demuxer.isFragmented?t:this.performFragmentedLookup(null,e=>e.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}
4:{sampleIndex:-1,correctSampleFound:!1},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return(0,m.F3)(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,t){let i=this.mapTimestampIntoTimescale(e),r=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=P(r,i),s=await this.fetchPacketForSampleIndex(a,t);return _(r)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,e=>{let t=e.trackData.get(this.internalTrack.id);if(!t)return{sampleIndex:-1,correctSampleFound:!1};let r=(0,m.sF)(t.presentationTimestamps,i,e=>e.presentationTimestamp);return{sampleIndex:-1!==r?t.presentationTimestamps[r].sampleIndex:-1,correctSampleFound:-1!==r&&i<t.endTimestamp}},i,i,t):s}async getNextPacket(e,t){let i=this.packetToSampleIndex.get(e);if(void 0!==i)return this.fetchPacketForSampleIndex(i+1,t);let r=this.packetToFragmentLocation.get(e);if(void 0===r)throw Error("Packet was not created from this track.");return this.performFragmentedLookup(r.fragment,e=>{if(e===r.fragment){let t=e.trackData.get(this.internalTrack.id);if(r.sampleIndex+1<t.samples.length)return{sampleIndex:r.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,t)}async getKeyPacket(e,t){let i=this.mapTimestampIntoTimescale(e),r=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=C(r,i),s=await this.fetchPacketForSampleIndex(a,t);return _(r)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,e=>{let t=e.trackData.get(this.internalTrack.id);if(!t)return{sampleIndex:-1,correctSampleFound:!1};let r=(0,m.qr)(t.presentationTimestamps,e=>t.samples[e.sampleIndex].isKeyFrame&&e.presentationTimestamp<=i);return{sampleIndex:-1!==r?t.presentationTimestamps[r].sampleIndex:-1,correctSampleFound:-1!==r&&i<t.endTimestamp}},i,i,t):s}async getNextKeyPacket(e,t){let i=this.packetToSampleIndex.get(e);if(void 0!==i){let e=I(this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i);return this.fetchPacketForSampleIndex(e,t)}let r=this.packetToFragmentLocation.get(e);if(void 0===r)throw Error("Packet was not created from this track.");return this.performFragmentedLookup(r.fragment,e=>{if(e===r.fragment){let t=e.trackData.get(this.internalTrack.id).samples.findIndex((e,t)=>e.isKeyFrame&&t>r.sampleIndex);if(-1!==t)return{sampleIndex:t,correctSampleFound:!0}}else{let t=e.trackData.get(this.internalTrack.id);if(t&&null!==t.firstKeyFrameTimestamp){let e=t.samples.findIndex(e=>e.isKeyFrame);return(0,m.hu)(-1!==e),{sampleIndex:e,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,t)}async fetchPacketForSampleIndex(e,t){let i;if(-1===e)return null;let r=x(this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),e);if(!r)return null;if(t.metadataOnly)i=f.L;else{let e=this.internalTrack.demuxer.reader.requestSlice(r.sampleOffset,r.sampleSize);e instanceof Promise&&(e=await e),(0,m.hu)(e),i=(0,k.sB)(e,r.sampleSize)}let a=(r.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=r.duration/this.internalTrack.timescale,n=new f.H(i,r.isKeyFrame?"key":"delta",a,s,e,r.sampleSize);return this.packetToSampleIndex.set(n,e),n}async fetchPacketInFragment(e,t,i){let r;if(-1===t)return null;let a=e.trackData.get(this.internalTrack.id).samples[t];if((0,m.hu)(a),i.metadataOnly)r=f.L;else{let e=this.internalTrack.demuxer.reader.requestSlice(a.byteOffset,a.byteSize);e instanceof Promise&&(e=await e),(0,m.hu)(e),r=(0,k.sB)(e,a.byteSize)}let s=(a.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,n=a.duration/this.internalTrack.timescale,o=new f.H(r,a.isKeyFrame?"key":"delta",s,n,e.moofOffset+t,a.byteSize);return this.packetToFragmentLocation.set(o,{fragment:e,sampleIndex:t}),o}async performFragmentedLookup(e,t,i,r,a){let s;let n=this.internalTrack.demuxer,o=null,c=null,l=-1;if(e){let{sampleIndex:i,correctSampleFound:r}=t(e);if(r)return this.fetchPacketInFragment(e,i,a);-1!==i&&(c=e,l=i)}let d=(0,m.sF)(this.internalTrack.fragmentLookupTable,i,e=>e.timestamp),u=-1!==d?this.internalTrack.fragmentLookupTable[d]:null,h=(0,m.sF)(this.internalTrack.fragmentPositionCache,i,e=>e.startTimestamp),f=-1!==h?this.internalTrack.fragmentPositionCache[h]:null,p=Math.max(u?.moofOffset??0,f?.moofOffset??0)||null;for(e?null===p||e.moofOffset>=p?(s=e.moofOffset+e.moofSize,o=e):s=p:s=p??0;;){if(o){let e=o.trackData.get(this.internalTrack.id);if(e&&e.startTimestamp>r)break}let e=n.reader.requestSliceRange(s,g.PM,g.cq);if(e instanceof Promise&&(e=await e),!e)break;let i=s,d=(0,g.mc)(e);if(!d)break;if("moof"===d.name){let{sampleIndex:e,correctSampleFound:r}=t(o=await n.readFragment(i));if(r)return this.fetchPacketInFragment(o,e,a);-1!==e&&(c=o,l=e)}s=i+d.totalSize}
4if(u&&(!c||c.moofOffset<u.moofOffset)){let e=this.internalTrack.fragmentLookupTable[d-1];(0,m.hu)(!e||e.timestamp<u.timestamp);let i=e?.timestamp??-1/0;return this.performFragmentedLookup(null,t,i,r,a)}return c?this.fetchPacketInFragment(c,l,a):null}}class S extends T{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}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}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,d.$W)(e.data)}}else{let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&(0,d.Al)(e.data)}return{codec:(0,l.Ah)(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,displayAspectWidth:this.internalTrack.info.squarePixelWidth,displayAspectHeight:this.internalTrack.info.squarePixelHeight,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}}class v extends T{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,l.YV)(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}}let P=(e,t)=>{if(e.presentationTimestamps){let i=(0,m.sF)(e.presentationTimestamps,t,e=>e.presentationTimestamp);return -1===i?-1:e.presentationTimestamps[i].sampleIndex}{let i=(0,m.sF)(e.sampleTimingEntries,t,e=>e.startDecodeTimestamp);if(-1===i)return -1;let r=e.sampleTimingEntries[i];return r.startIndex+Math.min(Math.floor((t-r.startDecodeTimestamp)/r.delta),r.count-1)}},C=(e,t)=>{if(!e.keySampleIndices)return P(e,t);if(e.presentationTimestamps){let i=(0,m.sF)(e.presentationTimestamps,t,e=>e.presentationTimestamp);if(-1===i)return -1;for(let t=i;t>=0;t--){let i=e.presentationTimestamps[t].sampleIndex;if(-1!==(0,m.Jy)(e.keySampleIndices,i,e=>e))return i}return -1}{let i=P(e,t),r=(0,m.sF)(e.keySampleIndices,i,e=>e);return e.keySampleIndices[r]??-1}},x=(e,t)=>{let i=(0,m.sF)(e.sampleTimingEntries,t,e=>e.startIndex),r=e.sampleTimingEntries[i];if(!r||r.startIndex+r.count<=t)return null;let a=r.startDecodeTimestamp+(t-r.startIndex)*r.delta,s=(0,m.sF)(e.sampleCompositionTimeOffsets,t,e=>e.startIndex),n=e.sampleCompositionTimeOffsets[s];n&&t-n.startIndex<n.count&&(a+=n.offset);let o=e.sampleSizes[Math.min(t,e.sampleSizes.length-1)],c=(0,m.sF)(e.sampleToChunk,t,e=>e.startSampleIndex),l=e.sampleToChunk[c];(0,m.hu)(l);let d=l.startChunkIndex+Math.floor((t-l.startSampleIndex)/l.samplesPerChunk),u=e.chunkOffsets[d],h=l.startSampleIndex+(d-l.startChunkIndex)*l.samplesPerChunk,f=0,p=u;if(1===e.sampleSizes.length)p+=o*(t-h),f+=o*l.samplesPerChunk;else for(let i=h;i<h+l.samplesPerChunk;i++){let r=e.sampleSizes[i];i<t&&(p+=r),f+=r}let g=r.delta;if(e.presentationTimestamps){let i=e.presentationTimestampIndexMap[t];(0,m.hu)(void 0!==i),i<e.presentationTimestamps.length-1&&(g=e.presentationTimestamps[i+1].presentationTimestamp-a)}return{presentationTimestamp:a,duration:g,sampleOffset:p,sampleSize:o,chunkOffset:u,chunkSize:f,isKeyFrame:!e.keySampleIndices||-1!==(0,m.Jy)(e.keySampleIndices,t,e=>e)}},I=(e,t)=>
4{if(!e.keySampleIndices)return t+1;let i=(0,m.sF)(e.keySampleIndices,t,e=>e);return e.keySampleIndices[i+1]??-1},E=(e,t)=>{for(let i of(e.startTimestamp+=t,e.endTimestamp+=t,e.samples))i.presentationTimestamp+=t;for(let i of e.presentationTimestamps)i.presentationTimestamp+=t},B=e=>{let[t,,,i]=e,r=Math.hypot(t,i),a=-(180/Math.PI*Math.atan2(i/r,t/r));return Number.isFinite(a)?a:0},_=e=>0===e.sampleSizes.length;var A=i(75698),R=i(45179);(r=n||(n={}))[r.None=0]="None",r[r.Xiph=1]="Xiph",r[r.FixedSize=2]="FixedSize",r[r.Ebml=3]="Ebml",(a=o||(o={}))[a.Block=1]="Block",a[a.Private=2]="Private",a[a.Next=4]="Next",(s=c||(c={}))[s.Zlib=0]="Zlib",s[s.Bzlib=1]="Bzlib",s[s.lzo1x=2]="lzo1x",s[s.HeaderStripping=3]="HeaderStripping";let F=[{id:A.RG.SeekHead,flag:"seekHeadSeen"},{id:A.RG.Info,flag:"infoSeen"},{id:A.RG.Tracks,flag:"tracksSeen"},{id:A.RG.Cues,flag:"cuesSeen"}];class M extends u.k{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(),t=await Promise.all(e.map(e=>e.getCodecParameterString()));return(0,R.K)({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:t.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 t of this.segments)e={...e,...t.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,A.FS,A.nO);if(t instanceof Promise&&(t=await t),!t)break;let i=(0,A.$s)(t);if(!i)break;let r=i.id,a=i.size,s=t.filePos;if(r===A.RG.EBML){(0,A.j5)(a);let e=this.reader.requestSlice(s,a);if(e instanceof Promise&&(e=await e),!e)break;this.readContiguousElements(e)}else if(r===A.RG.Segment){if(await this.readSegment(s,a),void 0===a||null===this.reader.fileSize)break}else if(r===A.RG.Cluster){if(null===this.reader.fileSize)break;void 0===a&&(a=(await (0,A.Tq)(this.reader,s,A.et,this.reader.fileSize)).pos-s);let e=(0,m.Z$)(this.segments);e&&(e.elementEndPos=s+a)}(0,A.j5)(a),e=s+a}})()}async readSegment(e,t){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:void 0===t?null:e+t,clusterSeekStartPos:e,lastReadCluster:null,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let i=e;for(;null===this.currentSegment.elementEndPos||i<this.currentSegment.elementEndPos;){let e=this.reader.requestSliceRange(i,A.FS,A.nO);if(e instanceof Promise&&(e=await e),!e)break;let t=i,r=(0,A.$s)(e);if(!r||!A.h1.includes(r.id)&&r.id!==A.RG.Void){let e=await (0,A._C)(this.reader,t,A.h1,Math.min(this.currentSegment.elementEndPos??1/0,t+10485760));if(e){i=e;continue}break}let{id:a,size:s}=r,n=e.filePos,o=F.findIndex(e=>e.id===a);if(-1!==o){let e=F[o].flag;this.currentSegment[e]=!0,(0,A.j5)(s);let t=this.reader.requestSlice(n,s);t instanceof Promise&&(t=await t),t&&this.readContiguousElements(t)}else if(a===A.RG.Tags||a===A.RG.Attachments){a===A.RG.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,(0,A.j5)(s);let e=this.reader.requestSlice(n,s);e instanceof Promise&&(e=await e),e&&this.readContiguousElements(e)}else if(a===A.RG.Cluster){this.currentSegment.clusterSeekStartPos=t;break}if(void 0===s)break;i=n+s}if(this.currentSegment.seekEntries.sort((e,t)=>
4e.segmentPosition-t.segmentPosition),null!==this.reader.fileSize)for(let t of this.currentSegment.seekEntries){let i=F.find(e=>e.id===t.id);if(!i||this.currentSegment[i.flag])continue;let r=this.reader.requestSliceRange(e+t.segmentPosition,A.FS,A.nO);if(r instanceof Promise&&(r=await r),!r)continue;let a=(0,A.$s)(r);if(!a)continue;let{id:s,size:n}=a;if(s!==i.id)continue;(0,A.j5)(n),this.currentSegment[i.flag]=!0;let o=this.reader.requestSlice(r.filePos,n);o instanceof Promise&&(o=await o),o&&this.readContiguousElements(o)}for(let e of(-1===this.currentSegment.timestampScale&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e3),this.currentSegment.tracks))null!==e.defaultDurationNs&&(e.defaultDuration=this.currentSegment.timestampFactor*e.defaultDurationNs/1e9);this.currentSegment.tracks.sort((e,t)=>Number(t.disposition.default)-Number(e.disposition.default));let r=new Map(this.currentSegment.tracks.map(e=>[e.id,e]));for(let e of this.currentSegment.cuePoints){let t=r.get(e.trackId);t&&t.cuePoints.push(e)}for(let e of this.currentSegment.tracks){e.cuePoints.sort((e,t)=>e.time-t.time);for(let t=0;t<e.cuePoints.length-1;t++){let i=e.cuePoints[t],r=e.cuePoints[t+1];i.time===r.time&&(e.cuePoints.splice(t+1,1),t--)}}let a=null,s=-1/0;for(let e of this.currentSegment.tracks)e.cuePoints.length>s&&(s=e.cuePoints.length,a=e);for(let e of this.currentSegment.tracks)0===e.cuePoints.length&&(e.cuePoints=a.cuePoints);this.currentSegment=null}async readCluster(e,t){if(t.lastReadCluster?.elementStartPos===e)return t.lastReadCluster;let i=this.reader.requestSliceRange(e,A.FS,A.nO);i instanceof Promise&&(i=await i),(0,m.hu)(i);let r=(0,A.$s)(i);(0,m.hu)(r);let a=r.id;(0,m.hu)(a===A.RG.Cluster);let s=r.size,o=i.filePos;void 0===s&&(s=(await (0,A.Tq)(this.reader,o,A.et,t.elementEndPos)).pos-o);let c=this.reader.requestSlice(o,s);c instanceof Promise&&(c=await c);let l={segment:t,elementStartPos:e,elementEndPos:o+s,dataStartPos:o,timestamp:-1,trackData:new Map};if(this.currentCluster=l,c){let e=this.readContiguousElements(c,A.et);l.elementEndPos=e}for(let[,t]of l.trackData){let i=t.track;(0,m.hu)(t.blocks.length>0);let r=!1;for(let e=0;e<t.blocks.length;e++){let i=t.blocks[e];i.timestamp+=l.timestamp,r||=i.lacing!==n.None}t.presentationTimestamps=t.blocks.map((e,t)=>({timestamp:e.timestamp,blockIndex:t})).sort((e,t)=>e.timestamp-t.timestamp);for(let e=0;e<t.presentationTimestamps.length;e++){let r=t.presentationTimestamps[e],a=t.blocks[r.blockIndex];if(null===t.firstKeyFrameTimestamp&&a.isKeyFrame&&(t.firstKeyFrameTimestamp=a.timestamp),e<t.presentationTimestamps.length-1){let i=t.presentationTimestamps[e+1];a.duration=i.timestamp-a.timestamp}else 0===a.duration&&null!=i.defaultDuration&&a.lacing===n.None&&(a.duration=i.defaultDuration)}r&&(this.expandLacedBlocks(t.blocks,i),t.presentationTimestamps=t.blocks.map((e,t)=>({timestamp:e.timestamp,blockIndex:t})).sort((e,t)=>e.timestamp-t.timestamp));let a=t.blocks[t.presentationTimestamps[0].blockIndex],s=t.blocks[(0,m.Z$)(t.presentationTimestamps).blockIndex];t.startTimestamp=a.timestamp,t.endTimestamp=s.timestamp+s.duration;let o=(0,m.sF)(i.clusterPositionCache,t.startTimestamp,e=>e.startTimestamp);(-1===o||i.clusterPositionCache[o].elementStartPos!==e)&&i.clusterPositionCache.splice(o+1,0,{elementStartPos:l.elementStartPos,startTimestamp:t.startTimestamp})}return t.lastReadCluster=l,l}getTrackDataInCluster(e,t){let i=e.trackData.get(t);if(!i){let r=e.segment.tracks.find(e=>e.id===t);if(!r)return null;i={track:r,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,i)}return i}expandLacedBlocks(e,t){for(let i=0;i<e.length;i++){let r=e[i];if(r.lacing===n.None)continue;r.decoded||(r.data=this.decodeBlockData(t,r.data),r.decoded=!0);let a=k.CJ.tempFromBytes(r.data),s=[],o=(0,k.s3)(a)+1;switch(r.lacing){case n.Xiph:{let e=0;for(let t=0;t<o-1;t++){let t=0;for(;a.bufferPos<a.length;){let i=(0,k.s3)(a);if(t+=i,i<255){s.push(t),e+=t;break}}}s.push(a.length-(a.bufferPos+e))}break;case n.FixedSize:{let e=Math.floor((a.length-1)/o);for(let t=0;t<o;t++)s.push(e)}break;case n.Ebml:{let e=(0,A.F7)(a);(0,m.hu)(null!==e);let t=e;s.push(t);let i=t;for(let e=1;e<o-1;e++){let e=a.bufferPos,r=(0,A.F7)(a);(0,m.hu)(null!==r),t+=r-((1<<7*(a.bufferPos-e)-1)-1),s.push(t),i+=t}s.push(a.length-(a.bufferPos+i))}break;default:(0,m.hu)(!1)}(0,m.hu)(s.length===o),e.splice(i,1);let c=r.duration||o*(t.defaultDuration??0);for(let t=0;t<o;t++){let l=s[t],d=(0,k.sB)(a,l),u=r.timestamp+c*t/o,h=c/o;e.splice(i+t,0,{timestamp:u,duration:h,isKeyFrame:r.isKeyFrame,data:d,lacing:n.None,decoded:!0,mainAdditional:r.mainAdditional})}i+=o,i--}}async loadSegmentMetadata(e){for(let t of e.seekEntries){if((t.id!==A.RG.Tags||e.tagsSeen)&&(t.id!==A.RG.Attachments||e.attachmentsSeen))continue;let i=this.reader.requestSliceRange(e.dataStartPos+t.segmentPosition,A.FS,A.nO);if(i instanceof Promise&&(i=await i),!i)continue;let r=(0,A.$s)(i);if(!r||r.id!==t.id)continue;let{size:a}=r;(0,A.j5)(a),(0,m.hu)(!this.currentSegment),this.currentSegment=e;let s=this.reader.requestSlice(i.filePos,a);s instanceof Promise&&(s=await s),s&&this.readContiguousElements(s),this.currentSegment=null,t.id===A.RG.Tags?e.tagsSeen=!0:t.id===A.RG.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e,t){for(;e.remainingLength>=A.FS;){let i=e.filePos;if(!this.traverseElement(e,t))return i}return e.filePos}traverseElement(e,t){let i=(0,A.$s)(e);if(!i||t&&t.includes(i.id))return!1;let{id:r,size:a}=i,s=e.filePos;switch((0,A.j5)(a),r){case A.RG.DocType:this.isWebM="webm"===(0,A.SK)(e,a);break;case A.RG.Seek:{if(!this.currentSegment)break;let t={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(t),this.readContiguousElements(e.slice(s,a)),(-1===t.id||-1===t.segmentPosition)&&this.currentSegment.seekEntries.pop()}break;case A.RG.SeekID:{let t=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!t)break;t.id=(0,A.ts)(e,a)}break;case A.RG.SeekPosition:{let t=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!t)break;t.segmentPosition=(0,A.ts)(e,a)}break;case A.RG.TimestampScale:if(!this.currentSegment)break;this.currentSegment.timestampScale=(0,A.ts)(e,a),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale;break;case A.RG.Duration:if(!this.currentSegment)break;this.currentSegment.duration=(0,A.yl)(e,a);break;case A.RG.TrackEntry:if(!this.currentSegment||(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusterPositionCache:[],cuePoints:[],disposition:{...b.CN},inputTrack:null,codecId:null,codecPrivate:null,defaultDuration:null,defaultDurationNs:null,name:null,languageCode:m.n3,decodingInstructions:[],info:null},this.readContiguousElements(e.slice(s,a)),!this.currentTrack))break;if(this.currentTrack.decodingInstructions.some(e=>e.data?.type!=="decompress"||e.scope!==o.Block||e.data.algorithm!==c.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("/"),t=-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){if(this.currentTrack.info.squarePixelWidth=this.currentTrack.info.width,this.currentTrack.info.squarePixelHeight=this.currentTrack.info.height,null!==this.currentTrack.info.displayWidth&&null!==this.currentTrack.info.displayHeight){let e=this.currentTrack.info.displayWidth*this.currentTrack.info.height,t=this.currentTrack.info.displayHeight*this.currentTrack.info.width;e>t?this.currentTrack.info.squarePixelWidth=Math.round(this.currentTrack.info.width*e/t):this.currentTrack.info.squarePixelHeight=Math.round(this.currentTrack.info.height*t/e)}this.currentTrack.codecId===A.Pp.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPr
4ivate):this.currentTrack.codecId===A.Pp.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):t===A.Pp.vp8?this.currentTrack.info.codec="vp8":t===A.Pp.vp9?this.currentTrack.info.codec="vp9":t===A.Pp.av1&&(this.currentTrack.info.codec="av1");let e=this.currentTrack,i=new h.mC(this.input,new z(e));this.currentTrack.inputTrack=i,this.currentSegment.tracks.push(this.currentTrack)}else if("audio"===this.currentTrack.info.type&&-1!==this.currentTrack.info.numberOfChannels&&-1!==this.currentTrack.info.sampleRate){t===A.Pp.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2"),objectType:null},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===A.Pp.mp3?this.currentTrack.info.codec="mp3":t===A.Pp.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate,this.currentTrack.info.sampleRate=l.L3):t===A.Pp.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):t===A.Pp.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):t===A.Pp.ac3?(this.currentTrack.info.codec="ac3",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):t===A.Pp.eac3?(this.currentTrack.info.codec="eac3",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,i=new h.Rq(this.input,new O(e));this.currentTrack.inputTrack=i,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null;break;case A.RG.TrackNumber:if(!this.currentTrack)break;this.currentTrack.id=(0,A.ts)(e,a);break;case A.RG.TrackType:{if(!this.currentTrack)break;let t=(0,A.ts)(e,a);1===t?this.currentTrack.info={type:"video",width:-1,height:-1,displayWidth:null,displayHeight:null,displayUnit:null,squarePixelWidth:-1,squarePixelHeight:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null,alphaMode:!1}:2===t&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case A.RG.FlagEnabled:if(!this.currentTrack)break;(0,A.ts)(e,a)||(this.currentTrack=null);break;case A.RG.FlagDefault:if(!this.currentTrack)break;this.currentTrack.disposition.default=!!(0,A.ts)(e,a);break;case A.RG.FlagForced:if(!this.currentTrack)break;this.currentTrack.disposition.forced=!!(0,A.ts)(e,a);break;case A.RG.FlagOriginal:if(!this.currentTrack)break;this.currentTrack.disposition.original=!!(0,A.ts)(e,a);break;case A.RG.FlagHearingImpaired:if(!this.currentTrack)break;this.currentTrack.disposition.hearingImpaired=!!(0,A.ts)(e,a);break;case A.RG.FlagVisualImpaired:if(!this.currentTrack)break;this.currentTrack.disposition.visuallyImpaired=!!(0,A.ts)(e,a);break;case A.RG.FlagCommentary:if(!this.currentTrack)break;this.currentTrack.disposition.commentary=!!(0,A.ts)(e,a);break;case A.RG.CodecID:if(!this.currentTrack)break;this.currentTrack.codecId=(0,A.SK)(e,a);break;case A.RG.CodecPrivate:if(!this.currentTrack)break;
4this.currentTrack.codecPrivate=(0,k.sB)(e,a);break;case A.RG.DefaultDuration:if(!this.currentTrack)break;this.currentTrack.defaultDurationNs=(0,A.ts)(e,a);break;case A.RG.Name:if(!this.currentTrack)break;this.currentTrack.name=(0,A.bX)(e,a);break;case A.RG.Language:if(!this.currentTrack||this.currentTrack.languageCode!==m.n3)break;this.currentTrack.languageCode=(0,A.SK)(e,a),(0,m.Rh)(this.currentTrack.languageCode)||(this.currentTrack.languageCode=m.n3);break;case A.RG.LanguageBCP47:{if(!this.currentTrack)break;let t=(0,A.SK)(e,a).split("-")[0];t?this.currentTrack.languageCode=t:this.currentTrack.languageCode=m.n3}break;case A.RG.Video:if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(s,a));break;case A.RG.PixelWidth:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=(0,A.ts)(e,a);break;case A.RG.PixelHeight:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=(0,A.ts)(e,a);break;case A.RG.DisplayWidth:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayWidth=(0,A.ts)(e,a);break;case A.RG.DisplayHeight:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayHeight=(0,A.ts)(e,a);break;case A.RG.DisplayUnit:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.displayUnit=(0,A.ts)(e,a);break;case A.RG.AlphaMode:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.alphaMode=1===(0,A.ts)(e,a);break;case A.RG.Colour:if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(s,a));break;case A.RG.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let t=(0,A.ts)(e,a),i=m.KE[t]??null;this.currentTrack.info.colorSpace.matrix=i}break;case A.RG.Range:if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=2===(0,A.ts)(e,a);break;case A.RG.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let t=(0,A.ts)(e,a),i=m.LT[t]??null;this.currentTrack.info.colorSpace.transfer=i}break;case A.RG.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let t=(0,A.ts)(e,a),i=m.vX[t]??null;this.currentTrack.info.colorSpace.primaries=i}break;case A.RG.Projection:if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(s,a));break;case A.RG.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let t=(0,A.yl)(e,a);try{this.currentTrack.info.rotation=(0,m.lP)(-t)}catch{}}break;case A.RG.Audio:if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(s,a));break;case A.RG.SamplingFrequency:if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=(0,A.yl)(e,a);break;case A.RG.Channels:if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=(0,A.ts)(e,a);break;case A.RG.BitDepth:if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=(0,A.ts)(e,a);break;case A.RG.CuePoint:if(!this.currentSegment)break;this.readContiguousElements(e.slice(s,a)),this.currentCueTime=null;break;case A.RG.CueTime:this.currentCueTime=(0,A.ts)(e,a);break;case A.RG.CueTrackPositions:{if(null===this.currentCueTime)break;(0,m.hu)(this.currentSegment);let t={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(t),this.readContiguousElements(e.slice(s,a)),(-1===t.trackId||-1===t.clusterPosition)&&this.currentSegment.cuePoints.pop()}break;case A.RG.CueTrack:{let t=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!t)break;t.trackId=(0,A.ts)(e,a)}break;case A.RG.CueClusterPosition:{let t=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!t)break;(0,m.hu)(this.currentSegment),t.clusterPosition=this.currentSegment.dataStartPos+(0,A.ts)(e,a)}break;case A.RG.Timestamp:if(!this.currentCluster)break;this.currentCluster.timestamp=(0,A.ts)(e,a);break;case A.RG.SimpleBlock:{if(!this.currentCluster)break;let t=(0,A.F7)(e);if(null===t)break;let i=this.getTrackDataInCluster(this.currentCluster,t);if(!i)break;let r=(0,k.ww)(e),n=(0,k.s3)(e),o=!!(128&n);i.track.info?.type==="audio"&&i.track.info.codec&&(o=!0);let c=(0,k.sB)(e,a-(e.filePos-s)),l=i.track.decodingInstructions.length>0;i.blocks.push({timestamp:r,duration:0,isKeyFrame:o,data:c,lacing:n>>1&3,decoded:!l,mainAdditional:null})}break;case A.RG.BlockGroup:if(!this.currentCluster)break;this.readContiguousElements(e.slice(s,a)),this.currentBlock=null;break;case A.RG.Block:{if(!this.currentCluster)break;let t=(0,A.F7)(e);if(null===t)break;let i=this.getTrackDataInCluster(this.currentCluster,t);if(!i)break;let r=(0,k.ww)(e),n=(0,k.s3)(e),o=(0,k.sB)(e,a-(e.filePos-s)),c=i.track.decodingInstructions.length>0;this.currentBlock={timestamp:r,duration:0,isKeyFrame:!0,data:o,lacing:n>>1&3,decoded:!c,mainAdditional:null},i.blocks.push(this.currentBlock)}break;case A.RG.BlockAdditions:this.readContiguousElements(e.slice(s,a));break;case A.RG.BlockMore:if(!this.currentBlock)break;this.currentBlockAdditional={addId:1,data:null},this.readContiguousElements(e.slice(s,a)),this.currentBlockAdditional.data&&1===this.currentBlockAdditional.addId&&(this.currentBlock.mainAdditional=this.currentBlockAdditional.data),this.currentBlockAdditional=null;break;case A.RG.BlockAdditional:if(!this.currentBlockAdditional)break;this.currentBlockAdditional.data=(0,k.sB)(e,a);break;case A.RG.BlockAddID:if(!this.currentBlockAdditional)break;this.currentBlockAdditional.addId=(0,A.ts)(e,a);break;case A.RG.BlockDuration:if(!this.currentBlock)break;this.currentBlock.duration=(0,A.ts)(e,a);break;case A.RG.ReferenceBlock:if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;break;case A.RG.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(s,a));break;case A.RG.Targets:this.readContiguousElements(e.slice(s,a));break;case A.RG.TargetTypeValue:50!==(0,A.ts)(e,a)&&(this.currentTagTargetIsMovie=!1);break;case A.RG.TagTrackUID:case A.RG.TagEditionUID:case A.RG.TagChapterUID:case A.RG.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case A.RG.SimpleTag:if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(s,a));break;case A.RG.TagName:this.currentSimpleTagName=(0,A.bX)(e,a);break;case A.RG.TagString:{if(!this.currentSimpleTagName)break;let t=(0,A.bX)(e,a);this.processTagValue(this.currentSimpleTagName,t)}break;case A.RG.TagBinary:{if(!this.currentSimpleTagName)break;let t=(0,k.sB)(e,a);this.processTagValue(this.currentSimpleTagName,t)}break;case A.RG.AttachedFile:{if(!this.currentSegment)break;this.currentAttachedFile={fileUid:null,fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(s,a));let t=this.currentSegment.metadataTags;if(this.currentAttachedFile.fileUid&&this.currentAttachedFile.fileData&&(t.raw??={},t.raw[this.currentAttachedFile.fileUid.toString()]=new b.sZ(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,i="unknown";if(e){let t=e.toLowerCase();
4t.startsWith("cover.")?i="coverFront":t.startsWith("back.")&&(i="coverBack")}t.images??=[],t.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:i,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case A.RG.FileUID:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileUid=(0,A.Zl)(e,a);break;case A.RG.FileName:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=(0,A.bX)(e,a);break;case A.RG.FileMediaType:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=(0,A.SK)(e,a);break;case A.RG.FileData:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=(0,k.sB)(e,a);break;case A.RG.FileDescription:if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=(0,A.bX)(e,a);break;case A.RG.ContentEncodings:if(!this.currentTrack)break;this.readContiguousElements(e.slice(s,a)),this.currentTrack.decodingInstructions.sort((e,t)=>t.order-e.order);break;case A.RG.ContentEncoding:this.currentDecodingInstruction={order:0,scope:o.Block,data:null},this.readContiguousElements(e.slice(s,a)),this.currentDecodingInstruction.data&&this.currentTrack.decodingInstructions.push(this.currentDecodingInstruction),this.currentDecodingInstruction=null;break;case A.RG.ContentEncodingOrder:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.order=(0,A.ts)(e,a);break;case A.RG.ContentEncodingScope:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.scope=(0,A.ts)(e,a);break;case A.RG.ContentCompression:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decompress",algorithm:c.Zlib,settings:null},this.readContiguousElements(e.slice(s,a));break;case A.RG.ContentCompAlgo:if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.algorithm=(0,A.ts)(e,a);break;case A.RG.ContentCompSettings:if(this.currentDecodingInstruction?.data?.type!=="decompress")break;this.currentDecodingInstruction.data.settings=(0,k.sB)(e,a);break;case A.RG.ContentEncryption:if(!this.currentDecodingInstruction)break;this.currentDecodingInstruction.data={type:"decrypt"}}return e.filePos=s+a,!0}decodeBlockData(e,t){(0,m.hu)(e.decodingInstructions.length>0);let i=t;for(let t of e.decodingInstructions)if((0,m.hu)(t.data),"decompress"===t.data.type&&t.data.algorithm===c.HeaderStripping&&t.data.settings&&t.data.settings.length>0){let e=t.data.settings,r=new Uint8Array(e.length+i.length);r.set(e,0),r.set(i,e.length),i=r}return i}processTagValue(e,t){if(!this.currentSegment?.metadataTags)return;let i=this.currentSegment.metadataTags;if(i.raw??={},i.raw[e]??=t,"string"==typeof t)switch(e.toLowerCase()){case"title":i.title??=t;break;case"description":i.description??=t;break;case"artist":i.artist??=t;break;case"album":i.album??=t;break;case"album_artist":i.albumArtist??=t;break;case"genre":i.genre??=t;break;case"comment":i.comment??=t;break;case"lyrics":i.lyrics??=t;break;case"date":{let e=new Date(t);Number.isNaN(e.getTime())||(i.date??=e)}break;case"track_number":case"part_number":{let e=t.split("/"),r=Number.parseInt(e[0],10),a=e[1]&&Number.parseInt(e[1],10);Number.isInteger(r)&&r>0&&(i.trackNumber??=r),a&&Number.isInteger(a)&&a>0&&(i.tracksTotal??=a)}break;case"disc_number":case"disc":{let e=t.split("/"),r=Number.parseInt(e[0],10),a=e[1]&&Number.parseInt(e[1],10);Number.isInteger(r)&&r>0&&(i.discNumber??=r),a&&Number.isInteger(a)&&a>0&&(i.discsTotal??=a)}}}}class D{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){let e=this.internalTrack.demuxer,t=this.internalTrack.inputTrack.type,i=0;for(let r of e.segments)for(let e of r.tracks)if(e.inputTrack.type===t&&i++,e===this.internalTrack)break;return i}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}
4:{blockIndex:-1,correctBlockFound:!1},-1/0,1/0,e)}intoTimescale(e){return(0,m.F3)(e*this.internalTrack.segment.timestampFactor)}async getPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(null,e=>{let t=e.trackData.get(this.internalTrack.id);if(!t)return{blockIndex:-1,correctBlockFound:!1};let r=(0,m.sF)(t.presentationTimestamps,i,e=>e.timestamp);return{blockIndex:-1!==r?t.presentationTimestamps[r].blockIndex:-1,correctBlockFound:-1!==r&&i<t.endTimestamp}},i,i,t)}async getNextPacket(e,t){let i=this.packetToClusterLocation.get(e);if(void 0===i)throw Error("Packet was not created from this track.");return this.performClusterLookup(i.cluster,e=>{if(e===i.cluster){let t=e.trackData.get(this.internalTrack.id);if(i.blockIndex+1<t.blocks.length)return{blockIndex:i.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,t)}async getKeyPacket(e,t){let i=this.intoTimescale(e);return this.performClusterLookup(null,e=>{let t=e.trackData.get(this.internalTrack.id);if(!t)return{blockIndex:-1,correctBlockFound:!1};let r=(0,m.qr)(t.presentationTimestamps,e=>t.blocks[e.blockIndex].isKeyFrame&&e.timestamp<=i);return{blockIndex:-1!==r?t.presentationTimestamps[r].blockIndex:-1,correctBlockFound:-1!==r&&i<t.endTimestamp}},i,i,t)}async getNextKeyPacket(e,t){let i=this.packetToClusterLocation.get(e);if(void 0===i)throw Error("Packet was not created from this track.");return this.performClusterLookup(i.cluster,e=>{if(e===i.cluster){let t=e.trackData.get(this.internalTrack.id).blocks.findIndex((e,t)=>e.isKeyFrame&&t>i.blockIndex);if(-1!==t)return{blockIndex:t,correctBlockFound:!0}}else{let t=e.trackData.get(this.internalTrack.id);if(t&&null!==t.firstKeyFrameTimestamp){let e=t.blocks.findIndex(e=>e.isKeyFrame);return(0,m.hu)(-1!==e),{blockIndex:e,correctBlockFound:!0}}}return{blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,t)}async fetchPacketInCluster(e,t,i){if(-1===t)return null;let r=e.trackData.get(this.internalTrack.id).blocks[t];(0,m.hu)(r),r.decoded||(r.data=this.internalTrack.demuxer.decodeBlockData(this.internalTrack,r.data),r.decoded=!0);let a=i.metadataOnly?f.L:r.data,s=r.timestamp/this.internalTrack.segment.timestampFactor,n=r.duration/this.internalTrack.segment.timestampFactor,o={};r.mainAdditional&&this.internalTrack.info?.type==="video"&&this.internalTrack.info.alphaMode&&(o.alpha=i.metadataOnly?f.L:r.mainAdditional,o.alphaByteLength=r.mainAdditional.byteLength);let c=new f.H(a,r.isKeyFrame?"key":"delta",s,n,e.dataStartPos+t,r.data.byteLength,o);return this.packetToClusterLocation.set(c,{cluster:e,blockIndex:t}),c}async performClusterLookup(e,t,i,r,a){let s;let{demuxer:n,segment:o}=this.internalTrack,c=null,l=null,d=-1;if(e){let{blockIndex:i,correctBlockFound:r}=t(e);if(r)return this.fetchPacketInCluster(e,i,a);-1!==i&&(l=e,d=i)}let u=(0,m.sF)(this.internalTrack.cuePoints,i,e=>e.time),h=-1!==u?this.internalTrack.cuePoints[u]:null,f=(0,m.sF)(this.internalTrack.clusterPositionCache,i,e=>e.startTimestamp),p=-1!==f?this.internalTrack.clusterPositionCache[f]:null,g=Math.max(h?.clusterPosition??0,p?.elementStartPos??0)||null;for(e?null===g||e.elementStartPos>=g?(s=e.elementEndPos,c=e):s=g:s=g??o.clusterSeekStartPos;null===o.elementEndPos||s<=o.elementEndPos-A.FS;){if(c){let e=c.trackData.get(this.internalTrack.id);if(e&&e.startTimestamp>r)break}let e=n.reader.requestSliceRange(s,A.FS,A.nO);if(e instanceof Promise&&(e=await e),!e)break;let i=s,u=(0,A.$s)(e);if(!u||!A.h1.includes(u.id)&&u.id!==A.RG.Void){let e=await (0,A._C)(n.reader,i,A.h1,Math.min(o.elementEndPos??1/0,i+10485760));if(e){s=e;continue}break}let h=u.id,f=u.size,p=e.filePos;if(h===A.RG.Cluster){f=(c=await n.readCluster(i,o)).elementEndPos-p;let{blockIndex:e,correctBlockFound:r}=t(c);if(r)return this.fetchPacketInCluster(c,e,a);-1!==e&&(l=c,d=e)}void 0===f&&((0,m.hu)(h!==A.RG.Cluster),f=(await (0,A.Tq)(n.reader,p,A.et,o.elementEndPos)).pos-p);let g=p+f;if(null===o.elementEndPos){let e=n.reader.requestSliceRange(g,A.FS,A.nO);if(e instanceof Promise&&(e=await e),!e)break;if((0,A.hI)(e)===A.RG.Segment){o.elementEndPos=g;break}}s=g}if(h&&(!l||l.elementStartPos<h.clusterPosition)){let e=this.internalTrack.cuePoints[u-1];(0,m.hu)(!e||e.time<h.time);let i=e?.time??-1/0;return this.performClusterLookup(null,t,i,r,a)}return l?this.fetchPacketInCluster(l,d,a):null}}class z extends D{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}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}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}}
4async 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,l.Ah)({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,d.E3)(e.data):null,hevcCodecInfo:"hevc"===this.internalTrack.info.codec&&e?(0,d.BW)(e.data):null,vp9CodecInfo:"vp9"===this.internalTrack.info.codec&&e?(0,d.Al)(e.data):null,av1CodecInfo:"av1"===this.internalTrack.info.codec&&e?(0,d.$W)(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,displayAspectWidth:this.internalTrack.info.squarePixelWidth,displayAspectHeight:this.internalTrack.info.squarePixelHeight,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}}class O extends D{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,l.YV)({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}}var U=i(66914),N=i(1645);let L=async(e,t,i)=>{let r=t;for(;null===i||r<i;){let t=e.requestSlice(r,U.o6);if(t instanceof Promise&&(t=await t),!t)break;let i=(0,k.dd)(t),a=(0,U.hE)(i,null!==e.fileSize?e.fileSize-r:null);if(a.header)return{header:a.header,startPos:r};r+=a.bytesAdvanced}return null};class V extends u.k{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new m.q9,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 h.Rq(this.input,new W(this))]})()}async advanceReader(){if(0===this.lastLoadedPos)for(;;){let e=this.reader.requestSlice(this.lastLoadedPos,N.sA);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let t=(0,N.wt)(e);if(!t)break;this.lastLoadedPos=e.filePos+t.size}let e=await L(this.reader,this.lastLoadedPos,this.reader.fileSize);if(!e){this.lastSampleLoaded=!0;return}let t=e.header;this.lastLoadedPos=e.startPos+t.totalSize-1;let i=(0,U.Bx)(t.mpegVersionId,t.channel),r=this.reader.requestSlice(e.startPos+i,4);if(r instanceof Promise&&(r=await r),r){let e=(0,k.dd)(r);if(e===U.i8||e===U.H_)return}this.firstFrameHeader||(this.firstFrameHeader=t),t.sampleRate!==this.firstFrameHeader.sampleRate&&console.warn(`MP3 changed sample rate mid-file: ${this.firstFrameHeader.sampleRate} Hz to ${t.sampleRate} Hz. Might be a bug, so please report this file.`);let a=t.audioSamplesInFrame/this.firstFrameHeader.sampleRate,s={timestamp:this.nextTimestampInSamples/this.firstFrameHeader.sampleRate,duration:a,dataStart:e.startPos,dataSize:t.totalSize};this.loadedSamples.push(s),this.nextTimestampInSamples+=t.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,m.hu)(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,t=!1;for(;;){let i=this.reader.requestSlice(e,N.sA);
4if(i instanceof Promise&&(i=await i),!i)break;let r=(0,N.wt)(i);if(!r)break;t=!0;let a=this.reader.requestSlice(i.filePos,r.size);if(a instanceof Promise&&(a=await a),!a)break;(0,N.Xm)(a,r,this.metadataTags),e=i.filePos+r.size}if(!t&&null!==this.reader.fileSize&&this.reader.fileSize>=N.X6){let e=this.reader.requestSlice(this.reader.fileSize-N.X6,N.X6);e instanceof Promise&&(e=await e),(0,m.hu)(e);let t=(0,k.yn)(e,3);"TAG"===t&&(0,N.HG)(e,this.metadataTags)}return this.metadataTags}finally{e()}}}class W{constructor(e){this.demuxer=e}getId(){return 1}getNumber(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return(0,m.hu)(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 m.n3}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return(0,m.hu)(this.demuxer.firstFrameHeader),3===this.demuxer.firstFrameHeader.channel?1:2}getSampleRate(){return(0,m.hu)(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}getDisposition(){return{...b.CN}}async getDecoderConfig(){return(0,m.hu)(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:3===this.demuxer.firstFrameHeader.channel?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,t){let i;if(-1===e)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;if(t.metadataOnly)i=f.L;else{let e=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(e instanceof Promise&&(e=await e),!e)return null;i=(0,k.sB)(e,r.dataSize)}return new f.H(i,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let i=(0,m.Jy)(this.demuxer.loadedSamples,e.timestamp,e=>e.timestamp);if(-1===i)throw Error("Packet was not created from this track.");let r=i+1;for(;r>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(r,t)}finally{i()}}async getPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{for(;;){let i=(0,m.sF)(this.demuxer.loadedSamples,e,e=>e.timestamp);if(-1===i&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded||i>=0&&i+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(i,t);await this.demuxer.advanceReader()}}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}}var H=i(58729),q=i(20169);class G extends u.k{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 t=this.reader.requestSliceRange(e,q.Q1,q.oO);if(t instanceof Promise&&(t=await t),!t)break;let i=(0,q.Rf)(t);if(!i||!(2&i.headerType))break;this.bitstreams.push({serialNumber:i.serialNumber,bosPage:i,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=i.headerStartPos+i.totalSize}for(let e of this.bitstreams){let t=await this.readPacket(e.bosPage,0);t&&(t.data.byteLength>=7&&1===t.data[0]&&118===t.data[1]&&111===t.data[2]&&114===t.data[3]&&98===t.data[4]&&105===t.data[5]&&115===t.data[6]?await this.readVorbisMetadata(t,e):t.data.byteLength>=8&&79===t.data[0]&&112===t.data[1]&&117===t.data[2]&&115===t.data[3]&&72===t.data[4]&&101===t.data[5]&&97===t.data[6]&&100===t.data[7]&&await this.readOpusMetadata(t,e),null!==e.codecInfo.codec&&this.tracks.push(new h.Rq(this.input,new $(e,this))))}})()}async readVorbisMetadata(e,t){let i=await this.findNextPacketStart(e);if(!i)return;let r=await this.readPacket(i.startPage,i.startSegmentIndex);if(!r||!(i=await this.findNextPacketStart(r)))return;let a=await this.readPacket(i.startPage,i.startSegmentIndex);if(!a||3!==r.data[0]||5!==a.data[0])return;let s=[],n=e=>{for(;s.push(Math.min(255,e)),!(e<255);)e-=255};n(e.data.length),n(r.data.length);let o=new Uint8Array(1+s.length+e.data.length+r.data.length+a.data.length);o[0]=2,o.set(s,1),o.set(e.data,1+s.length),o.set(r.data,1+s.length+e.data.length),o.set(a.data,1+s.length+e.data.length+r.data.length),t.codecInfo.codec="vorbis",t.description=o,t.lastMetadataPacket=a;let c=(0,m.NK)(e.data);t.numberOfChannels=c.getUint8(11),t.sampleRate=c.getUint32(12,!0);let l=c.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(15&l),1<<(l>>4)],modeBlockflags:(0,d.zg)(a.data).modeBlockflags},(0,d.BT)(r.data.subarray(7),this.metadataTags)}async readOpusMetadata(e,t){let i=await this.findNextPacketStart(e);if(!i)return;let r=await this.readPacket(i.startPage,i.startSegmentIndex);if(!r)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=r;let a=(0,d.d)(e.data);t.numberOfChannels=a.outputChannelCount,t.sampleRate=l.L3,t.codecInfo.opusInfo={preSkip:a.preSkip},(0,d.BT)(r.data.subarray(8),this.metadataTags)}async readPacket(e,t){(0,m.hu)(t<e.lacingValues.length);let i=0;for(let r=0;r<t;r++)i+=e.lacingValues[r];let r=e,a=i,s=t,n=[];e:for(;;){let t=this.reader.requestSlice(r.dataStartPos,r.dataSize);t instanceof Promise&&(t=await t),(0,m.hu)(t);let o=(0,k.sB)(t,r.dataSize);for(;;){if(s===r.lacingValues.length){n.push(o.subarray(i,a));break}let e=r.lacingValues[s];if(a+=e,e<255){n.push(o.subarray(i,a));break e}s++}let c=r.headerStartPos+r.totalSize;
4for(;;){let t=this.reader.requestSliceRange(c,q.Q1,q.oO);if(t instanceof Promise&&(t=await t),!t)return null;let i=(0,q.Rf)(t);if(!i)return null;if((r=i).serialNumber===e.serialNumber)break;c=r.headerStartPos+r.totalSize}i=0,a=0,s=0}let o=n.reduce((e,t)=>e+t.length,0);if(0===o)return null;let c=new Uint8Array(o),l=0;for(let e=0;e<n.length;e++){let t=n[e];c.set(t,l),l+=t.length}return{data:c,endPage:r,endSegmentIndex:s}}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 t=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let i=this.reader.requestSliceRange(t,q.Q1,q.oO);if(i instanceof Promise&&(i=await i),!i)return null;let r=(0,q.Rf)(i);if(!r)return null;if(r.serialNumber===e.endPage.serialNumber)return{startPage:r,startSegmentIndex:0};t=r.headerStartPos+r.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(e=>e.getCodecParameterString()));return(0,H.hg)({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 ${constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new m.q9,this.internalSampleRate="opus"===e.codecInfo.codec?l.L3:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumber(){let e=this.demuxer.tracks.findIndex(e=>e._backing.bitstream===this.bitstream);return(0,m.hu)(-1!==e),e+1}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,m.hu)(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 m.n3}getDisposition(){return{...b.CN}}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,m.hu)(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,i){if(!e)return null;let{durationInSamples:r,vorbisBlockSize:a}=(0,H.vp)(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),s=new f.H(i.metadataOnly?f.L:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,r/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(s,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:r,vorbisLastBlockSize:t.vorbisLastBlocksize,vorbisBlockSize:a}),s}async getFirstPacket(e){(0,m.hu)(this.bitstream.lastMetadataPacket);let t=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!t)return null;let i=0;"opus"===this.bitstream.codecInfo.codec&&((0,m.hu)(this.bitstream.codecInfo.opusInfo),i-=this.bitstream.codecInfo.opusInfo.preSkip);let r=await this.demuxer.readPacket(t.startPage,t.startSegmentIndex);return this.createEncodedPacketFromOggPacket(r,{timestampInSamples:i,vorbisLastBlocksize:null},e)}async getNextPacket(e,t){let i=this.encodedPacketToMetadata.get(e);if(!i)throw Error("Packet was not created from this track.");let r=await this.demuxer.findNextPacketStart(i.packet);if(!r)return null;let a=i.timestampInSamples+i.durationInSamples,s=await this.demuxer.readPacket(r.startPage,r.startSegmentIndex);return this.createEncodedPacketFromOggPacket(s,{timestampInSamples:a,vorbisLastBlocksize:i.vorbisBlockSize},t)}async getPacket(e,t){let i,r;if(null===this.demuxer.reader.fileSize)return this.getPacketSequential(e,t);let a=(0,m.F3)(e*this.internalSampleRate);if(0===a)return this.getFirstPacket(t);if(a<0)return null;(0,m.hu)(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!s)return null;let n=s.startPage,o=this.demuxer.reader.fileSize,c=[n];e:for(;n.headerStartPos+n.totalSize<o;){let e=Math.floor((n.headerStartPos+o)/2),t=e;for(;;){let i=Math.min(t+q.N,o-q.Q1),r=this.demuxer.reader.requestSlice(t,i-t);if(r instanceof Promise&&(r=await r),(0,m.hu)(r),!(0,q.bL)(r,i)){o=e+q.Q1;continue e}let s=this.demuxer.reader.requestSliceRange(r.filePos,q.Q1,q.oO);s instanceof Promise&&(s=await s),(0,m.hu)(s);let l=(0,q.Rf)(s);(0,m.hu)(l);let d=!1;if(l.serialNumber===this.bitstream.serialNumber)d=!0;else{let e=this.demuxer.reader.requestSlice(l.headerStartPos,l.totalSize);e instanceof Promise&&(e=await e),(0,m.hu)(e);let t=(0,k.sB)(e,l.totalSize);d=(0,H.sd)(t)===l.checksum}if(!d){t=l.headerStartPos+4;continue}if(d&&l.serialNumber!==this.bitstream.serialNumber||-1===l.granulePosition){t=l.headerStartPos+l.totalSize;continue}this.granulePositionToTimestampInSamples(l.granulePosition)>a?o=l.headerStartPos:(n=l,c.push(l));continue e}}let l=s.startPage;for(let e of c){if(e.granulePosition===n.granulePosition)break;(!l||e.headerStartPos>l.headerStartPos)&&(l=e)}let d=l,u=[d];for(;d.serialNumber!==this.bitstream.serialNumber||d.granulePosition!==n.granulePosition;){let e=d.headerStartPos+d.totalSize,t=this.demuxer.reader.requestSliceRange(e,q.Q1,q.oO);t instanceof Promise&&(t=await t),(0,m.hu)(t);let i=(0,q.Rf)(t);(0,m.hu)(i),(d=i).serialNumber===this.bitstream.serialNumber&&u.push(d)}(0,m.hu)(-1!==d.granulePosition);let h=null,p=d,g=0;if(d.headerStartPos===s.startPage.headerStartPos)i=this.granulePositionToTimestampInSamples(0),r=!0,h=0;else{i=0,r=!1;for(let e=d.lacingValues.length-1;e>=0;e--)if(d.lacingValues[e]<255){h=e+1;break}if(null===h)throw Error("Invalid page with granule position: no packets end on this page.");g=h-1;let e={data:f.L,endPage:p,endSegmentIndex:g};
4if(await this.demuxer.findNextPacketStart(e)){let e=K(u,d,h);(0,m.hu)(e);let t=j(u,e.page,e.segmentIndex);t&&(d=t.page,h=t.segmentIndex)}else for(;;){let e=K(u,d,h);if(!e)break;let t=j(u,e.page,e.segmentIndex);if(!t)break;if(d=t.page,h=t.segmentIndex,e.page.headerStartPos!==p.headerStartPos){p=e.page,g=e.segmentIndex;break}}}let b=null,w=null;for(;null!==d;){(0,m.hu)(null!==h);let e=await this.demuxer.readPacket(d,h);if(!e)break;if(!(d.headerStartPos===s.startPage.headerStartPos&&h<s.startSegmentIndex)){let s=this.createEncodedPacketFromOggPacket(e,{timestampInSamples:i,vorbisLastBlocksize:w?.vorbisBlockSize??null},t);(0,m.hu)(s);let n=this.encodedPacketToMetadata.get(s);if((0,m.hu)(n),r||e.endPage.headerStartPos!==p.headerStartPos||e.endSegmentIndex!==g?i+=n.durationInSamples:(i=this.granulePositionToTimestampInSamples(d.granulePosition),r=!0,s=this.createEncodedPacketFromOggPacket(e,{timestampInSamples:i-n.durationInSamples,vorbisLastBlocksize:w?.vorbisBlockSize??null},t),(0,m.hu)(s),n=this.encodedPacketToMetadata.get(s),(0,m.hu)(n)),b=s,w=n,r&&(Math.max(i,0)>a||Math.max(n.timestampInSamples,0)===a))break}let n=await this.demuxer.findNextPacketStart(e);if(!n)break;d=n.startPage,h=n.startSegmentIndex}return b}async getPacketSequential(e,t){let i=await this.sequentialScanMutex.acquire();try{let i;let r=(0,m.F3)(e*this.internalSampleRate);e=r/this.internalSampleRate;let a=(0,m.sF)(this.sequentialScanCache,r,e=>e.timestampInSamples);if(-1!==a){let e=this.sequentialScanCache[a];i=this.createEncodedPacketFromOggPacket(e.packet,{timestampInSamples:e.timestampInSamples,vorbisLastBlocksize:e.vorbisLastBlockSize},t)}else i=await this.getFirstPacket(t);let s=0;for(;i&&i.timestamp<e;){let r=await this.getNextPacket(i,t);if(!r||r.timestamp>e)break;if(i=r,s++,100===s){s=0;let e=this.encodedPacketToMetadata.get(i);(0,m.hu)(e),this.sequentialScanCache.length>0&&(0,m.hu)((0,m.Z$)(this.sequentialScanCache).timestampInSamples<=e.timestampInSamples),this.sequentialScanCache.push(e)}}return i}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}}let j=(e,t,i)=>{let r=t,a=i;e:for(;;){for(a--;a>=0;a--)if(r.lacingValues[a]<255){a++;break e}if((0,m.hu)(-1===a),!(1&r.headerType)){a=0;break}let t=(0,m.dF)(e,e=>e.headerStartPos<r.headerStartPos);if(!t)return null;a=(r=t).lacingValues.length}if((0,m.hu)(-1!==a),a===r.lacingValues.length){let t=e[e.indexOf(r)+1];(0,m.hu)(t),r=t,a=0}return{page:r,segmentIndex:a}},K=(e,t,i)=>{if(i>0)return{page:t,segmentIndex:i-1};let r=(0,m.dF)(e,e=>e.headerStartPos<t.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var Q=i(88913),X=i(45954);class Z extends u.k{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new m.q9,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,m.hu)(this.firstFrameHeader),this.tracks=[new h.Rq(this.input,new Y(this))]})()}async advanceReader(){if(0===this.lastLoadedPos)for(;;){let e=this.reader.requestSlice(this.lastLoadedPos,N.sA);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let t=(0,N.wt)(e);if(!t)break;this.lastLoadedPos=e.filePos+t.size}let e=this.reader.requestSliceRange(this.lastLoadedPos,X.Ls,X.MB);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let t=(0,X.gM)(e);if(!t||null!==this.reader.fileSize&&t.startPos+t.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=t);
4let i=l.v6[t.samplingFrequencyIndex];(0,m.hu)(void 0!==i);let r={timestamp:this.nextTimestampInSamples/i,duration:1024/i,dataStart:t.startPos,dataSize:t.frameLength};this.loadedSamples.push(r),this.nextTimestampInSamples+=1024,this.lastLoadedPos=t.startPos+t.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,m.hu)(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;for(;;){let t=this.reader.requestSlice(e,N.sA);if(t instanceof Promise&&(t=await t),!t)break;let i=(0,N.wt)(t);if(!i)break;let r=this.reader.requestSlice(t.filePos,i.size);if(r instanceof Promise&&(r=await r),!r)break;(0,N.Xm)(r,i,this.metadataTags),e=t.filePos+i.size}return this.metadataTags}finally{e()}}}class Y{constructor(e){this.demuxer=e}getId(){return 1}getNumber(){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 m.n3}getCodec(){return"aac"}getInternalCodecId(){return(0,m.hu)(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){(0,m.hu)(this.demuxer.firstFrameHeader);let e=l.y7[this.demuxer.firstFrameHeader.channelConfiguration];return(0,m.hu)(void 0!==e),e}getSampleRate(){(0,m.hu)(this.demuxer.firstFrameHeader);let e=l.v6[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return(0,m.hu)(void 0!==e),e}getDisposition(){return{...b.CN}}async getDecoderConfig(){return(0,m.hu)(this.demuxer.firstFrameHeader),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate()}}async getPacketAtIndex(e,t){let i;if(-1===e)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;if(t.metadataOnly)i=f.L;else{let e=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(e instanceof Promise&&(e=await e),!e)return null;i=(0,k.sB)(e,r.dataSize)}return new f.H(i,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let i=(0,m.Jy)(this.demuxer.loadedSamples,e.timestamp,e=>e.timestamp);if(-1===i)throw Error("Packet was not created from this track.");let r=i+1;for(;r>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(r,t)}finally{i()}}async getPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{for(;;){let i=(0,m.sF)(this.demuxer.loadedSamples,e,e=>e.timestamp);if(-1===i&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded||i>=0&&i+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(i,t);await this.demuxer.advanceReader()}}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}}var J=i(74010);class ee extends u.k{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 m.q9,this.lastSampleLoaded=!1,this.reader=e._reader}async computeDuration(){return await this.readMetadata(),(0,m.hu)(this.track),this.track.computeDuration()}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}async getTracks(){return await this.readMetadata(),(0,m.hu)(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 t=this.reader.requestSlice(e,4);if(t instanceof Promise&&(t=await t),e+=4,null===t)throw Error(`Metadata block at position ${e} is too small! Corrupted file.`);(0,m.hu)(t);let i=(0,k.s3)(t),r=(0,k.ZC)(t),a=(128&i)!=0;switch(127&i){case d.qr.STREAMINFO:{let t=this.reader.requestSlice(e,r);if(t instanceof Promise&&(t=await t),(0,m.hu)(t),null===t)throw Error(`StreamInfo block at position ${e} is too small! Corrupted file.`);let i=(0,k.sB)(t,34),a=new m.Zi(i),s=a.readBits(16),n=a.readBits(16),o=a.readBits(24),c=a.readBits(24),l=a.readBits(20),d=a.readBits(3)+1;a.readBits(5);let u=a.readBits(36);a.skipBits(128);let f=new Uint8Array(42);f.set(new Uint8Array([102,76,97,67]),0),f.set(new Uint8Array([128,0,0,34]),4),f.set(i,8),this.audioInfo={numberOfChannels:d,sampleRate:l,totalSamples:u,minimumBlockSize:s,maximumBlockSize:n,minimumFrameSize:o,maximumFrameSize:c,description:f},this.track=new h.Rq(this.input,new et(this));break}case d.qr.VORBIS_COMMENT:{let t=this.reader.requestSlice(e,r);t instanceof Promise&&(t=await t),(0,m.hu)(t),(0,d.BT)((0,k.sB)(t,r),this.metadataTags);break}case d.qr.PICTURE:{let t=this.reader.requestSlice(e,r);t instanceof Promise&&(t=await t),(0,m.hu)(t);let i=(0,k.dd)(t),a=(0,k.dd)(t),s=m.zN.decode((0,k.sB)(t,a)),n=(0,k.dd)(t),o=m.zN.decode((0,k.sB)(t,n));t.skip(16);let c=(0,k.dd)(t),l=(0,k.sB)(t,c);this.metadataTags.images??=[],this.metadataTags.images.push({data:l,mimeType:s,kind:3===i?"coverFront":4===i?"coverBack":"unknown",de
4scription:o})}}if(e+=r,a){this.lastLoadedPos=e;break}}})()}async readNextFlacFrame({startPos:e,isFirstPacket:t}){(0,m.hu)(this.audioInfo);let i=this.audioInfo.maximumFrameSize+16,r=await this.reader.requestSliceRange(e,this.audioInfo.minimumFrameSize,i);if(!r)return null;let a=this.readFlacFrameHeader({slice:r,isFirstPacket:t});if(!a)return null;for(r.filePos=e+this.audioInfo.minimumFrameSize;;){if(r.filePos>r.end-6)return{num:a.num,blockSize:a.blockSize,sampleRate:a.sampleRate,size:r.end-e,isLastFrame:!0};if(255===(0,k.s3)(r)){let t=r.filePos;if((0,k.s3)(r)!==(1===this.blockingBit?249:248)){r.filePos=t;continue}r.skip(-2);let i=r.filePos-e,s=this.readFlacFrameHeader({slice:r,isFirstPacket:!1});if(!s){r.filePos=t;continue}if(0===this.blockingBit){if(s.num-a.num!=1){r.filePos=t;continue}}else if(s.num-a.num!==a.blockSize){r.filePos=t;continue}return{num:a.num,blockSize:a.blockSize,sampleRate:a.sampleRate,size:i,isLastFrame:!1}}}}readFlacFrameHeader({slice:e,isFirstPacket:t}){let i=e.filePos,r=(0,k.sB)(e,4),a=new m.Zi(r);if(32764!==a.readBits(15))return null;if(null===this.blockingBit){(0,m.hu)(t);let e=a.readBits(1);this.blockingBit=e}else if(1===this.blockingBit){if((0,m.hu)(!t),1!==a.readBits(1))return null}else if(0===this.blockingBit){if((0,m.hu)(!t),0!==a.readBits(1))return null}else throw Error("Invalid blocking bit");let s=(0,J.bD)(a.readBits(4));if(!s)return null;(0,m.hu)(this.audioInfo);let n=(0,J.se)(a.readBits(4),this.audioInfo.sampleRate);if(!n||(a.readBits(4),a.readBits(3),0!==a.readBits(1)))return null;let o=(0,J.Lw)(e),c=(0,J.gg)(e,s),l=(0,J.T3)(e,n);if(null===l||l!==this.audioInfo.sampleRate)return null;let d=e.filePos-i,u=(0,k.s3)(e);return(e.skip(-d),e.skip(-1),u!==(0,J._z)((0,k.sB)(e,d)))?null:{num:o,blockSize:c,sampleRate:l}}async advanceReader(){await this.readMetadata(),(0,m.hu)(null!==this.lastLoadedPos),(0,m.hu)(this.audioInfo);let e=this.lastLoadedPos,t=await this.readNextFlacFrame({startPos:e,isFirstPacket:0===this.loadedSamples.length});if(!t){this.lastSampleLoaded=!0;return}let i=this.loadedSamples[this.loadedSamples.length-1],r={blockOffset:i?i.blockOffset+i.blockSize:0,blockSize:t.blockSize,byteOffset:e,byteSize:t.size};if(this.lastLoadedPos=this.lastLoadedPos+t.size,this.loadedSamples.push(r),t.isLastFrame){this.lastSampleLoaded=!0;return}}}class et{constructor(e){this.demuxer=e}getId(){return 1}getNumber(){return 1}getCodec(){return"flac"}getInternalCodecId(){return null}getNumberOfChannels(){return(0,m.hu)(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,m.hu)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return m.n3}getTimeResolution(){return(0,m.hu)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getDisposition(){return{...b.CN}}async getFirstTimestamp(){return 0}async getDecoderConfig(){return(0,m.hu)(this.demuxer.audioInfo),{codec:"flac",numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate,description:this.demuxer.audioInfo.description}}async getPacket(e,t){if((0,m.hu)(this.demuxer.audioInfo),e<0)throw Error("Timestamp cannot be negative");let i=await this.demuxer.readingMutex.acquire();try{for(;;){let i=(0,m.sF)(this.demuxer.loadedSamples,e,e=>e.blockOffset/this.demuxer.audioInfo.sampleRate);if(-1===i){await this.demuxer.advanceReader();continue}let r=this.demuxer.loadedSamples[i],a=r.blockOffset/this.demuxer.audioInfo.sampleRate,s=r.blockSize/this.demuxer.audioInfo.sampleRate;if(a+s<=e){if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(this.demuxer.loadedSamples.length-1,t);await this.demuxer.advanceReader();continue}return this.getPacketAtIndex(i,t)}}finally{i()}}async getNextPacket(e,t){let i=await this.demuxer.readingMutex.acquire();try{let i=e.sequenceNumber+1;if(this.demuxer.lastSampleLoaded&&i>=this.demuxer.loadedSamples.length)return null;for(;i>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(i,t)}finally{i()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}async getPacketAtIndex(e,t){let i;let r=this.demuxer.loadedSamples[e];if(!r)return null;if(t.metadataOnly)i=f.L;else{let e=this.demuxer.reader.requestSlice(r.byteOffset,r.byteSize);if(e instanceof Promise&&(e=await e),!e)return null;i=(0,k.sB)(e,r.byteSize)}
4(0,m.hu)(this.demuxer.audioInfo);let a=r.blockOffset/this.demuxer.audioInfo.sampleRate,s=r.blockSize/this.demuxer.audioInfo.sampleRate;return new f.H(i,"key",a,s,e,r.byteSize)}async getFirstPacket(e){for(;0===this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(0,e)}}var ei=i(77678);class er extends u.k{constructor(e){super(e),this.metadataPromise=null,this.elementaryStreams=[],this.tracks=[],this.packetOffset=0,this.packetStride=-1,this.sectionEndPositions=[],this.seekChunkSize=5242880,this.minReferencePointByteDistance=-1,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=ei.Of+16+1,t=this.reader.requestSlice(0,e);t instanceof Promise&&(t=await t),(0,m.hu)(t);let i=(0,k.sB)(t,e);if(71===i[0]&&71===i[ei.Of])this.packetOffset=0,this.packetStride=ei.Of;else if(71===i[0]&&71===i[ei.Of+16])this.packetOffset=0,this.packetStride=ei.Of+16;else if(71===i[4]&&71===i[4+ei.Of])this.packetOffset=4,this.packetStride=ei.Of;else throw Error("Unreachable.");this.minReferencePointByteDistance=256*this.packetStride;let r=this.packetOffset,a=null,s=!1,n=!1;for(;;){let e=await this.readPacketHeader(r);if(!e)break;if(0===e.payloadUnitStartIndicator){r+=this.packetStride;continue}let t=await this.readSection(r,!0,!n);if(!t)break;let i=!1;if(!n&&0!==t.pid&&!(0===t.payload[0]&&0===t.payload[1]&&1===t.payload[2])){let e=new m.Zi(t.payload),r=e.readAlignedByte();e.skipBits(8*r),i=2===e.readBits(8)}if(0!==t.pid||s){if((t.pid===a||i)&&!n){let e=new m.Zi(t.payload),i=e.readAlignedByte();e.skipBits(8*i),e.skipBits(12);let r=e.readBits(12);e.skipBits(43),e.readBits(13),e.skipBits(6);let a=e.readBits(10);for(e.skipBits(8*a);8*(r+3)-e.pos>32;){let t=e.readBits(8);e.skipBits(3);let i=e.readBits(13);e.skipBits(6);let r=e.readBits(10),a=e.pos+8*r,s=!1,n=!1;for(;e.pos<a;){let t=e.readBits(8),i=e.readBits(8);106===t?s=!0:(122===t||204===t)&&(n=!0),e.skipBits(8*i)}let o=null;switch(t){case 3:case 4:case 15:o={type:"audio",codec:15===t?"aac":"mp3",aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1};break;case 27:case 36:o={type:"video",codec:27===t?"avc":"hevc",avcCodecInfo:null,hevcCodecInfo:null,colorSpace:{primaries:null,transfer:null,matrix:null,fullRange:null},width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,reorderSize:-1};break;case 129:o={type:"audio",codec:"ac3",aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1};break;case 135:o={type:"audio",codec:"eac3",aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1};break;case 6:n?o={type:"audio",codec:"eac3",aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1}:s&&(o={type:"audio",codec:"ac3",aacCodecInfo:null,numberOfChannels:-1,sampleRate:-1});break;default:console.warn(`Unsupported stream_type 0x${t.toString(16)}; ignoring stream.`)}o&&this.elementaryStreams.push({demuxer:this,pid:i,streamType:t,initialized:!1,firstSection:null,info:o,referencePesPackets:[]})}n=!0}else{let e=this.elementaryStreams.find(e=>e.pid===t.pid);if(e&&!e.initialized){let i=es(t);if(!i)throw Error(`Couldn't read first PES packet for Elementary Stream with PID ${e.pid}`);if(e.firstSection=t,"video"===e.info.type){if("avc"===e.info.codec){if(e.info.avcCodecInfo=(0,d.E3)(i.data),!e.info.avcCodecInfo)throw Error("Invalid AVC video stream; could not extract AVCDecoderConfigurationRecord from first packet.");let t=e.info.avcCodecInfo.sequenceParameterSets[0];(0,m.hu)(t);let r=(0,d.d$)(t);e.info.width=r.displayWidth,e.info.height=r.displayHeight,r.pixelAspectRatio.num>r.pixelAspectRatio.den?(e.info.squarePixelWidth=Math.round(e.info.width*r.pixelAspectRatio.num/r.pixelAspectRatio.den),e.info.squarePixelHeight=e.info.height):(e.info.squarePixelWidth=e.info.width,e.info.squarePixelHeight=Math.round(e.info.height*r.pixelAspectRatio.den/r.pixelAspectRatio.num)),e.info.colorSpace={primaries:m.vX[r.colourPrimaries],transfer:m.LT[r.transferCharacteristics],matrix:m.KE[r.matrixCoefficients],fullRange:!!r.fullRangeFlag},e.info.reorderSize=r.maxDecFrameBuffering,e.initialized=!0}else if("hevc"===e.info.codec){if(e.info.hevcCodecInfo=(0,d.BW)(i.data),!e.info.hevcCodecInfo)throw Error("Invalid HEVC video stream; could not extract HVCDecoderConfigurationRecord from first packet.");let t=e.info.hevcCodecInfo.arrays.find(e=>e.nalUnitType===d.$9.SPS_NUT).nalUnits[0];(0,m.hu)(t);let r=(0,d.Nt)(t);e.info.width=r.displayWidth,e.info.height=r.displayHeight,r.pixelAspectRatio.num>r.pixelAspectRatio.den?(e.info.squarePixelWidth=Math.round(e.info.width*r.pixelAspectRatio.num/r.pixelAspectRatio.den),e.info.squarePixelHeight=e.info.height):(e.info.squarePixelWidth=e.info.width,e.info.squarePixelHeight=Math.round(e.info.height*r.pixelAspectRatio.den/r.pixelAspectRatio.num)),e.info.colorSpace
4={primaries:m.vX[r.colourPrimaries],transfer:m.LT[r.transferCharacteristics],matrix:m.KE[r.matrixCoefficients],fullRange:!!r.fullRangeFlag},e.info.reorderSize=r.maxDecFrameBuffering,e.initialized=!0}else throw Error("Unhandled.")}else if("aac"===e.info.codec){let t=k.CJ.tempFromBytes(i.data),r=(0,X.gM)(t);if(!r)throw Error("Invalid AAC audio stream; could not read ADTS frame header from first packet.");e.info.aacCodecInfo={isMpeg2:!1,objectType:r.objectType},e.info.numberOfChannels=l.y7[r.channelConfiguration],e.info.sampleRate=l.v6[r.samplingFrequencyIndex],e.initialized=!0}else if("mp3"===e.info.codec){let t=(0,k.dd)(k.CJ.tempFromBytes(i.data)),r=(0,U.hE)(t,i.data.byteLength);if(!r.header)throw Error("Invalid MP3 audio stream; could not read frame header from first packet.");e.info.numberOfChannels=3===r.header.channel?1:2,e.info.sampleRate=r.header.sampleRate,e.initialized=!0}else if("ac3"===e.info.codec){let t=(0,d.Zm)(i.data);if(!t)throw Error("Invalid AC-3 audio stream; could not read sync frame from first packet.");if(3===t.fscod)throw Error("Invalid AC-3 audio stream; reserved sample rate code found in first packet.");e.info.numberOfChannels=d.KA[t.acmod]+t.lfeon,e.info.sampleRate=w._[t.fscod],e.initialized=!0}else if("eac3"===e.info.codec){let t=(0,d.M3)(i.data);if(!t)throw Error("Invalid E-AC-3 audio stream; could not read sync frame from first packet.");let r=(0,d.ir)(t);if(null===r)throw Error("Invalid E-AC-3 audio stream; reserved sample rate code found in first packet.");e.info.numberOfChannels=(0,d.AH)(t),e.info.sampleRate=r,e.initialized=!0}else throw Error("Unhandled.")}}}else{let e=new m.Zi(t.payload),i=e.readAlignedByte();e.skipBits(8*i),e.skipBits(14);let r=e.readBits(10);for(e.skipBits(40);8*(r+3)-e.pos>32;){let t=e.readBits(16);if(e.skipBits(3),0!==t){if(null!==a)throw Error("Only files with a single program are supported.");a=e.readBits(13)}}if(null===a)throw Error("Program Association Table must link to a Program Map Table.");s=!0}if(n&&this.elementaryStreams.every(e=>e.initialized))break;r+=this.packetStride}if(!n){if(!s)throw Error("No Program Association Table found in the file.");throw Error("No Program Map Table found in the file.")}for(let e of this.elementaryStreams)"video"===e.info.type?this.tracks.push(new h.mC(this.input,new eo(e))):this.tracks.push(new h.Rq(this.input,new ec(e)))})()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return{}}async computeDuration(){let e=await this.getTracks();return Math.max(0,...await Promise.all(e.map(e=>e.computeDuration())))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(e=>e.getCodecParameterString()));return(0,ei.Qm)(t)}async readSection(e,t,i=!1){let r,a=e,s=e,n=[],o=0,c=null,l=!0,d=0;for(;;){let e=await this.readPacket(s);if(s+=this.packetStride,!e)break;if(c){if(e.pid!==c.pid){if(!i)continue;break}if(1===e.payloadUnitStartIndicator)break}else{if(0===e.payloadUnitStartIndicator)break;c=e}let r=!!(2&e.adaptationFieldControl),u=!!(1&e.adaptationFieldControl),h=0;if(r&&(h=1+e.body[0],e===c&&h>1&&(d=e.body[1]>>6&1)),u&&(0===h?(n.push(e.body),o+=e.body.byteLength):(n.push(e.body.subarray(h)),o+=e.body.byteLength-h)),a=s,!t&&o>=64||-1!==(0,m.Jy)(this.sectionEndPositions,a,e=>e)){l=!1;break}}if(l){let e=(0,m.sF)(this.sectionEndPositions,a,e=>e);this.sectionEndPositions.splice(e+1,0,a)}if(!c)return null;if(1===n.length)r=n[0];else{r=new Uint8Array(n.reduce((e,t)=>e+t.length,0));let e=0;for(let t of n)r.set(t,e),e+=t.length}return{startPos:e,endPos:t?a:null,pid:c.pid,payload:r,randomAccessIndicator:d}}async readPacketHeader(e){let t=this.reader.requestSlice(e,4);if(t instanceof Promise&&(t=await t),!t)return null;if(71!==(0,k.s3)(t))throw Error("Invalid TS packet sync byte. Likely an internal bug, please report this file.");let i=(0,k.jG)(t);return{payloadUnitStartIndicator:i>>14&1,pid:8191&i,adaptationFieldControl:(0,k.s3)(t)>>4&3}}async readPacket(e){let t=this.reader.requestSlice(e,ei.Of);if(t instanceof Promise&&(t=await t),!t)return null;let i=(0,k.sB)(t,ei.Of);if(71!==i[0])throw Error("Invalid TS packet sync byte. Likely an internal bug, please report this file.");let r=(i[1]<<8)+i[2];return{payloadUnitStartIndicator:r>>14&1,pid:8191&r,adaptationFieldControl:i[3]>>4&3,body:i.subarray(4)}}}let ea=e=>{if(e.payload.byteLength<3)return null;let t=new m.Zi(e.payload);if(1!==t.readBits(24))return null;let i=t.readBits(8);if(t.skipBits(16),188===i||190===i||191===i||240===i||241===i||255===i||242===i||248===i)return null;t.skipBits(8);let r=t.readBits(2);t.skipBits(14);let a=0;if(2===r||3===r)t.skipBits(4),a+=1073741824*t.readBits(3),t.skipBits(1),a+=32768*t.readBits(15),t.skipBits(1),a+=t.readBits(15);else throw Error("PES packets without PTS are not currently supported. If you think this file should be supported, please report it.");return{sectionStartPos:e.startPos,sectionEndPos:e.endPos,pts:a,randomAccessIndicator:e.randomAccessIndicator}},es=e=>{(0,m.hu)(null!==e.endPos);let t=ea(e);if(!t)return null;let i=new m.Zi(e.payload);i.skipBits(32);let r=i.readBits(16);i.skipBits(16);let a=i.readBits(8),s=i.pos+8*a;i.pos=s;let n=s/8;(0,m.hu)(Number.isInteger(n));let o=e.payload.subarray(n,r>0?6+r:e.payload.byteLength);return{...t,data:o}};class en{constructor(e){this.elementaryStream=e,this.packetBuffers=new WeakMap,this.packetSectionStarts=new WeakMap}getId(){return this.elementaryStream.pid}getNumber(){let e=this.elementaryStream.demuxer,t=this.elementaryStream.info.type,i=0;for(let r of e.tracks)if(r.type===t&&i++,(0,m.hu)(r._backing instanceof en),r._backing.elementaryStream===this.elementaryStream)break;return i}getCodec(){throw Error("Not implemented on base class.")}getInternalCodecId(){return this.elementaryStream.streamType}getName(){return null}getLanguageCode(){return m.n3}getDisposition(){return b.CN}getTimeResolution(){return ei.DE}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}createEncodedPacket(e,t,i){let r;return r=this.allPacketsAreKeyPackets()?"key":1===e.randomAccessIndicator?"key":"delta",new f.H(i.metadataOnly?f.L:e.data,r,e.pts/ei.DE,Math.max(t/ei.DE,0),e.sequenceNumber,e.data.byteLength)}async getFirstPacket(e){let t=this.elementaryStream.firstSection;(0,m.hu)(t);let i=es(t);(0,m.hu)(i);let r=new eh(this,new eu(this.elementaryStream,i)),a=await r.readNext(
4);if(!a)return null;let s=this.createEncodedPacket(a.packet,a.duration,e);return this.packetBuffers.set(s,r),this.packetSectionStarts.set(s,a.packet.sectionStartPos),s}async getNextPacket(e,t){let i=this.packetBuffers.get(e);if(i){let r=await i.readNext();if(!r)return null;this.packetBuffers.delete(e);let a=this.createEncodedPacket(r.packet,r.duration,t);return this.packetBuffers.set(a,i),this.packetSectionStarts.set(a,r.packet.sectionStartPos),a}let r=this.packetSectionStarts.get(e);if(void 0===r)throw Error("Packet was not created from this track.");let a=this.elementaryStream.demuxer,s=await a.readSection(r,!0);(0,m.hu)(s);let n=es(s);(0,m.hu)(n),i=new eh(this,new eu(this.elementaryStream,n));let o=e.sequenceNumber;for(;;){let e=await i.readNext();if(!e)return null;if(e.packet.sequenceNumber>o){let r=this.createEncodedPacket(e.packet,e.duration,t);return this.packetBuffers.set(r,i),this.packetSectionStarts.set(r,e.packet.sectionStartPos),r}}}async getNextKeyPacket(e,t){let i=e;for(;;){if(!(i=await this.getNextPacket(i,t)))return null;if("key"===i.type)return i}}getPacket(e,t){return this.doPacketLookup(e,!1,t)}getKeyPacket(e,t){return this.doPacketLookup(e,!0,t)}async doPacketLookup(e,t,i){let r;let a=(0,m.F3)(e*ei.DE),s=this.elementaryStream.demuxer,{reader:n,seekChunkSize:o}=s,c=this.elementaryStream.pid,l=async(e,t)=>{let i=e;for(;i<t;){let e=await s.readPacketHeader(i);if(!e)break;if(e.pid===c&&1===e.payloadUnitStartIndicator){let e=await s.readSection(i,!1);if(!e)return null;let t=ea(e);if(t)return t}i+=s.packetStride}return null},d=this.elementaryStream.firstSection;(0,m.hu)(d);let u=ea(d);if((0,m.hu)(u),a<u.pts)return null;let h=this.elementaryStream.referencePesPackets,f=(0,m.sF)(h,a,e=>e.pts),p=-1!==f?h[f]:null;if(p&&a-p.pts<ei.DE/2)r=p.sectionStartPos;else{let e=0;if(null!==n.fileSize){let t=Math.ceil(n.fileSize/o);if(t>1){let i=0,r=t-1;for(e=0;i<=r;){let t=Math.floor((i+r)/2),n=(0,m.p0)(t*o,s.packetStride)+u.sectionStartPos,c=n+o,d=await l(n,c);if(!d){r=t-1;continue}d.pts<=a?(e=t,i=t+1):r=t-1}}}r=(0,m.p0)(e*o,s.packetStride)+u.sectionStartPos}let g=await l(r,n.fileSize??1/0);g||(g=u);let k=this.getReorderSize(),b=async(e,t)=>{let r=await s.readSection(e,!0);(0,m.hu)(r);let n=es(r);(0,m.hu)(n);let o=new eh(this,new eu(this.elementaryStream,n));for(;!((m.Z$(o.presentationOrderPackets)?.pts??-1/0)>=a)&&await o.readNextPacket(););let c=(0,m.qr)(o.presentationOrderPackets,t);if(-1===c)return null;let l=o.presentationOrderPackets[c],d=0===c?0:l.pts-o.presentationOrderPackets[c-1].pts;for(;o.decodeOrderPackets[0]!==l;)o.decodeOrderPackets.shift();o.lastDuration=d;let u=await o.readNext();(0,m.hu)(u);let h=this.createEncodedPacket(u.packet,u.duration,i);return this.packetBuffers.set(h,o),this.packetSectionStarts.set(h,u.packet.sectionStartPos),h};if(!t||this.allPacketsAreKeyPackets()){e:for(;;){let e=g.sectionStartPos+s.packetStride;for(;;){let t=await s.readPacketHeader(e);if(!t)break e;if(t.pid===c&&1===t.payloadUnitStartIndicator){let t=await s.readSection(e,!1);if(t){let e=ea(t);if(e){if(e.pts>a)break e;g=e,el(this.elementaryStream,e);break}}}e+=s.packetStride}}e:for(let e=0;e<k;e++){let e=g.sectionStartPos-s.packetStride;for(;e>=s.packetOffset;){let t=await s.readPacketHeader(e);if(!t)break e;if(t.pid===c&&1===t.payloadUnitStartIndicator){let t=await s.readSection(e,!1);if(t){let e=ea(t);if(e){g=e;break}}}e-=s.packetStride}}return b(g.sectionStartPos,e=>e.pts<=a)}{let e=r,t=null;for(;;){let i,r=null,d=e<=u.sectionStartPos;d?(i=u,r=u):i=await l(e,n.fileSize??1/0);let h=!1,f=0;e:for(;i&&(null===t||!(i.sectionStartPos>=t))&&(1===i.randomAccessIndicator&&i.pts<=a&&(r=i),i.pts>a&&(h=!0),!(h&&++f>=k));){let e=i.sectionStartPos+s.packetStride;for(;;){let t=await s.readPacketHeader(e);if(!t)break e;if(t.pid===c&&1===t.payloadUnitStartIndicator){let t=await s.readSection(e,!1);if(t&&(i=ea(t))){el(this.elementaryStream,i);break}}e+=s.packetStride}}if(r){let e=r;if(0===f)e:for(let t=0;t<k-1;t++){let t=e.sectionStartPos-s.packetStride;for(;t>=s.packetOffset;){let i=await s.readPacketHeader(t);if(!i)break e;if(i.pid===c&&1===i.payloadUnitStartIndicator){let i=await s.readSection(t,!1);if(i){let t=ea(i);if(t){e=t;break}}}t-=s.packetStride}}let t=await b(e.sectionStartPos,e=>e.pts<=a&&1===e.randomAccessIndicator);return(0,m.hu)(t),t}(0,m.hu)(!d),t=e,e=Math.max((0,m.p0)(e-u.sectionStartPos-o,s.packetStride)+u.sectionStartPos,u.sectionStartPos)}}}}class eo extends en{constructor(e){super(e),this.elementaryStream=e,this.decoderConfig={codec:(0,l.Ah)({width:this.elementaryStream.info.width,height:this.elementaryStream.info.height,codec:this.elementaryStream.info.codec,codecDescription:null,colorSpace:this.elementaryStream.info.colorSpace,avcType:1,avcCodecInfo:this.elementaryStream.info.avcCodecInfo,hevcCodecInfo:this.elementaryStream.info.hevcCodecInfo,vp9CodecInfo:null,av1CodecInfo:null}
4),codedWidth:this.elementaryStream.info.width,codedHeight:this.elementaryStream.info.height,displayAspectWidth:this.elementaryStream.info.squarePixelWidth,displayAspectHeight:this.elementaryStream.info.squarePixelHeight,colorSpace:this.elementaryStream.info.colorSpace}}getCodec(){return this.elementaryStream.info.codec}getCodedWidth(){return this.elementaryStream.info.width}getCodedHeight(){return this.elementaryStream.info.height}getSquarePixelWidth(){return this.elementaryStream.info.squarePixelWidth}getSquarePixelHeight(){return this.elementaryStream.info.squarePixelHeight}getRotation(){return 0}async getColorSpace(){return this.elementaryStream.info.colorSpace}async canBeTransparent(){return!1}async getDecoderConfig(){return this.decoderConfig}allPacketsAreKeyPackets(){return!1}getReorderSize(){return this.elementaryStream.info.reorderSize}}class ec extends en{constructor(e){super(e),this.elementaryStream=e}getCodec(){return this.elementaryStream.info.codec}getNumberOfChannels(){return this.elementaryStream.info.numberOfChannels}getSampleRate(){return this.elementaryStream.info.sampleRate}async getDecoderConfig(){return{codec:(0,l.YV)({codec:this.elementaryStream.info.codec,codecDescription:null,aacCodecInfo:this.elementaryStream.info.aacCodecInfo}),numberOfChannels:this.elementaryStream.info.numberOfChannels,sampleRate:this.elementaryStream.info.sampleRate}}allPacketsAreKeyPackets(){return!0}getReorderSize(){return 1}}let el=(e,t)=>
4{let i=e.referencePesPackets,r=(0,m.sF)(i,t.sectionStartPos,e=>e.sectionStartPos);if(r>=0){let a=i[r];if(t.pts<=a.pts)return!1;let s=e.demuxer.minReferencePointByteDistance;if(t.sectionStartPos-a.sectionStartPos<s)return!1;if(r<i.length-1){let e=i[r+1];if(e.pts<t.pts||e.sectionStartPos-t.sectionStartPos<s)return!1}}return i.splice(r+1,0,t),!0},ed=async e=>{(0,m.hu)(!e.suppliedPacket);let t=e.elementaryStream;if("video"===t.info.type){let i=t.info.codec;if("avc"!==i&&"hevc"!==i)throw Error("Unhandled.");let r=null;for(;;){let t=e.ensureBuffered(1024);if(t instanceof Promise&&(t=await t),0===t)break;let a=e.currentPos,s=e.readBytes(t),n=s.byteLength,o=0;for(;o<n;){let t=s.indexOf(0,o);if(-1===t||t>=n)break;let c=a+(o=t);if(o+4>=n){e.seekTo(c);break}let l=s[o+1],u=s[o+2],h=s[o+3],m=0,f=null;if(0===l&&0===u&&1===h?(m=4,f=s[o+4]):0===l&&1===u&&(m=3,f=h),0===m){o++;continue}if(null===r){r=c,o+=m;continue}if(null!==f){let t="avc"===i?(0,d.Bc)(f):(0,d.UB)(f);if("avc"===i?t===d.vY.AUD:t===d.$9.AUD_NUT){let t=c-r;return e.seekTo(r),e.supplyPacket(t,0)}}o+=m}if(t<1024)break}if(null!==r){let t=e.endPos-r;return e.seekTo(r),e.supplyPacket(t,0)}}else{let i=t.info.codec;for(;;){let r=e.ensureBuffered(128);r instanceof Promise&&(r=await r);let a=e.currentPos;for(;e.currentPos-a<r;){let r=e.readU8();if("aac"===i){if(255!==r)continue;e.skip(-1);let i=e.currentPos,a=e.ensureBuffered(X.MB);if(a instanceof Promise&&(a=await a),a<X.MB)return;let s=e.readBytes(X.MB),n=(0,X.gM)(k.CJ.tempFromBytes(s));if(n){e.seekTo(i);let r=e.ensureBuffered(n.frameLength);return r instanceof Promise&&(r=await r),e.supplyPacket(r,Math.round(1024*ei.DE/t.info.sampleRate))}e.seekTo(i+1)}else if("mp3"===i){if(255!==r)continue;e.skip(-1);let i=e.currentPos,a=e.ensureBuffered(U.o6);if(a instanceof Promise&&(a=await a),a<U.o6)return;let s=e.readBytes(U.o6),n=(0,m.NK)(s).getUint32(0),o=(0,U.hE)(n,null);if(o.header){e.seekTo(i);let r=e.ensureBuffered(o.header.totalSize);r instanceof Promise&&(r=await r);let a=o.header.audioSamplesInFrame*ei.DE/t.info.sampleRate;return e.supplyPacket(r,Math.round(a))}e.seekTo(i+1)}else if("ac3"===i){if(11!==r)continue;e.skip(-1);let i=e.currentPos,a=e.ensureBuffered(5);if(a instanceof Promise&&(a=await a),a<5)return;let s=e.readBytes(5);if(11!==s[0]||119!==s[1]){e.seekTo(i+1);continue}let n=s[4]>>6,o=63&s[4];if(3===n||o>37){e.seekTo(i+1);continue}let c=d.P0[3*o+n];(0,m.hu)(void 0!==c),e.seekTo(i),(a=e.ensureBuffered(c))instanceof Promise&&(a=await a);let l=Math.round(d.Be*ei.DE/t.info.sampleRate);return e.supplyPacket(a,l)}else if("eac3"===i){if(11!==r)continue;e.skip(-1);let i=e.currentPos,a=e.ensureBuffered(5);if(a instanceof Promise&&(a=await a),a<5)return;let s=e.readBytes(5);if(11!==s[0]||119!==s[1]){e.seekTo(i+1);continue}let n=(((7&s[2])<<8|s[3])+1)*2,o=3==s[4]>>6?3:s[4]>>4&3,c=d.A8[o];e.seekTo(i),(a=e.ensureBuffered(n))instanceof Promise&&(a=await a);let l=Math.round(256*c*ei.DE/t.info.sampleRate);return e.supplyPacket(a,l)}else throw Error("Unhandled.")}if(r<128)break}}};class eu{constructor(e,t){this.currentPos=0,this.pesPackets=[],this.currentPesPacketIndex=0,this.currentPesPacketPos=0,this.endPos=0,this.nextPts=0,this.suppliedPacket=null,this.elementaryStream=e,this.pid=e.pid,this.demuxer=e.demuxer,this.startingPesPacket=t}clone(){let e=new eu(this.elementaryStream,this.startingPesPacket);return e.currentPos=this.currentPos,e.pesPackets=[...this.pesPackets],e.currentPesPacketIndex=this.currentPesPacketIndex,e.currentPesPacketPos=this.currentPesPacketPos,e.endPos=this.endPos,e.nextPts=this.nextPts,e}ensureBuffered(e){let t=this.endPos-this.currentPos;return t>=e?e:this.bufferData(e-t).then(()=>Math.min(this.endPos-this.currentPos,e))}getCurrentPesPacket(){let e=this.pesPackets[this.currentPesPacketIndex];return(0,m.hu)(e),e}async bufferData(e){let t=this.endPos+e;for(;this.endPos<t;){let e;if(0===this.pesPackets.length)e=this.startingPesPacket;else{let t=(0,m.Z$)(this.pesPackets).sectionEndPos;for((0,m.hu)(null!==t);;){let i=await this.demuxer.readPacketHeader(t);if(!i)return;if(i.pid===this.pid){let i=await this.demuxer.readSection(t,!0);if(!i)return;let r=es(i);if(r){e=r;break}}t+=this.demuxer.packetStride}}this.pesPackets.push(e),this.endPos+=e.data.byteLength,1===this.pesPackets.length&&(this.nextPts=e.pts)}}readBytes(e){let t=this.getCurrentPesPacket(),i=this.currentPos-this.currentPesPacketPos,r=i+e;if(this.currentPos+=e,r<=t.data.byteLength)return t.data.subarray(i,r);let a=new Uint8Array(e);a.set(t.data.subarray(i));let s=t.data.byteLength-i;for(;;){this.advanceCurrentPacket();let t=this.getCurrentPesPacket(),i=e-s;if(i<=t.data.byteLength){a.set(t.data.subarray(0,i),s);break}a.set(t.data,s),s+=t.data.byteLength}return a}readU8(){let e=this.getCurrentPesPacket(),t=this.currentPos-this.currentPesPacketPos;return(this.currentPos++,t<e.data.byteLength)?e.data[t]:(this.advanceCurrentPacket(),(e=this.getCurrentPesPacket()).data[0])}seekTo(e){if(e!==this.currentPos){if(e<this.currentPos)for(;e<this.currentPesPacketPos;){this.currentPesPacketIndex--;let e=this.getCurrentPesPacket();this.currentPesPacketPos-=e.data.byteLength,this.nextPts=e.pts}else for(;;){let t=this.getCurrentPesPacket();if(e<this.currentPesPacketPos+t.data.byteLength)break;this.currentPesPacketPos+=t.data.byteLength,this.currentPesPacketIndex++,this.nextPts=this.getCurrentPesPacket().pts}this.currentPos=e}}skip(e){this.seekTo(this.currentPos+e)}advanceCurrentPacket(){this.currentPesPacketPos+=this.getCurrentPesPacket().data.byteLength,this.currentPesPacketIndex++,this.nextPts=this.getCurrentPesPacket().pts}supplyPacket(e,t){let i=this.getCurrentPesPacket();el(this.elementaryStream,i);let r=this.nextPts;this.nextPts+=t;let a=i.sectionStartPos,s=a+(this.currentPos-this.currentPesPacketPos),n=this.readBytes(e),o=i.randomAccessIndicator;(0,m.hu)(this.elementaryStream.firstSection),i.sectionStartPos===this.elementaryStream.firstSection.startPos&&(o=1),this.suppliedPacket={pts:r,data:n,sequenceNumber:s,sectionStartPos:a,randomAccessIndicator:o},this.pesPackets.splice(0,this.currentPesPacketIndex),this.currentPesPacketIndex=0}}class eh{constructor(e,t){this.decodeOrderPackets=[],this.reorderBuffer=[],this.presentationOrderPackets=[],this.reachedEnd=!1,this.lastDuration=0,this.backing=e,this.context=t,this.reorderSize=e.getReorderSize(),(0,m.hu)(this.reorderSize>=0)}
4async readNext(){let e;if(0===this.decodeOrderPackets.length&&!await this.readNextPacket())return null;await this.ensureCurrentPacketHasNext();let t=this.decodeOrderPackets[0],i=this.presentationOrderPackets.indexOf(t);for((0,m.hu)(-1!==i),i===this.presentationOrderPackets.length-1?e=this.lastDuration:(e=this.presentationOrderPackets[i+1].pts-t.pts,this.lastDuration=e),this.decodeOrderPackets.shift();this.presentationOrderPackets.length>0;){let e=this.presentationOrderPackets[0];if(this.decodeOrderPackets.includes(e))break;this.presentationOrderPackets.shift()}return{packet:t,duration:e}}async readNextPacket(){let e;return!this.reachedEnd&&((this.context.suppliedPacket||await ed(this.context),e=this.context.suppliedPacket,this.context.suppliedPacket=null,e)?(this.decodeOrderPackets.push(e),this.processPacketThroughReorderBuffer(e),!0):(this.reachedEnd=!0,this.flushReorderBuffer(),!1))}async ensureCurrentPacketHasNext(){let e=this.decodeOrderPackets[0];for((0,m.hu)(e);;){let t=this.presentationOrderPackets.indexOf(e);if(-1!==t&&t<=this.presentationOrderPackets.length-2||!await this.readNextPacket())break}}processPacketThroughReorderBuffer(e){if(this.reorderBuffer.push(e),this.reorderBuffer.length>=this.reorderSize){let e=0;for(let t=1;t<this.reorderBuffer.length;t++)this.reorderBuffer[t].pts<this.reorderBuffer[e].pts&&(e=t);let t=this.reorderBuffer.splice(e,1)[0];this.presentationOrderPackets.push(t)}}flushReorderBuffer(){this.reorderBuffer.sort((e,t)=>e.pts-t.pts),this.presentationOrderPackets.push(...this.reorderBuffer),this.reorderBuffer.length=0}}class em{}class ef extends em{async _getMajorBrand(e){let t=e._reader.requestSlice(0,12);return(t instanceof Promise&&(t=await t),t)?(t.skip(4),"ftyp"!==(0,k.yn)(t,4))?null:(0,k.yn)(t,4):null}_createDemuxer(e){return new y(e)}}class ep extends ef{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&"qt  "!==t}get name(){return"MP4"}get mimeType(){return"video/mp4"}}class eg extends ef{async _canReadInput(e){return"qt  "===await this._getMajorBrand(e)}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}}class ek extends em{async isSupportedEBMLOfDocType(e,t){let i=e._reader.requestSlice(0,A.nO);if(i instanceof Promise&&(i=await i),!i)return!1;let r=(0,A.dp)(i);if(null===r||r<1||r>8||(0,A.ts)(i,r)!==A.RG.EBML)return!1;let a=(0,A.Jv)(i);if("number"!=typeof a)return!1;let s=e._reader.requestSlice(i.filePos,a);if(s instanceof Promise&&(s=await s),!s)return!1;let n=i.filePos;for(;s.filePos<=n+a-A.FS;){let e=(0,A.$s)(s);if(!e)break;let{id:i,size:r}=e,a=s.filePos;if(void 0===r)return!1;switch(i){case A.RG.EBMLVersion:case A.RG.EBMLReadVersion:if(1!==(0,A.ts)(s,r))return!1;break;case A.RG.DocType:if((0,A.SK)(s,r)!==t)return!1;break;case A.RG.DocTypeVersion:if((0,A.ts)(s,r)>4)return!1}s.filePos=a+r}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new M(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}}class eb extends ek{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}}class ew extends em{async _canReadInput(e){let t=0;for(;;){let i=e._reader.requestSlice(t,N.sA);if(i instanceof Promise&&(i=await i),!i)break;let r=(0,N.wt)(i);if(!r)break;t=i.filePos+r.size}let i=await L(e._reader,t,t+4096);if(!i)return!1;let r=i.header,a=(0,U.Bx)(r.mpegVersionId,r.channel),s=e._reader.requestSlice(i.startPos+a,4);if(s instanceof Promise&&(s=await s),!s)return!1;let n=(0,k.dd)(s);if(n===U.i8||n===U.H_)return!0;t=i.startPos+i.header.totalSize;let o=await L(e._reader,t,t+U.o6);if(!o)return!1;let c=o.header;return r.channel===c.channel&&r.sampleRate===c.sampleRate}_createDemuxer(e){return new V(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}}class ey extends em{async _canReadInput(e){let t=e._reader.requestSlice(0,12);if(t instanceof Promise&&(t=await t),!t)return!1;let i=(0,k.yn)(t,4);return("RIFF"===i||"RIFX"===i||"RF64"===i)&&(t.skip(4),"WAVE"===(0,k.yn)(t,4))}_createDemuxer(e){return new Q.Y(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}}
4class eT extends em{async _canReadInput(e){let t=e._reader.requestSlice(0,4);return t instanceof Promise&&(t=await t),!!t&&"OggS"===(0,k.yn)(t,4)}_createDemuxer(e){return new G(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}}class eS extends em{async _canReadInput(e){let t=e._reader.requestSlice(0,4);return t instanceof Promise&&(t=await t),!!t&&"fLaC"===(0,k.yn)(t,4)}get name(){return"FLAC"}get mimeType(){return"audio/flac"}_createDemuxer(e){return new ee(e)}}class ev extends em{async _canReadInput(e){let t=0;for(;;){let i=e._reader.requestSlice(t,N.sA);if(i instanceof Promise&&(i=await i),!i)break;let r=(0,N.wt)(i);if(!r)break;t=i.filePos+r.size}let i=e._reader.requestSliceRange(t,X.Ls,X.MB);if(i instanceof Promise&&(i=await i),!i)return!1;let r=(0,X.gM)(i);if(!r||(t+=r.frameLength,(i=e._reader.requestSliceRange(t,X.Ls,X.MB))instanceof Promise&&(i=await i),!i))return!1;let a=(0,X.gM)(i);return!!a&&r.objectType===a.objectType&&r.samplingFrequencyIndex===a.samplingFrequencyIndex&&r.channelConfiguration===a.channelConfiguration}_createDemuxer(e){return new Z(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}}class eP extends em{async _canReadInput(e){let t=ei.Of+16+1,i=e._reader.requestSlice(0,t);if(i instanceof Promise&&(i=await i),!i)return!1;let r=(0,k.sB)(i,t);return 71===r[0]&&71===r[ei.Of]||71===r[0]&&71===r[ei.Of+16]||71===r[4]&&71===r[4+ei.Of]}_createDemuxer(e){return new er(e)}get name(){return"MPEG Transport Stream"}get mimeType(){return"video/MP2T"}}let eC=new ep,ex=new eg,eI=new ek,eE=new eb,eB=new ew,e_=new ey,eA=new eT,eR=new ev,eF=[eC,ex,eI,eE,e_,eA,new eS,eB,eR,new eP]},39510:function(e,t,i){i.d(t,{Rq:function(){return d},mC:function(){return l},u:function(){return c}});var r=i(97229),a=i(35206),s=i(51887),n=i(73272),o=i(17930);class c{constructor(e,t){this.input=e,this._backing=t}isVideoTrack(){return this instanceof l}isAudioTrack(){return this instanceof d}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}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 t=new s.a6(this),i=1/0,r=-1/0,a=0,n=0;for await(let s of t.packets(void 0,void 0,{metadataOnly:!0})){if(a>=e&&s.timestamp>=r)break;i=Math.min(i,s.timestamp),r=Math.max(r,s.timestamp+s.duration),a++,n+=s.byteLength}return{packetCount:a,averagePacketRate:a?Number((a/(r-i)).toPrecision(16)):0,averageBitrate:a?Number((8*n/(r-i)).toPrecision(16)):0}}}class l extends c{constructor(e,t){super(e,t),this._backing=t,this.pixelAspectRatio=(0,n.P3)({num:this._backing.getSquarePixelWidth()*this._backing.getCodedHeight(),den:this._backing.getSquarePixelHeight()*this._backing.getCodedWidth()})}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 squarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelHeight(){return this._backing.getSquarePixelHeight()}get displayWidth(){return this._backing.getRotation()%180==0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this._backing.getRotation()%180==0?this.squarePixelHeight:this.squarePixelWidth}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}
4canBeTransparent(){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 t=this._backing.getCodec();if((0,n.hu)(null!==t),a.Ms.some(i=>i.supports(t,e)))return!0;if("undefined"==typeof VideoDecoder)return!1;let i=await VideoDecoder.isConfigSupported(e);return!0===i.supported}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof o.H))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 t=await this.getDecoderConfig();return(0,n.hu)(t),(0,r.RO)(this.codec,t,e.data)}}class d extends c{constructor(e,t){super(e,t),this._backing=t}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 t=this._backing.getCodec();if((0,n.hu)(null!==t),a.hg.some(i=>i.supports(t,e))||e.codec.startsWith("pcm-"))return!0;{if("undefined"==typeof AudioDecoder)return!1;let t=await AudioDecoder.isConfigSupported(e);return!0===t.supported}}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof o.H))throw TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}},54897:function(e,t,i){i.d(t,{I:function(){return o},x:function(){return c}});var r=i(36212),a=i(73272),s=i(93731),n=i(67065);(0,a.un)();class o{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 r.B1)))throw TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof n.Hw))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 s.Ej(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,a.hu)(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getFirstTimestamp(){let e=await this.getTracks();return 0===e.length?0:Math.min(...await Promise.all(e.map(e=>e.getFirstTimestamp())))}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 c extends Error{constructor(e="Input has been disposed."){super(e),this.name="InputDisposedError"}}},98456:function(e,t,i){i.d(t,{o:function(){return r}});let r=e=>{let t=(e.hasVideo?"video/":e.hasAudio?"audio/":"application/")+(e.isQuickTime?"quicktime":"mp4");if(e.codecStrings.length>0){let i=[...new Set(e.codecStrings)];t+=`; codecs="${i.join(", ")}"`}return t}},43105:function(e,t,i){i.d(t,{PM:function(){return n},aU:function(){return u},bm:function(){return l},cq:function(){return o},d5:function(){return h},gV:function(){return d},mc:function(){return c},pF:function(){return m}});var r=i(45907),a=i(73272),s=i(93731);let n=8,o=16,c=e=>{let t=(0,s.dd)(e),i=(0,s.yn)(e,4),r=8;1===t&&(t=(0,s.Fk)(e),r=16);let a=t-r;return a<0?null:{name:i,totalSize:t,headerSize:r,contentSize:a}},l=e=>(0,s.c_)(e)/65536,d=e=>(0,s.c_)(e)/1073741824,u=e=>{let t=0;for(let i=0;i<4;i++){t<<=7;let i=(0,s.s3)(e);if(t|=127&i,(128&i)==0)break}return t},h=e=>{let t=(0,s.jG)(e);return e.skip(2),t=Math.min(t,e.remainingLength),a.zN.decode((0,s.sB)(e,t))},m=e=>{let t=c(e);if(!t||"data"!==t.name||e.remainingLength<8)return null;let i=(0,s.dd)(e);e.skip(4);let n=(0,s.sB)(e,t.contentSize-8);switch(i){case 1:return a.zN.decode(n);case 2:return new TextDecoder("utf-16be").decode(n);case 13:return new r.jC(n,"image/jpeg");case 14:return new r.jC(n,"image/png");case 27:return new r.jC(n,"image/bmp");default:return n}}},75698:function(e,t,i){i.d(t,{$s:function(){return I},F7:function(){return S},FS:function(){return w},Ju:function(){return o},Jv:function(){return x},K5:function(){return b},Pp:function(){return F},RG:function(){return a},SK:function(){return E},Tq:function(){return A},Zl:function(){return P}
4,_C:function(){return R},bX:function(){return B},dp:function(){return T},et:function(){return m},f:function(){return d},h1:function(){return h},hI:function(){return C},hf:function(){return l},iH:function(){return c},j5:function(){return M},nO:function(){return y},ts:function(){return v},yl:function(){return _}});var r,a,s=i(73272),n=i(93731);class o{constructor(e){this.value=e}}class c{constructor(e){this.value=e}}class l{constructor(e){this.value=e}}class d{constructor(e){this.value=e}}(r=a||(a={}))[r.EBML=440786851]="EBML",r[r.EBMLVersion=17030]="EBMLVersion",r[r.EBMLReadVersion=17143]="EBMLReadVersion",r[r.EBMLMaxIDLength=17138]="EBMLMaxIDLength",r[r.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",r[r.DocType=17026]="DocType",r[r.DocTypeVersion=17031]="DocTypeVersion",r[r.DocTypeReadVersion=17029]="DocTypeReadVersion",r[r.Void=236]="Void",r[r.Segment=408125543]="Segment",r[r.SeekHead=290298740]="SeekHead",r[r.Seek=19899]="Seek",r[r.SeekID=21419]="SeekID",r[r.SeekPosition=21420]="SeekPosition",r[r.Duration=17545]="Duration",r[r.Info=357149030]="Info",r[r.TimestampScale=2807729]="TimestampScale",r[r.MuxingApp=19840]="MuxingApp",r[r.WritingApp=22337]="WritingApp",r[r.Tracks=374648427]="Tracks",r[r.TrackEntry=174]="TrackEntry",r[r.TrackNumber=215]="TrackNumber",r[r.TrackUID=29637]="TrackUID",r[r.TrackType=131]="TrackType",r[r.FlagEnabled=185]="FlagEnabled",r[r.FlagDefault=136]="FlagDefault",r[r.FlagForced=21930]="FlagForced",r[r.FlagOriginal=21934]="FlagOriginal",r[r.FlagHearingImpaired=21931]="FlagHearingImpaired",r[r.FlagVisualImpaired=21932]="FlagVisualImpaired",r[r.FlagCommentary=21935]="FlagCommentary",r[r.FlagLacing=156]="FlagLacing",r[r.Name=21358]="Name",r[r.Language=2274716]="Language",r[r.LanguageBCP47=2274717]="LanguageBCP47",r[r.CodecID=134]="CodecID",r[r.CodecPrivate=25506]="CodecPrivate",r[r.CodecDelay=22186]="CodecDelay",r[r.SeekPreRoll=22203]="SeekPreRoll",r[r.DefaultDuration=2352003]="DefaultDuration",r[r.Video=224]="Video",r[r.PixelWidth=176]="PixelWidth",r[r.PixelHeight=186]="PixelHeight",r[r.DisplayWidth=21680]="DisplayWidth",r[r.DisplayHeight=21690]="DisplayHeight",r[r.DisplayUnit=21682]="DisplayUnit",r[r.AlphaMode=21440]="AlphaMode",r[r.Audio=225]="Audio",r[r.SamplingFrequency=181]="SamplingFrequency",r[r.Channels=159]="Channels",r[r.BitDepth=25188]="BitDepth",r[r.SimpleBlock=163]="SimpleBlock",r[r.BlockGroup=160]="BlockGroup",r[r.Block=161]="Block",r[r.BlockAdditions=30113]="BlockAdditions",r[r.BlockMore=166]="BlockMore",r[r.BlockAdditional=165]="BlockAdditional",r[r.BlockAddID=238]="BlockAddID",r[r.BlockDuration=155]="BlockDuration",r[r.ReferenceBlock=251]="ReferenceBlock",r[r.Cluster=524531317]="Cluster",r[r.Timestamp=231]="Timestamp",r[r.Cues=475249515]="Cues",r[r.CuePoint=187]="CuePoint",r[r.CueTime=179]="CueTime",r[r.CueTrackPositions=183]="CueTrackPositions",r[r.CueTrack=247]="CueTrack",r[r.CueClusterPosition=241]="CueClusterPosition",r[r.Colour=21936]="Colour",r[r.MatrixCoefficients=21937]="MatrixCoefficients",r[r.TransferCharacteristics=21946]="TransferCharacteristics",r[r.Primaries=21947]="Primaries",r[r.Range=21945]="Range",r[r.Projection=30320]="Projection",r[r.ProjectionType=30321]="ProjectionType",r[r.ProjectionPoseRoll=30325]="ProjectionPoseRoll",r[r.Attachments=423732329]="Attachments",r[r.AttachedFile=24999]="AttachedFile",r[r.FileDescription=18046]="FileDescription",r[r.FileName=18030]="FileName",r[r.FileMediaType=18016]="FileMediaType",r[r.FileData=18012]="FileData",r[r.FileUID=18094]="FileUID",r[r.Chapters=272869232]="Chapters",r[r.Tags=307544935]="Tags",r[r.Tag=29555]="Tag",r[r.Targets=25536]="Targets",r[r.TargetTypeValue=26826]="TargetTypeValue",r[r.TargetType=25546]="TargetType",r[r.TagTrackUID=25541]="TagTrackUID",r[r.TagEditionUID=25545]="TagEditionUID",r[r.TagChapterUID=25540]="TagChapterUID",r[r.TagAttachmentUID=25542]="TagAttachmentUID",r[r.SimpleTag=26568]="SimpleTag",r[r.TagName=17827]="TagName",r[r.TagLanguage=17530]="TagLanguage",r[r.TagString=17543]="TagString",r[r.TagBinary=17541]="TagBinary",r[r.ContentEncodings=28032]="ContentEncodings",r[r.ContentEncoding=25152]="ContentEncoding",r[r.ContentEncodingOrder=20529]="ContentEncodingOrder",r[r.ContentEncodingScope=20530]="ContentEncodingScope",r[r.ContentCompression=20532]="ContentCompression",r[r.ContentCompAlgo=16980]="ContentCompAlgo",r[r.ContentCompSettings=16981]="ContentCompSettings",r[r.ContentEncryption=20533]="ContentEncryption";let u=[a.EBML,a.Segment],h=[a.SeekHead,a.Info,a.Cluster,a.Tracks,a.Cues,a.Attachments,a.Chapters,a.Tags],m=[...u,...h],f=e=>e<256?1:e<65536?2:e<16777216?3:e<4294967296?4:e<1099511627776?5:6,p=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;if(e<1n<<48n)return 6;if(e<1n<<56n)return 7;else return 8},g=e=>e>=-64&&e<64?1:e>=-8192&&e<8192?2:e>=-1048576&&e<1048576?3:e>=-134217728&&e<134217728?4:e>
4=-17179869184&&e<17179869184?5:6,k=e=>{if(e<127)return 1;if(e<16383)return 2;if(e<2097151)return 3;if(e<268435455)return 4;if(e<34359738368-1)return 5;if(e<4398046511104-1)return 6;throw Error("EBML varint size not supported "+e)};class b{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,t=f(e)){let i=0;switch(t){case 6:this.helperView.setUint8(i++,e/1099511627776|0);case 5:this.helperView.setUint8(i++,e/4294967296|0);case 4:this.helperView.setUint8(i++,e>>24);case 3:this.helperView.setUint8(i++,e>>16);case 2:this.helperView.setUint8(i++,e>>8);case 1:this.helperView.setUint8(i++,e);break;default:throw Error("Bad unsigned int size "+t)}this.writer.write(this.helper.subarray(0,i))}writeUnsignedBigInt(e,t=p(e)){let i=0;for(let r=t-1;r>=0;r--)this.helperView.setUint8(i++,Number(e>>BigInt(8*r)&255n));this.writer.write(this.helper.subarray(0,i))}writeSignedInt(e,t=g(e)){e<0&&(e+=2**(8*t)),this.writeUnsignedInt(e,t)}writeVarInt(e,t=k(e)){let i=0;switch(t){case 1:this.helperView.setUint8(i++,128|e);break;case 2:this.helperView.setUint8(i++,64|e>>8),this.helperView.setUint8(i++,e);break;case 3:this.helperView.setUint8(i++,32|e>>16),this.helperView.setUint8(i++,e>>8),this.helperView.setUint8(i++,e);break;case 4:this.helperView.setUint8(i++,16|e>>24),this.helperView.setUint8(i++,e>>16),this.helperView.setUint8(i++,e>>8),this.helperView.setUint8(i++,e);break;case 5:this.helperView.setUint8(i++,8|e/4294967296&7),this.helperView.setUint8(i++,e>>24),this.helperView.setUint8(i++,e>>16),this.helperView.setUint8(i++,e>>8),this.helperView.setUint8(i++,e);break;case 6:this.helperView.setUint8(i++,4|e/1099511627776&3),this.helperView.setUint8(i++,e/4294967296|0),this.helperView.setUint8(i++,e>>24),this.helperView.setUint8(i++,e>>16),this.helperView.setUint8(i++,e>>8),this.helperView.setUint8(i++,e);break;default:throw Error("Bad EBML varint size "+t)}this.writer.write(this.helper.subarray(0,i))}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 t of e)this.writeEBML(t);else if(this.offsets.set(e,this.writer.getPos()),this.writeUnsignedInt(e.id),Array.isArray(e.data)){let t=this.writer.getPos(),i=-1===e.size?1:e.size??4;-1===e.size?this.writeByte(255):this.writer.seek(this.writer.getPos()+i);let r=this.writer.getPos();if(this.dataOffsets.set(e,r),this.writeEBML(e.data),-1!==e.size){let e=this.writer.getPos()-r,a=this.writer.getPos();this.writer.seek(t),this.writeVarInt(e,i),this.writer.seek(a)}}else if("number"==typeof e.data){let t=e.size??f(e.data);this.writeVarInt(t),this.writeUnsignedInt(e.data,t)}else if("bigint"==typeof e.data){let t=e.size??p(e.data);this.writeVarInt(t),this.writeUnsignedBigInt(e.data,t)}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 o)this.writeVarInt(4),this.writeFloat32(e.data.value);else if(e.data instanceof c)this.writeVarInt(8),this.writeFloat64(e.data.value);else if(e.data instanceof l){let t=e.size??g(e.data.value);this.writeVarInt(t),this.writeSignedInt(e.data.value,t)}else if(e.data instanceof d){let t=s.oL.encode(e.data.value);this.writeVarInt(t.length),this.writer.write(t)}else(0,s.vE)(e.data)}}}let w=2,y=16,T=e=>{if(e.remainingLength<1)return null;let t=(0,n.s3)(e);if(e.skip(-1),0===t)return null;let i=1,r=128;for(;(t&r)==0;)i++,r>>=1;return e.remainingLength<i?null:i},S=e=>{if(e.remainingLength<1)return null;let t=(0,n.s3)(e);if(0===t)return null;let i=1,r=128;for(;(t&r)==0;)i++,r>>=1;if(e.remainingLength<i-1)return null;let a=t&r-1;for(let t=1;t<i;t++)a*=256,a+=(0,n.s3)(e);return a},v=(e,t)=>
4{if(t<1||t>8)throw Error("Bad unsigned int size "+t);let i=0;for(let r=0;r<t;r++)i*=256,i+=(0,n.s3)(e);return i},P=(e,t)=>{if(t<1)throw Error("Bad unsigned int size "+t);let i=0n;for(let r=0;r<t;r++)i<<=8n,i+=BigInt((0,n.s3)(e));return i},C=e=>{let t=T(e);return null===t||e.remainingLength<t?null:v(e,t)},x=e=>{if(e.remainingLength<1)return null;if(255===(0,n.s3)(e))return;e.skip(-1);let t=S(e);return null===t?null:72057594037927940!==t?t:void 0},I=e=>{(0,s.hu)(e.remainingLength>=w);let t=C(e);if(null===t)return null;let i=x(e);return null===i?null:{id:t,size:i}},E=(e,t)=>{let i=(0,n.sB)(e,t),r=0;for(;r<t&&0!==i[r];)r+=1;return String.fromCharCode(...i.subarray(0,r))},B=(e,t)=>{let i=(0,n.sB)(e,t),r=0;for(;r<t&&0!==i[r];)r+=1;return s.zN.decode(i.subarray(0,r))},_=(e,t)=>{if(0===t)return 0;if(4!==t&&8!==t)throw Error("Bad float size "+t);return 4===t?(0,n.z$)(e):(0,n.Ss)(e)},A=async(e,t,i,r)=>{let a=new Set(i),s=t;for(;null===r||s<r;){let t=e.requestSliceRange(s,w,y);if(t instanceof Promise&&(t=await t),!t)break;let i=I(t);if(!i)break;if(a.has(i.id))return{pos:s,found:!0};M(i.size),s=t.filePos+i.size}return{pos:null!==r&&r>s?r:s,found:!1}},R=async(e,t,i,r)=>{let a=new Set(i),s=t;for(;s<r;){let t=e.requestSliceRange(s,0,Math.min(65536,r-s));if(t instanceof Promise&&(t=await t),!t||t.length<8)break;for(let e=0;e<t.length-8;e++){t.filePos=s;let e=C(t);if(null!==e&&a.has(e))return s;s++}}return null},F={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",ac3:"A_AC3",eac3:"A_EAC3","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 M(e){if(void 0===e)throw Error("Undefined element size is used in a place where it is not supported.")}},45179:function(e,t,i){i.d(t,{K:function(){return r}});let r=e=>{let t=(e.hasVideo?"video/":e.hasAudio?"audio/":"application/")+(e.isWebM?"webm":"x-matroska");if(e.codecStrings.length>0){let i=[...new Set(e.codecStrings.filter(Boolean))];t+=`; codecs="${i.join(", ")}"`}return t}},51887:function(e,t,i){i.d(t,{C:function(){return S},O8:function(){return C},a6:function(){return p},dL:function(){return T}});var r=i(41201),a=i(97229),s=i(35206),n=i(54897),o=i(39510),c=i(73272),l=i(17930),d=i(23562),u=i(30285);let h=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.")},m=e=>{if(!(0,c.hj)(e))throw TypeError("timestamp must be a number.")},f=(e,t,i)=>i.verifyKeyPackets?t.then(async t=>{if(!t||"delta"===t.type)return t;let i=await e.determinePacketType(t);return i&&(t.type=i),t}):t;class p{constructor(e){if(!(e instanceof o.u))throw TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){if(h(e),this._track.input._disposed)throw new n.x;return f(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){if(m(e),h(t),this._track.input._disposed)throw new n.x;return f(this._track,this._track._backing.getPacket(e,t),t)}getNextPacket(e,t={}){if(!(e instanceof l.H))throw TypeError("packet must be an EncodedPacket.");if(h(t),this._track.input._disposed)throw new n.x;return f(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if(m(e),h(t),this._track.input._disposed)throw new n.x;if(!t.verifyKeyPackets)return this._track._backing.getKeyPacket(e,t);let i=await this._track._backing.getKeyPacket(e,t);return i&&((0,c.hu)("key"===i.type),"delta"===await this._track.determinePacketType(i))?this.getKeyPacket(i.timestamp-1/this._track.timeResolution,t):i}async getNextKeyPacket(e,t={}){if(!(e instanceof l.H))throw TypeError("packet must be an EncodedPacket.");if(h(t),this._track.input._disposed)throw new n.x;if(!t.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,t);let i=await this._track._backing.getNextKeyPacket(e,t);return i&&((0,c.hu)("key"===i.type),"delta"===await this._track.determinePacketType(i))?this.getNextKeyPacket(i,t):i}packets(e,t,i={}){if(void 0!==e&&!(e instanceof l.H))throw TypeError("startPacket must be an EncodedPacket.");if(void 0!==e&&e.isMetadataOnly&&!i?.metadataOnly)throw TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");
4if(void 0!==t&&!(t instanceof l.H))throw TypeError("endPacket must be an EncodedPacket.");if(h(i),this._track.input._disposed)throw new n.x;let r=[],{promise:a,resolve:s}=(0,c.Bw)(),{promise:o,resolve:d}=(0,c.Bw)(),u=!1,m=!1,f=null,p=[],g=()=>Math.max(2,p.length);(async()=>{let n=e??await this.getFirstPacket(i);for(;n&&!m&&!this._track.input._disposed&&!(t&&n.sequenceNumber>=t?.sequenceNumber);){if(r.length>g()){({promise:o,resolve:d}=(0,c.Bw)()),await o;continue}r.push(n),s(),({promise:a,resolve:s}=(0,c.Bw)()),n=await this.getNextPacket(n,i)}u=!0,s()})().catch(e=>{f||(f=e,s())});let k=this._track;return{async next(){for(;;){if(k.input._disposed)throw new n.x;if(m)return{value:void 0,done:!0};if(f)throw f;if(r.length>0){let e=r.shift(),t=performance.now();for(p.push(t);p.length>0&&t-p[0]>=1e3;)p.shift();return d(),{value:e,done:!1}}else{if(u)return{value:void 0,done:!0};await a}}},return:async()=>(m=!0,d(),s(),{value:void 0,done:!0}),async throw(e){throw e},[Symbol.asyncIterator](){return this}}}}class g{constructor(e,t){this.onSample=e,this.onError=t}}class k{mediaSamplesInRange(e=0,t=1/0){m(e),m(t);let i=[],r=!1,a=null,{promise:s,resolve:o}=(0,c.Bw)(),{promise:l,resolve:d}=(0,c.Bw)(),u=!1,h=!1,f=!1,p=null;(async()=>{let n=await this._createDecoder(n=>{if(d(),n.timestamp>=t&&(h=!0),h){n.close();return}a&&(n.timestamp>e?(i.push(a),r=!0):a.close()),n.timestamp>=e&&(i.push(n),r=!0),a=r?null:n,i.length>0&&(o(),{promise:s,resolve:o}=(0,c.Bw)())},e=>{p||(p=e,o())}),m=this._createPacketSink(),g=await m.getKeyPacket(e,{verifyKeyPackets:!0})??await m.getFirstPacket(),k=g,w=m.packets(g??void 0,void 0);for(await w.next();k&&!h&&!this._track.input._disposed;){let e=b(i.length);if(i.length+n.getDecodeQueueSize()>e){({promise:l,resolve:d}=(0,c.Bw)()),await l;continue}n.decode(k);let t=await w.next();if(t.done)break;k=t.value}await w.return(),f||this._track.input._disposed||await n.flush(),n.close(),!r&&a&&i.push(a),u=!0,o()})().catch(e=>{p||(p=e,o())});let g=this._track,k=()=>{for(let e of(a?.close(),i))e.close()};return{async next(){for(;;){if(g.input._disposed)throw k(),new n.x;if(f)return{value:void 0,done:!0};if(p)throw k(),p;if(i.length>0){let e=i.shift();return d(),{value:e,done:!1}}else{if(u)return{value:void 0,done:!0};await s}}},return:async()=>(f=!0,h=!0,d(),o(),k(),{value:void 0,done:!0}),async throw(e){throw e},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){(0,c.SC)(e);let t=(0,c.B2)(e),i=[],r=[],{promise:a,resolve:s}=(0,c.Bw)(),{promise:o,resolve:l}=(0,c.Bw)(),d=!1,u=!1,h=null,f=e=>{r.push(e),s(),{promise:a,resolve:s}=(0,c.Bw)()};(async()=>{let e=await this._createDecoder(e=>{if(l(),u){e.close();return}let t=0;for(;i.length>0&&e.timestamp-i[0]>-.0000000001;)t++,i.shift();if(t>0)for(let i=0;i<t;i++)f(i<t-1?e.clone():e);else e.close()},e=>{h||(h=e,s())}),a=this._createPacketSink(),n=null,p=null,g=-1,k=async()=>{(0,c.hu)(p);let t=p;for(e.decode(t);t.sequenceNumber<g;){let i=b(r.length);for(;r.length+e.getDecodeQueueSize()>i&&!u;)({promise:o,resolve:l}=(0,c.Bw)()),await o;if(u)break;let s=await a.getNextPacket(t);(0,c.hu)(s),e.decode(s),t=s}g=-1},w=async()=>{await e.flush();for(let e=0;e<i.length;e++)f(null);i.length=0};for await(let e of t){if(m(e),u||this._track.input._disposed)break;let t=await a.getPacket(e),r=t&&await a.getKeyPacket(e,{verifyKeyPackets:!0});if(!r){-1!==g&&(await k(),await w()),f(null),n=null;continue}n&&(r.sequenceNumber!==p.sequenceNumber||t.timestamp<n.timestamp)&&(await k(),await w()),i.push(t.timestamp),g=Math.max(t.sequenceNumber,g),n=t,p=r}u||this._track.input._disposed||(-1!==g&&await k(),await w()),e.close(),d=!0,s()})().catch(e=>{h||(h=e,s())});let p=this._track,g=()=>{for(let e of r)e?.close()};return{async next(){for(;;){if(p.input._disposed)throw g(),new n.x;if(u)return{value:void 0,done:!0};if(h)throw g(),h;if(r.length>0){let e=r.shift();return(0,c.hu)(void 0!==e),l(),{value:e,done:!1}}else{if(d)return{value:void 0,done:!0};await a}}},return:async()=>(u=!0,l(),s(),g(),{value:void 0,done:!0}),async throw(e){throw e},[Symbol.asyncIterator](){return this}}}}let b=e=>0===e?40:8;class w extends g{constructor(e,t,i,r,n,o){super(e,t),this.codec=i,this.decoderConfig=r,this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer
4=new c.I1,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 l=s.Ms.find(e=>e.supports(i,r));if(l)this.customDecoder=new l,this.customDecoder.codec=i,this.customDecoder.config=r,this.customDecoder.onSample=e=>{if(!(e instanceof u._A))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 t=this.alphaQueue.shift();(0,c.hu)(void 0!==t),this.mergeAlpha(e,t)}else this.colorQueue.push(e)};if("avc"===i&&this.decoderConfig.description&&(0,c.mJ)()){let e=(0,a.HS)((0,c._f)(this.decoderConfig.description));if(e&&e.sequenceParameterSets.length>0){let t=(0,a.d$)(e.sequenceParameterSets[0]);t&&0===t.frameMbsOnlyFlag&&(this.decoderConfig={...this.decoderConfig,hardwareAcceleration:"prefer-software"})}}let t=Error("Decoding error").stack;this.decoder=new VideoDecoder({output:t=>{try{e(t)}catch(e){this.onError(e)}},error:e=>{e.stack=t,this.onError(e)}}),this.decoder.configure(this.decoderConfig)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:((0,c.hu)(this.decoder),Math.max(this.decoder.decodeQueueSize,this.alphaDecoder?.decodeQueueSize??0))}decode(e){if("hevc"===this.codec&&this.currentPacketIndex>
40&&!this.raslSkipped){if(this.hasHevcRaslPicture(e.data))return;this.raslSkipped=!0}if(this.customDecoder)this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--);else{if((0,c.hu)(this.decoder),(0,c.Pf)()||(0,c.yg)(this.inputTimestamps,e.timestamp,e=>e),(0,c.mJ)()&&0===this.currentPacketIndex&&"avc"===this.codec){let t=[];for(let i of(0,a.Sq)(e.data,this.decoderConfig)){let r=(0,a.Bc)(e.data[i.offset]);r>=20&&r<=31||t.push(e.data.subarray(i.offset,i.offset+i.length))}let i=(0,a.Dg)(t,this.decoderConfig);e=new l.H(i,e.type,e.timestamp,e.duration)}this.decoder.decode(e.toEncodedVideoChunk()),this.decodeAlphaData(e)}this.currentPacketIndex++}decodeAlphaData(e){if(!e.sideData.alpha||this.mergerCreationFailed){this.pushNullAlphaFrame();return}if(!this.merger)try{this.merger=new y}catch(t){console.error("Due to an error, only color data will be decoded.",t),this.mergerCreationFailed=!0,this.decodeAlphaData(e);return}if(!this.alphaDecoder){let e=e=>{if(this.alphaDecoderQueueSize--,this.colorQueue.length>0){let t=this.colorQueue.shift();(0,c.hu)(void 0!==t),this.mergeAlpha(t,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,c.hu)(void 0!==e),this.mergeAlpha(e,null)}else this.alphaQueue.push(null)},t=Error("Decoding error").stack;this.alphaDecoder=new VideoDecoder({output:t=>{try{e(t)}catch(e){this.onError(e)}},error:e=>{e.stack=t,this.onError(e)}}),this.alphaDecoder.configure(this.decoderConfig)}let t=(0,a.RO)(this.codec,this.decoderConfig,e.sideData.alpha);if(this.alphaHadKeyframe||(this.alphaHadKeyframe="key"===t),this.alphaHadKeyframe){if("hevc"===this.codec&&this.currentAlphaPacketIndex>
40&&!this.alphaRaslSkipped){if(this.hasHevcRaslPicture(e.sideData.alpha)){this.pushNullAlphaFrame();return}this.alphaRaslSkipped=!0}this.currentAlphaPacketIndex++,this.alphaDecoder.decode(e.alphaToEncodedVideoChunk(t??e.type)),this.alphaDecoderQueueSize++}else this.pushNullAlphaFrame()}pushNullAlphaFrame(){0===this.alphaDecoderQueueSize?this.alphaQueue.push(null):this.nullAlphaFrameQueue.push(this.decodedAlphaChunkCount+this.alphaDecoderQueueSize)}hasHevcRaslPicture(e){for(let t of(0,a.Tn)(e,this.decoderConfig)){let i=(0,a.UB)(e[t.offset]);if(i===a.$9.RASL_N||i===a.$9.RASL_R)return!0}return!1}sampleHandler(e){if((0,c.Pf)()){if(this.sampleQueue.length>0&&e.timestamp>=(0,c.Z$)(this.sampleQueue).timestamp){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}(0,c.yg)(this.sampleQueue,e,e=>e.timestamp)}else{let t=this.inputTimestamps.shift();(0,c.hu)(void 0!==t),e.setTimestamp(t),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,t){if(!t){let t=new u._A(e);this.sampleHandler(t);return}(0,c.hu)(this.merger),this.merger.update(e,t),e.close(),t.close();let i=new VideoFrame(this.merger.canvas,{timestamp:e.timestamp,duration:e.duration??void 0}),r=new u._A(i);this.sampleHandler(r)}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):((0,c.hu)(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,c.Pf)()){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,c.hu)(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 y{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
5			in vec2 a_position;
6			in vec2 a_texCoord;
7			out vec2 v_texCoord;
8			
9			void main() {
10				gl_Position = vec4(a_position, 0.0, 1.0);
11				v_texCoord = a_texCoord;
12			}
13		`),t=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
14			precision highp float;
15			
16			uniform sampler2D u_colorTexture;
17			uniform sampler2D u_alphaTexture;
18			in vec2 v_texCoord;
19			out vec4 fragColor;
20			
21			void main() {
22				vec3 color = texture(u_colorTexture, v_texCoord).rgb;
23				float alpha = texture(u_alphaTexture, v_texCoord).r;
24				fragColor = vec4(color, alpha);
25			}
26		`),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,t),this.gl.linkProgram(i),i}createShader(e,t){let i=this.gl.createShader(e);return this.gl.shaderSource(i,t),this.gl.compileShader(i),i}createVAO(){let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let t=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),i=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.bufferData(this.gl.ARRAY_BUFFER,t,this.gl.STATIC_DRAW);let r=this.gl.getAttribLocation(this.program,"a_position"),a=this.gl.getAttribLocation(this.program,"a_texCoord");return this.gl.enableVertexAttribArray(r),this.gl.vertexAttribPointer(r,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,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,t){(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,t),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 T extends k{constructor(e){if(!(e instanceof o.mC))throw TypeError("videoTrack must be an InputVideoTrack.");super(),this._track=e}async _createDecoder(e,t){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 i=this._track.codec,r=this._track.rotation,a=await this._track.getDecoderConfig(),s=this._track.timeResolution;return(0,c.hu)(i&&a),new w(e,t,i,a,r,s)}_createPacketSink(){return new p(this._track)}async getSample(e){for await(let t of(m(e),this.mediaSamplesAtTimestamps([e])))return t;throw Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}}class S{constructor(e,t={}){if(this._nextCanvasIndex=0,!(e instanceof o.mC))throw TypeError("videoTrack must be an InputVideoTrack.");
26if(t&&"object"!=typeof t)throw TypeError("options must be an object.");if(void 0!==t.alpha&&"boolean"!=typeof t.alpha)throw TypeError("options.alpha, when provided, must be a boolean.");if(void 0!==t.width&&(!Number.isInteger(t.width)||t.width<=0))throw TypeError("options.width, when defined, must be a positive integer.");if(void 0!==t.height&&(!Number.isInteger(t.height)||t.height<=0))throw TypeError("options.height, when defined, must be a positive integer.");if(void 0!==t.fit&&!["fill","contain","cover"].includes(t.fit))throw TypeError('options.fit, when provided, must be one of "fill", "contain", or "cover".');if(void 0!==t.width&&void 0!==t.height&&void 0===t.fit)throw TypeError("When both options.width and options.height are provided, options.fit must also be provided.");if(void 0!==t.rotation&&![0,90,180,270].includes(t.rotation))throw TypeError("options.rotation, when provided, must be 0, 90, 180 or 270.");if(void 0!==t.crop&&(0,u.DI)(t.crop,"options."),void 0!==t.poolSize&&("number"!=typeof t.poolSize||!Number.isInteger(t.poolSize)||t.poolSize<0))throw TypeError("poolSize must be a non-negative integer.");let i=t.rotation??e.rotation,[r,a]=i%180==0?[e.squarePixelWidth,e.squarePixelHeight]:[e.squarePixelHeight,e.squarePixelWidth],s=t.crop;s&&(0,u.di)(s,r,a);let[n,c]=s?[s.width,s.height]:[r,a],l=n/c;void 0!==t.width&&void 0===t.height?c=Math.round((n=t.width)/l):void 0===t.width&&void 0!==t.height?n=Math.round((c=t.height)*l):void 0!==t.width&&void 0!==t.height&&(n=t.width,c=t.height),this._videoTrack=e,this._alpha=t.alpha??!1,this._width=n,this._height=c,this._rotation=i,this._crop=s,this._fit=t.fit??"fill",this._videoSampleSink=new T(e),this._canvasPool=Array.from({length:t.poolSize??0},()=>null)}_videoSampleToWrappedCanvas(e){let t=this._canvasPool[this._nextCanvasIndex],i=!1;t||("undefined"!=typeof document?((t=document.createElement("canvas")).width=this._width,t.height=this._height):t=new OffscreenCanvas(this._width,this._height),this._canvasPool.length>0&&(this._canvasPool[this._nextCanvasIndex]=t),i=!0),this._canvasPool.length>0&&(this._nextCanvasIndex=(this._nextCanvasIndex+1)%this._canvasPool.length);let r=t.getContext("2d",{alpha:this._alpha||(0,c.vU)()});(0,c.hu)(r),r.resetTransform(),i||(!this._alpha&&(0,c.vU)()?(r.fillStyle="black",r.fillRect(0,0,this._width,this._height)):r.clearRect(0,0,this._width,this._height)),e.drawWithFit(r,{fit:this._fit,rotation:this._rotation,crop:this._crop});let a={canvas:t,timestamp:e.timestamp,duration:e.duration};return e.close(),a}async getCanvas(e){m(e);let t=await this._videoSampleSink.getSample(e);return t&&this._videoSampleToWrappedCanvas(t)}canvases(e=0,t=1/0){return(0,c.mq)(this._videoSampleSink.samples(e,t),e=>this._videoSampleToWrappedCanvas(e))}canvasesAtTimestamps(e){return(0,c.mq)(this._videoSampleSink.samplesAtTimestamps(e),e=>e&&this._videoSampleToWrappedCanvas(e))}}class v extends g{constructor(e,t,i,r){super(e,t),this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new c.I1,this.customDecoderQueueSize=0,this.currentTimestamp=null;let a=t=>{(null===this.currentTimestamp||Math.abs(t.timestamp-this.currentTimestamp)>=t.duration)&&(this.currentTimestamp=t.timestamp);let i=this.currentTimestamp;if(this.currentTimestamp+=t.duration,0===t.numberOfFrames){t.close();return}let a=r.sampleRate;t.setTimestamp(Math.round(i*a)/a),e(t)},n=s.hg.find(e=>e.supports(i,r));if(n)this.customDecoder=new n,this.customDecoder.codec=i,this.customDecoder.config=r,this.customDecoder.onSample=e=>{if(!(e instanceof u.Xw))throw TypeError("The argument passed to onSample must be an AudioSample.");a(e)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let e=Error("Decoding error").stack;this.decoder=new AudioDecoder({output:e=>{try{a(new u.Xw(e))}catch(e){this.onError(e)}},error:t=>{t.stack=e,this.onError(t)}}),this.decoder.configure(r)}}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:((0,c.hu)(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):((0,c.hu)(this.decoder),this.decoder.decode(e.toEncodedAudioChunk()))}flush(){return this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):((0,c.hu)(this.decoder),this.decoder.flush())}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):((0,c.hu)(this.decoder),this.decoder.close())}}class P extends g{constructor(e,t,i){super(e,t),this.decoderConfig=i,this.currentTimestamp=null,(0,c.hu)(r.zE.includes(i.codec)),this.codec=i.codec;let{dataType:a,sampleSize:s,littleEndian:n}=(0,r.AS)(this.codec);switch(this.inputSampleSize=s,s){case 1:"unsigned"===a?this.readInputValue=(e,t)=>
26e.getUint8(t)-128:"signed"===a?this.readInputValue=(e,t)=>e.getInt8(t):"ulaw"===a?this.readInputValue=(e,t)=>(0,d.ZC)(e.getUint8(t)):"alaw"===a?this.readInputValue=(e,t)=>(0,d.hU)(e.getUint8(t)):(0,c.hu)(!1);break;case 2:"unsigned"===a?this.readInputValue=(e,t)=>e.getUint16(t,n)-32768:"signed"===a?this.readInputValue=(e,t)=>e.getInt16(t,n):(0,c.hu)(!1);break;case 3:"unsigned"===a?this.readInputValue=(e,t)=>(0,c.rB)(e,t,n)-8388608:"signed"===a?this.readInputValue=(e,t)=>(0,c.Uo)(e,t,n):(0,c.hu)(!1);break;case 4:"unsigned"===a?this.readInputValue=(e,t)=>e.getUint32(t,n)-2147483648:"signed"===a?this.readInputValue=(e,t)=>e.getInt32(t,n):"float"===a?this.readInputValue=(e,t)=>e.getFloat32(t,n):(0,c.hu)(!1);break;case 8:"float"===a?this.readInputValue=(e,t)=>e.getFloat64(t,n):(0,c.hu)(!1);break;default:(0,c.vE)(s),(0,c.hu)(!1)}switch(s){case 1:"ulaw"===a||"alaw"===a?(this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(e,t,i)=>e.setInt16(t,i,!0)):(this.outputSampleSize=1,this.outputFormat="u8",this.writeOutputValue=(e,t,i)=>e.setUint8(t,i+128));break;case 2:this.outputSampleSize=2,this.outputFormat="s16",this.writeOutputValue=(e,t,i)=>e.setInt16(t,i,!0);break;case 3:this.outputSampleSize=4,this.outputFormat="s32",this.writeOutputValue=(e,t,i)=>e.setInt32(t,i<<8,!0);break;case 4:this.outputSampleSize=4,"float"===a?(this.outputFormat="f32",this.writeOutputValue=(e,t,i)=>e.setFloat32(t,i,!0)):(this.outputFormat="s32",this.writeOutputValue=(e,t,i)=>e.setInt32(t,i,!0));break;case 8:this.outputSampleSize=4,this.outputFormat="f32",this.writeOutputValue=(e,t,i)=>e.setFloat32(t,i,!0);break;default:(0,c.vE)(s),(0,c.hu)(!1)}}getDecodeQueueSize(){return 0}decode(e){let t=(0,c.NK)(e.data),i=e.byteLength/this.decoderConfig.numberOfChannels/this.inputSampleSize,r=new ArrayBuffer(i*this.decoderConfig.numberOfChannels*this.outputSampleSize),a=new DataView(r);for(let e=0;e<i*this.decoderConfig.numberOfChannels;e++){let i=e*this.inputSampleSize,r=e*this.outputSampleSize,s=this.readInputValue(t,i);this.writeOutputValue(a,r,s)}let s=i/this.decoderConfig.sampleRate;(null===this.currentTimestamp||Math.abs(e.timestamp-this.currentTimestamp)>=s)&&(this.currentTimestamp=e.timestamp);let n=this.currentTimestamp;this.currentTimestamp+=s;let o=new u.Xw({format:this.outputFormat,data:r,numberOfChannels:this.decoderConfig.numberOfChannels,sampleRate:this.decoderConfig.sampleRate,numberOfFrames:i,timestamp:n});this.onSample(o)}async flush(){}close(){}}class C extends k{constructor(e){if(!(e instanceof o.Rq))throw TypeError("audioTrack must be an InputAudioTrack.");super(),this._track=e}async _createDecoder(e,t){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 i=this._track.codec,a=await this._track.getDecoderConfig();return((0,c.hu)(i&&a),r.zE.includes(a.codec))?new P(e,t,a):new v(e,t,i,a)}_createPacketSink(){return new p(this._track)}async getSample(e){for await(let t of(m(e),this.mediaSamplesAtTimestamps([e])))return t;throw Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}}},38114:function(e,t,i){i.d(t,{$8:function(){return y},CS:function(){return g},Dg:function(){return p},LG:function(){return u},SY:function(){return w},eS:function(){return h},p7:function(){return k}});var r=i(41201),a=i(73272);i(11014);var s=i(23562),n=i(35206),o=i(17930),c=i(30285),l=i(71305);class d{constructor(){this._connectedTrack=null,this._closingPromise=null,this._closed=!1,this._timestampOffset=0}_ensureValidAdd(){if(!this._connectedTrack)throw Error("Source is not connected to an output track.");if("canceled"===this._connectedTrack.output.state)throw Error("Output has been canceled.");if("finalizing"===this._connectedTrack.output.state||"finalized"===this._connectedTrack.output.state)throw Error("Output has been finalized.");if("pending"===this._connectedTrack.output.state)throw Error("Output has not started.");if(this._closed)throw Error("Source is closed.")}async _start(){}async _flushAndClose(e){}close(){if(this._closingPromise)return;let e=this._connectedTrack;if(!e)throw Error("Cannot call close without connecting the source to an output track.");
26if("pending"===e.output.state)throw Error("Cannot call close before output has been started.");this._closingPromise=(async()=>{await this._flushAndClose(!1),this._closed=!0,"finalizing"!==e.output.state&&"finalized"!==e.output.state&&e.output._muxer.onTrackClose(e)})()}async _flushOrWaitForOngoingClose(e){return this._closingPromise??=(async()=>{await this._flushAndClose(e),this._closed=!0})()}}class u extends d{constructor(e){if(super(),this._connectedTrack=null,!r.Au.includes(e))throw TypeError(`Invalid video codec '${e}'. Must be one of: ${r.Au.join(", ")}.`);this._codec=e}}class h extends u{constructor(e){super(e)}add(e,t){if(!(e instanceof o.H))throw TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw TypeError("Metadata-only packets cannot be added.");if(void 0!==t&&(!t||"object"!=typeof t))throw TypeError("meta, when provided, must be an object.");return this._ensureValidAdd(),this._connectedTrack.output._muxer.addEncodedVideoPacket(this._connectedTrack,e,t)}}class m{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastMultipleOfKeyFrameInterval=-1,this.codedWidth=null,this.co
26dedHeight=null,this.resizeCanvas=null,this.customEncoder=null,this.customEncoderCallSerializer=new a.I1,this.customEncoderQueueSize=0,this.alphaEncoder=null,this.splitter=null,this.splitterCreationFailed=!1,this.alphaFrameQueue=[],this.error=null}async add(e,t,i){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),null!==this.codedWidth&&null!==this.codedHeight){if(e.codedWidth!==this.codedWidth||e.codedHeight!==this.codedHeight){let i=this.encodingConfig.sizeChangeBehavior??"deny";if("passThrough"===i);else if("deny"===i)throw Error(`Video sample size must remain constant. Expected ${this.codedWidth}x${this.codedHeight}, got ${e.codedWidth}x${e.codedHeight}. To allow the sample size to change over time, set \`sizeChangeBehavior\` to a value other than 'strict' in the encoding options.`);else{let r=!1;this.resizeCanvas||("undefined"!=typeof document?(this.resizeCanvas=document.createElement("canvas"),this.resizeCanvas.width=this.codedWidth,this.resizeCanvas.height=this.codedHeight):this.resizeCanvas=new OffscreenCanvas(this.codedWidth,this.codedHeight),r=!0);let s=this.resizeCanvas.getContext("2d",{alpha:(0,a.vU)()});(0,a.hu)(s),r||((0,a.vU)()?(s.fillStyle="black",s.fillRect(0,0,this.codedWidth,this.codedHeight)):s.clearRect(0,0,this.codedWidth,this.codedHeight)),e.drawWithFit(s,{fit:i}),t&&e.close(),e=new c._A(this.resizeCanvas,{timestamp:e.timestamp,duration:e.duration,rotation:e.rotation}),t=!0}}}else this.codedWidth=e.codedWidth,this.codedHeight=e.codedHeight;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),(0,a.hu)(this.encoderInitialized);let r=this.encodingConfig.keyFrameInterval??5,s=Math.floor(e.timestamp/r),n={...i,keyFrame:i?.keyFrame||0===r||s!==this.lastMultipleOfKeyFrameInterval};if(this.lastMultipleOfKeyFrameInterval=s,this.customEncoder){this.customEncoderQueueSize++;let t=e.clone(),i=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(t,n)).then(()=>this.customEncoderQueueSize--).catch(e=>this.error??=e).finally(()=>{t.close()});this.customEncoderQueueSize>=4&&await i}else{(0,a.hu)(this.encoder);let i=e.toVideoFrame();if(this.alphaEncoder){if(i.format&&!i.format.includes("A")||this.splitterCreationFailed)this.alphaFrameQueue.push(null),this.encoder.encode(i,n),i.close();else{let e=i.displayWidth,t=i.displayHeight;if(!this.splitter)try{this.splitter=new f(e,t)}catch(e){console.error("Due to an error, only color data will be encoded.",e),this.splitterCreationFailed=!0,this.alphaFrameQueue.push(null),this.encoder.encode(i,n),i.close()}if(this.splitter){let e=this.splitter.extractColor(i),t=this.splitter.extractAlpha(i);this.alphaFrameQueue.push(t),this.encoder.encode(e,n),e.close(),i.close()}}}else this.encoder.encode(i,n),i.close();t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(e=>this.encoder.addEventListener("dequeue",e,{once:!0}))}await this.muxer.mutex.currentPromise}finally{t&&e.close()}}ensureEncoder(e){this.ensureEncoderPromise=(async()=>{let t=(0,l.ew)({width:e.codedWidth,height:e.codedHeight,squarePixelWidth:e.squarePixelWidth,squarePixelHeight:e.squarePixelHeight,...this.encodingConfig,framerate:this.source._connectedTrack?.metadata.frameRate});this.encodingConfig.onEncoderConfig?.(t);let i=n.c6.find(e=>e.supports(this.encodingConfig.codec,t));if(i)this.customEncoder=new i,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=t,this.customEncoder.onPacket=(e,t)=>{if(!(e instanceof o.H))throw TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(void 0!==t&&(!t||"object"!=typeof t))throw TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(e,t),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,e,t).catch(e=>{this.error??=e})},await this.customEncoder.init();else{if("undefined"==typeof VideoEncoder)throw Error("VideoEncoder is not supported by this browser.");if(t.alpha="discard","keep"===this.encodingConfig.alpha&&(t.latencyMode="quality"),(t.width%2==1||t.height%2==1)&&("avc"===this.encodingConfig.codec||"hevc"===this.encodingConfig.codec))throw Error(`The dimensions ${t.width}x${t.height} are not supported for codec '${this.encodingConfig.codec}'; both width and height must be even numbers. Make sure to round your dimensions to the nearest even number.`);if(!(await VideoEncoder.isConfigSupported(t)).supported)throw Error(`This specific encoder configuration (${t.codec}, ${t.bitrate} bps, ${t.width}x${t.height}, hardware acceleration: ${t.hardwareAcceleration??"no-preference"}) is not supported by this browser. Consider using another codec or changing your video parameters.`);let e=[],i=[],r=0,s=0,n=(e,t,i)=>{let r={};if(t){let e=new Uint8Array(t.byteLength);t.copyTo(e),r.alpha=e}let a=o.H.fromEncodedChunk(e,r);this.encodingConfig.onEncodedPacket?.(a,i),this.muxer.addEncodedVideoPacket(this.source._connectedTrack,a,i).catch(e=>{this.error??=e})},c=Error("Encoding error").stack;if(this.encoder=new VideoEncoder({output:(t,o)=>{if(!this.alphaEncoder){n(t,null,o);return}let c=this.alphaFrameQueue.shift();(0,a.hu)(void 0!==c),c?(this.alphaEncoder.encode(c,{keyFrame:"key"===t.type}),s++,c.close(),e.push({chunk:t,meta:o})):0===s?n(t,null,o):(i.push(r+s),e.push({chunk:t,meta:o}))},error:e=>{e.stack=c,this.error??=e}}),this.encoder.configure(t),"keep"===this.encodingConfig.alpha){let o=Error("Encoding error").stack;this.alphaEncoder=new VideoEncoder({output:(t,o)=>{s--;let c=e.shift();for((0,a.hu)(void 0!==c),n(c.chunk,t,c.meta),r++;i.length>0&&i[0]===r;){i.shift();let t=e.shift();(0,a.hu)(void 0!==t),n(t.chunk,null,t.meta)}},error:e=>{e.stack=o,this.error??=e}}),this.alphaEncoder.configure(t)}}(0,a.hu)(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}async flushAndClose(e){e||this.checkForEncoderError(),this.customEncoder?(e||this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(e||(await this.encoder.flush(),await this.alphaEncoder?.flush()),"closed"!==this.encoder.state&&this.encoder.close(),this.alphaEncoder&&"closed"!==this.alphaEncoder.state&&this.alphaEncoder.close(),this.alphaFrameQueue.forEach(e
26=>e?.close()),this.splitter?.close()),e||this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.error)throw this.error}}class f{constructor(e,t){this.lastFrame=null,"undefined"!=typeof OffscreenCanvas?this.canvas=new OffscreenCanvas(e,t):(this.canvas=document.createElement("canvas"),this.canvas.width=e,this.canvas.height=t);let i=this.canvas.getContext("webgl2",{alpha:!0});if(!i)throw Error("Couldn't acquire WebGL 2 context.");this.gl=i,this.colorProgram=this.createColorProgram(),this.alphaProgram=this.createAlphaProgram(),this.vao=this.createVAO(),this.sourceTexture=this.createTexture(),this.alphaResolutionLocation=this.gl.getUniformLocation(this.alphaProgram,"u_resolution"),this.gl.useProgram(this.colorProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.colorProgram,"u_sourceTexture"),0),this.gl.useProgram(this.alphaProgram),this.gl.uniform1i(this.gl.getUniformLocation(this.alphaProgram,"u_sourceTexture"),0)}createVertexShader(){return this.createShader(this.gl.VERTEX_SHADER,`#version 300 es
27			in vec2 a_position;
28			in vec2 a_texCoord;
29			out vec2 v_texCoord;
30			
31			void main() {
32				gl_Position = vec4(a_position, 0.0, 1.0);
33				v_texCoord = a_texCoord;
34			}
35		`)}createColorProgram(){let e=this.createVertexShader(),t=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
36			precision highp float;
37			
38			uniform sampler2D u_sourceTexture;
39			in vec2 v_texCoord;
40			out vec4 fragColor;
41			
42			void main() {
43				vec4 source = texture(u_sourceTexture, v_texCoord);
44				fragColor = vec4(source.rgb, 1.0);
45			}
46		`),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,t),this.gl.linkProgram(i),i}createAlphaProgram(){let e=this.createVertexShader(),t=this.createShader(this.gl.FRAGMENT_SHADER,`#version 300 es
47			precision highp float;
48			
49			uniform sampler2D u_sourceTexture;
50			uniform vec2 u_resolution; // The width and height of the canvas
51			in vec2 v_texCoord;
52			out vec4 fragColor;
53
54			// This function determines the value for a single byte in the YUV stream
55			float getByteValue(float byteOffset) {
56				float width = u_resolution.x;
57				float height = u_resolution.y;
58
59				float yPlaneSize = width * height;
60
61				if (byteOffset < yPlaneSize) {
62					// This byte is in the luma plane. Find the corresponding pixel coordinates to sample from
63					float y = floor(byteOffset / width);
64					float x = mod(byteOffset, width);
65					
66					// Add 0.5 to sample the center of the texel
67					vec2 sampleCoord = (vec2(x, y) + 0.5) / u_resolution;
68					
69					// The luma value is the alpha from the source texture
70					return texture(u_sourceTexture, sampleCoord).a;
71				} else {
72					// Write a fixed value for chroma and beyond
73					return 128.0 / 255.0;
74				}
75			}
76			
77			void main() {
78				// Each fragment writes 4 bytes (R, G, B, A)
79				float pixelIndex = floor(gl_FragCoord.y) * u_resolution.x + floor(gl_FragCoord.x);
80				float baseByteOffset = pixelIndex * 4.0;
81
82				vec4 result;
83				for (int i = 0; i < 4; i++) {
84					float currentByteOffset = baseByteOffset + float(i);
85					result[i] = getByteValue(currentByteOffset);
86				}
87				
88				fragColor = result;
89			}
90		`),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,t),this.gl.linkProgram(i),i}createShader(e,t){let i=this.gl.createShader(e);return this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS)||console.error("Shader compile error:",this.gl.getShaderInfoLog(i)),i}createVAO(){let e=this.gl.createVertexArray();this.gl.bindVertexArray(e);let t=new Float32Array([-1,-1,0,1,1,-1,1,1,-1,1,0,0,1,1,1,0]),i=this.gl.createBuffer();this.gl.bindBuffer(this.gl.ARRAY_BUFFER,i),this.gl.bufferData(this.gl.ARRAY_BUFFER,t,this.gl.STATIC_DRAW);let r=this.gl.getAttribLocation(this.colorProgram,"a_position"),a=this.gl.getAttribLocation(this.colorProgram,"a_texCoord");return this.gl.enableVertexAttribArray(r),this.gl.vertexAttribPointer(r,2,this.gl.FLOAT,!1,16,0),this.gl.enableVertexAttribArray(a),this.gl.vertexAttribPointer(a,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}updateTexture(e){this.lastFrame!==e&&((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.sourceTexture),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,e),this.lastFrame=e)}extractColor(e){return this.updateTexture(e),this.gl.useProgram(this.colorProgram),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),new VideoFrame(this.canvas,{timestamp:e.timestamp,duration:e.duration??void 0,alpha:"discard"})}extractAlpha(e){this.updateTexture(e),this.gl.useProgram(this.alphaProgram),this.gl.uniform2f(this.alphaResolutionLocation,this.canvas.width,this.canvas.height),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);let{width:t,height:i}=this.canvas,r=Math.ceil(t/2)*Math.ceil(i/2),s=t*i+2*r,n=Math.ceil(s/(4*t)),o=new Uint8Array(4*t*n);this.gl.readPixels(0,0,t,n,this.gl.RGBA,this.gl.UNSIGNED_BYTE,o),o=o.subarray(0,s),(0,a.hu)(128===o[t*i]),(0,a.hu)(128===o[o.length-1]);let c={format:"I420",codedWidth:t,codedHeight:i,timestamp:e.timestamp,duration:e.duration??void 0,transfer:[o.buffer]};return new VideoFrame(o,c)}close(){this.gl.getExtension("WEBGL_lose_context")?.loseContext(),this.gl=null}}class p extends u{constructor(e){(0,l.bj)(e),super(e.codec),this._encoder=new m(this,e)}add(e,t){if(!(e instanceof c._A))throw TypeError("videoSample must be a VideoSample.");return this._encoder.add(e,!1,t)}_flushAndClose(e){return this._encoder.flushAndClose(e)}}class g extends d{constructor(e){if(super(),this._connectedTrack=null,!r.eY.includes(e))throw TypeError(`Invalid audio codec '${e}'. Must be one of: ${r.eY.join(", ")}.`);this._codec=e}}class k extends g{constructor(e){super(e)}add(e,t){if(!(e instanceof o.H))throw TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw TypeError("Metadata-only packets cannot be added.");if(void 0!==t&&(!t||"object"!=typeof t))throw TypeError("meta, when provided, must be an object.");return this._ensureValidAdd(),this._connectedTrack.output._muxer.addEncodedAudioPacket(this._connectedTrack,e,t)}}class b{constructor(e,t){this.source=e,this.encodingConfig=t,this.ensureEncoderPromise=null,this.encoderInitialized=!1,this.encoder=null,this.muxer=null,this.lastNumberOfChannels=null,this.lastSampleRate=null,this.isPcmEncoder=!1,this.outputSampleSize=null,this.writeOutputValue=null,this.customEncoder=null,this.customEncoderCallSerializer
90=new a.I1,this.customEncoderQueueSize=0,this.lastEndSampleIndex=null,this.error=null}async add(e,t){try{if(this.checkForEncoderError(),this.source._ensureValidAdd(),null!==this.lastNumberOfChannels&&null!==this.lastSampleRate){if(e.numberOfChannels!==this.lastNumberOfChannels||e.sampleRate!==this.lastSampleRate)throw Error(`Audio parameters must remain constant. Expected ${this.lastNumberOfChannels} channels at ${this.lastSampleRate} Hz, got ${e.numberOfChannels} channels at ${e.sampleRate} Hz.`)}else this.lastNumberOfChannels=e.numberOfChannels,this.lastSampleRate=e.sampleRate;this.encoderInitialized||(this.ensureEncoderPromise||this.ensureEncoder(e),this.encoderInitialized||await this.ensureEncoderPromise),(0,a.hu)(this.encoderInitialized);{let t=Math.round(e.timestamp*e.sampleRate),i=Math.round((e.timestamp+e.duration)*e.sampleRate);if(null===this.lastEndSampleIndex)this.lastEndSampleIndex=i;else{let i=t-this.lastEndSampleIndex;if(i>=64){let t=new c.Xw({data:new Float32Array(i*e.numberOfChannels),format:"f32-planar",sampleRate:e.sampleRate,numberOfChannels:e.numberOfChannels,numberOfFrames:i,timestamp:this.lastEndSampleIndex/e.sampleRate});await this.add(t,!0)}this.lastEndSampleIndex+=e.numberOfFrames}}if(this.customEncoder){this.customEncoderQueueSize++;let t=e.clone(),i=this.customEncoderCallSerializer.call(()=>this.customEncoder.encode(t)).then(()=>this.customEncoderQueueSize--).catch(e=>this.error??=e).finally(()=>{t.close()});this.customEncoderQueueSize>=4&&await i,await this.muxer.mutex.currentPromise}else if(this.isPcmEncoder)await this.doPcmEncoding(e,t);else{(0,a.hu)(this.encoder);let i=e.toAudioData();this.encoder.encode(i),i.close(),t&&e.close(),this.encoder.encodeQueueSize>=4&&await new Promise(e=>this.encoder.addEventListener("dequeue",e,{once:!0})),await this.muxer.mutex.currentPromise}}finally{t&&e.close()}}async doPcmEncoding(e,t){(0,a.hu)(this.outputSampleSize),(0,a.hu)(this.writeOutputValue);let{numberOfChannels:i,numberOfFrames:r,sampleRate:s,timestamp:n}=e,c=[];for(let t=0;t<r;t+=2048){let r=Math.min(2048,e.numberOfFrames-t),a=new DataView(new ArrayBuffer(r*i*this.outputSampleSize));c.push({frameCount:r,view:a})}let l=new Float32Array(e.allocationSize({planeIndex:0,format:"f32-planar"})/Float32Array.BYTES_PER_ELEMENT);for(let t=0;t<i;t++){e.copyTo(l,{planeIndex:t,format:"f32-planar"});for(let e=0;e<c.length;e++){let{frameCount:r,view:a}=c[e];for(let s=0;s<r;s++)this.writeOutputValue(a,(s*i+t)*this.outputSampleSize,l[2048*e+s])}}t&&e.close();let d={decoderConfig:{codec:this.encodingConfig.codec,numberOfChannels:i,sampleRate:s}};for(let e=0;e<c.length;e++){let{frameCount:t,view:i}=c[e],r=i.buffer,a=2048*e,l=new o.H(new Uint8Array(r),"key",n+a/s,t/s);this.encodingConfig.onEncodedPacket?.(l,d),await this.muxer.addEncodedAudioPacket(this.source._connectedTrack,l,d)}}ensureEncoder(e){this.ensureEncoderPromise=(async()=>{let{numberOfChannels:t,sampleRate:i}=e,s=(0,l.OO)({numberOfChannels:t,sampleRate:i,...this.encodingConfig});this.encodingConfig.onEncoderConfig?.(s);let c=n.qm.find(e=>e.supports(this.encodingConfig.codec,s));if(c)this.customEncoder=new c,this.customEncoder.codec=this.encodingConfig.codec,this.customEncoder.config=s,this.customEncoder.onPacket=(e,t)=>{if(!(e instanceof o.H))throw TypeError("The first argument passed to onPacket must be an EncodedPacket.");if(void 0!==t&&(!t||"object"!=typeof t))throw TypeError("The second argument passed to onPacket must be an object or undefined.");this.encodingConfig.onEncodedPacket?.(e,t),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,e,t).catch(e=>{this.error??=e})},await this.customEncoder.init();else if(r.zE.includes(this.encodingConfig.codec))this.initPcmEncoder();else{if("undefined"==typeof AudioEncoder)throw Error("AudioEncoder is not supported by this browser.");if(!(await AudioEncoder.isConfigSupported(s)).supported)throw Error(`This specific encoder configuration (${s.codec}, ${s.bitrate} bps, ${s.numberOfChannels} channels, ${s.sampleRate} Hz) is not supported by this browser. Consider using another codec or changing your audio parameters.`);let e=Error("Encoding error").stack;this.encoder=new AudioEncoder({output:(e,t)=>{if("aac"===this.encodingConfig.codec&&t?.decoderConfig&&(!t.decoderConfig.description||t.decoderConfig.description.byteLength<2||0===(0,r._8)((0,a._f)(t.decoderConfig.description)).objectType)){let e=Number((0,a.Z$)(s.codec.split(".")));t.decoderConfig.description=(0,r.QK)({objectType:e,numberOfChannels:t.decoderConfig.numberOfChannels,sampleRate:t.decoderConfig.sampleRate})}let i=o.H.fromEncodedChunk(e);this.encodingConfig.onEncodedPacket?.(i,t),this.muxer.addEncodedAudioPacket(this.source._connectedTrack,i,t).catch(e=>{this.error??=e})},error:t=>{t.stack=e,this.error??=t}}),this.encoder.configure(s)}(0,a.hu)(this.source._connectedTrack),this.muxer=this.source._connectedTrack.output._muxer,this.encoderInitialized=!0})()}initPcmEncoder(){this.isPcmEncoder=!0;let e=this.encodingConfig.codec,{dataType:t,sampleSize:i,littleEndian:n}=(0,r.AS)(e);switch(this.outputSampleSize=i,i){case 1:"unsigned"===t?this.writeOutputValue=(e,t,i)=>e.setUint8(t,(0,a.uZ)((i+1)*127.5,0,255)):"signed"===t?this.writeOutputValue=(e,t,i)=>{e.setInt8(t,(0,a.uZ)(Math.round(128*i),-128,127))}:"ulaw"===t?this.writeOutputValue=(e,t,i)=>{let r=(0,a.uZ)(Math.floor(32767*i),-32768,32767);e.setUint8(t,(0,s.pu)(r))}:"alaw"===t?this.writeOutputValue=(e,t,i)=>{let r=(0,a.uZ)(Math.floor(32767*i),-32768,32767);e.setUint8(t,(0,s.Vs)(r))}:(0,a.hu)(!1);break;case 2:"unsigned"===t?this.writeOutputValue=(e,t,i)=>e.setUint16(t,(0,a.uZ)((i+1)*32767.5,0,65535),n):"signed"===t?this.writeOutputValue=(e,t,i)=>e.setInt16(t,(0,a.uZ)(Math.round(32767*i),-32768,32767),n):(0,a.hu)(!1);break;case 3:"unsigned"===t?this.writeOutputValue=(e,t,i)=>(0,a.qN)(e,t,(0,a.uZ)((i+1)*8388607.5,0,16777215),n):"signed"===t?this.writeOutputValue=(e,t,i)=>(0,a.HX)(e,t,(0,a.uZ)(Math.round(8388607*i),-8388608,8388607),n):(0,a.hu)(!1);break;case 4:"unsigned"===t?this.writeOutputValue=(e,t,i)=>e.setUint32(t,(0,a.uZ)((i+1)*2147483647.5,0,4294967295),n):"signed"===t?this.writeOutputValue=(e,t,i)=>e.setInt32(t,(0,a.uZ)(Math.round(2147483647*i),-2147483648,2147483647),n):"float"===t?this.writeOutputValue=(e,t,i)=>e.setFloat32(t,i,n):(0,a.hu)(!1);break;case 8:"float"===t?this.writeOutputValue=(e,t,i)=>e.setFloat64(t,i,n):(0,a.hu)(!1);break;default:(0,a.vE)(i),(0,a.hu)(!1)}}async flushAndClose(e){e||this.checkForEncoderError(),this.customEncoder?(e||this.customEncoderCallSerializer.call(()=>this.customEncoder.flush()),await this.customEncoderCallSerializer.call(()=>this.customEncoder.close())):this.encoder&&(e||await this.encoder.flush(),"closed"!==this.encoder.state&&this.encoder.close()),e||this.checkForEncoderError()}getQueueSize(){return this.customEncoder?this.customEncoderQueueSize:this.isPcmEncoder?0:this.encoder?.encodeQueueSize??0}checkForEncoderError(){if(this.error)throw this.error}}class w extends g{constructor(e){(0,l.vw)(e),super(e.codec),this._encoder=new b(this,e)}add(e){if(!(e instanceof c.Xw))throw TypeError("audioSample must be an AudioSample.");return this._encoder.add(e,!1)}_flushAndClose(e){return this._encoder.flushAndClose(e)}}class y extends d{constructor(e){if(super(),this._connectedTrack=null,!r.tW.includes(e))throw TypeError(`Invalid subtitle codec '${e}'. Must be one of: ${r.tW.join(", ")}.`);this._codec=e}}},45907:function(e,t,i){i.d(t,{CN:function(){return o},RE:function(){return s},jC:function(){return r},kG:function(){return c},sZ:function(){return a},y3:function(){return n}});
90class r{constructor(e,t){if(this.data=e,this.mimeType=t,!(e instanceof Uint8Array))throw TypeError("data must be a Uint8Array.");if("string"!=typeof t)throw TypeError("mimeType must be a string.")}}class a{constructor(e,t,i,r){if(this.data=e,this.mimeType=t,this.name=i,this.description=r,!(e instanceof Uint8Array))throw TypeError("data must be a Uint8Array.");if(void 0!==t&&"string"!=typeof t)throw TypeError("mimeType, when provided, must be a string.");if(void 0!==i&&"string"!=typeof i)throw TypeError("name, when provided, must be a string.");if(void 0!==r&&"string"!=typeof r)throw TypeError("description, when provided, must be a string.")}}let s=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 t of e.images){if(!t||"object"!=typeof t)throw TypeError("Each image in tags.images must be an object.");if(!(t.data instanceof Uint8Array))throw TypeError("Each image.data must be a Uint8Array.");if("string"!=typeof t.mimeType)throw TypeError("Each image.mimeType must be a string.");if(!["coverFront","coverBack","unknown"].includes(t.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 t of Object.values(e.raw))if(null!==t&&"string"!=typeof t&&!(t instanceof Uint8Array)&&!(t instanceof r)&&!(t instanceof a))throw TypeError("Each value in tags.raw must be a string, Uint8Array, RichImageData, AttachedFile, or null.")}},n=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),o={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1},c=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.")}},73272:function(e,t,i){function r(e){if(!e)throw Error("Assertion failed.")}i.d(t,{$9:function(){return k},AH:function(){return ed},Ag:function(){return ee},B2:function(){return M},Bw:function(){return A},F3:function(){return G},G3:function(){return x},HX:function(){return L},I1:function(){return ei},Ih:function(){return et},J2:function(){return eg},Jy:function(){return E},K9:function(){return ep},KE:function(){return S},LD:function(){return n},LT:function(){return y},NK:function(){return h},O9:function(){return $},P0:function(){return T},P3:function(){return ey},Pf:function(){return ea},Rh:function(){return X},SC:function(){return D},SI:function(){return c},Sf:function(){return I},Ue:function(){return Z},Uo:function(){return U},V3:function(){return w},We:function(){return v},Xd:function(){return p},YM:function(){return d},Z$:function(){return s},Zi:function(){return o},_9:function(){return ef},_f:function(){return u},bJ:function(){return l},bL:function(){return eh},dF:function(){return R},hj:function(){return ew},hu:function(){return r},lM:function(){return eT},lP:function(){return a},lY:function(){return em},mJ:function(){return ec},mq:function(){return W},n0:function(){return P},n1:function(){return K},n3:function(){return q},oL:function(){return f},p0:function(){return j},q9:function(){return C},qN:function(){return N},qr:function(){return F},rB:function(){return O},sF:function(){return B},uZ:function(){return H},un:function(){return eb},v5:function(){return Y},vE:function(){return z},vU:function(){return en},vX:function(){return b},wl:function(){return ek},y$:function(){return eu},yg:function(){return _},zN:function(){return m},zT:function(){return V}});let a=e=>{let t=(e%360+360)%360;if(0===t||90===t||180===t||270===t)return t;throw Error(`Invalid rotation ${e}.`)},s=e=>e&&e[e.length-1],n=e=>e>=0&&e<4294967296;class o{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,i=7-(7&this.pos);return this.pos++,(t&1<<i)>>i}readBits(e){if(1===e)return this.readBit();let t=0;for(let i=0;i<e;i++)t<<=1,t|=this.readBit();return t}writeBits(e,t){let i=this.pos+e;for(let e=this.pos;e<i;e++){let r=Math.floor(e/8),a=this.bytes[r],s=7-(7&e);a&=~(1<<s),a|=(t&1<<i-e-1)>>i-e-1<<s,this.bytes[r]=a}this.pos=i}readAlignedByte(){if(this.pos%8!=0)throw 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 8*this.bytes.length-this.pos}clone(){let e=new o(this.bytes);return e.pos=this.pos,e}}let c=e=>{let t=0;for(;0===e.readBits(1)&&t<32;)t++;if(t>=32)throw Error("Invalid exponential-Golomb code.");return(1<<t)-1+e.readBits(t)},l=e=>{let t=c(e);return(1&t)==0?-(t>>1):t+1>>1},d=(e,t,i,r)=>{for(let a=t;a<i;a++){let t=Math.floor(a/8),s=e[t],n=7-(7&a);s&=~(1<<n),s|=(r&1<<i-a-1)>>i-a-1<<n,e[t]=s}},u=e=>e.constructor===Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e),h=e=>e.constructor===DataView?e:ArrayBuffer.isView(e)?new DataView(e.buffer,e.byteOffset,e.byteLength):new DataView(e),m=new TextDecoder,f=new TextEncoder,p=e=>{for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>255)return!1;return!0},g=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[t,e])),k={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},b=g(k),w={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},y=g(w),T={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},S=g(T),v=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 C{constructor(){this.currentPromise=Promise.resolve(),this.pending=0}async acquire(){let e;let t=new Promise(t=>{let i=!1;e=()=>{i||(t(),this.pending--,i=!0)}}),i=this.currentPromise;return this.currentPromise=t,this.pending++,await i,e}}let x=e=>[...e].map(e=>e.toString(16).padStart(2,"0")).join(""),I=e=>
90(e=(e=(e=(e=(e=e>>1&1431655765|(1431655765&e)<<1)>>2&858993459|(858993459&e)<<2)>>4&252645135|(252645135&e)<<4)>>8&16711935|(16711935&e)<<8)>>16&65535|(65535&e)<<16)>>>0,E=(e,t,i)=>{let r=0,a=e.length-1,s=-1;for(;r<=a;){let n=r+a>>1,o=i(e[n]);o===t?(s=n,a=n-1):o<t?r=n+1:a=n-1}return s},B=(e,t,i)=>{let r=0,a=e.length-1,s=-1;for(;r<=a;){let n=r+(a-r+1)/2|0;i(e[n])<=t?(s=n,r=n+1):a=n-1}return s},_=(e,t,i)=>{let r=B(e,i(t),i);e.splice(r+1,0,t)},A=()=>{let e,t;return{promise:new Promise((i,r)=>{e=i,t=r}),resolve:e,reject:t}},R=(e,t)=>{for(let i=e.length-1;i>=0;i--)if(t(e[i]))return e[i]},F=(e,t)=>{for(let i=e.length-1;i>=0;i--)if(t(e[i]))return i;return -1},M=async function*(e){Symbol.iterator in e?yield*e[Symbol.iterator]():yield*e[Symbol.asyncIterator]()},D=e=>{if(!(Symbol.iterator in e)&&!(Symbol.asyncIterator in e))throw TypeError("Argument must be an iterable or async iterable.")},z=e=>{throw Error(`Unexpected value: ${e}`)},O=(e,t,i)=>{let r=e.getUint8(t),a=e.getUint8(t+1),s=e.getUint8(t+2);return i?r|a<<8|s<<16:r<<16|a<<8|s},U=(e,t,i)=>O(e,t,i)<<8>>8,N=(e,t,i,r)=>{i>>>=0,i&=16777215,r?(e.setUint8(t,255&i),e.setUint8(t+1,i>>>8&255),e.setUint8(t+2,i>>>16&255)):(e.setUint8(t,i>>>16&255),e.setUint8(t+1,i>>>8&255),e.setUint8(t+2,255&i))},L=(e,t,i,r)=>{(i=H(i,-8388608,8388607))<0&&(i=i+16777216&16777215),N(e,t,i,r)},V=(e,t,i,r)=>{r?(e.setUint32(t+0,i,!0),e.setInt32(t+4,Math.floor(i/4294967296),!0)):(e.setInt32(t+0,Math.floor(i/4294967296),!0),e.setUint32(t+4,i,!0))},W=(e,t)=>({async next(){let i=await e.next();return i.done?{value:void 0,done:!0}:{value:t(i.value),done:!1}},return:()=>e.return(),throw:t=>e.throw(t),[Symbol.asyncIterator](){return this}}),H=(e,t,i)=>Math.max(t,Math.min(i,e)),q="und",G=e=>{let t=Math.round(e);return Math.abs(e/t-1)<10*Number.EPSILON?t:e},$=(e,t)=>Math.round(e/t)*t,j=(e,t)=>Math.floor(e/t)*t,K=e=>{let t=0;for(;e;)t++,e>>=1;return t},Q=/^[a-z]{3}$/,X=e=>Q.test(e),Z=1e6*(1+Number.EPSILON),Y=(e,t)=>{let i={...e,...t};if(e.headers||t.headers){let r=e.headers?J(e.headers):{},a=t.headers?J(t.headers):{},s={...r};Object.entries(a).forEach(([e,t])=>{let i=Object.keys(s).find(t=>t.toLowerCase()===e.toLowerCase());i&&delete s[i],s[e]=t}),i.headers=s}return i},J=e=>{if(e instanceof Headers){let t={};return e.forEach((e,i)=>{t[i]=e}),t}if(Array.isArray(e)){let t={};return e.forEach(([e,i])=>{t[e]=i}),t}return e},ee=async(e,t,i,r,a)=>{let s=0;for(;;)try{return await e(t,i)}catch(i){if(a())throw i;let e=r(++s,i,t);if(null===e)throw i;if(console.error("Retrying failed fetch. Error:",i),!Number.isFinite(e)||e<0)throw TypeError("Retry delay must be a non-negative finite number.");if(e>0&&await new Promise(t=>setTimeout(t,1e3*e)),a())throw i}},et=(e,t)=>{let i=e<0?-1:1,r=0,a=1,s=1,n=0,o=e=Math.abs(e);for(;;){let e=Math.floor(o),i=e*s+r,c=e*n+a;if(c>t||(r=s,a=n,s=i,n=c,!isFinite(o=1/(o-e))))break}return{numerator:i*s,denominator:n}};class ei{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}}let er=null,ea=()=>null!==er?er:er=!!("undefined"!=typeof navigator&&(navigator.vendor?.match(/apple/i)||/AppleWebKit/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)||/\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent))),es=null,en=()=>null!==es?es:es="undefined"!=typeof navigator&&navigator.userAgent?.includes("Firefox"),eo=null,ec=()=>null!==eo?eo:eo=!!("undefined"!=typeof navigator&&(navigator.vendor?.includes("Google Inc")||/Chrome/.test(navigator.userAgent))),el=null,ed=()=>{if(null!==el)return el;if("undefined"==typeof navigator)return null;let e=/\bChrome\/(\d+)/.exec(navigator.userAgent);return e?el=Number(e[1]):null},eu=(e,t)=>-1!==e?e:t,eh=(e,t,i,r)=>e<=r&&i<=t,em=function*(e){for(let t in e){let i=e[t];void 0!==i&&(yield{key:t,value:i})}},ef=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}},ep=e=>{let t=atob(e),i=new Uint8Array(t.length);for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);return i},eg=e=>{let t="";for(let i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return btoa(t)},ek=(e,t)=>{if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0},eb=()=>{Symbol.dispose??=Symbol("Symbol.dispose")},ew=e=>"number"==typeof e&&!Number.isNaN(e),ey=e=>{r(0!==e.den);let t=Math.abs(e.num),i=Math.abs(e.den);for(;0!==i;){let e=t%i;t=i,i=e}let a=t||1;return{num:e.num/a,den:e.den/a}},eT=(e,t)=>
90{if("object"!=typeof e||!e)throw TypeError(`${t} must be an object.`);if(!Number.isInteger(e.left)||e.left<0)throw TypeError(`${t}.left must be a non-negative integer.`);if(!Number.isInteger(e.top)||e.top<0)throw TypeError(`${t}.top must be a non-negative integer.`);if(!Number.isInteger(e.width)||e.width<0)throw TypeError(`${t}.width must be a non-negative integer.`);if(!Number.isInteger(e.height)||e.height<0)throw TypeError(`${t}.height must be a non-negative integer.`)}},77678:function(e,t,i){i.d(t,{DE:function(){return r},Of:function(){return a},Qm:function(){return s}});let r=9e4,a=188,s=e=>{let t="video/MP2T",i=[...new Set(e.filter(Boolean))];return i.length>0&&(t+=`; codecs="${i.join(", ")}"`),t}},58729:function(e,t,i){i.d(t,{OL:function(){return s},hg:function(){return l},sd:function(){return o},vp:function(){return c}});var r=i(97229),a=i(73272);let s=1399285583,n=new Uint32Array(256);for(let e=0;e<256;e++){let t=e<<24;for(let e=0;e<8;e++)t=2147483648&t?t<<1^79764919:t<<1;n[e]=t>>>0&4294967295}let o=e=>{let t=(0,a.NK)(e),i=t.getUint32(22,!0);t.setUint32(22,0,!0);let r=0;for(let t=0;t<e.length;t++)r=(r<<8^n[r>>>24^e[t]])>>>0;return t.setUint32(22,i,!0),r},c=(e,t,i)=>{let s=0,n=null;if(e.length>0){if("vorbis"===t.codec){(0,a.hu)(t.vorbisInfo);let r=t.vorbisInfo.modeBlockflags.length,o=(1<<(0,a.n1)(r-1))-1<<1,c=(e[0]&o)>>1;if(c>=t.vorbisInfo.modeBlockflags.length)throw Error("Invalid mode number.");let l=i,d=t.vorbisInfo.modeBlockflags[c];if(n=t.vorbisInfo.blocksizes[d],1===d){let i=e[0]&(1|o)+1?1:0;l=t.vorbisInfo.blocksizes[i]}s=null!==l?l+n>>2:0}else"opus"===t.codec&&(s=(0,r.FE)(e).durationInSamples)}return{durationInSamples:s,vorbisBlockSize:n}},l=e=>{let t="audio/ogg";if(e.codecStrings){let i=[...new Set(e.codecStrings)];t+=`; codecs="${i.join(", ")}"`}return t}},20169:function(e,t,i){i.d(t,{N:function(){return o},Q1:function(){return s},Rf:function(){return c},bL:function(){return l},oO:function(){return n}});var r=i(93731),a=i(58729);let s=27,n=282,o=65307,c=e=>{let t=e.filePos;if((0,r.wr)(e)!==a.OL)return null;e.skip(1);let i=(0,r.s3)(e),s=(0,r.ff)(e),n=(0,r.wr)(e),o=(0,r.wr)(e),c=(0,r.wr)(e),l=(0,r.s3)(e),d=new Uint8Array(l);for(let t=0;t<l;t++)d[t]=(0,r.s3)(e);let u=27+l,h=d.reduce((e,t)=>e+t,0);return{headerStartPos:t,totalSize:u+h,dataStartPos:t+u,dataSize:h,headerType:i,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:c,lacingValues:d}},l=(e,t)=>{for(;e.filePos<t-3;){let t=(0,r.wr)(e),i=255&t,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255;if(79===i||79===s||79===n||79===o){if(e.skip(-4),t===a.OL)return!0;e.skip(1)}}return!1}},66936:function(e,t,i){i.d(t,{Ps:function(){return tC},bu:function(){return tx},nP:function(){return ty},WC:function(){return tw},HF:function(){return tS},E1:function(){return tb},IF:function(){return tP},WJ:function(){return tg},Fr:function(){return tv},PX:function(){return tT}});var r=i(41201),a=i(1645),s=i(45907),n=i(73272);class o{constructor(e){this.mutex=new n.q9,this.firstMediaStreamTimestamp=null,this.trackTimestampInfo=new WeakMap,this.output=e}onTrackClose(e){}validateAndNormalizeTimestamp(e,t,i){t+=e.source._timestampOffset;let r=this.trackTimestampInfo.get(e);if(!r){if(!i)throw Error("First packet must be a key packet.");r={maxTimestamp:t,maxTimestampBeforeLastKeyPacket:t},this.trackTimestampInfo.set(e,r)}if(t<0)throw Error(`Timestamps must be non-negative (got ${t}s).`);if(i&&(r.maxTimestampBeforeLastKeyPacket=r.maxTimestamp),t<r.maxTimestampBeforeLastKeyPacket)throw Error(`Timestamps cannot be smaller than the largest timestamp of the previous GOP (a GOP begins with a key packet and ends right before the next key packet). Got ${t}s, but largest timestamp is ${r.maxTimestampBeforeLastKeyPacket}s.`);return r.maxTimestamp=Math.max(r.maxTimestamp,t),t}}let c=e=>{let t=new Uint8Array(7),i=new n.Zi(t),{objectType:r,frequencyIndex:a,channelConfiguration:s}=e;return i.writeBits(12,4095),i.writeBits(1,0),i.writeBits(2,0),i.writeBits(1,1),i.writeBits(2,r-1),i.writeBits(4,a),i.writeBits(1,0),i.writeBits(3,s),i.writeBits(1,0),i.writeBits(1,0),i.writeBits(1,0),i.writeBits(1,0),i.skipBits(13),i.writeBits(11,2047),i.writeBits(2,0),{header:t,bitstream:i}},l=(e,t)=>
90{e.pos=30,e.writeBits(13,t)};class d extends o{constructor(e,t){super(e),this.header=null,this.headerBitstream=null,this.inputIsAdts=null,this.format=t,this.writer=e._writer}async start(){(0,s.y3)(this.output._metadataTags)||new a.gY(this.writer).writeId3V2Tag(this.output._metadataTags)}async getMimeType(){return"audio/aac"}async addEncodedVideoPacket(){throw Error("ADTS does not support video.")}async addEncodedAudioPacket(e,t,i){let a=await this.mutex.acquire();try{if(this.validateAndNormalizeTimestamp(e,t.timestamp,"key"===t.type),null===this.inputIsAdts){(0,r.NQ)(i);let e=i?.decoderConfig?.description;if(this.inputIsAdts=!e,!this.inputIsAdts){let t=(0,r._8)((0,n._f)(e)),i=c(t);this.header=i.header,this.headerBitstream=i.bitstream}}if(this.inputIsAdts){let e=this.writer.getPos();this.writer.write(t.data),this.format._options.onFrame&&this.format._options.onFrame(t.data,e)}else{(0,n.hu)(this.header);let e=t.data.byteLength+this.header.byteLength;l(this.headerBitstream,e);let i=this.writer.getPos();if(this.writer.write(this.header),this.writer.write(t.data),this.format._options.onFrame){let r=new Uint8Array(e);r.set(this.header,0),r.set(t.data,this.header.byteLength),this.format._options.onFrame(r,i)}}await this.writer.flush()}finally{a()}}async addSubtitleCue(){throw Error("ADTS does not support subtitles.")}async finalize(){(await this.mutex.acquire())()}}var u=i(97229),h=i(93731),m=i(74010);let f=new Uint8Array([102,76,97,67]);class p extends o{constructor(e,t){super(e),this.metadataWritten=!1,this.blockSizes=[],this.frameSizes=[],this.sampleRate=null,this.channels=null,this.bitsPerSample=null,this.writer=e._writer,this.format=t}async start(){this.writer.write(f)}writeHeader({bitsPerSample:e,minimumBlockSize:t,maximumBlockSize:i,minimumFrameSize:r,maximumFrameSize:a,sampleRate:o,channels:c,totalSamples:l}){(0,n.hu)(4===this.writer.getPos());let d=!(0,s.y3)(this.output._metadataTags),h=new n.Zi(new Uint8Array(4));h.writeBits(1,Number(!d)),h.writeBits(7,u.qr.STREAMINFO),h.writeBits(24,34),this.writer.write(h.bytes);let m=new n.Zi(new Uint8Array(18));if(m.writeBits(16,t),m.writeBits(16,i),m.writeBits(24,r),m.writeBits(24,a),m.writeBits(20,o),m.writeBits(3,c-1),m.writeBits(5,e-1),l>=4294967296)throw Error("This muxer only supports writing up to 2 ** 32 samples");m.writeBits(4,0),m.writeBits(32,l),this.writer.write(m.bytes),this.writer.write(new Uint8Array(16))}writePictureBlock(e){let t=32+e.mimeType.length+(e.description?.length??0)+e.data.length,i=new Uint8Array(t),r=0,a=(0,n.NK)(i);a.setUint32(r,"coverFront"===e.kind?3:"coverBack"===e.kind?4:0),r+=4,a.setUint32(r,e.mimeType.length),r+=4,i.set(n.oL.encode(e.mimeType),8),r+=e.mimeType.length,a.setUint32(r,e.description?.length??0),r+=4,i.set(n.oL.encode(e.description??""),r),r+=(e.description?.length??0)+16,a.setUint32(r,e.data.length),r+=4,i.set(e.data,r),r+=e.data.length,(0,n.hu)(r===t);let s=new n.Zi(new Uint8Array(4));s.writeBits(1,0),s.writeBits(7,u.qr.PICTURE),s.writeBits(24,t),this.writer.write(s.bytes),this.writer.write(i)}writeVorbisCommentAndPictureBlock(){if(this.writer.seek(38+f.byteLength),(0,s.y3)(this.output._metadataTags)){this.metadataWritten=!0;return}for(let e of this.output._metadataTags.images??[])this.writePictureBlock(e);let e=(0,u.GL)(new Uint8Array(0),this.output._metadataTags,!1),t=new n.Zi(new Uint8Array(4));t.writeBits(1,1),t.writeBits(7,u.qr.VORBIS_COMMENT),t.writeBits(24,e.length),this.writer.write(t.bytes),this.writer.write(e),this.metadataWritten=!0}async getMimeType(){return"audio/flac"}async addEncodedVideoPacket(){throw Error("FLAC does not support video.")}async addEncodedAudioPacket(e,t,i){let a=await this.mutex.acquire();(0,r.NQ)(i),(0,n.hu)(i),(0,n.hu)(i.decoderConfig),(0,n.hu)(i.decoderConfig.description);try{if(this.validateAndNormalizeTimestamp(e,t.timestamp,"key"===t.type),null===this.sampleRate&&(this.sampleRate=i.decoderConfig.sampleRate),null===this.channels&&(this.channels=i.decoderConfig.numberOfChannels),null===this.bitsPerSample){let e=new n.Zi((0,n._f)(i.decoderConfig.description));e.skipBits(167);let t=e.readBits(5)+1;this.bitsPerSample=t}this.metadataWritten||this.writeVorbisCommentAndPictureBlock();let r=h.CJ.tempFromBytes(t.data);(0,h.sB)(r,2);let a=(0,h.sB)(r,2),s=new n.Zi(a),o=(0,m.bD)(s.readBits(4));if(null===o)throw Error("Invalid FLAC frame: Invalid block size.");(0,m.Lw)(r);let c=(0,m.gg)(r,o);this.blockSizes.push(c),this.frameSizes.push(t.data.length);let l=this.writer.getPos();this.writer.write(t.data),this.format._options.onFrame&&this.format._options.onFrame(t.data,l),await this.writer.flush()}finally{a()}}
90addSubtitleCue(){throw Error("FLAC does not support subtitles.")}async finalize(){let e=await this.mutex.acquire(),t=1/0,i=0,r=1/0,a=0,s=0;for(let e=0;e<this.blockSizes.length;e++)r=Math.min(r,this.frameSizes[e]),a=Math.max(a,this.frameSizes[e]),i=Math.max(i,this.blockSizes[e]),s+=this.blockSizes[e],e!==this.blockSizes.length-1&&(t=Math.min(t,this.blockSizes[e]));(0,n.hu)(null!==this.sampleRate),(0,n.hu)(null!==this.channels),(0,n.hu)(null!==this.bitsPerSample),this.writer.seek(4),this.writeHeader({minimumBlockSize:t,maximumBlockSize:i,minimumFrameSize:r,maximumFrameSize:a,sampleRate:this.sampleRate,channels:this.channels,bitsPerSample:this.bitsPerSample,totalSamples:s}),e()}}var g=i(11014);class k{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer),this.offsets=new WeakMap}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,Math.floor(e/4294967296),!1),this.helperView.setUint32(4,e,!1),this.writer.write(this.helper.subarray(0,8))}writeAscii(e){for(let t=0;t<e.length;t++)this.helperView.setUint8(t%8,e.charCodeAt(t)),t%8==7&&this.writer.write(this.helper);e.length%8!=0&&this.writer.write(this.helper.subarray(0,e.length%8))}writeBox(e){if(this.offsets.set(e,this.writer.getPos()),e.contents&&!e.children)this.writeBoxHeader(e,e.size??e.contents.byteLength+8),this.writer.write(e.contents);else{let t=this.writer.getPos();if(this.writeBoxHeader(e,0),e.contents&&this.writer.write(e.contents),e.children)for(let t of e.children)t&&this.writeBox(t);let i=this.writer.getPos(),r=e.size??i-t;this.writer.seek(t),this.writeBoxHeader(e,r),this.writer.seek(i)}}writeBoxHeader(e,t){this.writeU32(e.largeSize?1:t),this.writeAscii(e.type),e.largeSize&&this.writeU64(t)}measureBoxHeader(e){return 8+(e.largeSize?8:0)}patchBox(e){let t=this.offsets.get(e);(0,n.hu)(void 0!==t);let i=this.writer.getPos();this.writer.seek(t),this.writeBox(e),this.writer.seek(i)}measureBox(e){if(e.contents&&!e.children)return this.measureBoxHeader(e)+e.contents.byteLength;{let t=this.measureBoxHeader(e);if(e.contents&&(t+=e.contents.byteLength),e.children)for(let i of e.children)i&&(t+=this.measureBox(i));return t}}}let b=new Uint8Array(8),w=new DataView(b.buffer),y=e=>[(e%256+256)%256],T=e=>(w.setUint16(0,e,!1),[b[0],b[1]]),S=e=>(w.setInt16(0,e,!1),[b[0],b[1]]),v=e=>(w.setUint32(0,e,!1),[b[1],b[2],b[3]]),P=e=>(w.setUint32(0,e,!1),[b[0],b[1],b[2],b[3]]),C=e=>(w.setInt32(0,e,!1),[b[0],b[1],b[2],b[3]]),x=e=>(w.setUint32(0,Math.floor(e/4294967296),!1),w.setUint32(4,e,!1),[b[0],b[1],b[2],b[3],b[4],b[5],b[6],b[7]]),I=e=>(w.setInt16(0,256*e,!1),[b[0],b[1]]),E=e=>(w.setInt32(0,65536*e,!1),[b[0],b[1],b[2],b[3]]),B=e=>(w.setInt32(0,1073741824*e,!1),[b[0],b[1],b[2],b[3]]),_=(e,t)=>{let i=[],r=e;do{let e=127&r;r>>=7,i.length>0&&(e|=128),i.push(e),void 0!==t&&t--}while(r>0||t);return i.reverse()},A=(e,t=!1)=>{let i=Array(e.length).fill(null).map((t,i)=>e.charCodeAt(i));return t&&i.push(0),i},R=e=>{let t=null;for(let i of e)(!t||i.timestamp>t.timestamp)&&(t=i);return t},F=e=>{let t=Math.PI/180*e,i=Math.round(Math.cos(t)),r=Math.round(Math.sin(t));return[i,r,0,-r,i,0,0,0,1]},M=F(0),D=e=>[E(e[0]),E(e[1]),B(e[2]),E(e[3]),E(e[4]),B(e[5]),E(e[6]),E(e[7]),B(e[8])],z=(e,t,i)=>({type:e,contents:t&&new Uint8Array(t.flat(10)),children:i}),O=(e,t,i,r,a)=>z(e,[y(t),v(i),r??[]],a),U=e=>e.isQuickTime?z("ftyp",[A("qt  "),P(512),A("qt  ")]):e.fragmented?z("ftyp",[A("iso5"),P(512),A("iso5"),A("iso6"),A("mp41")]):z("ftyp",[A("isom"),P(512),A("isom"),e.holdsAvc?A("avc1"):[],A("mp41")]),N=e=>({type:"mdat",largeSize:e}),L=e=>({type:"free",size:e}),V=e=>z("moov",void 0,[W(e.creationTime,e.trackDatas),...e.trackDatas.map(t=>H(t,e.creationTime)),e.isFragmented?eC(e.trackDatas):null,eL(e)]),W=(e,t)=>{let i=e7(Math.max(0,...t.filter(e=>e.samples.length>0).map(e=>{let t=R(e.samples);return t.timestamp+t.duration})),e6),r=Math.max(0,...t.map(e=>e.track.id))+1,a=!(0,n.LD)(e)||!(0,n.LD)(i),s=a?x:P;return O("mvhd",+a,0,[s(e),s(e),P(e6),s(i),E(1),I(1),Array(10).fill(0),D(M),Array(24).fill(0),P(r)])},H=(e,t)=>{let i=e5(e);return z("trak",void 0,[q(e,t),G(e,t),void 0!==i.name?z("udta",void 0,[z("name",[...n.oL.encode(i.name)])]):null])},q=(e,t)=>
90{let i;let r=R(e.samples),a=e7(r?r.timestamp+r.duration:0,e6),s=!(0,n.LD)(t)||!(0,n.LD)(a),o=s?x:P;i="video"===e.type?F(e.track.metadata.rotation??0):M;let c=2;return e.track.metadata.disposition?.default!==!1&&(c|=1),O("tkhd",+s,c,[o(t),o(t),P(e.track.id),P(0),o(a),Array(8).fill(0),T(0),T(e.track.id),I("audio"===e.type?1:0),T(0),D(i),E("video"===e.type?e.info.width:0),E("video"===e.type?e.info.height:0)])},G=(e,t)=>z("mdia",void 0,[$(e,t),Q(!0,j[e.type],K[e.type]),X(e)]),$=(e,t)=>{let i=R(e.samples),r=e7(i?i.timestamp+i.duration:0,e.timescale),a=!(0,n.LD)(t)||!(0,n.LD)(r),s=a?x:P;return O("mdhd",+a,0,[s(t),s(t),P(e.timescale),s(r),T(e0(e.track.metadata.languageCode??n.n3)),T(0)])},j={video:"vide",audio:"soun",subtitle:"text"},K={video:"MediabunnyVideoHandler",audio:"MediabunnySoundHandler",subtitle:"MediabunnyTextHandler"},Q=(e,t,i,r="\0\0\0\0")=>O("hdlr",0,0,[e?A("mhlr"):P(0),A(t),A(r),P(0),P(0),A(i,!0)]),X=e=>z("minf",void 0,[Z[e.type](),Y(),et(e)]),Z={video:()=>O("vmhd",0,1,[T(0),T(0),T(0),T(0)]),audio:()=>O("smhd",0,0,[T(0),T(0)]),subtitle:()=>O("nmhd",0,0)},Y=()=>z("dinf",void 0,[J()]),J=()=>O("dref",0,0,[P(1)],[ee()]),ee=()=>O("url ",0,1),et=e=>{let t=e.compositionTimeOffsetTable.length>1||e.compositionTimeOffsetTable.some(e=>0!==e.sampleCompositionTimeOffset);return z("stbl",void 0,[ei(e),eb(e),t?ev(e):null,t?eP(e):null,ey(e),eT(e),eS(e),ew(e)])},ei=e=>{let t;if("video"===e.type)t=er(eK(e.track.source._codec,e.info.decoderConfig.codec),e);else if("audio"===e.type){let i=eX(e.track.source._codec,e.muxer.isQuickTime);(0,n.hu)(i),t=eo(i,e)}else"subtitle"===e.type&&(t=ek(eY[e.track.source._codec],e));return(0,n.hu)(t),O("stsd",0,0,[P(1)],[t])},er=(e,t)=>z(e,[Array(6).fill(0),T(1),T(0),T(0),Array(12).fill(0),T(t.info.width),T(t.info.height),P(4718592),P(4718592),P(0),T(1),Array(32).fill(0),T(24),S(65535)],[eQ[t.track.source._codec](t),ea(t),(0,n.We)(t.info.decoderConfig.colorSpace)?es(t):null]),ea=e=>e.info.pixelAspectRatio.num===e.info.pixelAspectRatio.den?null:z("pasp",[P(e.info.pixelAspectRatio.num),P(e.info.pixelAspectRatio.den)]),es=e=>z("colr",[A("nclx"),T(n.$9[e.info.decoderConfig.colorSpace.primaries]),T(n.V3[e.info.decoderConfig.colorSpace.transfer]),T(n.P0[e.info.decoderConfig.colorSpace.matrix]),y((e.info.decoderConfig.colorSpace.fullRange?1:0)<<7)]),en=e=>{if(!e.info.decoderConfig)return null;let t=e.info.decoderConfig,i=t.codec.split("."),r=Number(i[1]),a=Number(i[2]),s=Number(i[3]),o=i[4]?Number(i[4]):1,c=i[8]?Number(i[8]):Number(t.colorSpace?.fullRange??0),l=i[5]?Number(i[5]):t.colorSpace?.primaries?n.$9[t.colorSpace.primaries]:2,d=i[6]?Number(i[6]):t.colorSpace?.transfer?n.V3[t.colorSpace.transfer]:2,u=i[7]?Number(i[7]):t.colorSpace?.matrix?n.P0[t.colorSpace.matrix]:2;return O("vpcC",1,0,[y(r),y(a),y((s<<4)+(o<<1)+c),y(l),y(d),y(u),T(0)])},eo=(e,t)=>{let i=0,a=16,s=r.zE.includes(t.track.source._codec);if(s){let e=t.track.source._codec,{sampleSize:s}=(0,r.AS)(e);(a=8*s)>16&&(i=1)}return t.muxer.isQuickTime&&(i=1),z(e,0===i?[Array(6).fill(0),T(1),T(i),T(0),P(0),T(t.info.numberOfChannels),T(a),T(0),T(0),T(t.info.sampleRate<65536?t.info.sampleRate:0),T(0)]:[Array(6).fill(0),T(1),T(i),T(0),P(0),T(t.info.numberOfChannels),T(Math.min(a,16)),S(s?0:-2),T(0),T(t.info.sampleRate<65536?t.info.sampleRate:0),T(0),s?[P(1),P(a/8),P(t.info.numberOfChannels*a/8)]:[P(0),P(0),P(0)],P(2)],[eZ(t.track.source._codec,t.muxer.isQuickTime)?.(t)??null])},ec=e=>{let t;switch(e.track.source._codec){case"aac":t=64;break;case"mp3":t=107;break;case"vorbis":t=221;break;default:throw Error(`Unhandled audio codec: ${e.track.source._codec}`)}let i=[...y(t),...y(21),...v(0),...P(0),...P(0)];if(e.info.decoderConfig.description){let t=(0,n._f)(e.info.decoderConfig.description);i=[...i,...y(5),..._(t.byteLength),...t]}return i=[...T(1),...y(0),...y(4),..._(i.length),...i,...y(6),...y(1),...y(2)],O("esds",0,0,i=[...y(3),..._(i.length),...i])},el=e=>z("wave",void 0,[ed(e),eu(e),z("\0\0\0\0")]),ed=e=>z("frma",[A(eX(e.track.source._codec,e.muxer.isQuickTime))]),eu=e=>{let{littleEndian:t}=(0,r.AS)(e.track.source._codec);return z("enda",[T(+t)])},eh=e=>{let t=e.info.numberOfChannels,i=3840,r=e.info.sampleRate,a=0,s=0,o=new Uint8Array(0),c=e.info.decoderConfig?.description;if(c){(0,n.hu)(c.byteLength>=18);let e=(0,n._f)(c),l=(0,u.d)(e);t=l.outputChannelCount,i=l.preSkip,r=l.inputSampleRate,a=l.outputGain,s=l.channelMappingFamily,l.channelMappingTable&&(o=l.channelMappingTable)}return z("dOps",[y(0),y(t),T(i),P(r),S(a),y(s),...o])},em=e=>{let t=e.info.decoderConfig?.description;return(0,n.hu)(t),O("dfLa",0,0,[...(0,n._f)(t).subarray(4)])},ef=e=>{let{littleEndian:t,sampleSize:i}=(0,r.AS)(e.track.source._codec);return O("pcmC",0,0,[y(+t),y(8*i)])}
90,ep=e=>{let t=(0,u.Zm)(e.info.firstPacket.data);if(!t)throw Error("Couldn't extract AC-3 frame info from the audio packet. Ensure the packets contain valid AC-3 sync frames (as specified in ETSI TS 102 366).");let i=new Uint8Array(3),r=new n.Zi(i);return r.writeBits(2,t.fscod),r.writeBits(5,t.bsid),r.writeBits(3,t.bsmod),r.writeBits(3,t.acmod),r.writeBits(1,t.lfeon),r.writeBits(5,t.bitRateCode),r.writeBits(5,0),z("dac3",[...i])},eg=e=>{let t=(0,u.M3)(e.info.firstPacket.data);if(!t)throw Error("Couldn't extract E-AC-3 frame info from the audio packet. Ensure the packets contain valid E-AC-3 sync frames (as specified in ETSI TS 102 366).");let i=16;for(let e of t.substreams)i+=23,e.numDepSub>0?i+=9:i+=1;let r=new Uint8Array(Math.ceil(i/8)),a=new n.Zi(r);for(let e of(a.writeBits(13,t.dataRate),a.writeBits(3,t.substreams.length-1),t.substreams))a.writeBits(2,e.fscod),a.writeBits(5,e.bsid),a.writeBits(1,0),a.writeBits(1,0),a.writeBits(3,e.bsmod),a.writeBits(3,e.acmod),a.writeBits(1,e.lfeon),a.writeBits(3,0),a.writeBits(4,e.numDepSub),e.numDepSub>0?a.writeBits(9,e.chanLoc):a.writeBits(1,0);return z("dec3",[...r])},ek=(e,t)=>z(e,[Array(6).fill(0),T(1)],[eJ[t.track.source._codec](t)]),eb=e=>O("stts",0,0,[P(e.timeToSampleTable.length),e.timeToSampleTable.map(e=>[P(e.sampleCount),P(e.sampleDelta)])]),ew=e=>{if(e.samples.every(e=>"key"===e.type))return null;let t=[...e.samples.entries()].filter(([,e])=>"key"===e.type);return O("stss",0,0,[P(t.length),t.map(([e])=>P(e+1))])},ey=e=>O("stsc",0,0,[P(e.compactlyCodedChunkTable.length),e.compactlyCodedChunkTable.map(e=>[P(e.firstChunk),P(e.samplesPerChunk),P(1)])]),eT=e=>{if("audio"===e.type&&e.info.requiresPcmTransformation){let{sampleSize:t}=(0,r.AS)(e.track.source._codec);return O("stsz",0,0,[P(t*e.info.numberOfChannels),P(e.samples.reduce((t,i)=>t+e7(i.duration,e.timescale),0))])}return O("stsz",0,0,[P(0),P(e.samples.length),e.samples.map(e=>P(e.size))])},eS=e=>e.finalizedChunks.length>0&&(0,n.Z$)(e.finalizedChunks).offset>=4294967296?O("co64",0,0,[P(e.finalizedChunks.length),e.finalizedChunks.map(e=>x(e.offset))]):O("stco",0,0,[P(e.finalizedChunks.length),e.finalizedChunks.map(e=>P(e.offset))]),ev=e=>O("ctts",1,0,[P(e.compositionTimeOffsetTable.length),e.compositionTimeOffsetTable.map(e=>[P(e.sampleCount),C(e.sampleCompositionTimeOffset)])]),eP=e=>{let t=1/0,i=-1/0,r=1/0,a=-1/0;(0,n.hu)(e.compositionTimeOffsetTable.length>0),(0,n.hu)(e.samples.length>0);for(let r=0;r<e.compositionTimeOffsetTable.length;r++){let a=e.compositionTimeOffsetTable[r];t=Math.min(t,a.sampleCompositionTimeOffset),i=Math.max(i,a.sampleCompositionTimeOffset)}for(let t=0;t<e.samples.length;t++){let i=e.samples[t];r=Math.min(r,e7(i.timestamp,e.timescale)),a=Math.max(a,e7(i.timestamp+i.duration,e.timescale))}let s=Math.max(-t,0);return a>=2147483648?null:O("cslg",0,0,[C(s),C(t),C(i),C(r),C(a)])},eC=e=>z("mvex",void 0,e.map(ex)),ex=e=>O("trex",0,0,[P(e.track.id),P(1),P(0),P(0),P(0)]),eI=(e,t)=>z("moof",void 0,[eE(e),...t.map(e_)]),eE=e=>O("mfhd",0,0,[P(e)]),eB=e=>{let t=0,i=0,r="delta"===e.type;return i|=+r,r?t|=1:t|=2,t<<24|i<<16|0},e_=e=>z("traf",void 0,[eA(e),eR(e),eF(e)]),eA=e=>{(0,n.hu)(e.currentChunk);let t=e.currentChunk.samples[1]??e.currentChunk.samples[0],i={duration:t.timescaleUnitsToNextSample,size:t.size,flags:eB(t)};return O("tfhd",0,131128,[P(e.track.id),P(i.duration),P(i.size),P(i.flags)])},eR=e=>((0,n.hu)(e.currentChunk),O("tfdt",1,0,[x(e7(e.currentChunk.startTimestamp,e.timescale))])),eF=e=>{(0,n.hu)(e.currentChunk);let t=e.currentChunk.samples.map(e=>e.timescaleUnitsToNextSample),i=e.currentChunk.samples.map(e=>e.size),r=e.currentChunk.samples.map(eB),a=e.currentChunk.samples.map(t=>e7(t.timestamp-t.decodeTimestamp,e.timescale)),s=new Set(t),o=new Set(i),c=new Set(r),l=new Set(a),d=2===c.size&&r[0]!==r[1],u=s.size>1,h=o.size>1,m=!d&&c.size>1,f=l.size>1||[...l].some(e=>0!==e);return O("trun",1,1|4*+d|256*+u|512*+h|1024*+m|2048*+f,[P(e.currentChunk.samples.length),P(e.currentChunk.offset-e.currentChunk.moofOffset||0),d?P(r[0]):[],e.currentChunk.samples.map((e,s)=>[u?P(t[s]):[],h?P(i[s]):[],m?P(r[s]):[],f?C(a[s]):[]])])},eM=e=>z("mfra",void 0,[...e.map(eD),ez()]),eD=(e,t)=>O("tfra",1,0,[P(e.track.id),P(63),P(e.finalizedChunks.length),e.finalizedChunks.map(i=>
90[x(e7(i.samples[0].timestamp,e.timescale)),x(i.moofOffset),P(t+1),P(1),P(1)])]),ez=()=>O("mfro",0,0,[P(0)]),eO=()=>z("vtte"),eU=(e,t,i,r,a)=>z("vttc",void 0,[null!==a?z("vsid",[C(a)]):null,null!==i?z("iden",[...n.oL.encode(i)]):null,null!==t?z("ctim",[...n.oL.encode((0,g.N$)(t))]):null,null!==r?z("sttg",[...n.oL.encode(r)]):null,z("payl",[...n.oL.encode(e)])]),eN=e=>z("vtta",[...n.oL.encode(e)]),eL=e=>{let t=[],i=e.format._options.metadataFormat??"auto",r=e.output._metadataTags;if("mdir"!==i&&("auto"!==i||e.isQuickTime)){if("mdta"===i){let e=e$(r);e&&t.push(e)}else("udta"===i||"auto"===i&&e.isQuickTime)&&eV(t,e.output._metadataTags)}else{let e=eG(r);e&&t.push(e)}return 0===t.length?null:z("udta",void 0,t)},eV=(e,t)=>{for(let{key:i,value:r}of(0,n.lY)(t))switch(i){case"title":e.push(eW("\xa9nam",r));break;case"description":e.push(eW("\xa9des",r));break;case"artist":e.push(eW("\xa9ART",r));break;case"album":e.push(eW("\xa9alb",r));break;case"albumArtist":e.push(eW("albr",r));break;case"genre":e.push(eW("\xa9gen",r));break;case"date":e.push(eW("\xa9day",r.toISOString().slice(0,10)));break;case"comment":e.push(eW("\xa9cmt",r));break;case"lyrics":e.push(eW("\xa9lyr",r));break;case"raw":case"discNumber":case"discsTotal":case"trackNumber":case"tracksTotal":case"images":break;default:(0,n.vE)(i)}if(t.raw)for(let i in t.raw){let r=t.raw[i];!(null==r||4!==i.length||e.some(e=>e.type===i))&&("string"==typeof r?e.push(eW(i,r)):r instanceof Uint8Array&&e.push(z(i,Array.from(r))))}},eW=(e,t)=>{let i=n.oL.encode(t);return z(e,[T(i.length),T(e0("und")),Array.from(i)])},eH={"image/jpeg":13,"image/png":14,"image/bmp":27},eq=(e,t)=>{let i=[];for(let{key:r,value:a}of(0,n.lY)(e))switch(r){case"title":i.push({key:t?"title":"\xa9nam",value:ej(a)});break;case"description":i.push({key:t?"description":"\xa9des",value:ej(a)});break;case"artist":i.push({key:t?"artist":"\xa9ART",value:ej(a)});break;case"album":i.push({key:t?"album":"\xa9alb",value:ej(a)});break;case"albumArtist":i.push({key:t?"album_artist":"aART",value:ej(a)});break;case"comment":i.push({key:t?"comment":"\xa9cmt",value:ej(a)});break;case"genre":i.push({key:t?"genre":"\xa9gen",value:ej(a)});break;case"lyrics":i.push({key:t?"lyrics":"\xa9lyr",value:ej(a)});break;case"date":i.push({key:t?"date":"\xa9day",value:ej(a.toISOString().slice(0,10))});break;case"images":for(let e of a)"coverFront"===e.kind&&i.push({key:"covr",value:z("data",[P(eH[e.mimeType]??0),P(0),Array.from(e.data)])});break;case"trackNumber":if(t){let t=void 0!==e.tracksTotal?`${a}/${e.tracksTotal}`:a.toString();i.push({key:"track",value:ej(t)})}else i.push({key:"trkn",value:z("data",[P(0),P(0),T(0),T(a),T(e.tracksTotal??0),T(0)])});break;case"discNumber":t||i.push({key:"disc",value:z("data",[P(0),P(0),T(0),T(a),T(e.discsTotal??0),T(0)])});break;case"tracksTotal":case"discsTotal":case"raw":break;default:(0,n.vE)(r)}if(e.raw)for(let r in e.raw){let a=e.raw[r];!(null==a||!t&&4!==r.length||i.some(e=>e.key===r))&&("string"==typeof a?i.push({key:r,value:ej(a)}):a instanceof Uint8Array?i.push({key:r,value:z("data",[P(0),P(0),Array.from(a)])}):a instanceof s.jC&&i.push({key:r,value:z("data",[P(eH[a.mimeType]??0),P(0),Array.from(a.data)])}))}return i},eG=e=>{let t=eq(e,!1);return 0===t.length?null:O("meta",0,0,void 0,[Q(!1,"mdir","","appl"),z("ilst",void 0,t.map(e=>z(e.key,void 0,[e.value])))])},e$=e=>{let t=eq(e,!0);return 0===t.length?null:z("meta",void 0,[Q(!1,"mdta",""),O("keys",0,0,[P(t.length)],t.map(e=>z("mdta",[...n.oL.encode(e.key)]))),z("ilst",void 0,t.map((e,t)=>z(String.fromCharCode(...P(t+1)),void 0,[e.value])))])},ej=e=>z("data",[P(1),P(0),...n.oL.encode(e)]),eK=(e,t)=>{switch(e){case"avc":return t.startsWith("avc3")?"avc3":"avc1";case"hevc":return"hvc1";case"vp8":return"vp08";case"vp9":return"vp09";case"av1":return"av01"}},eQ={avc:e=>e.info.decoderConfig&&z("avcC",[...(0,n._f)(e.info.decoderConfig.description)]),hevc:e=>e.info.decoderConfig&&z("hvcC",[...(0,n._f)(e.info.decoderConfig.description)]),vp8:en,vp9:en,av1:e=>z("av1C",(0,r.no)(e.info.decoderConfig.codec))},eX=(e,t)=>{switch(e){case"aac":case"mp3":case"vorbis":return"mp4a";case"opus":return"Opus";case"flac":return"fLaC";case"ulaw":return"ulaw";
90case"alaw":return"alaw";case"pcm-u8":return"raw ";case"pcm-s8":return"sowt";case"ac3":return"ac-3";case"eac3":return"ec-3"}if(t)switch(e){case"pcm-s16":return"sowt";case"pcm-s16be":return"twos";case"pcm-s24":case"pcm-s24be":return"in24";case"pcm-s32":case"pcm-s32be":return"in32";case"pcm-f32":case"pcm-f32be":return"fl32";case"pcm-f64":case"pcm-f64be":return"fl64"}else switch(e){case"pcm-s16":case"pcm-s16be":case"pcm-s24":case"pcm-s24be":case"pcm-s32":case"pcm-s32be":return"ipcm";case"pcm-f32":case"pcm-f32be":case"pcm-f64":case"pcm-f64be":return"fpcm"}},eZ=(e,t)=>{switch(e){case"aac":case"mp3":case"vorbis":return ec;case"opus":return eh;case"flac":return em;case"ac3":return ep;case"eac3":return eg}if(t)switch(e){case"pcm-s24":case"pcm-s24be":case"pcm-s32":case"pcm-s32be":case"pcm-f32":case"pcm-f32be":case"pcm-f64":case"pcm-f64be":return el}else switch(e){case"pcm-s16":case"pcm-s16be":case"pcm-s24":case"pcm-s24be":case"pcm-s32":case"pcm-s32be":case"pcm-f32":case"pcm-f32be":case"pcm-f64":case"pcm-f64be":return ef}return null},eY={webvtt:"wvtt"},eJ={webvtt:e=>z("vttC",[...n.oL.encode(e.info.config.description)])},e0=e=>{(0,n.hu)(3===e.length);let t=0;for(let i=0;i<3;i++)t<<=5,t+=e.charCodeAt(i)-96;return t};var e1=i(33595),e2=i(45954),e3=i(763),e4=i(98456),e8=i(43105);let e6=1e3,e5=e=>{let t={},i=e.track;return void 0!==i.metadata.name&&(t.name=i.metadata.name),t},e7=(e,t,i=!0)=>{let r=e*t;return i?Math.round(r):r};class e9 extends o{constructor(e,t){super(e),this.auxTarget=new e3.Vl,this.auxWriter=this.auxTarget._createWriter(),this.auxBoxWriter=new k(this.auxWriter),this.mdat=null,this.ftypSize=null,this.trackDatas=[],this.allTracksKnown=(0,n.Bw)(),this.creationTime=Math.floor(Date.now()/1e3)+2082844800,this.finalizedChunks=[],this.nextFragmentNumber=1,this.maxWrittenTimestamp=-1/0,this.format=t,this.writer=e._writer,this.boxWriter=new k(this.writer),this.isQuickTime=t instanceof tw;let i=this.writer instanceof e1.Ak&&"in-memory";this.fastStart=t._options.fastStart??i,this.isFragmented="fragmented"===this.fastStart,("in-memory"===this.fastStart||this.isFragmented)&&(this.writer.ensureMonotonicity=!0),this.minimumFragmentDuration=t._options.minimumFragmentDuration??1}async start(){let e=await this.mutex.acquire(),t=this.output._tracks.some(e=>"video"===e.type&&"avc"===e.source._codec);if(this.format._options.onFtyp&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(U({isQuickTime:this.isQuickTime,holdsAvc:t,fragmented:this.isFragmented})),this.format._options.onFtyp){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onFtyp(e,t)}if(this.ftypSize=this.writer.getPos(),"in-memory"===this.fastStart);else if("reserve"===this.fastStart){for(let e of this.output._tracks)if(void 0===e.metadata.maximumPacketCount)throw Error("All tracks must specify maximumPacketCount in their metadata when using fastStart: 'reserve'.")}else this.isFragmented||(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=N(!0),this.boxWriter.writeBox(this.mdat));await this.writer.flush(),e()}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(e=>"video"===e.type?e.info.decoderConfig.codec:"audio"===e.type?e.info.decoderConfig.codec:({webvtt:"wvtt"})[e.track.source._codec]);return(0,e4.o)({isQuickTime:this.isQuickTime,hasVideo:this.trackDatas.some(e=>"video"===e.type),hasAudio:this.trackDatas.some(e=>"audio"===e.type),codecStrings:e})}getVideoTrackData(e,t,i){let a=this.trackDatas.find(t=>t.track===e);if(a)return a;(0,r.Wn)(i),(0,n.hu)(i),(0,n.hu)(i.decoderConfig);let s={...i.decoderConfig};(0,n.hu)(void 0!==s.codedWidth),(0,n.hu)(void 0!==s.codedHeight);let o=!1;if("avc"!==e.source._codec||s.description){if("hevc"===e.source._codec&&!s.description){let e=(0,u.BW)(t.data);if(!e)throw Error("Couldn't extract an HEVCDecoderConfigurationRecord from the HEVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.265) when not providing a description, or provide a description (must be an HEVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in HEVC format.");s.description=(0,u.H)(e),o=!0}
90}else{let e=(0,u.E3)(t.data);if(!e)throw Error("Couldn't extract an AVCDecoderConfigurationRecord from the AVC packet. Make sure the packets are in Annex B format (as specified in ITU-T-REC-H.264) when not providing a description, or provide a description (must be an AVCDecoderConfigurationRecord as specified in ISO 14496-15) and ensure the packets are in AVCC format.");s.description=(0,u.RG)(e),o=!0}let c=(0,n.Ih)(1/(e.metadata.frameRate??57600),1e6).denominator,l=s.displayAspectWidth,d=s.displayAspectHeight,h=void 0===l||void 0===d?{num:1,den:1}:(0,n.P3)({num:l*s.codedHeight,den:d*s.codedWidth}),m={muxer:this,track:e,type:"video",info:{width:s.codedWidth,height:s.codedHeight,pixelAspectRatio:h,decoderConfig:s,requiresAnnexBTransformation:o},timescale:c,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(m),this.trackDatas.sort((e,t)=>e.track.id-t.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),m}getAudioTrackData(e,t,i){let a=this.trackDatas.find(t=>t.track===e);if(a)return a;(0,r.NQ)(i),(0,n.hu)(i),(0,n.hu)(i.decoderConfig);let s={...i.decoderConfig},o=!1;if("aac"===e.source._codec&&!s.description){let e=(0,e2.gM)(h.CJ.tempFromBytes(t.data));if(!e)throw Error("Couldn't parse ADTS header from the AAC packet. Make sure the packets are in ADTS format (as specified in ISO 13818-7) when not providing a description, or provide a description (must be an AudioSpecificConfig as specified in ISO 14496-3) and ensure the packets are raw AAC data.");let i=r.v6[e.samplingFrequencyIndex],a=r.y7[e.channelConfiguration];if(void 0===i||void 0===a)throw Error("Invalid ADTS frame header.");s.description=(0,r.QK)({objectType:e.objectType,sampleRate:i,numberOfChannels:a}),o=!0}let c={muxer:this,track:e,type:"audio",info:{numberOfChannels:i.decoderConfig.numberOfChannels,sampleRate:i.decoderConfig.sampleRate,decoderConfig:s,requiresPcmTransformation:!this.isFragmented&&r.zE.includes(e.source._codec),requiresAdtsStripping:o,firstPacket:t},timescale:s.sampleRate,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[]};return this.trackDatas.push(c),this.trackDatas.sort((e,t)=>e.track.id-t.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getSubtitleTrackData(e,t){let i=this.trackDatas.find(t=>t.track===e);if(i)return i;(0,r.sG)(t),(0,n.hu)(t),(0,n.hu)(t.config);let a={muxer:this,track:e,type:"subtitle",info:{config:t.config},timescale:1e3,samples:[],sampleQueue:[],timestampProcessingQueue:[],timeToSampleTable:[],compositionTimeOffsetTable:[],lastTimescaleUnits:null,lastSample:null,finalizedChunks:[],currentChunk:null,compactlyCodedChunkTable:[],lastCueEndTimestamp:0,cueQueue:[],nextSourceId:0,cueToSourceId:new WeakMap};return this.trackDatas.push(a),this.trackDatas.sort((e,t)=>e.track.id-t.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),a}async addEncodedVideoPacket(e,t,i){let r=await this.mutex.acquire();try{let r=this.getVideoTrackData(e,t,i),a=t.data;if(r.info.requiresAnnexBTransformation){let e=[...(0,u.bO)(a)].map(e=>a.subarray(e.offset,e.offset+e.length));if(0===e.length)throw Error("Failed to transform packet data. Make sure all packets are provided in Annex B format, as specified in ITU-T-REC-H.264 and ITU-T-REC-H.265.");a=(0,u.Q3)(e,4)}let s=this.validateAndNormalizeTimestamp(r.track,t.timestamp,"key"===t.type),n=this.createSampleForTrack(r,a,s,t.duration,t.type);await this.registerSample(r,n)}finally{r()}}async addEncodedAudioPacket(e,t,i){let r=await this.mutex.acquire();try{let r=this.getAudioTrackData(e,t,i),a=t.data;if(r.info.requiresAdtsStripping){let e=(0,e2.gM)(h.CJ.tempFromBytes(a));if(!e)throw Error("Expected ADTS frame, didn't get one.");let t=null===e.crcCheck?e2.Ls:e2.MB;a=a.subarray(t)}let s=this.validateAndNormalizeTimestamp(r.track,t.timestamp,"key"===t.type),n=this.createSampleForTrack(r,a,s,t.duration,t.type);r.info.requiresPcmTransformation&&await this.maybePadWithSilence(r,s),await this.registerSample(r,n)}finally{r()}}async maybePadWithSilence(e,t){let i=(0,n.Z$)(e.samples),a=i?i.timestamp+i.duration:0,s=t-a,o=e7(s,e.timescale);if(o>0){let{sampleSize:t,silentValue:i}=(0,r.AS)(e.info.decoderConfig.codec),n=new Uint8Array(o*e.info.numberOfChannels*t).fill(i),c=this.createSampleForTrack(e,new Uint8Array(n.buffer),a,s,"key");await this.registerSample(e,c)}}async addSubtitleCue(e,t,i){let r=await this.mutex.acquire();try{let r=this.getSubtitleTrackData(e,i);this.validateAndNormalizeTimestamp(r.track,t.timestamp,!0),"webvtt"===e.source._codec&&(r.cueQueue.push(t),await this.processWebVTTCues(r,t.timestamp))}finally{r()}}async processWebVTTCues(e,t){for(;e.cueQueue.length>0;){let i=new Set([]);for(let r of e.cueQueue)(0,n.hu)(r.timestamp<=t),(0,n.hu)(e.lastCueEndTimestamp<=r.timestamp+r.duration),i.add(Math.max(r.timestamp,e.lastCueEndTimestamp)),i.add(r.timestamp+r.duration);let r=[...i].sort((e,t)=>
90e-t),a=r[0],s=r[1]??a;if(t<s)break;if(e.lastCueEndTimestamp<a){this.auxWriter.seek(0);let t=eO();this.auxBoxWriter.writeBox(t);let i=this.auxWriter.getSlice(0,this.auxWriter.getPos()),r=this.createSampleForTrack(e,i,e.lastCueEndTimestamp,a-e.lastCueEndTimestamp,"key");await this.registerSample(e,r),e.lastCueEndTimestamp=a}this.auxWriter.seek(0);for(let t=0;t<e.cueQueue.length;t++){let i=e.cueQueue[t];if(i.timestamp>=s)break;g.LB.lastIndex=0;let r=g.LB.test(i.text),n=i.timestamp+i.duration,o=e.cueToSourceId.get(i);if(void 0===o&&s<n&&(o=e.nextSourceId++,e.cueToSourceId.set(i,o)),i.notes){let e=eN(i.notes);this.auxBoxWriter.writeBox(e)}let c=eU(i.text,r?a:null,i.identifier??null,i.settings??null,o??null);this.auxBoxWriter.writeBox(c),n===s&&e.cueQueue.splice(t--,1)}let o=this.auxWriter.getSlice(0,this.auxWriter.getPos()),c=this.createSampleForTrack(e,o,a,s-a,"key");await this.registerSample(e,c),e.lastCueEndTimestamp=s}}createSampleForTrack(e,t,i,r,a){return{timestamp:i,decodeTimestamp:i,duration:r,data:t,size:t.byteLength,type:a,timescaleUnitsToNextSample:e7(r,e.timescale)}}processTimestamps(e,t){if(0===e.timestampProcessingQueue.length)return;if("audio"===e.type&&e.info.requiresPcmTransformation){let t=0;for(let i=0;i<e.timestampProcessingQueue.length;i++)t+=e7(e.timestampProcessingQueue[i].duration,e.timescale);if(0===e.timeToSampleTable.length)e.timeToSampleTable.push({sampleCount:t,sampleDelta:1});else{let i=(0,n.Z$)(e.timeToSampleTable);i.sampleCount+=t}e.timestampProcessingQueue.length=0;return}let i=e.timestampProcessingQueue.map(e=>e.timestamp).sort((e,t)=>e-t);for(let t=0;t<e.timestampProcessingQueue.length;t++){let r=e.timestampProcessingQueue[t];r.decodeTimestamp=i[t],this.isFragmented||null!==e.lastTimescaleUnits||(r.decodeTimestamp=0);let a=e7(r.timestamp-r.decodeTimestamp,e.timescale),s=e7(r.duration,e.timescale);if(null!==e.lastTimescaleUnits){(0,n.hu)(e.lastSample);let t=Math.round(e7(r.decodeTimestamp,e.timescale,!1)-e.lastTimescaleUnits);if((0,n.hu)(t>=0),e.lastTimescaleUnits+=t,e.lastSample.timescaleUnitsToNextSample=t,!this.isFragmented){let i=(0,n.Z$)(e.timeToSampleTable);if((0,n.hu)(i),1===i.sampleCount){i.sampleDelta=t;let r=e.timeToSampleTable[e.timeToSampleTable.length-2];r&&r.sampleDelta===t&&(r.sampleCount++,e.timeToSampleTable.pop(),i=r)}else i.sampleDelta!==t&&(i.sampleCount--,e.timeToSampleTable.push(i={sampleCount:1,sampleDelta:t}));i.sampleDelta===s?i.sampleCount++:e.timeToSampleTable.push({sampleCount:1,sampleDelta:s});let r=(0,n.Z$)(e.compositionTimeOffsetTable);(0,n.hu)(r),r.sampleCompositionTimeOffset===a?r.sampleCount++:e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:a})}}else e.lastTimescaleUnits=e7(r.decodeTimestamp,e.timescale,!1),this.isFragmented||(e.timeToSampleTable.push({sampleCount:1,sampleDelta:s}),e.compositionTimeOffsetTable.push({sampleCount:1,sampleCompositionTimeOffset:a}));e.lastSample=r}if(e.timestampProcessingQueue.length=0,(0,n.hu)(e.lastSample),(0,n.hu)(null!==e.lastTimescaleUnits),void 0!==t&&0===e.lastSample.timescaleUnitsToNextSample){(0,n.hu)("key"===t.type);let i=Math.round(e7(t.timestamp,e.timescale,!1)-e.lastTimescaleUnits);e.lastSample.timescaleUnitsToNextSample=i}}async registerSample(e,t){"key"===t.type&&this.processTimestamps(e,t),e.timestampProcessingQueue.push(t),this.isFragmented?(e.sampleQueue.push(t),await this.interleaveSamples()):"reserve"===this.fastStart?await this.registerSampleFastStartReserve(e,t):await this.addSampleToTrack(e,t)}async addSampleToTrack(e,t){if(!this.isFragmented&&(e.samples.push(t),"reserve"===this.fastStart)){let t=e.track.metadata.maximumPacketCount;if((0,n.hu)(void 0!==t),e.samples.length>t)throw Error(`Track #${e.track.id} has already reached the maximum packet count (${t}). Either add less packets or increase the maximum packet count.`)}let i=!1;if(e.currentChunk){e.currentChunk.startTimestamp=Math.min(e.currentChunk.startTimestamp,t.timestamp);let r=t.timestamp-e.currentChunk.startTimestamp;if(this.isFragmented){let a=this.trackDatas.every(i=>{if(e===i)return"key"===t.type;let r=i.sampleQueue[0];return r?"key"===r.type:i.track.source._closed});r>=this.minimumFragmentDuration&&a&&t.timestamp>this.maxWrittenTimestamp&&(i=!0,await this.finalizeFragment())}else i=r>=.5}else i=!0;i&&(e.currentChunk&&await this.finalizeCurrentChunk(e),e.currentChunk={startTimestamp:t.timestamp,samples:[],offset:null,moofOffset:null}),(0,n.hu)(e.currentChunk),e.currentChunk.samples.push(t),this.isFragmented&&(this.maxWrittenTimestamp=Math.max(this.maxWrittenTimestamp,t.timestamp))}async finalizeCurrentChunk(e){if((0,n.hu)(!this.isFragmented),!e.currentChunk)return;e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk);let t=e.currentChunk.samples.length;if("audio"===e.type&&e.info.requiresPcmTransformation&&(t=e.currentChunk.samples.reduce((t,i)=>t+e7(i.duration,e.timescale),0)),(0===e.compactlyCodedChunkTable.length||(0,n.Z$)(e.compactlyCodedChunkTable).samplesPerChunk!==t)&&e.compactlyCodedChunkTable.push({firstChunk:e.finalizedChunks.length,samplesPerChunk:t}),"in-memory"===this.fastStart){e.currentChunk.offset=0;return}for(let t of(e.currentChunk.offset=this.writer.getPos(),e.currentChunk.samples))(0,n.hu)(t.data),this.writer.write(t.data),t.data=null;await this.writer.flush()}async interleaveSamples(e=!1){if((0,n.hu)(this.isFragmented),e||this.allTracksAreKnown())e:for(;;){let t=null,i=1/0;for(let r of this.trackDatas){if(!e&&0===r.sampleQueue.length&&!r.track.source._closed)break e;r.sampleQueue.length>0&&r.sampleQueue[0].timestamp<i&&(t=r,i=r.sampleQueue[0].timestamp)}if(!t)break;let r=t.sampleQueue.shift();await this.addSampleToTrack(t,r)}}async finalizeFragment(e=!0){(0,n.hu)(this.isFragmented);let t=this.nextFragmentNumber++;if(1===t){this.format._options.onMoov&&this.writer.startTrackingWrites();let e=V(this);if(this.boxWriter.writeBox(e),this.format._options.onMoov){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onMoov(e,t)}}let i=this.trackDatas.filter(e=>e.currentChunk),r=eI(t,i),a=this.writer.getPos(),s=a+this.boxWriter.measureBox(r),o=s+e8.PM,c=1/0;for(let e of i){for(let t of(e.currentChunk.offset=o,e.currentChunk.moofOff
90set=a,e.currentChunk.samples))o+=t.size;c=Math.min(c,e.currentChunk.startTimestamp)}let l=o-s,d=l>=4294967296;if(d)for(let e of i)e.currentChunk.offset+=e8.cq-e8.PM;this.format._options.onMoof&&this.writer.startTrackingWrites();let u=eI(t,i);if(this.boxWriter.writeBox(u),this.format._options.onMoof){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onMoof(e,t,c)}(0,n.hu)(this.writer.getPos()===s),this.format._options.onMdat&&this.writer.startTrackingWrites();let h=N(d);for(let e of(h.size=l,this.boxWriter.writeBox(h),this.writer.seek(s+(d?e8.cq:e8.PM)),i))for(let t of e.currentChunk.samples)this.writer.write(t.data),t.data=null;if(this.format._options.onMdat){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onMdat(e,t)}for(let e of i)e.finalizedChunks.push(e.currentChunk),this.finalizedChunks.push(e.currentChunk),e.currentChunk=null;e&&await this.writer.flush()}async registerSampleFastStartReserve(e,t){if(this.allTracksAreKnown()){if(!this.mdat){let e=V(this),t=this.boxWriter.measureBox(e)+this.computeSampleTableSizeUpperBound()+4096;for(let e of((0,n.hu)(null!==this.ftypSize),this.writer.seek(this.ftypSize+t),this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat=N(!0),this.boxWriter.writeBox(this.mdat),this.trackDatas)){for(let t of e.sampleQueue)await this.addSampleToTrack(e,t);e.sampleQueue.length=0}}await this.addSampleToTrack(e,t)}else e.sampleQueue.push(t)}computeSampleTableSizeUpperBound(){(0,n.hu)("reserve"===this.fastStart);let e=0;for(let t of this.trackDatas){let i=t.track.metadata.maximumPacketCount;(0,n.hu)(void 0!==i),e+=8*Math.ceil(2/3*i)+4*i+8*Math.ceil(2/3*i)+12*Math.ceil(2/3*i)+4*i+8*i}return e}async onTrackClose(e){let t=await this.mutex.acquire();if("subtitle"===e.type&&"webvtt"===e.source._codec){let t=this.trackDatas.find(t=>t.track===e);t&&await this.processWebVTTCues(t,1/0)}this.allTracksAreKnown()&&this.allTracksKnown.resolve(),this.isFragmented&&await this.interleaveSamples(),t()}async finalize(){let e=await this.mutex.acquire();for(let e of(this.allTracksKnown.resolve(),this.trackDatas))"subtitle"===e.type&&"webvtt"===e.track.source._codec&&await this.processWebVTTCues(e,1/0);if(this.isFragmented){for(let e of(await this.interleaveSamples(!0),this.trackDatas))this.processTimestamps(e);await this.finalizeFragment(!1)}else for(let e of this.trackDatas)this.processTimestamps(e),await this.finalizeCurrentChunk(e);if("in-memory"===this.fastStart){let e;this.mdat=N(!1);for(let t=0;t<2;t++){let t=V(this),i=this.boxWriter.measureBox(t);e=this.boxWriter.measureBox(this.mdat);let r=this.writer.getPos()+i+e;for(let t of this.finalizedChunks)for(let{data:i}of(t.offset=r,t.samples))(0,n.hu)(i),r+=i.byteLength,e+=i.byteLength;if(r<4294967296)break;e>=4294967296&&(this.mdat.largeSize=!0)}this.format._options.onMoov&&this.writer.startTrackingWrites();let t=V(this);if(this.boxWriter.writeBox(t),this.format._options.onMoov){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onMoov(e,t)}for(let t of(this.format._options.onMdat&&this.writer.startTrackingWrites(),this.mdat.size=e,this.boxWriter.writeBox(this.mdat),this.finalizedChunks))for(let e of t.samples)(0,n.hu)(e.data),this.writer.write(e.data),e.data=null;if(this.format._options.onMdat){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onMdat(e,t)}}else if(this.isFragmented){let e=this.writer.getPos(),t=eM(this.trackDatas);this.boxWriter.writeBox(t);let i=this.writer.getPos()-e;this.writer.seek(this.writer.getPos()-4),this.boxWriter.writeU32(i)}else{(0,n.hu)(this.mdat);let e=this.boxWriter.offsets.get(this.mdat);(0,n.hu)(void 0!==e);let t=this.writer.getPos()-e;if(this.mdat.size=t,this.mdat.largeSize=t>=4294967296,this.boxWriter.patchBox(this.mdat),this.format._options.onMdat){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onMdat(e,t)}let i=V(this);if("reserve"===this.fastStart){(0,n.hu)(null!==this.ftypSize),this.writer.seek(this.ftypSize),this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(i);let e=this.boxWriter.offsets.get(this.mdat)-this.writer.getPos();this.boxWriter.writeBox(L(e))}else this.format._options.onMoov&&this.writer.startTrackingWrites(),this.boxWriter.writeBox(i);if(this.format._options.onMoov){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onMoov(e,t)}}e()}}var te=i(75698),tt=i(45179);let ti="Mediabunny",tr={video:1,audio:2,subtitle:17};class ta extends o{constructor(e,t){super(e),this.trackDatas=[],this.allTracksKnown=(0,n.Bw)(),this.segment=null,this.segmentInfo=null,this.seekHead=null,this.tracksElement=null,this.tagsElement=null,this.attachmentsElement=null,this.segmentDuration=null,this.cues=null,this.currentCluster=null,this.currentClusterStartMsTimestamp=null,this.currentClusterMa
90xMsTimestamp=null,this.trackDatasInCurrentCluster=new Map,this.duration=0,this.writer=e._writer,this.format=t,this.ebmlWriter=new te.K5(this.writer),this.format._options.appendOnly&&(this.writer.ensureMonotonicity=!0)}async start(){let e=await this.mutex.acquire();this.writeEBMLHeader(),this.createSegmentInfo(),this.createCues(),await this.writer.flush(),e()}writeEBMLHeader(){this.format._options.onEbmlHeader&&this.writer.startTrackingWrites();let e={id:te.RG.EBML,data:[{id:te.RG.EBMLVersion,data:1},{id:te.RG.EBMLReadVersion,data:1},{id:te.RG.EBMLMaxIDLength,data:4},{id:te.RG.EBMLMaxSizeLength,data:8},{id:te.RG.DocType,data:this.format instanceof tT?"webm":"matroska"},{id:te.RG.DocTypeVersion,data:2},{id:te.RG.DocTypeReadVersion,data:2}]};if(this.ebmlWriter.writeEBML(e),this.format._options.onEbmlHeader){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onEbmlHeader(e,t)}}maybeCreateSeekHead(e){if(this.format._options.appendOnly)return;let t=new Uint8Array([28,83,187,107]),i=new Uint8Array([21,73,169,102]),r=new Uint8Array([22,84,174,107]),a=new Uint8Array([25,65,164,105]),s=new Uint8Array([18,84,195,103]),n={id:te.RG.SeekHead,data:[{id:te.RG.Seek,data:[{id:te.RG.SeekID,data:t},{id:te.RG.SeekPosition,size:5,data:e?this.ebmlWriter.offsets.get(this.cues)-this.segmentDataOffset:0}]},{id:te.RG.Seek,data:[{id:te.RG.SeekID,data:i},{id:te.RG.SeekPosition,size:5,data:e?this.ebmlWriter.offsets.get(this.segmentInfo)-this.segmentDataOffset:0}]},{id:te.RG.Seek,data:[{id:te.RG.SeekID,data:r},{id:te.RG.SeekPosition,size:5,data:e?this.ebmlWriter.offsets.get(this.tracksElement)-this.segmentDataOffset:0}]},this.attachmentsElement?{id:te.RG.Seek,data:[{id:te.RG.SeekID,data:a},{id:te.RG.SeekPosition,size:5,data:e?this.ebmlWriter.offsets.get(this.attachmentsElement)-this.segmentDataOffset:0}]}:null,this.tagsElement?{id:te.RG.Seek,data:[{id:te.RG.SeekID,data:s},{id:te.RG.SeekPosition,size:5,data:e?this.ebmlWriter.offsets.get(this.tagsElement)-this.segmentDataOffset:0}]}:null]};this.seekHead=n}createSegmentInfo(){let e={id:te.RG.Duration,data:new te.iH(0)};this.segmentDuration=e;let t={id:te.RG.Info,data:[{id:te.RG.TimestampScale,data:1e6},{id:te.RG.MuxingApp,data:ti},{id:te.RG.WritingApp,data:ti},this.format._options.appendOnly?null:e]};this.segmentInfo=t}createTracks(){let e={id:te.RG.Tracks,data:[]};for(let t of(this.tracksElement=e,this.trackDatas)){let i=te.Pp[t.track.source._codec];(0,n.hu)(i);let a=0;if("audio"===t.type&&"opus"===t.track.source._codec){a=1e6*80;let e=t.info.decoderConfig.description;if(e){let t=(0,n._f)(e);a=Math.round((0,u.d)(t).preSkip/r.L3*1e9)}}e.data.push({id:te.RG.TrackEntry,data:[{id:te.RG.TrackNumber,data:t.track.id},{id:te.RG.TrackUID,data:t.track.id},{id:te.RG.TrackType,data:tr[t.type]},t.track.metadata.disposition?.default===!1?{id:te.RG.FlagDefault,data:0}:null,t.track.metadata.disposition?.forced?{id:te.RG.FlagForced,data:1}:null,t.track.metadata.disposition?.hearingImpaired?{id:te.RG.FlagHearingImpaired,data:1}:null,t.track.metadata.disposition?.visuallyImpaired?{id:te.RG.FlagVisualImpaired,data:1}:null,t.track.metadata.disposition?.original?{id:te.RG.FlagOriginal,data:1}:null,t.track.metadata.disposition?.commentary?{id:te.RG.FlagCommentary,data:1}:null,{id:te.RG.FlagLacing,data:0},{id:te.RG.Language,data:t.track.metadata.languageCode??n.n3},{id:te.RG.CodecID,data:i},{id:te.RG.CodecDelay,data:0},{id:te.RG.SeekPreRoll,data:a},void 0!==t.track.metadata.name?{id:te.RG.Name,data:new te.f(t.track.metadata.name)}:null,"video"===t.type?this.videoSpecificTrackInfo(t):null,"audio"===t.type?this.audioSpecificTrackInfo(t):null,"subtitle"===t.type?this.subtitleSpecificTrackInfo(t):null]})}}videoSpecificTrackInfo(e){let{frameRate:t,rotation:i}=e.track.metadata,r=[e.info.decoderConfig.description?{id:te.RG.CodecPrivate,data:(0,n._f)(e.info.decoderConfig.description)}:null,t?{id:te.RG.DefaultDuration,data:1e9/t}:null],a=i?(0,n.lP)(-i):0,s=!!e.info.aspectRatio&&e.info.aspectRatio.num*e.info.height!=e.info.aspectRatio.den*e.info.width,o=e.info.decoderConfig.colorSpace;return r.push({id:te.RG.Video,data:[{id:te.RG.PixelWidth,data:e.info.width},{id:te.RG.PixelHeight,data:e.info.height},s?{id:te.RG.DisplayWidth,data:e.info.aspectRatio.num}:null,s?{id:te.RG.DisplayHeight,data:e.info.aspectRatio.den}:null,s?{id:te.RG.DisplayUnit,data:3}:null,e.info.alphaMode?{id:te.RG.AlphaMode,data:1}:null,(0,n.We)(o)?{id:te.RG.Colour,data:[{id:te.RG.MatrixCoefficients,data:n.P0[o.matrix]},{id:te.RG.TransferCharacteristics,data:n.V3[o.transfer]},{id:te.RG.Primaries,data:n.$9[o.primaries]},{id:te.RG.Range,data:o.fullRange?2:1}]}:null,a?{id:te.RG.Projection,data:[{id:te.RG.ProjectionType,data:0},{id:te.RG.ProjectionPoseRoll,data:new te.Ju((a+180)%360-180)}]}:null]}),r}audioSpecificTrackInfo(e){let t=r.zE.includes(e.track.source._codec)?(0,r.AS)(e.track.source._codec):null;return[e.info.decoderConfig.description?{id:te.RG.CodecPrivate,data:(0,n._f)(e.info.decoderConfig.description)}:null,{id:te.RG.Audio,data:[{id:te.RG.SamplingFrequency,data:new te.Ju(e.info.sampleRate)},{id:te.RG.Channels,data:e.info.numberOfChannels},t?{id:te.RG.BitDepth,data:8*t.sampleSize}:null]}]}subtitleSpecificTrackInfo(e){return[{id:te.RG.CodecPrivate,data:n.oL.encode(e.info.config.description)}]}maybeCreateTags(){let e=[],t=(t,i)=>{e.push({id:te.RG.SimpleTag,data:[{id:te.RG.TagName,data:new te.f(t)},"string"==typeof i?{id:te.RG.TagString,data:new te.f(i)}:{id:te.RG.TagBinary,data:i}]})},i=this.output._metadataTags,r=new Set;for(let{key:e,value:a}of(0,n.lY)(i))switch(e){case"title":t("TITLE",a),r.add("TITLE");break;
90case"description":t("DESCRIPTION",a),r.add("DESCRIPTION");break;case"artist":t("ARTIST",a),r.add("ARTIST");break;case"album":t("ALBUM",a),r.add("ALBUM");break;case"albumArtist":t("ALBUM_ARTIST",a),r.add("ALBUM_ARTIST");break;case"genre":t("GENRE",a),r.add("GENRE");break;case"comment":t("COMMENT",a),r.add("COMMENT");break;case"lyrics":t("LYRICS",a),r.add("LYRICS");break;case"date":t("DATE",a.toISOString().slice(0,10)),r.add("DATE");break;case"trackNumber":t("PART_NUMBER",void 0!==i.tracksTotal?`${a}/${i.tracksTotal}`:a.toString()),r.add("PART_NUMBER");break;case"discNumber":t("DISC",void 0!==i.discsTotal?`${a}/${i.discsTotal}`:a.toString()),r.add("DISC");break;case"tracksTotal":case"discsTotal":case"images":case"raw":break;default:(0,n.vE)(e)}if(i.raw)for(let e in i.raw){let a=i.raw[e];!(null==a||r.has(e))&&("string"==typeof a||a instanceof Uint8Array)&&t(e,a)}0!==e.length&&(this.tagsElement={id:te.RG.Tags,data:[{id:te.RG.Tag,data:[{id:te.RG.Targets,data:[{id:te.RG.TargetTypeValue,data:50},{id:te.RG.TargetType,data:"MOVIE"}]},...e]}]})}maybeCreateAttachments(){let e=this.output._metadataTags,t=[],i=new Set,r=e.images??[];for(let e of r){let r,a=e.name;for(void 0===a&&(a=("coverFront"===e.kind?"cover":"coverBack"===e.kind?"back":"image")+((0,n._9)(e.mimeType)??""));;){r=0n;for(let e=0;e<8;e++)r<<=8n,r|=BigInt(Math.floor(256*Math.random()));if(0n!==r&&!i.has(r))break}i.add(r),t.push({id:te.RG.AttachedFile,data:[void 0!==e.description?{id:te.RG.FileDescription,data:new te.f(e.description)}:null,{id:te.RG.FileName,data:new te.f(a)},{id:te.RG.FileMediaType,data:e.mimeType},{id:te.RG.FileData,data:e.data},{id:te.RG.FileUID,data:r}]})}for(let[i,a]of Object.entries(e.raw??{}))!(a instanceof s.sZ)||!/^\d+$/.test(i)||r.find(e=>
90e.mimeType===a.mimeType&&(0,n.wl)(e.data,a.data))||t.push({id:te.RG.AttachedFile,data:[void 0!==a.description?{id:te.RG.FileDescription,data:new te.f(a.description)}:null,{id:te.RG.FileName,data:new te.f(a.name??"")},{id:te.RG.FileMediaType,data:a.mimeType??""},{id:te.RG.FileData,data:a.data},{id:te.RG.FileUID,data:BigInt(i)}]});0!==t.length&&(this.attachmentsElement={id:te.RG.Attachments,data:t})}createSegment(){this.createTracks(),this.maybeCreateTags(),this.maybeCreateAttachments(),this.maybeCreateSeekHead(!1);let e={id:te.RG.Segment,size:this.format._options.appendOnly?-1:6,data:[this.seekHead,this.segmentInfo,this.tracksElement,this.attachmentsElement,this.tagsElement]};if(this.segment=e,this.format._options.onSegmentHeader&&this.writer.startTrackingWrites(),this.ebmlWriter.writeEBML(e),this.format._options.onSegmentHeader){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onSegmentHeader(e,t)}}createCues(){this.cues={id:te.RG.Cues,data:[]}}get segmentDataOffset(){return(0,n.hu)(this.segment),this.ebmlWriter.dataOffsets.get(this.segment)}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async getMimeType(){await this.allTracksKnown.promise;let e=this.trackDatas.map(e=>"video"===e.type?e.info.decoderConfig.codec:"audio"===e.type?e.info.decoderConfig.codec:({webvtt:"wvtt"})[e.track.source._codec]);return(0,tt.K)({isWebM:this.format instanceof tT,hasVideo:this.trackDatas.some(e=>"video"===e.type),hasAudio:this.trackDatas.some(e=>"audio"===e.type),codecStrings:e})}getVideoTrackData(e,t,i){let a=this.trackDatas.find(t=>t.track===e);if(a)return a;(0,r.Wn)(i),(0,n.hu)(i),(0,n.hu)(i.decoderConfig),(0,n.hu)(void 0!==i.decoderConfig.codedWidth),(0,n.hu)(void 0!==i.decoderConfig.codedHeight);let s=i.decoderConfig.displayAspectWidth,o=i.decoderConfig.displayAspectHeight,c=void 0===s||void 0===o?null:(0,n.P3)({num:s,den:o}),l={track:e,type:"video",info:{width:i.decoderConfig.codedWidth,height:i.decoderConfig.codedHeight,aspectRatio:c,decoderConfig:i.decoderConfig,alphaMode:!!t.sideData.alpha},chunkQueue:[],lastWrittenMsTimestamp:null};return"vp9"===e.source._codec?l.info.decoderConfig={...l.info.decoderConfig,description:new Uint8Array((0,r.ON)(l.info.decoderConfig.codec))}:"av1"===e.source._codec&&(l.info.decoderConfig={...l.info.decoderConfig,description:new Uint8Array((0,r.no)(l.info.decoderConfig.codec))}),this.trackDatas.push(l),this.trackDatas.sort((e,t)=>e.track.id-t.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),l}getAudioTrackData(e,t,i){let a=this.trackDatas.find(t=>t.track===e);if(a)return a;(0,r.NQ)(i),(0,n.hu)(i),(0,n.hu)(i.decoderConfig);let s={...i.decoderConfig},o=!1;if("aac"===e.source._codec&&!s.description){let e=(0,e2.gM)(h.CJ.tempFromBytes(t.data));if(!e)throw Error("Couldn't parse ADTS header from the AAC packet. Make sure the packets are in ADTS format (as specified in ISO 13818-7) when not providing a description, or provide a description (must be an AudioSpecificConfig as specified in ISO 14496-3) and ensure the packets are raw AAC data.");let i=r.v6[e.samplingFrequencyIndex],a=r.y7[e.channelConfiguration];if(void 0===i||void 0===a)throw Error("Invalid ADTS frame header.");s.description=(0,r.QK)({objectType:e.objectType,sampleRate:i,numberOfChannels:a}),o=!0}let c={track:e,type:"audio",info:{numberOfChannels:i.decoderConfig.numberOfChannels,sampleRate:i.decoderConfig.sampleRate,decoderConfig:s,requiresAdtsStripping:o},chunkQueue:[],lastWrittenMsTimestamp:null};return this.trackDatas.push(c),this.trackDatas.sort((e,t)=>e.track.id-t.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),c}getSubtitleTrackData(e,t){let i=this.trackDatas.find(t=>t.track===e);if(i)return i;(0,r.sG)(t),(0,n.hu)(t),(0,n.hu)(t.config);let a={track:e,type:"subtitle",info:{config:t.config},chunkQueue:[],lastWrittenMsTimestamp:null};return this.trackDatas.push(a),this.trackDatas.sort((e,t)=>e.track.id-t.track.id),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),a}async addEncodedVideoPacket(e,t,i){let r=await this.mutex.acquire();try{let r=this.getVideoTrackData(e,t,i),a="key"===t.type,s=this.validateAndNormalizeTimestamp(r.track,t.timestamp,a),o=t.duration;void 0!==e.metadata.frameRate&&(s=(0,n.O9)(s,1/e.metadata.frameRate),o=(0,n.O9)(o,1/e.metadata.frameRate));let c=r.info.alphaMode?t.sideData.alpha??null:null,l=this.createInternalChunk(t.data,s,o,t.type,c);
90"vp9"===e.source._codec&&this.fixVP9ColorSpace(r,l),r.chunkQueue.push(l),await this.interleaveChunks()}finally{r()}}async addEncodedAudioPacket(e,t,i){let r=await this.mutex.acquire();try{let r=this.getAudioTrackData(e,t,i),a=t.data;if(r.info.requiresAdtsStripping){let e=(0,e2.gM)(h.CJ.tempFromBytes(a));if(!e)throw Error("Expected ADTS frame, didn't get one.");let t=null===e.crcCheck?e2.Ls:e2.MB;a=a.subarray(t)}let s="key"===t.type,n=this.validateAndNormalizeTimestamp(r.track,t.timestamp,s),o=this.createInternalChunk(a,n,t.duration,t.type);r.chunkQueue.push(o),await this.interleaveChunks()}finally{r()}}async addSubtitleCue(e,t,i){let r=await this.mutex.acquire();try{let r=this.getSubtitleTrackData(e,i),a=this.validateAndNormalizeTimestamp(r.track,t.timestamp,!0),s=t.text,o=Math.round(1e3*a);g.LB.lastIndex=0,s=s.replace(g.LB,e=>{let t=(0,g.nf)(e.slice(1,-1));return`<${(0,g.N$)(t-o)}>`});let c=n.oL.encode(s),l=`${t.settings??""}
91${t.identifier??""}
92${t.notes??""}`,d=this.createInternalChunk(c,a,t.duration,"key",l.trim()?n.oL.encode(l):null);r.chunkQueue.push(d),await this.interleaveChunks()}finally{r()}}async interleaveChunks(e=!1){if(e||this.allTracksAreKnown()){e:for(;;){let t=null,i=1/0;for(let r of this.trackDatas){if(!e&&0===r.chunkQueue.length&&!r.track.source._closed)break e;r.chunkQueue.length>0&&r.chunkQueue[0].timestamp<i&&(t=r,i=r.chunkQueue[0].timestamp)}if(!t)break;let r=t.chunkQueue.shift();this.writeBlock(t,r)}e||await this.writer.flush()}}fixVP9ColorSpace(e,t){if("key"!==t.type||!e.info.decoderConfig.colorSpace||!e.info.decoderConfig.colorSpace.matrix)return;let i=new n.Zi(t.data);i.skipBits(2);let r=i.readBits(1),a=(i.readBits(1)<<1)+r;if(3===a&&i.skipBits(1),i.readBits(1)||0!==i.readBits(1)||(i.skipBits(2),4817730!==i.readBits(24)))return;a>=2&&i.skipBits(1);let s={rgb:7,bt709:2,bt470bg:1,smpte170m:3}[e.info.decoderConfig.colorSpace.matrix];(0,n.YM)(t.data,i.pos,i.pos+3,s)}createInternalChunk(e,t,i,r,a=null){return{data:e,type:r,timestamp:t,duration:i,additions:a}}writeBlock(e,t){this.segment||this.createSegment();let i=Math.round(1e3*t.timestamp),r=this.trackDatas.every(i=>{if(e===i)return"key"===t.type;let r=i.chunkQueue[0];return r?"key"===r.type:i.track.source._closed}),a=!1;if(this.currentCluster){(0,n.hu)(null!==this.currentClusterStartMsTimestamp),(0,n.hu)(null!==this.currentClusterMaxMsTimestamp);let e=i-this.currentClusterStartMsTimestamp;a=r&&i>this.currentClusterMaxMsTimestamp&&e>=1e3*(this.format._options.minimumClusterDuration??1)||e>32767}else a=!0;a&&this.createNewCluster(i);let s=i-this.currentClusterStartMsTimestamp;if(s<-32768)return;let o=new Uint8Array(4),c=new DataView(o.buffer);c.setUint8(0,128|e.track.id),c.setInt16(1,s,!1);let l=Math.round(1e3*t.duration);if(t.additions){let r={id:te.RG.BlockGroup,data:[{id:te.RG.Block,data:[o,t.data]},"delta"===t.type?{id:te.RG.ReferenceBlock,data:new te.hf(e.lastWrittenMsTimestamp-i)}:null,t.additions?{id:te.RG.BlockAdditions,data:[{id:te.RG.BlockMore,data:[{id:te.RG.BlockAddID,data:1},{id:te.RG.BlockAdditional,data:t.additions}]}]}:null,l>0?{id:te.RG.BlockDuration,data:l}:null]};this.ebmlWriter.writeEBML(r)}else{c.setUint8(3,Number("key"===t.type)<<7);let e={id:te.RG.SimpleBlock,data:[o,t.data]};this.ebmlWriter.writeEBML(e)}this.duration=Math.max(this.duration,i+l),e.lastWrittenMsTimestamp=i,this.trackDatasInCurrentCluster.has(e)||this.trackDatasInCurrentCluster.set(e,{firstMsTimestamp:i}),this.currentClusterMaxMsTimestamp=Math.max(this.currentClusterMaxMsTimestamp,i)}createNewCluster(e){this.currentCluster&&this.finalizeCurrentCluster(),this.format._options.onCluster&&this.writer.startTrackingWrites(),this.currentCluster={id:te.RG.Cluster,size:this.format._options.appendOnly?-1:5,data:[{id:te.RG.Timestamp,data:e}]},this.ebmlWriter.writeEBML(this.currentCluster),this.currentClusterStartMsTimestamp=e,this.currentClusterMaxMsTimestamp=e,this.trackDatasInCurrentCluster.clear()}finalizeCurrentCluster(){if((0,n.hu)(this.currentCluster),!this.format._options.appendOnly){let e=this.writer.getPos()-this.ebmlWriter.dataOffsets.get(this.currentCluster),t=this.writer.getPos();this.writer.seek(this.ebmlWriter.offsets.get(this.currentCluster)+4),this.ebmlWriter.writeVarInt(e,5),this.writer.seek(t)}if(this.format._options.onCluster){(0,n.hu)(null!==this.currentClusterStartMsTimestamp);let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onCluster(e,t,this.currentClusterStartMsTimestamp/1e3)}let e=this.ebmlWriter.offsets.get(this.currentCluster)-this.segmentDataOffset,t=new Map;for(let[e,{firstMsTimestamp:i}]of this.trackDatasInCurrentCluster)t.has(i)||t.set(i,[]),t.get(i).push(e);for(let[i,r]of[...t.entries()].sort((e,t)=>
92e[0]-t[0]))(0,n.hu)(this.cues),this.cues.data.push({id:te.RG.CuePoint,data:[{id:te.RG.CueTime,data:i},...r.map(t=>({id:te.RG.CueTrackPositions,data:[{id:te.RG.CueTrack,data:t.track.id},{id:te.RG.CueClusterPosition,data:e}]}))]})}async onTrackClose(){let e=await this.mutex.acquire();this.allTracksAreKnown()&&this.allTracksKnown.resolve(),await this.interleaveChunks(),e()}async finalize(){let e=await this.mutex.acquire();if(this.allTracksKnown.resolve(),this.segment||this.createSegment(),await this.interleaveChunks(!0),this.currentCluster&&this.finalizeCurrentCluster(),(0,n.hu)(this.cues),this.ebmlWriter.writeEBML(this.cues),!this.format._options.appendOnly){let e=this.writer.getPos(),t=this.writer.getPos()-this.segmentDataOffset;this.writer.seek(this.ebmlWriter.offsets.get(this.segment)+4),this.ebmlWriter.writeVarInt(t,6),this.segmentDuration.data=new te.iH(this.duration),this.writer.seek(this.ebmlWriter.offsets.get(this.segmentDuration)),this.ebmlWriter.writeEBML(this.segmentDuration),(0,n.hu)(this.seekHead),this.writer.seek(this.ebmlWriter.offsets.get(this.seekHead)),this.maybeCreateSeekHead(!0),this.ebmlWriter.writeEBML(this.seekHead),this.writer.seek(e)}e()}}var ts=i(66914);class tn{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer)}writeU32(e){this.helperView.setUint32(0,e,!1),this.writer.write(this.helper.subarray(0,4))}writeXingFrame(e){let t;let i=this.writer.getPos(),r=224|e.mpegVersionId<<3|e.layer<<1;t=2&e.mpegVersionId&&1&e.mpegVersionId?0:1;let a=-1,s=64*t+16*e.layer;for(let i=0;i<16;i++){let r=ts.J[s+i];if((0,ts.c0)(t,e.layer,1e3*r,e.sampleRate,0)>=155){a=i;break}}if(-1===a)throw Error("No suitable bitrate found.");let n=a<<4|e.frequencyIndex<<2|0,o=e.channel<<6|e.modeExtension<<4|e.copyright<<3|e.original<<2|e.emphasis;this.helper[0]=255,this.helper[1]=r,this.helper[2]=n,this.helper[3]=o,this.writer.write(this.helper.subarray(0,4));let c=(0,ts.Bx)(e.mpegVersionId,e.channel);this.writer.seek(i+c),this.writeU32(ts.i8);let l=0;null!==e.frameCount&&(l|=1),null!==e.fileSize&&(l|=2),null!==e.toc&&(l|=4),this.writeU32(l),this.writeU32(e.frameCount??0),this.writeU32(e.fileSize??0),this.writer.write(e.toc??new Uint8Array(100));let d=ts.J[s+a],u=(0,ts.c0)(t,e.layer,1e3*d,e.sampleRate,0);this.writer.seek(i+u)}}class to extends o{constructor(e,t){super(e),this.xingFrameData=null,this.frameCount=0,this.framePositions=[],this.xingFramePos=null,this.format=t,this.writer=e._writer,this.mp3Writer=new tn(e._writer)}async start(){(0,s.y3)(this.output._metadataTags)||new a.gY(this.writer).writeId3V2Tag(this.output._metadataTags)}async getMimeType(){return"audio/mpeg"}async addEncodedVideoPacket(){throw Error("MP3 does not support video.")}async addEncodedAudioPacket(e,t){let i=await this.mutex.acquire();try{let i=!1!==this.format._options.xingHeader;if(!this.xingFrameData&&i){let e=(0,n.NK)(t.data);if(e.byteLength<4)throw Error("Invalid MP3 header in sample.");let i=e.getUint32(0,!1),r=(0,ts.hE)(i,null).header;if(!r)throw Error("Invalid MP3 header in sample.");let a=(0,ts.Bx)(r.mpegVersionId,r.channel);if(e.byteLength>=a+4){let t=e.getUint32(a,!1);if(t===ts.i8||t===ts.H_)return}this.xingFrameData={mpegVersionId:r.mpegVersionId,layer:r.layer,frequencyIndex:r.frequencyIndex,sampleRate:r.sampleRate,channel:r.channel,modeExtension:r.modeExtension,copyright:r.copyright,original:r.original,emphasis:r.emphasis,frameCount:null,fileSize:null,toc:null},this.xingFramePos=this.writer.getPos(),this.mp3Writer.writeXingFrame(this.xingFrameData),this.frameCount++}this.validateAndNormalizeTimestamp(e,t.timestamp,"key"===t.type),this.writer.write(t.data),this.frameCount++,await this.writer.flush(),i&&this.framePositions.push(this.writer.getPos())}finally{i()}}async addSubtitleCue(){throw Error("MP3 does not support subtitles.")}async finalize(){if(!this.xingFrameData||null===this.xingFramePos)return;let e=await this.mutex.acquire(),t=this.writer.getPos();this.writer.seek(this.xingFramePos);let i=new Uint8Array(100);for(let e=0;e<100;e++){let r=Math.floor(this.framePositions.length*(e/100));(0,n.hu)(-1!==r&&r<this.framePositions.length);let a=this.framePositions[r];i[e]=a/t*256}if(this.xingFrameData.frameCount=this.frameCount,this.xingFrameData.fileSize=t,this.xingFrameData.toc=i,this.format._options.onXingFrame&&this.writer.startTrackingWrites(),this.mp3Writer.writeXingFrame(this.xingFrameData),this.format._options.onXingFrame){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onXingFrame(e,t)}this.writer.seek(t),e()}}var tc=i(58729),tl=i(20169);class td extends o{constructor(e,t){super(e),this.trackDatas=[],this.bosPagesWritten=!1,this.allTracksKnown=(0,n.Bw)(),this.pageBytes=new Uint8Array(tl.N),this.pageView=new DataView(this.pageBytes.buffer),this.format=t,this.writer=e._writer,this.writer.ensureMonotonicity=!0}async start(){}async getMimeType(){return await this.allTracksKnown.promise,(0,tc.hg)({codecStrings:this.trackDatas.map(e=>e.codecInfo.codec)})}addEncodedVideoPacket(){throw Error("Video tracks are not supported.")}getTrackData(e,t){let i;let a=this.trackDatas.find(t=>t.track===e);if(a)return a;do i=Math.floor(4294967296*Math.random());while(this.trackDatas.some(e=>e.serialNumber===i));(0,n.hu)("vorbis"===e.source._codec||"opus"===e.source._codec),(0,r.NQ)(t),(0,n.hu)(t),(0,n.hu)(t.decoderConfig);let s={track:e,serialNumber:i,internalSampleRate:"opus"===e.source._codec?r.L3:t.decoderConfig.sampleRate,codecInfo:{codec:e.source._codec,vorbisInfo:null,opusInfo:null},vorbisLastBlocksize:null,packetQueue:[],currentTimestampInSamples:0,pagesWritten:0,currentGranulePosition:0,
92currentLacingValues:[],currentPageData:[],currentPageSize:27,currentPageStartsWithFreshPacket:!0,currentPageStartTimestampInSamples:0};return this.queueHeaderPackets(s,t),this.trackDatas.push(s),this.allTracksAreKnown()&&this.allTracksKnown.resolve(),s}queueHeaderPackets(e,t){if((0,n.hu)(t.decoderConfig),"vorbis"===e.track.source._codec){(0,n.hu)(t.decoderConfig.description);let i=(0,n._f)(t.decoderConfig.description);if(2!==i[0])throw TypeError("First byte of Vorbis decoder description must be 2.");let r=1,a=()=>{let e=0;for(;;){let t=i[r++];if(void 0===t)throw TypeError("Vorbis decoder description is too short.");if(e+=t,t<255)return e}},s=a(),o=a();if(i.length-r<=0)throw TypeError("Vorbis decoder description is too short.");let c=i.subarray(r,r+=s);r+=o;let l=i.subarray(r),d=new Uint8Array(7);d[0]=3,d[1]=118,d[2]=111,d[3]=114,d[4]=98,d[5]=105,d[6]=115;let h=(0,u.GL)(d,this.output._metadataTags,!0);e.packetQueue.push({data:c,timestampInSamples:0,durationInSamples:0,forcePageFlush:!0},{data:h,timestampInSamples:0,durationInSamples:0,forcePageFlush:!1},{data:l,timestampInSamples:0,durationInSamples:0,forcePageFlush:!0});let m=(0,n.NK)(c).getUint8(28);e.codecInfo.vorbisInfo={blocksizes:[1<<(15&m),1<<(m>>4)],modeBlockflags:(0,u.zg)(l).modeBlockflags}}else if("opus"===e.track.source._codec){if(!t.decoderConfig.description)throw TypeError("For Ogg, Opus decoder description is required.");let i=(0,n._f)(t.decoderConfig.description),r=new Uint8Array(8),a=(0,n.NK)(r);a.setUint32(0,1332770163,!1),a.setUint32(4,1415669619,!1);let s=(0,u.GL)(r,this.output._metadataTags,!0);e.packetQueue.push({data:i,timestampInSamples:0,durationInSamples:0,forcePageFlush:!0},{data:s,timestampInSamples:0,durationInSamples:0,forcePageFlush:!0}),e.codecInfo.opusInfo={preSkip:(0,u.d)(i).preSkip}}}async addEncodedAudioPacket(e,t,i){let r=await this.mutex.acquire();try{let r=this.getTrackData(e,i);this.validateAndNormalizeTimestamp(r.track,t.timestamp,"key"===t.type);let a=r.currentTimestampInSamples,{durationInSamples:s,vorbisBlockSize:n}=(0,tc.vp)(t.data,r.codecInfo,r.vorbisLastBlocksize);r.currentTimestampInSamples+=s,r.vorbisLastBlocksize=n,r.packetQueue.push({data:t.data,timestampInSamples:a,durationInSamples:s,forcePageFlush:!1}),await this.interleavePages()}finally{r()}}addSubtitleCue(){throw Error("Subtitle tracks are not supported.")}allTracksAreKnown(){for(let e of this.output._tracks)if(!e.source._closed&&!this.trackDatas.some(t=>t.track===e))return!1;return!0}async interleavePages(e=!1){if(!this.bosPagesWritten){if(!this.allTracksAreKnown()&&!e)return;for(let e of this.trackDatas)for(;e.packetQueue.length>0;){let t=e.packetQueue.shift();if(this.writePacket(e,t,!1),t.forcePageFlush)break}this.bosPagesWritten=!0}e:for(;;){let t=null,i=1/0;for(let r of this.trackDatas){if(!e&&r.packetQueue.length<=1&&!r.track.source._closed)break e;r.packetQueue.length>0&&r.packetQueue[0].timestampInSamples<i&&(t=r,i=r.packetQueue[0].timestampInSamples)}if(!t)break;let r=t.packetQueue.shift(),a=0===t.packetQueue.length;this.writePacket(t,r,a)}e||await this.writer.flush()}writePacket(e,t,i){let r=t.timestampInSamples+t.durationInSamples;if(void 0!==this.format._options.maximumPageDuration){let t=this.format._options.maximumPageDuration*e.internalSampleRate;e.currentLacingValues.length>0&&r-e.currentPageStartTimestampInSamples>t&&this.writePage(e,!1)}let a=t.data.length,s=0,n=0;for(;;){0===e.currentLacingValues.length&&s>0&&(e.currentPageStartsWithFreshPacket=!1);let r=Math.min(255,a);e.currentLacingValues.push(r),e.currentPageSize++,n+=r;let o=a<255;if(255===e.currentLacingValues.length){let r=t.data.subarray(s,n);if(s=n,e.currentPageData.push(r),e.currentPageSize+=r.length,this.writePage(e,i&&o),o)return}if(o)break;a-=255}let o=t.data.subarray(s);e.currentPageData.push(o),e.currentPageSize+=o.length,e.currentGranulePosition=r,(e.currentPageSize>=8192||t.forcePageFlush)&&this.writePage(e,i)}writePage(e,t){this.pageView.setUint32(0,tc.OL,!0),this.pageView.setUint8(4,0);let i=0;e.currentPageStartsWithFreshPacket||(i|=1),0===e.pagesWritten&&(i|=2),t&&(i|=4),this.pageView.setUint8(5,i);let r=e.currentLacingValues.every(e=>255===e)?-1:e.currentGranulePosition;(0,n.zT)(this.pageView,6,r,!0),this.pageView.setUint32(14,e.serialNumber,!0),this.pageView.setUint32(18,e.pagesWritten,!0),this.pageView.setUint32(22,0,!0),this.pageView.setUint8(26,e.currentLacingValues.length),this.pageBytes.set(e.currentLacingValues,27);let a=27+e.currentLacingValues.length;for(let t of e.currentPageData)this.pageBytes.set(t,a),a+=t.length;let s=this.pageBytes.subarray(0,a),o=(0,tc.sd)(s);if(this.pageView.setUint32(22,o,!0),e.pagesWritten++,e.currentLacingValues.length=0,e.currentPageData.length=0,e.currentPageSize=27,e.currentPageStartsWithFreshPacket=!0,e.currentPageStartTimestampInSamples=e.currentGranulePosition,this.format._options.onPage&&this.writer.startTrackingWrites(),this.writer.write(s),this.format._options.onPage){let{data:t,start:i}=this.writer.stopTrackingWrites();this.format._options.onPage(t,i,e.track.source)}}async onTrackClose(){let e=await this.mutex.acquire();this.allTracksAreKnown()&&this.allTracksKnown.resolve(),await this.interleavePages(),e()}async finalize(){let e=await this.mutex.acquire();for(let e of(this.allTracksKnown.resolve(),await this.interleavePages(!0),this.trackDatas))e.currentLacingValues.length>0&&this.writePage(e,!0);e()}}i(77678),new Uint8Array([9,240]),new Uint8Array([70,1]);let tu=new Uint32Array(256);for(let e=0;e<256;e++){let t=e<<24;for(let e=0;e<8;e++)t=2147483648&t?t<<1^79764919:t<<1;tu[e]=t>>>0&4294967295}let th=new Uint8Array(16);{let e=(0,n.NK)(th);th[0]=0,e.setUint16(1,45069,!1),e.setUint16(3,1,!1),th[5]=193,th[6]=0,th[7]=0,e.setUint16(8,1,!1),e.setUint16(10,61440,!1),e.setUint32(12,(e=>{let t=4294967295;for(let i=0;i<e.length;i++)t=(t<<8^tu[t>>>24^e[i]])>>>0;return t})(th.subarray(0,12)),!1)}var tm=i(88913);class tf{constructor(e){this.writer=e,this.helper=new Uint8Array(8),this.helperView=new DataView(this.helper.buffer)}writeU16(e){this.helperView.setUint16(0,e,!0),this.writer.write(this.helper.subarray(0,2))}writeU32(e){this.helperView.setUint32(0,e,!0),this.writer.write(this.helper.subarray(0,4))}writeU64(e){this.helperView.setUint32(0,e,!0),this.helperView.setUint32(4,Math.floor(e/4294967296),!0),this.writer.write(this.helper)}writeAscii(e){this.writer.write(new TextEncoder().encode(e))}}class tp extends o{constructor(e,t){super(e),this.headerWritten=!1,this.dataSize=0,this.sampleRate=null,this.sampleCount=0,this.riffSizePos=null,this.dataSizePos=null,this.ds64RiffSizePos=null,this.ds64DataSizePos=null,this.ds64SampleCountPos=null,this.format=t,this.writer=e._writer,this.riffWriter=new tf(e._writer),this.isRf64=!!t._options.large}async start(){}async getMimeType(){return"audio/wav"}async addEncodedVideoPacket(){throw Error("WAVE does not support video.")}async addEncodedAudioPacket(e,t,i){let a=await this.mutex.acquire();try{if(this.headerWritten||((0,r.NQ)(i),(0,n.hu)(i),(0,n.hu)(i.decoderConfig),this.writeHeader(e,i.decoderConfig),this.sampleRate=i.decoderConfig.sampleRate,this.headerWritten=!0),this.validateAndNormalizeTimestamp(e,t.timestamp,"key"===t.type),!this.isRf64&&this.writer.getPos()+t.data.byteLength>=4294967296)throw Error("Adding more audio data would exceed the maximum RIFF size of 4 GiB. To write larger files, use RF64 by setting `large: true` in the WavOutputFormatOptions.");this.writer.write(t.data),this.dataSize+=t.data.byteLength,this.sampleCount+=Math.round(t.duration*this.sampleRate),await this.writer.flush()}finally{a()}}async addSubtitleCue(){throw Error("WAVE does not support subtitles.")}writeHeader(e,t){let i;this.format._options.onHeader&&this.writer.startTrackingWrites();let a=e.source._codec,o=(0,r.AS)(a);i="ulaw"===o.dataType?tm.V.MULAW:"alaw"===o.dataType?tm.V.ALAW:"float"===o.dataType?tm.V.IEEE_FLOAT:tm.V.PCM;let c=t.numberOfChannels,l=t.sampleRate,d=o.sampleSize*c;if(this.riffWriter.writeAscii(this.isRf64?"RF64":"RIFF"),this.isRf64?this.riffWriter.writeU32(4294967295):(this.riffSizePos=this.writer.getPos(),this.riffWriter.writeU32(0)),this.riffWriter.writeAscii("WAVE"),this.isRf64&&(this.riffWriter.writeAscii("ds64"),this.riffWriter.writeU32(28),this.ds64RiffSizePos=this.writer.getPos(),this.riffWriter.writeU64(0),this.ds64DataSizePos=this.writer.getPos(),this.riffWriter.writeU64(0),this.ds64SampleCountPos=this.writer.getPos(),this.riffWriter.writeU64(0),this.riffWriter.writeU32(0)),this.riffWriter.writeAscii("fmt "),this.riffWriter.writeU32(16),this.riffWriter.writeU16(i),this.riffWriter.writeU16(c),this.riffWriter.writeU32(l),this.riffWriter.writeU32(l*d),this.riffWriter.writeU16(d),this.riffWriter.writeU16(8*o.sampleSize),!(0,s.y3)(this.output._metadataTags)){let e=this.format._options.metadataFormat??"info";"info"===e?this.writeInfoChunk(this.output._metadataTags):"id3"===e?this.writeId3Chunk(this.output._metadataTags):(0,n.vE)(e)}if(this.riffWriter.writeAscii("data"),this.isRf64?this.riffWriter.writeU32(4294967295):(this.dataSizePos=this.writer.getPos(),this.riffWriter.writeU32(0)),this.format._options.onHeader){let{data:e,start:t}=this.writer.stopTrackingWrites();this.format._options.onHeader(e,t)}}writeInfoChunk(e){let t=this.writer.getPos();this.riffWriter.writeAscii("LIST"),this.riffWriter.writeU32(0),this.riffWriter.writeAscii("INFO");let i=new Set,r=(e,t)=>{if(!(0,n.Xd)(t)){console.warn(`Didn't write tag '${e}' because '${t}' is not ISO 8859-1-compatible.`);return}let r=t.length+1,a=new Uint8Array(r);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);this.riffWriter.writeAscii(e),this.riffWriter.writeU32(r),this.writer.write(a),1&r&&this.writer.write(new Uint8Array(1)),i.add(e)};for(let{key:t,value:a}of(0,n.lY)(e))switch(t){case"title":r("INAM",a),i.add("INAM");break;case"artist":r("IART",a),i.add("IART");break;case"album":r("IPRD",a),i.add("IPRD");break;case"trackNumber":r("ITRK",void 0!==e.tracksTotal?`${a}/${e.tracksTotal}`:a.toString()),i.add("ITRK");break;case"genre":r("IGNR",a),i.add("IGNR");break;case"date":r("ICRD",a.toISOString().slice(0,10)),i.add("ICRD");break;case"comment":r("ICMT",a),i.add("ICMT");break;case"albumArtist":case"discNumber":case"tracksTotal":case"discsTotal":case"description":case"lyrics":case"images":case"raw":break;default:(0,n.vE)(t)}if(e.raw)for(let t in e.raw){let a=e.raw[t];null==a||4!==t.length||i.has(t)||"string"!=typeof a||r(t,a)}let a=this.writer.getPos(),s=a-t-8;this.writer.seek(t+4),this.riffWriter.writeU32(s),this.writer.seek(a),1&s&&this.writer.write(new Uint8Array(1))}writeId3Chunk(e){let t=this.writer.getPos();this.riffWriter.writeAscii("ID3 "),this.riffWriter.writeU32(0);let i=new a.gY(this.writer).writeId3V2Tag(e),r=this.writer.getPos();this.writer.seek(t+4),this.riffWriter.writeU32(i),this.writer.seek(r),1&i&&this.writer.write(new Uint8Array(1))}async finalize(){let e=await this.mutex.acquire(),t=this.writer.getPos();this.isRf64?((0,n.hu)(null!==this.ds64RiffSizePos),this.writer.seek(this.ds64RiffSizePos),this.riffWriter.writeU64(t-8),(0,n.hu)(null!==this.ds64DataSizePos),this.writer.seek(this.ds64DataSizePos),this.riffWriter.writeU64(this.dataSize),(0,n.hu)(null!==this.ds64SampleCountPos),this.writer.seek(this.ds64SampleCountPos),this.riffWriter.writeU64(this.sampleCount)):((0,n.hu)(null!==this.riffSizePos),this.writer.seek(this.riffSizePos),this.riffWriter.writeU32(t-8),(0,n.hu)(null!==this.dataSizePos),this.writer.seek(this.dataSizePos),this.riffWriter.writeU32(this.dataSize)),this.writer.seek(t),e()}}
92class tg{getSupportedVideoCodecs(){return this.getSupportedCodecs().filter(e=>r.Au.includes(e))}getSupportedAudioCodecs(){return this.getSupportedCodecs().filter(e=>r.eY.includes(e))}getSupportedSubtitleCodecs(){return this.getSupportedCodecs().filter(e=>r.tW.includes(e))}_codecUnsupportedHint(e){return""}}class tk extends tg{constructor(e={}){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.fastStart&&![!1,"in-memory","reserve","fragmented"].includes(e.fastStart))throw TypeError("options.fastStart, when provided, must be false, 'in-memory', 'reserve', or 'fragmented'.");if(void 0!==e.minimumFragmentDuration&&(!Number.isFinite(e.minimumFragmentDuration)||e.minimumFragmentDuration<0))throw TypeError("options.minimumFragmentDuration, when provided, must be a non-negative number.");if(void 0!==e.onFtyp&&"function"!=typeof e.onFtyp)throw TypeError("options.onFtyp, when provided, must be a function.");if(void 0!==e.onMoov&&"function"!=typeof e.onMoov)throw TypeError("options.onMoov, when provided, must be a function.");if(void 0!==e.onMdat&&"function"!=typeof e.onMdat)throw TypeError("options.onMdat, when provided, must be a function.");if(void 0!==e.onMoof&&"function"!=typeof e.onMoof)throw TypeError("options.onMoof, when provided, must be a function.");if(void 0!==e.metadataFormat&&!["mdir","mdta","udta","auto"].includes(e.metadataFormat))throw TypeError("options.metadataFormat, when provided, must be either 'auto', 'mdir', 'mdta', or 'udta'.");super(),this._options=e}getSupportedTrackCounts(){return{video:{min:0,max:4294967296-1},audio:{min:0,max:4294967296-1},subtitle:{min:0,max:4294967296-1},total:{min:1,max:4294967296-1}}}get supportsVideoRotationMetadata(){return!0}get supportsTimestampedMediaData(){return!0}_createMuxer(e){return new e9(e,this)}}class tb extends tk{constructor(e){super(e)}get _name(){return"MP4"}get fileExtension(){return".mp4"}get mimeType(){return"video/mp4"}getSupportedCodecs(){return[...r.Au,...r.Vr,"pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be",...r.tW]}_codecUnsupportedHint(e){return new tw().getSupportedCodecs().includes(e)?" Switching to MOV will grant support for this codec.":""}}class tw extends tk{constructor(e){super(e)}get _name(){return"MOV"}get fileExtension(){return".mov"}get mimeType(){return"video/quicktime"}getSupportedCodecs(){return[...r.Au,...r.eY]}_codecUnsupportedHint(e){return new tb().getSupportedCodecs().includes(e)?" Switching to MP4 will grant support for this codec.":""}}class ty extends tg{constructor(e={}){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.appendOnly&&"boolean"!=typeof e.appendOnly)throw TypeError("options.appendOnly, when provided, must be a boolean.");if(void 0!==e.minimumClusterDuration&&(!Number.isFinite(e.minimumClusterDuration)||e.minimumClusterDuration<0))throw TypeError("options.minimumClusterDuration, when provided, must be a non-negative number.");if(void 0!==e.onEbmlHeader&&"function"!=typeof e.onEbmlHeader)throw TypeError("options.onEbmlHeader, when provided, must be a function.");if(void 0!==e.onSegmentHeader&&"function"!=typeof e.onSegmentHeader)throw TypeError("options.onHeader, when provided, must be a function.");if(void 0!==e.onCluster&&"function"!=typeof e.onCluster)throw TypeError("options.onCluster, when provided, must be a function.");super(),this._options=e}_createMuxer(e){return new ta(e,this)}get _name(){return"Matroska"}getSupportedTrackCounts(){return{video:{min:0,max:127},audio:{min:0,max:127},subtitle:{min:0,max:127},total:{min:1,max:127}}}get fileExtension(){return".mkv"}get mimeType(){return"video/x-matroska"}getSupportedCodecs(){return[...r.Au,...r.Vr,...r.zE.filter(e=>!["pcm-s8","pcm-f32be","pcm-f64be","ulaw","alaw"].includes(e)),...r.tW]}get supportsVideoRotationMetadata(){return!1}get supportsTimestampedMediaData(){return!0}}class tT extends ty{constructor(e){super(e)}getSupportedCodecs(){return[...r.Au.filter(e=>["vp8","vp9","av1"].includes(e)),...r.eY.filter(e=>["opus","vorbis"].includes(e)),...r.tW]}get _name(){return"WebM"}get fileExtension(){return".webm"}get mimeType(){return"video/webm"}_codecUnsupportedHint(e){return new ty().getSupportedCodecs().includes(e)?" Switching to MKV will grant support for this codec.":""}}class tS extends tg{constructor(e={}){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.xingHeader&&"boolean"!=typeof e.xingHeader)throw TypeError("options.xingHeader, when provided, must be a boolean.");if(void 0!==e.onXingFrame&&"function"!=typeof e.onXingFrame)throw TypeError("options.onXingFrame, when provided, must be a function.");super(),this._options=e}_createMuxer(e){return new to(e,this)}get _name(){return"MP3"}getSupportedTrackCounts(){return{video:{min:0,max:0},audio:{min:1,max:1},subtitle:{min:0,max:0},total:{min:1,max:1}}}get fileExtension(){return".mp3"}get mimeType(){return"audio/mpeg"}getSupportedCodecs(){return["mp3"]}get supportsVideoRotationMetadata(){return!1}get supportsTimestampedMediaData(){return!1}}class tv extends tg{constructor(e={}){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.large&&"boolean"!=typeof e.large)throw TypeError("options.large, when provided, must be a boolean.");if(void 0!==e.metadataFormat&&!["info","id3"].includes(e.metadataFormat))throw TypeError("options.metadataFormat, when provided, must be either 'info' or 'id3'.");if(void 0!==e.onHeader&&"function"!=typeof e.onHeader)throw TypeError("options.onHeader, when provided, must be a function.");super(),this._options=e}_createMuxer(e){return new tp(e,this)}get _name(){return"WAVE"}getSupportedTrackCounts(){return{video:{min:0,max:0},audio:{min:1,max:1},subtitle:{min:0,max:0},total:{min:1,max:1}}}get fileExtension(){return".wav"}get mimeType(){return"audio/wav"}getSupportedCodecs(){return[...r.zE.filter(e=>["pcm-s16","pcm-s24","pcm-s32","pcm-f32","pcm-u8","ulaw","alaw"].includes(e))]}get supportsVideoRotationMetadata(){return!1}get supportsTimestampedMediaData(){return!1}}class tP extends tg{constructor(e={}){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.maximumPageDuration&&(!Number.isFinite(e.maximumPageDuration)||e.maximumPageDuration<=0))throw TypeError("options.maximumPageDuration, when provided, must be a positive number.");if(void 0!==e.onPage&&"function"!=typeof e.onPage)throw TypeError("options.onPage, when provided, must be a function.");super(),this._options=e}_createMuxer(e){return new td(e,this)}get _name(){return"Ogg"}getSupportedTrackCounts(){return{video:{min:0,max:0},audio:{min:0,max:4294967296},subtitle:{min:0,max:0},total:{min:1,max:4294967296}}}get fileExtension(){return".ogg"}get mimeType(){return"application/ogg"}getSupportedCodecs(){return[...r.eY.filter(e=>["vorbis","opus"].includes(e))]}get supportsVideoRotationMetadata(){return!1}get supportsTimestampedMediaData(){return!1}}class tC extends tg{constructor(e={}){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.onFrame&&"function"!=typeof e.onFrame)throw TypeError("options.onFrame, when provided, must be a function.");super(),this._options=e}_createMuxer(e){return new d(e,this)}get _name(){return"ADTS"}getSupportedTrackCounts(){return{video:{min:0,max:0},audio:{min:1,max:1},subtitle:{min:0,max:0},total:{min:1,max:1}}}get fileExtension(){return".aac"}get mimeType(){return"audio/aac"}getSupportedCodecs(){return["aac"]}get supportsVideoRotationMetadata(){return!1}get supportsTimestampedMediaData(){return!1}}class tx extends tg{constructor(e={}){if(!e||"object"!=typeof e)throw TypeError("options must be an object.");super(),this._options=e}_createMuxer(e){return new p(e,this)}get _name(){return"FLAC"}getSupportedTrackCounts(){return{video:{min:0,max:0},audio:{min:1,max:1},subtitle:{min:0,max:0},total:{min:1,max:1}}}get fileExtension(){return".flac"}get mimeType(){return"audio/flac"}getSupportedCodecs(){return["flac"]}get supportsVideoRotationMetadata(){return!1}get supportsTimestampedMediaData(){return!1}}},16065:function(e,t,i){i.d(t,{r:function(){return d}});var r=i(73272),a=i(45907),s=i(66936),n=i(38114),o=i(763);let c=["video","audio","subtitle"],l=e=>{if(!e||"object"!=typeof e)throw TypeError("metadata must be an object.");if(void 0!==e.languageCode&&!(0,r.Rh)(e.languageCode))throw TypeError("metadata.languageCode, when provided, must be a three-letter, ISO 639-2/T language code.");if(void 0!==e.name&&"string"!=typeof e.name)throw TypeError("metadata.name, when provided, must be a string.");if(void 0!==e.disposition&&(0,a.kG)(e.disposition),void 0!==e.maximumPacketCount&&(!Number.isInteger(e.maximumPacketCount)||e.maximumPacketCount<0))throw TypeError("metadata.maximumPacketCount, when provided, must be a non-negative integer.")};class d{constructor(e){if(this.state="pending",this._tracks=[],this._startPromise=null,this._cancelPromise=null,this._finalizePromise=null,this._mutex=new r.q9,this._metadataTags={},!e||"object"!=typeof e)throw TypeError("options must be an object.");if(!(e.format instanceof s.WJ))throw TypeError("options.format must be an OutputFormat.");if(!(e.target instanceof o.Vz))throw TypeError("options.target must be a Target.");if(e.target._output)throw Error("Target is already used for another output.");e.target._output=this,this.format=e.format,this.target=e.target,this._writer=e.target._createWriter(),this._muxer=e.format._createMuxer(this)}addVideoTrack(e,t={}){if(!(e instanceof n.LG))throw TypeError("source must be a VideoSource.");if(l(t),void 0!==t.rotation&&![0,90,180,270].includes(t.rotation))throw TypeError(`Invalid video rotation: ${t.rotation}. Has to be 0, 90, 180 or 270.`);if(!this.format.supportsVideoRotationMetadata&&t.rotation)throw Error(`${this.format._name} does not support video rotation metadata.`);if(void 0!==t.frameRate&&(!Number.isFinite(t.frameRate)||t.frameRate<=0))throw TypeError(`Invalid video frame rate: ${t.frameRate}. Must be a positive number.`);this._addTrack("video",e,t)}addAudioTrack(e,t={}){if(!(e instanceof n.CS))throw TypeError("source must be an AudioSource.");l(t),this._addTrack("audio",e,t)}addSubtitleTrack(e,t={}){if(!(e instanceof n.$8))throw TypeError("source must be a SubtitleSource.");l(t),this._addTrack("subtitle",e,t)}setMetadataTags(e){if((0,a.RE)(e),"pending"!==this.state)throw Error("Cannot set metadata tags after output has been started or canceled.");this._metadataTags=e}_addTrack(e,t,i){if("pending"!==this.state)throw Error("Cannot add track after output has been started or canceled.");
92if(t._connectedTrack)throw Error("Source is already used for a track.");let r=this.format.getSupportedTrackCounts(),a=this._tracks.reduce((t,i)=>t+(i.type===e?1:0),0),s=r[e].max;if(a===s)throw Error(0===s?`${this.format._name} does not support ${e} tracks.`:`${this.format._name} does not support more than ${s} ${e} track${1===s?"":"s"}.`);let n=r.total.max;if(this._tracks.length===n)throw Error(`${this.format._name} does not support more than ${n} tracks${1===n?"":"s"} in total.`);let o={id:this._tracks.length+1,output:this,type:e,source:t,metadata:i};if("video"===o.type){let e=this.format.getSupportedVideoCodecs();if(0===e.length)throw Error(`${this.format._name} does not support video tracks.`+this.format._codecUnsupportedHint(o.source._codec));if(!e.includes(o.source._codec))throw Error(`Codec '${o.source._codec}' cannot be contained within ${this.format._name}. Supported video codecs are: ${e.map(e=>`'${e}'`).join(", ")}.`+this.format._codecUnsupportedHint(o.source._codec))}else if("audio"===o.type){let e=this.format.getSupportedAudioCodecs();if(0===e.length)throw Error(`${this.format._name} does not support audio tracks.`+this.format._codecUnsupportedHint(o.source._codec));if(!e.includes(o.source._codec))throw Error(`Codec '${o.source._codec}' cannot be contained within ${this.format._name}. Supported audio codecs are: ${e.map(e=>`'${e}'`).join(", ")}.`+this.format._codecUnsupportedHint(o.source._codec))}else if("subtitle"===o.type){let e=this.format.getSupportedSubtitleCodecs();if(0===e.length)throw Error(`${this.format._name} does not support subtitle tracks.`+this.format._codecUnsupportedHint(o.source._codec));if(!e.includes(o.source._codec))throw Error(`Codec '${o.source._codec}' cannot be contained within ${this.format._name}. Supported subtitle codecs are: ${e.map(e=>`'${e}'`).join(", ")}.`+this.format._codecUnsupportedHint(o.source._codec))}this._tracks.push(o),t._connectedTrack=o}async start(){let e=this.format.getSupportedTrackCounts();for(let t of c){let i=this._tracks.reduce((e,i)=>e+(i.type===t?1:0),0),r=e[t].min;if(i<r)throw Error(r===e[t].max?`${this.format._name} requires exactly ${r} ${t} track${1===r?"":"s"}.`:`${this.format._name} requires at least ${r} ${t} track${1===r?"":"s"}.`)}let t=e.total.min;if(this._tracks.length<t)throw Error(t===e.total.max?`${this.format._name} requires exactly ${t} track${1===t?"":"s"}.`:`${this.format._name} requires at least ${t} track${1===t?"":"s"}.`);if("canceled"===this.state)throw Error("Output has been canceled.");return this._startPromise?(console.warn("Output has already been started."),this._startPromise):this._startPromise=(async()=>{this.state="started",this._writer.start();let e=await this._mutex.acquire();await this._muxer.start();let t=this._tracks.map(e=>e.source._start());await Promise.all(t),e()})()}getMimeType(){return this._muxer.getMimeType()}async cancel(){if(this._cancelPromise)return console.warn("Output has already been canceled."),this._cancelPromise;if("finalizing"===this.state||"finalized"===this.state){console.warn("Output has already been finalized.");return}return this._cancelPromise=(async()=>{this.state="canceled";let e=await this._mutex.acquire(),t=this._tracks.map(e=>e.source._flushOrWaitForOngoingClose(!0));await Promise.all(t),await this._writer.close(),e()})()}async finalize(){if("pending"===this.state)throw Error("Cannot finalize before starting.");if("canceled"===this.state)throw Error("Cannot finalize after canceling.");return this._finalizePromise?(console.warn("Output has already been finalized."),this._finalizePromise):this._finalizePromise=(async()=>{this.state="finalizing";let e=await this._mutex.acquire(),t=this._tracks.map(e=>e.source._flushOrWaitForOngoingClose(!1));await Promise.all(t),await this._muxer.finalize(),await this._writer.flush(),await this._writer.finalize(),this.state="finalized",e()})()}}},17930:function(e,t,i){i.d(t,{H:function(){return s},L:function(){return a}});var r=i(73272);let a=new Uint8Array(0);class s{constructor(e,t,i,r,s=-1,n,o){if(this.data=e,this.type=t,this.timestamp=i,this.duration=r,this.sequenceNumber=s,e===a&&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.");
92if("key"!==t&&"delta"!==t)throw TypeError('type must be either "key" or "delta".');if(!Number.isFinite(i))throw TypeError("timestamp must be a number.");if(!Number.isFinite(r)||r<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!==o&&("object"!=typeof o||!o))throw TypeError("sideData, when provided, must be an object.");if(o?.alpha!==void 0&&!(o.alpha instanceof Uint8Array))throw TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(o?.alphaByteLength!==void 0&&(!Number.isInteger(o.alphaByteLength)||o.alphaByteLength<0))throw TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=n,this.sideData=o??{},this.sideData.alpha&&void 0===this.sideData.alphaByteLength&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===a}get microsecondTimestamp(){return Math.trunc(r.Ue*this.timestamp)}get microsecondDuration(){return Math.trunc(r.Ue*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.");
92return 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,t){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let i=new Uint8Array(e.byteLength);return e.copyTo(i),new s(i,e.type,e.timestamp/1e6,(e.duration??0)/1e6,void 0,void 0,t)}clone(e){if(void 0!==e&&("object"!=typeof e||null===e))throw TypeError("options, when provided, must be an object.");if(e?.data!==void 0&&!(e.data instanceof Uint8Array))throw TypeError("options.data, when provided, must be a Uint8Array.");if(e?.type!==void 0&&"key"!==e.type&&"delta"!==e.type)throw TypeError('options.type, when provided, must be either "key" or "delta".');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.");if(e?.sequenceNumber!==void 0&&!Number.isFinite(e.sequenceNumber))throw TypeError("options.sequenceNumber, when provided, must be a number.");if(e?.sideData!==void 0&&("object"!=typeof e.sideData||null===e.sideData))throw TypeError("options.sideData, when provided, must be an object.");return new s(e?.data??this.data,e?.type??this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,e?.sequenceNumber??this.sequenceNumber,this.byteLength,e?.sideData??this.sideData)}}},23562:function(e,t,i){i.d(t,{Vs:function(){return s},ZC:function(){return a},hU:function(){return n},pu:function(){return r}});let r=e=>{let t=e,i=4096,r=0,a=12,s=0;for(t<0&&(t=-t,r=128),(t+=33)>8191&&(t=8191);(t&i)!==i&&a>=5;)i>>=1,a--;return s=t>>a-4&15,255&~(r|a-5<<4|s)},a=e=>{let t=0,i=0,r=~e;128&r&&(r&=-129,t=-1);let a=(1<<(i=((240&r)>>4)+5)|(15&r)<<i-4|1<<i-5)-33;return 0===t?a:-a},s=e=>{let t=2048,i=0,r=11,a=0,s=e;for(s<0&&(s=-s,i=128),s>4095&&(s=4095);(s&t)!==t&&r>=5;)t>>=1,r--;return a=s>>(4===r?1:r-4)&15,(i|r-4<<4|a)^85},n=e=>{let t=0,i=0,r=85^e;128&r&&(r&=-129,t=-1);let a=0;return a=4!=(i=((240&r)>>4)+4)?1<<i|(15&r)<<i-4|1<<i-5:r<<1|1,0===t?a:-a}},93731:function(e,t,i){i.d(t,{CJ:function(){return n},Ej:function(){return s},Fk:function(){return y},NN:function(){return T},NX:function(){return d},Ry:function(){return w},Ss:function(){return P},ZC:function(){return h},c_:function(){return k},dd:function(){return p},ff:function(){return S},jG:function(){return u},qx:function(){return f},s3:function(){return l},sB:function(){return c},wr:function(){return g},ww:function(){return m},yn:function(){return C},z$:function(){return v}});var r=i(54897),a=i(73272);class s{constructor(e){this.source=e}requestSlice(e,t){if(this.source._disposed)throw new r.x;if(e<0||null!==this.fileSize&&e+t>this.fileSize)return null;let i=e+t,a=this.source._read(e,i);return a instanceof Promise?a.then(t=>t?new n(t.bytes,t.view,t.offset,e,i):null):a?new n(a.bytes,a.view,a.offset,e,i):null}requestSliceRange(e,t,i){if(this.source._disposed)throw new r.x;if(e<0)return null;if(null!==this.fileSize)return this.requestSlice(e,(0,a.uZ)(this.fileSize-e,t,i));{let r=this.requestSlice(e,i),s=r=>{if(r)return r;let s=r=>((0,a.hu)(null!==r),this.requestSlice(e,(0,a.uZ)(r-e,t,i))),n=this.source._retrieveSize();return n instanceof Promise?n.then(s):s(n)};return r instanceof Promise?r.then(s):s(r)}}}class n{constructor(e,t,i,r,a){this.bytes=e,this.view=t,this.offset=i,this.start=r,this.end=a,this.bufferPos=r-i}static tempFromBytes(e){return new n(e,(0,a.NK)(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,t=this.end-e){if(e<this.start||e+t>this.end)throw RangeError("Slicing outside of original slice.");return new n(this.bytes,this.view,this.offset,e,e+t)}}let o=(e,t)=>{if(e.filePos<e.start||e.filePos+t>e.end)throw RangeError(`Tried reading [${e.filePos}, ${e.filePos+t}), but slice is [${e.start}, ${e.end}). This is likely an internal error, please report it alongside the file that caused it.`)},c=(e,t)=>{o(e,t);let i=e.bytes.subarray(e.bufferPos,e.bufferPos+t);return e.bufferPos+=t,i},l=e=>(o(e,1),e.view.getUint8(e.bufferPos++)),d=(e,t)=>{o(e,2);let i=e.view.getUint16(e.bufferPos,t);return e.bufferPos+=2,i},u=e=>{o(e,2);let t=e.view.getUint16(e.bufferPos,!1);return e.bufferPos+=2,t},h=e=>{o(e,3);let t=(0,a.rB)(e.view,e.bufferPos,!1);return e.bufferPos+=3,t},m=e=>{o(e,2);let t=e.view.getInt16(e.bufferPos,!1);return e.bufferPos+=2,t},f=(e,t)=>{o(e,4);let i=e.view.getUint32(e.bufferPos,t);return e.bufferPos+=4,i},p=e=>{o(e,4);let t=e.view.getUint32(e.bufferPos,!1);return e.bufferPos+=4,t},g=e=>{o(e,4);let t=e.view.getUint32(e.bufferPos,!0);return e.bufferPos+=4,t},k=e=>{o(e,4);let t=e.view.getInt32(e.bufferPos,!1);return e.bufferPos+=4,t},b=e=>{o(e,4);let t=e.view.getInt32(e.bufferPos,!0);return e.bufferPos+=4,t},w=(e,t)=>{let i,r;return t?(i=f(e,!0),r=f(e,!0)):(r=f(e,!1),i=f(e,!1)),4294967296*r+i},y=e=>4294967296*p(e)+p(e),T=e=>4294967296*k(e)+p(e),S=e=>{let t=g(e);return 4294967296*b(e)+t},v=e=>{o(e,4);let t=e.view.getFloat32(e.bufferPos,!1);return e.bufferPos+=4,t},P=e=>{o(e,8);let t=e.view.getFloat64(e.bufferPos,!1);return e.bufferPos+=8,t},C=(e,t)=>{o(e,t);let i="";for(let r=0;r<t;r++)i+=String.fromCharCode(e.bytes[e.bufferPos++]);return i}},30285:function(e,t,i){i.d(t,{DI:function(){return m},Xw:function(){return b},_A:function(){return l},di:function(){return h}});var r=i(73272);(0,r.un)();let a=-1/0,s=-1/0,n=null;"undefined"!=typeof FinalizationRegistry&&(n=new FinalizationRegistry(e=>{let t=Date.now();"video"===e.type?(t-a>=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."),a=t),"undefined"!=typeof VideoFrame&&e.data instanceof VideoFrame&&e.data.close()):(t-s>=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."),s=t),"undefined"!=typeof AudioData&&e.data instanceof AudioData&&e.data.close())}));let o=["I420","I420P10","I420P12","I420A","I420AP10","I420AP12","I422","I422P10","I422P12","I422A","I422AP10","I422AP12","I444","I444P10","I444P12","I444A","I444AP10","I444AP12","NV12","RGBA","RGBX","BGRA","BGRX"],c=new Set(o);class l{get codedWidth(){return this.visibleRect.width}get codedHeight(){return this.visibleRect.height}get displayWidth(){return this.rotation%180==0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this.rotation%180==0?this.squarePixelHeight:this.squarePixelWidth}get microsecondTimestamp(){return Math.trunc(r.Ue*this.timestamp)}get microsecondDuration(){return Math.trunc(r.Ue*this.duration)}get hasAlpha(){return this.format&&this.format.includes("A")}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||"undefined"!=typeof SharedArrayBuffer&&e instanceof SharedArrayBuffer||ArrayBuffer.isView(e)){if(!t||"object"!=typeof t)throw TypeError("init must be an object.");if(void 0===t.format||!c.has(t.format))throw TypeError("init.format must be one of: "+o.join(", "));if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw TypeError("init.codedHeight must be a positive integer.");if(void 0!==t.rotation&&![0,90,180,270].includes(t.rotation))throw TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");
92if(!Number.isFinite(t.timestamp))throw TypeError("init.timestamp must be a number.");if(void 0!==t.duration&&(!Number.isFinite(t.duration)||t.duration<0))throw TypeError("init.duration, when provided, must be a non-negative number.");if(void 0!==t.layout){if(!Array.isArray(t.layout))throw TypeError("init.layout, when provided, must be an array.");for(let e of t.layout){if(!e||"object"!=typeof e||Array.isArray(e))throw TypeError("Each entry in init.layout must be an object.");if(!Number.isInteger(e.offset)||e.offset<0)throw TypeError("plane.offset must be a non-negative integer.");if(!Number.isInteger(e.stride)||e.stride<0)throw TypeError("plane.stride must be a non-negative integer.")}}if(void 0!==t.visibleRect&&(0,r.lM)(t.visibleRect,"init.visibleRect"),void 0!==t.displayWidth&&(!Number.isInteger(t.displayWidth)||t.displayWidth<=0))throw TypeError("init.displayWidth, when provided, must be a positive integer.");if(void 0!==t.displayHeight&&(!Number.isInteger(t.displayHeight)||t.displayHeight<=0))throw TypeError("init.displayHeight, when provided, must be a positive integer.");if(void 0!==t.displayWidth!=(void 0!==t.displayHeight))throw TypeError("init.displayWidth and init.displayHeight must be either both provided or both omitted.");this._data=(0,r._f)(e).slice(),this._layout=t.layout??p(t.format,t.codedWidth,t.codedHeight),this.format=t.format,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new d(t.colorSpace),this.visibleRect={left:t.visibleRect?.left??0,top:t.visibleRect?.top??0,width:t.visibleRect?.width??t.codedWidth,height:t.visibleRect?.height??t.codedHeight},void 0!==t.displayWidth?(this.squarePixelWidth=this.rotation%180==0?t.displayWidth:t.displayHeight,this.squarePixelHeight=this.rotation%180==0?t.displayHeight:t.displayWidth):(this.squarePixelWidth=this.codedWidth,this.squarePixelHeight=this.codedHeight)}else if("undefined"!=typeof VideoFrame&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw TypeError("init.duration, when provided, must be a non-negative number.");t?.visibleRect!==void 0&&(0,r.lM)(t.visibleRect,"init.visibleRect"),this._data=e,this._layout=null,this.format=e.format,this.visibleRect={left:e.visibleRect?.x??0,top:e.visibleRect?.y??0,width:e.visibleRect?.width??e.codedWidth,height:e.visibleRect?.height??e.codedHeight},this.rotation=t?.rotation??0,this.squarePixelWidth=e.displayWidth,this.squarePixelHeight=e.displayHeight,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=new d(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(!t||"object"!=typeof t)throw TypeError("init must be an object.");if(void 0!==t.rotation&&![0,90,180,270].includes(t.rotation))throw TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw TypeError("init.timestamp must be a number.");if(void 0!==t.duration&&(!Number.isFinite(t.duration)||t.duration<0))throw TypeError("init.duration, when provided, must be a non-negative number.");if("undefined"!=typeof VideoFrame)return new l(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*r.Ue),duration:Math.trunc((t.duration??0)*r.Ue)||void 0}),t);let i=0,a=0;if("naturalWidth"in e?(i=e.naturalWidth,a=e.naturalHeight):"videoWidth"in e?(i=e.videoWidth,a=e.videoHeight):"width"in e&&(i=Number(e.width),a=Number(e.height)),!i||!a)throw TypeError("Could not determine dimensions.");let s=new OffscreenCanvas(i,a),n=s.getContext("2d",{alpha:(0,r.vU)(),willReadFrequently:!0});(0,r.hu)(n),n.drawImage(e,0,0),this._data=s,this._layout=null,this.format="RGBX",this.visibleRect={left:0,top:0,width:i,height:a},this.squarePixelWidth=i,this.squarePixelHeight=a,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace
92=new d({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.");this.pixelAspectRatio=(0,r.P3)({num:this.squarePixelWidth*this.codedHeight,den:this.squarePixelHeight*this.codedWidth}),n?.register(this,{type:"video",data:this._data},this)}clone(){if(this._closed)throw Error("VideoSample is closed.");return((0,r.hu)(null!==this._data),u(this._data))?new l(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?((0,r.hu)(this._layout),new l(this._data,{format:this.format,layout:this._layout,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation,visibleRect:this.visibleRect,displayWidth:this.displayWidth,displayHeight:this.displayHeight})):new l(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation,visibleRect:this.visibleRect,displayWidth:this.displayWidth,displayHeight:this.displayHeight})}close(){this._closed||(n?.unregister(this),u(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(e={}){if(f(e),this._closed)throw Error("VideoSample is closed.");if(null===this.format)throw Error("Cannot get allocation size when format is null. Sorry!");if((0,r.hu)(null!==this._data),!u(this._data)&&(e.colorSpace||e.format&&e.format!==this.format||e.layout||e.rect)){let t=this.toVideoFrame(),i=t.allocationSize(e);return t.close(),i}return u(this._data)?this._data.allocationSize(e):this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e,t={}){if(!(0,r.n0)(e))throw TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(f(t),this._closed)throw Error("VideoSample is closed.");if(null===this.format)throw Error("Cannot copy video sample data when format is null. Sorry!");if((0,r.hu)(null!==this._data),!u(this._data)&&(t.colorSpace||t.format&&t.format!==this.format||t.layout||t.rect)){let i=this.toVideoFrame(),r=await i.copyTo(e,t);return i.close(),r}if(u(this._data))return this._data.copyTo(e,t);if(this._data instanceof Uint8Array)return(0,r.hu)(this._layout),(0,r._f)(e).set(this._data),this._layout;{let t=this._data.getContext("2d");(0,r.hu)(t);let i=t.getImageData(0,0,this.codedWidth,this.codedHeight);return(0,r._f)(e).set(i.data),[{offset:0,stride:4*this.codedWidth}]}}toVideoFrame(){if(this._closed)throw Error("VideoSample is closed.");return((0,r.hu)(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,t,i,r,a,s,n,o,c){let l=0,d=0,u=this.displayWidth,h=this.displayHeight,m=0,f=0,p=this.displayWidth,g=this.displayHeight;if(void 0!==s?(l=t,d=i,u=r,h=a,m=s,f=n,void 0!==o?(p=o,g=c):(p=u,g=h)):(m=t,f=i,void 0!==r&&(p=r,g=a)),!("undefined"!=typeof CanvasRenderingContext2D&&e instanceof CanvasRenderingContext2D||"undefined"!=typeof OffscreenCanvasRenderingContext2D&&e instanceof OffscreenCanvasRenderingContext2D))throw TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(l))throw TypeError("sx must be a number.");if(!Number.isFinite(d))throw TypeError("sy must be a number.");if(!Number.isFinite(u)||u<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(m))throw TypeError("dx must be a number.");if(!Number.isFinite(f))throw TypeError("dy must be a number.");if(!Number.isFinite(p)||p<0)throw TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(g)||g<0)throw TypeError("dHeight must be a non-negative number.");if(this._closed)throw Error("VideoSample is closed.");({sx:l,sy:d,sWidth:u,sHeight:h}=this._rotateSourceRegion(l,d,u,h,this.rotation));let k=this.toCanvasImageSource();e.save();let b=m+p/2,w=f+g/2;
92e.translate(b,w),e.rotate(this.rotation*Math.PI/180);let y=this.rotation%180==0?1:p/g;e.scale(1/y,y),e.drawImage(k,l,d,u,h,-p/2,-g/2,p,g),e.restore()}drawWithFit(e,t){let i,r,a,s;if(!("undefined"!=typeof CanvasRenderingContext2D&&e instanceof CanvasRenderingContext2D||"undefined"!=typeof OffscreenCanvasRenderingContext2D&&e instanceof OffscreenCanvasRenderingContext2D))throw TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!t||"object"!=typeof t)throw TypeError("options must be an object.");if(!["fill","contain","cover"].includes(t.fit))throw TypeError("options.fit must be 'fill', 'contain', or 'cover'.");if(void 0!==t.rotation&&![0,90,180,270].includes(t.rotation))throw TypeError("options.rotation, when provided, must be 0, 90, 180, or 270.");void 0!==t.crop&&m(t.crop,"options.");let n=e.canvas.width,o=e.canvas.height,c=t.rotation??this.rotation,[l,d]=c%180==0?[this.squarePixelWidth,this.squarePixelHeight]:[this.squarePixelHeight,this.squarePixelWidth];t.crop&&h(t.crop,l,d);let{sx:u,sy:f,sWidth:p,sHeight:g}=this._rotateSourceRegion(t.crop?.left??0,t.crop?.top??0,t.crop?.width??l,t.crop?.height??d,c);if("fill"===t.fit)i=0,r=0,a=n,s=o;else{let[e,c]=t.crop?[t.crop.width,t.crop.height]:[l,d],u="contain"===t.fit?Math.min(n/e,o/c):Math.max(n/e,o/c);a=e*u,s=c*u,i=(n-a)/2,r=(o-s)/2}e.save();let k=c%180==0?1:a/s;e.translate(n/2,o/2),e.rotate(c*Math.PI/180),e.scale(1/k,k),e.translate(-n/2,-o/2),e.drawImage(this.toCanvasImageSource(),u,f,p,g,i,r,a,s),e.restore()}_rotateSourceRegion(e,t,i,r,a){return 90===a?[e,t,i,r]=[t,this.squarePixelHeight-e-i,r,i]:180===a?[e,t]=[this.squarePixelWidth-e-i,this.squarePixelHeight-t-r]:270===a&&([e,t,i,r]=[this.squarePixelWidth-t-r,e,r,i]),{sx:e,sy:t,sWidth:i,sHeight:r}}toCanvasImageSource(){if(this._closed)throw Error("VideoSample is closed.");if((0,r.hu)(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()}}class d{constructor(e){if(void 0!==e){if(!e||"object"!=typeof e)throw TypeError("init.colorSpace, when provided, must be an object.");let t=Object.keys(r.$9);if(null!=e.primaries&&!t.includes(e.primaries))throw TypeError(`init.colorSpace.primaries, when provided, must be one of ${t.join(", ")}.`);let i=Object.keys(r.V3);if(null!=e.transfer&&!i.includes(e.transfer))throw TypeError(`init.colorSpace.transfer, when provided, must be one of ${i.join(", ")}.`);let a=Object.keys(r.P0);if(null!=e.matrix&&!a.includes(e.matrix))throw TypeError(`init.colorSpace.matrix, when provided, must be one of ${a.join(", ")}.`);if(null!=e.fullRange&&"boolean"!=typeof e.fullRange)throw TypeError("init.colorSpace.fullRange, when provided, must be a boolean.")}this.primaries=e?.primaries??null,this.transfer=e?.transfer??null,this.matrix=e?.matrix??null,this.fullRange=e?.fullRange??null}toJSON(){return{primaries:this.primaries,transfer:this.transfer,matrix:this.matrix,fullRange:this.fullRange}}}let u=e=>"undefined"!=typeof VideoFrame&&e instanceof VideoFrame,h=(e,t,i)=>{e.left=Math.min(e.left,t),e.top=Math.min(e.top,i),e.width=Math.min(e.width,t-e.left),e.height=Math.min(e.height,i-e.top),(0,r.hu)(e.width>=0),(0,r.hu)(e.height>=0)},m=(e,t)=>{if(!e||"object"!=typeof e)throw TypeError(t+"crop, when provided, must be an object.");if(!Number.isInteger(e.left)||e.left<0)throw TypeError(t+"crop.left must be a non-negative integer.");if(!Number.isInteger(e.top)||e.top<0)throw TypeError(t+"crop.top must be a non-negative integer.");if(!Number.isInteger(e.width)||e.width<0)throw TypeError(t+"crop.width must be a non-negative integer.");if(!Number.isInteger(e.height)||e.height<0)throw TypeError(t+"crop.height must be a non-negative integer.")},f=e=>{if(!e||"object"!=typeof e)throw TypeError("options must be an object.");if(void 0!==e.colorSpace&&!["display-p3","srgb"].includes(e.colorSpace))throw TypeError("options.colorSpace, when provided, must be 'dis
92play-p3' or 'srgb'.");if(void 0!==e.format&&"string"!=typeof e.format)throw TypeError("options.format, when provided, must be a string.");if(void 0!==e.layout){if(!Array.isArray(e.layout))throw TypeError("options.layout, when provided, must be an array.");for(let t of e.layout){if(!t||"object"!=typeof t)throw TypeError("Each entry in options.layout must be an object.");if(!Number.isInteger(t.offset)||t.offset<0)throw TypeError("plane.offset must be a non-negative integer.");if(!Number.isInteger(t.stride)||t.stride<0)throw TypeError("plane.stride must be a non-negative integer.")}}if(void 0!==e.rect){if(!e.rect||"object"!=typeof e.rect)throw TypeError("options.rect, when provided, must be an object.");if(void 0!==e.rect.x&&(!Number.isInteger(e.rect.x)||e.rect.x<0))throw TypeError("options.rect.x, when provided, must be a non-negative integer.");if(void 0!==e.rect.y&&(!Number.isInteger(e.rect.y)||e.rect.y<0))throw TypeError("options.rect.y, when provided, must be a non-negative integer.");if(void 0!==e.rect.width&&(!Number.isInteger(e.rect.width)||e.rect.width<0))throw TypeError("options.rect.width, when provided, must be a non-negative integer.");if(void 0!==e.rect.height&&(!Number.isInteger(e.rect.height)||e.rect.height<0))throw TypeError("options.rect.height, when provided, must be a non-negative integer.")}},p=(e,t,i)=>{let r=g(e),a=[],s=0;for(let e of r){let r=Math.ceil(t/e.widthDivisor),n=Math.ceil(i/e.heightDivisor),o=r*e.sampleBytes,c=o*n;a.push({offset:s,stride:o}),s+=c}return a},g=e=>{let t=(e,t,i,r,a)=>{let s=[{sampleBytes:e,widthDivisor:1,heightDivisor:1},{sampleBytes:t,widthDivisor:i,heightDivisor:r},{sampleBytes:t,widthDivisor:i,heightDivisor:r}];return a&&s.push({sampleBytes:e,widthDivisor:1,heightDivisor:1}),s};switch(e){case"I420":return t(1,1,2,2,!1);case"I420P10":case"I420P12":return t(2,2,2,2,!1);case"I420A":return t(1,1,2,2,!0);case"I420AP10":case"I420AP12":return t(2,2,2,2,!0);case"I422":return t(1,1,2,1,!1);case"I422P10":case"I422P12":return t(2,2,2,1,!1);case"I422A":return t(1,1,2,1,!0);case"I422AP10":case"I422AP12":return t(2,2,2,1,!0);case"I444":return t(1,1,1,1,!1);case"I444P10":case"I444P12":return t(2,2,1,1,!1);case"I444A":return t(1,1,1,1,!0);case"I444AP10":case"I444AP12":return t(2,2,1,1,!0);case"NV12":return[{sampleBytes:1,widthDivisor:1,heightDivisor:1},{sampleBytes:2,widthDivisor:2,heightDivisor:2}];case"RGBA":case"RGBX":case"BGRA":case"BGRX":return[{sampleBytes:4,widthDivisor:1,heightDivisor:1}];default:(0,r.vE)(e),(0,r.hu)(!1)}},k=new Set(["f32","f32-planar","s16","s16-planar","s32","s32-planar","u8","u8-planar"]);class b{get microsecondTimestamp(){return Math.trunc(r.Ue*this.timestamp)}get microsecondDuration(){return Math.trunc(r.Ue*this.duration)}constructor(e){if(this._closed=!1,v(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 t;if(!e||"object"!=typeof e)throw TypeError("Invalid AudioDataInit: must be an object.");if(!k.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 i=e.data.byteLength/(w(e.format)*e.numberOfChannels);if(!Number.isInteger(i))throw TypeError("Invalid AudioDataInit: data size is not a multiple of frame size.");if(this.format=e.format,this.sampleRate=e.sampleRate,this.numberOfFrames=i,this.numberOfChannels=e.numberOfChannels,this.timestamp=e.timestamp,this.duration=i/e.sampleRate,e.data instanceof ArrayBuffer)t=new Uint8Array(e.data);else if(ArrayBuffer.isView(e.data))t=new Uint8Array(e.data.buffer,e.data.byteOffset,e.data.byteLength);else throw TypeError("Invalid AudioDataInit: data is not a BufferSource.");let r=this.numberOfFrames*this.numberOfChannels*w(this.format);if(t.byteLength<r)throw TypeError("Invalid AudioDataInit: insufficient data size.");this._data=t}n?.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&&!k.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 t=e.format??this.format,i=e.frameOffset??0;if(i>=this.numberOfFrames)throw RangeError("frameOffset out of range");let r=void 0!==e.frameCount?e.frameCount:this.numberOfFrames-i;if(r>this.numberOfFrames-i)throw RangeError("frameCount out of range");let a=w(t),s=y(t);if(s&&e.planeIndex>=this.numberOfChannels||!s&&0!==e.planeIndex)throw RangeError("planeIndex out of range");return(s?r:r*this.numberOfChannels)*a}copyTo(e,t){if(!(0,r.n0)(e))throw TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(!t||"object"!=typeof t)throw TypeError("options must be an object.");if(!Number.isInteger(t.planeIndex)||t.planeIndex<0)throw TypeError("planeIndex must be a non-negative integer.");if(void 0!==t.format&&!k.has(t.format))throw TypeError("Invalid format.");if(void 0!==t.frameOffset&&(!Number.isInteger(t.frameOffset)||t.frameOffset<0))throw TypeError("frameOffset must be a non-negative integer.");if(void 0!==t.frameCount&&(!Number.isInteger(t.frameCount)||t.frameCount<0))throw TypeError("frameCount must be a non-negative integer.");if(this._closed)throw Error("AudioSample is closed.");let{planeIndex:i,format:a,frameCount:s,frameOffset:n}=t,o=this.format,c=a??this.format;if(!c)throw Error("Destination format not determined");let l=this.numberOfFrames,d=this.numberOfChannels,u=n??0;if(u>=l)throw RangeError("frameOffset out of range");let h=void 0!==s?s:l-u;if(h>l-u)throw RangeError("frameCount out of range");let m=w(c),f=y(c);if(f&&i>=d||!f&&0!==i)throw RangeError("planeIndex out of range");let p=f?h:h*d;if(e.byteLength<p*m)throw RangeError("Destination buffer is too small");let g=(0,r.NK)(e),b=S(c);if(v(this._data))(0,r.Pf)()&&d>2&&c!==o?P(this._data,g,o,c,d,i,u,h):this._data.copyTo(e,{planeIndex:i,frameOffset:u,frameCount:h,format:c});else{let e=this._data,t=(0,r.NK)(e),a=T(o),s=w(o),n=y(o);for(let e=0;e<h;e++)if(f)b(g,e*m,a(t,n?(i*l+(e+u))*s:((e+u)*d+i)*s));else for(let i=0;i<d;i++)b(g,(e*d+i)*m,a(t,n?(i*l+(e+u))*s:((e+u)*d+i)*s))}}clone(){if(this._closed)throw Error("AudioSample is closed.");if(!v(this._data))return new b({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.timestamp,data:this._data});{let e=new b(this._data.clone());return e.setTimestamp(this.timestamp),e}}close(){this._closed||(n?.unregister(this),v(this._data)?this._data.close():this._data=new Uint8Array(0),this._closed=!0)}toAudioData(){if(this._closed)throw Error("AudioSample is closed.");if(!v(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(y(this.format)){let e=this.allocationSize({planeIndex:0,format:this.format}),t=new ArrayBuffer(e*this.numberOfChannels);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(new Uint8Array(t,i*e,e),{planeIndex:i,format:this.format});return new AudioData({format:this.format,sampleRate:this.sampleRate,numberOfFrames:this.numberOfFrames,numberOfChannels:this.numberOfChannels,timestamp:this.microsecondTimestamp,data:t})}{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}),t=new Float32Array(this.allocationSize({planeIndex:0,format:"f32-planar"})/4);for(let i=0;i<this.numberOfChannels;i++)this.copyTo(t,{planeIndex:i,format:"f32-planar"}
92),e.copyToChannel(t,i);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,t){if(!(e instanceof AudioBuffer))throw TypeError("audioBuffer must be an AudioBuffer.");let i=e.numberOfChannels,r=e.sampleRate,a=e.length,s=Math.floor(24e4/i),n=0,o=a;for(;o>0;){let a=Math.min(s,o),c=new Float32Array(i*a);for(let t=0;t<i;t++)e.copyFromChannel(c.subarray(t*a,(t+1)*a),t,n);yield new b({format:"f32-planar",sampleRate:r,numberOfFrames:a,numberOfChannels:i,timestamp:t+n/r,data:c}),n+=a,o-=a}}static fromAudioBuffer(e,t){if(!(e instanceof AudioBuffer))throw TypeError("audioBuffer must be an AudioBuffer.");let i=e.numberOfChannels,r=e.sampleRate,a=e.length,s=Math.floor(24e4/i),n=0,o=a,c=[];for(;o>0;){let a=Math.min(s,o),l=new Float32Array(i*a);for(let t=0;t<i;t++)e.copyFromChannel(l.subarray(t*a,(t+1)*a),t,n);let d=new b({format:"f32-planar",sampleRate:r,numberOfFrames:a,numberOfChannels:i,timestamp:t+n/r,data:l});c.push(d),n+=a,o-=a}return c}}let w=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")}},y=e=>{switch(e){case"u8-planar":case"s16-planar":case"s32-planar":case"f32-planar":return!0;default:return!1}},T=e=>{switch(e){case"u8":case"u8-planar":return(e,t)=>(e.getUint8(t)-128)/128;case"s16":case"s16-planar":return(e,t)=>e.getInt16(t,!0)/32768;case"s32":case"s32-planar":return(e,t)=>e.getInt32(t,!0)/2147483648;case"f32":case"f32-planar":return(e,t)=>e.getFloat32(t,!0)}},S=e=>{switch(e){case"u8":case"u8-planar":return(e,t,i)=>e.setUint8(t,(0,r.uZ)((i+1)*127.5,0,255));case"s16":case"s16-planar":return(e,t,i)=>e.setInt16(t,(0,r.uZ)(Math.round(32767*i),-32768,32767),!0);case"s32":case"s32-planar":return(e,t,i)=>e.setInt32(t,(0,r.uZ)(Math.round(2147483647*i),-2147483648,2147483647),!0);case"f32":case"f32-planar":return(e,t,i)=>e.setFloat32(t,i,!0)}},v=e=>"undefined"!=typeof AudioData&&e instanceof AudioData,P=(e,t,i,a,s,n,o,c)=>{let l=T(i),d=S(a),u=w(i),h=w(a),m=y(i);if(y(a)){if(m){let a=new ArrayBuffer(c*u),s=(0,r.NK)(a);e.copyTo(a,{planeIndex:n,frameOffset:o,frameCount:c,format:i});for(let e=0;e<c;e++){let i=e*u;d(t,e*h,l(s,i))}}else{let a=new ArrayBuffer(c*s*u),m=(0,r.NK)(a);e.copyTo(a,{planeIndex:0,frameOffset:o,frameCount:c,format:i});for(let e=0;e<c;e++){let i=(e*s+n)*u;d(t,e*h,l(m,i))}}}else if(m){let a=new ArrayBuffer(c*u),n=(0,r.NK)(a);for(let r=0;r<s;r++){e.copyTo(a,{planeIndex:r,frameOffset:o,frameCount:c,format:i});for(let e=0;e<c;e++){let i=e*u;d(t,(e*s+r)*h,l(n,i))}}}else{let a=new ArrayBuffer(c*s*u),n=(0,r.NK)(a);e.copyTo(a,{planeIndex:0,frameOffset:o,frameCount:c,format:i});for(let e=0;e<c;e++)for(let i=0;i<s;i++){let r=e*s+i,a=r*u;d(t,r*h,l(n,a))}}}},67065:function(e,t,i){i.d(t,{Hw:function(){return o},pC:function(){return c}});var r,a=i(73272),s=i(60768),n=i(54897);void 0!==(r||(r=i.t(s,2)))&&(r||(r=i.t(s,2)));class o{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){if(this._disposed)throw new n.x;return this._sizePromise??=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new n.x;
92let e=await this.getSizeOrNull();if(null===e)throw Error("Cannot determine the size of an unsized source.");return e}}class c extends o{constructor(e,t={}){if(!(e instanceof Blob))throw TypeError("blob must be a Blob.");if(!t||"object"!=typeof t)throw TypeError("options must be an object.");if(void 0!==t.maxCacheSize&&(!(0,a.hj)(t.maxCacheSize)||t.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 d({maxCacheSize:t.maxCacheSize??8388608,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:l.fileSystem})}_retrieveSize(){let e=this._blob.size;return this._orchestrator.fileSize=e,e}_read(e,t){return this._orchestrator.read(e,t)}async _runWorker(e){let t=this._readers.get(e);for(void 0===t&&(t=("stream"in this._blob)&&!(0,a.Pf)()?this._blob.slice(e.currentPos).stream().getReader():null,this._readers.set(e,t));e.currentPos<e.targetPos&&!e.aborted;)if(t){let{done:i,value:r}=await t.read();if(i)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+r.length),this._orchestrator.supplyWorkerData(e,r)}else{let t=await this._blob.slice(e.currentPos,e.targetPos).arrayBuffer();if(e.aborted)break;this.onread?.(e.currentPos,e.currentPos+t.byteLength),this._orchestrator.supplyWorkerData(e,new Uint8Array(t))}e.running=!1,e.aborted&&await t?.cancel()}_dispose(){this._orchestrator.dispose()}}let l={fileSystem:(e,t)=>({start:e=65536*Math.floor((e-65536)/65536),end:t=65536*Math.ceil((t+65536)/65536)})};class d{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0,this.disposed=!1}read(e,t){(0,a.hu)(null!==this.fileSize);let i=this.options.prefetchProfile(e,t,this.workers),r=Math.max(i.start,0),s=Math.min(i.end,this.fileSize);(0,a.hu)(r<=e&&t<=s);let n=null,o=(0,a.sF)(this.cache,e,e=>e.start),c=-1!==o?this.cache[o]:null;c&&c.start<=e&&t<=c.end&&(c.age=this.nextAge++,n={bytes:c.bytes,view:c.view,offset:c.start});let l=(0,a.sF)(this.cache,r,e=>e.start),d=n?null:new Uint8Array(t-e),u=0,h=r,m=[];if(-1!==l){for(let i=l;i<this.cache.length;i++){let n=this.cache[i];if(n.start>=s)break;if(n.end<=r)continue;let o=Math.max(r,n.start),c=Math.min(s,n.end);if((0,a.hu)(o<=c),h<o&&m.push({start:h,end:o}),h=c,d){let i=Math.max(e,n.start),r=Math.min(t,n.end);if(i<r){let t=i-e;d.set(n.bytes.subarray(i-n.start,r-n.start),t),t===u&&(u=r-e)}}n.age=this.nextAge++}h<s&&m.push({start:h,end:s})}else m.push({start:r,end:s});if(d&&u>=d.length&&(n={bytes:d,view:(0,a.NK)(d),offset:e}),0===m.length)return(0,a.hu)(n),n;let{promise:f,resolve:p,reject:g}=(0,a.Bw)(),k=[];for(let i of m){let r=Math.max(e,i.start),a=Math.min(t,i.end);r===i.start&&a===i.end?k.push(i):r<a&&k.push({start:r,end:a})}for(let t of m){let i=d&&{start:e,bytes:d,holes:k,resolve:p,reject:g},r=!1;for(let e of this.workers)if((0,a.bL)(t.start-131072,t.start,e.currentPos,e.targetPos)){e.targetPos=Math.max(e.targetPos,t.end),r=!0,i&&!e.pendingSlices.includes(i)&&e.pendingSlices.push(i),e.running||this.runWorker(e);break}if(!r){let e=this.createWorker(t.start,t.end);i&&(e.pendingSlices=[i]),this.runWorker(e)}}return n||((0,a.hu)(d),n=f.then(t=>({bytes:t,view:(0,a.NK)(t),offset:e}))),n}createWorker(e,t){let i={startPos:e,currentPos:e,targetPos:t,running:!1,aborted:this.disposed,pendingSlices:[],age:this.nextAge++};for(this.workers.push(i);this.workers.length>this.options.maxWorkerCount;){let e=0,t=this.workers[0];for(let i=1;i<this.workers.length;i++){let r=this.workers[i];r.age<t.age&&(e=i,t=r)}if(t.running&&t.pendingSlices.length>0)break;t.aborted=!0,this.workers.splice(e,1)}return i}runWorker(e){(0,a.hu)(!e.running),(0,a.hu)(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(t=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(e=>e.reject(t)),e.pendingSlices.length=0;else throw t})}supplyWorkerData(e,t){(0,a.hu)(!e.aborted);let i=e.currentPos,r=i+t.length;this.insertIntoCache({start:i,end:r,bytes:t,view:(0,a.NK)(t),age:this.nextAge++}),e.currentPos+=t.length,e.targetPos=Math.max(e.targetPos,e.currentPos);for(let a=0;a<e.pendingSlices.length;a++){let s=e.pendingSlices[a],n=Math.max(i,s.start),o=Math.min(r,s.start+s.bytes.length);n<o&&s.bytes.set(t.subarray(n-i,o-i),n-s.start);for(let e=0;e<s.holes.length;e++){let t=s.holes[e];i<=t.start&&r>t.start&&(t.start=r),t.end<=t.start&&(s.holes.splice(e,1),e--)}0===s.holes.length&&(s.resolve(s.bytes),e.pendingSlices.splice(a,1),a--)}for(let t=0;t<this.workers.length;t++){let s=this.workers[t];e!==s&&!s.running&&(0,a.bL)(i,r,s.currentPos,s.targetPos)&&(this.workers.splice(t,1),t--)}}forgetWorker(e){let t=this.workers.indexOf(e);(0,a.hu)(-1!==t),this.workers.splice(t,1)}insertIntoCache(e){if(0===this.options.maxCacheSize)return;let t=(0,a.sF)(this.cache,e.start,e=>e.start)+1;if(t>0){let i=this.cache[t-1];if(i.end>=e.end)return;if(i.end>e.start){let r=new Uint8Array(e.end-i.start);
92r.set(i.bytes,0),r.set(e.bytes,e.start-i.start),this.currentCacheSize+=e.end-i.end,i.bytes=r,i.view=(0,a.NK)(r),i.end=e.end,t--,e=i}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length;for(let i=t+1;i<this.cache.length;i++){let t=this.cache[i];if(e.end<=t.start)break;if(e.end>=t.end){this.cache.splice(i,1),this.currentCacheSize-=t.bytes.length,i--;continue}let r=new Uint8Array(t.end-e.start);r.set(e.bytes,0),r.set(t.bytes,t.start-e.start),this.currentCacheSize-=e.end-t.start,e.bytes=r,e.view=(0,a.NK)(r),e.end=t.end,this.cache.splice(i,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let e=0,t=this.cache[0];for(let i=1;i<this.cache.length;i++){let r=this.cache[i];r.age<t.age&&(e=i,t=r)}if(this.currentCacheSize-t.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(e,1),this.currentCacheSize-=t.bytes.length}}dispose(){for(let e of this.workers)e.aborted=!0;this.workers.length=0,this.cache.length=0,this.disposed=!0}}},11014:function(e,t,i){i.d(t,{G0:function(){return n},LB:function(){return s},N$:function(){return l},nf:function(){return c}});let r=/(?:(.+?)\n)?((?:\d{2}:)?\d{2}:\d{2}.\d{3})\s+-->\s+((?:\d{2}:)?\d{2}:\d{2}.\d{3})/g,a=/^WEBVTT(.|\n)*?\n{2}/,s=/<(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})>/g;class n{constructor(e){this.preambleText=null,this.preambleEmitted=!1,this.options=e}parse(e){let t;if(e=e.replaceAll("\r\n","\n").replaceAll("\r","\n"),r.lastIndex=0,!this.preambleText){if(!a.test(e))throw Error("WebVTT preamble incorrect.");t=r.exec(e);let i=e.slice(0,t?.index??e.length).trimEnd();if(!i)throw Error("No WebVTT preamble provided.");this.preambleText=i,t&&(e=e.slice(t.index),r.lastIndex=0)}for(;t=r.exec(e);){let i=e.slice(0,t.index),a=t[1],s=t.index+t[0].length,n=e.indexOf("\n",s)+1,o=e.slice(s,n).trim(),l=e.indexOf("\n\n",s);-1===l&&(l=e.length);let d=c(t[2]),u=c(t[3])-d,h=e.slice(n,l).trim();e=e.slice(l).trimStart(),r.lastIndex=0;let m={timestamp:d/1e3,duration:u/1e3,text:h,identifier:a,settings:o,notes:i},f={};this.preambleEmitted||(f.config={description:this.preambleText},this.preambleEmitted=!0),this.options.output(m,f)}}}let o=/(?:(\d{2}):)?(\d{2}):(\d{2}).(\d{3})/,c=e=>{let t=o.exec(e);if(!t)throw Error("Expected match.");return 36e5*Number(t[1]||"0")+6e4*Number(t[2])+1e3*Number(t[3])+Number(t[4])},l=e=>Math.floor(e/36e5).toString().padStart(2,"0")+":"+Math.floor(e%36e5/6e4).toString().padStart(2,"0")+":"+Math.floor(e%6e4/1e3).toString().padStart(2,"0")+"."+(e%1e3).toString().padStart(3,"0")},763:function(e,t,i){i.d(t,{Fu:function(){return c},Vl:function(){return o},Vz:function(){return n}});var r,a=i(33595),s=i(60768);i(73272),void 0!==(r||(r=i.t(s,2)))&&(r||(r=i.t(s,2)));
92class n{constructor(){this._output=null,this.onwrite=null}}class o extends n{constructor(){super(...arguments),this.buffer=null}_createWriter(){return new a.Ak(this)}}class c extends n{_createWriter(){return new a.zR(this)}}},88913:function(e,t,i){i.d(t,{V:function(){return a},Y:function(){return h}});var r,a,s=i(31395),n=i(39510),o=i(45907),c=i(73272),l=i(17930),d=i(93731),u=i(1645);(r=a||(a={}))[r.PCM=1]="PCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.ALAW=6]="ALAW",r[r.MULAW=7]="MULAW",r[r.EXTENSIBLE=65534]="EXTENSIBLE";class h extends s.k{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,c.hu)(e);let t=(0,d.yn)(e,4),i="RIFX"!==t,r="RF64"===t,a=(0,d.qx)(e,i),s=r?this.reader.fileSize:Math.min(a+8,this.reader.fileSize??1/0);if("WAVE"!==(0,d.yn)(e,4))throw Error("Invalid WAVE file - wrong format");let o=0,l=null,u=e.filePos;for(;null===s||u<s;){let e=this.reader.requestSlice(u,8);if(e instanceof Promise&&(e=await e),!e)break;let t=(0,d.yn)(e,4),a=(0,d.qx)(e,i),n=e.filePos;if(r&&0===o&&"ds64"!==t)throw Error('Invalid RF64 file: First chunk must be "ds64".');if("fmt "===t)await this.parseFmtChunk(n,a,i);else if("data"===t){if(l??=a,this.dataStart=e.filePos,this.dataSize=Math.min(l,(s??1/0)-this.dataStart),null===this.reader.fileSize)break}else if("ds64"===t){let e=this.reader.requestSlice(n,a);if(e instanceof Promise&&(e=await e),!e)break;let t=(0,d.Ry)(e,i);l=(0,d.Ry)(e,i),s=Math.min(t+8,this.reader.fileSize??1/0)}else"LIST"===t?await this.parseListChunk(n,a,i):("ID3 "===t||"id3 "===t)&&await this.parseId3Chunk(n,a);u=n+a+(1&a),o++}if(!this.audioInfo)throw Error('Invalid WAVE file - missing "fmt " chunk');if(-1===this.dataStart)throw Error('Invalid WAVE file - missing "data" chunk');let h=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/h)*h,this.tracks.push(new n.Rq(this.input,new m(this)))})()}async parseFmtChunk(e,t,i){let r,s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let n=(0,d.NX)(s,i),o=(0,d.NX)(s,i),c=(0,d.qx)(s,i);s.skip(4);let l=(0,d.NX)(s,i);if(r=14===t?8:(0,d.NX)(s,i),t>=18&&357!==n&&Math.min(t-18,(0,d.NX)(s,i))>=22&&n===a.EXTENSIBLE){s.skip(6);let e=(0,d.sB)(s,16);n=e[0]|e[1]<<8}(n===a.MULAW||n===a.ALAW)&&(r=8),this.audioInfo={format:n,numberOfChannels:o,sampleRate:c,sampleSizeInBytes:Math.ceil(r/8),blockSizeInBytes:l}}async parseListChunk(e,t,i){let r=this.reader.requestSlice(e,t);if(r instanceof Promise&&(r=await r),!r)return;let a=(0,d.yn)(r,4);if("INFO"!==a&&"INF0"!==a)return;let s=r.filePos;for(;s<=e+t-8;){r.filePos=s;let e=(0,d.yn)(r,4),t=(0,d.qx)(r,i),a=(0,d.sB)(r,t),n=0;for(let e=0;e<a.length&&0!==a[e];e++)n++;let o=String.fromCharCode(...a.subarray(0,n));switch(this.metadataTags.raw??={},this.metadataTags.raw[e]=o,e){case"INAM":case"TITL":this.metadataTags.title??=o;break;case"TIT3":this.metadataTags.description??=o;break;case"IART":this.metadataTags.artist??=o;break;case"IPRD":this.metadataTags.album??=o;break;case"IPRT":case"ITRK":case"TRCK":{let e=o.split("/"),t=Number.parseInt(e[0],10),i=e[1]&&Number.parseInt(e[1],10);Number.isInteger(t)&&t>0&&(this.metadataTags.trackNumber??=t),i&&Number.isInteger(i)&&i>0&&(this.metadataTags.tracksTotal??=i)}break;case"ICRD":case"IDIT":{let e=new Date(o);Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"YEAR":{let e=Number.parseInt(o,10);Number.isInteger(e)&&e>0&&(this.metadataTags.date??=new Date(e,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=o;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=o}s+=8+t+(1&t)}}async parseId3Chunk(e,t){let i=this.reader.requestSlice(e,t);if(i instanceof Promise&&(i=await i),!i)return;let r=(0,u.wt)(i);if(r){let a=t-u.sA;if(r.size=Math.min(r.size,a),r.size>0){let t=i.slice(e+u.sA,r.size);(0,u.Xm)(t,r,this.metadataTags)}}}getCodec(){if((0,c.hu)(this.audioInfo),this.audioInfo.format===a.MULAW)return"ulaw";if(this.audioInfo.format===a.ALAW)return"alaw";if(this.audioInfo.format===a.PCM){if(1===this.audioInfo.sampleSizeInBytes)return"pcm-u8";if(2===this.audioInfo.sampleSizeInBytes)return"pcm-s16";if(3===this.audioInfo.sampleSizeInBytes)return"pcm-s24";if(4===this.audioInfo.sampleSizeInBytes)return"pcm-s32"}return this.audioInfo.format===a.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,c.hu)(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}
92async getMetadataTags(){return await this.readMetadata(),this.metadataTags}}class m{constructor(e){this.demuxer=e}getId(){return 1}getNumber(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return(0,c.hu)(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?((0,c.hu)(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,c.hu)(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return(0,c.hu)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return(0,c.hu)(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return c.n3}getDisposition(){return{...o.CN}}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){let i;(0,c.hu)(e>=0),(0,c.hu)(this.demuxer.audioInfo);let r=2048*e*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let a=Math.min(2048*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-r);if(null===this.demuxer.reader.fileSize){let e=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,a);if(e instanceof Promise&&(e=await e),!e)return null}if(t.metadataOnly)i=l.L;else{let e=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,a);e instanceof Promise&&(e=await e),(0,c.hu)(e),i=(0,d.sB)(e,a)}let s=2048*e/this.demuxer.audioInfo.sampleRate,n=a/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,this.demuxer.lastKnownPacketIndex),new l.H(i,"key",s,n,e,a)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,t){(0,c.hu)(this.demuxer.audioInfo);let i=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/2048,(this.demuxer.dataSize-1)/(2048*this.demuxer.audioInfo.blockSizeInBytes)));if(i<0)return null;let r=await this.getPacketAtIndex(i,t);if(r)return r;if(0===i)return null;(0,c.hu)(null===this.demuxer.reader.fileSize);let a=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,t);for(;a;){let e=await this.getNextPacket(a,t);if(!e)break;a=e}return a}getNextPacket(e,t){(0,c.hu)(this.demuxer.audioInfo);let i=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/2048);return this.getPacketAtIndex(i+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}}},33595:function(e,t,i){i.d(t,{Ak:function(){return s},PS:function(){return n},zR:function(){return o}});var r=i(73272);class a{constructor(){this.ensureMonotonicity=!1,this.trackedWrites=null,this.trackedStart=-1,this.trackedEnd=-1}start(){}maybeTrackWrites(e){if(!this.trackedWrites)return;let t=this.getPos();if(t<this.trackedStart){if(t+e.byteLength<=this.trackedStart)return;e=e.subarray(this.trackedStart-t),t=0}let i=t+e.byteLength-this.trackedStart,r=this.trackedWrites.byteLength;for(;r<i;)r*=2;if(r!==this.trackedWrites.byteLength){let e=new Uint8Array(r);e.set(this.trackedWrites,0),this.trackedWrites=e}this.trackedWrites.set(e,t-this.trackedStart),this.trackedEnd=Math.max(this.trackedEnd,t+e.byteLength)}startTrackingWrites(){this.trackedWrites=new Uint8Array(1024),this.trackedStart=this.getPos(),this.trackedEnd=this.trackedStart}stopTrackingWrites(){if(!this.trackedWrites)throw Error("Internal error: Can't get tracked writes since nothing was tracked.");let e={data:this.trackedWrites.subarray(0,this.trackedEnd-this.trackedStart),start:this.trackedStart,end:this.trackedEnd};return this.trackedWrites=null,e}}class s extends a{constructor(e){if(super(),this.pos=0,this.maxPos=0,this.target=e,this.supportsResize="resize"in new ArrayBuffer(0),this.supportsResize)try{this.buffer=new ArrayBuffer(65536,{maxByteLength:4294967296})}catch{this.buffer=new ArrayBuffer(65536),this.supportsResize=!1}else this.buffer=new ArrayBuffer(65536);this.bytes=new Uint8Array(this.buffer)}ensureSize(e){let t=this.buffer.byteLength;for(;t<e;)t*=2;if(t!==this.buffer.byteLength){if(t>4294967296)throw Error("ArrayBuffer exceeded maximum size of 4294967296 bytes. Please consider using another target.");if(this.supportsResize)this.buffer.resize(t);else{let e=new ArrayBuffer(t),i=new Uint8Array(e);
92i.set(this.bytes,0),this.buffer=e,this.bytes=i}}}write(e){this.maybeTrackWrites(e),this.ensureSize(this.pos+e.byteLength),this.bytes.set(e,this.pos),this.target.onwrite?.(this.pos,this.pos+e.byteLength),this.pos+=e.byteLength,this.maxPos=Math.max(this.maxPos,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){}async finalize(){this.ensureSize(this.pos),this.target.buffer=this.buffer.slice(0,Math.max(this.maxPos,this.pos))}async close(){}getSlice(e,t){return this.bytes.slice(e,t)}}class n extends a{constructor(e){super(),this.pos=0,this.sections=[],this.lastWriteEnd=0,this.lastFlushEnd=0,this.writer=null,this.writeError=null,this.chunks=[],this.target=e,this.chunked=e._options.chunked??!1,this.chunkSize=e._options.chunkSize??16777216}start(){this.writer=this.target._writable.getWriter()}write(e){if(this.pos>this.lastWriteEnd){let e=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(e))}this.maybeTrackWrites(e),this.sections.push({data:e.slice(),start:this.pos}),this.target.onwrite?.(this.pos,this.pos+e.byteLength),this.pos+=e.byteLength,this.lastWriteEnd=Math.max(this.lastWriteEnd,this.pos)}seek(e){this.pos=e}getPos(){return this.pos}async flush(){if(null!==this.writeError)throw this.writeError;if(this.pos>this.lastWriteEnd){let e=this.pos-this.lastWriteEnd;this.pos=this.lastWriteEnd,this.write(new Uint8Array(e))}if((0,r.hu)(this.writer),0===this.sections.length)return;let e=[],t=[...this.sections].sort((e,t)=>e.start-t.start);e.push({start:t[0].start,size:t[0].data.byteLength});for(let i=1;i<t.length;i++){let r=e[e.length-1],a=t[i];a.start<=r.start+r.size?r.size=Math.max(r.size,a.start+a.data.byteLength-r.start):e.push({start:a.start,size:a.data.byteLength})}for(let t of e){for(let e of(t.data=new Uint8Array(t.size),this.sections))t.start<=e.start&&e.start<t.start+t.size&&t.data.set(e.data,e.start-t.start);if(null!==this.writer.desiredSize&&this.writer.desiredSize<=0&&await this.writer.ready,this.chunked)this.writeDataIntoChunks(t.data,t.start),this.tryToFlushChunks();else{if(this.ensureMonotonicity&&t.start!==this.lastFlushEnd)throw Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:t.data,position:t.start}).catch(e=>{this.writeError??=e}),this.lastFlushEnd=t.start+t.data.byteLength}}this.sections.length=0}writeDataIntoChunks(e,t){let i=this.chunks.findIndex(e=>e.start<=t&&t<e.start+this.chunkSize);-1===i&&(i=this.createChunk(t));let r=this.chunks[i],a=t-r.start,s=e.subarray(0,Math.min(this.chunkSize-a,e.byteLength));r.data.set(s,a);let n={start:a,end:a+s.byteLength};if(this.insertSectionIntoChunk(r,n),0===r.written[0].start&&r.written[0].end===this.chunkSize&&(r.shouldFlush=!0),this.chunks.length>2){for(let e=0;e<this.chunks.length-1;e++)this.chunks[e].shouldFlush=!0;this.tryToFlushChunks()}s.byteLength<e.byteLength&&this.writeDataIntoChunks(e.subarray(s.byteLength),t+s.byteLength)}insertSectionIntoChunk(e,t){let i=0,r=e.written.length-1,a=-1;for(;i<=r;){let s=Math.floor(i+(r-i+1)/2);e.written[s].start<=t.start?(i=s+1,a=s):r=s-1}for(e.written.splice(a+1,0,t),(-1===a||e.written[a].end<t.start)&&a++;a<e.written.length-1&&e.written[a].end>=e.written[a+1].start;)e.written[a].end=Math.max(e.written[a].end,e.written[a+1].end),e.written.splice(a+1,1)}createChunk(e){let t={start:Math.floor(e/this.chunkSize)*this.chunkSize,data:new Uint8Array(this.chunkSize),written:[],shouldFlush:!1};return this.chunks.push(t),this.chunks.sort((e,t)=>e.start-t.start),this.chunks.indexOf(t)}tryToFlushChunks(e=!1){(0,r.hu)(this.writer);for(let t=0;t<this.chunks.length;t++){let i=this.chunks[t];if(i.shouldFlush||e){for(let e of i.written){let t=i.start+e.start;if(this.ensureMonotonicity&&t!==this.lastFlushEnd)throw Error("Internal error: Monotonicity violation.");this.writer.write({type:"write",data:i.data.subarray(e.start,e.end),position:t}).catch(e=>{this.writeError??=e}),this.lastFlushEnd=i.start+e.end}this.chunks.splice(t--,1)}}}async finalize(){if(this.chunked&&this.tryToFlushChunks(!0),null!==this.writeError)throw this.writeError;return(0,r.hu)(this.writer),await this.writer.ready,this.writer.close()}async close(){return this.writer?.close()}}class o extends a{constructor(e){super(),this.target=e,this.pos=0}write(e){this.maybeTrackWrites(e),this.target.onwrite?.(this.pos,this.pos+e.byteLength),this.pos+=e.byteLength}getPos(){return this.pos}seek(e){this.pos=e}async flush(){}async finalize(){}async close(){}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.