1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1628],{11690:(e,t,a)=>{a.d(t,{T:()=>T});var i=a(6461),n=a(28054),r=a(40901),s=a(4612),l=a(7952),o=a(1048),c=a(98830),m=a(72417),f=a(14659),p=a(93113),u=a(16923),d=a(86486),h=a(77699),k=a(53421);class T extends s.B{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.psshBoxes=[],this.currentFragment=null,this.lastReadFragment=null,this.decryptionKeyCache=new Map,this.reader=e._reader}async getTrackBackings(){return await this.readMetadata(),this.tracks.map(e=>e.trackBacking)}async getMimeType(){await this.readMetadata();let e=await this.getTrackBackings(),t=await Promise.all(e.map(e=>e.getDecoderConfig().then(e=>e?.codec??null)));return(0,c.Xh)({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(e=>e.info?.type==="video"),hasAudio:this.tracks.some(e=>e.info?.type==="audio"),codecStrings:t.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0,t=!1,a=!1;for(;;){let i=this.reader.requestSliceRange(e,m.ZM,m.Xk);if((0,l.Qg)(i)&&(i=await i),!i)break;let n=e,r=(0,m.Vl)(i);if(!r)break;if("ftyp"===r.name||"styp"===r.name){let e=(0,f.IT)(i,4);this.isQuickTime="qt "===e}else if("moov"===r.name){let e=this.reader.requestSlice(i.filePos,r.contentSize);if((0,l.Qg)(e)&&(e=await e),!e)break;for(let t of(this.moovSlice=e,this.readContiguousBoxes(this.moovSlice),this.tracks)){let e=t.editListPreviousSegmentDurations/this.movieTimescale;t.editListOffset-=Math.round(e*t.timescale)}t=this.isFragmented&&null!==this.reader.fileSize&&this.reader.fileSize>n+r.totalSize,a=!0;break}else if("moof"===r.name){if(!this.input._initInput)throw Error('"moof" box encountered with no "moov" box present; this file is likely a Segment as described in ISO/IEC 14496-12 Section 8.16. A separate init file that contains a "moov" box is required to read this file, please provide it using InputOptions.initInput.');await this.copyMetadataFromInitInput(this.input._initInput),t=!1,a=!0;break}e=n+r.totalSize}if(!a&&this.input._initInput&&await this.copyMetadataFromInitInput(this.input._initInput),t){(0,l.vA)(null!==this.reader.fileSize);let e=this.reader.requestSlice(this.reader.fileSize-4,4);(0,l.Qg)(e)&&(e=await e),(0,l.vA)(e);let t=(0,f.cN)(e),a=this.reader.fileSize-t;if(a>=0&&a<=this.reader.fileSize-m.Xk){let e=this.reader.requestSliceRange(a,m.ZM,m.Xk);if((0,l.Qg)(e)&&(e=await e),e){let t=(0,m.Vl)(e);if(t&&"mfra"===t.name){let a=this.reader.requestSlice(e.filePos,t.contentSize);(0,l.Qg)(a)&&(a=await a),a&&this.readContiguousBoxes(a)}}}}})()}async copyMetadataFromInitInput(e){let t=await e._getDemuxer();if(t.constructor!==T)throw Error("Init input must match the input's format.");for(let e of(await t.readMetadata(),this.movieTimescale=t.movieTimescale,this.movieDurationInTimescale=t.movieDurationInTimescale,this.metadataTags=t.metadataTags,this.isFragmented=!0,this.fragmentTrackDefaults=t.fragmentTrackDefaults,this.psshBoxes=t.psshBoxes,t.tracks)){let t={id:e.id,demuxer:this,trackBacking:null,disposition:e.disposition,timescale:e.timescale,durationInMediaTimescale:e.durationInMediaTimescale,durationInMovieTimescale:e.durationInMovieTimescale,rotation:e.rotation,internalCodecId:e.internalCodecId,name:e.name,languageCode:e.languageCode,sampleTableByteOffset:null,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:e.editListPreviousSegmentDurations,editListOffset:e.editListOffset,encryptionInfo:e.encryptionInfo,encryptionAuxInfo:null,frmaCodecString:null,info:e.info};e.trackBacking&&((0,l.vA)(t.info),"video"===t.info.type&&-1!==t.info.width?(t.trackBacking=new b(t),this.tracks.push(t)):"audio"===t.info.type&&-1!==t.info.numberOfChannels&&(t.trackBacking=new y(t),this.tracks.push(t)))}}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=t,null===e.sampleTableByteOffset)return t;(0,l.vA)(this.moovSlice);let a=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(a),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&n.Wq.includes(e.info.codec)&&0===t.sampleC
1ompositionTimeOffsets.length){(0,l.vA)(e.info?.type==="audio");let a=(0,n.Ei)(e.info.codec),i=[],r=[];for(let n=0;n<t.sampleToChunk.length;n++){let s=t.sampleToChunk[n],o=t.sampleToChunk[n+1],c=(o?o.startChunkIndex:t.chunkOffsets.length)-s.startChunkIndex;for(let n=0;n<c;n++){let o=s.startSampleIndex+n*s.samplesPerChunk,c=o+s.samplesPerChunk,m=(0,l.eE)(t.sampleTimingEntries,o,e=>e.startIndex),f=t.sampleTimingEntries[m],p=(0,l.eE)(t.sampleTimingEntries,c,e=>e.startIndex),u=t.sampleTimingEntries[p],d=f.startDecodeTimestamp+(o-f.startIndex)*f.delta,h=u.startDecodeTimestamp+(c-u.startIndex)*u.delta-d,k=(0,l._g)(i);k&&k.delta===h?k.count++:i.push({startIndex:s.startChunkIndex+n,startDecodeTimestamp:d,count:1,delta:h});let T=s.samplesPerChunk*a.sampleSize*e.info.numberOfChannels;r.push(T)}s.startSampleIndex=s.startChunkIndex,s.samplesPerChunk=1}t.sampleTimingEntries=i,t.sampleSizes=r}if(t.sampleCompositionTimeOffsets.length>0){for(let e of(t.presentationTimestamps=[],t.sampleTimingEntries))for(let a=0;a<e.count;a++)t.presentationTimestamps.push({presentationTimestamp:e.startDecodeTimestamp+a*e.delta,sampleIndex:e.startIndex+a});for(let e of t.sampleCompositionTimeOffsets)for(let a=0;a<e.count;a++){let i=e.startIndex+a,n=t.presentationTimestamps[i];n&&(n.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,m.ZM,m.Xk);(0,l.Qg)(t)&&(t=await t),(0,l.vA)(t);let a=(0,m.Vl)(t);(0,l.vA)(a?.name==="moof");let i=this.reader.requestSlice(e,a.totalSize);(0,l.Qg)(i)&&(i=await i),(0,l.vA)(i),this.traverseBox(i);let n=this.lastReadFragment;for(let[,t]of((0,l.vA)(n&&n.moofOffset===e),n.trackData)){let e=t.track,{fragmentPositionCache:a}=e;if(!t.startTimestampIsFinal){let i=e.fragmentLookupTable.find(e=>e.moofOffset===n.moofOffset);if(i)C(t,i.timestamp);else{let e=(0,l.eE)(a,n.moofOffset-1,e=>e.moofOffset);-1!==e&&C(t,a[e].endTimestamp)}t.startTimestampIsFinal=!0}let i=(0,l.eE)(a,t.startTimestamp,e=>e.startTimestamp);if((-1===i||a[i].moofOffset!==n.moofOffset)&&a.splice(i+1,0,{moofOffset:n.moofOffset,startTimestamp:t.startTimestamp,endTimestamp:t.endTimestamp}),t.encryptionAuxInfo&&e.encryptionInfo){let a=await A(this.reader,e.encryptionInfo,t.encryptionAuxInfo);for(let e=0;e<Math.min(t.samples.length,a.length);e++){let i=a[e];t.samples[e].encryption=i}}}return n}readContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-m.ZM&&this.traverseBox(e););}*iterateContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-m.ZM;){let t=e.filePos,a=(0,m.Vl)(e);if(!a)break;yield{boxInfo:a,slice:e},e.filePos=t+a.totalSize}}traverseBox(e){let t=e.filePos,a=(0,m.Vl)(e);if(!a)return!1;let s=e.filePos,o=t+a.totalSize;switch(a.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"sinf":case"schi":case"wave":this.readContiguousBoxes(e.slice(s,a.contentSize));break;case"mvhd":{let t=(0,f.eo)(e);e.skip(3),1===t?(e.skip(16),this.movieTimescale=(0,f.cN)(e),this.movieDurationInTimescale=(0,f.th)(e)):(e.skip(8),this.movieTimescale=(0,f.cN)(e),this.movieDurationInTimescale=(0,f.cN)(e))}break;case"trak":{let t={id:-1,demuxer:this,trackBacking:null,disposition:{...p.gM,primary:!1},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:l.IR,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0,encryptionInfo:null,encryptionAuxInfo:null,frmaCodecString:null};this.currentTrack=t,this.readContiguousBoxes(e.slice(s,a.contentSize)),-1!==t.id&&-1!==t.timescale&&null!==t.info&&("video"===t.info.type&&-1!==t.info.width?(t.trackBacking=new b(t),this.tracks.push(t)):"audio"===t.info.type&&-1!==t.info.numberOfChannels&&(t.trackBacking=new y(t),this.tracks.push(t))),this.currentTrack=null}break;case"tkhd":{let t=this.currentTrack;if(!t)break;let a=(0,f.eo)(e),i=(0,f.n2)(e);if(t.disposition.default=!!(1&i),0===a)e.skip(8),t.id=(0,f.cN)(e),e.skip(4),t.durationInMovieTimescale=(0,f.cN)(e);else if(1===a)e.skip(16),t.id=(0,f.cN)(e),e.skip(4),t.durationInMovieTimescale=(0,f.th)(e);else throw Error(`Incorrect track header version ${a}.`);e.skip(16);let n=[(0,m.vX)(e),(0,m.vX)(e),(0,m.IS)(e),(0,m.vX)(e),(0,m.vX)(e),(0,m.IS)(e),(0,m.vX)(e),(0,m.vX)(e),(0,m.IS)(e)],r=(0,l.qT)((0,l.in)(F(n),90));(0,l.vA)(0===r||90===r||180===r||270===r),t.rotation=r}break;case"elst":{let t=this.currentTrack;if(!t)break;let a=(0,f.eo)(e);e.skip(3);let i=!1,n=0,r=(0,f.cN)(e);for(let s=0;s<r;
1s++){let r=1===a?(0,f.th)(e):(0,f.cN)(e),s=1===a?(0,f.B5)(e):(0,f.Ar)(e),l=(0,m.vX)(e);if(0!==r){if(i){k.y._warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(-1===s){n+=r;continue}if(1!==l){k.y._warn("Unsupported edit list entry: media rate must be 1.");break}t.editListPreviousSegmentDurations=n,t.editListOffset=s,i=!0}}}break;case"mdhd":{let t=this.currentTrack;if(!t)break;let a=(0,f.eo)(e);e.skip(3),0===a?(e.skip(8),t.timescale=(0,f.cN)(e),t.durationInMediaTimescale=(0,f.cN)(e)):1===a&&(e.skip(16),t.timescale=(0,f.cN)(e),t.durationInMediaTimescale=(0,f.th)(e));let i=(0,f.mH)(e);if(i>0){t.languageCode="";for(let e=0;e<3;e++)t.languageCode=String.fromCharCode(96+(31&i))+t.languageCode,i>>=5;(0,l.Nu)(t.languageCode)||(t.languageCode=l.IR)}}break;case"hdlr":{let t=this.currentTrack;if(!t)break;e.skip(8);let a=(0,f.IT)(e,4);"vide"===a?t.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:{...l.jW},avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null,proresCodecInfo:null,proresFormat:null}:"soun"===a&&(t.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null,dtsFormat:null,pcmLittleEndian:!1,pcmSampleSize:null})}break;case"stbl":{let i=this.currentTrack;if(!i)break;i.sampleTableByteOffset=t,this.readContiguousBoxes(e.slice(s,a.contentSize))}break;case"stsd":{let t=this.currentTrack;if(!t||null===t.info||t.sampleTable)break;let a=(0,f.eo)(e);e.skip(3);let i=(0,f.cN)(e);for(let r=0;r<i;r++){let i=e.filePos,r=(0,m.Vl)(e);if(!r)break;t.internalCodecId=r.name;let s=r.name.toLowerCase();if("video"===t.info.type){e.skip(24),t.info.width=(0,f.mH)(e),t.info.height=(0,f.mH)(e),t.info.squarePixelWidth=t.info.width,t.info.squarePixelHeight=t.info.height,e.skip(50),t.frmaCodecString=null,this.readContiguousBoxes(e.slice(e.filePos,i+r.totalSize-e.filePos));let a="encv"===s?t.frmaCodecString:s;t.frmaCodecString=null,"avc1"===a||"avc3"===a?(t.info.codec="avc",t.info.avcType="avc1"===a?1:3):"hvc1"===a||"hev1"===a?t.info.codec="hevc":"vp08"===a?t.info.codec="vp8":"vp09"===a?t.info.codec="vp9":"av01"===a?t.info.codec="av1":n.Y2.includes(s)?(t.info.codec="prores",t.info.proresFormat=s):null===a?k.y._warn("Unknown encrypted video codec due to missing frma box."):k.y._warn(`Unsupported video codec (sample entry type '${r.name}').`)}else{e.skip(8);let l=(0,f.mH)(e);e.skip(6);let o=(0,f.mH)(e),c=(0,f.mH)(e);e.skip(4);let m=(0,f.cN)(e)/65536,p=null;0===a&&l>0&&(1===l?(e.skip(4),c=8*(0,f.cN)(e),e.skip(8)):2===l&&(e.skip(4),m=(0,f._3)(e),o=(0,f.cN)(e),e.skip(4),c=(0,f.cN)(e),p=(0,f.cN)(e),e.skip(8))),t.info.numberOfChannels=o,t.info.sampleRate=m,t.frmaCodecString=null,this.readContiguousBoxes(e.slice(e.filePos,i+r.totalSize-e.filePos));let u="enca"===s?t.frmaCodecString:s;if(t.frmaCodecString=null,"mp4a"===u);else if("opus"===u)t.info.codec="opus",t.info.sampleRate=n.yo;else if("flac"===u)t.info.codec="flac";else if("ulaw"===u)t.info.codec="ulaw";else if("alaw"===u)t.info.codec="alaw";else if("ac-3"===u)t.info.codec="ac3";else if("ec-3"===u)t.info.codec="eac3";else if(n.Sf.includes(u))t.info.codec="dts",t.info.dtsFormat=u;else if("twos"===u)8===c?t.info.codec="pcm-s8":16===c?t.info.codec=t.info.pcmLittleEndian?"pcm-s16":"pcm-s16be":(k.y._warn(`Unsupported sample size ${c} for codec 'twos'.`),t.info.codec=null);else if("sowt"===u)8===c?t.info.codec="pcm-s8":16===c?t.info.codec="pcm-s16":(k.y._warn(`Unsupported sample size ${c} for codec 'sowt'.`),t.info.codec=null);else if("raw "===u)t.info.codec="pcm-u8";else if("in24"===u)t.info.codec=t.info.pcmLittleEndian?"pcm-s24":"pcm-s24be";else if("in32"===u)t.info.codec=t.info.pcmLittleEndian?"pcm-s32":"pcm-s32be";else if("fl32"===u)t.info.codec=t.info.pcmLittleEndian?"pcm-f32":"pcm-f32be";else if("fl64"===u)t.info.codec=t.info.pcmLittleEndian?"pcm-f64":"pcm-f64be";else if("ipcm"===u){let e=t.info.pcmSampleSize;t.info.pcmLittleEndian?16===e?t.info.codec="pcm-s16":24===e?t.info.codec="pcm-s24":32===e?t.info.codec="pcm-s32":(k.y._warn(`Invalid ipcm sample size ${e}.`),t.info.codec=null):16===e?t.info.codec="pcm-s16be":24===e?t.info.codec="pcm-s24be":32===e?t.info.codec="pcm-s32be":(k.y._warn(`Invalid ipcm sample size ${e}.`),t.info.codec=null)}else if("fpcm"===u){let e=t.info.pcmSampleSize;t.info.pcmLittleEndian?32===e?t.info.codec="pcm-f32":64===e?t.info.codec="pcm-f64":(k.y._warn(`Invalid fpcm sample size ${e}.`),t.info.codec=null):32===e?t.info.codec="pcm-f32be":64===e?t.info.codec="pcm-f64be":(k.y._warn(`Invalid fpcm sample size ${e}.`),t.info.codec=null)}else if("lpcm"===u&&null!==p){let e=c+7>>3,a=!!(1&p),i=!!(2&p),n=4&p?-1:0;c>0&&c<=64&&(a?32===c&&(t.info.codec=i?"pcm-f32be":"pcm-f32"):n&1<<e-1?1===e?t.info.codec="pcm-s8":2===e?t.info.codec=i?"pcm-s16be":"pcm-s16":3===e?t.info.codec=i?"pcm-s24be":"pcm-s24":4===e&&(t.info.codec=i?"pcm-s32be":"pcm-s32"):1===e&&(t.info.codec="pcm-u8")),null===t.info.codec&&k.y._warn("Unsupported PCM format.")}else null===u?k.y._warn("Unknown encrypted audio codec due to missing frma box."):k.y._warn(`Unsupported audio codec (sample entry type '${r.name}').`)}e.filePos=i+r.totalSize}}break;case"frma":{let t=this.currentTrack;if(!t)break;t.frmaCodecString=(0,f.IT)(e,4).toLowerCase()}break;case"schm":{let t=this.currentTrack;if(!t)break;e.skip(4);let a=(0,f.IT)(e,4);
1"cenc"===a||"cens"===a||"cbcs"===a?t.encryptionInfo={scheme:a,defaultKid:null,defaultIsProtected:null,defaultPerSampleIvSize:null,defaultConstantIv:null,defaultCryptByteBlock:null,defaultSkipByteBlock:null}:k.y._warn(`Unsupported encryption scheme '${a}'.`)}break;case"tenc":{let t=this.currentTrack;if(!t||!t.encryptionInfo)break;let a=(0,f.eo)(e);e.skip(3),e.skip(1);let i=(0,f.eo)(e);if(a>0?(t.encryptionInfo.defaultCryptByteBlock=i>>4,t.encryptionInfo.defaultSkipByteBlock=15&i):(t.encryptionInfo.defaultCryptByteBlock=0,t.encryptionInfo.defaultSkipByteBlock=0),t.encryptionInfo.defaultIsProtected=0!==(0,f.eo)(e),t.encryptionInfo.defaultPerSampleIvSize=(0,f.eo)(e),t.encryptionInfo.defaultKid=(0,l.Br)((0,f.io)(e,16)),t.encryptionInfo.defaultIsProtected&&0===t.encryptionInfo.defaultPerSampleIvSize){let a=(0,f.eo)(e),i=new Uint8Array(16);i.set((0,f.io)(e,a),0),t.encryptionInfo.defaultConstantIv=i}}break;case"avcC":{let t=this.currentTrack;if(!t||((0,l.vA)(t.info),0===a.contentSize))break;t.info.codecDescription=(0,f.io)(e,a.contentSize)}break;case"hvcC":{let t=this.currentTrack;if(!t||((0,l.vA)(t.info),0===a.contentSize))break;t.info.codecDescription=(0,f.io)(e,a.contentSize)}break;case"vpcC":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="video"),e.skip(4);let a=(0,f.eo)(e),i=(0,f.eo)(e),n=(0,f.eo)(e),r=(0,f.eo)(e),s=(0,f.eo)(e),o=(0,f.eo)(e);t.info.vp9CodecInfo={profile:a,level:i,bitDepth:n>>4,chromaSubsampling:n>>1&7,videoFullRangeFlag:1&n,colourPrimaries:r,transferCharacteristics:s,matrixCoefficients:o}}break;case"av1C":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="video"),e.skip(1);let i=(0,f.eo)(e),n=i>>5,s=(0,f.eo)(e),o=s>>6&1;e.skip(1);let c=(0,f.io)(e,a.contentSize-4),m=(0,r.UU)(c);t.info.av1CodecInfo={profile:n,level:31&i,tier:s>>7,bitDepth:2===n&&o?s>>5&1?12:10:o?10:8,monochrome:s>>4&1,chromaSubsamplingX:s>>3&1,chromaSubsamplingY:s>>2&1,chromaSamplePosition:3&s,videoFullRangeFlag:m?.videoFullRangeFlag??0,colourPrimaries:m?.colourPrimaries??2,transferCharacteristics:m?.transferCharacteristics??2,matrixCoefficients:m?.matrixCoefficients??2}}break;case"colr":{let t,a=this.currentTrack;if(!a)break;(0,l.vA)(a.info?.type==="video");let i=(0,f.IT)(e,4);if("nclx"!==i&&"nclc"!==i)break;let n=(0,f.mH)(e),r=(0,f.mH)(e),s=(0,f.mH)(e);"nclx"===i&&(t=!!(128&(0,f.eo)(e))),a.info.colorSpace={primaries:l.BL[n],transfer:l.x_[r],matrix:l.fl[s],fullRange:t}}break;case"pasp":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="video");let a=(0,f.cN)(e),i=(0,f.cN)(e);a>0&&i>0&&(a>i?t.info.squarePixelWidth=Math.round(t.info.width*a/i):t.info.squarePixelHeight=Math.round(t.info.height*i/a))}break;case"esds":{let t=this.currentTrack;if(!t||t.info?.type!=="audio")break;e.skip(4);let a=(0,f.eo)(e);(0,l.vA)(3===a),(0,m.hs)(e),e.skip(2);let n=(0,f.eo)(e);if((128&n)!=0&&e.skip(2),(64&n)!=0){let t=(0,f.eo)(e);e.skip(t)}(32&n)!=0&&e.skip(2);let r=(0,f.eo)(e);(0,l.vA)(4===r);let s=(0,m.hs)(e),o=e.filePos,c=(0,f.eo)(e);if(64===c||103===c?(t.info.codec="aac",t.info.aacCodecInfo={isMpeg2:103===c,objectType:null}):105===c||107===c?t.info.codec="mp3":221===c?t.info.codec="vorbis":169===c?t.info.codec="dts":k.y._warn(`Unsupported audio codec (objectTypeIndication ${c}) - discarding track.`),e.skip(12),s>e.filePos-o){let a=(0,f.eo)(e);(0,l.vA)(5===a);let n=(0,m.hs)(e);if(t.info.codecDescription=(0,f.io)(e,n),"aac"===t.info.codec){let e=(0,i.zF)(t.info.codecDescription);null!==e.outputNumberOfChannels&&(t.info.numberOfChannels=e.outputNumberOfChannels),null!==e.outputSampleRate&&(t.info.sampleRate=e.outputSampleRate)}}}break;case"enda":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="audio"),t.info.pcmLittleEndian=!!(255&(0,f.mH)(e))}break;case"pcmC":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="audio"),e.skip(4);let a=(0,f.eo)(e);t.info.pcmLittleEndian=!!(1&a),t.info.pcmSampleSize=(0,f.eo)(e)}break;case"dOps":{let t,a=this.currentTrack;if(!a)break;(0,l.vA)(a.info?.type==="audio"),e.skip(1);let i=(0,f.eo)(e),n=(0,f.mH)(e),r=(0,f.cN)(e),s=(0,f.iH)(e),o=(0,f.eo)(e);t=0!==o?(0,f.io)(e,2+i):new Uint8Array(0);let c=new Uint8Array(19+t.byteLength),m=new DataView(c.buffer);m.setUint32(0,0x4f707573,!1),m.setUint32(4,0x48656164,!1),m.setUint8(8,1),m.setUint8(9,i),m.setUint16(10,n,!0),m.setUint32(12,r,!0),m.setInt16(16,s,!0),m.setUint8(18,o),c.set(t,19),a.info.codecDescription=c,a.info.numberOfChannels=i}break;case"dfLa":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="audio"),e.skip(4);let a=e.filePos;for(;e.filePos<o;){let a=(0,f.eo)(e),i=(0,f.n2)(e);if((127&a)===r.A3.STREAMINFO){e.skip(10);let a=(0,f.cN)(e),i=a>>>12,n=(a>>9&7)+1;t.info.sampleRate=i,t.info.numberOfChannels=n,e.skip(20)}else e.skip(i);if(128&a)break}let i=e.filePos;e.filePos=a;let n=(0,f.io)(e,i-a),s=new Uint8Array(4+n.byteLength);new DataView(s.buffer).setUint32(0,0x664c6143,!1),s.set(n,4),t.info.codecDescription=s}break;case"dac3":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="audio");let a=(0,f.io)(e,3),i=new d._(a),n=i.readBits(2);i.skipBits(8);let s=i.readBits(3),o=i.readBits(1);n<3&&(t.info.sampleRate=u.N[n]),t.info.numberOfChannels=r.ux[s]+o}break;case"dec3":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="audio");let i=(0,f.io)(e,a.contentSize),n=(0,r.Sd)(i);if(!n){k.y._warn("Invalid dec3 box contents, ignoring.");break}let s=(0,r.PK)(n);null!==s&&(t.info.sampleRate=s),t.info.numberOfChannels=(0,r.zV)(n)}break;case"ddts":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.info?.type==="audio");let i=(0,f.io)(e,Math.min(a.contentSize,r.Xc)),n=(0,r.ix)(i);if(!n){k.y._warn("Invalid ddts box contents, ignoring.");break}t.info.sampleRate=n.sampleRate,null!==n.numberOfChannels&&(t.info.numberOfChannels=n.numberOfChannels)}break;case"stts":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let a=(0,f.cN)(e),i=0,n=0;for(let r=0;r<a;r++){let a=(0,f.cN)(e),r=(0,f.cN)(e);t.sampleTable.sampleTimingEntries.push({startIndex:i,startDecodeTimestamp:n,count:a,delta:r}),i+=a,n+=a*r}}break;case"ctts":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let a=(0,f.cN)(e),i=0;for(let n=0;n<a;n++){let a=(0,f.cN)(e),n=(0,f.Ar)(e);
1t.sampleTable.sampleCompositionTimeOffsets.push({startIndex:i,count:a,offset:n}),i+=a}}break;case"stsz":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let a=(0,f.cN)(e),i=(0,f.cN)(e);if(0===a)for(let a=0;a<i;a++){let a=(0,f.cN)(e);t.sampleTable.sampleSizes.push(a)}else t.sampleTable.sampleSizes.push(a)}break;case"stz2":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4),e.skip(3);let a=(0,f.eo)(e),i=(0,f.cN)(e),n=(0,f.io)(e,Math.ceil(i*a/8)),r=new d._(n);for(let e=0;e<i;e++){let e=r.readBits(a);t.sampleTable.sampleSizes.push(e)}}break;case"stss":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4),t.sampleTable.keySampleIndices=[];let a=(0,f.cN)(e);for(let i=0;i<a;i++){let a=(0,f.cN)(e)-1;t.sampleTable.keySampleIndices.push(a)}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 a=(0,f.cN)(e);for(let i=0;i<a;i++){let a=(0,f.cN)(e)-1,i=(0,f.cN)(e),n=(0,f.cN)(e);t.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:a,samplesPerChunk:i,sampleDescriptionIndex:n})}let i=0;for(let e=0;e<t.sampleTable.sampleToChunk.length;e++)t.sampleTable.sampleToChunk[e].startSampleIndex=i,e<t.sampleTable.sampleToChunk.length-1&&(i+=(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 a=(0,f.cN)(e);for(let i=0;i<a;i++){let a=(0,f.cN)(e);t.sampleTable.chunkOffsets.push(a)}}break;case"co64":{let t=this.currentTrack;if(!t||!t.sampleTable)break;e.skip(4);let a=(0,f.cN)(e);for(let i=0;i<a;i++){let a=(0,f.th)(e);t.sampleTable.chunkOffsets.push(a)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(s,a.contentSize));break;case"mehd":{let t=(0,f.eo)(e);e.skip(3);let a=1===t?(0,f.th)(e):(0,f.cN)(e);this.movieDurationInTimescale=a}break;case"trex":{e.skip(4);let t=(0,f.cN)(e),a=(0,f.cN)(e),i=(0,f.cN)(e),n=(0,f.cN)(e),r=(0,f.cN)(e);this.fragmentTrackDefaults.push({trackId:t,defaultSampleDescriptionIndex:a,defaultSampleDuration:i,defaultSampleSize:n,defaultSampleFlags:r})}break;case"tfra":{let t=(0,f.eo)(e);e.skip(3);let a=(0,f.cN)(e),i=this.tracks.find(e=>e.id===a);if(!i)break;let n=(0,f.cN)(e),r=[f.eo,f.mH,f.n2,f.cN],s=r[(48&n)>>4],l=r[(12&n)>>2],o=r[3&n],c=(0,f.cN)(e);for(let a=0;a<c;a++){let a=1===t?(0,f.th)(e):(0,f.cN)(e),n=1===t?(0,f.th)(e):(0,f.cN)(e);s(e),l(e),o(e),i.fragmentLookupTable.push({timestamp:a,moofOffset:n})}i.fragmentLookupTable.sort((e,t)=>e.timestamp-t.timestamp);for(let e=0;e<i.fragmentLookupTable.length-1;e++){let t=i.fragmentLookupTable[e],a=i.fragmentLookupTable[e+1];t.timestamp===a.timestamp&&(i.fragmentLookupTable.splice(e+1,1),e--)}}break;case"moof":this.currentFragment={moofOffset:t,moofSize:a.totalSize,implicitBaseDataOffset:t,trackData:new Map,psshBoxes:[]},this.readContiguousBoxes(e.slice(s,a.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if((0,l.vA)(this.currentFragment),this.readContiguousBoxes(e.slice(s,a.contentSize)),this.currentTrack){let e=this.currentFragment.trackData.get(this.currentTrack.id);e:if(e){if(0===e.samples.length){this.currentFragment.trackData.delete(this.currentTrack.id);break e}e.presentationTimestamps=e.samples.map((e,t)=>({presentationTimestamp:e.presentationTimestamp,sampleIndex:t})).sort((e,t)=>e.presentationTimestamp-t.presentationTimestamp);for(let t=0;t<e.presentationTimestamps.length;t++){let a=e.presentationTimestamps[t],i=e.samples[a.sampleIndex];null===e.firstKeyFrameTimestamp&&i.isKeyFrame&&(e.firstKeyFrameTimestamp=i.presentationTimestamp),t<e.presentationTimestamps.length-1&&(i.duration=e.presentationTimestamps[t+1].presentationTimestamp-a.presentationTimestamp)}let t=e.samples[e.presentationTimestamps[0].sampleIndex],a=e.samples[(0,l._g)(e.presentationTimestamps).sampleIndex];e.startTimestamp=t.presentationTimestamp,e.endTimestamp=a.presentationTimestamp+a.duration;let{currentFragmentState:i}=this.currentTrack;(0,l.vA)(i),null!==i.startTimestamp&&(C(e,i.startTimestamp),e.startTimestampIsFinal=!0),i.encryptionAuxInfo&&!e.samples[0].encryption&&(e.encryptionAuxInfo=i.encryptionAuxInfo)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"pssh":{if(this.input._formatOptions.isobmff?._suppressPsshParsing)break;let t=(0,c.j1)((0,f.io)(e,a.contentSize));this.currentFragment?this.currentFragment.psshBoxes.push(t):this.currentTrack||this.pss
1hBoxes.push(t)}break;case"tfhd":{(0,l.vA)(this.currentFragment),e.skip(1);let t=(0,f.n2)(e),a=(0,f.cN)(e),i=this.tracks.find(e=>e.id===a);if(!i)break;let n=this.fragmentTrackDefaults.find(e=>e.trackId===a);this.currentTrack=i,i.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:n?.defaultSampleDescriptionIndex??null,defaultSampleDuration:n?.defaultSampleDuration??null,defaultSampleSize:n?.defaultSampleSize??null,defaultSampleFlags:n?.defaultSampleFlags??null,startTimestamp:null,encryptionAuxInfo:null},1&t?i.currentFragmentState.baseDataOffset=(0,f.th)(e):131072&t&&(i.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),2&t&&(i.currentFragmentState.sampleDescriptionIndex=(0,f.cN)(e)),8&t&&(i.currentFragmentState.defaultSampleDuration=(0,f.cN)(e)),16&t&&(i.currentFragmentState.defaultSampleSize=(0,f.cN)(e)),32&t&&(i.currentFragmentState.defaultSampleFlags=(0,f.cN)(e)),65536&t&&(i.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let t=this.currentTrack;if(!t)break;(0,l.vA)(t.currentFragmentState);let a=(0,f.eo)(e);e.skip(3);let i=0===a?(0,f.cN)(e):(0,f.th)(e);t.currentFragmentState.startTimestamp=i}break;case"trun":{let t,a=this.currentTrack;if(!a)break;(0,l.vA)(this.currentFragment),(0,l.vA)(a.currentFragmentState);let i=(0,f.eo)(e),n=(0,f.n2)(e),r=!!(256&n),s=!!(512&n),o=!!(1024&n),c=!!(2048&n),m=(0,f.cN)(e),p=null;1&n&&(p=(0,f.Ar)(e));let u=null;4&n&&(u=(0,f.cN)(e)),this.currentFragment.trackData.has(a.id)?(t=this.currentFragment.trackData.get(a.id),null!==p&&(t.currentOffset=a.currentFragmentState.baseDataOffset+p)):(t={track:a,currentTimestamp:0,currentOffset:a.currentFragmentState.baseDataOffset+(p??0),startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1,encryptionAuxInfo:null},this.currentFragment.trackData.set(a.id,t));for(let n=0;n<m;n++){let m,p,d;r?m=(0,f.cN)(e):((0,l.vA)(null!==a.currentFragmentState.defaultSampleDuration),m=a.currentFragmentState.defaultSampleDuration),s?p=(0,f.cN)(e):((0,l.vA)(null!==a.currentFragmentState.defaultSampleSize),p=a.currentFragmentState.defaultSampleSize),o?d=(0,f.cN)(e):((0,l.vA)(null!==a.currentFragmentState.defaultSampleFlags),d=a.currentFragmentState.defaultSampleFlags),0===n&&null!==u&&(d=u);let h=0;c&&(h=0===i?(0,f.cN)(e):(0,f.Ar)(e));let k=!(65536&d);t.samples.push({presentationTimestamp:t.currentTimestamp+h,duration:m,byteOffset:t.currentOffset,byteSize:p,isKeyFrame:k,encryption:null}),t.currentOffset+=p,t.currentTimestamp+=m}this.currentFragment.implicitBaseDataOffset=t.currentOffset}break;case"saiz":{let t=this.currentTrack;if(!t||!t.encryptionInfo)break;if(e.skip(1),1&(0,f.n2)(e)){let a=(0,f.IT)(e,4),i=(0,f.cN)(e);if(a!==t.encryptionInfo.scheme||0!==i)break}let a=(0,f.eo)(e),i=(0,f.cN)(e),n=null;0===a&&i>0&&(n=(0,f.io)(e,i));let r=P(t);r.defaultSampleInfoSize=a,r.sampleSizes=n,r.sampleCount=i}break;case"saio":{let t=this.currentTrack;if(!t||!t.encryptionInfo)break;let a=(0,f.eo)(e);if(1&(0,f.n2)(e)){let a=(0,f.IT)(e,4),i=(0,f.cN)(e);if(a!==t.encryptionInfo.scheme||0!==i)break}let i=(0,f.cN)(e);if(0===i)break;i>1&&k.y._warn("Multiple saio entries are not supported; using the first offset only.");let n=0===a?(0,f.cN)(e):Number((0,f.th)(e));this.currentFragment&&(n+=this.currentFragment.moofOffset),P(t).offset=n}break;case"senc":{let t=this.currentTrack;if(!t||!t.encryptionInfo)break;(0,l.vA)(this.currentFragment);let a=this.currentFragment.trackData.get(t.id);if(!a)break;e.skip(1);let i=!!(2&(0,f.n2)(e)),n=(0,f.cN)(e),r=t.encryptionInfo.defaultPerSampleIvSize;(0,l.vA)(null!==r);for(let s=0;s<Math.min(n,a.samples.length);s++){let n=new Uint8Array(16);r>0?n.set((0,f.io)(e,r),0):n.set(t.encryptionInfo.defaultConstantIv,0);let l=null;if(i){let t=(0,f.mH)(e);l=[];for(let a=0;a<t;a++){let t=(0,f.mH)(e),a=(0,f.cN)(e);l.push({clearLen:t,protectedLen:a})}}a.samples[s].encryption={iv:n,subsamples:l}}}break;case"udta":for(let{boxInfo:t,slice:i}of this.iterateContiguousBoxes(e.slice(s,a.contentSize))){if("meta"!==t.name&&!this.currentTrack){let e=i.filePos;this.metadataTags.raw??={},"\xa9"===t.name[0]?this.metadataTags.raw[t.name]??=(0,m.$L)(i):this.metadataTags.raw[t.name]??=(0,f.io)(i,t.contentSize),i.filePos=e}switch(t.name){case"meta":i.skip(-t.headerSize),this.traverseBox(i);break;case"\xa9nam":case"name":this.currentTrack?this.currentTrack.name=l.su.decode((0,f.io)(i,t.contentSize)):this.metadataTags.title??=(0,m.$L)(i);break;case"\xa9des":this.currentTrack||(this.metadataTags.description??=(0,m.$L)(i));break;case"\xa9ART":this.currentTrack||(this.metadataTags.artist??=(0,m.$L)(i));break;
1case"\xa9alb":this.currentTrack||(this.metadataTags.album??=(0,m.$L)(i));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=(0,m.$L)(i));break;case"\xa9gen":this.currentTrack||(this.metadataTags.genre??=(0,m.$L)(i));break;case"\xa9day":if(!this.currentTrack){let e=new Date((0,m.$L)(i));Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"\xa9cmt":this.currentTrack||(this.metadataTags.comment??=(0,m.$L)(i));break;case"\xa9lyr":this.currentTrack||(this.metadataTags.lyrics??=(0,m.$L)(i))}}break;case"meta":{if(this.currentTrack)break;let t=(0,f.cN)(e);this.currentMetadataKeys=new Map,0!==t?this.readContiguousBoxes(e.slice(s,a.contentSize)):this.readContiguousBoxes(e.slice(s+4,a.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let t=(0,f.cN)(e);for(let a=0;a<t;a++){let t=(0,f.cN)(e);e.skip(4);let i=l.su.decode((0,f.io)(e,t-8));this.currentMetadataKeys.set(a+1,i)}}break;case"ilst":if(!this.currentMetadataKeys)break;for(let{boxInfo:t,slice:i}of this.iterateContiguousBoxes(e.slice(s,a.contentSize))){let e=t.name,a=(e.charCodeAt(0)<<24)+(e.charCodeAt(1)<<16)+(e.charCodeAt(2)<<8)+e.charCodeAt(3);this.currentMetadataKeys.has(a)&&(e=this.currentMetadataKeys.get(a));let n=(0,m.Cp)(i);switch(this.metadataTags.raw??={},this.metadataTags.raw[e]??=n,e){case"\xa9nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof n&&(this.metadataTags.title??=n);break;case"\xa9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":"string"==typeof n&&(this.metadataTags.description??=n);break;case"\xa9ART":case"com.apple.quicktime.artist":case"artist":"string"==typeof n&&(this.metadataTags.artist??=n);break;case"\xa9alb":case"albm":case"com.apple.quicktime.album":case"album":"string"==typeof n&&(this.metadataTags.album??=n);break;case"aART":case"album_artist":"string"==typeof n&&(this.metadataTags.albumArtist??=n);break;case"\xa9cmt":case"com.apple.quicktime.comment":case"comment":"string"==typeof n&&(this.metadataTags.comment??=n);break;case"\xa9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof n&&(this.metadataTags.genre??=n);break;case"\xa9lyr":case"lyrics":"string"==typeof n&&(this.metadataTags.lyrics??=n);break;case"\xa9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof n){let e=new Date(n);Number.isNaN(e.getTime())||(this.metadataTags.date??=e)}break;case"covr":case"com.apple.quicktime.artwork":n instanceof p.sF?(this.metadataTags.images??=[],this.metadataTags.images.push({data:n.data,kind:"coverFront",mimeType:n.mimeType})):n instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:n,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof n){let e=n.split("/"),t=Number.parseInt(e[0],10),a=e[1]&&Number.parseInt(e[1],10);Number.isInteger(t)&&t>0&&(this.metadataTags.trackNumber??=t),a&&Number.isInteger(a)&&a>0&&(this.metadataTags.tracksTotal??=a)}break;case"trkn":if(n instanceof Uint8Array&&n.length>=6){let e=(0,l.Zc)(n),t=e.getUint16(2,!1),a=e.getUint16(4,!1);t>0&&(this.metadataTags.trackNumber??=t),a>0&&(this.metadataTags.tracksTotal??=a)}break;case"disc":case"disk":if(n instanceof Uint8Array&&n.length>=6){let e=(0,l.Zc)(n),t=e.getUint16(2,!1),a=e.getUint16(4,!1);t>0&&(this.metadataTags.discNumber??=t),a>0&&(this.metadataTags.discsTotal??=a)}}}}return e.filePos=o,!0}}class g{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.trackBacking.getType(),a=0;for(let i of e.tracks)if(i.trackBacking.getType()===t&&a++,i===this.internalTrack)break;return a}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}isRelativeToUnixEpoch(){return!1}getUnixTimeForTimestamp(){return null}getDisposition(){return this.internalTrack.disposition}getPairingMask(){return 1n}getBitrate(){return null}getAverageBitrate(){return null}async getDurationFromMetadata(){let e=this.internalTrack;if(e.durationInMediaTimescale<=0)return null;(0,l.vA)(e.trackBacking);let t=await e.trackBacking.getFirstPacket({metadataOnly:!0});return(t?.timestamp??0)+e.durationInMediaTimescale/e.timescale}
1async getLiveRefreshInterval(){return null}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}:{sampleIndex:-1,correctSampleFound:!1},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return(0,l.aI)(e*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(e,t){let a=this.mapTimestampIntoTimescale(e),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=S(i,a),r=await this.fetchPacketForSampleIndex(n,t);return w(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,e=>{let t=e.trackData.get(this.internalTrack.id);if(!t)return{sampleIndex:-1,correctSampleFound:!1};let i=(0,l.eE)(t.presentationTimestamps,a,e=>e.presentationTimestamp);return{sampleIndex:-1!==i?t.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&a<t.endTimestamp}},a,a,t):r}async getNextPacket(e,t){let a=this.packetToSampleIndex.get(e);if(void 0!==a)return this.fetchPacketForSampleIndex(a+1,t);let i=this.packetToFragmentLocation.get(e);if(void 0===i)throw Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,e=>{if(e===i.fragment){let t=e.trackData.get(this.internalTrack.id);if(i.sampleIndex+1<t.samples.length)return{sampleIndex:i.sampleIndex+1,correctSampleFound:!0}}else if(e.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,t)}async getKeyPacket(e,t){let a=this.mapTimestampIntoTimescale(e),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=I(i,a),r=await this.fetchPacketForSampleIndex(n,t);return w(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,e=>{let t=e.trackData.get(this.internalTrack.id);if(!t)return{sampleIndex:-1,correctSampleFound:!1};let i=(0,l.Kl)(t.presentationTimestamps,e=>t.samples[e.sampleIndex].isKeyFrame&&e.presentationTimestamp<=a);return{sampleIndex:-1!==i?t.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&a<t.endTimestamp}},a,a,t):r}async getNextKeyPacket(e,t){let a=this.packetToSampleIndex.get(e);if(void 0!==a){let e=x(this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a);return this.fetchPacketForSampleIndex(e,t)}let i=this.packetToFragmentLocation.get(e);if(void 0===i)throw Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,e=>{if(e===i.fragment){let t=e.trackData.get(this.internalTrack.id).samples.findIndex((e,t)=>e.isKeyFrame&&t>i.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,l.vA)(-1!==e),{sampleIndex:e,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,t)}async fetchPacketForSampleIndex(e,t){let a;if(-1===e)return null;let i=v(this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),e);if(!i)return null;if(t.metadataOnly)a=o.T;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);if((0,l.Qg)(t)&&(t=await t),!t)return null;if(a=(0,f.io)(t,i.sampleSize),this.internalTrack.encryptionInfo){let t=null;if(this.internalTrack.encryptionAuxInfo){let a=await A(this.internalTrack.demuxer.reader,this.internalTrack.encryptionInfo,this.internalTrack.encryptionAuxInfo);e<a.length&&(t=a[e])}(t??=N(this.internalTrack.encryptionInfo))&&(a=await z(this.internalTrack,t,a,null))}}let n=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,r=i.duration/this.internalTrack.timescale,s=new o.Z(a,i.isKeyFrame?"key":"delta",n,r,e,i.sampleSize);return this.packetToSampleIndex.set(s,e),s}async fetchPacketInFragment(e,t,a){let i;if(-1===t)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];if((0,l.vA)(n),a.metadataOnly)i=o.T;else{let t=this.internalTrack.demuxer.reader.requestSlice(n.byteOffset,n.byteSize);if((0,l.Qg)(t)&&(t=await t),!t)return null;if(i=(0,f.io)(t,n.byteSize),this.internalTrack.encryptionInfo){let t=n.encryption??N(this.internalTrack.encryptionInfo);t&&(i=await z(this.internalTrack,t,i,e))}}let r=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=n.duration/this.internalTrack.timescale,c=new o.Z(i,n.isKeyFrame?"key":"delta",r,s,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(c,{fragment:e,sampleIndex:t}),c}async performFragmentedLookup(e,t,a,i,n){let r,s=this.internalTrack.demuxer,o=null,c=null,f=-1;if(e){let{sampleIndex:a,correctSampleFound:i}=t(e);if(i)return this.fetchPacketInFragment(e,a,n);-1!==a&&(c=e,f=a)}let p=(0,l.eE)(this.internalTrack.fragmentLookupTable,a,e=>e.timestamp),u=-1!==p?this.internalTrack.fragmentLookupTable[p]:null,d=(0,l.eE)(this.internalTrack.fragmentPositionCache,a,e=>e.startTimestamp),h=-1!==d?this.internalTrack.fragmentPositionCache[d]:null,k=Math.max(u?.moofOffset??0,h?.moofOffset??0)||null;for(e?null===k||e.moofOffset>=k?(r=e.moofOffset+e.moofSize,o=e):r=k:r=k??0;;){if(o){let e=o.trackData.get(this.internalTrack.id);if(e&&e.startTimestamp>i)break}let e=s.reader.requestSliceRange(r,m.ZM,m.Xk);if((0,l.Qg)(e)&&(e=await e),!e)break;let a=r,p=(0,m.Vl)(e);if(!p)break;if("moof"===p.name){let{sampleIndex:e,correctSampleFound:i}=t(o=await s.readFragment(a));if(i)return this.fetchPacketInFragment(o,e,n);-1!==e&&(c=o,f=e)}r=a+p.totalSize}
1if(u&&(!c||c.moofOffset<u.moofOffset)){let e=this.internalTrack.fragmentLookupTable[p-1];(0,l.vA)(!e||e.timestamp<u.timestamp);let a=e?.timestamp??-1/0;return this.performFragmentedLookup(null,t,a,i,n)}return c?this.fetchPacketInFragment(c,f,n):null}}class b extends g{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getType(){return"video"}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(){let e=await this.getDecoderConfig();return e?{primaries:e.colorSpace?.primaries,transfer:e.colorSpace?.transfer,matrix:e.colorSpace?.matrix,fullRange:e.colorSpace?.fullRange}:this.internalTrack.info.colorSpace}async canBeTransparent(){return"prores"===this.internalTrack.info.codec&&("ap4h"===this.internalTrack.info.proresFormat||"ap4x"===this.internalTrack.info.proresFormat)}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if("avc"!==this.internalTrack.info.codec||this.internalTrack.info.codecDescription)if("hevc"!==this.internalTrack.info.codec||this.internalTrack.info.codecDescription)if("vp9"!==this.internalTrack.info.codec||this.internalTrack.info.vp9CodecInfo&&(0,r.$m)(this.internalTrack.info.vp9CodecInfo))if("av1"!==this.internalTrack.info.codec||this.internalTrack.info.av1CodecInfo&&(0,r.et)(this.internalTrack.info.av1CodecInfo)){if("prores"===this.internalTrack.info.codec&&!this.internalTrack.info.proresCodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.proresCodecInfo=e&&(0,r.RU)(e.data)}}else{let e=await this.getFirstPacket({}),t=e&&(0,r.UU)(e.data);t&&(this.internalTrack.info.av1CodecInfo=t)}else{let e=await this.getFirstPacket({}),t=e&&(0,r.bs)(e.data);t&&(this.internalTrack.info.vp9CodecInfo={...this.internalTrack.info.vp9CodecInfo??t,videoFullRangeFlag:t.videoFullRangeFlag,colourPrimaries:t.colourPrimaries,transferCharacteristics:t.transferCharacteristics,matrixCoefficients:t.matrixCoefficients})}else{let e=await this.getFirstPacket({});this.internalTrack.info.hevcCodecInfo=e&&(0,r.D5)(e.data)}else{let e=await this.getFirstPacket({});this.internalTrack.info.avcCodecInfo=e&&(0,r.fH)(e.data)}if(!(0,l.HV)(this.internalTrack.info.colorSpace)){let e=(0,n.LD)(this.internalTrack.info);this.internalTrack.info.colorSpace.primaries??=e.primaries,this.internalTrack.info.colorSpace.transfer??=e.transfer,this.internalTrack.info.colorSpace.matrix??=e.matrix,this.internalTrack.info.colorSpace.fullRange??=e.fullRange}let e={codec:(0,n.QP)(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace};return(this.internalTrack.info.width!==this.internalTrack.info.squarePixelWidth||this.internalTrack.info.height!==this.internalTrack.info.squarePixelHeight)&&(e.displayAspectWidth=this.internalTrack.info.squarePixelWidth,e.displayAspectHeight=this.internalTrack.info.squarePixelHeight),e})():null}}class y extends g{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getType(){return"audio"}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.decoderConfigPromise??=(async()=>{if("dts"===this.internalTrack.info.codec&&!this.internalTrack.info.dtsFormat){let e=await this.getFirstPacket({});this.internalTrack.info.dtsFormat=e&&(0,r.n$)(e.data)}return{codec:(0,n.X0)(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}})():null}}let S=(e,t)=>{if(e.presentationTimestamps){let a=(0,l.eE)(e.presentationTimestamps,t,e=>e.presentationTimestamp);return -1===a?-1:e.presentationTimestamps[a].sampleIndex}{let a=(0,l.eE)(e.sampleTimingEntries,t,e=>e.startDecodeTimestamp);if(-1===a)return -1;let i=e.sampleTimingEntries[a];return i.startIndex+Math.min(Math.floor((t-i.startDecodeTimestamp)/i.delta),i.count-1)}},I=(e,t)=>
1{if(!e.keySampleIndices)return S(e,t);if(e.presentationTimestamps){let a=(0,l.eE)(e.presentationTimestamps,t,e=>e.presentationTimestamp);if(-1===a)return -1;for(let t=a;t>=0;t--){let a=e.presentationTimestamps[t].sampleIndex;if(-1!==(0,l.pl)(e.keySampleIndices,a,e=>e))return a}return -1}{let a=S(e,t),i=(0,l.eE)(e.keySampleIndices,a,e=>e);return e.keySampleIndices[i]??-1}},v=(e,t)=>{let a=(0,l.eE)(e.sampleTimingEntries,t,e=>e.startIndex),i=e.sampleTimingEntries[a];if(!i||i.startIndex+i.count<=t)return null;let n=i.startDecodeTimestamp+(t-i.startIndex)*i.delta,r=(0,l.eE)(e.sampleCompositionTimeOffsets,t,e=>e.startIndex),s=e.sampleCompositionTimeOffsets[r];s&&t-s.startIndex<s.count&&(n+=s.offset);let o=e.sampleSizes[Math.min(t,e.sampleSizes.length-1)],c=(0,l.eE)(e.sampleToChunk,t,e=>e.startSampleIndex),m=e.sampleToChunk[c];(0,l.vA)(m);let f=m.startChunkIndex+Math.floor((t-m.startSampleIndex)/m.samplesPerChunk),p=e.chunkOffsets[f],u=m.startSampleIndex+(f-m.startChunkIndex)*m.samplesPerChunk,d=0,h=p;if(1===e.sampleSizes.length)h+=o*(t-u),d+=o*m.samplesPerChunk;else for(let a=u;a<u+m.samplesPerChunk;a++){let i=e.sampleSizes[a];a<t&&(h+=i),d+=i}let k=i.delta;if(e.presentationTimestamps){let a=e.presentationTimestampIndexMap[t];(0,l.vA)(void 0!==a),a<e.presentationTimestamps.length-1&&(k=e.presentationTimestamps[a+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:k,sampleOffset:h,sampleSize:o,chunkOffset:p,chunkSize:d,isKeyFrame:!e.keySampleIndices||-1!==(0,l.pl)(e.keySampleIndices,t,e=>e)}},x=(e,t)=>{if(!e.keySampleIndices)return t+1;let a=(0,l.eE)(e.keySampleIndices,t,e=>e);return e.keySampleIndices[a+1]??-1},C=(e,t)=>{for(let a of(e.startTimestamp+=t,e.endTimestamp+=t,e.samples))a.presentationTimestamp+=t;for(let a of e.presentationTimestamps)a.presentationTimestamp+=t},F=e=>{let[t,a]=e,i=Math.atan2(a,t);return Number.isFinite(i)?180/Math.PI*i:0},w=e=>0===e.sampleSizes.length,P=e=>e.currentFragmentState?e.currentFragmentState.encryptionAuxInfo??={defaultSampleInfoSize:0,sampleSizes:null,sampleCount:0,offset:null,resolved:null}:e.encryptionAuxInfo??={defaultSampleInfoSize:0,sampleSizes:null,sampleCount:0,offset:null,resolved:null},A=async(e,t,a)=>{if(a.resolved)return a.resolved;if(null===a.offset||0===a.sampleCount)throw Error("Incomplete saiz/saio info; cannot resolve encryption data.");let i=0;if(a.defaultSampleInfoSize>0)i=a.defaultSampleInfoSize*a.sampleCount;else{(0,l.vA)(a.sampleSizes);for(let e=0;e<a.sampleCount;e++)i+=a.sampleSizes[e]}let n=e.requestSlice(a.offset,i);if((0,l.Qg)(n)&&(n=await n),!n)throw Error("Failed to read auxiliary encryption info.");let r=t.defaultPerSampleIvSize;(0,l.vA)(null!==r);let s=[];for(let e=0;e<a.sampleCount;e++){let i=a.defaultSampleInfoSize>0?a.defaultSampleInfoSize:a.sampleSizes[e],l=new Uint8Array(16);r>0?l.set((0,f.io)(n,r),0):l.set(t.defaultConstantIv,0);let o=null;if(i>r){let e=(0,f.mH)(n);o=[];for(let t=0;t<e;t++){let e=(0,f.mH)(n),t=(0,f.cN)(n);o.push({clearLen:e,protectedLen:t})}}s.push({iv:l,subsamples:o})}return a.resolved=s,s},N=e=>e.defaultConstantIv?{iv:e.defaultConstantIv,subsamples:null}:null,z=async(e,t,a,i)=>{let n;(0,l.vA)(e.encryptionInfo);let r=e.encryptionInfo;(0,l.vA)(null!==r.defaultKid);let s=r.defaultKid,o=e.demuxer.decryptionKeyCache.get(s);if(o)n=await o;else{if(!e.demuxer.input._formatOptions.isobmff?.resolveKeyId)throw Error("Encrypted media samples encountered. To decrypt them, please provide a callback for InputOptions.formatOptions.isobmff.resolveKeyId.");let t=(async()=>{let t=e.demuxer.psshBoxes;if(i){t=[...t,...i.psshBoxes].filter(e=>null===e.keyIds||e.keyIds.includes(s));for(let e=0;e<t.length-1;e++)for(let a=e+1;a<t.length;a++)(0,c.MG)(t[e],t[a])&&(t.splice(a,1),a--)}let a=await e.demuxer.input._formatOptions.isobmff.resolveKeyId({keyId:s,psshBoxes:t});if(!("string"==typeof a&&32===a.length&&l.Sn.test(a)||a instanceof Uint8Array&&16===a.byteLength))throw TypeError("resolveKeyId must return a 32-character hex string or a 16-byte Uint8Array containing the decryption key.");return a instanceof Uint8Array?a:(0,l.ZY)(a)})();e.demuxer.decryptionKeyCache.set(s,t),n=await t}return"cenc"===r.scheme||"cens"===r.scheme?O(n,r,t,a):B(n,r,t,a)},O=async(e,t,a,i)=>{let n=new Uint8Array(16);n.set(a.iv,0);let r=await crypto.subtle.importKey("raw",e,{name:"AES-CTR"},!1,["decrypt"]),s=async e=>
1new Uint8Array(await crypto.subtle.decrypt({name:"AES-CTR",counter:n,length:64},r,e));if(!a.subsamples)return s(i);(0,l.vA)(null!==t.defaultCryptByteBlock&&null!==t.defaultSkipByteBlock);let o=D(a.subsamples,t.defaultCryptByteBlock,t.defaultSkipByteBlock),c=0;for(let e of o)for(let t of e.perSubsample)c+=t.length;let m=new Uint8Array(c),f=0;for(let e of o)for(let t of e.perSubsample)m.set(i.subarray(t.offset,t.offset+t.length),f),f+=t.length;let p=await s(m),u=new Uint8Array(i),d=0;for(let e of o)for(let t of e.perSubsample)u.set(p.subarray(d,d+t.length),t.offset),d+=t.length;return u},B=(e,t,a,i)=>{let n=new h.UP;n.init({key:e,iv:a.iv});let r=t.defaultCryptByteBlock,s=t.defaultSkipByteBlock;if((0,l.vA)(null!==r&&null!==s),!a.subsamples){let e=new Uint8Array(i),t=Math.floor(i.length/16);for(let a=0;a<t;a++){let t=16*a;n.in.set(i.subarray(t,t+16)),n.decrypt(),e.set(n.out,t)}return e}if(0===r&&0===s)throw Error("cbcs with subsamples requires pattern encryption.");let o=new Uint8Array(i),c=D(a.subsamples,r,s),m=new DataView(a.iv.buffer,a.iv.byteOffset,16);for(let e of c)for(let t of(n.iv[0]=m.getUint32(0,!1),n.iv[1]=m.getUint32(4,!1),n.iv[2]=m.getUint32(8,!1),n.iv[3]=m.getUint32(12,!1),e.perSubsample)){let e=t.length/16;for(let a=0;a<e;a++){let e=t.offset+16*a;n.in.set(i.subarray(e,e+16)),n.decrypt(),o.set(n.out,e)}}return o},D=(e,t,a)=>{let i=[],n=0!==t||0!==a,r=0;for(let s of e){r+=s.clearLen;let e=[];
1if(n){let i=s.protectedLen,n=r;for(;i>0&&!(i<16*t);){let r=16*t;e.push({offset:n,length:r}),n+=r;let s=Math.min(16*a,i-=r);n+=s,i-=s}r+=s.protectedLen}else s.protectedLen>0&&e.push({offset:r,length:s.protectedLen}),r+=s.protectedLen;i.push({perSubsample:e})}return i}}}]);
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.