PageSourceSearch

https://suno.com/_next/static/immutable/chunks/2wizml0tdw_kj.js

js suno.com collected 2026-09-24 08:03:58 UTC 198,797 bytes, 6 lines download raw bytes

1
2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0d2c3600-cb57-5172-b949-8d79ac286b38")}catch(e){}}();
3(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,397026,63300,t=>{"use strict";var e,i,s,r,a=t.i(282966),n=Object.defineProperty,o=(t,e)=>{for(var i in e)n(t,i,{get:e[i],enumerable:!0})},h=class t extends ArrayBuffer{constructor(t){super(t),this.fileStart=0,this.usedBytes=0}static fromArrayBuffer(e,i){let s=new t(e.byteLength);return new Uint8Array(s).set(new Uint8Array(e)),s.fileStart=i,s}},d=((e=d||{})[e.BIG_ENDIAN=1]="BIG_ENDIAN",e[e.LITTLE_ENDIAN=2]="LITTLE_ENDIAN",e),l=class t{constructor(t,e,i){this._byteLength=0,this.failurePosition=0,this._dynamicSize=1,this._byteOffset=e||0,t instanceof ArrayBuffer?this.buffer=h.fromArrayBuffer(t,0):t instanceof DataView?(this.dataView=t,e&&(this._byteOffset+=e)):this.buffer=new h(t||0),this.position=0,this.endianness=i||1}static{this.ENDIANNESS=new Int8Array(new Int16Array([1]).buffer)[0]>0?2:1}getPosition(){return this.position}_realloc(t){if(!this._dynamicSize)return;let e=this._byteOffset+this.position+t,i=this._buffer.byteLength;if(e<=i){e>this._byteLength&&(this._byteLength=e);return}for(i<1&&(i=1);e>i;)i*=2;let s=new h(i),r=new Uint8Array(this._buffer);new Uint8Array(s,0,r.length).set(r),this.buffer=s,this._byteLength=e}_trimAlloc(){if(this._byteLength===this._buffer.byteLength)return;let t=new h(this._byteLength),e=new Uint8Array(t),i=new Uint8Array(this._buffer,0,e.length);e.set(i),this.buffer=t}get byteLength(){return this._byteLength-this._byteOffset}get buffer(){return this._trimAlloc(),this._buffer}set buffer(t){this._buffer=t,this._dataView=new DataView(t,this._byteOffset),this._byteLength=t.byteLength}get byteOffset(){return this._byteOffset}set byteOffset(t){this._byteOffset=t,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}get dataView(){return this._dataView}set dataView(t){this._byteOffset=t.byteOffset,this._buffer=h.fromArrayBuffer(t.buffer,0),this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+t.byteLength}seek(t){let e=Math.max(0,Math.min(this.byteLength,t));this.position=isNaN(e)||!isFinite(e)?0:e}isEof(){return this.position>=this._byteLength}#t(t){return Array.isArray(t)&&3===t.length&&"[]"===t[0]}mapUint8Array(t){this._realloc(+t);let e=new Uint8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=+t,e}readInt32Array(e,i){let s=new Int32Array(e=void 0===e?this.byteLength-this.position/4:e);return t.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),t.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt16Array(e,i){let s=new Int16Array(e=void 0===e?this.byteLength-this.position/2:e);return t.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),t.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt8Array(e){let i=new Int8Array(e=void 0===e?this.byteLength-this.position:e);return t.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),this.position+=i.byteLength,i}readUint32Array(e,i){let s=new Uint32Array(e=void 0===e?this.byteLength-this.position/4:e);return t.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),t.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readUint16Array(e,i){let s=new Uint16Array(e=void 0===e?this.byteLength-this.position/2:e);return t.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),t.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readUint8Array(e){let i=new Uint8Array(e=void 0===e?this.byteLength-this.position:e);return t.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),this.position+=i.byteLength,i}readFloat64Array(e,i){let s=new Float64Array(e=void 0===e?this.byteLength-this.position/8:e);return t.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),t.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readFloat32Array(e,i){let s=new Float32Array(e=void 0===e?this.byteLength-this.position/4:e);return t.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,e*s.BYTES_PER_ELEMENT),t.arrayToNative(s,i??this.endianness),this.position+=s.byteLength,s}readInt32(t){let e=this._dataView.getInt32(this.position,(t??this.endianness)===2);return this.position+=4,e}readInt16(t){let e=this._dataView.getInt16(this.position,(t??this.endianness)===2);return this.position+=2,e}readInt8(){let t=this._dataView.getInt8(this.position);return this.position+=1,t}readUint32(t){let e=this._dataView.getUint32(this.position,(t??this.endianness)===2);return this.position+=4,e}readUint16(t){let e=this._dataView.getUint16(this.position,(t??this.endianness)===2);return this.position+=2,e}readUint8(){let t=this._dataView.getUint8(this.position);return this.position+=1,t}readFloat32(t){let e=this._dataView.getFloat32(this.position,(t??this.endianness)===2);return this.position+=4,e}readFloat64(t){let e=this._dataView.getFloat64(this.position,(t??this.endianness)===2);return this.position+=8,e}
3static memcpy(t,e,i,s,r){let a=new Uint8Array(t,e,r),n=new Uint8Array(i,s,r);a.set(n)}static arrayToNative(e,i){return i===t.ENDIANNESS?e:this.flipArrayEndianness(e)}static nativeToEndian(e,i){return i&&2===t.ENDIANNESS?e:this.flipArrayEndianness(e)}static flipArrayEndianness(t){let e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let i=0;i<t.byteLength;i+=t.BYTES_PER_ELEMENT)for(let s=i+t.BYTES_PER_ELEMENT-1,r=i;s>r;s--,r++){let t=e[r];e[r]=e[s],e[s]=t}return t}readString(t,e){return void 0===e||"ASCII"===e?c(this.mapUint8Array(void 0===t?this.byteLength-this.position:t)):new TextDecoder(e).decode(this.mapUint8Array(t))}readCString(t){let e=0,i=this.byteLength-this.position,s=new Uint8Array(this._buffer,this._byteOffset+this.position),r=void 0!==t?Math.min(t,i):i;for(;e<r&&0!==s[e];e++);let a=c(this.mapUint8Array(e));return void 0!==t?this.position+=r-e:e!==i&&(this.position+=1),a}readInt64(){return 0x100000000*this.readInt32()+this.readUint32()}readUint64(){return 0x100000000*this.readUint32()+this.readUint32()}readUint24(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()}save(t){let e=new Blob([this.buffer]);if("u">typeof window&&"u">typeof document)if(window.URL&&URL.createObjectURL){let i=window.URL.createObjectURL(e),s=document.createElement("a");document.body.appendChild(s),s.setAttribute("href",i),s.setAttribute("download",t),s.setAttribute("target","_self"),s.click(),window.URL.revokeObjectURL(i),document.body.removeChild(s)}else throw Error("DataStream.save: Can't create object URL.");return e}get dynamicSize(){return this._dynamicSize}set dynamicSize(t){t||this._trimAlloc(),this._dynamicSize=t}shift(t){let e=new h(this._byteLength-t),i=new Uint8Array(e),s=new Uint8Array(this._buffer,t,i.length);i.set(s),this.buffer=e,this.position-=t}writeInt32Array(e,i){if(this._realloc(4*e.length),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,i);else for(let t=0;t<e.length;t++)this.writeInt32(e[t],i)}writeInt16Array(e,i){if(this._realloc(2*e.length),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,i);else for(let t=0;t<e.length;t++)this.writeInt16(e[t],i)}writeInt8Array(e){if(this._realloc(+e.length),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(let t=0;t<e.length;t++)this.writeInt8(e[t])}writeUint32Array(e,i){if(this._realloc(4*e.length),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,i);else for(let t=0;t<e.length;t++)this.writeUint32(e[t],i)}writeUint16Array(e,i){if(this._realloc(2*e.length),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,i);else for(let t=0;t<e.length;t++)this.writeUint16(e[t],i)}writeUint8Array(e){if(this._realloc(+e.length),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(let t=0;t<e.length;t++)this.writeUint8(e[t])}writeFloat64Array(e,i){if(this._realloc(8*e.length),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,i);else for(let t=0;t<e.length;t++)this.writeFloat64(e[t],i)}writeFloat32Array(e,i){if(this._realloc(4*e.length),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)t.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,i);else for(let t=0;t<e.length;t++)this.writeFloat32(e[t],i)}writeInt64(t,e){this._realloc(8),this._dataView.setBigInt64(this.position,BigInt(t),(e??this.endianness)===2),this.position+=8}writeInt32(t,e){this._realloc(4),this._dataView.setInt32(this.position,t,(e??this.endianness)===2),this.position+=4}writeInt16(t,e){this._realloc(2),this._dataView.setInt16(this.position,t,(e??this.endianness)===2),this.position+=2}writeInt8(t){this._realloc(1),this._dataView.setInt8(this.position,t),this.position+=1}writeUint32(t,e){this._realloc(4),this._dataView.setUint32(this.position,t,(e??this.endianness)===2),this.position+=4}writeUint16(t,e){this._realloc(2),this._dataView.setUint16(this.position,t,(e??this.endianness)===2),this.position+=2}writeUint8(t){this._realloc(1),this._dataView.setUint8(this.position,t),this.position+=1}writeFloat32(t,e){this._realloc(4),this._dataView.setFloat32(this.position,t,(e??this.endianness)===2),this.position+=4}writeFloat64(t,e){this._realloc(8),this._dataView.setFloat64(this.position,t,(e??this.endianness)===2),this.position+=8}writeUCS2String(t,e,i){let s;for(void 0===i&&(i=t.length),s=0;s<t.length&&s<i;s++)this.writeUint16(t.charCodeAt(s),e);for(;s<i;s++)this.writeUint16(0)}writeString(t,e,i){let s=0;if(void 0===e||"ASCII"===e)if(void 0!==i){let e=Math.min(t.length,i);for(s=0;s<e;s++)this.writeUint8(t.charCodeAt(s));for(;s<i;s++)this.writeUint8(0)}else for(s=0;s<t.length;s++)this.writeUint8(t.charCodeAt(s));else this.writeUint8Array(new TextEncoder(e).encode(t.substring(0,i)))}writeCString(t,e){let i=0;if(void 0!==e){let s=Math.min(t.length,e);for(i=0;i<s;i++)this.writeUint8(t.charCodeAt(i));for(;i<e;i++)this.writeUint8(0)}else{for(i=0;i<t.length;i++)this.writeUint8(t.charCodeAt(i));this.writeUint8(0)}}writeStruct(t,e){for(let i=0;i<t.length;i++){let[s,r]=t[i],a=e[s];this.writeType(r,a,e)}}writeType(t,e,i){let s;if("function"==typeof t)return t(this,e);if("object"==typeof t&&!(t instanceof Array))return t.set(this,e,i);let r="ASCII",a=this.position,n=t;if("string"==typeof t&&/:/.test(t)){let e=t.split(":");n=e[0],s=parseInt(e[1])}if("string"==typeof n&&/,/.test(n)){let t=n.split(",");n=t[0],r=t[1]}switch(n){case"uint8":this.writeUint8(e);break;case"int8":this.writeInt8(e);break;case"uint16":this.writeUint16(e,this.endianness);break;case"int16":this.writeInt16(e,this.endianness);break;case"uint32":this.writeUint32(e,this.endianness);break;case"int32":this.writeInt32(e,this.endianness);break;case"float32":this.writeFloat32(e,this.endianness);break;case"float64":this.writeFloat64(e,this.endianness);break;case"uint16be":this.writeUint16(e,1);break;case"int16be":this.writeInt16(e,1);break;case"uint32be":this.writeUint32(e,1);break;case"int32be":this.writeInt32(e,1);break;case"float32be":this.writeFloat32(e,1);break;case"float64be":this.writeFloat64(e,1);break;case"uint16le":this.writeUint16(e,2);break;case"int16le":this.writeInt16(e,2);break;case"uint32le":this.writeUint32(e,2);break;case"int32le":this.writeInt32(e,2);break;case"float32le":this.writeFloat32(e,2);break;case"float64le":this.writeFloat64(e,2);break;case"cstring":this.writeCString(e,s);break;case"string":this.writeString(e,r,s);break;case"u16string":this.writeUCS2String(e,this.endianness,s);break;case"u16stringle":this.writeUCS2String(e,2,s);break;case"u16stringbe":this.writeUCS2String(e,1,s);break;default:if(this.#t(n)){let[,t]=n;for(let i=0;i<e.length;i++)this.writeType(t,e[i])}else this.writeStruct(n,e)}s&&(this.position=a,this._realloc(s),this.position=a+s)}writeUint64(t){let e=Math.floor(t/0x100000000);this.writeUint32(e),this.writeUint32(0|t)}writeUint24(t){this.writeUint8((0xff0000&t)>>16),this.writeUint8((65280&t)>>8),this.writeUint8(255&t)}adjustUint32(t,e){let i=this.position;this.seek(t),this.writeUint32(e),this.seek(i)}readStruct(t){let e={},i=this.position;for(let s=0;s<t.length;s+=1){let r=t[s][1],a=this.readType(r,e);if(!a){0===this.failurePosition&&(this.failurePosition=this.position),this.position=i;return}e[t[s][0]]=a}return e}readUCS2String(t,e){return String.fromCharCode.apply(void 0,this.readUint16Array(t,e))}readType(t,e){let i,s;if("function"==typeof t)return t(this,e);if("object"==typeof t&&!(t instanceof Array))return t.get(this,e);if(t instanceof Array&&3!==t.length)return this.readStruct(t);let r="ASCII",a=this.position,n=t;if("string"==typeof n&&/:/.test(n)){let t=n.split(":");n=t[0],s=parseInt(t[1])}if("string"==typeof n&&/,/.test(n)){let t=n.split(",");n=t[0],r=t[1]}switch(n){case"uint8":i=this.readUint8();break;case"int8":i=this.readInt8();break;case"uint16":i=this.readUint16(this.endianness);break;case"int16":i=this.readInt16(this.endianness);break;case"uint32":i=this.readUint32(this.endianness);break;case"int32":i=this.readInt32(this.endianness);break;case"float32":i=this.readFloat32(this.endianness);break;case"float64":i=this.readFloat64(this.endianness);break;case"uint16be":i=this.readUint16(1);break;case"int16be":i=this.readInt16(1);break;case"uint32be":i=this.readUint32(1);break;case"int32be":i=this.readInt32(1);break;case"float32be":i=this.readFloat32(1);break;case"float64be":i=this.readFloat64(1);break;case"uint16le":i=this.readUint16(2);break;case"int16le":i=this.readInt16(2);break;case"uint32le":i=this.readUint32(2);break;case"int32le":i=this.readInt32(2);break;case"float32le":i=this.readFloat32(2);break;case"float64le":i=this.readFloat64(2);break;case"cstring":i=this.readCString(s);break;case"string":i=this.readString(s,r);break;case"u16string":i=this.readUCS2String(s,this.endianness);break;case"u16stringle":i=this.readUCS2String(s,2);break;case"u16stringbe":i=this.readUCS2String(s,1);break;default:if(this.#t(n)){let[,t,s]=n,r="function"==typeof s?s(e,this,n):"string"==typeof s&&void 0!==e[s]?parseInt(e[s]):"number"==typeof s?s:"*"===s?void 0:parseInt(s);if("string"==typeof t){let s,a=t.replace(/(le|be)$/,"");switch(/le$/.test(t)?s=2:/be$/.test(t)&&(s=1),a){case"uint8":i=this.readUint8Array(r);break;case"uint16":i=this.readUint16Array(r,s);break;case"uint32":i=this.readUint32Array(r,s);break;case"int8":i=this.readInt8Array(r);break;case"int16":i=this.readInt16Array(r,s);break;case"int32":i=this.readInt32Array(r,s);break;case"float32":i=this.readFloat32Array(r,s);break;case"float64":i=this.readFloat64Array(r,s);break;case"cstring":case"utf16string":case"string":if(r){i=Array(r);for(let s=0;s<r;s++)i[s]=this.readType(t,e)}else for(i=[];!this.isEof();){let s=this.readType(t,e);if(!s)break;i.push(s)}}}else if(r){i=Array(r);for(let s=0;s<r;s++){let r=this.readType(t,e);if(!r)return;i[s]=r}}else for(i=[];;){let s=this.position;try{let r=this.readType(t,e);if(!r){this.position=s;break}i.push(r)}catch{this.position=s;break}}}}return s&&(this.position=a+s),i}mapInt32Array(e,i){this._realloc(4*e);let s=new Int32Array(this._buffer,this.byteOffset+this.position,e);return t.arrayToNative(s,i??this.endianness),this.position+=4*e,s}mapInt16Array(e,i){this._realloc(2*e);let s=new Int16Array(this._buffer,this.byteOffset+this.position,e);return t.arrayToNative(s,i??this.endianness),this.position+=2*e,s}mapInt8Array(t,e){this._realloc(+t);let i=new Int8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=+t,i}mapUint32Array(e,i){this._realloc(4*e);let s=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return t.arrayToNative(s,i??this.endianness),this.position+=4*e,s}mapUint16Array(e,i){this._realloc(2*e);let s=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return t.arrayToNative(s,i??this.endianness),this.position+=2*e,s}mapFloat64Array(e,i){this._realloc(8*e);let s=new Float64Array(this._buffer,this.byteOffset+this.position,e);return t.arrayToNative(s,i??this.endianness),this.position+=8*e,s}mapFloat32Array(e,i){this._realloc(4*e);let s=new Float32Array(this._buffer,this.byteOffset+this.position,e);return t.arrayToNative(s,i??this.endianness),this.position+=4*e,s}};function c(t){let e=[];for(let i=0;i<t.length;i++)e[i]=t[i];return String.fromCharCode.apply(void 0,e)}var u=new Date,p=4,f={setLogLevel(t){t===this.debug?p=1:t===this.info?p=2:t===this.warn?p=3:(this.error,p=4)},debug(t,e){void 0===console.debug&&(console.debug=console.log),1>=p&&console.debug("["+f.getDurationString(new Date().getTime()-u.getTime(),1e3)+"]","["+t+"]",e)},log(t,e){this.debug(t.msg)},info(t,e){2>=p&&console.info("["+f.getDurationString(new Date().getTime()-u.getTime(),1e3)+"]","["+t+"]",e)},warn(t,e){3>=p&&console.warn("["+f.getDurationString(new Date().getTime()-u.getTime(),1e3)+"]","["+t+"]",e)},error(t,e,i){i?.onError?i.onError(t,e):4>=p&&console.error("["+f.getDurationString(new Date().getTime()-u.getTime(),1e3)+"]","["+t+"]",e)},getDurationString(t,e){let i;function s(t,e){let i=(""+t).split(".");for(;i[0].length<e;)i[0]="0"+i[0];return i.join(".")}t<0?(i=!0,t=-t):i=!1;
3let r=t/(e||1),a=Math.floor(r/3600),n=Math.floor((r-=3600*a)/60),o=1e3*(r-=60*n);return o-=1e3*(r=Math.floor(r)),o=Math.floor(o),(i?"-":"")+a+":"+s(n,2)+":"+s(r,2)+"."+s(o,3)},printRanges(t){let e=t.length;if(!(e>0))return"(empty)";{let i="";for(let s=0;s<e;s++)s>0&&(i+=","),i+="["+f.getDurationString(t.start(s))+","+f.getDurationString(t.end(s))+"]";return i}}},m=class extends l{constructor(t){super(new ArrayBuffer,0),this.buffers=[],this.bufferIndex=-1,t&&(this.insertBuffer(t),this.bufferIndex=0)}initialized(){if(this.bufferIndex>-1)return!0;if(!(this.buffers.length>0))return f.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1;{let t=this.buffers[0];return 0===t.fileStart?(this.buffer=t,this.bufferIndex=0,f.debug("MultiBufferStream","Stream ready for parsing"),!0):(f.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)}}reduceBuffer(t,e,i){let s=new Uint8Array(i);return s.set(new Uint8Array(t,e,i)),s.buffer.fileStart=t.fileStart+e,s.buffer.usedBytes=0,s.buffer}insertBuffer(t){let e=!0,i=0;for(;i<this.buffers.length;i++){let s=this.buffers[i];if(t.fileStart<=s.fileStart){if(t.fileStart===s.fileStart)if(t.byteLength>s.byteLength){this.buffers.splice(i,1),i--;continue}else f.warn("MultiBufferStream","Buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+") already appended, ignoring");else t.fileStart+t.byteLength<=s.fileStart||(t=this.reduceBuffer(t,0,s.fileStart-t.fileStart)),f.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.splice(i,0,t),0===i&&(this.buffer=t);e=!1;break}if(t.fileStart<s.fileStart+s.byteLength){let i=s.fileStart+s.byteLength-t.fileStart,r=t.byteLength-i;if(r>0)t=this.reduceBuffer(t,i,r);else{e=!1;break}}}e&&(f.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.push(t),0===i&&(this.buffer=t))}logBufferLevel(t){let e,i=[],s="",r=0,a=0;for(let t=0;t<this.buffers.length;t++){let n=this.buffers[t];0===t?(e={start:n.fileStart,end:n.fileStart+n.byteLength},i.push(e),s+="["+e.start+"-"):e.end===n.fileStart?e.end=n.fileStart+n.byteLength:(e={start:n.fileStart,end:n.fileStart+n.byteLength},s+=i[i.length-1].end-1+"], ["+e.start+"-",i.push(e)),r+=n.usedBytes,a+=n.byteLength}i.length>0&&(s+=e.end-1+"]"),(t?f.info:f.debug)("MultiBufferStream",0===this.buffers.length?"No more buffer in memory":""+this.buffers.length+" stored buffer(s) ("+r+"/"+a+" bytes), continuous ranges: "+s)}cleanBuffers(){for(let t=0;t<this.buffers.length;t++){let e=this.buffers[t];e.usedBytes===e.byteLength&&(f.debug("MultiBufferStream","Removing buffer #"+t),this.buffers.splice(t,1),t--)}}mergeNextBuffer(){if(!(this.bufferIndex+1<this.buffers.length))return!1;{let e=this.buffers[this.bufferIndex+1];if(e.fileStart!==this.buffer.fileStart+this.buffer.byteLength)return!1;{var t;let i,s=this.buffer.byteLength,r=this.buffer.usedBytes,a=this.buffer.fileStart;return this.buffers[this.bufferIndex]=(t=this.buffer,f.debug("ArrayBuffer","Trying to create a new buffer of size: "+(t.byteLength+e.byteLength)),(i=new Uint8Array(t.byteLength+e.byteLength)).set(new Uint8Array(t),0),i.set(new Uint8Array(e),t.byteLength),i.buffer),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=r,this.buffer.fileStart=a,f.debug("ISOFile","Concatenating buffer for box parsing (length: "+s+"->"+this.buffer.byteLength+")"),!0}}}findPosition(t,e,i){let s=-1,r=!0===t?0:this.bufferIndex;for(;r<this.buffers.length;){let t=this.buffers[r];if(t&&t.fileStart<=e)s=r,i&&(t.fileStart+t.byteLength<=e?t.usedBytes=t.byteLength:t.usedBytes=e-t.fileStart,this.logBufferLevel());else break;r++}if(-1===s)return -1;let a=this.buffers[s];return a.fileStart+a.byteLength>=e?(f.debug("MultiBufferStream","Found position in existing buffer #"+s),s):-1}findEndContiguousBuf(t){let e=void 0!==t?t:this.bufferIndex,i=this.buffers[e];if(this.buffers.length>e+1)for(let t=e+1;t<this.buffers.length;t++){let e=this.buffers[t];if(e.fileStart===i.fileStart+i.byteLength)i=e;else break}return i.fileStart+i.byteLength}getEndFilePositionAfter(t){let e=this.findPosition(!0,t,!1);return -1!==e?this.findEndContiguousBuf(e):t}addUsedBytes(t){this.buffer.usedBytes+=t,this.logBufferLevel()}setAllUsedBytes(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()}seek(t,e,i){let s=this.findPosition(e,t,i);return -1!==s?(this.buffer=this.buffers[s],this.bufferIndex=s,this.position=t-this.buffer.fileStart,f.debug("MultiBufferStream","Repositioning parser at buffer position: "+this.position),!0):(f.debug("MultiBufferStream","Position "+t+" not found in buffered data"),!1)}getPosition(){return -1===this.bufferIndex||void 0===this.buffers[this.bufferIndex]?0:this.buffers[this.bufferIndex].fileStart+this.position}getLength(){return this.byteLength}getEndPosition(){return -1===this.bufferIndex||void 0===this.buffers[this.bufferIndex]?0:this.buffers[this.bufferIndex].fileStart+this.byteLength}getAbsoluteEndPosition(){if(0===this.buffers.length)return 0;let t=this.buffers[this.buffers.length-1];return t.fileStart+t.byteLength}},_=class{constructor(t=0){this.size=t}static{this.registryId=Symbol.for("BoxIdentifier")}#e;
3get type(){return this.constructor.fourcc??this.#e}set type(t){this.#e=t}addBox(t){return this.boxes||(this.boxes=[]),this.boxes.push(t),this[t.type+"s"]?this[t.type+"s"].push(t):this[t.type]=t,t}set(t,e){return this[t]=e,this}addEntry(t,e){let i=e||"entries";return this[i]||(this[i]=[]),this[i].push(t),this}writeHeader(t,e){if(this.size+=8,(this.size>0xffffffff||1===this.original_size)&&(this.size+=8),"uuid"===this.type&&(this.size+=16),f.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+t.getPosition()+(e||"")),0===this.original_size?t.writeUint32(0):this.size>0xffffffff||1===this.original_size?t.writeUint32(1):(this.sizePosition=t.getPosition(),t.writeUint32(this.size)),t.writeString(this.type,void 0,4),"uuid"===this.type){let e=new Uint8Array(16);for(let t=0;t<16;t++)e[t]=parseInt(this.uuid.substring(2*t,2*t+2),16);t.writeUint8Array(e)}(this.size>0xffffffff||1===this.original_size)&&(this.sizePosition=t.getPosition(),t.writeUint64(this.size))}write(t){if("mdat"===this.type)if(this.stream)for(let e of(this.size=this.stream.getAbsoluteEndPosition(),this.writeHeader(t),this.stream.buffers)){let i=new Uint8Array(e);t.writeUint8Array(i)}else this.data&&(this.size=this.data.length,this.writeHeader(t),t.writeUint8Array(this.data));else this.size=this.data?this.data.length:0,this.writeHeader(t),this.data&&t.writeUint8Array(this.data)}printHeader(t){this.size+=8,this.size>0xffffffff&&(this.size+=8),"uuid"===this.type&&(this.size+=16),t.log(t.indent+"size:"+this.size),t.log(t.indent+"type:"+this.type)}print(t){this.printHeader(t)}parse(t){"mdat"!==this.type?this.data=t.readUint8Array(this.size-this.hdr_size):0===this.size?t.seek(t.getEndPosition()):t.seek(this.start+this.size)}parseDataAndRewind(t){this.data=t.readUint8Array(this.size-this.hdr_size),t.seek(this.start+this.hdr_size)}parseLanguage(t){this.language=t.readUint16();let e=[];e[0]=this.language>>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)}computeSize(t){let e=t||new m;this.write(e)}isEndOfBox(t){return t.getPosition()===this.start+this.size}},g=class extends _{constructor(){super(...arguments),this.flags=0,this.version=0}writeHeader(t){this.size+=4,super.writeHeader(t," v="+this.version+" f="+this.flags),t.writeUint8(this.version),t.writeUint24(this.flags)}printHeader(t){this.size+=4,super.printHeader(t),t.log(t.indent+"version:"+this.version),t.log(t.indent+"flags:"+this.flags)}parseDataAndRewind(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,t.seek(this.start+this.hdr_size)}parseFullHeader(t){this.version=t.readUint8(),this.flags=t.readUint24(),this.hdr_size+=4}parse(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)}},x=class{constructor(t){this.grouping_type=t}static{this.registryId=Symbol.for("SampleGroupEntryIdentifier")}write(t){t.writeUint8Array(this.data)}parse(t){f.warn("BoxParser",`Unknown sample group type: '${this.grouping_type}'`),this.data=t.readUint8Array(this.description_length)}},b=class extends g{parse(t){this.parseFullHeader(t),this.track_group_id=t.readUint32()}},y=class extends _{constructor(t,e,i,s,r){super(e),this.box_name=i,this.hdr_size=s,this.start=r,this.type=t}parse(t){this.from_item_ID=t.readUint16();let e=t.readUint16();this.references=[];for(let i=0;i<e;i++)this.references[i]={to_item_ID:t.readUint16()}}},S=class extends _{constructor(t,e,i,s,r){super(e),this.box_name=i,this.hdr_size=s,this.start=r,this.type=t}parse(t){this.from_item_ID=t.readUint32();let e=t.readUint16();this.references=[];for(let i=0;i<e;i++)this.references[i]={to_item_ID:t.readUint32()}}},U=class extends _{constructor(t,e,i,s){super(e),this.hdr_size=i,this.start=s,this.type=t}parse(t){this.track_ids=t.readUint32Array((this.size-this.hdr_size)/4)}write(t){this.size=4*this.track_ids.length,this.writeHeader(t),t.writeUint32Array(this.track_ids)}},w=["boxes","entries","references","subsamples","items","item_infos","extents","associations","subsegments","ranges","seekLists","seekPoints","esd","levels"],v=["compatible_brands","matrix","opcolor","sample_counts","sample_deltas","first_chunk","samples_per_chunk","sample_sizes","chunk_offsets","sample_offsets","sample_description_index","sample_duration"];function B(t){let e=t;for(;e;){if("registryId"in e)return e.registryId;e=Object.getPrototypeOf(e)}}var k=t=>{let e=Symbol.for("SampleGroupEntryIdentifier");return B(t)===e},E=t=>{let e=Symbol.for("SampleEntryIdentifier");return B(t)===e},z=t=>{let e=Symbol.for("BoxIdentifier");return B(t)===e},I={uuid:{},sampleEntry:{},sampleGroupEntry:{},box:{}},A={};function P(t){let e="";for(let i=0;i<16;i++){let i=t.readUint8().toString(16);e+=1===i.length?"0"+i:i}return e}function T(t,e,i){let s,r,a,n=t.getPosition(),o=0;if(t.getEndPosition()-n<8)return f.debug("BoxParser","Not enough data in stream to parse the type and size of the box"),{code:0};if(i&&i<8)return f.debug("BoxParser","Not enough bytes left in the parent box to parse a new box"),{code:0};let h=t.readUint32(),d=t.readString(4);if(4!==d.length||!/^[\x20-\x7E]{4}$/.test(d))return f.error("BoxParser",`Invalid box type: '${d}'`),{code:-1,start:n,type:d};let l=d;if(f.debug("BoxParser","Found box of type '"+d+"' and size "+h+" at position "+n),o=8,"uuid"===d){if(t.getEndPosition()-t.getPosition()<16||i-o<16)return t.seek(n),f.debug("BoxParser","Not enough bytes left in the parent box to parse a UUID box"),{code:0};a=P(t),o+=16,l=a}if(1===h){if(t.getEndPosition()-t.getPosition()<8||i&&i-o<8)return t.seek(n),f.warn("BoxParser",'Not enough data in stream to parse the extended size of the "'+d+'" box'),{code:0};r=h,h=t.readUint64(),o+=8}else if(0===h){if(i)h=i;else if("mdat"!==d)return f.error("BoxParser","Unlimited box size not supported for type: '"+d+"'"),(s=new _(h)).type=d,{code:1,box:s,size:s.size}}if(0!==h&&h<o)return f.error("BoxParser","Box of type "+d+" has an invali
3d size "+h+" (too small to be a box)"),{code:0,type:d,size:h,hdr_size:o,start:n};if(0!==h&&i&&h>i)return f.error("BoxParser","Box of type '"+d+"' has a size "+h+" greater than its container size "+i),{code:0,type:d,size:h,hdr_size:o,start:n};if(0!==h&&n+h>t.getEndPosition())return t.seek(n),f.info("BoxParser","Not enough data in stream to parse the entire '"+d+"' box"),{code:0,type:d,size:h,hdr_size:o,start:n,original_size:r};if(e)return{code:1,type:d,size:h,hdr_size:o,start:n};d in I.box?s=new I.box[d](h):"uuid"!==d?(f.warn("BoxParser",`Unknown box type: '${d}'`),(s=new _(h)).type=d,s.has_unparsed_data=!0):a in I.uuid?s=new I.uuid[a](h):(f.warn("BoxParser",`Unknown UUID box type: '${a}'`),(s=new _(h)).type=d,s.uuid=a,s.has_unparsed_data=!0),s.original_size=r,s.hdr_size=o,s.start=n,s.write===_.prototype.write&&"mdat"!==s.type&&(f.info("BoxParser","'"+l+"' box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(t)),s.parse(t);let c=t.getPosition()-(s.start+s.size);return c<0?(f.warn("BoxParser","Parsing of box '"+l+"' did not read the entire indicated box data size (missing "+-c+" bytes), seeking forward"),t.seek(s.start+s.size)):c>0&&0!==s.size&&(f.error("BoxParser","Parsing of box '"+l+"' read "+c+" more bytes than the indicated box data size, seeking backwards"),t.seek(s.start+s.size)),{code:1,box:s,size:s.size}}var F=class extends _{write(t){if(this.size=0,this.writeHeader(t),this.boxes)for(let e=0;e<this.boxes.length;e++)this.boxes[e]&&(this.boxes[e].write(t),this.size+=this.boxes[e].size);f.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}print(t){this.printHeader(t);for(let e=0;e<this.boxes.length;e++)if(this.boxes[e]){let i=t.indent;t.indent+=" ",this.boxes[e].print(t),t.indent=i}}parse(t){let e;for(;t.getPosition()<this.start+this.size;){if(1!==(e=T(t,!1,this.size-(t.getPosition()-this.start))).code)return;{let t=e.box;if(this.boxes||(this.boxes=[]),this.boxes.push(t),this.subBoxNames&&-1!==this.subBoxNames.indexOf(t.type)){let e=this.subBoxNames[this.subBoxNames.indexOf(t.type)]+"s";this[e]||(this[e]=[]),this[e].push(t)}else{let e="uuid"!==t.type?t.type:t.uuid;this[e]?f.warn("ContainerBox",`Box of type ${e} already exists in container box ${this.type}.`):this[e]=t}}}}},C=class extends F{constructor(t,e,i){super(t),this.hdr_size=e,this.start=i}static{this.registryId=Symbol.for("SampleEntryIdentifier")}isVideo(){return!1}isAudio(){return!1}isSubtitle(){return!1}isMetadata(){return!1}isHint(){return!1}getCodec(){return this.type.replace(".","")}getWidth(){return""}getHeight(){return""}getChannelCount(){return""}getSampleRate(){return""}getSampleSize(){return""}parseHeader(t){t.readUint8Array(6),this.data_reference_index=t.readUint16(),this.hdr_size+=8}parse(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)}parseDataAndRewind(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,t.seek(this.start+this.hdr_size)}parseFooter(t){super.parse(t)}writeHeader(t){this.size=8,super.writeHeader(t),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint8(0),t.writeUint16(this.data_reference_index)}writeFooter(t){if(this.boxes)for(let e=0;e<this.boxes.length;e++)this.boxes[e].write(t),this.size+=this.boxes[e].size;f.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}write(t){this.writeHeader(t),t.writeUint8Array(this.data),this.size+=this.data.length,f.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},M=class extends C{},D=class extends C{isMetadata(){return!0}},L=class extends C{isSubtitle(){return!0}},H=class extends C{},R=class extends C{parse(t){this.parseHeader(t),t.readUint16(),t.readUint16(),t.readUint32Array(3),this.width=t.readUint16(),this.height=t.readUint16(),this.horizresolution=t.readUint32(),this.vertresolution=t.readUint32(),t.readUint32(),this.frame_count=t.readUint16();let e=Math.min(31,t.readUint8());this.compressorname=t.readString(e),e<31&&t.readString(31-e),this.depth=t.readUint16(),t.readUint16(),this.parseFooter(t)}isVideo(){return!0}getWidth(){return this.width}
3getHeight(){return this.height}write(t){this.writeHeader(t),this.size+=70,t.writeUint16(0),t.writeUint16(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint16(this.width),t.writeUint16(this.height),t.writeUint32(this.horizresolution),t.writeUint32(this.vertresolution),t.writeUint32(0),t.writeUint16(this.frame_count),t.writeUint8(Math.min(31,this.compressorname.length)),t.writeString(this.compressorname,void 0,31),t.writeUint16(this.depth),t.writeInt16(-1),this.writeFooter(t)}},O=class extends C{parse(t){this.parseHeader(t),this.version=t.readUint16(),t.readUint16(),t.readUint32(),this.channel_count=t.readUint16(),this.samplesize=t.readUint16(),t.readUint16(),t.readUint16(),this.samplerate=t.readUint32()/65536,t.isofile?.ftyp?.major_brand.includes("qt")&&(1===this.version?this.extensions=t.readUint8Array(16):2===this.version&&(this.extensions=t.readUint8Array(36))),this.parseFooter(t)}isAudio(){return!0}getChannelCount(){return this.channel_count}getSampleRate(){return this.samplerate}getSampleSize(){return this.samplesize}write(t){this.writeHeader(t),this.size+=20,t.writeUint32(0),t.writeUint32(0),t.writeUint16(this.channel_count),t.writeUint16(this.samplesize),t.writeUint16(0),t.writeUint16(0),t.writeUint32(this.samplerate<<16),this.writeFooter(t)}},N=class extends C{parse(t){this.parseHeader(t),this.parseFooter(t)}write(t){this.writeHeader(t),this.writeFooter(t)}},V=class extends Array{toString(){let t="<table class='inner-table'>";t+="<thead><tr><th>length</th><th>nalu_data</th></tr></thead>",t+="<tbody>";for(let e=0;e<this.length;e++){let i=this[e];t+="<tr>",t+="<td>"+i.length+"</td>",t+="<td>",t+=i.data.reduce(function(t,e){return t+e.toString(16).padStart(2,"0")},"0x"),t+="</td></tr>"}
3return t+"</tbody></table>"}},G=class extends _{constructor(){super(...arguments),this.box_name="AVCConfigurationBox"}static{this.fourcc="avcC"}parse(t){this.configurationVersion=t.readUint8(),this.AVCProfileIndication=t.readUint8(),this.profile_compatibility=t.readUint8(),this.AVCLevelIndication=t.readUint8(),this.lengthSizeMinusOne=3&t.readUint8(),this.nb_SPS_nalus=31&t.readUint8();let e=this.size-this.hdr_size-6;this.SPS=new V;for(let i=0;i<this.nb_SPS_nalus;i++){let i=t.readUint16();this.SPS.push({length:i,data:t.readUint8Array(i)}),e-=2+i}this.nb_PPS_nalus=t.readUint8(),e--,this.PPS=new V;for(let i=0;i<this.nb_PPS_nalus;i++){let i=t.readUint16();this.PPS.push({length:i,data:t.readUint8Array(i)}),e-=2+i}e>0&&(this.ext=t.readUint8Array(e))}write(t){this.size=7;for(let t=0;t<this.SPS.length;t++)this.size+=2+this.SPS[t].length;for(let t=0;t<this.PPS.length;t++)this.size+=2+this.PPS[t].length;this.ext&&(this.size+=this.ext.length),this.writeHeader(t),t.writeUint8(this.configurationVersion),t.writeUint8(this.AVCProfileIndication),t.writeUint8(this.profile_compatibility),t.writeUint8(this.AVCLevelIndication),t.writeUint8(this.lengthSizeMinusOne+252),t.writeUint8(this.SPS.length+224);for(let e=0;e<this.SPS.length;e++)t.writeUint16(this.SPS[e].length),t.writeUint8Array(this.SPS[e].data);t.writeUint8(this.PPS.length);for(let e=0;e<this.PPS.length;e++)t.writeUint16(this.PPS[e].length),t.writeUint8Array(this.PPS[e].data);this.ext&&t.writeUint8Array(this.ext)}},q=class extends _{constructor(){super(...arguments),this.box_name="MediaDataBox"}static{this.fourcc="mdat"}},j=class extends _{constructor(){super(...arguments),this.box_name="ItemDataBox"}static{this.fourcc="idat"}},$=class extends _{constructor(){super(...arguments),this.box_name="FreeSpaceBox"}static{this.fourcc="free"}},W=class extends _{constructor(){super(...arguments),this.box_name="FreeSpaceBox"}static{this.fourcc="skip"}},Q=class extends g{constructor(){super(...arguments),this.box_name="HintMediaHeaderBox"}static{this.fourcc="hmhd"}},Y=class extends g{constructor(){super(...arguments),this.box_name="NullMediaHeaderBox"}static{this.fourcc="nmhd"}},K=class extends g{constructor(){super(...arguments),this.box_name="ObjectDescriptorBox"}static{this.fourcc="iods"}},J=class extends g{constructor(){super(...arguments),this.box_name="XMLBox"}static{this.fourcc="xml "}},X=class extends g{constructor(){super(...arguments),this.box_name="BinaryXMLBox"}static{this.fourcc="bxml"}},Z=class extends g{constructor(){super(...arguments),this.box_name="ItemProtectionBox",this.sinfs=[]}static{this.fourcc="ipro"}get protections(){return this.sinfs}},tt=class extends F{constructor(){super(...arguments),this.box_name="MovieBox",this.traks=[],this.psshs=[],this.subBoxNames=["trak","pssh"]}static{this.fourcc="moov"}},te=class extends F{constructor(){super(...arguments),this.box_name="TrackBox",this.samples=[]}static{this.fourcc="trak"}},ti=class extends F{constructor(){super(...arguments),this.box_name="EditBox"}static{this.fourcc="edts"}},ts=class extends F{constructor(){super(...arguments),this.box_name="MediaBox"}static{this.fourcc="mdia"}},tr=class extends F{constructor(){super(...arguments),this.box_name="MediaInformationBox"}static{this.fourcc="minf"}},ta=class extends F{constructor(){super(...arguments),this.box_name="DataInformationBox"}static{this.fourcc="dinf"}},tn=class extends F{constructor(){super(...arguments),this.box_name="SampleTableBox",this.sgpds=[],this.sbgps=[],this.subBoxNames=["sgpd","sbgp"]}static{this.fourcc="stbl"}},to=class extends F{constructor(){super(...arguments),this.box_name="MovieExtendsBox",this.trexs=[],this.subBoxNames=["trex"]}static{this.fourcc="mvex"}},th=class extends F{constructor(){super(...arguments),this.box_name="MovieFragmentBox",this.trafs=[],this.subBoxNames=["traf"]}static{this.fourcc="moof"}},td=class extends F{constructor(){super(...arguments),this.box_name="TrackFragmentBox",this.truns=[],this.sgpds=[],this.sbgps=[],this.subBoxNames=["trun","sgpd","sbgp"]}static{this.fourcc="traf"}},tl=class extends F{constructor(){super(...arguments),this.box_name="VTTCueBox"}static{this.fourcc="vttc"}},tc=class extends F{constructor(){super(...arguments),this.box_name="MovieFragmentRandomAccessBox",this.tfras=[],this.subBoxNames=["tfra"]}static{this.fourcc="mfra"}},tu=class extends F{constructor(){super(...arguments),this.box_name="AdditionalMetadataContainerBox"}static{this.fourcc="meco"}},tp=class extends F{constructor(){super(...arguments),this.box_name="trackhintinformation",this.subBoxNames=["sdp ","rtp "]}static{this.fourcc="hnti"}},tf=class extends F{constructor(){super(...arguments),this.box_name="hintstatisticsbox",this.maxrs=[],this.subBoxNames=["maxr"]}static{this.fourcc="hinf"}},tm=class extends F{constructor(){super(...arguments),this.box_name="SubTrackBox"}static{this.fourcc="strk"}},t_=class extends F{constructor(){super(...arguments),this.box_name="SubTrackDefinitionBox"}static{this.fourcc="strd"}},tg=class extends F{constructor(){super(...arguments),this.box_name="ProtectionSchemeInfoBox"}static{this.fourcc="sinf"}},tx=class extends F{constructor(){super(...arguments),this.box_name="RestrictedSchemeInfoBox"}static{this.fourcc="rinf"}},tb=class extends F{constructor(){super(...arguments),this.box_name="SchemeInformationBox"}static{this.fourcc="schi"}},ty=class extends F{constructor(){super(...arguments),this.box_name="TrackGroupBox"}static{this.fourcc="trgr"}},tS=class extends F{constructor(){super(...arguments),this.box_name="UserDataBox",this.kinds=[],this.strks=[],this.subBoxNames=["kind","strk"]}static{this.fourcc="udta"}},tU=class extends F{constructor(){super(...arguments),this.box_name="ItemPropertiesBox",this.ipmas=[],this.subBoxNames=["ipma"]}static{this.fourcc="iprp"}},tw=class extends F{constructor(){super(...arguments),this.box_name="ItemPropertyContainerBox",this.hvcCs=[],this.ispes=[],this.claps=[],this.irots=[],this.subBoxNames=["hvcC","ispe","clap","irot"]}static{this.fourcc="ipco"}},tv=class extends F{constructor(){super(...arguments),this.box_name="GroupsListBox"}static{this.fourcc="grpl"}},tB=class extends F{constructor(){super(...arguments),this.box_name="J2KHeaderInfoBox"}static{this.fourcc="j2kH"}},tk=class extends F{constructor(){super(...arguments),this.box_name="ExtendedTypeBox",this.tycos=[],this.subBoxNames=["tyco"]}static{this.fourcc="etyp"}},tE=class extends F{constructor(){super(...arguments),this.box_name="ProjectedOmniVideoBox",this.subBoxNames=["prfr"]}static{this.fourcc="povd"}},tz=class extends g{constructor(){super(...arguments),this.box_name="DataReferenceBox"}static{this.fourcc="dref"}parse(t){this.parseFullHeader(t),this.entries=[];let e=t.readUint32();for(let i=0;i<e;i++){let e=T(t,!1,this.size-(t.getPosition()-this.start));if(1!==e.code)return;{let t=e.box;this.entries.push(t)}}}write(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;f.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},tI=class extends g{constructor(){super(...arguments),this.box_name="ExtendedLanguageBox"}static{this.fourcc="elng"}parse(t){this.parseFullHeader(t),this.extended_language=t.readString(this.size-this.hdr_size)}write(t){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(t),t.writeString(this.extended_language)}},tA=class extends _{constructor(){super(...arguments),this.box_name="FileTypeBox"}static{this.fourcc="ftyp"}parse(t){let e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32(),e-=8,this.compatible_brands=[];let i=0;for(;e>=4;)this.compatible_brands[i]=t.readString(4),e-=4,i++}write(t){this.size=8+4*this.compatible_brands.length,this.writeHeader(t),t.writeString(this.major_brand,void 0,4),t.writeUint32(this.minor_version);for(let e=0;e<this.compatible_brands.length;e++)t.writeString(this.compatible_brands[e],void 0,4)}},tP=class extends g{constructor(){super(...arguments),this.box_name="HandlerBox"}static{this.fourcc="hdlr"}parse(t){if(this.parseFullHeader(t),0===this.version&&(t.readUint32(),this.handler=t.readString(4),t.readUint32Array(3),!this.isEndOfBox(t))){let e=this.start+this.size-t.getPosition();this.name=t.readCString();let i=this.start+this.size-1;t.seek(i),0!==t.readUint8()&&e>1&&(f.info("BoxParser","Warning: hdlr name is not null-terminated, possibly length-prefixed string. Trimming first byte."),this.name=this.name.slice(1))}}write(t){this.size=20+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(t),t.writeUint32(0),t.writeString(this.handler,void 0,4),t.writeUint32Array([0,0,0]),t.writeCString(this.name)}},tT=class extends _{constructor(){super(...arguments),this.box_name="HEVCConfigurationBox"}static{this.fourcc="hvcC"}parse(t){this.configurationVersion=t.readUint8();let e=t.readUint8();
3this.general_profile_space=e>>6,this.general_tier_flag=(32&e)>>5,this.general_profile_idc=31&e,this.general_profile_compatibility=t.readUint32(),this.general_constraint_indicator=t.readUint8Array(6),this.general_level_idc=t.readUint8(),this.min_spatial_segmentation_idc=4095&t.readUint16(),this.parallelismType=3&t.readUint8(),this.chroma_format_idc=3&t.readUint8(),this.bit_depth_luma_minus8=7&t.readUint8(),this.bit_depth_chroma_minus8=7&t.readUint8(),this.avgFrameRate=t.readUint16(),e=t.readUint8(),this.constantFrameRate=e>>6,this.numTemporalLayers=(13&e)>>3,this.temporalIdNested=(4&e)>>2,this.lengthSizeMinusOne=3&e,this.nalu_arrays=[];let i=t.readUint8();for(let s=0;s<i;s++){let i=[];this.nalu_arrays.push(i),i.completeness=(128&(e=t.readUint8()))>>7,i.nalu_type=63&e;let s=t.readUint16();for(let e=0;e<s;e++){let e=t.readUint16();i.push({data:t.readUint8Array(e)})}}}write(t){this.size=23;for(let t=0;t<this.nalu_arrays.length;t++){this.size+=3;for(let e=0;e<this.nalu_arrays[t].length;e++)this.size+=2+this.nalu_arrays[t][e].data.length}this.writeHeader(t),t.writeUint8(this.configurationVersion),t.writeUint8((this.general_profile_space<<6)+(this.general_tier_flag<<5)+this.general_profile_idc),t.writeUint32(this.general_profile_compatibility),t.writeUint8Array(this.general_constraint_indicator),t.writeUint8(this.general_level_idc),t.writeUint16(this.min_spatial_segmentation_idc+0xf000000),t.writeUint8(this.parallelismType+252),t.writeUint8(this.chroma_format_idc+252),t.writeUint8(this.bit_depth_luma_minus8+248),t.writeUint8(this.bit_depth_chroma_minus8+248),t.writeUint16(this.avgFrameRate),t.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),t.writeUint8(this.nalu_arrays.length);for(let e=0;e<this.nalu_arrays.length;e++){t.writeUint8((this.nalu_arrays[e].completeness<<7)+this.nalu_arrays[e].nalu_type),t.writeUint16(this.nalu_arrays[e].length);for(let i=0;i<this.nalu_arrays[e].length;i++)t.writeUint16(this.nalu_arrays[e][i].data.length),t.writeUint8Array(this.nalu_arrays[e][i].data)}}},tF=class extends g{constructor(){super(...arguments),this.box_name="MediaHeaderBox"}static{this.fourcc="mdhd"}parse(t){this.parseFullHeader(t),1===this.version?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.parseLanguage(t),t.readUint16()}write(t){let e=this.modification_time>0xffffffff||this.creation_time>0xffffffff||this.duration>0xffffffff||1===this.version;this.version=+!!e,this.size=20,this.size+=12*!!e,this.flags=0,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.timescale),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.timescale),t.writeUint32(this.duration)),t.writeUint16(this.language),t.writeUint16(0)}},tC=class extends g{constructor(){super(...arguments),this.box_name="MovieExtendsHeaderBox"}static{this.fourcc="mehd"}parse(t){this.parseFullHeader(t),1&this.flags&&(f.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1===this.version?this.fragment_duration=t.readUint64():this.fragment_duration=t.readUint32()}write(t){let e=this.fragment_duration>0xffffffff||1===this.version;this.version=+!!e,this.size=4,this.size+=4*!!e,this.flags=0,this.writeHeader(t),e?t.writeUint64(this.fragment_duration):t.writeUint32(this.fragment_duration)}},tM=class extends g{constructor(){super(...arguments),this.box_name="ItemInfoEntry"}static{this.fourcc="infe"}
3parse(t){if(this.parseFullHeader(t),(0===this.version||1===this.version)&&(this.item_ID=t.readUint16(),this.item_protection_index=t.readUint16(),this.item_name=t.readCString(),this.content_type=t.readCString(),this.isEndOfBox(t)||(this.content_encoding=t.readCString())),1===this.version){this.extension_type=t.readString(4),f.warn("BoxParser","Cannot parse extension type"),t.seek(this.start+this.size);return}this.version>=2&&(2===this.version?this.item_ID=t.readUint16():3===this.version&&(this.item_ID=t.readUint32()),this.item_protection_index=t.readUint16(),this.item_type=t.readString(4),this.item_name=t.readCString(),"mime"===this.item_type?(this.content_type=t.readCString(),this.content_encoding=t.readCString()):"uri "===this.item_type&&(this.item_uri_type=t.readCString()))}},tD=class extends g{constructor(){super(...arguments),this.box_name="ItemInfoBox"}static{this.fourcc="iinf"}parse(t){this.parseFullHeader(t),0===this.version?this.entry_count=t.readUint16():this.entry_count=t.readUint32(),this.item_infos=[];for(let e=0;e<this.entry_count;e++){let i=T(t,!1,this.size-(t.getPosition()-this.start));
3if(1!==i.code)return;{let s=i.box;"infe"===s.type?this.item_infos[e]=s:f.error("BoxParser","Expected 'infe' box, got "+i.box.type,t.isofile)}}}},tL=class extends g{constructor(){super(...arguments),this.box_name="ItemLocationBox"}static{this.fourcc="iloc"}parse(t){let e;this.parseFullHeader(t),e=t.readUint8(),this.offset_size=e>>4&15,this.length_size=15&e,e=t.readUint8(),this.base_offset_size=e>>4&15,1===this.version||2===this.version?this.index_size=15&e:this.index_size=0,this.items=[];let i=0;if(this.version<2)i=t.readUint16();else if(2===this.version)i=t.readUint32();else throw Error("version of iloc box not supported");for(let e=0;e<i;e++){let e=0,i=0,s=0;if(this.version<2)e=t.readUint16();else if(2===this.version)e=t.readUint32();else throw Error("version of iloc box not supported");i=1===this.version||2===this.version?15&t.readUint16():0;let r=t.readUint16();switch(this.base_offset_size){case 0:s=0;break;case 4:s=t.readUint32();break;case 8:s=t.readUint64();break;default:throw Error("Error reading base offset size")}let a=[],n=t.readUint16();for(let e=0;e<n;e++){let e=0,i=0,s=0;if(1===this.version||2===this.version)switch(this.index_size){case 0:e=0;break;case 4:e=t.readUint32();break;case 8:e=t.readUint64();break;default:throw Error("Error reading extent index")}switch(this.offset_size){case 0:i=0;break;case 4:i=t.readUint32();break;case 8:i=t.readUint64();break;default:throw Error("Error reading extent index")}switch(this.length_size){case 0:s=0;break;case 4:s=t.readUint32();break;case 8:s=t.readUint64();break;default:throw Error("Error reading extent index")}a.push({extent_index:e,extent_length:s,extent_offset:i})}this.items.push({base_offset:s,construction_method:i,item_ID:e,data_reference_index:r,extents:a})}}},tH={auxl:"Auxiliary image item",base:"Pre-derived image item base",cdsc:"Item describes referenced item",dimg:"Derived image item",dpnd:"Item coding dependency",eroi:"Region",evir:"EVC slice",exbl:"Scalable image item","fdl ":"File delivery",font:"Font item",iloc:"Item data location",mask:"Region mask",mint:"Data integrity",pred:"Predictively coded item",prem:"Pre-multiplied item",tbas:"HEVC tile track base item",text:"Text item",thmb:"Thumbnail image item"},tR=class t extends g{constructor(){super(...arguments),this.box_name="ItemReferenceBox",this.references=[]}static{this.fourcc="iref"}static{this.allowed_types=["auxl","base","cdsc","dimg","dpnd","eroi","evir","exbl","fdl ","font","iloc","mask","mint","pred","prem","tbas","text","thmb"]}parse(e){for(this.parseFullHeader(e),this.references=[];e.getPosition()<this.start+this.size;){let i=T(e,!0,this.size-(e.getPosition()-this.start));
3if(1!==i.code)return;{let s="Unknown item reference";t.allowed_types.includes(i.type)?s=tH[i.type]:f.warn("BoxParser",`Unknown item reference type: '${i.type}'`);let r=0===this.version?new y(i.type,i.size,s,i.hdr_size,i.start):new S(i.type,i.size,s,i.hdr_size,i.start);r.write===_.prototype.write&&"mdat"!==r.type&&(f.warn("BoxParser",r.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),this.references.push(r)}}}},tO=class extends g{constructor(){super(...arguments),this.box_name="PrimaryItemBox"}static{this.fourcc="pitm"}parse(t){this.parseFullHeader(t),0===this.version?this.item_id=t.readUint16():this.item_id=t.readUint32()}},tN=class extends g{constructor(){super(...arguments),this.box_name="MetaBox",this.isQT=!1}static{this.fourcc="meta"}parse(t){let e=t.getPosition();if(this.size>8){switch(t.readUint32(),t.readString(4)){case"hdlr":case"mhdr":case"keys":case"ilst":case"ctry":case"lang":this.isQT=!0}t.seek(e)}this.isQT||this.parseFullHeader(t),F.prototype.parse.call(this,t)}},tV=class extends g{constructor(){super(...arguments),this.box_name="MovieFragmentHeaderBox"}static{this.fourcc="mfhd"}parse(t){this.parseFullHeader(t),this.sequence_number=t.readUint32()}write(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.sequence_number)}},tG=class extends g{constructor(){super(...arguments),this.box_name="MovieHeaderBox"}static{this.fourcc="mvhd"}parse(t){this.parseFullHeader(t),1===this.version?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.timescale=t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.timescale=t.readUint32(),this.duration=t.readUint32()),this.rate=t.readUint32(),this.volume=t.readUint16()>>8,t.readUint16(),t.readUint32Array(2),this.matrix=t.readInt32Array(9),t.readUint32Array(6),this.next_track_id=t.readUint32()}write(t){let e=this.modification_time>0xffffffff||this.creation_time>0xffffffff||this.duration>0xffffffff||1===this.version;this.version=+!!e,this.size=96,this.size+=12*!!e,this.flags=0,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.timescale),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.timescale),t.writeUint32(this.duration)),t.writeUint32(this.rate),t.writeUint16(this.volume<<8),t.writeUint16(0),t.writeUint32(0),t.writeUint32(0),t.writeInt32Array(this.matrix),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeUint32(this.next_track_id)}print(t){super.printHeader(t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"timescale: "+this.timescale),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"rate: "+this.rate),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"next_track_id: "+this.next_track_id)}},tq=class extends D{static{this.fourcc="mett"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}},tj=class extends D{static{this.fourcc="metx"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.parseFooter(t)}},t$=class extends _{constructor(){super(...arguments),this.box_name="AV1CodecConfigurationBox"}static{this.fourcc="av1C"}parse(t){let e=t.readUint8();if((e>>7&1)!=1)return void f.error("BoxParser","av1C marker problem",t.isofile);if(this.version=127&e,1!==this.version)return void f.error("BoxParser","av1C version "+this.version+" not supported",t.isofile);if(e=t.readUint8(),this.seq_profile=e>>5&7,this.seq_level_idx_0=31&e,e=t.readUint8(),this.seq_tier_0=e>>7&1,this.high_bitdepth=e>>6&1,this.twelve_bit=e>>5&1,this.monochrome=e>>4&1,this.chroma_subsampling_x=e>>3&1,this.chroma_subsampling_y=e>>2&1,this.chroma_sample_position=3&e,e=t.readUint8(),this.reserved_1=e>>5&7,0!==this.reserved_1)return void f.error("BoxParser","av1C reserved_1 parsing problem",t.isofile);if(this.initial_presentation_delay_present=e>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&e;else if(this.reserved_2=15&e,0!==this.reserved_2)return void f.error("BoxParser","av1C reserved_2 parsing problem",t.isofile);let i=this.size-this.hdr_size-4;this.configOBUs=t.readUint8Array(i)}},tW=class extends g{constructor(){super(...arguments),this.box_name="ElementaryStreamDescriptorBox"}static{this.fourcc="esds"}parse(t){this.parseFullHeader(t);let e=t.readUint8Array(this.size-this.hdr_size);if("MPEG4DescriptorParser"in A){let t=new A.MPEG4DescriptorParser;this.esd=t.parseOneDescriptor(new l(e.buffer,0))}}},tQ=class extends g{constructor(){super(...arguments),this.box_name="VPCodecConfigurationRecord"}static{this.fourcc="vpcC"}parse(t){if(this.parseFullHeader(t),1===this.version){this.profile=t.readUint8(),this.level=t.readUint8();let e=t.readUint8();this.bitDepth=e>>4,this.chromaSubsampling=e>>1&7,this.videoFullRangeFlag=1&e,this.colourPrimaries=t.readUint8(),this.transferCharacteristics=t.readUint8(),this.matrixCoefficients=t.readUint8(),this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}else{this.profile=t.readUint8(),this.level=t.readUint8();let e=t.readUint8();this.bitDepth=e>>
34&15,this.colorSpace=15&e,e=t.readUint8(),this.chromaSubsampling=e>>4&15,this.transferFunction=e>>1&7,this.videoFullRangeFlag=1&e,this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)}}},tY=class extends g{constructor(){super(...arguments),this.box_name="VvcConfigurationBox"}static{this.fourcc="vvcC"}parse(t){this.parseFullHeader(t);let e={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(t){this.held_bits=t.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(t){this.held_bits=t.readUint16(),this.num_held_bits=16},extract_bits:function(t){let e=this.held_bits>>this.num_held_bits-t&(1<<t)-1;return this.num_held_bits-=t,e}};if(e.stream_read_1_bytes(t),e.extract_bits(5),this.lengthSizeMinusOne=e.extract_bits(2),this.ptl_present_flag=e.extract_bits(1),this.ptl_present_flag){if(e.stream_read_2_bytes(t),this.ols_idx=e.extract_bits(9),this.num_sublayers=e.extract_bits(3),this.constant_frame_rate=e.extract_bits(2),this.chroma_format_idc=e.extract_bits(2),e.stream_read_1_bytes(t),this.bit_depth_minus8=e.extract_bits(3),e.extract_bits(5),e.stream_read_2_bytes(t),e.extract_bits(2),this.num_bytes_constraint_info=e.extract_bits(6),this.general_profile_idc=e.extract_bits(7),this.general_tier_flag=e.extract_bits(1),this.general_level_idc=t.readUint8(),e.stream_read_1_bytes(t),this.ptl_frame_only_constraint_flag=e.extract_bits(1),this.ptl_multilayer_enabled_flag=e.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(let i=0;i<this.num_bytes_constraint_info-1;i++){let s=e.extract_bits(6);e.stream_read_1_bytes(t);let r=e.extract_bits(2);this.general_constraint_info[i]=s<<2|r}this.general_constraint_info[this.num_bytes_constraint_info-1]=e.extract_bits(6)}else e.extract_bits(6);if(this.num_sublayers>1){e.stream_read_1_bytes(t),this.ptl_sublayer_present_mask=0;for(let t=this.num_sublayers-2;t>=0;--t){let i=e.extract_bits(1);this.ptl_sublayer_present_mask|=i<<t}for(let t=this.num_sublayers;t<=8&&this.num_sublayers>1;++t)e.extract_bits(1);this.sublayer_level_idc=[];for(let e=this.num_sublayers-2;e>=0;--e)this.ptl_sublayer_present_mask&1<<e&&(this.sublayer_level_idc[e]=t.readUint8())}if(this.ptl_num_sub_profiles=t.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(let e=0;e<this.ptl_num_sub_profiles;e++)this.general_sub_profile_idc.push(t.readUint32());this.max_picture_width=t.readUint16(),this.max_picture_height=t.readUint16(),this.avg_frame_rate=t.readUint16()}this.nalu_arrays=[];let i=t.readUint8();for(let s=0;s<i;s++){let i=[];this.nalu_arrays.push(i),e.stream_read_1_bytes(t),i.completeness=e.extract_bits(1),e.extract_bits(2),i.nalu_type=e.extract_bits(5);let s=1;13!==i.nalu_type&&12!==i.nalu_type&&(s=t.readUint16());for(let e=0;e<s;e++){let e=t.readUint16();i.push({data:t.readUint8Array(e),length:e})}}}},tK=class extends _{constructor(){super(...arguments),this.box_name="ColourInformationBox"}static{this.fourcc="colr"}parse(t){if(this.colour_type=t.readString(4),"nclx"===this.colour_type){this.colour_primaries=t.readUint16(),this.transfer_characteristics=t.readUint16(),this.matrix_coefficients=t.readUint16();let e=t.readUint8();this.full_range_flag=e>>7}else"rICC"===this.colour_type?this.ICC_profile=t.readUint8Array(this.size-4):"prof"===this.colour_type&&(this.ICC_profile=t.readUint8Array(this.size-4))}};function tJ(t,e){let i=Number(t).toString(16);for(e=void 0===e?2:e;i.length<e;)i="0"+i;return i}var tX=class extends R{getCodec(){let t=super.getCodec();return this.avcC?`${t}.${tJ(this.avcC.AVCProfileIndication)}${tJ(this.avcC.profile_compatibility)}${tJ(this.avcC.AVCLevelIndication)}`:t}},tZ=class extends tX{constructor(){super(...arguments),this.box_name="AVCSampleEntry"}static{this.fourcc="avc1"}},t0=class extends tX{constructor(){super(...arguments),this.box_name="AVC2SampleEntry"}static{this.fourcc="avc2"}},t1=class extends tX{constructor(){super(...arguments),this.box_name="AVCSampleEntry"}static{this.fourcc="avc3"}},t2=class extends tX{constructor(){super(...arguments),this.box_name="AVC2SampleEntry"}static{this.fourcc="avc4"}},t3=class extends R{constructor(){super(...arguments),this.box_name="AV1SampleEntry"}static{this.fourcc="av01"}getCodec(){let t,e=super.getCodec(),i=this.av1C.seq_level_idx_0;return 2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?t=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(t=1===this.av1C.high_bitdepth?"10":"08"),e+"."+this.av1C.seq_profile+"."+(i<10?"0"+i:i)+(this.av1C.seq_tier_0?"H":"M")+"."+t}},t6=class extends R{static{this.fourcc="dav1"}},t8=class extends R{getCodec(){let t=super.getCodec();if(this.hvcC){switch(t+=".",this.hvcC.general_profile_space){case 0:t+="";break;case 1:t+="A";break;case 2:t+="B";break;case 3:t+="C"}t+=this.hvcC.general_profile_idc,t+=".";let e=this.hvcC.general_profile_compatibility,i=0;for(let t=0;t<32&&(i|=1&e,31!==t);t++)i<<=1,e>>=1;t+=tJ(i,0),t+=".",0===this.hvcC.general_tier_flag?t+="L":t+="H",t+=this.hvcC.general_level_idc;let s=!1,r="";for(let t=5;t>=0;t--)(this.hvcC.general_constraint_indicator[t]||s)&&(r="."+tJ(this.hvcC.general_constraint_indicator[t],0)+r,s=!0);t+=r}return t}},t4=class extends t8{constructor(){super(...arguments),this.box_name="HEVCSampleEntry"}static{this.fourcc="hvc1"}},t5=class extends t8{static{this.fourcc="hvc2"}},t7=class extends t8{constructor(){super(...arguments),this.box_name="HEVCSampleEntry",this.colrs=[],this.subBoxNames=["colr"]}static{this.fourcc="hev1"}},t9=class extends t8{static{this.fourcc="hev2"}},et=class extends R{constructor(){super(...arguments),this.box_name="HEVCTileSampleSampleEntry"}static{this.fourcc="hvt1"}},ee=class extends R{constructor(){super(...arguments),this.box_name="LHEVCSampleEntry"}static{this.fourcc="lhe1"}},ei=class extends R{constructor(){super(...arguments),this.box_name="LHEVCSampleEntry"}static{this.fourcc="lhv1"}},es=class extends R{static{this.fourcc="dvh1"}},er=class extends R{static{this.fourcc="dvhe"}},ea=class extends R{getCodec(){let t=super.getCodec();if(this.vvcC){t+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=".H":t+=".L",t+=this.vvcC.general_level_idc;let e="";if(this.vvcC.general_constraint_info){let t,i,s=[];i=this.vvcC.ptl_frame_only_constraint_flag<<7|this.vvcC.ptl_multilayer_enabled_flag<<6;for(let e=0;e<this.vvcC.general_constraint_info.length;++e)i|=this.vvcC.general_constraint_info[e]>>2&63,s.push(i),i&&(t=e),i=this.vvcC.general_constraint_info[e]>>2&3;if(void 0===t)e=".CA";else{e=".C";let i="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",r=0,a=0;for(let n=0;n<=t;++n)for(r=r<<8|s[n],a+=8;a>=5;)e+=i[r>>a-5&31],a-=5,r&=(1<<a)-1;a&&(r<<=5-a,e+=i[31&r])}}t+=e}return t}},en=class extends ea{constructor(){super(...arguments),this.box_name="VvcSampleEntry"}static{this.fourcc="vvc1"}},eo=class extends ea{constructor(){super(...arguments),this.box_name="VvcSampleEntry"}static{this.fourcc="vvi1"}},eh=class extends R{constructor(){super(...arguments),this.box_name="VvcSampleEntry"}static{this.fourcc="vvs1"}},ed=class extends R{constructor(){super(...arguments),this.box_name="VvcNonVCLSampleEntry"}static{this.fourcc="vvcN"}},el=class extends R{getCodec(){let t=super.getCodec(),e=this.vpcC.level;0===e&&(e="00");let i=this.vpcC.bitDepth;return 8===i&&(i="08"),`${t}.0${this.vpcC.profile}.${e}.${i}`}},ec=class extends el{static{this.fourcc="vp08"}},eu=class extends el{static{this.fourcc="vp09"}},ep=class extends R{static{this.fourcc="avs3"}},ef=class extends R{constructor(){super(...arguments),this.box_name="J2KSampleEntry"}static{this.fourcc="j2ki"}},em=class extends R{static{this.fourcc="mjp2"}},e_=class extends R{static{this.fourcc="mjpg"}}
3,eg=class extends R{constructor(){super(...arguments),this.box_name="UncompressedVideoSampleEntry"}static{this.fourcc="uncv"}},ex=class extends R{constructor(){super(...arguments),this.box_name="MP4VisualSampleEntry"}static{this.fourcc="mp4v"}},eb=class extends O{constructor(){super(...arguments),this.box_name="MP4AudioSampleEntry"}static{this.fourcc="mp4a"}getCodec(){let t=super.getCodec();if(!this.esds||!this.esds.esd)return t;{let e=this.esds.esd.getOTI(),i=this.esds.esd.getAudioConfig();return t+"."+tJ(e)+(i?"."+i:"")}}},ey=class extends O{static{this.fourcc="m4ae"}},eS=class extends O{static{this.fourcc="ac-3"}},eU=class extends O{static{this.fourcc="ac-4"}},ew=class extends O{static{this.fourcc="ec-3"}},ev=class extends O{static{this.fourcc="Opus"}},eB=class extends O{static{this.fourcc="mha1"}},ek=class extends O{static{this.fourcc="mha2"}},eE=class extends O{static{this.fourcc="mhm1"}},ez=class extends O{static{this.fourcc="mhm2"}},eI=class extends O{static{this.fourcc="fLaC"}},eA=class extends R{static{this.fourcc="encv"}},eP=class extends O{static{this.fourcc="enca"}},eT=class extends L{constructor(){super(...arguments),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encu"}},eF=class extends N{constructor(){super(...arguments),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encs"}},eC=class extends N{static{this.fourcc="mp4s"}},eM=class extends H{constructor(){super(...arguments),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="enct"}},eD=class extends D{constructor(){super(...arguments),this.subBoxNames=["sinf"],this.sinfs=[]}static{this.fourcc="encm"}},eL=class extends R{constructor(){super(...arguments),this.box_name="RestrictedVideoSampleEntry"}static{this.fourcc="resv"}},eH=class extends L{static{this.fourcc="sbtt"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}},eR=class extends L{static{this.fourcc="stpp"}parse(t){this.parseHeader(t),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.auxiliary_mime_types=t.readCString(),this.parseFooter(t)}write(t){this.writeHeader(t),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,t.writeCString(this.namespace),t.writeCString(this.schema_location),t.writeCString(this.auxiliary_mime_types),this.writeFooter(t)}},eO=class extends L{static{this.fourcc="stxt"}parse(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}getCodec(){let t=super.getCodec();return this.mime_format?t+"."+this.mime_format:t}},eN=class extends L{static{this.fourcc="tx3g"}parse(t){this.parseHeader(t),this.displayFlags=t.readUint32(),this.horizontal_justification=t.readInt8(),this.vertical_justification=t.readInt8(),this.bg_color_rgba=t.readUint8Array(4),this.box_record=t.readInt16Array(4),this.style_record=t.readUint8Array(12),this.parseFooter(t)}},eV=class extends D{static{this.fourcc="wvtt"}parse(t){this.parseHeader(t),this.parseFooter(t)}},eG=class extends g{constructor(){super(...arguments),this.box_name="SampleToGroupBox"}static{this.fourcc="sbgp"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readString(4),1===this.version?this.grouping_type_parameter=t.readUint32():this.grouping_type_parameter=0,this.entries=[];let e=t.readUint32();for(let i=0;i<e;i++)this.entries.push({sample_count:t.readInt32(),group_description_index:t.readInt32()})}write(t){this.grouping_type_parameter?this.version=1:this.version=0,this.flags=0,this.size=8+8*this.entries.length+4*(1===this.version),this.writeHeader(t),t.writeString(this.grouping_type,void 0,4),1===this.version&&t.writeUint32(this.grouping_type_parameter),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++){let i=this.entries[e];t.writeInt32(i.sample_count),t.writeInt32(i.group_description_index)}}},eq=class extends g{constructor(){super(...arguments),this.box_name="SampleDependencyTypeBox"}static{this.fourcc="sdtp"}parse(t){this.parseFullHeader(t);let e=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(let i=0;i<e;i++){let e=t.readUint8();this.is_leading[i]=e>>6,this.sample_depends_on[i]=e>>4&3,this.sample_is_depended_on[i]=e>>2&3,this.sample_has_redundancy[i]=3&e}}},ej=class extends g{constructor(){super(...arguments),this.box_name="SampleGroupDescriptionBox"}static{this.fourcc="sgpd"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readString(4),f.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=t.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=t.readUint32()),this.entries=[];let e=t.readUint32();for(let i=0;i<e;i++){let e;e=this.grouping_type in I.sampleGroupEntry?new I.sampleGroupEntry[this.grouping_type](this.grouping_type):new x(this.grouping_type),this.entries.push(e),1===this.version&&0===this.default_length?e.description_length=t.readUint32():e.description_length=this.default_length,e.write===x.prototype.write&&(f.info("BoxParser","SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"),e.data=t.readUint8Array(e.description_length),t.seek(t.getPosition()-e.description_length)),e.parse(t)}}write(t){this.flags=0,this.size=12;for(let t=0;t<this.entries.length;t++){let e=this.entries[t];1===this.version&&(0===this.default_length&&(this.size+=4),this.size+=e.data.length)}this.writeHeader(t),t.writeString(this.grouping_type,void 0,4),1===this.version&&t.writeUint32(this.default_length),this.version>=2&&t.writeUint32(this.default_sample_description_index),t.writeUint32(this.entries.length);for(let e=0;e<this.entries.length;e++){let i=this.entries[e];1===this.version&&0===this.default_length&&t.writeUint32(i.description_length),i.write(t)}}},e$=class extends g{constructor(){super(...arguments),this.box_name="CompressedSegmentIndexBox"}static{this.fourcc="sidx"}parse(t){this.parseFullHeader(t),this.reference_ID=t.readUint32(),this.timescale=t.readUint32(),0===this.version?(this.earliest_presentation_time=t.readUint32(),this.first_offset=t.readUint32()):(this.earliest_presentation_time=t.readUint64(),this.first_offset=t.readUint64()),t.readUint16(),this.references=[];let e=t.readUint16();for(let i=0;i<e;i++){let e=t.readUint32(),i=t.readUint32(),s=t.readUint32();this.references.push({reference_type:e>>31&1,referenced_size:0x7fffffff&e,subsegment_duration:i,starts_with_SAP:s>>31&1,SAP_type:s>>28&7,SAP_delta_time:0xfffffff&s})}}write(t){let e=this.earliest_presentation_time>0xffffffff||this.first_offset>0xffffffff||1===this.version;this.version=+!!e,this.size=12+12*this.references.length,this.size+=e?16:8,this.flags=0,this.writeHeader(t),t.writeUint32(this.reference_ID),t.writeUint32(this.timescale),e?(t.writeUint64(this.earliest_presentation_time),t.writeUint64(this.first_offset)):(t.writeUint32(this.earliest_presentation_time),t.writeUint32(this.first_offset)),t.writeUint16(0),t.writeUint16(this.references.length);for(let e=0;e<this.references.length;e++){let i=this.references[e];t.writeUint32(i.reference_type<<31|i.referenced_size),t.writeUint32(i.subsegment_duration),t.writeUint32(i.starts_with_SAP<<31|i.SAP_type<<28|i.SAP_delta_time)}}},eW=class extends g{constructor(){super(...arguments),this.box_name="SoundMediaHeaderBox"}static{this.fourcc="smhd"}parse(t){this.parseFullHeader(t),this.balance=t.readUint16(),t.readUint16()}write(t){this.version=0,this.size=4,this.writeHeader(t),t.writeUint16(this.balance),t.writeUint16(0)}},eQ=class extends g{constructor(){super(...arguments),this.box_name="ChunkOffsetBox"}static{this.fourcc="stco"}parse(t){this.parseFullHeader(t);let e=t.readUint32();if(this.chunk_offsets=[],0===this.version)for(let i=0;i<e;i++)this.chunk_offsets.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(t),t.writeUint32(this.chunk_offsets.length),t.writeUint32Array(this.chunk_offsets)}unpack(t){for(let e=0;e<this.chunk_offsets.length;e++)t[e].offset=this.chunk_offsets[e]}},eY=class extends g{constructor(){super(...arguments),this.box_name="SubtitleMediaHeaderBox"}static{this.fourcc="sthd"}},eK=class extends g{constructor(){super(...arguments),this.box_name="SampleToChunkBox"}static{this.fourcc="stsc"}parse(t){this.parseFullHeader(t);let e=t.readUint32();if(this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],0===this.version)for(let i=0;i<e;i++)this.first_chunk.push(t.readUint32()),this.samples_per_chunk.push(t.readUint32()),this.sample_description_index.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(t),t.writeUint32(this.first_chunk.length);for(let e=0;e<this.first_chunk.length;e++)t.writeUint32(this.first_chunk[e]),t.writeUint32(this.samples_per_chunk[e]),t.writeUint32(this.sample_description_index[e])}unpack(t){let e=0,i=0;for(let s=0;s<this.first_chunk.length;s++)for(let r=0;r<(s+1<this.first_chunk.length?this.first_chunk[s+1]:1/0);
3r++){i++;for(let r=0;r<this.samples_per_chunk[s];r++){if(!t[e])return;t[e].description_index=this.sample_description_index[s],t[e].chunk_index=i,e++}}}},eJ=class extends g{constructor(){super(...arguments),this.box_name="SampleDescriptionBox"}static{this.fourcc="stsd"}parse(t){this.parseFullHeader(t),this.entries=[];let e=t.readUint32();for(let i=1;i<=e;i++){let e=T(t,!0,this.size-(t.getPosition()-this.start));if(1!==e.code)return;{let i;e.type in I.sampleEntry?((i=new I.sampleEntry[e.type](e.size)).hdr_size=e.hdr_size,i.start=e.start):(f.warn("BoxParser",`Unknown sample entry type: '${e.type}'`),(i=new C(e.size,e.hdr_size,e.start)).type=e.type),i.write===C.prototype.write&&(f.info("BoxParser","SampleEntry "+i.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(t)),i.parse(t),this.entries.push(i)}}}write(t){this.version=0,this.flags=0,this.size=0,this.writeHeader(t),t.writeUint32(this.entries.length),this.size+=4;for(let e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;f.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)}},eX=class extends g{constructor(){super(...arguments),this.box_name="SampleSizeBox"}static{this.fourcc="stsz"}parse(t){if(this.parseFullHeader(t),this.sample_sizes=[],0===this.version){this.sample_size=t.readUint32(),this.sample_count=t.readUint32();for(let e=0;e<this.sample_count;e++)0===this.sample_size?this.sample_sizes.push(t.readUint32()):this.sample_sizes[e]=this.sample_size}}write(t){let e=!0;if(this.version=0,this.flags=0,this.sample_sizes.length>0){let t=0;for(;t+1<this.sample_sizes.length;)if(this.sample_sizes[t+1]!==this.sample_sizes[0]){e=!1;break}else t++}else e=!1;this.size=8,e||(this.size+=4*this.sample_sizes.length),this.writeHeader(t),e?t.writeUint32(this.sample_sizes[0]):t.writeUint32(0),t.writeUint32(this.sample_sizes.length),e||t.writeUint32Array(this.sample_sizes)}unpack(t){for(let e=0;e<this.sample_sizes.length;e++)t[e].size=this.sample_sizes[e]}},eZ=class extends g{constructor(){super(...arguments),this.box_name="TimeToSampleBox",this.sample_counts=[],this.sample_deltas=[]}static{this.fourcc="stts"}parse(t){this.parseFullHeader(t);let e=t.readUint32();if(this.sample_counts.length=0,this.sample_deltas.length=0,0===this.version)for(let i=0;i<e;i++){this.sample_counts.push(t.readUint32());let e=t.readInt32();e<0&&(f.warn("BoxParser","File uses negative stts sample delta, using value 1 instead, sync may be lost!"),e=1),this.sample_deltas.push(e)}}write(t){this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length);for(let e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),t.writeUint32(this.sample_deltas[e])}unpack(t){let e=0;for(let i=0;i<this.sample_counts.length;i++)for(let s=0;s<this.sample_counts[i];s++)0===e?t[e].dts=0:t[e].dts=t[e-1].dts+this.sample_deltas[i],e++}},e0=class extends g{constructor(){super(...arguments),this.box_name="TrackFragmentBaseMediaDecodeTimeBox"}static{this.fourcc="tfdt"}parse(t){this.parseFullHeader(t),1===this.version?this.baseMediaDecodeTime=t.readUint64():this.baseMediaDecodeTime=t.readUint32()}write(t){let e=this.baseMediaDecodeTime>0xffffffff||1===this.version;this.version=+!!e,this.size=4,this.size+=4*!!e,this.flags=0,this.writeHeader(t),e?t.writeUint64(this.baseMediaDecodeTime):t.writeUint32(this.baseMediaDecodeTime)}},e1=class extends g{constructor(){super(...arguments),this.box_name="TrackFragmentHeaderBox"}static{this.fourcc="tfhd"}parse(t){this.parseFullHeader(t);let e=0;this.track_id=t.readUint32(),this.size-this.hdr_size>e&&1&this.flags?(this.base_data_offset=t.readUint64(),e+=8):this.base_data_offset=0,this.size-this.hdr_size>e&&2&this.flags?(this.default_sample_description_index=t.readUint32(),e+=4):this.default_sample_description_index=0,this.size-this.hdr_size>e&&8&this.flags?(this.default_sample_duration=t.readUint32(),e+=4):this.default_sample_duration=0,this.size-this.hdr_size>e&&16&this.flags?(this.default_sample_size=t.readUint32(),e+=4):this.default_sample_size=0,this.size-this.hdr_size>e&&32&this.flags?(this.default_sample_flags=t.readUint32(),e+=4):this.default_sample_flags=0}write(t){this.version=0,this.size=4,1&this.flags&&(this.size+=8),2&this.flags&&(this.size+=4),8&this.flags&&(this.size+=4),16&this.flags&&(this.size+=4),32&this.flags&&(this.size+=4),this.writeHeader(t),t.writeUint32(this.track_id),1&this.flags&&t.writeUint64(this.base_data_offset),2&this.flags&&t.writeUint32(this.default_sample_description_index),8&this.flags&&t.writeUint32(this.default_sample_duration),16&this.flags&&t.writeUint32(this.default_sample_size),32&this.flags&&t.writeUint32(this.default_sample_flags)}},e2=class extends g{constructor(){super(...arguments),this.box_name="TrackHeaderBox",this.layer=0,this.alternate_group=0}static{this.fourcc="tkhd"}parse(t){this.parseFullHeader(t),1===this.version?(this.creation_time=t.readUint64(),this.modification_time=t.readUint64(),this.track_id=t.readUint32(),t.readUint32(),this.duration=t.readUint64()):(this.creation_time=t.readUint32(),this.modification_time=t.readUint32(),this.track_id=t.readUint32(),t.readUint32(),this.duration=t.readUint32()),t.readUint32Array(2),this.layer=t.readInt16(),this.alternate_group=t.readInt16(),this.volume=t.readInt16()>>8,t.readUint16(),this.matrix=t.readInt32Array(9),this.width=t.readUint32(),this.height=t.readUint32()}write(t){let e=this.modification_time>0xffffffff||this.creation_time>0xffffffff||this.duration>0xffffffff||1===this.version;this.version=+!!e,this.size=80,this.size+=12*!!e,this.flags=this.flags??3,this.writeHeader(t),e?(t.writeUint64(this.creation_time),t.writeUint64(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint64(this.duration)):(t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint32(this.duration)),t.writeUint32Array([0,0]),t.writeInt16(this.layer),t.writeInt16(this.alternate_group),t.writeInt16(this.volume<<8),t.writeInt16(0),t.writeInt32Array(this.matrix
3),t.writeUint32(this.width),t.writeUint32(this.height)}print(t){super.printHeader(t),t.log(t.indent+"creation_time: "+this.creation_time),t.log(t.indent+"modification_time: "+this.modification_time),t.log(t.indent+"track_id: "+this.track_id),t.log(t.indent+"duration: "+this.duration),t.log(t.indent+"volume: "+(this.volume>>8)),t.log(t.indent+"matrix: "+this.matrix.join(", ")),t.log(t.indent+"layer: "+this.layer),t.log(t.indent+"alternate_group: "+this.alternate_group),t.log(t.indent+"width: "+this.width),t.log(t.indent+"height: "+this.height)}},e3=class extends g{constructor(){super(...arguments),this.box_name="TrackExtendsBox"}static{this.fourcc="trex"}parse(t){this.parseFullHeader(t),this.track_id=t.readUint32(),this.default_sample_description_index=t.readUint32(),this.default_sample_duration=t.readUint32(),this.default_sample_size=t.readUint32(),this.default_sample_flags=t.readUint32()}write(t){this.version=0,this.flags=0,this.size=20,this.writeHeader(t),t.writeUint32(this.track_id),t.writeUint32(this.default_sample_description_index),t.writeUint32(this.default_sample_duration),t.writeUint32(this.default_sample_size),t.writeUint32(this.default_sample_flags)}},e6=class extends g{constructor(){super(...arguments),this.box_name="TrackRunBox",this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[]}static{this.fourcc="trun"}parse(t){this.parseFullHeader(t);let e=0;if(this.sample_count=t.readUint32(),e+=4,this.size-this.hdr_size>e&&1&this.flags?(this.data_offset=t.readInt32(),e+=4):this.data_offset=0,this.size-this.hdr_size>e&&4&this.flags?(this.first_sample_flags=t.readUint32(),e+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>e)for(let e=0;e<this.sample_count;e++)256&this.flags&&(this.sample_duration[e]=t.readUint32()),512&this.flags&&(this.sample_size[e]=t.readUint32()),1024&this.flags&&(this.sample_flags[e]=t.readUint32()),2048&this.flags&&(0===this.version?this.sample_composition_time_offset[e]=t.readUint32():this.sample_composition_time_offset[e]=t.readInt32())}write(t){this.size=4,1&this.flags&&(this.size+=4),4&this.flags&&(this.size+=4),256&this.flags&&(this.size+=4*this.sample_duration.length),512&this.flags&&(this.size+=4*this.sample_size.length),1024&this.flags&&(this.size+=4*this.sample_flags.length),2048&this.flags&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(t),t.writeUint32(this.sample_count),1&this.flags&&(this.data_offset_position=t.getPosition(),t.writeInt32(this.data_offset)),4&this.flags&&t.writeUint32(this.first_sample_flags);for(let e=0;e<this.sample_count;e++)256&this.flags&&t.writeUint32(this.sample_duration[e]),512&this.flags&&t.writeUint32(this.sample_size[e]),1024&this.flags&&t.writeUint32(this.sample_flags[e]),2048&this.flags&&(0===this.version?t.writeUint32(this.sample_composition_time_offset[e]):t.writeInt32(this.sample_composition_time_offset[e]))}},e8=class extends g{constructor(){super(...arguments),this.box_name="DataEntryUrlBox"}static{this.fourcc="url "}parse(t){this.parseFullHeader(t),1!==this.flags&&(this.location=t.readCString())}write(t){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(t),this.location&&t.writeCString(this.location)}},e4=class extends g{constructor(){super(...arguments),this.box_name="VideoMediaHeaderBox"}static{this.fourcc="vmhd"}parse(t){this.parseFullHeader(t),this.graphicsmode=t.readUint16(),this.opcolor=t.readUint16Array(3)}write(t){this.version=0,this.size=8,this.writeHeader(t),t.writeUint16(this.graphicsmode),t.writeUint16Array(this.opcolor)}},e5=class{constructor(t,e,i){this.grouping_type=t,this.grouping_type_parameter=e,this.sbgp=i,this.last_sample_in_run=-1,this.entry_index=-1}},e7=class t{constructor(t,e=!0){this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.moovStartSent=!1,this.readySent=!1,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.sidxSent=!1,this.items=[],this.entity_groups=[],this.itemsDataSize=0,this.lastMoofIndex=0,this.samplesDataSize=0,this.lastBoxStartPosition=0,this.nextParsePosition=0,this.discardMdatData=!0,this.discardMdatData=e,t?(this.stream=t,this.parse()):this.stream=new m,this.stream.isofile=this}setSegmentOptions(t,e,i){let{sizePerSegment:s=Number.MAX_SAFE_INTEGER,rapAlignement:r=!0}=i,a=i.nbSamples??i.nbSamplesPerFragment??1e3,n=i.nbSamplesPerFragment??a;if(a<=0||n<=0||s<=0)return void f.error("ISOFile",`Invalid segment options: nbSamples=${a}, nbSamplesPerFragment=${n}, sizePerSegment=${s}`);if(a<n&&(f.warn("ISOFile",`nbSamples (${a}) is less than nbSamplesPerFragment (${n}), setting nbSamples to nbSamplesPerFragment`),a=n),this.fragmentedTracks.some(t=>t.nb_samples!==a))return void f.error("ISOFile",`Cannot set segment options for track ${t}: nbSamples (${a}) does not match existing tracks`);let o=this.getTrackById(t);if(o){let i={id:t,user:e,trak:o,segmentStream:void 0,nb_samples:a,nb_samples_per_fragment:n,size_per_segment:s,rapAlignement:r,state:{lastFragmentSampleNumber:0,lastSegmentSampleNumber:0,accumulatedSize:0}};this.fragmentedTracks.push(i),o.nextSample=0}this.discardMdatData&&f.warn("ISOFile","Segmentation options set but discardMdatData is true, samples will not be segmented")}unsetSegmentOptions(t){let e=-1;for(let i=0;i<this.fragmentedTracks.length;i++)this.fragmentedTracks[i].id===t&&(e=i);e>-1&&this.fragmentedTracks.splice(e,1)}setExtractionOptions(t,e,{nbSamples:i=1e3}={}){let s=this.getTrackById(t);
3s&&(this.extractedTracks.push({id:t,user:e,trak:s,nb_samples:i,samples:[]}),s.nextSample=0),this.discardMdatData&&f.warn("ISOFile","Extraction options set but discardMdatData is true, samples will not be extracted")}unsetExtractionOptions(t){let e=-1;for(let i=0;i<this.extractedTracks.length;i++)this.extractedTracks[i].id===t&&(e=i);e>-1&&this.extractedTracks.splice(e,1)}parse(){if(!this.restoreParsePosition||this.restoreParsePosition())for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat())if(this.processIncompleteMdat())continue;else return;else{this.saveParsePosition&&this.saveParsePosition();let t=T(this.stream,!1);if(0===t.code)if(!this.processIncompleteBox)return;else if(this.processIncompleteBox(t))continue;else return;if(1===t.code){let e=t.box;if(this.boxes.push(e),"uuid"===e.type)void 0!==this[e.uuid]&&f.warn("ISOFile","Duplicate Box of uuid: "+e.uuid+", overriding previous occurrence"),this[e.uuid]=e;else switch(e.type){case"mdat":this.mdats.push(e),this.transferMdatData(e);break;case"moof":this.moofs.push(e);break;case"free":case"skip":break;case"moov":this.moovStartFound=!0,0===this.mdats.length&&(this.isProgressive=!0);default:void 0!==this[e.type]?Array.isArray(this[e.type+"s"])?(f.info("ISOFile",`Found multiple boxes of type ${e.type} in ISOFile, adding to array`),this[e.type+"s"].push(e)):(f.warn("ISOFile",`Found multiple boxes of type ${e.type} but no array exists. Creating array dynamically.`),this[e.type+"s"]=[this[e.type],e]):(this[e.type]=e,Array.isArray(this[e.type+"s"])&&this[e.type+"s"].push(e))}this.updateUsedBytes&&this.updateUsedBytes(e,t)}else if(-1===t.code){f.error("ISOFile",`Invalid data found while parsing box of type '${t.type}' at position ${t.start}. Aborting parsing.`,this);break}}}checkBuffer(t){if(!t)throw Error("Buffer must be defined and non empty");return 0===t.byteLength?(f.warn("ISOFile","Ignoring empty buffer (fileStart: "+t.fileStart+")"),this.stream.logBufferLevel(),!1):(f.info("ISOFile","Processing buffer (fileStart: "+t.fileStart+")"),t.usedBytes=0,this.stream.insertBuffer(t),this.stream.logBufferLevel(),!!this.stream.initialized()||(f.warn("ISOFile","Not ready to start parsing"),!1))}appendBuffer(t,e){let i;if(this.checkBuffer(t))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(e),this.nextSeekPosition?(i=this.nextSeekPosition,this.nextSeekPosition=void 0):i=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(i=this.stream.getEndFilePositionAfter(i))):i=this.nextParsePosition?this.nextParsePosition:0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(f.info("ISOFile","Done processing buffer (fileStart: "+t.fileStart+") - next buffer to fetch should have a fileStart position of "+i),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),f.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),i}getFragmentDuration(){let t=this.getBox("mvex");if(!t)return;if(t.mehd)return{num:t.mehd.fragment_duration,den:this.moov.mvhd.timescale};let e=this.getBoxes("trak",!1),i={num:0,den:1};for(let t of e){let e=t.samples_duration,s=t.mdia.mdhd.timescale;e&&s&&e/s>i.num/i.den&&(i={num:e,den:s})}return i}getInfo(){if(!this.moov)return{hasMoov:!1,mime:""};let t=new Date("1904-01-01T00:00:00Z").getTime(),e=void 0!==this.getBox("mvex"),i={hasMoov:!0,duration:this.moov.mvhd.duration,timescale:this.moov.mvhd.timescale,isFragmented:e,fragment_duration:this.getFragmentDuration(),isProgressive:this.isProgressive,hasIOD:void 0!==this.moov.iods,brands:[this.ftyp.major_brand].concat(this.ftyp.compatible_brands),created:new Date(t+1e3*this.moov.mvhd.creation_time),modified:new Date(t+1e3*this.moov.mvhd.modification_time),tracks:[],audioTracks:[],videoTracks:[],subtitleTracks:[],metadataTracks:[],hintTracks:[],otherTracks:[],mime:""};for(let e=0;e<this.moov.traks.length;e++){let s=this.moov.traks[e],r=s.mdia.minf.stbl.stsd.entries[0],a=s.samples_size,n=s.mdia.mdhd.timescale,o=s.samples_duration,h=8*a*n/o,d={samples_duration:o,bitrate:h,size:a,timescale:n,alternate_group:s.tkhd.alternate_group,codec:r.getCodec(),created:new Date(t+1e3*s.tkhd.creation_time),cts_shift:s.mdia.minf.stbl.cslg,duration:s.mdia.mdhd.duration,id:s.tkhd.track_id,kind:s.udta&&s.udta.kinds.length?s.udta.kinds[0]:{schemeURI:"",value:""},language:s.mdia.elng?s.mdia.elng.extended_language:s.mdia.mdhd.languageString,layer:s.tkhd.layer,matrix:s.tkhd.matrix,modified:new Date(t+1e3*s.tkhd.modification_time),movie_duration:s.tkhd.duration,movie_timescale:i.timescale,name:s.mdia.hdlr.name,nb_samples:s.samples.length,references:[],track_height:s.tkhd.height/65536,track_width:s.tkhd.width/65536,volume:s.tkhd.volume};
3if(i.tracks.push(d),s.tref)for(let t=0;t<s.tref.references.length;t++)d.references.push({type:s.tref.references[t].type,track_ids:s.tref.references[t].track_ids});void 0!==s.edts&&void 0!==s.edts.elst&&(d.edits=s.edts.elst.entries),r instanceof O?(d.type="audio",i.audioTracks.push(d),d.audio={sample_rate:r.getSampleRate(),channel_count:r.getChannelCount(),sample_size:r.getSampleSize()}):r instanceof R?(d.type="video",i.videoTracks.push(d),d.video={width:r.getWidth(),height:r.getHeight()}):r instanceof L?(d.type="subtitles",i.subtitleTracks.push(d)):r instanceof M?(d.type="metadata",i.hintTracks.push(d)):r instanceof D?(d.type="metadata",i.metadataTracks.push(d)):(d.type="metadata",i.otherTracks.push(d))}i.videoTracks&&i.videoTracks.length>0?i.mime+='video/mp4; codecs="':i.audioTracks&&i.audioTracks.length>0?i.mime+='audio/mp4; codecs="':i.mime+='application/mp4; codecs="';for(let t=0;t<i.tracks.length;t++)0!==t&&(i.mime+=","),i.mime+=i.tracks[t].codec;return i.mime+='"; profiles="',i.mime+=this.ftyp.compatible_brands.join(),i.mime+='"',i}setNextSeekPositionFromSample(t){t&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(t.offset+t.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=t.offset+t.alreadyRead)}processSamples(t){if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&void 0!==this.onSegment){let e=new Set;for(;e.size<this.fragmentedTracks.length&&this.fragmentedTracks.some(t=>t.trak.nextSample<t.trak.samples.length)&&this.sampleProcessingStarted;)for(let i of this.fragmentedTracks){let s=i.trak;if(!e.has(i.id)){let r=s.nextSample<s.samples.length?this.getSample(s,s.nextSample):void 0;if(!r){this.setNextSeekPositionFromSample(s.samples[s.nextSample]),e.add(i.id);continue}i.state.accumulatedSize+=r.size;let a=s.nextSample+1,n=a-i.state.lastFragmentSampleNumber>i.nb_samples_per_fragment,o=a-i.state.lastSegmentSampleNumber>i.nb_samples,h=n||a%i.nb_samples_per_fragment==0,d=o||a%i.nb_samples==0,l=i.state.accumulatedSize>=i.size_per_segment,c=!i.rapAlignement||r.is_sync,u=t||s.nextSample+1>=s.samples.length;if(u&&!c&&f.warn("ISOFile","Flushing track #"+i.id+" at sample #"+s.nextSample+" which is not a RAP, this may lead to playback issues"),h=h&&c,d=d&&c,l=l&&c,h||l||u){n?f.warn("ISOFile","Fragment on track #"+i.id+" is overdue, creating it with samples ["+i.state.lastFragmentSampleNumber+", "+s.nextSample+"]"):f.debug("ISOFile","Creating media fragment on track #"+i.id+" for samples ["+i.state.lastFragmentSampleNumber+", "+s.nextSample+"]");let t=this.createFragment(i.id,i.state.lastFragmentSampleNumber,s.nextSample,i.segmentStream);if(t)i.segmentStream=t,i.state.lastFragmentSampleNumber=s.nextSample+1;else{e.add(i.id);continue}}(d||l||u)&&(o?f.warn("ISOFile","Segment on track #"+i.id+" is overdue, sending it with samples ["+Math.max(0,s.nextSample-i.nb_samples)+", "+(s.nextSample-1)+"]"):f.info("ISOFile","Sending fragmented data on track #"+i.id+" for samples ["+Math.max(0,s.nextSample-i.nb_samples)+", "+(s.nextSample-1)+"]"),f.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(i.id,i.user,i.segmentStream.buffer,s.nextSample+1,t||s.nextSample+1>=s.samples.length),i.segmentStream=void 0,i.state.accumulatedSize=0,i.state.lastSegmentSampleNumber=s.nextSample+1),s.nextSample++}}}if(void 0!==this.onSamples)for(let t=0;t<this.extractedTracks.length;t++){let e=this.extractedTracks[t],i=e.trak;for(;i.nextSample<i.samples.length&&this.sampleProcessingStarted;){f.debug("ISOFile","Exporting on track #"+e.id+" sample #"+i.nextSample);let s=this.getSample(i,i.nextSample);if(s)i.nextSample++,e.samples.push(s);else{this.setNextSeekPositionFromSample(i.samples[i.nextSample]);break}if((i.nextSample%e.nb_samples==0||i.nextSample>=i.samples.length)&&(f.debug("ISOFile","Sending samples on track #"+e.id+" for sample "+i.nextSample),this.onSamples&&this.onSamples(e.id,e.user,e.samples),e.samples=[],e!==this.extractedTracks[t]))break}}}}getBox(t){let e=this.getBoxes(t,!0);return e.length?e[0]:void 0}getBoxes(t,e){let i=[],s=r=>{r instanceof _&&r.type&&r.type===t&&i.push(r);let a=[];for(let t of(r.boxes&&a.push(...r.boxes),r.entries&&a.push(...r.entries),r.item_infos&&a.push(...r.item_infos),r.references&&a.push(...r.references),a)){if(i.length&&e)return;s(t)}};return s(this),i}getTrackSamplesInfo(t){let e=this.getTrackById(t);if(e)return e.samples}getTrackSample(t,e){let i=this.getTrackById(t);
3return this.getSample(i,e)}releaseUsedSamples(t,e){let i=0,s=this.getTrackById(t);s.lastValidSample||(s.lastValidSample=0);for(let t=s.lastValidSample;t<e;t++)i+=this.releaseSample(s,t);f.info("ISOFile","Track #"+t+" released samples up to "+e+" (released size: "+i+", remaining: "+this.samplesDataSize+")"),s.lastValidSample=e}start(){this.sampleProcessingStarted=!0,this.processSamples(!1)}stop(){this.sampleProcessingStarted=!1}flush(){f.info("ISOFile","Flushing remaining samples"),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)}seekTrack(t,e,i){let s,r=0,a=0;if(0===i.samples.length)return f.info("ISOFile","No sample in track, cannot seek! Using time "+f.getDurationString(0,1)+" and offset: 0"),{offset:0,time:0};for(let n=0;n<i.samples.length;n++){let o=i.samples[n];if(0===n)a=0,s=o.timescale;else if(o.cts>t*o.timescale){a=n-1;break}e&&o.is_sync&&(r=n)}for(e&&(a=r),t=i.samples[a].cts,i.nextSample=a;i.samples[a].alreadyRead===i.samples[a].size&&i.samples[a+1];)a++;let n=i.samples[a].offset+i.samples[a].alreadyRead;return f.info("ISOFile","Seeking to "+(e?"RAP":"")+" sample #"+i.nextSample+" on track "+i.tkhd.track_id+", time "+f.getDurationString(t,s)+" and offset: "+n),{offset:n,time:t/s}}getTrackDuration(t){if(!t.samples)return 1/0;let e=t.samples[t.samples.length-1];return(e.cts+e.duration)/e.timescale}seek(t,e){let i=this.moov,s={offset:1/0,time:1/0};if(this.moov){for(let r=0;r<i.traks.length;r++){let a=i.traks[r];if(t>this.getTrackDuration(a))continue;let n=this.seekTrack(t,e,a);n.offset<s.offset&&(s.offset=n.offset),n.time<s.time&&(s.time=n.time)}return f.info("ISOFile","Seeking at time "+f.getDurationString(s.time,1)+" needs a buffer with a fileStart position of "+s.offset),s.offset===1/0?s={offset:this.nextParsePosition,time:0}:s.offset=this.stream.getEndFilePositionAfter(s.offset),f.info("ISOFile","Adjusted seek position (after checking data already in buffer): "+s.offset),s}throw Error("Cannot seek: moov not received!")}equal(t){let e=0;for(;e<this.boxes.length&&e<t.boxes.length;){if(!function t(e,i){if(!function(t,e){let i;if(t&&!e)return!1;for(i in t)if(w.find(t=>t===i))continue;else if(t[i]instanceof _||e[i]instanceof _)continue;else if(void 0===t[i]||void 0===e[i])continue;else if("function"==typeof t[i]||"function"==typeof e[i])continue;else if("subBoxNames"in t&&t.subBoxNames.indexOf(i.slice(0,4))>-1||"subBoxNames"in e&&e.subBoxNames.indexOf(i.slice(0,4))>-1)continue;else if("data"===i||"start"===i||"size"===i||"creation_time"===i||"modification_time"===i)continue;else if(v.find(t=>t===i))continue;else if(t[i]!==e[i])return!1;return!0}(e,i))return!1;for(let s=0;s<w.length;s++){let r=w[s];if(e[r]&&i[r]&&!t(e[r],i[r]))return!1}return!0}(this.boxes[e],t.boxes[e]))return!1;e++}return!0}write(t){for(let e=0;e<this.boxes.length;e++)this.boxes[e].write(t)}createFragment(t,e,i,s){let r=[];for(let s=e;s<=i;s++){let e=this.getTrackById(t),i=this.getSample(e,s);if(!i)return void this.setNextSeekPositionFromSample(e.samples[s]);r.push(i)}let a=s||new l,n=this.createMoof(r);n.write(a),n.trafs[0].truns[0].data_offset=n.size+8,f.debug("MP4Box","Adjusting data_offset with new value "+n.trafs[0].truns[0].data_offset),a.adjustUint32(n.trafs[0].truns[0].data_offset_position,n.trafs[0].truns[0].data_offset);let o=new q;o.stream=new m;let d=0;for(let t of r)if(t.data){let e=h.fromArrayBuffer(t.data.buffer,d);o.stream.insertBuffer(e),d+=t.data.byteLength}return o.write(a),a}static writeInitializationSegment(t,e,i){f.debug("ISOFile","Generating initialization segment");let s=new l;t.write(s);let r=e.addBox(new to);i&&(r.addBox(new tC).fragment_duration=i);for(let t=0;t<e.traks.length;t++){let i=r.addBox(new e3);i.track_id=e.traks[t].tkhd.track_id,i.default_sample_description_index=1,i.default_sample_duration=e.traks[t].samples[0]?.duration??0,i.default_sample_size=0,i.default_sample_flags=65536}return e.write(s),s.buffer}save(t){let e=new l;return e.isofile=this,this.write(e),e.save(t)}getBuffer(){let t=new l;return t.isofile=this,this.write(t),t}initializeSegmentation(){this.onSegment||f.warn("MP4Box","No segmentation callback set!"),this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.resetTables());let e=new tt;e.addBox(this.moov.mvhd);for(let t=0;t<this.fragmentedTracks.length;t++){let i=this.getTrackById(this.fragmentedTracks[t].id);if(!i){f.warn("ISOFile",`Track with id ${this.fragmentedTracks[t].id} not found, skipping fragmentation initialization`);continue}e.addBox(i)}return{tracks:e.traks.map((t,e)=>({id:t.tkhd.track_id,user:this.fragmentedTracks[e].user})),buffer:t.writeInitializationSegment(this.ftyp,e,this.moov?.mvex?.mehd.fragment_duration)}}resetTables(){this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0;for(let t=0;t<this.moov.traks.length;t++){let e=this.moov.traks[t];e.tkhd.duration=0,e.mdia.mdhd.duration=0,(e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64).chunk_offsets=[];let i=e.mdia.minf.stbl.stsc;i.first_chunk=[],i.samples_per_chunk=[],i.sample_description_index=[],(e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2).sample_sizes=[];let s=e.mdia.minf.stbl.stts;s.sample_counts=[],s.sample_deltas=[];let r=e.mdia.minf.stbl.ctts;r&&(r.sample_counts=[],r.sample_offsets=[]);let a=e.mdia.minf.stbl.stss,n=e.mdia.minf.stbl.boxes.indexOf(a);-1!==n&&(e.mdia.minf.stbl.boxes[n]=void 0)}}static initSampleGroups(t,e,i,s,r){e&&(e.sample_groups_info=[]),t.sample_groups_info||(t.sample_groups_info=[]);for(let a=0;a<i.length;a++){let n=i[a].grouping_type+"/"+i[a].grouping_type_parameter,o=new e5(i[a].grouping_type,i[a].grouping_type_parameter,i[a]);e&&(e.sample_groups_info[n]=o),t.sample_groups_info[n]||(t.sample_groups_info[n]=o);for(let t=0;t<s.length;t++)s[t].grouping_type===i[a].grouping_type&&(o.description=s[t],o.description.used=!0);if(r)for(let t=0;t<r.length;t++)r[t].grouping_type===i[a].grouping_type&&(o.fragment_description=r[t],o.fragment_description.used=!0,o.is_fragment=!0)}if(e){if(r){for(let t=0;t<r.length;t++)if(!r[t].used&&r[t].version>=2){let i=r[t].grouping_type+"/0",s=new e5(r[t].grouping_type,0);s.is_fragment=!0,e.sample_groups_info[i]||(e.sample_groups_info[i]=s)}}}else for(let e=0;e<s.length;e++)if(!s[e].used&&s[e].version>=2){let i=s[e].grouping_type+"/0",r=new e5(s[e].grouping_type,0);t.sample_groups_info[i]||(t.sample_groups_info[i]=r)}}static setSampleGroupProperties(t,e,i,s){for(let t in e.sample_groups=[],s)if(e.sample_groups[t]={grouping_type:s[t].grouping_type,grouping_type_parameter:s[t].grouping_type_parameter},i>=s[t].last_sample_in_run&&(s[t].last_sample_in_run<0&&(s[t].last_sample_in_run=0),s[t].entry_index++,s[t].entry_index<=s[t].sbgp.entries.length-1&&(s[t].last_sample_in_run+=s[t].sbgp.entries[s[t].entry_index].sample_count)),s[t].entry_index<=s[t].sbgp.entries.length-1?e.
3sample_groups[t].group_description_index=s[t].sbgp.entries[s[t].entry_index].group_description_index:e.sample_groups[t].group_description_index=-1,0!==e.sample_groups[t].group_description_index){let i;if(i=s[t].fragment_description?s[t].fragment_description:s[t].description,e.sample_groups[t].group_description_index>0){let s;s=e.sample_groups[t].group_description_index>65535?(e.sample_groups[t].group_description_index>>16)-1:e.sample_groups[t].group_description_index-1,i&&s>=0&&(e.sample_groups[t].description=i.entries[s])}else i&&i.version>=2&&i.default_group_description_index>0&&(e.sample_groups[t].description=i.entries[i.default_group_description_index-1])}}static process_sdtp(t,e,i){e&&(t?(e.is_leading=t.is_leading[i],e.depends_on=t.sample_depends_on[i],e.is_depended_on=t.sample_is_depended_on[i],e.has_redundancy=t.sample_has_redundancy[i]):(e.is_leading=0,e.depends_on=0,e.is_depended_on=0,e.has_redundancy=0))}buildSampleLists(){for(let t=0;t<this.moov.traks.length;t++)this.buildTrakSampleLists(this.moov.traks[t])}buildTrakSampleLists(e){let i,s,r,a,n,o;e.samples=[],e.samples_duration=0,e.samples_size=0;let h=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,d=e.mdia.minf.stbl.stsc,l=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,c=e.mdia.minf.stbl.stts,u=e.mdia.minf.stbl.ctts,p=e.mdia.minf.stbl.stss,f=e.mdia.minf.stbl.stsd,m=e.mdia.minf.stbl.subs,_=e.mdia.minf.stbl.stdp,g=e.mdia.minf.stbl.sbgps,x=e.mdia.minf.stbl.sgpds,b=-1,y=-1,S=-1,U=-1,w=0,v=0,B=0;if(t.initSampleGroups(e,void 0,g,x),void 0!==l){for(i=0;i<l.sample_sizes.length;i++){let k={number:i,track_id:e.tkhd.track_id,timescale:e.mdia.mdhd.timescale,alreadyRead:0,size:l.sample_sizes[i]};e.samples[i]=k,e.samples_size+=k.size,0===i?(s=0,k.chunk_index=r=1,k.chunk_run_index=s,o=d.samples_per_chunk[s],n=0,a=s+1<d.first_chunk.length?d.first_chunk[s+1]-1:1/0):i<o?(k.chunk_index=r,k.chunk_run_index=s):(k.chunk_index=++r,n=0,r<=a||(a=++s+1<d.first_chunk.length?d.first_chunk[s+1]-1:1/0),k.chunk_run_index=s,o+=d.samples_per_chunk[s]),k.description_index=d.sample_description_index[k.chunk_run_index]-1,k.description=f.entries[k.description_index],k.offset=h.chunk_offsets[k.chunk_index-1]+n,n+=k.size,i>b&&(y++,b<0&&(b=0),b+=c.sample_counts[y]),i>0?(e.samples[i-1].duration=c.sample_deltas[y],e.samples_duration+=e.samples[i-1].duration,k.dts=e.samples[i-1].dts+e.samples[i-1].duration):k.dts=0,u?(i>=S&&(U++,S<0&&(S=0),S+=u.sample_counts[U]),k.cts=e.samples[i].dts+u.sample_offsets[U]):k.cts=k.dts,p?(i===p.sample_numbers[w]-1?(k.is_sync=!0,w++):(k.is_sync=!1,k.degradation_priority=0),m&&m.entries[v].sample_delta+B===i+1&&(k.subsamples=m.entries[v].subsamples,B+=m.entries[v].sample_delta,v++)):k.is_sync=!0,t.process_sdtp(e.mdia.minf.stbl.sdtp,k,k.number),_?k.degradation_priority=_.priority[i]:k.degradation_priority=0,m&&m.entries[v].sample_delta+B===i&&(k.subsamples=m.entries[v].subsamples,B+=m.entries[v].sample_delta),(g.length>0||x.length>0)&&t.setSampleGroupProperties(e,k,i,e.sample_groups_info)}i>0&&(e.samples[i-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[i-1].dts,0),e.samples_duration+=e.samples[i-1].duration)}}updateSampleLists(){let e,i,s,r,a;if(void 0!==this.moov)for(;this.lastMoofIndex<this.moofs.length;){let n=this.moofs[this.lastMoofIndex];if(this.lastMoofIndex++,"moof"===n.type)for(let o=0;o<n.trafs.length;o++){let h=n.trafs[o],d=this.getTrackById(h.tfhd.track_id),l=this.getTrexById(h.tfhd.track_id);e=2&h.tfhd.flags?h.tfhd.default_sample_description_index:l?l.default_sample_description_index:1,i=8&h.tfhd.flags?h.tfhd.default_sample_duration:l?l.default_sample_duration:0,s=16&h.tfhd.flags?h.tfhd.default_sample_size:l?l.default_sample_size:0,r=32&h.tfhd.flags?h.tfhd.default_sample_flags:l?l.default_sample_flags:0,h.sample_number=0,h.sbgps.length>0&&t.initSampleGroups(d,h,h.sbgps,d.mdia.minf.stbl.sgpds,h.sgpds);for(let o=0;o<h.truns.length;o++){let l=h.truns[o];for(let c=0;c<l.sample_count;c++){let u,p,f=e-1,m=r;1024&l.flags?m=l.sample_flags[c]:0===c&&4&l.flags&&(m=l.first_sample_flags);let _=s;512&l.flags&&(_=l.sample_size[c]),d.samples_size+=_;let g=i;256&l.flags&&(g=l.sample_duration[c]),d.samples_duration+=g,d.first_traf_merged||c>0?u=d.samples[d.samples.length-1].dts+d.samples[d.samples.length-1].duration:(u=h.tfdt?h.tfdt.baseMediaDecodeTime:0,d.first_traf_merged=!0);let x=u;2048&l.flags&&(x=u+l.sample_composition_time_offset[c]);let b=!!(1&h.tfhd.flags),y=!!(131072&h.tfhd.flags),S=!!(1&l.flags),U=0;U=b?h.tfhd.base_data_offset:y||0===o?n.start:a,a=(p=0===o&&0===c?S?U+l.data_offset:U:a)+_;let w=h.sample_number;h.sample_number++;let v={cts:x,description_index:f,description:d.mdia.minf.stbl.stsd.entries[f],dts:u,duration:g,moof_number:this.lastMoofIndex,number_in_traf:w,number:d.samples.length,offset:p,size:_,timescale:d.mdia.mdhd.timescale,track_id:d.tkhd.track_id,is_sync:!(m>>16&1),is_leading:m>>26&3,depends_on:m>>24&3,is_depended_on:m>>22&3,has_redundancy:m>>20&3,degradation_priority:65535&m};h.first_sample_index=d.samples.length,d.samples.push(v),(h.sbgps.length>0||h.sgpds.length>0||d.mdia.minf.stbl.sbgps.length>0||d.mdia.minf.stbl.sgpds.length>0)&&t.setSampleGroupProperties(d,v,v.number_in_traf,h.sample_groups_info)}}if(h.subs){d.has_fragment_subsamples=!0;let t=h.first_sample_index;for(let e=0;
3e<h.subs.entries.length;e++)t+=h.subs.entries[e].sample_delta,d.samples[t-1].subsamples=h.subs.entries[e].subsamples}}}}getSample(t,e){let i=t.samples[e];if(this.moov){if(i.data){if(i.alreadyRead===i.size)return i}else i.data=new Uint8Array(i.size),i.alreadyRead=0,this.samplesDataSize+=i.size,f.debug("ISOFile","Allocating sample #"+e+" on track #"+t.tkhd.track_id+" of size "+i.size+" (total: "+this.samplesDataSize+")");for(;;){let t,s,r=this.stream,a=r.findPosition(!0,i.offset+i.alreadyRead,!1);if(a>-1)s=(t=r.buffers[a]).fileStart;else for(let e of this.mdats){if(!e.stream){f.debug("ISOFile","mdat stream not yet fully read for #"+this.mdats.indexOf(e)+" mdat");continue}if((a=e.stream.findPosition(!0,i.offset+i.alreadyRead-e.start-e.hdr_size,!1))>-1){r=e.stream,t=e.stream.buffers[a],s=e.start+e.hdr_size+t.fileStart;break}}if(!t)return;{let a=t.byteLength-(i.offset+i.alreadyRead-s);if(i.size-i.alreadyRead<=a)return f.debug("ISOFile","Getting sample #"+e+" data (alreadyRead: "+i.alreadyRead+" offset: "+(i.offset+i.alreadyRead-s)+" read size: "+(i.size-i.alreadyRead)+" full size: "+i.size+")"),l.memcpy(i.data.buffer,i.alreadyRead,t,i.offset+i.alreadyRead-s,i.size-i.alreadyRead),t.usedBytes+=i.size-i.alreadyRead,r.logBufferLevel(),i.alreadyRead=i.size,i;if(0===a)return;f.debug("ISOFile","Getting sample #"+e+" partial data (alreadyRead: "+i.alreadyRead+" offset: "+(i.offset+i.alreadyRead-s)+" read size: "+a+" full size: "+i.size+")"),l.memcpy(i.data.buffer,i.alreadyRead,t,i.offset+i.alreadyRead-s,a),i.alreadyRead+=a,t.usedBytes+=a,r.logBufferLevel()}}}}releaseSample(t,e){let i=t.samples[e];return i.data?(this.samplesDataSize-=i.size,i.data=void 0,i.alreadyRead=0,i.size):0}getAllocatedSampleDataSize(){return this.samplesDataSize}getCodecs(){let t="";for(let e=0;e<this.moov.traks.length;e++){let i=this.moov.traks[e];e>0&&(t+=","),t+=i.mdia.minf.stbl.stsd.entries[0].getCodec()}return t}getTrexById(t){if(this.moov&&this.moov.mvex)for(let e=0;e<this.moov.mvex.trexs.length;e++){let i=this.moov.mvex.trexs[e];if(i.track_id===t)return i}}getTrackById(t){if(this.moov)for(let e=0;e<this.moov.traks.length;e++){let i=this.moov.traks[e];if(i.tkhd.track_id===t)return i}}flattenItemInfo(){let t=this.items,e=this.entity_groups,i=this.meta;if(i&&i.hdlr&&i.iinf){for(let e=0;e<i.iinf.item_infos.length;e++){let s=i.iinf.item_infos[e].item_ID;t[s]={id:s,name:i.iinf.item_infos[e].item_name,ref_to:[],content_type:i.iinf.item_infos[e].content_type,content_encoding:i.iinf.item_infos[e].content_encoding,item_uri_type:i.iinf.item_infos[e].item_uri_type,type:i.iinf.item_infos[e].item_type?i.iinf.item_infos[e].item_type:"mime",protection:i.iinf.item_infos[e].item_protection_index>0?i.ipro.protections[i.iinf.item_infos[e].item_protection_index-1]:void 0}}if(i.grpl)for(let t=0;t<i.grpl.boxes.length;t++){let s=i.grpl.boxes[t];e[s.group_id]={id:s.group_id,entity_ids:s.entity_ids,type:s.type}}if(i.iloc)for(let e=0;e<i.iloc.items.length;e++){let s=i.iloc.items[e],r=t[s.item_ID];0!==s.data_reference_index&&(f.warn("Item storage with reference to other files: not supported"),r.source=i.dinf.boxes[s.data_reference_index-1]),r.extents=[],r.size=0;for(let t=0;t<s.extents.length;t++)r.extents[t]={offset:s.extents[t].extent_offset+s.base_offset,length:s.extents[t].extent_length,alreadyRead:0},1===s.construction_method&&(r.extents[t].offset+=i.idat.start+i.idat.hdr_size),r.size+=r.extents[t].length}if(i.pitm&&(t[i.pitm.item_id].primary=!0),i.iref)for(let e=0;e<i.iref.references.length;e++){let s=i.iref.references[e];for(let e=0;e<s.references.length;e++)t[s.from_item_ID].ref_to.push({type:s.type,id:s.references[e]})}if(i.iprp)for(let s=0;s<i.iprp.ipmas.length;s++){let r=i.iprp.ipmas[s];for(let s=0;s<r.associations.length;s++){let a=r.associations[s],n=t[a.id]??e[a.id];if(n){void 0===n.properties&&(n.properties={boxes:[]});for(let t=0;t<a.props.length;t++){let e=a.props[t];if(e.property_index>0&&e.property_index-1<i.iprp.ipco.boxes.length){let t=i.iprp.ipco.boxes[e.property_index-1];n.properties[t.type]=t,n.properties.boxes.push(t)}}}}}}}getItem(t){if(!this.meta)return;let e=this.items[t];if(!e.data&&e.size)e.data=new Uint8Array(e.size),e.alreadyRead=0,this.itemsDataSize+=e.size,f.debug("ISOFile","Allocating item #"+t+" of size "+e.size+" (total: "+this.itemsDataSize+")");else if(e.alreadyRead===e.size)return e;for(let i=0;i<e.extents.length;i++){let s=e.extents[i];if(s.alreadyRead!==s.length){let r=this.stream.findPosition(!0,s.offset+s.alreadyRead,!1);if(!(r>-1))return;{let a=this.stream.buffers[r],n=a.byteLength-(s.offset+s.alreadyRead-a.fileStart);if(s.length-s.alreadyRead<=n)f.debug("ISOFile","Getting item #"+t+" extent #"+i+" data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-a.fileStart)+" read size: "+(s.length-s.alreadyRead)+" full extent size: "+s.length+" full item size: "+e.size+")"),l.memcpy(e.data.buffer,e.alreadyRead,a,s.offset+s.alreadyRead-a.fileStart,s.length-s.alreadyRead),(!this.parsingMdat||this.discardMdatData)&&(a.usedBytes+=s.length-s.alreadyRead),this.stream.logBufferLevel(),e.alreadyRead+=s.length-s.alreadyRead,s.alreadyRead=s.length;else{f.debug("ISOFile","Getting item #"+t+" extent #"+i+" partial data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-a.fileStart)+" read size: "+n+" full extent size: "+s.length+" full item size: "+e.size+")"),l.memcpy(e.data.buffer,e.alreadyRead,a,s.offset+s.alreadyRead-a.fileStart,n),s.alreadyRead+=n,e.alreadyRead+=n,(!this.parsingMdat||this.discardMdatData)&&(a.usedBytes+=n),this.stream.logBufferLevel();return}}}}if(e.alreadyRead===e.size)return e}releaseItem(t){let e=this.items[t];if(!e.data)return 0;this.itemsDataSize-=e.size,e.data=void 0,e.alreadyRead=0;for(let t=0;t<e.extents.length;t++)e.extents[t].alreadyRead=0;return e.size}processItems(t){for(let e in this.items){let i=this.items[e];this.getItem(i.id),t&&!i.sent&&(t(i),i.sent=!0,i.data=void 0)}}hasItem(t){for(let e in this.items){let i=this.items[e];if(i.name===t)return i.id}return -1}getMetaHandler(){if(this.meta)return this.meta.hdlr.handler}getPrimaryItem(){if(this.meta&&this.meta.pitm)return this.getItem(this.meta.pitm.item_id)}itemToFragmentedTrackFile({itemId:e}={}){let i;if(!(i=e?this.getItem(e):this.getPrimaryItem()))return;let s=new t;s.discardMdatData=!1;let r={type:i.type,description_boxes:i.properties.boxes};i.properties.ispe&&(r.width=i.properties.ispe.image_width,r.height=i.properties.ispe.image_height);let a=s.addTrack(r);if(a)return s.addSample(a,i.data),s}processIncompleteBox(t){if("mdat"===t.type){let e=new q(t.size);return(this.parsingMdat=e,this.boxes.push(e),this.mdats.push(e),e.start=t.start,e.hdr_size=t.hdr_size,e.original_size=t.original_size,this.stream.addUsedBytes(e.hdr_size),this.lastBoxStartPosition=e.start+e.size,this.stream.seek(e.start+e.size,!1,this.discardMdatData))?(this.transferMdatData(),this.parsingMdat=void 0,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=e.start+e.size,!1)}return("moov"===t.type&&(this.moovStartFound=!0,0===this.mdats.length&&(this.isProgressive=!0)),this.stream.mergeNextBuffer&&this.stream.mergeNextBuffer())?(this.nextParsePosition=this.stream.getEndPosition(),!0):(t.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+t.size:this.nextParsePosition=this.stream.getEndPosition(),!1)}hasIncompleteMdat(){return void 0!==this.parsingMdat}transferMdatData(t){let e=t??this.parsingMdat;if(this.discardMdatData)return void f.debug("ISOFile","Discarding 'mdat' data, not transferring it to the mdat box stream");if(!e)return void f.warn("ISOFile","Cannot transfer 'mdat' data, no mdat box is being parsed");let i=this.stream.findPosition(!0,e.start+e.hdr_size,!1),s=this.stream.findPosition(!0,e.start+e.size,!1);if(-1===i||-1===s)return void f.warn("ISOFile","Cannot transfer 'mdat' data, start or end buffer not found");e.stream=new m;for(let t=i;t<=s;t++){let r=this.stream.buffers[t],a=t===i?e.start+e.hdr_size-r.fileStart:0,n=t===s?e.start+e.size-r.fileStart:r.byteLength;if(n>a){f.debug("ISOFile","Transferring 'mdat' data from buffer #"+t+" ("+a+" to "+n+")");let i=n-a,s=new h(i),o=e.stream.getAbsoluteEndPosition();l.memcpy(s,0,r,a,i),s.fileStart=o,e.stream.insertBuffer(s),r.usedBytes+=i}}}processIncompleteMdat(){let t=this.parsingMdat;return this.stream.seek(t.start+t.size,!1,this.discardMdatData)?(f.debug("ISOFile","Found 'mdat' end in buffered data"),this.transferMdatData(),this.parsingMdat=void 0,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)}restoreParsePosition(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)}saveParsePosition(){this.lastBoxStartPosition=this.stream.getPosition()}updateUsedBytes(t,e){this.stream.addUsedBytes&&("mdat"===t.type?(this.stream.addUsedBytes(t.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(t.size-t.hdr_size)):this.stream.addUsedBytes(t.size))}
3addBox(t){return _.prototype.addBox.call(this,t)}init(t={}){let e=this.addBox(new tA);e.major_brand=t.brands&&t.brands[0]||"iso4",e.minor_version=0,e.compatible_brands=t.brands||["iso4"];let i=this.addBox(new tt);i.addBox(new to);let s=i.addBox(new tG);return s.timescale=t.timescale||600,s.rate=t.rate||65536,s.creation_time=0,s.modification_time=0,s.duration=t.duration||0,s.volume=256*!t.width,s.matrix=[65536,0,0,0,65536,0,0,0,0x40000000],s.next_track_id=1,this}addTrack(t={}){this.moov||this.init(t);let e=t||{};e.width=e.width||320,e.height=e.height||320,e.id=e.id||this.moov.mvhd.next_track_id,e.type=e.type||"avc1";let i=this.moov.addBox(new te);this.moov.mvhd.next_track_id=e.id+1;let s=i.addBox(new e2);s.flags=7,s.creation_time=0,s.modification_time=0,s.track_id=e.id,s.duration=e.duration||0,s.layer=e.layer||0,s.alternate_group=0,s.volume=1,s.matrix=[65536,0,0,0,65536,0,0,0,0x40000000],s.width=e.width<<16,s.height=e.height<<16;let r=i.addBox(new ts),a=r.addBox(new tF);a.creation_time=0,a.modification_time=0,a.timescale=e.timescale||1,a.duration=e.media_duration||0,a.language=e.language||"und";let n=r.addBox(new tP);n.handler=e.hdlr||"vide",n.name=e.name||"Track created with MP4Box.js",r.addBox(new tI).extended_language=e.language||"fr-FR";let o=r.addBox(new tr),h=I.sampleEntry[e.type];if(!h)return;let d=new h;if(d.data_reference_index=1,d instanceof R){let t=o.addBox(new e4);t.graphicsmode=0,t.opcolor=[0,0,0],d.width=e.width,d.height=e.height,d.horizresolution=4718592,d.vertresolution=4718592,d.frame_count=1,d.compressorname=e.type+" Compressor",d.depth=24,e.avcDecoderConfigRecord?d.addBox(new G(e.avcDecoderConfigRecord.byteLength)).parse(new l(e.avcDecoderConfigRecord)):e.hevcDecoderConfigRecord&&d.addBox(new tT(e.hevcDecoderConfigRecord.byteLength)).parse(new l(e.hevcDecoderConfigRecord))}
3else d instanceof O?(o.addBox(new eW).balance=e.balance||0,d.channel_count=e.channel_count||2,d.samplesize=e.samplesize||16,d.samplerate=e.samplerate||65536):d instanceof M?o.addBox(new Q):d instanceof L?(o.addBox(new eY),d instanceof eR&&(d.namespace=e.namespace||"nonamespace",d.schema_location=e.schema_location||"",d.auxiliary_mime_types=e.auxiliary_mime_types||"")):o.addBox(new Y);e.description&&d.addBox.call(d,e.description),e.description_boxes&&e.description_boxes.forEach(function(t){d.addBox.call(d,t)});let c=o.addBox(new ta).addBox(new tz),u=new e8;u.flags=1,c.addEntry(u);let p=o.addBox(new tn);p.addBox(new eJ).addEntry(d);let f=p.addBox(new eZ);f.sample_counts=[],f.sample_deltas=[];let m=p.addBox(new eK);m.first_chunk=[],m.samples_per_chunk=[],m.sample_description_index=[],p.addBox(new eQ).chunk_offsets=[],p.addBox(new eX).sample_sizes=[];let _=this.moov.mvex.addBox(new e3);return _.track_id=e.id,_.default_sample_description_index=e.default_sample_description_index||1,_.default_sample_duration=e.default_sample_duration||0,_.default_sample_size=e.default_sample_size||0,_.default_sample_flags=e.default_sample_flags||0,this.buildTrakSampleLists(i),e.id}addSample(t,e,{sample_description_index:i,duration:s=1,cts:r=0,dts:a=0,is_sync:n=!1,is_leading:o=0,depends_on:h=0,is_depended_on:d=0,has_redundancy:l=0,degradation_priority:c=0,subsamples:u,offset:p=0}={}){let f=this.getTrackById(t);if(void 0===f)return;let m=i?i-1:0,_={number:f.samples.length,track_id:f.tkhd.track_id,timescale:f.mdia.mdhd.timescale,description_index:m,description:f.mdia.minf.stbl.stsd.entries[m],data:e,size:e.byteLength,alreadyRead:e.byteLength,duration:s,cts:r,dts:a,is_sync:n,is_leading:o,depends_on:h,is_depended_on:d,has_redundancy:l,degradation_priority:c,offset:p,subsamples:u};f.samples.push(_),f.samples_size+=_.size,f.samples_duration+=_.duration,void 0===f.first_dts&&(f.first_dts=a),this.processSamples();let g=this.addBox(this.createMoof([_]));return g.computeSize(),g.trafs[0].truns[0].data_offset=g.size+8,this.addBox(new q).data=new Uint8Array(e),_}createMoof(t){if(0===t.length)return;if(t.some(e=>e.track_id!==t[0].track_id))throw Error("Cannot create moof for samples from different tracks: "+t.map(t=>t.track_id).join(", "));let e=t[0].track_id,i=this.getTrackById(e);if(!i)throw Error("Cannot create moof for non-existing track: "+e);let s=new th;s.addBox(new tV).sequence_number=++this.nextMoofNumber;let r=s.addBox(new td),a=r.addBox(new e1);a.track_id=e,a.flags=131072,r.addBox(new e0).baseMediaDecodeTime=t[0].dts-(i.first_dts||0);let n=r.addBox(new e6);for(let e of(n.flags=3841,n.data_offset=0,n.first_sample_flags=0,n.sample_count=t.length,t)){let t=0;t=e.is_sync?0x2000000:65536,n.sample_duration.push(e.duration),n.sample_size.push(e.size),n.sample_flags.push(t),n.sample_composition_time_offset.push(e.cts-e.dts)}return s}print(t){t.indent="";for(let e=0;e<this.boxes.length;e++)this.boxes[e]&&this.boxes[e].print(t)}},e9={};o(e9,{Descriptor:()=>it,ES_Descriptor:()=>ie,MPEG4DescriptorParser:()=>ih});var it=class t{constructor(t,e){this.tag=t,this.size=e,this.descs=[]}parse(t){this.data=t.readUint8Array(this.size)}findDescriptor(t){for(let e=0;e<this.descs.length;e++)if(this.descs[e].tag===t)return this.descs[e]}parseOneDescriptor(e){let i=0,s=e.readUint8(),r=e.readUint8();for(;128&r;)i=(i<<7)+(127&r),r=e.readUint8();i=(i<<7)+(127&r),f.debug("Descriptor","Found "+(io[s]||"Descriptor "+s)+", size "+i+" at position "+e.getPosition());let a=io[s]?new ia[io[s]](i):new t(i);return a.parse(e),a}parseRemainingDescriptors(t){let e=t.getPosition();for(;t.getPosition()<e+this.size;){let e=this.parseOneDescriptor?.(t);this.descs.push(e)}}},ie=class extends it{constructor(t){super(3,t)}parse(t){if(this.ES_ID=t.readUint16(),this.flags=t.readUint8(),this.size-=3,128&this.flags?(this.dependsOn_ES_ID=t.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,64&this.flags){let e=t.readUint8();this.URL=t.readString(e),this.size-=e+1}else this.URL="";32&this.flags?(this.OCR_ES_ID=t.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(t)}getOTI(){let t=this.findDescriptor(4);return t?t.oti:0}getAudioConfig(){let t=this.findDescriptor(4);if(!t)return;let e=t.findDescriptor(5);if(e&&e.data){let t=(248&e.data[0])>>3;
3return 31===t&&e.data.length>=2&&(t=32+((7&e.data[0])<<3)+((224&e.data[1])>>5)),t}}},ii=class extends it{constructor(t){super(4,t)}parse(t){this.oti=t.readUint8(),this.streamType=t.readUint8(),this.upStream=(this.streamType>>1&1)!=0,this.streamType=this.streamType>>>2,this.bufferSize=t.readUint24(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32(),this.size-=13,this.parseRemainingDescriptors(t)}},is=class extends it{constructor(t){super(5,t)}},ir=class extends it{constructor(t){super(6,t)}},ia={Descriptor:it,ES_Descriptor:ie,DecoderConfigDescriptor:ii,DecoderSpecificInfo:is,SLConfigDescriptor:ir},io={3:"ES_Descriptor",4:"DecoderConfigDescriptor",5:"DecoderSpecificInfo",6:"SLConfigDescriptor"},ih=class{constructor(){this.parseOneDescriptor=it.prototype.parseOneDescriptor}getDescriptorName(t){return io[t]}},id={};o(id,{CoLLBox:()=>iw,ItemContentIDPropertyBox:()=>rM,OpusSampleEntry:()=>ev,SmDmBox:()=>sN,a1lxBox:()=>il,a1opBox:()=>ic,ac_3SampleEntry:()=>eS,ac_4SampleEntry:()=>eU,aebrBox:()=>iV,afbrBox:()=>iG,albcBox:()=>iq,alstSampleGroupEntry:()=>rd,altrBox:()=>ij,auxCBox:()=>iu,av01SampleEntry:()=>t3,av1CBox:()=>t$,avc1SampleEntry:()=>tZ,avc2SampleEntry:()=>t0,avc3SampleEntry:()=>t1,avc4SampleEntry:()=>t2,avcCBox:()=>G,avllSampleGroupEntry:()=>rl,avs3SampleEntry:()=>ep,avssSampleGroupEntry:()=>rc,brstBox:()=>i$,btrtBox:()=>ip,bxmlBox:()=>X,ccstBox:()=>im,cdefBox:()=>i_,clapBox:()=>ig,clefBox:()=>sB,clliBox:()=>ix,cmexBox:()=>ib,cminBox:()=>iy,cmpdBox:()=>iS,co64Box:()=>iU,colrBox:()=>tK,coviBox:()=>ik,cprtBox:()=>iE,cschBox:()=>iz,cslgBox:()=>iI,cttsBox:()=>iA,dOpsBox:()=>iL,dac3Box:()=>iP,dataBox:()=>sk,dav1SampleEntry:()=>t6,dec3Box:()=>iT,dfLaBox:()=>iF,dimmBox:()=>iC,dinfBox:()=>ta,dmax:()=>iM,dmedBox:()=>iD,dobrBox:()=>iW,drefBox:()=>tz,drepBox:()=>iH,dtrtSampleGroupEntry:()=>ru,dvh1SampleEntry:()=>es,dvheSampleEntry:()=>er,ec_3SampleEntry:()=>ew,edtsBox:()=>ti,elngBox:()=>tI,elstBox:()=>iR,emsgBox:()=>iO,encaSampleEntry:()=>eP,encmSampleEntry:()=>eD,encsSampleEntry:()=>eF,enctSampleEntry:()=>eM,encuSampleEntry:()=>eT,encvSampleEntry:()=>eA,enofBox:()=>sE,eqivBox:()=>iQ,esdsBox:()=>tW,etypBox:()=>tk,fLaCSampleEntry:()=>eI,favcBox:()=>iY,fielBox:()=>i8,fobrBox:()=>iK,freeBox:()=>$,frmaBox:()=>i4,ftypBox:()=>tA,grplBox:()=>tv,hdlrBox:()=>tP,hev1SampleEntry:()=>t7,hev2SampleEntry:()=>t9,hinfBox:()=>tf,hmhdBox:()=>Q,hntiBox:()=>tp,hvc1SampleEntry:()=>t4,hvc2SampleEntry:()=>t5,hvcCBox:()=>tT,hvt1SampleEntry:()=>et,iaugBox:()=>iJ,idatBox:()=>j,iinfBox:()=>tD,ilocBox:()=>tL,ilstBox:()=>sz,imirBox:()=>i5,infeBox:()=>tM,iodsBox:()=>K,ipcoBox:()=>tw,ipmaBox:()=>i7,iproBox:()=>Z,iprpBox:()=>tU,irefBox:()=>tR,irotBox:()=>i9,ispeBox:()=>st,itaiBox:()=>se,j2kHBox:()=>tB,j2kiSampleEntry:()=>ef,keysBox:()=>sI,kindBox:()=>si,levaBox:()=>ss,lhe1SampleEntry:()=>ee,lhv1SampleEntry:()=>ei,lhvCBox:()=>sr,lselBox:()=>sa,m4aeSampleEntry:()=>ey,maxrBox:()=>sn,mdatBox:()=>q,mdcvBox:()=>sh,mdhdBox:()=>tF,mdiaBox:()=>ts,mecoBox:()=>tu,mehdBox:()=>tC,metaBox:()=>tN,mettSampleEntry:()=>tq,metxSampleEntry:()=>tj,mfhdBox:()=>tV,mfraBox:()=>tc,mfroBox:()=>sd,mha1SampleEntry:()=>eB,mha2SampleEntry:()=>ek,mhm1SampleEntry:()=>eE,mhm2SampleEntry:()=>ez,minfBox:()=>tr,mjp2SampleEntry:()=>em,mjpgSampleEntry:()=>e_,moofBox:()=>th,moovBox:()=>tt,mp4aSampleEntry:()=>eb,mp4sSampleEntry:()=>eC,mp4vSampleEntry:()=>ex,mskCBox:()=>sl,msrcTrackGroupTypeBox:()=>s5,mvexBox:()=>to,mvhdBox:()=>tG,mvifSampleGroupEntry:()=>rp,nmhdBox:()=>Y,npckBox:()=>sc,numpBox:()=>su,padbBox:()=>sf,panoBox:()=>iX,paspBox:()=>sm,paylBox:()=>s_,paytBox:()=>sg,pdinBox:()=>sx,piffLsmBox:()=>rI,piffPsshBox:()=>rA,piffSencBox:()=>rP,piffTencBox:()=>rT,piffTfrfBox:()=>rF,piffTfxdBox:()=>rC,pitmBox:()=>tO,pixiBox:()=>sb,pmaxBox:()=>sy,povdBox:()=>tE,prdiBox:()=>sS,prfrBox:()=>sU,prftBox:()=>sw,prgrBox:()=>i3,profBox:()=>sA,prolSampleGroupEntry:()=>rf,psshBox:()=>sv,pymdBox:()=>i6,rapSampleGroupEntry:()=>rm,rashSampleGroupEntry:()=>r_,resvSampleEntry:()=>eL,rinfBox:()=>tx,rollSampleGroupEntry:()=>rg,rtp_Box:()=>sF,saioBox:()=>sC,saizBox:()=>sM,sbgpBox:()=>eG,sbpmBox:()=>sL,sbttSampleEntry:()=>eH,schiBox:()=>tb,schmBox:()=>sH,scifSampleGroupEntry:()=>rx,scnmSampleGroupEntry:()=>rb,sdp_Box:()=>sR,sdtpBox:()=>eq,seigSampleGroupEntry:()=>ry,sencBox:()=>sO,sgpdBox:()=>ej,sidxBox:()=>e$,sinfBox:()=>tg,skipBox:()=>W,slidBox:()=>iZ,smhdBox:()=>eW,sratBox:()=>sV,ssixBox:()=>sG,stblBox:()=>tn,stcoBox:()=>
3eQ,stdpBox:()=>sq,sterBox:()=>i0,sthdBox:()=>eY,stppSampleEntry:()=>eR,strdBox:()=>t_,striBox:()=>sj,strkBox:()=>tm,stsaSampleGroupEntry:()=>rS,stscBox:()=>eK,stsdBox:()=>eJ,stsgBox:()=>s$,stshBox:()=>sW,stssBox:()=>sQ,stszBox:()=>eX,sttsBox:()=>eZ,stviBox:()=>sY,stxtSampleEntry:()=>eO,stypBox:()=>sK,stz2Box:()=>sJ,subsBox:()=>sX,syncSampleGroupEntry:()=>rU,taicBox:()=>sZ,taptBox:()=>sP,teleSampleGroupEntry:()=>rw,tencBox:()=>s0,tfdtBox:()=>e0,tfhdBox:()=>e1,tfraBox:()=>s1,tkhdBox:()=>e2,tmaxBox:()=>s2,tminBox:()=>s3,totlBox:()=>s6,tpayBox:()=>s8,tpylBox:()=>s4,trafBox:()=>td,trakBox:()=>te,trefBox:()=>s7,trepBox:()=>s9,trexBox:()=>e3,trgrBox:()=>ty,trpyBox:()=>rt,trunBox:()=>e6,tsasSampleGroupEntry:()=>rv,tsclSampleGroupEntry:()=>rB,tselBox:()=>re,tsynBox:()=>i1,tx3gSampleEntry:()=>eN,txtcBox:()=>ri,tycoBox:()=>rs,udesBox:()=>rr,udtaBox:()=>tS,uncCBox:()=>ra,uncvSampleEntry:()=>eg,urlBox:()=>e8,urnBox:()=>rn,viprSampleGroupEntry:()=>rk,vmhdBox:()=>e4,vp08SampleEntry:()=>ec,vp09SampleEntry:()=>eu,vpcCBox:()=>tQ,vttCBox:()=>ro,vttcBox:()=>tl,vvc1SampleEntry:()=>en,vvcCBox:()=>tY,vvcNSampleEntry:()=>ed,vvi1SampleEntry:()=>eo,vvnCBox:()=>rh,vvs1SampleEntry:()=>eh,waveBox:()=>sT,wbbrBox:()=>i2,wvttSampleEntry:()=>eV,xmlBox:()=>J});var il=class extends _{constructor(){super(...arguments),this.box_name="AV1LayeredImageIndexingProperty"}static{this.fourcc="a1lx"}parse(t){let e=((1&(1&t.readUint8()))+1)*16;this.layer_size=[];for(let i=0;i<3;i++)16===e?this.layer_size[i]=t.readUint16():this.layer_size[i]=t.readUint32()}},ic=class extends _{constructor(){super(...arguments),this.box_name="OperatingPointSelectorProperty"}static{this.fourcc="a1op"}parse(t){this.op_index=t.readUint8()}},iu=class extends g{constructor(){super(...arguments),this.box_name="AuxiliaryTypeProperty"}static{this.fourcc="auxC"}parse(t){this.parseFullHeader(t),this.aux_type=t.readCString();let e=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=t.readUint8Array(e)}},ip=class extends _{constructor(){super(...arguments),this.box_name="BitRateBox"}static{this.fourcc="btrt"}parse(t){this.bufferSizeDB=t.readUint32(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32()}},im=class extends g{constructor(){super(...arguments),this.box_name="CodingConstraintsBox"}static{this.fourcc="ccst"}
3parse(t){this.parseFullHeader(t);let e=t.readUint8();this.all_ref_pics_intra=(128&e)==128,this.intra_pred_used=(64&e)==64,this.max_ref_per_pic=(63&e)>>2,t.readUint24()}},i_=class extends _{constructor(){super(...arguments),this.box_name="ComponentDefinitionBox"}static{this.fourcc="cdef"}parse(t){this.channel_count=t.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[];for(let e=0;e<this.channel_count;e++)this.channel_indexes.push(t.readUint16()),this.channel_types.push(t.readUint16()),this.channel_associations.push(t.readUint16())}},ig=class extends _{constructor(){super(...arguments),this.box_name="CleanApertureBox"}static{this.fourcc="clap"}parse(t){this.cleanApertureWidthN=t.readUint32(),this.cleanApertureWidthD=t.readUint32(),this.cleanApertureHeightN=t.readUint32(),this.cleanApertureHeightD=t.readUint32(),this.horizOffN=t.readUint32(),this.horizOffD=t.readUint32(),this.vertOffN=t.readUint32(),this.vertOffD=t.readUint32()}},ix=class extends _{constructor(){super(...arguments),this.box_name="ContentLightLevelBox"}static{this.fourcc="clli"}parse(t){this.max_content_light_level=t.readUint16(),this.max_pic_average_light_level=t.readUint16()}},ib=class extends _{constructor(){super(...arguments),this.box_name="CameraExtrinsicMatrixProperty"}static{this.fourcc="cmex"}parse(t){1&this.flags&&(this.pos_x=t.readInt32()),2&this.flags&&(this.pos_y=t.readInt32()),4&this.flags&&(this.pos_z=t.readInt32()),8&this.flags&&(0===this.version?16&this.flags?(this.quat_x=t.readInt32(),this.quat_y=t.readInt32(),this.quat_z=t.readInt32()):(this.quat_x=t.readInt16(),this.quat_y=t.readInt16(),this.quat_z=t.readInt16()):this.version),32&this.flags&&(this.id=t.readUint32())}},iy=class extends _{constructor(){super(...arguments),this.box_name="CameraIntrinsicMatrixProperty"}static{this.fourcc="cmin"}parse(t){this.focal_length_x=t.readInt32(),this.principal_point_x=t.readInt32(),this.principal_point_y=t.readInt32(),1&this.flags&&(this.focal_length_y=t.readInt32(),this.skew_factor=t.readInt32())}},iS=class extends _{constructor(){super(...arguments),this.box_name="ComponentDefinitionBox"}static{this.fourcc="cmpd"}parse(t){this.component_count=t.readUint32(),this.component_types=[],this.component_type_urls=[];for(let e=0;e<this.component_count;e++){let e=t.readUint16();this.component_types.push(e),e>=32768&&this.component_type_urls.push(t.readCString())}}},iU=class extends g{constructor(){super(...arguments),this.box_name="ChunkLargeOffsetBox"}static{this.fourcc="co64"}parse(t){this.parseFullHeader(t);let e=t.readUint32();if(this.chunk_offsets=[],0===this.version)for(let i=0;i<e;i++)this.chunk_offsets.push(t.readUint64())}write(t){this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(t),t.writeUint32(this.chunk_offsets.length);for(let e=0;e<this.chunk_offsets.length;e++)t.writeUint64(this.chunk_offsets[e])}},iw=class extends g{constructor(){super(...arguments),this.box_name="ContentLightLevelBox"}static{this.fourcc="CoLL"}parse(t){this.parseFullHeader(t),this.maxCLL=t.readUint16(),this.maxFALL=t.readUint16()}},iv=class{toString(){let t="centre_azimuth: ";return t+=this.centre_azimuth,t+=" (",t+=152587890625e-16*this.centre_azimuth,t+="°), centre_elevation: ",t+=this.centre_elevation,t+=" (",t+=152587890625e-16*this.centre_elevation,t+="°), centre_tilt: ",t+=this.centre_tilt,t+=" (",t+=152587890625e-16*this.centre_tilt,t+="°)",this.range_included_flag&&(t+=", azimuth_range: ",t+=this.azimuth_range,t+=" (",t+=152587890625e-16*this.azimuth_range,t+="°), elevation_range: ",t+=this.elevation_range,t+=" (",t+=152587890625e-16*this.elevation_range,t+="°)"),this.interpolate_included_flag&&(t+=", interpolate: ",t+=this.interpolate),t}},iB=class{toString(){let t="";return this.view_idc&&(t+="view_idc: ",t+=this.view_idc,t+=", "),t+="sphere_region: {",t+=this.sphere_region,t+="}"}},ik=class extends g{constructor(){super(...arguments),this.box_name="CoverageInformationBox"}static{this.fourcc="covi"}parse(t){this.parseFullHeader(t),this.coverage_shape_type=t.readUint8();let e=t.readUint8(),i=t.readInt8(),s=128&i;s&&(this.default_view_idc=(96&i)>>5),this.coverage_regions=[];for(let i=0;i<e;i++){let e=new iB;s&&(e.view_idc=t.readUint8()>>6),e.sphere_region=this.parseSphereRegion(t,!0,!0),this.coverage_regions.push(e)}}
3parseSphereRegion(t,e,i){let s=new iv;return s.centre_azimuth=t.readInt32(),s.centre_elevation=t.readInt32(),s.centre_tilt=t.readInt32(),s.range_included_flag=e,e&&(s.azimuth_range=t.readUint32(),s.elevation_range=t.readUint32()),s.interpolate_included_flag=i,i&&(s.interpolate=(128&t.readUint8())==128),s}},iE=class extends g{constructor(){super(...arguments),this.box_name="CopyrightBox"}static{this.fourcc="cprt"}parse(t){this.parseFullHeader(t),this.parseLanguage(t),this.notice=t.readCString()}},iz=class extends g{constructor(){super(...arguments),this.box_name="CompatibleSchemeTypeBox"}static{this.fourcc="csch"}parse(t){this.parseFullHeader(t),this.scheme_type=t.readString(4),this.scheme_version=t.readUint32(),1&this.flags&&(this.scheme_uri=t.readCString())}},iI=class extends g{constructor(){super(...arguments),this.box_name="CompositionToDecodeBox"}static{this.fourcc="cslg"}parse(t){this.parseFullHeader(t),0===this.version?(this.compositionToDTSShift=t.readInt32(),this.leastDecodeToDisplayDelta=t.readInt32(),this.greatestDecodeToDisplayDelta=t.readInt32(),this.compositionStartTime=t.readInt32(),this.compositionEndTime=t.readInt32()):1===this.version&&(this.compositionToDTSShift=t.readInt64(),this.leastDecodeToDisplayDelta=t.readInt64(),this.greatestDecodeToDisplayDelta=t.readInt64(),this.compositionStartTime=t.readInt64(),this.compositionEndTime=t.readInt64())}write(t){this.version=0,(this.compositionToDTSShift>0x7fffffff||this.leastDecodeToDisplayDelta>0x7fffffff||this.greatestDecodeToDisplayDelta>0x7fffffff||this.compositionStartTime>0x7fffffff||this.compositionEndTime>0x7fffffff)&&(this.version=1),this.flags=0,0===this.version?(this.size=20,this.writeHeader(t),t.writeInt32(this.compositionToDTSShift),t.writeInt32(this.leastDecodeToDisplayDelta),t.writeInt32(this.greatestDecodeToDisplayDelta),t.writeInt32(this.compositionStartTime),t.writeInt32(this.compositionEndTime)):1===this.version&&(this.size=40,this.writeHeader(t),t.writeInt64(this.compositionToDTSShift),t.writeInt64(this.leastDecodeToDisplayDelta),t.writeInt64(this.greatestDecodeToDisplayDelta),t.writeInt64(this.compositionStartTime),t.writeInt64(this.compositionEndTime))}},iA=class extends g{constructor(){super(...arguments),this.box_name="CompositionOffsetBox"}static{this.fourcc="ctts"}parse(t){this.parseFullHeader(t);let e=t.readUint32();if(this.sample_counts=[],this.sample_offsets=[],0===this.version)for(let i=0;i<e;i++){this.sample_counts.push(t.readUint32());let e=t.readInt32();e<0&&f.warn("BoxParser","ctts box uses negative values without using version 1"),this.sample_offsets.push(e)}else if(1===this.version)for(let i=0;i<e;i++)this.sample_counts.push(t.readUint32()),this.sample_offsets.push(t.readInt32())}write(t){this.version=+!!this.sample_offsets.some(t=>t<0),this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length);for(let e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),1===this.version?t.writeInt32(this.sample_offsets[e]):t.writeUint32(this.sample_offsets[e])}unpack(t){let e=0;for(let i=0;i<this.sample_counts.length;i++)for(let s=0;s<this.sample_counts[i];s++)t[e].pts=t[e].dts+this.sample_offsets[i],e++}},iP=class extends _{constructor(){super(...arguments),this.box_name="AC3SpecificBox"}static{this.fourcc="dac3"}parse(t){let e=t.readUint8(),i=t.readUint8(),s=t.readUint8();this.fscod=e>>6,this.bsid=e>>1&31,this.bsmod=(1&e)<<2|i>>6&3,this.acmod=i>>3&7,this.lfeon=i>>2&1,this.bit_rate_code=3&i|s>>5&7}},iT=class extends _{constructor(){super(...arguments),this.box_name="EC3SpecificBox"}static{this.fourcc="dec3"}parse(t){let e=t.readUint16();this.data_rate=e>>3,this.num_ind_sub=7&e,this.ind_subs=[];for(let e=0;e<this.num_ind_sub+1;e++){let e=t.readUint8(),i=t.readUint8(),s=t.readUint8(),r={fscod:e>>6,bsid:e>>1&31,bsmod:(1&e)<<4|i>>4&15,acmod:i>>1&7,lfeon:1&i,num_dep_sub:s>>1&15};this.ind_subs.push(r),r.num_dep_sub>0&&(r.chan_loc=(1&s)<<8|t.readUint8())}}},iF=class extends g{constructor(){super(...arguments),this.box_name="FLACSpecificBox"}static{this.fourcc="dfLa"}parse(t){let e;this.parseFullHeader(t);let i=[],s=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];do{let r=Math.min(127&(e=t.readUint8()),s.length-1);r?t.readUint8Array(t.readUint24()):(t.readUint8Array(13),this.samplerate=t.readUint32()>>12,t.readUint8Array(20)),i.push(s[r])}while(128&e)this.numMetadataBlocks=i.length+" ("+i.join(", ")+")"}},iC=class extends _{constructor(){super(...arguments),this.box_name="hintimmediateBytesSent"}static{this.fourcc="dimm"}parse(t){this.bytessent=t.readUint64()}},iM=class extends _{constructor(){super(...arguments),this.box_name="hintlongestpacket"}static{this.fourcc="dmax"}parse(t){this.time=t.readUint32()}},iD=class extends _{constructor(){super(...arguments),this.box_name="hintmediaBytesSent"}static{this.fourcc="dmed"}parse(t){this.bytessent=t.readUint64()}},iL=class extends _{constructor(){super(...arguments),this.box_name="OpusSpecificBox"}static{this.fourcc="dOps"}parse(t){if(this.Version=t.readUint8(),this.OutputChannelCount=t.readUint8(),this.PreSkip=t.readUint16(),this.InputSampleRate=t.readUint32(),this.OutputGain=t.readInt16(),this.ChannelMappingFamily=t.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=t.readUint8(),this.CoupledCount=t.readUint8(),this.ChannelMapping=[];for(let e=0;e<this.OutputChannelCount;e++)this.ChannelMapping[e]=t.readUint8()}}
3write(t){if(this.size=11,0!==this.ChannelMappingFamily&&(this.size+=2+this.OutputChannelCount),this.writeHeader(t),t.writeUint8(this.Version),t.writeUint8(this.OutputChannelCount),t.writeUint16(this.PreSkip),t.writeUint32(this.InputSampleRate),t.writeInt16(this.OutputGain),t.writeUint8(this.ChannelMappingFamily),0!==this.ChannelMappingFamily){t.writeUint8(this.StreamCount),t.writeUint8(this.CoupledCount);for(let e=0;e<this.OutputChannelCount;e++)t.writeUint8(this.ChannelMapping[e])}}},iH=class extends _{constructor(){super(...arguments),this.box_name="hintrepeatedBytesSent"}static{this.fourcc="drep"}parse(t){this.bytessent=t.readUint64()}},iR=class extends g{constructor(){super(...arguments),this.box_name="EditListBox"}static{this.fourcc="elst"}parse(t){this.parseFullHeader(t),this.entries=[];let e=t.readUint32();for(let i=0;i<e;i++){let e={segment_duration:1===this.version?t.readUint64():t.readUint32(),media_time:1===this.version?t.readInt64():t.readInt32(),media_rate_integer:t.readInt16(),media_rate_fraction:t.readInt16()};this.entries.push(e)}}write(t){let e=this.entries.some(t=>t.segment_duration>0xffffffff||t.media_time>0xffffffff)||1===this.version;this.version=+!!e,this.size=4+12*this.entries.length,this.size+=e?8*this.entries.length:0,this.writeHeader(t),t.writeUint32(this.entries.length);for(let i=0;i<this.entries.length;i++){let s=this.entries[i];e?(t.writeUint64(s.segment_duration),t.writeInt64(s.media_time)):(t.writeUint32(s.segment_duration),t.writeInt32(s.media_time)),t.writeInt16(s.media_rate_integer),t.writeInt16(s.media_rate_fraction)}}},iO=class extends g{constructor(){super(...arguments),this.box_name="EventMessageBox"}static{this.fourcc="emsg"}parse(t){this.parseFullHeader(t),1===this.version?(this.timescale=t.readUint32(),this.presentation_time=t.readUint64(),this.event_duration=t.readUint32(),this.id=t.readUint32(),this.scheme_id_uri=t.readCString(),this.value=t.readCString()):(this.scheme_id_uri=t.readCString(),this.value=t.readCString(),this.timescale=t.readUint32(),this.presentation_time_delta=t.readUint32(),this.event_duration=t.readUint32(),this.id=t.readUint32());let e=this.size-this.hdr_size-(16+(this.scheme_id_uri.length+1)+(this.value.length+1));1===this.version&&(e-=4),this.message_data=t.readUint8Array(e)}write(t){this.version=0,this.flags=0,this.size=16+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(t),t.writeCString(this.scheme_id_uri),t.writeCString(this.value),t.writeUint32(this.timescale),t.writeUint32(this.presentation_time_delta),t.writeUint32(this.event_duration),t.writeUint32(this.id),t.writeUint8Array(this.message_data)}},iN=class extends g{parse(t){this.parseFullHeader(t),this.group_id=t.readUint32(),this.num_entities_in_group=t.readUint32(),this.entity_ids=[];for(let e=0;e<this.num_entities_in_group;e++){let e=t.readUint32();this.entity_ids.push(e)}}},iV=class extends iN{constructor(){super(...arguments),this.box_name="Auto exposure bracketing"}static{this.fourcc="aebr"}},iG=class extends iN{constructor(){super(...arguments),this.box_name="Flash exposure information"}static{this.fourcc="afbr"}},iq=class extends iN{constructor(){super(...arguments),this.box_name="Album collection"}static{this.fourcc="albc"}},ij=class extends iN{constructor(){super(...arguments),this.box_name="Alternative entity"}static{this.fourcc="altr"}},i$=class extends iN{constructor(){super(...arguments),this.box_name="Burst image"}static{this.fourcc="brst"}},iW=class extends iN{constructor(){super(...arguments),this.box_name="Depth of field bracketing"}static{this.fourcc="dobr"}},iQ=class extends iN{constructor(){super(...arguments),this.box_name="Equivalent entity"}static{this.fourcc="eqiv"}},iY=class extends iN{constructor(){super(...arguments),this.box_name="Favorites collection"}static{this.fourcc="favc"}},iK=class extends iN{constructor(){super(...arguments),this.box_name="Focus bracketing"}static{this.fourcc="fobr"}},iJ=class extends iN{constructor(){super(...arguments),this.box_name="Image item with an audio track"}static{this.fourcc="iaug"}},iX=class extends iN{constructor(){super(...arguments),this.box_name="Panorama"}static{this.fourcc="pano"}},iZ=class extends iN{constructor(){super(...arguments),this.box_name="Slideshow"}static{this.fourcc="slid"}},i0=class extends iN{constructor(){super(...arguments),this.box_name="Stereo"}static{this.fourcc="ster"}},i1=class extends iN{constructor(){super(...arguments),this.box_name="Time-synchronized capture"}static{this.fourcc="tsyn"}},i2=class extends iN{constructor(){super(...arguments),this.box_name="White balance bracketing"}static{this.fourcc="wbbr"}},i3=class extends iN{constructor(){super(...arguments),this.box_name="Progressive rendering"}static{this.fourcc="prgr"}},i6=class extends iN{constructor(){super(...arguments),this.box_name="Image pyramid"}static{this.fourcc="pymd"}parse(t){this.parseFullHeader(t),this.group_id=t.readUint32(),this.num_entities_in_group=t.readUint32(),this.entity_ids=[];for(let e=0;e<this.num_entities_in_group;e++){let e=t.readUint32();this.entity_ids.push(e)}this.tile_size_x=t.readUint16(),this.tile_size_y=t.readUint16(),this.layer_binning=[],this.tiles_in_layer_column_minus1=[],this.tiles_in_layer_row_minus1=[];for(let e=0;e<this.num_entities_in_group;e++)this.layer_binning[e]=t.readUint16(),this.tiles_in_layer_row_minus1[e]=t.readUint16(),this.tiles_in_layer_column_minus1[e]=t.readUint16()}},i8=class extends _{constructor(){super(...arguments),this.box_name="FieldHandlingBox"}static{this.fourcc="fiel"}parse(t){this.fieldCount=t.readUint8(),this.fieldOrdering=t.readUint8()}},i4=class extends _{constructor(){super(...arguments),this.box_name="OriginalFormatBox"}static{this.fourcc="frma"}parse(t){this.data_format=t.readString(4)}},i5=class extends _{constructor(){super(...arguments),this.box_name="ImageMirror"}static{this.fourcc="imir"}parse(t){let e=t.readUint8();this.reserved=e>>7,this.axis=1&e}},i7=class extends g{constructor(){super(...arguments),this.box_name="ItemPropertyAssociationBox"}static{this.fourcc="ipma"}parse(t){this.parseFullHeader(t);let e=t.readUint32();this.associations=[];for(let i=0;i<e;i++){let e=this.version<1?t.readUint16():t.readUint32(),i=[],s=t.readUint8();for(let e=0;e<s;e++){let e=t.readUint8();i.push({essential:(128&e)>>7==1,property_index:1&this.flags?(127&e)<<8|t.readUint8():127&e})}this.associations.push({id:e,props:i})}}},i9=class extends _{constructor(){super(...arguments),this.box_name="ImageRotation"}static{this.fourcc="irot"}parse(t){this.angle=3&t.readUint8()}},st=class extends g{constructor(){super(...arguments),this.box_name="ImageSpatialExtentsProperty"}static{this.fourcc="ispe"}parse(t){this.parseFullHeader(t),this.image_width=t.readUint32(),this.image_height=t.readUint32()}},se=class extends g{constructor(){super(...arguments),this.box_name="TAITimestampBox"}static{this.fourcc="itai"}parse(t){this.TAI_timestamp=t.readUint64();let e=t.readUint8();this.sychronization_state=e>>7&1,this.timestamp_generation_failure=e>>6&1,this.timestamp_is_modified=e>>5&1}},si=class extends g{constructor(){super(...arguments),this.box_name="KindBox"}static{this.fourcc="kind"}parse(t){this.parseFullHeader(t),this.schemeURI=t.readCString(),this.isEndOfBox(t)||(this.value=t.readCString())}write(t){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value?this.value.length+1:0),this.writeHeader(t),t.writeCString(this.schemeURI),this.value&&t.writeCString(this.value)}},ss=class extends g{constructor(){super(...arguments),this.box_name="LevelAssignmentBox"}static{this.fourcc="leva"}parse(t){this.parseFullHeader(t);let e=t.readUint8();this.levels=[];for(let i=0;i<e;i++){let e={};this.levels[i]=e,e.track_ID=t.readUint32();let s=t.readUint8();switch(e.padding_flag=s>>7,e.assignment_type=127&s,e.assignment_type){case 0:e.grouping_type=t.readString(4);break;case 1:e.grouping_type=t.readString(4),e.grouping_type_parameter=t.readUint32();break;case 2:case 3:break;case 4:e.sub_track_id=t.readUint32();break;default:f.warn("BoxParser",`Unknown level assignment type: ${e.assignment_type}`)}}}},sr=class extends _{constructor(){super(...arguments),this.box_name="LHEVCConfigurationBox"}static{this.fourcc="lhvC"}parse(t){this.configurationVersion=t.readUint8(),this.min_spatial_segmentation_idc=4095&t.readUint16(),this.parallelismType=3&t.readUint8();let e=t.readUint8();this.numTemporalLayers=(13&e)>>3,this.temporalIdNested=(4&e)>>2,this.lengthSizeMinusOne=3&e,this.nalu_arrays=[];let i=t.readUint8();for(let s=0;s<i;s++){let i=[];this.nalu_arrays.push(i),i.completeness=(128&(e=t.readUint8()))>>7,i.nalu_type=63&e;let s=t.readUint16();for(let e=0;e<s;e++){let e=t.readUint16();i.push({data:t.readUint8Array(e)})}}}},sa=class extends _{constructor(){super(...arguments),this.box_name="LayerSelectorProperty"}static{this.fourcc="lsel"}parse(t){this.layer_id=t.readUint16()}},sn=class extends _{constructor(){super(...arguments),this.box_name="hintmaxrate"}static{this.fourcc="maxr"}parse(t){this.period=t.readUint32(),this.bytes=t.readUint32()}},so=class{constructor(t,e){this.x=t,this.y=e}toString(){return"("+this.x+","+this.y+")"}},sh=class extends _{constructor(){super(...arguments),this.box_name="MasteringDisplayColourVolumeBox"}static{this.fourcc="mdcv"}parse(t){this.display_primaries=[],this.display_primaries[0]=new so(t.readUint16(),t.readUint16()),this.display_primaries[1]=new so(t.readUint16(),t.readUint16()),this.display_primaries[2]=new so(t.readUint16(),t.readUint16()),this.white_point=new so(t.readUint16(),t.readUint16()),this.max_display_mastering_luminance=t.readUint32(),this.min_display_mastering_luminance=t.readUint32()}},sd=class extends g{constructor(){super(...arguments),this.box_name="MovieFragmentRandomAccessOffsetBox"}static{this.fourcc="mfro"}parse(t){this.parseFullHeader(t),this._size=t.readUint32()}},sl=class extends g{constructor(){super(...arguments),this.box_name="MaskConfigurationProperty"}static{this.fourcc="mskC"}parse(t){this.parseFullHeader(t),this.bits_per_pixel=t.readUint8()}},sc=class extends _{constructor(){super(...arguments),this.box_name="hintPacketsSent"}static{this.fourcc="npck"}parse(t){this.packetssent=t.readUint32()}},su=class extends _{constructor(){super(...arguments),this.box_name="hintPacketsSent"}static{this.fourcc="nump"}parse(t){this.packetssent=t.readUint64()}},sp=class{constructor(t,e){this.pad1=t,this.pad2=e}},sf=class extends g{constructor(){super(...arguments),this.box_name="PaddingBits
3Box"}static{this.fourcc="padb"}parse(t){this.parseFullHeader(t);let e=t.readUint32();this.padbits=[];for(let i=0;i<Math.floor((e+1)/2);i++){let e=t.readUint8(),i=(112&e)>>4,s=7&e;this.padbits.push(new sp(i,s))}}},sm=class extends _{constructor(){super(...arguments),this.box_name="PixelAspectRatioBox"}static{this.fourcc="pasp"}parse(t){this.hSpacing=t.readUint32(),this.vSpacing=t.readUint32()}},s_=class extends _{constructor(){super(...arguments),this.box_name="CuePayloadBox"}static{this.fourcc="payl"}parse(t){this.text=t.readString(this.size-this.hdr_size)}},sg=class extends _{constructor(){super(...arguments),this.box_name="hintpayloadID"}static{this.fourcc="payt"}parse(t){this.payloadID=t.readUint32();let e=t.readUint8();this.rtpmap_string=t.readString(e)}},sx=class extends g{constructor(){super(...arguments),this.box_name="ProgressiveDownloadInfoBox",this.rate=[],this.initial_delay=[]}static{this.fourcc="pdin"}parse(t){this.parseFullHeader(t);let e=(this.size-this.hdr_size)/8;for(let i=0;i<e;i++)this.rate[i]=t.readUint32(),this.initial_delay[i]=t.readUint32()}},sb=class extends g{constructor(){super(...arguments),this.box_name="PixelInformationProperty"}static{this.fourcc="pixi"}parse(t){this.parseFullHeader(t),this.num_channels=t.readUint8(),this.bits_per_channels=[];for(let e=0;e<this.num_channels;e++)this.bits_per_channels[e]=t.readUint8()}},sy=class extends _{constructor(){super(...arguments),this.box_name="hintlargestpacket"}static{this.fourcc="pmax"}parse(t){this.bytes=t.readUint32()}},sS=class extends g{constructor(){super(...arguments),this.box_name="ProgressiveDerivedImageItemInformationProperty"}static{this.fourcc="prdi"}parse(t){if(this.parseFullHeader(t),this.step_count=t.readUint16(),this.item_count=[],2&this.flags)for(let e=0;e<this.step_count;e++)this.item_count[e]=t.readUint16()}},sU=class extends g{constructor(){super(...arguments),this.box_name="ProjectionFormatBox"}static{this.fourcc="prfr"}parse(t){this.parseFullHeader(t),this.projection_type=31&t.readUint8()}},sw=class extends g{constructor(){super(...arguments),this.box_name="ProducerReferenceTimeBox"}static{this.fourcc="prft"}parse(t){this.parseFullHeader(t),this.ref_track_id=t.readUint32(),this.ntp_timestamp=t.readUint64(),0===this.version?this.media_time=t.readUint32():this.media_time=t.readUint64()}},sv=class extends g{constructor(){super(...arguments),this.box_name="ProtectionSystemSpecificHeaderBox"}static{this.fourcc="pssh"}parse(t){if(this.parseFullHeader(t),this.system_id=P(t),this.kid=[],this.version>0){let e=t.readUint32();for(let i=0;i<e;i++)this.kid[i]=P(t)}let e=t.readUint32();e>0&&(this.protection_data=t.readUint8Array(e))}},sB=class extends g{constructor(){super(...arguments),this.box_name="TrackCleanApertureDimensionsBox"}static{this.fourcc="clef"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}},sk=class extends _{constructor(){super(...arguments),this.box_name="DataBox"}static{this.fourcc="data"}static{this.Types={RESERVED:0,UTF8:1,UTF16:2,SJIS:3,UTF8_SORT:4,UTF16_SORT:5,JPEG:13,PNG:14,BE_SIGNED_INT:21,BE_UNSIGNED_INT:22,BE_FLOAT32:23,BE_FLOAT64:24,BMP:27,QT_ATOM:28,BE_SIGNED_INT8:65,BE_SIGNED_INT16:66,BE_SIGNED_INT32:67,BE_FLOAT32_POINT:70,BE_FLOAT32_DIMENSIONS:71,BE_FLOAT32_RECT:72,BE_SIGNED_INT64:74,BE_UNSIGNED_INT8:75,BE_UNSIGNED_INT16:76,BE_UNSIGNED_INT32:77,BE_UNSIGNED_INT64:78,BE_FLOAT64_AFFINE_TRANSFORM:79}}parse(t){this.valueType=t.readUint32(),this.country=t.readUint16(),this.country>255&&(t.seek(t.getPosition()-2),this.countryString=t.readString(2)),this.language=t.readUint16(),this.language>255&&(t.seek(t.getPosition()-2),this.parseLanguage(t)),this.raw=t.readUint8Array(this.size-this.hdr_size-8),this.value=function(t,e){if(t===sk.Types.UTF8)return new TextDecoder("utf-8").decode(e);let i=new DataView(e.buffer);if(t===sk.Types.BE_UNSIGNED_INT)if(1===e.length)return i.getUint8(0);else if(2===e.length)return i.getUint16(0,!1);else if(4===e.length)return i.getUint32(0,!1);else if(8===e.length)return i.getBigUint64(0,!1);else throw Error("Unsupported ITIF_TYPE_BE_UNSIGNED_INT length "+e.length);if(t===sk.Types.BE_SIGNED_INT)if(1===e.length)return i.getInt8(0);else if(2===e.length)return i.getInt16(0,!1);else if(4===e.length)return i.getInt32(0,!1);else if(8===e.length)return i.getBigInt64(0,!1);else throw Error("Unsupported ITIF_TYPE_BE_SIGNED_INT length "+e.length);if(t===sk.Types.BE_FLOAT32)return i.getFloat32(0,!1);f.warn("DataBox","Unsupported or unimplemented itif data type: "+t)}(this.valueType,this.raw)}},sE=class extends g{constructor(){super(...arguments),this.box_name="TrackEncodedPixelsDimensionsBox"}static{this.fourcc="enof"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}},sz=class extends _{constructor(){super(...arguments),this.box_name="IlstBox"}static{this.fourcc="ilst"}parse(t){this.list={};let e=this.size-this.hdr_size;
3for(;e>0;){let i=t.readUint32(),s=t.readUint32(),r=T(t,!1,i-8);1===r.code&&(this.list[s]=r.box),e-=i}}},sI=class extends g{constructor(){super(...arguments),this.box_name="KeysBox"}static{this.fourcc="keys"}parse(t){this.parseFullHeader(t),this.count=t.readUint32(),this.keys={};for(let e=0;e<this.count;e++){let i=t.readUint32();this.keys[e+1]=t.readString(i-4)}}},sA=class extends g{constructor(){super(...arguments),this.box_name="TrackProductionApertureDimensionsBox"}static{this.fourcc="prof"}parse(t){this.parseFullHeader(t),this.width=t.readUint32(),this.height=t.readUint32()}},sP=class extends F{constructor(){super(...arguments),this.box_name="TrackApertureModeDimensionsBox",this.clefs=[],this.profs=[],this.enofs=[],this.subBoxNames=["clef","prof","enof"]}static{this.fourcc="tapt"}},sT=class extends F{constructor(){super(...arguments),this.box_name="siDecompressionParamBox"}static{this.fourcc="wave"}},sF=class extends _{constructor(){super(...arguments),this.box_name="rtpmoviehintinformation"}static{this.fourcc="rtp "}parse(t){this.descriptionformat=t.readString(4),this.sdptext=t.readString(this.size-this.hdr_size-4)}},sC=class extends g{constructor(){super(...arguments),this.box_name="SampleAuxiliaryInformationOffsetsBox"}static{this.fourcc="saio"}parse(t){this.parseFullHeader(t),1&this.flags&&(this.aux_info_type=t.readString(4),this.aux_info_type_parameter=t.readUint32());let e=t.readUint32();this.offset=[];for(let i=0;i<e;i++)0===this.version?this.offset[i]=t.readUint32():this.offset[i]=t.readUint64()}},sM=class extends g{constructor(){super(...arguments),this.box_name="SampleAuxiliaryInformationSizesBox"}static{this.fourcc="saiz"}parse(t){if(this.parseFullHeader(t),1&this.flags&&(this.aux_info_type=t.readString(4),this.aux_info_type_parameter=t.readUint32()),this.default_sample_info_size=t.readUint8(),this.sample_count=t.readUint32(),this.sample_info_size=[],0===this.default_sample_info_size)for(let e=0;e<this.sample_count;e++)this.sample_info_size[e]=t.readUint8()}},sD=class{constructor(t,e){this.bad_pixel_row=t,this.bad_pixel_column=e}toString(){return"[row: "+this.bad_pixel_row+", column: "+this.bad_pixel_column+"]"}},sL=class extends g{constructor(){super(...arguments),this.box_name="SensorBadPixelsMapBox"}static{this.fourcc="sbpm"}parse(t){this.parseFullHeader(t),this.component_count=t.readUint16(),this.component_index=[];for(let e=0;e<this.component_count;e++)this.component_index.push(t.readUint16());let e=t.readUint8();this.correction_applied=128==(128&e),this.num_bad_rows=t.readUint32(),this.num_bad_cols=t.readUint32(),this.num_bad_pixels=t.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[];for(let e=0;e<this.num_bad_rows;e++)this.bad_rows.push(t.readUint32());for(let e=0;e<this.num_bad_cols;e++)this.bad_columns.push(t.readUint32());for(let e=0;e<this.num_bad_pixels;e++){let e=t.readUint32(),i=t.readUint32();this.bad_pixels.push(new sD(e,i))}}},sH=class extends g{constructor(){super(...arguments),this.box_name="SchemeTypeBox"}static{this.fourcc="schm"}parse(t){this.parseFullHeader(t),this.scheme_type=t.readString(4),this.scheme_version=t.readUint32(),1&this.flags&&(this.scheme_uri=t.readString(this.size-this.hdr_size-8))}},sR=class extends _{constructor(){super(...arguments),this.box_name="rtptracksdphintinformation"}static{this.fourcc="sdp "}parse(t){this.sdptext=t.readString(this.size-this.hdr_size)}},sO=class extends g{constructor(){super(...arguments),this.box_name="SampleEncryptionBox"}static{this.fourcc="senc"}},sN=class extends g{constructor(){super(...arguments),this.box_name="SMPTE2086MasteringDisplayMetadataBox"}static{this.fourcc="SmDm"}parse(t){this.parseFullHeader(t),this.primaryRChromaticity_x=t.readUint16(),this.primaryRChromaticity_y=t.readUint16(),this.primaryGChromaticity_x=t.readUint16(),this.primaryGChromaticity_y=t.readUint16(),this.primaryBChromaticity_x=t.readUint16(),this.primaryBChromaticity_y=t.readUint16(),this.whitePointChromaticity_x=t.readUint16(),this.whitePointChromaticity_y=t.readUint16(),this.luminanceMax=t.readUint32(),this.luminanceMin=t.readUint32()}},sV=class extends g{constructor(){super(...arguments),this.box_name="SamplingRateBox"}static{this.fourcc="srat"}parse(t){this.parseFullHeader(t),this.sampling_rate=t.readUint32()}},sG=class extends g{constructor(){super(...arguments),this.box_name="CompressedSubsegmentIndexBox"}static{this.fourcc="ssix"}parse(t){this.parseFullHeader(t),this.subsegments=[];let e=t.readUint32();for(let i=0;i<e;i++){let e={};this.subsegments.push(e),e.ranges=[];let i=t.readUint32();for(let s=0;s<i;s++){let i={};e.ranges.push(i),i.level=t.readUint8(),i.range_size=t.readUint24()}}}},sq=class extends g{constructor(){super(...arguments),this.box_name="DegradationPriorityBox"}static{this.fourcc="stpd"}parse(t){this.parseFullHeader(t);let e=(this.size-this.hdr_size)/2;this.priority=[];for(let i=0;i<e;i++)this.priority[i]=t.readUint16()}},sj=class extends g{constructor(){super(...arguments),this.box_name="SubTrackInformationBox"}
3static{this.fourcc="stri"}parse(t){this.parseFullHeader(t),this.switch_group=t.readUint16(),this.alternate_group=t.readUint16(),this.sub_track_id=t.readUint32();let e=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(let i=0;i<e;i++)this.attribute_list[i]=t.readUint32()}},s$=class extends g{constructor(){super(...arguments),this.box_name="SubTrackSampleGroupBox"}static{this.fourcc="stsg"}parse(t){this.parseFullHeader(t),this.grouping_type=t.readUint32();let e=t.readUint16();this.group_description_index=[];for(let i=0;i<e;i++)this.group_description_index[i]=t.readUint32()}},sW=class extends g{constructor(){super(...arguments),this.box_name="ShadowSyncSampleBox"}static{this.fourcc="stsh"}parse(t){this.parseFullHeader(t);let e=t.readUint32();if(this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],0===this.version)for(let i=0;i<e;i++)this.shadowed_sample_numbers.push(t.readUint32()),this.sync_sample_numbers.push(t.readUint32())}write(t){this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(t),t.writeUint32(this.shadowed_sample_numbers.length);for(let e=0;e<this.shadowed_sample_numbers.length;e++)t.writeUint32(this.shadowed_sample_numbers[e]),t.writeUint32(this.sync_sample_numbers[e])}},sQ=class extends g{constructor(){super(...arguments),this.box_name="SyncSampleBox"}static{this.fourcc="stss"}parse(t){this.parseFullHeader(t);let e=t.readUint32();if(0===this.version){this.sample_numbers=[];for(let i=0;i<e;i++)this.sample_numbers.push(t.readUint32())}}write(t){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(t),t.writeUint32(this.sample_numbers.length),t.writeUint32Array(this.sample_numbers)}},sY=class extends g{constructor(){super(...arguments),this.box_name="StereoVideoBox"}static{this.fourcc="stvi"}parse(t){this.parseFullHeader(t);let e=t.readUint32();this.single_view_allowed=3&e,this.stereo_scheme=t.readUint32();let i=t.readUint32();for(this.stereo_indication_type=t.readString(i),this.boxes=[];t.getPosition()<this.start+this.size;){let e=T(t,!1,this.size-(t.getPosition()-this.start));if(1!==e.code)return;{let t=e.box;this.boxes.push(t),this[t.type]=t}}}},sK=class extends _{constructor(){super(...arguments),this.box_name="SegmentTypeBox"}static{this.fourcc="styp"}parse(t){let e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32(),e-=8,this.compatible_brands=[];let i=0;for(;e>=4;)this.compatible_brands[i]=t.readString(4),e-=4,i++}write(t){this.size=8+4*this.compatible_brands.length,this.writeHeader(t),t.writeString(this.major_brand,void 0,4),t.writeUint32(this.minor_version);for(let e=0;e<this.compatible_brands.length;e++)t.writeString(this.compatible_brands[e],void 0,4)}},sJ=class extends g{constructor(){super(...arguments),this.box_name="CompactSampleSizeBox"}static{this.fourcc="stz2"}parse(t){if(this.parseFullHeader(t),this.sample_sizes=[],0===this.version){this.reserved=t.readUint24(),this.field_size=t.readUint8();let e=t.readUint32();if(4===this.field_size)for(let i=0;i<e;i+=2){let e=t.readUint8();this.sample_sizes[i]=e>>4&15,this.sample_sizes[i+1]=15&e}else if(8===this.field_size)for(let i=0;i<e;i++)this.sample_sizes[i]=t.readUint8();else if(16===this.field_size)for(let i=0;i<e;i++)this.sample_sizes[i]=t.readUint16();else f.error("BoxParser","Error in length field in stz2 box",t.isofile)}}},sX=class extends g{constructor(){super(...arguments),this.box_name="SubSampleInformationBox"}static{this.fourcc="subs"}parse(t){let e;this.parseFullHeader(t);let i=t.readUint32();this.entries=[];for(let s=0;s<i;s++){let i={};if(this.entries[s]=i,i.sample_delta=t.readUint32(),i.subsamples=[],(e=t.readUint16())>0)for(let s=0;s<e;s++){let e={};i.subsamples.push(e),1===this.version?e.size=t.readUint32():e.size=t.readUint16(),e.priority=t.readUint8(),e.discardable=t.readUint8(),e.codec_specific_parameters=t.readUint32()}}}},sZ=class extends g{constructor(){super(...arguments),this.box_name="TAIClockInfoBox"}static{this.fourcc="taic"}parse(t){this.time_uncertainty=t.readUint64(),this.clock_resolution=t.readUint32(),this.clock_drift_rate=t.readInt32();let e=t.readUint8();this.clock_type=(192&e)>>6}},s0=class extends g{constructor(){super(...arguments),this.box_name="TrackEncryptionBox"}static{this.fourcc="tenc"}parse(t){if(this.parseFullHeader(t),t.readUint8(),0===this.version)t.readUint8();else{let e=t.readUint8();this.default_crypt_byte_block=e>>4&15,this.default_skip_byte_block=15&e}this.default_isProtected=t.readUint8(),this.default_Per_Sample_IV_Size=t.readUint8(),this.default_KID=P(t),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=t.readUint8(),this.default_constant_IV=t.readUint8Array(this.default_constant_IV_size))}},s1=class extends g{constructor(){super(...arguments),this.box_name="TrackFragmentRandomAccessBox"}static{this.fourcc="tfra"}parse(t){this.parseFullHeader(t),this.track_ID=t.readUint32(),t.readUint24();let e=t.readUint8();this.length_size_of_traf_num=e>>4&3,this.length_size_of_trun_num=e>>2&3,this.length_size_of_sample_num=3&e,this.entries=[];let i=t.readUint32();for(let e=0;e<i;e++)1===this.version?(this.time=t.readUint64(),this.moof_offset=t.readUint64()):(this.time=t.readUint32(),this.moof_offset=t.readUint32()),this.traf_number=t["readUint"+8*(this.length_size_of_traf_num+1)](),this.trun_number=t["readUint"+8*(this.length_size_of_trun_num+1)](),this.sample_number=t["readUint"+8*(this.length_size_of_sample_num+1)]()}},s2=class extends _{constructor(){super(...arguments),this.box_name="hintmaxrelativetime"}static{this.fourcc="tmax"}parse(t){this.time=t.readUint32()}},s3=class extends _{constructor(){super(...arguments),this.box_name="hintminrelativetime"}static{this.fourcc="tmin"}parse(t){this.time=t.readUint32()}},s6=class extends _{constructor(){super(...arguments),this.box_name="hintBytesSent"}static{this.fourcc="totl"}parse(t){this.bytessent=t.readUint32()}},s8=class extends _{constructor(){super(...arguments),this.box_name="hintBytesSent"}static{this.fourcc="tpay"}parse(t){this.bytessent=t.readUint32()}},s4=class extends _{constructor(){super(...arguments),this.box_name="hintBytesSent"}static{this.fourcc="tpyl"}parse(t){this.bytessent=t.readUint64()}},s5=class extends b{static{this.fourcc="msrc"}},s7=class t extends _{constructor(){super(...arguments),this.box_name="TrackReferenceBox",this.references=[]}static{this.fourcc="tref"}static{this.allowed_types=["hint","cdsc","font","hind","vdep","vplx","subt","thmb","auxl","cdtg","shsc","aest"]}parse(e){for(;e.getPosition()<this.start+this.size;){let i=T(e,!0,this.size-(e.getPosition()-this.start));
3if(1!==i.code)return;{t.allowed_types.includes(i.type)||f.warn("BoxParser",`Unknown track reference type: '${i.type}'`);let s=new U(i.type,i.size,i.hdr_size,i.start);s.write===_.prototype.write&&"mdat"!==s.type&&(f.info("BoxParser","TrackReference "+s.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(e)),s.parse(e),this.references.push(s)}}}},s9=class extends g{constructor(){super(...arguments),this.box_name="TrackExtensionPropertiesBox"}static{this.fourcc="trep"}parse(t){for(this.parseFullHeader(t),this.track_ID=t.readUint32(),this.boxes=[];t.getPosition()<this.start+this.size;){let e=T(t,!1,this.size-(t.getPosition()-this.start));if(1!==e.code)return;{let t=e.box;this.boxes.push(t)}}}},rt=class extends _{constructor(){super(...arguments),this.box_name="hintBytesSent"}static{this.fourcc="trpy"}parse(t){this.bytessent=t.readUint64()}},re=class extends g{constructor(){super(...arguments),this.box_name="TrackSelectionBox"}static{this.fourcc="tsel"}parse(t){this.parseFullHeader(t),this.switch_group=t.readUint32();let e=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(let i=0;i<e;i++)this.attribute_list[i]=t.readUint32()}},ri=class extends g{constructor(){super(...arguments),this.box_name="TextConfigBox"}static{this.fourcc="txtc"}parse(t){this.parseFullHeader(t),this.config=t.readCString()}},rs=class extends _{constructor(){super(...arguments),this.box_name="TypeCombinationBox"}static{this.fourcc="tyco"}parse(t){let e=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(let i=0;i<e;i++)this.compatible_brands[i]=t.readString(4)}},rr=class extends g{constructor(){super(...arguments),this.box_name="UserDescriptionProperty"}static{this.fourcc="udes"}parse(t){this.parseFullHeader(t),this.lang=t.readCString(),this.name=t.readCString(),this.description=t.readCString(),this.tags=t.readCString()}},ra=class extends g{constructor(){super(...arguments),this.box_name="UncompressedFrameConfigBox"}static{this.fourcc="uncC"}parse(t){if(this.parseFullHeader(t),this.profile=t.readString(4),1===this.version);else if(0===this.version){this.component_count=t.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[];for(let e=0;e<this.component_count;e++)this.component_index.push(t.readUint16()),this.component_bit_depth_minus_one.push(t.readUint8()),this.component_format.push(t.readUint8()),this.component_align_size.push(t.readUint8());this.sampling_type=t.readUint8(),this.interleave_type=t.readUint8(),this.block_size=t.readUint8();let e=t.readUint8();this.component_little_endian=e>>7&1,this.block_pad_lsb=e>>6&1,this.block_little_endian=e>>5&1,this.block_reversed=e>>4&1,this.pad_unknown=e>>3&1,this.pixel_size=t.readUint32(),this.row_align_size=t.readUint32(),this.tile_align_size=t.readUint32(),this.num_tile_cols_minus_one=t.readUint32(),this.num_tile_rows_minus_one=t.readUint32()}}},rn=class extends g{constructor(){super(...arguments),this.box_name="DataEntryUrnBox"}static{this.fourcc="urn "}parse(t){this.parseFullHeader(t),this.name=t.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=t.readCString())}write(t){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(t),t.writeCString(this.name),this.location&&t.writeCString(this.location)}},ro=class extends _{constructor(){super(...arguments),this.box_name="WebVTTConfigurationBox"}static{this.fourcc="vttC"}parse(t){this.text=t.readString(this.size-this.hdr_size)}},rh=class extends g{constructor(){super(...arguments),this.box_name="VvcNALUConfigBox"}static{this.fourcc="vvnC"}parse(t){this.parseFullHeader(t);let e=t.readUint8();this.lengthSizeMinusOne=3&e}},rd=class extends x{static{this.grouping_type="alst"}parse(t){let e=t.readUint16();this.first_output_sample=t.readUint16(),this.sample_offset=[];for(let i=0;i<e;i++)this.sample_offset[i]=t.readUint32();let i=this.description_length-4-4*e;this.num_output_samples=[],this.num_total_samples=[];for(let e=0;e<i/4;e++)this.num_output_samples[e]=t.readUint16(),this.num_total_samples[e]=t.readUint16()}},rl=class extends x{static{this.grouping_type="avll"}
3parse(t){this.layerNumber=t.readUint8(),this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()}},rc=class extends x{static{this.grouping_type="avss"}parse(t){this.subSequenceIdentifier=t.readUint16(),this.layerNumber=t.readUint8();let e=t.readUint8();this.durationFlag=e>>7,this.avgRateFlag=e>>6&1,this.durationFlag&&(this.duration=t.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()),this.dependency=[];let i=t.readUint8();for(let e=0;e<i;e++)this.dependency.push({subSeqDirectionFlag:t.readUint8(),layerNumber:t.readUint8(),subSequenceIdentifier:t.readUint16()})}},ru=class extends x{static{this.grouping_type="dtrt"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rp=class extends x{static{this.grouping_type="mvif"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rf=class extends x{static{this.grouping_type="prol"}parse(t){this.roll_distance=t.readInt16()}},rm=class extends x{static{this.grouping_type="rap "}parse(t){let e=t.readUint8();this.num_leading_samples_known=e>>7,this.num_leading_samples=127&e}},r_=class extends x{static{this.grouping_type="rash"}parse(t){if(this.operation_point_count=t.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)f.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=t.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=t.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(let e=0;e<this.operation_point_count;e++)this.available_bitrate[e]=t.readUint32(),this.target_rate_share[e]=t.readUint16()}this.maximum_bitrate=t.readUint32(),this.minimum_bitrate=t.readUint32(),this.discard_priority=t.readUint8()}}},rg=class extends x{static{this.grouping_type="roll"}parse(t){this.roll_distance=t.readInt16()}},rx=class extends x{static{this.grouping_type="scif"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rb=class extends x{static{this.grouping_type="scnm"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},ry=class extends x{static{this.grouping_type="seig"}parse(t){this.reserved=t.readUint8();let e=t.readUint8();this.crypt_byte_block=e>>4,this.skip_byte_block=15&e,this.isProtected=t.readUint8(),this.Per_Sample_IV_Size=t.readUint8(),this.KID=P(t),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=t.readUint8(),this.constant_IV=t.readUint8Array(this.constant_IV_size))}},rS=class extends x{static{this.grouping_type="stsa"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rU=class extends x{static{this.grouping_type="sync"}parse(t){let e=t.readUint8();this.NAL_unit_type=63&e}},rw=class extends x{static{this.grouping_type="tele"}parse(t){let e=t.readUint8();this.level_independently_decodable=e>>7}},rv=class extends x{static{this.grouping_type="tsas"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rB=class extends x{static{this.grouping_type="tscl"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rk=class extends x{static{this.grouping_type="vipr"}parse(t){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}},rE=class extends _{static{this.fourcc="uuid"}},rz=class extends g{static{this.fourcc="uuid"}},rI=class extends rz{constructor(){super(...arguments),this.box_name="LiveServerManifestBox"}static{this.uuid="a5d40b30e81411ddba2f0800200c9a66"}parse(t){this.parseFullHeader(t),this.LiveServerManifest=t.readString(this.size-this.hdr_size).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")}},rA=class extends rz{constructor(){super(...arguments),this.box_name="PiffProtectionSystemSpecificHeaderBox"}static{this.uuid="d08a4f1810f34a82b6c832d8aba183d3"}parse(t){this.parseFullHeader(t),this.system_id=P(t);let e=t.readUint32();e>0&&(this.data=t.readUint8Array(e))}},rP=class extends rz{constructor(){super(...arguments),this.box_name="PiffSampleEncryptionBox"}static{this.uuid="a2394f525a9b4f14a2446c427c648df4"}},rT=class extends rz{constructor(){super(...arguments),this.box_name="PiffTrackEncryptionBox"}static{this.uuid="8974dbce7be74c5184f97148f9882554"}parse(t){this.parseFullHeader(t),this.default_AlgorithmID=t.readUint24(),this.default_IV_size=t.readUint8(),this.default_KID=P(t)}},rF=class extends rz{constructor(){super(...arguments),this.box_name="TfrfBox"}static{this.uuid="d4807ef2ca3946958e5426cb9e46a79f"}
3parse(t){this.parseFullHeader(t),this.fragment_count=t.readUint8(),this.entries=[];for(let e=0;e<this.fragment_count;e++){let e=0,i=0;1===this.version?(e=t.readUint64(),i=t.readUint64()):(e=t.readUint32(),i=t.readUint32()),this.entries.push({absolute_time:e,absolute_duration:i})}}},rC=class extends rz{constructor(){super(...arguments),this.box_name="TfxdBox"}static{this.uuid="6d1d9b0542d544e680e2141daff757b2"}parse(t){this.parseFullHeader(t),1===this.version?(this.absolute_time=t.readUint64(),this.duration=t.readUint64()):(this.absolute_time=t.readUint32(),this.duration=t.readUint32())}},rM=class extends rE{constructor(){super(...arguments),this.box_name="ItemContentIDProperty"}static{this.uuid="261ef3741d975bbaacbd9d2c8ea73522"}parse(t){this.content_id=t.readCString()}};!function(t){let e={},i={},s={},r={};for(let[a,n]of Object.entries(t)){if(k(n)){let t="grouping_type"in n?n.grouping_type:void 0;if(!t)throw Error(`SampleGroupEntry class ${a} does not have a valid static grouping_type. Please ensure it is defined correctly.`);if(t in s)throw Error(`SampleGroupEntry class ${a} has a grouping_type that is already registered. Please ensure it is unique.`);s[t]=n;continue}if(E(n)){let t="fourcc"in n?n.fourcc:void 0;if(!t)throw Error(`SampleEntry class ${a} does not have a valid static fourcc. Please ensure it is defined correctly.`);if(t in i)throw Error(`SampleEntry class ${a} has a fourcc that is already registered. Please ensure it is unique.`);i[t]=n;continue}if(z(n)){let t="fourcc"in n?n.fourcc:void 0,i="uuid"in n?n.uuid:void 0;if("uuid"===t){if(!i)throw Error(`Box class ${a} has a fourcc of 'uuid' but does not have a valid uuid. Please ensure it is defined correctly.`);if(i in e)throw Error(`Box class ${a} has a uuid that is already registered. Please ensure it is unique.`);e[i]=n;continue}r[t]=n;continue}throw Error(`Box class ${a} does not have a valid static fourcc, uuid, or grouping_type. Please ensure it is defined correctly.`)}I.uuid={...e},I.sampleEntry={...i},I.sampleGroupEntry={...s},I.box={...r}}(id),Object.entries(e9).forEach(([t,e])=>A[t]=e);var rD=t.i(382403),rL=t.i(913328);function rH(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}async function rR(t,e,i,s={}){let{onBytes:r}=s,{done:n,value:o}=await t.read();if(n||!o)return i.close(),"mp4";r?.(o.byteLength);let h=(0,rL.sniffAudioFormat)(o);if(a.logger.log("MSE producer: detected format:",h),"webm"===h)return rO(o,t,e,i,s);if("mp4"===h)return rN(o,t,e,i,s);let d=Array.from(o.slice(0,16)).map(t=>t.toString(16).padStart(2,"0")).join(" ");return i.abort(Error(`Unknown audio format: ${d}`)),"mp4"}async function rO(t,e,i,s,r){let{hintDuration:n,signal:o,onBytes:h}=r,d=(0,rD.findSupportedMimeType)("audio/webm","opus");if(!d)return a.logger.error("MSE producer: WebM/Opus not supported"),s.abort(Error("WebM/Opus not supported by MSE")),"webm";if(s.createSourceBuffer(d).mode="sequence",n&&"open"===i.readyState)try{i.duration=n}catch(t){}s.enqueueInit(rH(t));try{for(;;){let{done:t,value:i}=await e.read();if(t){s.close();break}i&&(h?.(i.byteLength),s.enqueue(rH(i)))}}catch(t){if(o?.aborted)return"webm";a.logger.error("MSE producer: WebM streaming error:",t),s.abort(t,"network")}return"webm"}async function rN(t,e,i,s,r){let{signal:n,onBytes:o}=r,d=[t],l=!1,c=!1,u="mp4",p=0,f=function(t=!1){return new e7(void 0,!t)}();f.onReady=t=>{l=!0;let e=t.audioTracks[0];if(!e){a.logger.error("MSE producer: no audio track found in MP4"),s.abort(Error("No audio track found in MP4"));return}a.logger.log("MSE producer: moov parsed",{codec:e.codec,duration:t.duration,timescale:t.timescale,isFragmented:t.isFragmented});let n=(0,rD.findSupportedMimeType)("audio/mp4",e.codec);if(!n){a.logger.error("MSE producer: unsupported MSE codec:",e.codec),s.abort(Error(`Unsupported MSE codec: ${e.codec}`));return}s.createSourceBuffer(n),function(t,e,i){let s=(t.timescale>0?t.duration/t.timescale:null)??i;if(s&&"open"===e.readyState)try{e.duration=s}catch(t){}}(t,i,r.hintDuration),t.isFragmented?(u="fmp4",c=!0,function(t,e){let i=new Uint8Array(t.reduce((t,e)=>t+e.byteLength,0)),s=0;for(let e of t)i.set(e,s),s+=e.byteLength;let r=function(t){let e=new DataView(t.buffer,t.byteOffset,t.byteLength),i=0;for(;i+8<=t.length;){let s=e.getUint32(i);if("moov"===String.fromCharCode(t[i+4],t[i+5],t[i+6],t[i+7]))return i+s;if(s<8)break;i+=s}return -1}(i),n=r>0?i.slice(0,r):i,o=r>0&&r<i.byteLength?i.slice(r):null;a.logger.log("MSE producer: fMP4 init segment queued",{initBytes:n.byteLength}),e.enqueueInit(rH(n)),o&&o.byteLength>0&&e.enqueue(rH(o))}
3(d,s)):(d.length=0,function(t,e,i){t.setSegmentOptions(e,null,{nbSamples:100,rapAlignement:!0});let s=t.initializeSegmentation();if(!s.buffer){a.logger.error("MSE producer: MP4Box failed to produce init segment"),i.abort(Error("MP4Box failed to produce init segment"));return}a.logger.log("MSE producer: remux init segment queued"),i.enqueueInit(s.buffer),t.start()}(f,e.id,s))},f.onSegment=(t,e,i)=>{s.enqueue(i)};let m=h.fromArrayBuffer(rH(t),p);p+=t.byteLength;try{f.appendBuffer(m)}catch(t){return a.logger.error("MSE producer: MP4Box appendBuffer failed on first chunk:",t),s.abort(t),f.onReady=void 0,f.onSegment=void 0,u}try{for(;;){let{done:t,value:i}=await e.read();if(t){c||f.flush(),s.close();break}if(i){o?.(i.byteLength);let t=rH(i);c?s.enqueue(t):(l||d.push(i),f.appendBuffer(h.fromArrayBuffer(t,p))),p+=i.byteLength}}}catch(t){if(f.onReady=void 0,f.onSegment=void 0,n?.aborted)return u;return a.logger.error("MSE producer: MP4 streaming error:",t),s.abort(t,"network"),u}return f.onReady=void 0,f.onSegment=void 0,u}class rV{mediaSource;reader;signal;onMseEvent;onMseError;getBytesDecrypted;sourceBuffer;fragmentQueue;appending;nextMediaIdx;closed;chunksAppended;fatalErrorFired;constructor(t,e,i,s,r,n=()=>0){if(this.mediaSource=t,this.reader=e,this.signal=i,this.onMseEvent=s,this.onMseError=r,this.getBytesDecrypted=n,this.sourceBuffer=null,this.fragmentQueue=[],this.appending=!1,this.nextMediaIdx=0,this.closed=!1,this.chunksAppended=0,this.fatalErrorFired=!1,this.handleUpdateEnd=()=>{this.appending=!1;let t=this.fragmentQueue[0];this.fragmentQueue.shift(),this.chunksAppended++,void 0!==t&&this.onMseEvent?.({type:"append",fragmentIdx:t.fragmentIdx,buffer:t.buffer,chunksAppended:this.chunksAppended}),this.drainQueue()},this.handleSourceBufferError=t=>{let e=t instanceof ErrorEvent&&t.message?t.message:`readyState=${this.mediaSource.readyState}, updating=${this.sourceBuffer?.updating}`,i=Error(`SourceBuffer error: ${e}`);a.logger.error("MSE eager: SourceBuffer error event",i),0===this.chunksAppended&&"ended"===this.mediaSource.readyState&&(a.logger.warn("MSE eager: marking MSE broken (error before first append, readyState=ended)"),(0,rD.markMseBroken)()),this.handleFatalError(i)},i){if(i.aborted)return void this.destroy();i.addEventListener("abort",()=>this.destroy(),{once:!0})}}createSourceBuffer(t){a.logger.log("MSE eager: createSourceBuffer",{mimeType:t}),this.onMseEvent?.({type:"source_buffer_created",mimeType:t});let e=this.mediaSource.addSourceBuffer(t);return this.sourceBuffer=e,e.addEventListener("updateend",this.handleUpdateEnd),e.addEventListener("error",this.handleSourceBufferError),e}enqueueInit(t){this.enqueue(t,!0)}enqueue(t,e=!1){let i=e?-1:this.nextMediaIdx++;this.fragmentQueue.push({buffer:t,fragmentIdx:i}),this.onMseEvent?.({type:"enqueued",fragmentIdx:i,buffer:t,isInit:e}),this.drainQueue()}close(){this.closed=!0,this.drainQueue()}abort(t,e){a.logger.error("MSE eager: producer abort",t),this.handleFatalError(t)}drainQueue(){let t=this.sourceBuffer;if(t&&!this.appending&&"open"===this.mediaSource.readyState){if(this.fragmentQueue.length>0){this.appending=!0;try{t.appendBuffer(this.fragmentQueue[0].buffer)}catch(t){this.appending=!1,a.logger.error("MSE eager: appendBuffer failed:",t),this.handleFatalError(t)}return}if(this.closed){a.logger.log("MSE eager: endOfStream",{chunksAppended:this.chunksAppended}),this.onMseEvent?.({type:"end_of_stream",chunksAppended:this.chunksAppended});try{this.mediaSource.endOfStream()}catch(t){}}}}handleUpdateEnd;handleSourceBufferError;handleFatalError(t){if(this.fatalErrorFired)return;this.fatalErrorFired=!0;let e=this.sourceBuffer,i=this.mediaSource.readyState,s=e?e.updating:null,r=this.chunksAppended,a=null;try{let t=e?.buffered;t&&t.length>0&&(a=t.end(t.length-1)-t.start(0))}catch{}if(this.destroy(),"open"===i)try{this.mediaSource.endOfStream("decode")}catch(t){}this.onMseError?.(t,{isMidStream:r>0,readyState:i,updating:s,chunksAppended:r,bytesDecrypted:this.getBytesDecrypted(),bufferedSeconds:a})}handleMediaSourceError(t){if(this.fatalErrorFired)return;this.fatalErrorFired=!0;let e=this.mediaSource.readyState,i=this.chunksAppended;this.destroy(),this.onMseError?.(t,{isMidStream:i>0,readyState:e,updating:null,chunksAppended:i,bytesDecrypted:this.getBytesDecrypted(),bufferedSeconds:null})}destroy(){a.logger.log("MSE eager: destroy");let t=this.sourceBuffer;if(t){if(t.removeEventListener("updateend",this.handleUpdateEnd),t.removeEventListener("error",this.handleSourceBufferError),t.updating)try{t.abort()}catch(t){}this.sourceBuffer=null}this.fragmentQueue.length=0,this.appending=!1,this.nextMediaIdx=0,this.reader.cancel().catch(()=>{})}}async function rG(t){let{apiClient:e,encryptedUrl:i,contentId:s,contentType:r,onProgress:n,onMseError:o,onMseEvent:h,onDecryptComplete:d,duration:l,signal:c}=t,{key:u,iv:p,response:f}=await (0,rD.fetchLicenseServerDataAndMedia)({apiClient:e,encryptedUrl:i,contentId:s,contentType:r,signal:c}),{reader:m,totalSize:_}=(0,rD.createResilientDecryptedReader)(f,u,p,{encryptedUrl:i,signal:c,onNetwork
3Retry:({attempt:t,byteOffset:e,error:i})=>h?.({type:"network_retry",attempt:t,byteOffset:e,errorDetail:i instanceof Error?i.message:String(i)})}),g=new MediaSource,x=URL.createObjectURL(g),b=null;return g.addEventListener("sourceopen",async()=>{if(c?.aborted)return void m.cancel().catch(()=>{});let t=0,e="webm",i=performance.now();b=new rV(g,m,c,h,o,()=>t);try{e=await rR(m,g,b,{hintDuration:l,signal:c,onBytes:s=>{t+=s,n?.({bytesLoaded:t,bytesTotal:_,bytesDecrypted:t,chunksAvailable:0,chunksAppended:0,mode:"mse",containerFormat:e,timestamp:performance.now(),elapsedMs:performance.now()-i})}}),n?.({bytesLoaded:t,bytesTotal:_,bytesDecrypted:t,chunksAvailable:0,chunksAppended:0,mode:"mse",containerFormat:e,timestamp:performance.now(),elapsedMs:performance.now()-i})}catch(t){a.logger.error("MSE eager: runFormatPipeline threw unexpectedly:",t),b.abort(t);return}c?.aborted||d?.({totalBytesDecrypted:t,decryptDurationMs:performance.now()-i})},{once:!0}),g.addEventListener("error",()=>{let t=Error(`MediaSource error, readyState=${g.readyState}`);a.logger.error(t.message),b?b.handleMediaSourceError(t):(m.cancel().catch(()=>{}),o?.(t,{isMidStream:!1,readyState:g.readyState,updating:null,chunksAppended:0,bytesDecrypted:0,bufferedSeconds:null}))},{once:!0}),c?.aborted&&m.cancel().catch(()=>{}),x}var rq=t.i(399916);class rj{records=[];add(t){return this.records.push({buffer:t,times:null}),this.records.length-1}recordTimes(t,e,i){let s=this.records[t];s&&!s.times&&(s.times={start:e,end:i})}get(t){return this.records[t]}get length(){return this.records.length}findRecoveryHead(t){return this.records.findIndex(e=>null!==e.times&&e.times.end>=t)}clear(){this.records.length=0}}class r${mediaSource;audioElement;reader;signal;onMseEvent;onMseError;getBytesDecrypted;sourceBuffer;initSegment;initAppended;log;appendHead;recoveryHighWater;state;seekPending;quotaRetryCount;isPaused;closed;chunksAppended;fatalErrorFired;bufferAheadTargetS;evictMarginS;constructor(t,e,i,s=rq.BUFFER_AHEAD_TARGET_S,r=rq.EVICT_MARGIN_S,n,o,h,d=()=>0){if(this.mediaSource=t,this.audioElement=e,this.reader=i,this.signal=n,this.onMseEvent=o,this.onMseError=h,this.getBytesDecrypted=d,this.sourceBuffer=null,this.initSegment=null,this.initAppended=!1,this.log=new rj,this.appendHead=0,this.recoveryHighWater=0,this.state={kind:"idle"},this.seekPending=!1,this.quotaRetryCount=0,this.isPaused=!1,this.closed=!1,this.chunksAppended=0,this.fatalErrorFired=!1,this.evictMarginS=rq.EVICT_MARGIN_S,this.tick=()=>{let t=this.sourceBuffer;if(!t||"idle"!==this.state.kind||"closed"===this.mediaSource.readyState)return;if(this.seekPending){let e=this.audioElement.currentTime,i=0===t.buffered.length;for(let s=0;s<t.buffered.length&&!(t.buffered.start(s)<=e&&e<=t.buffered.end(s));s++)if(t.buffered.start(s)>e){i=!0;break}if(this.seekPending=!1,i){let i=Math.max(0,e-this.evictMarginS),s=this.log.findRecoveryHead(i),r=s>=0?s:0;a.logger.log("MSE rolling: seek recovery triggered",{seekTarget:e,recoveryHead:r,totalFragments:this.log.length}),this.onMseEvent?.({type:"seek_recovery_start",seekTarget:e,segmentsQueued:this.appendHead-r,totalAppended:this.appendHead}),"sequence"===t.mode&&(t.timestampOffset=0),this.recoveryHighWater=this.appendHead,this.state={kind:"seek_clearing",recoveryHead:r},this.sbRemove(t,0,1/0);return}}if("open"===this.mediaSource.readyState&&t.buffered.length>0){let e=this.audioElement.currentTime-this.evictMarginS,i=t.buffered.start(0),s=t.buffered.end(t.buffered.length-1),r=e-i;if(r>=rq.EVICT_BATCH_S&&e<s){a.logger.log("MSE rolling: evicting",{from:i.toFixed(2),to:e.toFixed(2),durationS:r.toFixed(2)}),this.onMseEvent?.({type:"remove",start:i,end:e,durationS:r}),this.state={kind:"evicting",start:i,end:e},this.sbRemove(t,i,e);return}}let e=this.getBufferedAhead();if(e>=this.bufferAheadTargetS){this.isPaused||(this.isPaused=!0,this.onMseEvent?.({type:"rolling_pause",bufferedAheadS:e}));return}if(this.isPaused&&(this.isPaused=!1,this.onMseEvent?.({type:"rolling_resume"})),this.initSegment&&!this.initAppended){try{this.state={kind:"appending_init"},t.appendBuffer(this.initSegment)}catch(t){this.state={kind:"idle"}
3,this.handleFatalError(t)}return}if(this.appendHead<this.log.length){let e=this.log.get(this.appendHead);try{this.state={kind:"appending"},t.appendBuffer(e.buffer)}catch(t){(this.state={kind:"idle"},t instanceof DOMException&&(t.code===DOMException.QUOTA_EXCEEDED_ERR||"QuotaExceededError"===t.name||"quota"in t))?this.handleQuotaExceeded():this.handleFatalError(t)}return}if(this.closed&&"open"===this.mediaSource.readyState){a.logger.log("MSE rolling: endOfStream",{chunksAppended:this.chunksAppended}),this.onMseEvent?.({type:"end_of_stream",chunksAppended:this.chunksAppended});try{this.mediaSource.endOfStream()}catch(t){}}},this.handleUpdateEnd=()=>{let t=this.state;switch(t.kind){case"evicting":case"quota_evicting":{let{start:e,end:i}=t,s=[];for(let t=0;t<this.log.length;t++){let r=this.log.get(t)?.times;r&&r.start<i&&r.end>e&&s.push(t)}s.length>0&&this.onMseEvent?.({type:"fragments_evicted",fragmentIndices:s}),this.state={kind:"idle"};break}case"appending_init":this.initAppended=!0,this.chunksAppended++,this.initSegment&&this.onMseEvent?.({type:"append",fragmentIdx:-1,buffer:this.initSegment,chunksAppended:this.chunksAppended}),this.state={kind:"idle"};break;case"seek_clearing":{let{recoveryHead:e}=t,i=[];for(let t=0;t<this.recoveryHighWater;t++)i.push(t);i.length>0&&this.onMseEvent?.({type:"fragments_evicted",fragmentIndices:i}),this.appendHead=e,this.initAppended=!1,this.state={kind:"idle"};break}case"appending":{let t=this.appendHead,e=this.log.get(t);this.recordFragmentTime(t),this.appendHead++,this.chunksAppended++,this.quotaRetryCount=0,this.recoveryHighWater>0?(this.onMseEvent?.({type:"recovery_segment_appended",fragmentIdx:t,buffer:e.buffer}),this.appendHead>=this.recoveryHighWater&&(a.logger.log("MSE rolling: seek recovery complete"),this.onMseEvent?.({type:"seek_recovery_complete"}),this.recoveryHighWater=0)):this.onMseEvent?.({type:"append",fragmentIdx:t,buffer:e.buffer,chunksAppended:this.chunksAppended}),this.state={kind:"idle"};break}case"idle":a.logger.warn("MSE rolling: updateend fired in idle state")}this.tick()},this.handleSourceBufferError=t=>{let e=Error(t instanceof ErrorEvent&&t.message?t.message:"SourceBuffer error");a.logger.error("MSE rolling: SourceBuffer error event",e),0===this.chunksAppended&&"ended"===this.mediaSource.readyState&&(a.logger.warn("MSE rolling: marking MSE broken (error before first append, readyState=ended)"),(0,rD.markMseBroken)()),this.handleFatalError(e)},this.handleSeeking=()=>{let t=this.sourceBuffer;if(!t||"closed"===this.mediaSource.readyState||"seek_clearing"===this.state.kind)return;let e=this.audioElement.currentTime;for(let i=0;i<t.buffered.length;i++){if(t.buffered.start(i)<=e&&e<=t.buffered.end(i))return;if(t.buffered.start(i)>e){this.seekPending=!0,this.tick();return}}0===t.buffered.length&&(this.seekPending=!0),this.tick()},this.bufferAheadTargetS=s,this.evictMarginS=r,n){if(n.aborted)return void this.destroy();n.addEventListener("abort",()=>this.destroy(),{once:!0})}}createSourceBuffer(t){a.logger.log("MSE rolling: createSourceBuffer",{mimeType:t}),this.onMseEvent?.({type:"source_buffer_created",mimeType:t});let e=this.mediaSource.addSourceBuffer(t);return this.sourceBuffer=e,e.addEventListener("updateend",this.handleUpdateEnd),e.addEventListener("error",this.handleSourceBufferError),this.audioElement.addEventListener("timeupdate",this.tick),this.audioElement.addEventListener("seeking",this.handleSeeking),e}enqueueInit(t){this.initSegment=t,this.onMseEvent?.({type:"enqueued",fragmentIdx:-1,buffer:t,isInit:!0}),this.tick()}enqueue(t){let e=this.log.add(t);this.onMseEvent?.({type:"enqueued",fragmentIdx:e,buffer:t,isInit:!1}),this.tick()}close(){this.closed=!0,this.tick()}abort(t,e){a.logger.error("MSE rolling: producer abort",t),this.handleFatalError(t)}tick;handleUpdateEnd;handleSourceBufferError;handleSeeking;handleQuotaExceeded(){if(this.quotaRetryCount++,this.quotaRetryCount>1){a.logger.error("MSE rolling: QuotaExceededError after eviction retry — fatal"),this.handleFatalError(Error("QuotaExceededError: eviction retry also failed"));return}let t=this.getBufferedAhead();for(;this.bufferAheadTargetS>rq.MIN_BUFFER_AHEAD_S&&this.bufferAheadTargetS>=t;)this.bufferAheadTargetS=Math.max(rq.MIN_BUFFER_AHEAD_S,this.bufferAheadTargetS-rq.BUDGET_STEP_S),this.evictMarginS=Math.max(rq.MIN_EVICT_MARGIN_S,this.evictMarginS-rq.BUDGET_STEP_S);a.logger.warn("MSE rolling: QuotaExceededError — shrinking window",{bufferAheadTargetS:this.bufferAheadTargetS,evictMarginS:this.evictMarginS}),this.onMseEvent?.({type:"quota_exceeded",bufferAheadTargetS:this.bufferAheadTargetS,evictMarginS:this.evictMarginS});let e=this.sourceBuffer;if(!e||"closed"===this.mediaSource.readyState)return;let i=this.audioElement.currentTime;if(e.buffered.length>0&&e.buffered.start(0)<i){let t=e.buffered.start(0);this.state={kind:"quota_evicting",start:t,end:i},this.sbRemove(e,t,i)}}sbRemove(t,e,i){try{t.remove(e,i)}catch(t){this.state={kind:"idle"}
3,this.handleFatalError(t)}}getBufferedAhead(){let t=this.sourceBuffer;if(!t||"closed"===this.mediaSource.readyState||0===t.buffered.length)return 0;let e=this.audioElement.currentTime;for(let i=0;i<t.buffered.length;i++){let s=t.buffered.start(i),r=t.buffered.end(i);if(s<=e&&e<=r||s>e)return r-e}return 0}recordFragmentTime(t){let e=this.sourceBuffer;if(!e||"closed"===this.mediaSource.readyState||0===e.buffered.length)return;let i=e.buffered.end(e.buffered.length-1),s=this.log.get(t-1)?.times,r=s?s.end:e.buffered.start(0);this.log.recordTimes(t,r,i)}handleFatalError(t){if(this.fatalErrorFired)return;this.fatalErrorFired=!0;let e=this.sourceBuffer,i=this.mediaSource.readyState,s=e?e.updating:null,r=this.getBufferedAhead(),a=this.chunksAppended;if(this.destroy(),"open"===i)try{this.mediaSource.endOfStream("decode")}catch(t){}this.onMseError?.(t,{isMidStream:a>0,readyState:i,updating:s,chunksAppended:a,bytesDecrypted:this.getBytesDecrypted(),bufferedSeconds:r})}handleMediaSourceError(t){if(this.fatalErrorFired)return;this.fatalErrorFired=!0;let e=this.mediaSource.readyState,i=this.chunksAppended;this.destroy(),this.onMseError?.(t,{isMidStream:i>0,readyState:e,updating:null,chunksAppended:i,bytesDecrypted:this.getBytesDecrypted(),bufferedSeconds:null})}destroy(){a.logger.log("MSE rolling: destroy"),this.audioElement.removeEventListener("timeupdate",this.tick),this.audioElement.removeEventListener("seeking",this.handleSeeking);let t=this.sourceBuffer;if(t){if(t.removeEventListener("updateend",this.handleUpdateEnd),t.removeEventListener("error",this.handleSourceBufferError),t.updating)try{t.abort()}catch(t){}this.sourceBuffer=null}this.log.clear(),this.appendHead=0,this.recoveryHighWater=0,this.initAppended=!1,this.state={kind:"idle"},this.seekPending=!1,this.reader.cancel().catch(()=>{})}}async function rW(t){let{apiClient:e,encryptedUrl:i,contentId:s,contentType:r,onProgress:n,onMseError:o,onMseEvent:h,onDecryptComplete:d,duration:l,signal:c,audioElement:u,bufferAheadTargetS:p=rq.BUFFER_AHEAD_TARGET_S,evictMarginS:f=rq.EVICT_MARGIN_S}=t;if(!u)throw Error("audioElement is required for rolling MSE mode");let{key:m,iv:_,response:g}=await (0,rD.fetchLicenseServerDataAndMedia)({apiClient:e,encryptedUrl:i,contentId:s,contentType:r,signal:c}),{reader:x,totalSize:b}=(0,rD.createResilientDecryptedReader)(g,m,_,{encryptedUrl:i,signal:c,onNetworkRetry:({attempt:t,byteOffset:e,error:i})=>h?.({type:"network_retry",attempt:t,byteOffset:e,errorDetail:i instanceof Error?i.message:String(i)})}),y=new MediaSource,S=URL.createObjectURL(y),U=null;return y.addEventListener("sourceopen",async()=>{if(c?.aborted)return void x.cancel().catch(()=>{});let t=0,e="webm",i=performance.now();U=new r$(y,u,x,p,f,c,h,o,()=>t);try{e=await rR(x,y,U,{hintDuration:l,signal:c,onBytes:s=>{t+=s,n?.({bytesLoaded:t,bytesTotal:b,bytesDecrypted:t,chunksAvailable:0,chunksAppended:0,mode:"mse",containerFormat:e,timestamp:performance.now(),elapsedMs:performance.now()-i})}}),n?.({bytesLoaded:t,bytesTotal:b,bytesDecrypted:t,chunksAvailable:0,chunksAppended:0,mode:"mse",containerFormat:e,timestamp:performance.now(),elapsedMs:performance.now()-i})}catch(t){a.logger.error("MSE rolling: runFormatPipeline threw unexpectedly:",t),U.abort(t);return}c?.aborted||d?.({totalBytesDecrypted:t,decryptDurationMs:performance.now()-i})},{once:!0}),y.addEventListener("error",()=>{let t=Error(`MediaSource error, readyState=${y.readyState}`);a.logger.error(t.message),U?U.handleMediaSourceError(t):(x.cancel().catch(()=>{}),o?.(t,{isMidStream:!1,readyState:y.readyState,updating:null,chunksAppended:0,bytesDecrypted:0,bufferedSeconds:null}))},{once:!0}),c?.aborted&&x.cancel().catch(()=>{}),S}t.i(870357);var rQ=((i={}).ServiceWorker="sw",i.Mse="mse",i.Progressive="progressive",i.Unencrypted="unencrypted",i),rY=((s={}).Off="sw-off",s.SwFirst="sw-first",s.MseFirst="mse-first",s),rK=((r={}).Eager="eager",r.Rolling="rolling",r);t.s(["DrmPlaybackPath",()=>rQ,"MseDownloadMode",()=>rK,"SwDrmMode",()=>rY],63300),t.s(["streamWithMSE",0,function(t){return t.downloadMode===rK.Rolling?rW(t):rG(t)}],397026)}]);
4
5//# sourceMappingURL=05ucq5sv2rfub.js.map
6//# debugId=0d2c3600-cb57-5172-b949-8d79ac286b38

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.