@havue/solutions 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -0
- package/bc-connect/README.md +3 -0
- package/bc-connect/dist/bc-connect.mjs +342 -0
- package/bc-connect/dist/bc-connect.umd.js +346 -0
- package/bc-connect/dist/types/src/index.d.ts +1 -0
- package/bc-connect/dist/types/src/manager.d.ts +135 -0
- package/bc-connect/package.json +38 -0
- package/bc-connect/src/index.ts +1 -0
- package/bc-connect/src/manager.ts +388 -0
- package/bc-connect/vite.config.ts +4 -0
- package/dist/solutions.full.js +8504 -0
- package/dist/solutions.full.min.js +18 -0
- package/dist/solutions.full.min.js.map +1 -0
- package/dist/solutions.mjs +2 -0
- package/dist/solutions.umd.js +18 -0
- package/dist/types/bc-connect/src/index.d.ts +1 -0
- package/dist/types/bc-connect/src/manager.d.ts +135 -0
- package/dist/types/src/index.d.ts +2 -0
- package/dist/types/ws-video-manager/src/hooks/useVideoPlay.d.ts +73 -0
- package/dist/types/ws-video-manager/src/index.d.ts +5 -0
- package/dist/types/ws-video-manager/src/loader/index.d.ts +2 -0
- package/dist/types/ws-video-manager/src/loader/websocket-loader.d.ts +62 -0
- package/dist/types/ws-video-manager/src/manager/index.d.ts +144 -0
- package/dist/types/ws-video-manager/src/render/drawer.d.ts +44 -0
- package/dist/types/ws-video-manager/src/render/index.d.ts +105 -0
- package/package.json +44 -0
- package/src/index.ts +2 -0
- package/vite.config.ts +4 -0
- package/ws-video-manager/README.md +3 -0
- package/ws-video-manager/dist/types/src/hooks/useVideoPlay.d.ts +73 -0
- package/ws-video-manager/dist/types/src/index.d.ts +5 -0
- package/ws-video-manager/dist/types/src/loader/index.d.ts +2 -0
- package/ws-video-manager/dist/types/src/loader/websocket-loader.d.ts +62 -0
- package/ws-video-manager/dist/types/src/manager/index.d.ts +144 -0
- package/ws-video-manager/dist/types/src/render/drawer.d.ts +44 -0
- package/ws-video-manager/dist/types/src/render/index.d.ts +105 -0
- package/ws-video-manager/dist/ws-video-manager.mjs +8132 -0
- package/ws-video-manager/dist/ws-video-manager.umd.js +8135 -0
- package/ws-video-manager/node_modules/.bin/tsc +17 -0
- package/ws-video-manager/node_modules/.bin/tsc.CMD +12 -0
- package/ws-video-manager/node_modules/.bin/tsc.ps1 +41 -0
- package/ws-video-manager/node_modules/.bin/tsserver +17 -0
- package/ws-video-manager/node_modules/.bin/tsserver.CMD +12 -0
- package/ws-video-manager/node_modules/.bin/tsserver.ps1 +41 -0
- package/ws-video-manager/package.json +41 -0
- package/ws-video-manager/src/hooks/useVideoPlay.ts +357 -0
- package/ws-video-manager/src/index.ts +6 -0
- package/ws-video-manager/src/loader/index.ts +3 -0
- package/ws-video-manager/src/loader/websocket-loader.ts +278 -0
- package/ws-video-manager/src/manager/index.ts +429 -0
- package/ws-video-manager/src/render/drawer.ts +255 -0
- package/ws-video-manager/src/render/index.ts +475 -0
- package/ws-video-manager/vite.config.ts +4 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
(function(T,F){typeof exports=="object"&&typeof module<"u"?F(exports):typeof define=="function"&&define.amd?define(["exports"],F):(T=typeof globalThis<"u"?globalThis:T||self,F(T.solutions={}))})(this,function(T){"use strict";var pt=Object.defineProperty;var ut=(T,F,R)=>F in T?pt(T,F,{enumerable:!0,configurable:!0,writable:!0,value:R}):T[F]=R;var b=(T,F,R)=>ut(T,typeof F!="symbol"?F+"":F,R);var F=(x=>(x.Broadcast="Hello world",x.Broadcast_Reply="I can hear you",x.Main_Node_Hearbeat="苍天还在,别立黄天",x.Res_Main_Node_Hearbeat="苍天在上,受我一拜",x.Req_Be_Main_Node="苍天已死,黄天当立",x.Res_Be_Main_Node="我是黄天,尔等退下",x.Node_Type_Change="node type change",x.Friend_List_Update="friend list update",x))(F||{}),R=(x=>(x.Main="main",x.Normal="normal",x))(R||{});const V=300;class at{constructor(h,d=!1){b(this,"_bcName");b(this,"_broadcastChannel");b(this,"_eventMap");b(this,"_mainNodeMsgInterval",null);b(this,"_mainNoceMsgTimeoutTimer",null);b(this,"id",Date.now()+Math.random());b(this,"_oldFrendChannelIdList",[]);b(this,"_friendChannelIdSet",new Set);b(this,"_nodeType");b(this,"_debug",!1);this._debug=d,this._bcName=h,this._eventMap=new Map,this._debug&&console.log("BC:id:",this.id)}get nodeType(){return this._nodeType}get friendList(){return[...this._oldFrendChannelIdList]}connect(){this._debug&&console.log("BC:bc connect"),this.close(),this._broadcastChannel=new BroadcastChannel(this._bcName),this._bindBroadcastChannelEvent(),this._updateFriendList()}close(){this._debug&&console.log("BC:bc close"),this._broadcastChannel&&this._broadcastChannel.close()}_setNodeType(h){this._nodeType!==h&&(this._nodeType=h,this.emit("node type change",{type:"node type change",data:h,id:this.id}))}_updateFriendList(){this.send("Hello world"),setTimeout(()=>{this._oldFrendChannelIdList=this._getNewFriendList(),this._debug&&console.log("BC:connect:updateFriendChannelIdList:",this._oldFrendChannelIdList),this.emit("friend list update",{type:"friend list update",data:[...this._oldFrendChannelIdList],id:this.id}),this._updataNodeType()},V)}_bindBroadcastChannelEvent(){this._broadcastChannel&&(this._broadcastChannel.onmessage=h=>{const{type:d,targetId:a}=h.data;a&&a!==this.id||this.emit(d,h.data)}),this.on("Hello world",h=>{const{id:d}=h;this._friendChannelIdSet.has(d)||this._friendChannelIdSet.add(d),this.sendToTarget("I can hear you",d)}),this.on("I can hear you",h=>{const{id:d}=h;this._addFriend(d)}),this.on("苍天已死,黄天当立",h=>{const{id:d}=h;d>this.id&&this.sendToTarget("我是黄天,尔等退下",d)}),this.on("苍天在上,受我一拜",h=>{this._addFriend(h.id)}),this._bindNodeEvent()}_bindNodeEvent(){const h=d=>{this._timeoutToBeMainNode(),this._catchOldFriend(),this._addFriend(d.id),this.send("苍天在上,受我一拜")};this.on("node type change",d=>{const{data:a}=d;this._mainNodeMsgInterval&&clearInterval(this._mainNodeMsgInterval),this._debug&&console.log("BC:代理类型切换:",d.data),a==="main"?this._mainNodeMsgInterval=setInterval(()=>{this._catchOldFriend(),this.send("苍天还在,别立黄天")},V):a==="normal"&&this._timeoutToBeMainNode(),this.on("苍天还在,别立黄天",h)})}_getNewFriendList(){return[...this._friendChannelIdSet].sort((h,d)=>h-d)}_updataNodeType(){if(this._mainNodeMsgInterval&&clearInterval(this._mainNodeMsgInterval),this._oldFrendChannelIdList.length===0||Math.min(...this._oldFrendChannelIdList)>this.id){if(this._nodeType==="main")return;this._setNodeType("main")}else{if(this._nodeType==="normal")return;this._setNodeType("normal")}}_timeoutToBeMainNode(){this._mainNoceMsgTimeoutTimer&&clearTimeout(this._mainNoceMsgTimeoutTimer),this._mainNoceMsgTimeoutTimer=setTimeout(()=>{this._req_beMainNode()},V*3)}_catchOldFriend(){const h=this._getNewFriendList();this._oldFrendChannelIdList.join()!==h.join()&&(this._debug&&console.log("BC:updateFriendChannelIdList:",h),this.emit("friend list update",{type:"friend list update",data:[...h],id:this.id}),this._oldFrendChannelIdList=[...h]),this._nodeType==="main"&&Math.min(...this._oldFrendChannelIdList)<this.id&&this._setNodeType("normal"),this._friendChannelIdSet.clear()}_req_beMainNode(){this._debug&&console.log("BC:req_beMainNode"),this.send("苍天已死,黄天当立");const h=setTimeout(()=>{this._setNodeType("main")},V),d=()=>{clearTimeout(h),this.off("我是黄天,尔等退下",d)};this.on("我是黄天,尔等退下",d)}_addFriend(h){this._friendChannelIdSet.has(h)||this._friendChannelIdSet.add(h)}send(h,d){var a;(a=this._broadcastChannel)==null||a.postMessage({type:h,data:d,id:this.id})}sendToTarget(h,d,a){var _;(_=this._broadcastChannel)==null||_.postMessage({type:h,data:a,id:this.id,targetId:d})}on(h,d){const a=this._eventMap.get(h);if(!a){this._eventMap.set(h,[d]);return}a.includes(d)||a.push(d)}off(h,d){const a=this._eventMap.get(h);if(!a)return;if(!d){a.length=0;return}const _=a.indexOf(d);a.splice(_,1)}emit(h,d){(this._eventMap.get(h)||[]).forEach(_=>{_(d)})}destroy(){var h;this._bcName="",this._eventMap.clear(),(h=this._broadcastChannel)==null||h.close(),this._broadcastChannel=void 0,this._oldFrendChannelIdList=[],this._friendChannelIdSet.clear(),this.id=-1,this._nodeType=void 0,this._mainNodeMsgInterval&&clearInterval(this._mainNodeMsgInterval),this._mainNodeMsgInterval=null,this._mainNoceMsgTimeoutTimer&&clearInterval(this._mainNoceMsgTimeoutTimer),this._mainNoceMsgTimeoutTimer=null,this._debug&&console.log("BC:destroy")}}class Z{constructor(){b(this,"_eventMap");this._eventMap=new Map}on(h,d){const a=this._eventMap.get(h);if(a)a.add(d);else{const _=new Set;_.add(d),this._eventMap.set(h,_)}}off(h,d){const a=this._eventMap.get(h);a&&(d?a.delete(d):a.clear())}emit(h,...d){const a=this._eventMap.get(h);if(a)for(const _ of a.values())_(...d)}}const ht=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent),J={protocols:"",binaryType:"arraybuffer",heartbeat:{once:!1,message:"heartbeat",interval:5e3},interrupt:{reconnect:!0,maxReconnectTimes:3,delay:3e3}};class dt{constructor(h,d){b(this,"_url");b(this,"_protocols");b(this,"_binaryType");b(this,"_ws",null);b(this,"_heartbeatConfig");b(this,"_heartbeatTimer",null);b(this,"_eventMap");b(this,"_isManualClose",!1);b(this,"_interruptConfig");b(this,"_interruptReconnectTimes",0);b(this,"_interruptReconnectTimer",null);const a=d?Object.assign(J,d):J;this._url=h,this._protocols=a.protocols,this._binaryType=a.binaryType,this._eventMap=new Map,this._heartbeatConfig=a.heartbeat,this._interruptConfig=a.interrupt}get isConnecting(){return!!this._ws}triggerEvents(h,d){if(!this._eventMap)return;const a=this._eventMap.get(h);if(a)for(const _ of a)_(d)}bindWebSocketEvents(h){h.onopen=d=>{this._isManualClose=!1,this._interruptReconnectTimes=0,this._interruptReconnectTimer&&clearTimeout(this._interruptReconnectTimer),this.startHeartbeat(),this.triggerEvents("open",d)},h.onerror=d=>{this.stopHeartbeat(),console.error("error: websocket error."),this.triggerEvents("error",d)},h.onmessage=d=>{this.triggerEvents("message",d)},h.onclose=d=>{if(this._isManualClose){this.triggerEvents("close",d);return}if(this._interruptConfig.reconnect&&this._interruptReconnectTimes<this._interruptConfig.maxReconnectTimes){this._interruptReconnectTimes++,console.warn(`websocket's connection is interrupt by accident, auto try to reconnect. try times: ${this._interruptReconnectTimes}`),this._interruptReconnectTimer&&clearTimeout(this._interruptReconnectTimer),this._interruptReconnectTimer=setTimeout(()=>{this.innerReconnect()},this._interruptConfig.delay);return}if(this._interruptConfig.reconnect&&this._interruptReconnectTimes===this._interruptConfig.maxReconnectTimes){console.error(`try to reconnect ${this._interruptReconnectTimes} times, unable to establish connection.`),this._ws=null,this._interruptReconnectTimes=0,this.triggerEvents("close",d);return}}}startHeartbeat(){this._heartbeatTimer&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=null);const{message:h,interval:d,once:a}=this._heartbeatConfig;if(a){this.sendMessage(h);return}this._heartbeatTimer=setInterval(()=>{this.sendMessage(h)},d||5e3)}stopHeartbeat(){this._heartbeatTimer&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=null)}innerReconnect(){this._ws&&(this.stopHeartbeat(),this._isManualClose=!1,this._ws=null),this._ws=this._protocols?new WebSocket(this._url,this._protocols):new WebSocket(this._url),this._ws.binaryType=this._binaryType,this.bindWebSocketEvents(this._ws),this.triggerEvents("reconnect",void 0)}open(){this._ws=this._protocols?new WebSocket(this._url,this._protocols):new WebSocket(this._url),this._ws.binaryType=this._binaryType,this.bindWebSocketEvents(this._ws)}close(){this._ws&&(this.stopHeartbeat(),this._isManualClose=!0,this._ws.close(),this._ws=null)}reconnect(){if(this._ws){console.warn("websocket is connecting now, reconnection is unnecessary.");return}this._ws=this._protocols?new WebSocket(this._url,this._protocols):new WebSocket(this._url),this._ws.binaryType=this._binaryType,this.bindWebSocketEvents(this._ws)}destroy(){var h;this._heartbeatTimer&&clearInterval(this._heartbeatTimer),this._interruptReconnectTimer&&clearTimeout(this._interruptReconnectTimer),this._ws&&this.close(),(h=this._eventMap)==null||h.clear(),this._eventMap=null}on(h,d){if(!this._eventMap)return;let a=this._eventMap.get(h);a||(a=new Set),a.add(d),this._eventMap.set(h,a)}off(h,d){if(!this._eventMap)return;const a=this._eventMap.get(h);a&&a.delete(d)}clear(h){if(!this._eventMap)return;const d=this._eventMap.get(h);d&&(d.clear(),this._eventMap.delete(h))}sendMessage(h){if(!this._ws){console.error("error: websocket was not yet opened or was closed.");return}if(this._ws.readyState!==this._ws.OPEN){console.error("error: can not send message, socket is not established.");return}this._ws.send(h)}}function lt(x){return x&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,"default")?x.default:x}var $={};(function(x){var h=function(){var t=new Date,e=4,s=3,r=2,o=1,l=e,f={setLogLevel:function(p){p==this.debug?l=o:p==this.info?l=r:p==this.warn?l=s:(p==this.error,l=e)},debug:function(p,u){console.debug===void 0&&(console.debug=console.log),o>=l&&console.debug("["+h.getDurationString(new Date-t,1e3)+"]","["+p+"]",u)},log:function(p,u){this.debug(p.msg)},info:function(p,u){r>=l&&console.info("["+h.getDurationString(new Date-t,1e3)+"]","["+p+"]",u)},warn:function(p,u){s>=l&&console.warn("["+h.getDurationString(new Date-t,1e3)+"]","["+p+"]",u)},error:function(p,u){e>=l&&console.error("["+h.getDurationString(new Date-t,1e3)+"]","["+p+"]",u)}};return f}();h.getDurationString=function(t,e){var s;function r(c,g){for(var m=""+c,U=m.split(".");U[0].length<g;)U[0]="0"+U[0];return U.join(".")}t<0?(s=!0,t=-t):s=!1;var o=e||1,l=t/o,f=Math.floor(l/3600);l-=f*3600;var p=Math.floor(l/60);l-=p*60;var u=l*1e3;return l=Math.floor(l),u-=l*1e3,u=Math.floor(u),(s?"-":"")+f+":"+r(p,2)+":"+r(l,2)+"."+r(u,3)},h.printRanges=function(t){var e=t.length;if(e>0){for(var s="",r=0;r<e;r++)r>0&&(s+=","),s+="["+h.getDurationString(t.start(r))+","+h.getDurationString(t.end(r))+"]";return s}else return"(empty)"},x.Log=h;var d=function(t){if(t instanceof ArrayBuffer)this.buffer=t,this.dataview=new DataView(t);else throw"Needs an array buffer";this.position=0};d.prototype.getPosition=function(){return this.position},d.prototype.getEndPosition=function(){return this.buffer.byteLength},d.prototype.getLength=function(){return this.buffer.byteLength},d.prototype.seek=function(t){var e=Math.max(0,Math.min(this.buffer.byteLength,t));return this.position=isNaN(e)||!isFinite(e)?0:e,!0},d.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},d.prototype.readAnyInt=function(t,e){var s=0;if(this.position+t<=this.buffer.byteLength){switch(t){case 1:e?s=this.dataview.getInt8(this.position):s=this.dataview.getUint8(this.position);break;case 2:e?s=this.dataview.getInt16(this.position):s=this.dataview.getUint16(this.position);break;case 3:if(e)throw"No method for reading signed 24 bits values";s=this.dataview.getUint8(this.position)<<16,s|=this.dataview.getUint8(this.position+1)<<8,s|=this.dataview.getUint8(this.position+2);break;case 4:e?s=this.dataview.getInt32(this.position):s=this.dataview.getUint32(this.position);break;case 8:if(e)throw"No method for reading signed 64 bits values";s=this.dataview.getUint32(this.position)<<32,s|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+t}return this.position+=t,s}else throw"Not enough bytes in buffer"},d.prototype.readUint8=function(){return this.readAnyInt(1,!1)},d.prototype.readUint16=function(){return this.readAnyInt(2,!1)},d.prototype.readUint24=function(){return this.readAnyInt(3,!1)},d.prototype.readUint32=function(){return this.readAnyInt(4,!1)},d.prototype.readUint64=function(){return this.readAnyInt(8,!1)},d.prototype.readString=function(t){if(this.position+t<=this.buffer.byteLength){for(var e="",s=0;s<t;s++)e+=String.fromCharCode(this.readUint8());return e}else throw"Not enough bytes in buffer"},d.prototype.readCString=function(){for(var t=[];;){var e=this.readUint8();if(e!==0)t.push(e);else break}return String.fromCharCode.apply(null,t)},d.prototype.readInt8=function(){return this.readAnyInt(1,!0)},d.prototype.readInt16=function(){return this.readAnyInt(2,!0)},d.prototype.readInt32=function(){return this.readAnyInt(4,!0)},d.prototype.readInt64=function(){return this.readAnyInt(8,!1)},d.prototype.readUint8Array=function(t){for(var e=new Uint8Array(t),s=0;s<t;s++)e[s]=this.readUint8();return e},d.prototype.readInt16Array=function(t){for(var e=new Int16Array(t),s=0;s<t;s++)e[s]=this.readInt16();return e},d.prototype.readUint16Array=function(t){for(var e=new Int16Array(t),s=0;s<t;s++)e[s]=this.readUint16();return e},d.prototype.readUint32Array=function(t){for(var e=new Uint32Array(t),s=0;s<t;s++)e[s]=this.readUint32();return e},d.prototype.readInt32Array=function(t){for(var e=new Int32Array(t),s=0;s<t;s++)e[s]=this.readInt32();return e},x.MP4BoxStream=d;var a=function(t,e,s){this._byteOffset=e||0,t instanceof ArrayBuffer?this.buffer=t:typeof t=="object"?(this.dataView=t,e&&(this._byteOffset+=e)):this.buffer=new ArrayBuffer(t||0),this.position=0,this.endianness=s??a.LITTLE_ENDIAN};a.prototype={},a.prototype.getPosition=function(){return this.position},a.prototype._realloc=function(t){if(this._dynamicSize){var e=this._byteOffset+this.position+t,s=this._buffer.byteLength;if(e<=s){e>this._byteLength&&(this._byteLength=e);return}for(s<1&&(s=1);e>s;)s*=2;var r=new ArrayBuffer(s),o=new Uint8Array(this._buffer),l=new Uint8Array(r,0,o.length);l.set(o),this.buffer=r,this._byteLength=e}},a.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var t=new ArrayBuffer(this._byteLength),e=new Uint8Array(t),s=new Uint8Array(this._buffer,0,e.length);e.set(s),this.buffer=t}},a.BIG_ENDIAN=!1,a.LITTLE_ENDIAN=!0,a.prototype._byteLength=0,Object.defineProperty(a.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(a.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(t){this._buffer=t,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(a.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(t){this._byteOffset=t,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(a.prototype,"dataView",{get:function(){return this._dataView},set:function(t){this._byteOffset=t.byteOffset,this._buffer=t.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+t.byteLength}}),a.prototype.seek=function(t){var e=Math.max(0,Math.min(this.byteLength,t));this.position=isNaN(e)||!isFinite(e)?0:e},a.prototype.isEof=function(){return this.position>=this._byteLength},a.prototype.mapUint8Array=function(t){this._realloc(t*1);var e=new Uint8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=t*1,e},a.prototype.readInt32Array=function(t,e){t=t??this.byteLength-this.position/4;var s=new Int32Array(t);return a.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,t*s.BYTES_PER_ELEMENT),a.arrayToNative(s,e??this.endianness),this.position+=s.byteLength,s},a.prototype.readInt16Array=function(t,e){t=t??this.byteLength-this.position/2;var s=new Int16Array(t);return a.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,t*s.BYTES_PER_ELEMENT),a.arrayToNative(s,e??this.endianness),this.position+=s.byteLength,s},a.prototype.readInt8Array=function(t){t=t??this.byteLength-this.position;var e=new Int8Array(t);return a.memcpy(e.buffer,0,this.buffer,this.byteOffset+this.position,t*e.BYTES_PER_ELEMENT),this.position+=e.byteLength,e},a.prototype.readUint32Array=function(t,e){t=t??this.byteLength-this.position/4;var s=new Uint32Array(t);return a.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,t*s.BYTES_PER_ELEMENT),a.arrayToNative(s,e??this.endianness),this.position+=s.byteLength,s},a.prototype.readUint16Array=function(t,e){t=t??this.byteLength-this.position/2;var s=new Uint16Array(t);return a.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,t*s.BYTES_PER_ELEMENT),a.arrayToNative(s,e??this.endianness),this.position+=s.byteLength,s},a.prototype.readUint8Array=function(t){t=t??this.byteLength-this.position;var e=new Uint8Array(t);return a.memcpy(e.buffer,0,this.buffer,this.byteOffset+this.position,t*e.BYTES_PER_ELEMENT),this.position+=e.byteLength,e},a.prototype.readFloat64Array=function(t,e){t=t??this.byteLength-this.position/8;var s=new Float64Array(t);return a.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,t*s.BYTES_PER_ELEMENT),a.arrayToNative(s,e??this.endianness),this.position+=s.byteLength,s},a.prototype.readFloat32Array=function(t,e){t=t??this.byteLength-this.position/4;var s=new Float32Array(t);return a.memcpy(s.buffer,0,this.buffer,this.byteOffset+this.position,t*s.BYTES_PER_ELEMENT),a.arrayToNative(s,e??this.endianness),this.position+=s.byteLength,s},a.prototype.readInt32=function(t){var e=this._dataView.getInt32(this.position,t??this.endianness);return this.position+=4,e},a.prototype.readInt16=function(t){var e=this._dataView.getInt16(this.position,t??this.endianness);return this.position+=2,e},a.prototype.readInt8=function(){var t=this._dataView.getInt8(this.position);return this.position+=1,t},a.prototype.readUint32=function(t){var e=this._dataView.getUint32(this.position,t??this.endianness);return this.position+=4,e},a.prototype.readUint16=function(t){var e=this._dataView.getUint16(this.position,t??this.endianness);return this.position+=2,e},a.prototype.readUint8=function(){var t=this._dataView.getUint8(this.position);return this.position+=1,t},a.prototype.readFloat32=function(t){var e=this._dataView.getFloat32(this.position,t??this.endianness);return this.position+=4,e},a.prototype.readFloat64=function(t){var e=this._dataView.getFloat64(this.position,t??this.endianness);return this.position+=8,e},a.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,a.memcpy=function(t,e,s,r,o){var l=new Uint8Array(t,e,o),f=new Uint8Array(s,r,o);l.set(f)},a.arrayToNative=function(t,e){return e==this.endianness?t:this.flipArrayEndianness(t)},a.nativeToEndian=function(t,e){return this.endianness==e?t:this.flipArrayEndianness(t)},a.flipArrayEndianness=function(t){for(var e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),s=0;s<t.byteLength;s+=t.BYTES_PER_ELEMENT)for(var r=s+t.BYTES_PER_ELEMENT-1,o=s;r>o;r--,o++){var l=e[o];e[o]=e[r],e[r]=l}return t},a.prototype.failurePosition=0,String.fromCharCodeUint8=function(t){for(var e=[],s=0;s<t.length;s++)e[s]=t[s];return String.fromCharCode.apply(null,e)},a.prototype.readString=function(t,e){return e==null||e=="ASCII"?String.fromCharCodeUint8.apply(null,[this.mapUint8Array(t??this.byteLength-this.position)]):new TextDecoder(e).decode(this.mapUint8Array(t))},a.prototype.readCString=function(t){var e=this.byteLength-this.position,s=new Uint8Array(this._buffer,this._byteOffset+this.position),r=e;t!=null&&(r=Math.min(t,e));for(var o=0;o<r&&s[o]!==0;o++);var l=String.fromCharCodeUint8.apply(null,[this.mapUint8Array(o)]);return t!=null?this.position+=r-o:o!=e&&(this.position+=1),l};var _=Math.pow(2,32);a.prototype.readInt64=function(){return this.readInt32()*_+this.readUint32()},a.prototype.readUint64=function(){return this.readUint32()*_+this.readUint32()},a.prototype.readInt64=function(){return this.readUint32()*_+this.readUint32()},a.prototype.readUint24=function(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()},x.DataStream=a,a.prototype.save=function(t){var e=new Blob([this.buffer]);if(window.URL&&URL.createObjectURL){var s=window.URL.createObjectURL(e),r=document.createElement("a");document.body.appendChild(r),r.setAttribute("href",s),r.setAttribute("download",t),r.setAttribute("target","_self"),r.click(),window.URL.revokeObjectURL(s)}else throw"DataStream.save: Can't create object URL."},a.prototype._dynamicSize=!0,Object.defineProperty(a.prototype,"dynamicSize",{get:function(){return this._dynamicSize},set:function(t){t||this._trimAlloc(),this._dynamicSize=t}}),a.prototype.shift=function(t){var e=new ArrayBuffer(this._byteLength-t),s=new Uint8Array(e),r=new Uint8Array(this._buffer,t,s.length);s.set(r),this.buffer=e,this.position-=t},a.prototype.writeInt32Array=function(t,e){if(this._realloc(t.length*4),t instanceof Int32Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapInt32Array(t.length,e);else for(var s=0;s<t.length;s++)this.writeInt32(t[s],e)},a.prototype.writeInt16Array=function(t,e){if(this._realloc(t.length*2),t instanceof Int16Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapInt16Array(t.length,e);else for(var s=0;s<t.length;s++)this.writeInt16(t[s],e)},a.prototype.writeInt8Array=function(t){if(this._realloc(t.length*1),t instanceof Int8Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapInt8Array(t.length);else for(var e=0;e<t.length;e++)this.writeInt8(t[e])},a.prototype.writeUint32Array=function(t,e){if(this._realloc(t.length*4),t instanceof Uint32Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapUint32Array(t.length,e);else for(var s=0;s<t.length;s++)this.writeUint32(t[s],e)},a.prototype.writeUint16Array=function(t,e){if(this._realloc(t.length*2),t instanceof Uint16Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapUint16Array(t.length,e);else for(var s=0;s<t.length;s++)this.writeUint16(t[s],e)},a.prototype.writeUint8Array=function(t){if(this._realloc(t.length*1),t instanceof Uint8Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapUint8Array(t.length);else for(var e=0;e<t.length;e++)this.writeUint8(t[e])},a.prototype.writeFloat64Array=function(t,e){if(this._realloc(t.length*8),t instanceof Float64Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapFloat64Array(t.length,e);else for(var s=0;s<t.length;s++)this.writeFloat64(t[s],e)},a.prototype.writeFloat32Array=function(t,e){if(this._realloc(t.length*4),t instanceof Float32Array&&this.byteOffset+this.position%t.BYTES_PER_ELEMENT===0)a.memcpy(this._buffer,this.byteOffset+this.position,t.buffer,0,t.byteLength),this.mapFloat32Array(t.length,e);else for(var s=0;s<t.length;s++)this.writeFloat32(t[s],e)},a.prototype.writeInt32=function(t,e){this._realloc(4),this._dataView.setInt32(this.position,t,e??this.endianness),this.position+=4},a.prototype.writeInt16=function(t,e){this._realloc(2),this._dataView.setInt16(this.position,t,e??this.endianness),this.position+=2},a.prototype.writeInt8=function(t){this._realloc(1),this._dataView.setInt8(this.position,t),this.position+=1},a.prototype.writeUint32=function(t,e){this._realloc(4),this._dataView.setUint32(this.position,t,e??this.endianness),this.position+=4},a.prototype.writeUint16=function(t,e){this._realloc(2),this._dataView.setUint16(this.position,t,e??this.endianness),this.position+=2},a.prototype.writeUint8=function(t){this._realloc(1),this._dataView.setUint8(this.position,t),this.position+=1},a.prototype.writeFloat32=function(t,e){this._realloc(4),this._dataView.setFloat32(this.position,t,e??this.endianness),this.position+=4},a.prototype.writeFloat64=function(t,e){this._realloc(8),this._dataView.setFloat64(this.position,t,e??this.endianness),this.position+=8},a.prototype.writeUCS2String=function(t,e,s){s==null&&(s=t.length);for(var r=0;r<t.length&&r<s;r++)this.writeUint16(t.charCodeAt(r),e);for(;r<s;r++)this.writeUint16(0)},a.prototype.writeString=function(t,e,s){var r=0;if(e==null||e=="ASCII")if(s!=null){var o=Math.min(t.length,s);for(r=0;r<o;r++)this.writeUint8(t.charCodeAt(r));for(;r<s;r++)this.writeUint8(0)}else for(r=0;r<t.length;r++)this.writeUint8(t.charCodeAt(r));else this.writeUint8Array(new TextEncoder(e).encode(t.substring(0,s)))},a.prototype.writeCString=function(t,e){var s=0;if(e!=null){var r=Math.min(t.length,e);for(s=0;s<r;s++)this.writeUint8(t.charCodeAt(s));for(;s<e;s++)this.writeUint8(0)}else{for(s=0;s<t.length;s++)this.writeUint8(t.charCodeAt(s));this.writeUint8(0)}},a.prototype.writeStruct=function(t,e){for(var s=0;s<t.length;s+=2){var r=t[s+1];this.writeType(r,e[t[s]],e)}},a.prototype.writeType=function(t,e,s){var r;if(typeof t=="function")return t(this,e);if(typeof t=="object"&&!(t instanceof Array))return t.set(this,e,s);var o=null,l="ASCII",f=this.position;switch(typeof t=="string"&&/:/.test(t)&&(r=t.split(":"),t=r[0],o=parseInt(r[1])),typeof t=="string"&&/,/.test(t)&&(r=t.split(","),t=r[0],l=parseInt(r[1])),t){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,a.BIG_ENDIAN);break;case"int16be":this.writeInt16(e,a.BIG_ENDIAN);break;case"uint32be":this.writeUint32(e,a.BIG_ENDIAN);break;case"int32be":this.writeInt32(e,a.BIG_ENDIAN);break;case"float32be":this.writeFloat32(e,a.BIG_ENDIAN);break;case"float64be":this.writeFloat64(e,a.BIG_ENDIAN);break;case"uint16le":this.writeUint16(e,a.LITTLE_ENDIAN);break;case"int16le":this.writeInt16(e,a.LITTLE_ENDIAN);break;case"uint32le":this.writeUint32(e,a.LITTLE_ENDIAN);break;case"int32le":this.writeInt32(e,a.LITTLE_ENDIAN);break;case"float32le":this.writeFloat32(e,a.LITTLE_ENDIAN);break;case"float64le":this.writeFloat64(e,a.LITTLE_ENDIAN);break;case"cstring":this.writeCString(e,o);break;case"string":this.writeString(e,l,o);break;case"u16string":this.writeUCS2String(e,this.endianness,o);break;case"u16stringle":this.writeUCS2String(e,a.LITTLE_ENDIAN,o);break;case"u16stringbe":this.writeUCS2String(e,a.BIG_ENDIAN,o);break;default:if(t.length==3){for(var p=t[1],u=0;u<e.length;u++)this.writeType(p,e[u]);break}else{this.writeStruct(t,e);break}}o!=null&&(this.position=f,this._realloc(o),this.position=f+o)},a.prototype.writeUint64=function(t){var e=Math.floor(t/_);this.writeUint32(e),this.writeUint32(t&4294967295)},a.prototype.writeUint24=function(t){this.writeUint8((t&16711680)>>16),this.writeUint8((t&65280)>>8),this.writeUint8(t&255)},a.prototype.adjustUint32=function(t,e){var s=this.position;this.seek(t),this.writeUint32(e),this.seek(s)},a.prototype.mapInt32Array=function(t,e){this._realloc(t*4);var s=new Int32Array(this._buffer,this.byteOffset+this.position,t);return a.arrayToNative(s,e??this.endianness),this.position+=t*4,s},a.prototype.mapInt16Array=function(t,e){this._realloc(t*2);var s=new Int16Array(this._buffer,this.byteOffset+this.position,t);return a.arrayToNative(s,e??this.endianness),this.position+=t*2,s},a.prototype.mapInt8Array=function(t){this._realloc(t*1);var e=new Int8Array(this._buffer,this.byteOffset+this.position,t);return this.position+=t*1,e},a.prototype.mapUint32Array=function(t,e){this._realloc(t*4);var s=new Uint32Array(this._buffer,this.byteOffset+this.position,t);return a.arrayToNative(s,e??this.endianness),this.position+=t*4,s},a.prototype.mapUint16Array=function(t,e){this._realloc(t*2);var s=new Uint16Array(this._buffer,this.byteOffset+this.position,t);return a.arrayToNative(s,e??this.endianness),this.position+=t*2,s},a.prototype.mapFloat64Array=function(t,e){this._realloc(t*8);var s=new Float64Array(this._buffer,this.byteOffset+this.position,t);return a.arrayToNative(s,e??this.endianness),this.position+=t*8,s},a.prototype.mapFloat32Array=function(t,e){this._realloc(t*4);var s=new Float32Array(this._buffer,this.byteOffset+this.position,t);return a.arrayToNative(s,e??this.endianness),this.position+=t*4,s};var S=function(t){this.buffers=[],this.bufferIndex=-1,t&&(this.insertBuffer(t),this.bufferIndex=0)};S.prototype=new a(new ArrayBuffer,0,a.BIG_ENDIAN),S.prototype.initialized=function(){var t;return this.bufferIndex>-1?!0:this.buffers.length>0?(t=this.buffers[0],t.fileStart===0?(this.buffer=t,this.bufferIndex=0,h.debug("MultiBufferStream","Stream ready for parsing"),!0):(h.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1)):(h.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1)},ArrayBuffer.concat=function(t,e){h.debug("ArrayBuffer","Trying to create a new buffer of size: "+(t.byteLength+e.byteLength));var s=new Uint8Array(t.byteLength+e.byteLength);return s.set(new Uint8Array(t),0),s.set(new Uint8Array(e),t.byteLength),s.buffer},S.prototype.reduceBuffer=function(t,e,s){var r;return r=new Uint8Array(s),r.set(new Uint8Array(t,e,s)),r.buffer.fileStart=t.fileStart+e,r.buffer.usedBytes=0,r.buffer},S.prototype.insertBuffer=function(t){for(var e=!0,s=0;s<this.buffers.length;s++){var r=this.buffers[s];if(t.fileStart<=r.fileStart){if(t.fileStart===r.fileStart)if(t.byteLength>r.byteLength){this.buffers.splice(s,1),s--;continue}else h.warn("MultiBufferStream","Buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+") already appended, ignoring");else t.fileStart+t.byteLength<=r.fileStart||(t=this.reduceBuffer(t,0,r.fileStart-t.fileStart)),h.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.splice(s,0,t),s===0&&(this.buffer=t);e=!1;break}else if(t.fileStart<r.fileStart+r.byteLength){var o=r.fileStart+r.byteLength-t.fileStart,l=t.byteLength-o;if(l>0)t=this.reduceBuffer(t,o,l);else{e=!1;break}}}e&&(h.debug("MultiBufferStream","Appending new buffer (fileStart: "+t.fileStart+" - Length: "+t.byteLength+")"),this.buffers.push(t),s===0&&(this.buffer=t))},S.prototype.logBufferLevel=function(t){var e,s,r,o,l=[],f,p="";for(r=0,o=0,e=0;e<this.buffers.length;e++)s=this.buffers[e],e===0?(f={},l.push(f),f.start=s.fileStart,f.end=s.fileStart+s.byteLength,p+="["+f.start+"-"):f.end===s.fileStart?f.end=s.fileStart+s.byteLength:(f={},f.start=s.fileStart,p+=l[l.length-1].end-1+"], ["+f.start+"-",f.end=s.fileStart+s.byteLength,l.push(f)),r+=s.usedBytes,o+=s.byteLength;l.length>0&&(p+=f.end-1+"]");var u=t?h.info:h.debug;this.buffers.length===0?u("MultiBufferStream","No more buffer in memory"):u("MultiBufferStream",""+this.buffers.length+" stored buffer(s) ("+r+"/"+o+" bytes), continuous ranges: "+p)},S.prototype.cleanBuffers=function(){var t,e;for(t=0;t<this.buffers.length;t++)e=this.buffers[t],e.usedBytes===e.byteLength&&(h.debug("MultiBufferStream","Removing buffer #"+t),this.buffers.splice(t,1),t--)},S.prototype.mergeNextBuffer=function(){var t;if(this.bufferIndex+1<this.buffers.length)if(t=this.buffers[this.bufferIndex+1],t.fileStart===this.buffer.fileStart+this.buffer.byteLength){var e=this.buffer.byteLength,s=this.buffer.usedBytes,r=this.buffer.fileStart;return this.buffers[this.bufferIndex]=ArrayBuffer.concat(this.buffer,t),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=s,this.buffer.fileStart=r,h.debug("ISOFile","Concatenating buffer for box parsing (length: "+e+"->"+this.buffer.byteLength+")"),!0}else return!1;else return!1},S.prototype.findPosition=function(t,e,s){var r,o=null,l=-1;for(t===!0?r=0:r=this.bufferIndex;r<this.buffers.length&&(o=this.buffers[r],o.fileStart<=e);){l=r,s&&(o.fileStart+o.byteLength<=e?o.usedBytes=o.byteLength:o.usedBytes=e-o.fileStart,this.logBufferLevel());r++}return l!==-1?(o=this.buffers[l],o.fileStart+o.byteLength>=e?(h.debug("MultiBufferStream","Found position in existing buffer #"+l),l):-1):-1},S.prototype.findEndContiguousBuf=function(t){var e,s,r,o=t!==void 0?t:this.bufferIndex;if(s=this.buffers[o],this.buffers.length>o+1)for(e=o+1;e<this.buffers.length&&(r=this.buffers[e],r.fileStart===s.fileStart+s.byteLength);e++)s=r;return s.fileStart+s.byteLength},S.prototype.getEndFilePositionAfter=function(t){var e=this.findPosition(!0,t,!1);return e!==-1?this.findEndContiguousBuf(e):t},S.prototype.addUsedBytes=function(t){this.buffer.usedBytes+=t,this.logBufferLevel()},S.prototype.setAllUsedBytes=function(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()},S.prototype.seek=function(t,e,s){var r;return r=this.findPosition(e,t,s),r!==-1?(this.buffer=this.buffers[r],this.bufferIndex=r,this.position=t-this.buffer.fileStart,h.debug("MultiBufferStream","Repositioning parser at buffer position: "+this.position),!0):(h.debug("MultiBufferStream","Position "+t+" not found in buffered data"),!1)},S.prototype.getPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.position},S.prototype.getLength=function(){return this.byteLength},S.prototype.getEndPosition=function(){if(this.bufferIndex===-1||this.buffers[this.bufferIndex]===null)throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.byteLength},x.MultiBufferStream=S;var w=function(){var t=3,e=4,s=5,r=6,o=[];o[t]="ES_Descriptor",o[e]="DecoderConfigDescriptor",o[s]="DecoderSpecificInfo",o[r]="SLConfigDescriptor",this.getDescriptorName=function(p){return o[p]};var l=this,f={};return this.parseOneDescriptor=function(p){var u=0,c,g,m;for(c=p.readUint8(),m=p.readUint8();m&128;)u=(u<<7)+(m&127),m=p.readUint8();return u=(u<<7)+(m&127),h.debug("MPEG4DescriptorParser","Found "+(o[c]||"Descriptor "+c)+", size "+u+" at position "+p.getPosition()),o[c]?g=new f[o[c]](u):g=new f.Descriptor(u),g.parse(p),g},f.Descriptor=function(p,u){this.tag=p,this.size=u,this.descs=[]},f.Descriptor.prototype.parse=function(p){this.data=p.readUint8Array(this.size)},f.Descriptor.prototype.findDescriptor=function(p){for(var u=0;u<this.descs.length;u++)if(this.descs[u].tag==p)return this.descs[u];return null},f.Descriptor.prototype.parseRemainingDescriptors=function(p){for(var u=p.position;p.position<u+this.size;){var c=l.parseOneDescriptor(p);this.descs.push(c)}},f.ES_Descriptor=function(p){f.Descriptor.call(this,t,p)},f.ES_Descriptor.prototype=new f.Descriptor,f.ES_Descriptor.prototype.parse=function(p){if(this.ES_ID=p.readUint16(),this.flags=p.readUint8(),this.size-=3,this.flags&128?(this.dependsOn_ES_ID=p.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,this.flags&64){var u=p.readUint8();this.URL=p.readString(u),this.size-=u+1}else this.URL="";this.flags&32?(this.OCR_ES_ID=p.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(p)},f.ES_Descriptor.prototype.getOTI=function(p){var u=this.findDescriptor(e);return u?u.oti:0},f.ES_Descriptor.prototype.getAudioConfig=function(p){var u=this.findDescriptor(e);if(!u)return null;var c=u.findDescriptor(s);if(c&&c.data){var g=(c.data[0]&248)>>3;return g===31&&c.data.length>=2&&(g=32+((c.data[0]&7)<<3)+((c.data[1]&224)>>5)),g}else return null},f.DecoderConfigDescriptor=function(p){f.Descriptor.call(this,e,p)},f.DecoderConfigDescriptor.prototype=new f.Descriptor,f.DecoderConfigDescriptor.prototype.parse=function(p){this.oti=p.readUint8(),this.streamType=p.readUint8(),this.upStream=(this.streamType>>1&1)!==0,this.streamType=this.streamType>>>2,this.bufferSize=p.readUint24(),this.maxBitrate=p.readUint32(),this.avgBitrate=p.readUint32(),this.size-=13,this.parseRemainingDescriptors(p)},f.DecoderSpecificInfo=function(p){f.Descriptor.call(this,s,p)},f.DecoderSpecificInfo.prototype=new f.Descriptor,f.SLConfigDescriptor=function(p){f.Descriptor.call(this,r,p)},f.SLConfigDescriptor.prototype=new f.Descriptor,this};x.MPEG4DescriptorParser=w;var n={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:[{type:"mdat",name:"MediaDataBox"},{type:"idat",name:"ItemDataBox"},{type:"free",name:"FreeSpaceBox"},{type:"skip",name:"FreeSpaceBox"},{type:"meco",name:"AdditionalMetadataContainerBox"},{type:"strk",name:"SubTrackBox"}],FULL_BOXES:[{type:"hmhd",name:"HintMediaHeaderBox"},{type:"nmhd",name:"NullMediaHeaderBox"},{type:"iods",name:"ObjectDescriptorBox"},{type:"xml ",name:"XMLBox"},{type:"bxml",name:"BinaryXMLBox"},{type:"ipro",name:"ItemProtectionBox"},{type:"mere",name:"MetaboxRelationBox"}],CONTAINER_BOXES:[[{type:"moov",name:"CompressedMovieBox"},["trak","pssh"]],[{type:"trak",name:"TrackBox"}],[{type:"edts",name:"EditBox"}],[{type:"mdia",name:"MediaBox"}],[{type:"minf",name:"MediaInformationBox"}],[{type:"dinf",name:"DataInformationBox"}],[{type:"stbl",name:"SampleTableBox"},["sgpd","sbgp"]],[{type:"mvex",name:"MovieExtendsBox"},["trex"]],[{type:"moof",name:"CompressedMovieFragmentBox"},["traf"]],[{type:"traf",name:"TrackFragmentBox"},["trun","sgpd","sbgp"]],[{type:"vttc",name:"VTTCueBox"}],[{type:"tref",name:"TrackReferenceBox"}],[{type:"iref",name:"ItemReferenceBox"}],[{type:"mfra",name:"MovieFragmentRandomAccessBox"},["tfra"]],[{type:"meco",name:"AdditionalMetadataContainerBox"}],[{type:"hnti",name:"trackhintinformation"}],[{type:"hinf",name:"hintstatisticsbox"}],[{type:"strk",name:"SubTrackBox"}],[{type:"strd",name:"SubTrackDefinitionBox"}],[{type:"sinf",name:"ProtectionSchemeInfoBox"}],[{type:"rinf",name:"RestrictedSchemeInfoBox"}],[{type:"schi",name:"SchemeInformationBox"}],[{type:"trgr",name:"TrackGroupBox"}],[{type:"udta",name:"UserDataBox"},["kind"]],[{type:"iprp",name:"ItemPropertiesBox"},["ipma"]],[{type:"ipco",name:"ItemPropertyContainerBox"}],[{type:"grpl",name:"GroupsListBox"}],[{type:"j2kH",name:"J2KHeaderInfoBox"}],[{type:"etyp",name:"ExtendedTypeBox"},["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){n.FullBox.prototype=new n.Box,n.ContainerBox.prototype=new n.Box,n.SampleEntry.prototype=new n.Box,n.TrackGroupTypeBox.prototype=new n.FullBox,n.BASIC_BOXES.forEach(function(t){n.createBoxCtor(t.type,t.name)}),n.FULL_BOXES.forEach(function(t){n.createFullBoxCtor(t.type,t.name)}),n.CONTAINER_BOXES.forEach(function(t){n.createContainerBoxCtor(t[0].type,t[0].name,null,t[1])})},Box:function(t,e,s,r){this.type=t,this.box_name=s,this.size=e,this.uuid=r},FullBox:function(t,e,s,r){n.Box.call(this,t,e,s,r),this.flags=0,this.version=0},ContainerBox:function(t,e,s,r){n.Box.call(this,t,e,s,r),this.boxes=[]},SampleEntry:function(t,e,s,r){n.ContainerBox.call(this,t,e),this.hdr_size=s,this.start=r},SampleGroupEntry:function(t){this.grouping_type=t},TrackGroupTypeBox:function(t,e){n.FullBox.call(this,t,e)},createBoxCtor:function(t,e,s){n.boxCodes.push(t),n[t+"Box"]=function(r){n.Box.call(this,t,r,e)},n[t+"Box"].prototype=new n.Box,s&&(n[t+"Box"].prototype.parse=s)},createFullBoxCtor:function(t,e,s){n[t+"Box"]=function(r){n.FullBox.call(this,t,r,e)},n[t+"Box"].prototype=new n.FullBox,n[t+"Box"].prototype.parse=function(r){this.parseFullHeader(r),s&&s.call(this,r)}},addSubBoxArrays:function(t){if(t){this.subBoxNames=t;for(var e=t.length,s=0;s<e;s++)this[t[s]+"s"]=[]}},createContainerBoxCtor:function(t,e,s,r){n[t+"Box"]=function(o){n.ContainerBox.call(this,t,o,e),n.addSubBoxArrays.call(this,r)},n[t+"Box"].prototype=new n.ContainerBox,s&&(n[t+"Box"].prototype.parse=s)},createMediaSampleEntryCtor:function(t,e,s){n.sampleEntryCodes[t]=[],n[t+"SampleEntry"]=function(r,o){n.SampleEntry.call(this,r,o),n.addSubBoxArrays.call(this,s)},n[t+"SampleEntry"].prototype=new n.SampleEntry,e&&(n[t+"SampleEntry"].prototype.parse=e)},createSampleEntryCtor:function(t,e,s,r){n.sampleEntryCodes[t].push(e),n[e+"SampleEntry"]=function(o){n[t+"SampleEntry"].call(this,e,o),n.addSubBoxArrays.call(this,r)},n[e+"SampleEntry"].prototype=new n[t+"SampleEntry"],s&&(n[e+"SampleEntry"].prototype.parse=s)},createEncryptedSampleEntryCtor:function(t,e,s){n.createSampleEntryCtor.call(this,t,e,s,["sinf"])},createSampleGroupCtor:function(t,e){n[t+"SampleGroupEntry"]=function(s){n.SampleGroupEntry.call(this,t,s)},n[t+"SampleGroupEntry"].prototype=new n.SampleGroupEntry,e&&(n[t+"SampleGroupEntry"].prototype.parse=e)},createTrackGroupCtor:function(t,e){n[t+"TrackGroupTypeBox"]=function(s){n.TrackGroupTypeBox.call(this,t,s)},n[t+"TrackGroupTypeBox"].prototype=new n.TrackGroupTypeBox,e&&(n[t+"TrackGroupTypeBox"].prototype.parse=e)},createUUIDBox:function(t,e,s,r,o){n.UUIDs.push(t),n.UUIDBoxes[t]=function(l){s?n.FullBox.call(this,"uuid",l,e,t):r?n.ContainerBox.call(this,"uuid",l,e,t):n.Box.call(this,"uuid",l,e,t)},n.UUIDBoxes[t].prototype=s?new n.FullBox:r?new n.ContainerBox:new n.Box,o&&(s?n.UUIDBoxes[t].prototype.parse=function(l){this.parseFullHeader(l),o&&o.call(this,l)}:n.UUIDBoxes[t].prototype.parse=o)}};n.initialize(),n.TKHD_FLAG_ENABLED=1,n.TKHD_FLAG_IN_MOVIE=2,n.TKHD_FLAG_IN_PREVIEW=4,n.TFHD_FLAG_BASE_DATA_OFFSET=1,n.TFHD_FLAG_SAMPLE_DESC=2,n.TFHD_FLAG_SAMPLE_DUR=8,n.TFHD_FLAG_SAMPLE_SIZE=16,n.TFHD_FLAG_SAMPLE_FLAGS=32,n.TFHD_FLAG_DUR_EMPTY=65536,n.TFHD_FLAG_DEFAULT_BASE_IS_MOOF=131072,n.TRUN_FLAGS_DATA_OFFSET=1,n.TRUN_FLAGS_FIRST_FLAG=4,n.TRUN_FLAGS_DURATION=256,n.TRUN_FLAGS_SIZE=512,n.TRUN_FLAGS_FLAGS=1024,n.TRUN_FLAGS_CTS_OFFSET=2048,n.Box.prototype.add=function(t){return this.addBox(new n[t+"Box"])},n.Box.prototype.addBox=function(t){return this.boxes.push(t),this[t.type+"s"]?this[t.type+"s"].push(t):this[t.type]=t,t},n.Box.prototype.set=function(t,e){return this[t]=e,this},n.Box.prototype.addEntry=function(t,e){var s=e||"entries";return this[s]||(this[s]=[]),this[s].push(t),this},x.BoxParser=n,n.parseUUID=function(t){return n.parseHex16(t)},n.parseHex16=function(t){for(var e="",s=0;s<16;s++){var r=t.readUint8().toString(16);e+=r.length===1?"0"+r:r}return e},n.parseOneBox=function(t,e,s){var r,o=t.getPosition(),l=0,f,p;if(t.getEndPosition()-o<8)return h.debug("BoxParser","Not enough data in stream to parse the type and size of the box"),{code:n.ERR_NOT_ENOUGH_DATA};if(s&&s<8)return h.debug("BoxParser","Not enough bytes left in the parent box to parse a new box"),{code:n.ERR_NOT_ENOUGH_DATA};var u=t.readUint32(),c=t.readString(4),g=c;if(h.debug("BoxParser","Found box of type '"+c+"' and size "+u+" at position "+o),l=8,c=="uuid"){if(t.getEndPosition()-t.getPosition()<16||s-l<16)return t.seek(o),h.debug("BoxParser","Not enough bytes left in the parent box to parse a UUID box"),{code:n.ERR_NOT_ENOUGH_DATA};p=n.parseUUID(t),l+=16,g=p}if(u==1){if(t.getEndPosition()-t.getPosition()<8||s&&s-l<8)return t.seek(o),h.warn("BoxParser",'Not enough data in stream to parse the extended size of the "'+c+'" box'),{code:n.ERR_NOT_ENOUGH_DATA};u=t.readUint64(),l+=8}else if(u===0){if(s)u=s;else if(c!=="mdat")return h.error("BoxParser","Unlimited box size not supported for type: '"+c+"'"),r=new n.Box(c,u),{code:n.OK,box:r,size:r.size}}return u!==0&&u<l?(h.error("BoxParser","Box of type "+c+" has an invalid size "+u+" (too small to be a box)"),{code:n.ERR_NOT_ENOUGH_DATA,type:c,size:u,hdr_size:l,start:o}):u!==0&&s&&u>s?(h.error("BoxParser","Box of type '"+c+"' has a size "+u+" greater than its container size "+s),{code:n.ERR_NOT_ENOUGH_DATA,type:c,size:u,hdr_size:l,start:o}):u!==0&&o+u>t.getEndPosition()?(t.seek(o),h.info("BoxParser","Not enough data in stream to parse the entire '"+c+"' box"),{code:n.ERR_NOT_ENOUGH_DATA,type:c,size:u,hdr_size:l,start:o}):e?{code:n.OK,type:c,size:u,hdr_size:l,start:o}:(n[c+"Box"]?r=new n[c+"Box"](u):c!=="uuid"?(h.warn("BoxParser","Unknown box type: '"+c+"'"),r=new n.Box(c,u),r.has_unparsed_data=!0):n.UUIDBoxes[p]?r=new n.UUIDBoxes[p](u):(h.warn("BoxParser","Unknown uuid type: '"+p+"'"),r=new n.Box(c,u),r.uuid=p,r.has_unparsed_data=!0),r.hdr_size=l,r.start=o,r.write===n.Box.prototype.write&&r.type!=="mdat"&&(h.info("BoxParser","'"+g+"' box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(t)),r.parse(t),f=t.getPosition()-(r.start+r.size),f<0?(h.warn("BoxParser","Parsing of box '"+g+"' did not read the entire indicated box data size (missing "+-f+" bytes), seeking forward"),t.seek(r.start+r.size)):f>0&&(h.error("BoxParser","Parsing of box '"+g+"' read "+f+" more bytes than the indicated box data size, seeking backwards"),r.size!==0&&t.seek(r.start+r.size)),{code:n.OK,box:r,size:r.size})},n.Box.prototype.parse=function(t){this.type!="mdat"?this.data=t.readUint8Array(this.size-this.hdr_size):this.size===0?t.seek(t.getEndPosition()):t.seek(this.start+this.size)},n.Box.prototype.parseDataAndRewind=function(t){this.data=t.readUint8Array(this.size-this.hdr_size),t.position-=this.size-this.hdr_size},n.FullBox.prototype.parseDataAndRewind=function(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,t.position-=this.size-this.hdr_size},n.FullBox.prototype.parseFullHeader=function(t){this.version=t.readUint8(),this.flags=t.readUint24(),this.hdr_size+=4},n.FullBox.prototype.parse=function(t){this.parseFullHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)},n.ContainerBox.prototype.parse=function(t){for(var e,s;t.getPosition()<this.start+this.size;)if(e=n.parseOneBox(t,!1,this.size-(t.getPosition()-this.start)),e.code===n.OK)if(s=e.box,this.boxes.push(s),this.subBoxNames&&this.subBoxNames.indexOf(s.type)!=-1)this[this.subBoxNames[this.subBoxNames.indexOf(s.type)]+"s"].push(s);else{var r=s.type!=="uuid"?s.type:s.uuid;this[r]?h.warn("Box of type "+r+" already stored in field of this type"):this[r]=s}else return},n.Box.prototype.parseLanguage=function(t){this.language=t.readUint16();var e=[];e[0]=this.language>>10&31,e[1]=this.language>>5&31,e[2]=this.language&31,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},n.SAMPLE_ENTRY_TYPE_VISUAL="Visual",n.SAMPLE_ENTRY_TYPE_AUDIO="Audio",n.SAMPLE_ENTRY_TYPE_HINT="Hint",n.SAMPLE_ENTRY_TYPE_METADATA="Metadata",n.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",n.SAMPLE_ENTRY_TYPE_SYSTEM="System",n.SAMPLE_ENTRY_TYPE_TEXT="Text",n.SampleEntry.prototype.parseHeader=function(t){t.readUint8Array(6),this.data_reference_index=t.readUint16(),this.hdr_size+=8},n.SampleEntry.prototype.parse=function(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size)},n.SampleEntry.prototype.parseDataAndRewind=function(t){this.parseHeader(t),this.data=t.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,t.position-=this.size-this.hdr_size},n.SampleEntry.prototype.parseFooter=function(t){n.ContainerBox.prototype.parse.call(this,t)},n.createMediaSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_HINT),n.createMediaSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_METADATA),n.createMediaSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SUBTITLE),n.createMediaSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SYSTEM),n.createMediaSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_TEXT),n.createMediaSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,function(t){var e;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(),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)}),n.createMediaSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,function(t){this.parseHeader(t),t.readUint32Array(2),this.channel_count=t.readUint16(),this.samplesize=t.readUint16(),t.readUint16(),t.readUint16(),this.samplerate=t.readUint32()/65536,this.parseFooter(t)}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"fLaC"),n.createEncryptedSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),n.createEncryptedSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),n.createEncryptedSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),n.createEncryptedSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),n.createEncryptedSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_TEXT,"enct"),n.createEncryptedSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_METADATA,"encm"),n.createBoxCtor("a1lx","AV1LayeredImageIndexingProperty",function(t){var e=t.readUint8()&1,s=((e&1)+1)*16;this.layer_size=[];for(var r=0;r<3;r++)s==16?this.layer_size[r]=t.readUint16():this.layer_size[r]=t.readUint32()}),n.createBoxCtor("a1op","OperatingPointSelectorProperty",function(t){this.op_index=t.readUint8()}),n.createFullBoxCtor("auxC","AuxiliaryTypeProperty",function(t){this.aux_type=t.readCString();var e=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=t.readUint8Array(e)}),n.createBoxCtor("av1C","AV1CodecConfigurationBox",function(t){var e=t.readUint8();if((e>>7&1)!==1){h.error("av1C marker problem");return}if(this.version=e&127,this.version!==1){h.error("av1C version "+this.version+" not supported");return}if(e=t.readUint8(),this.seq_profile=e>>5&7,this.seq_level_idx_0=e&31,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=e&3,e=t.readUint8(),this.reserved_1=e>>5&7,this.reserved_1!==0){h.error("av1C reserved_1 parsing problem");return}if(this.initial_presentation_delay_present=e>>4&1,this.initial_presentation_delay_present===1)this.initial_presentation_delay_minus_one=e&15;else if(this.reserved_2=e&15,this.reserved_2!==0){h.error("av1C reserved_2 parsing problem");return}var s=this.size-this.hdr_size-4;this.configOBUs=t.readUint8Array(s)});function C(t){var e="<table class='inner-table'>";e+="<thead><tr><th>length</th><th>nalu_data</th></tr></thead>",e+="<tbody>";for(var s=0;s<t.length;s++){var r=t[s];e+="<tr>",e+="<td>"+r.length+"</td>",e+="<td>",e+=r.nalu.reduce(function(o,l){return o+l.toString(16).padStart(2,"0")},"0x"),e+="</td></tr>"}return e+="</tbody></table>",e}n.createBoxCtor("avcC","AVCConfigurationBox",function(t){var e,s;for(this.configurationVersion=t.readUint8(),this.AVCProfileIndication=t.readUint8(),this.profile_compatibility=t.readUint8(),this.AVCLevelIndication=t.readUint8(),this.lengthSizeMinusOne=t.readUint8()&3,this.nb_SPS_nalus=t.readUint8()&31,s=this.size-this.hdr_size-6,this.SPS=[],this.SPS.toString=function(){return C(this)},e=0;e<this.nb_SPS_nalus;e++)this.SPS[e]={},this.SPS[e].length=t.readUint16(),this.SPS[e].nalu=t.readUint8Array(this.SPS[e].length),s-=2+this.SPS[e].length;for(this.nb_PPS_nalus=t.readUint8(),s--,this.PPS=[],this.PPS.toString=function(){return C(this)},e=0;e<this.nb_PPS_nalus;e++)this.PPS[e]={},this.PPS[e].length=t.readUint16(),this.PPS[e].nalu=t.readUint8Array(this.PPS[e].length),s-=2+this.PPS[e].length;s>0&&(this.ext=t.readUint8Array(s))}),n.createBoxCtor("btrt","BitRateBox",function(t){this.bufferSizeDB=t.readUint32(),this.maxBitrate=t.readUint32(),this.avgBitrate=t.readUint32()}),n.createFullBoxCtor("ccst","CodingConstraintsBox",function(t){var e=t.readUint8();this.all_ref_pics_intra=(e&128)==128,this.intra_pred_used=(e&64)==64,this.max_ref_per_pic=(e&63)>>2,t.readUint24()}),n.createBoxCtor("cdef","ComponentDefinitionBox",function(t){var e;for(this.channel_count=t.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],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())}),n.createBoxCtor("clap","CleanApertureBox",function(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()}),n.createBoxCtor("clli","ContentLightLevelBox",function(t){this.max_content_light_level=t.readUint16(),this.max_pic_average_light_level=t.readUint16()}),n.createFullBoxCtor("cmex","CameraExtrinsicMatrixProperty",function(t){this.flags&1&&(this.pos_x=t.readInt32()),this.flags&2&&(this.pos_y=t.readInt32()),this.flags&4&&(this.pos_z=t.readInt32()),this.flags&8&&(this.version==0?this.flags&16?(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==1),this.flags&32&&(this.id=t.readUint32())}),n.createFullBoxCtor("cmin","CameraIntrinsicMatrixProperty",function(t){this.focal_length_x=t.readInt32(),this.principal_point_x=t.readInt32(),this.principal_point_y=t.readInt32(),this.flags&1&&(this.focal_length_y=t.readInt32(),this.skew_factor=t.readInt32())}),n.createBoxCtor("cmpd","ComponentDefinitionBox",function(t){for(this.component_count=t.readUint32(),this.component_types=[],this.component_type_urls=[],i=0;i<this.component_count;i++){var e=t.readUint16();this.component_types.push(e),e>=32768&&this.component_type_urls.push(t.readCString())}}),n.createFullBoxCtor("co64","ChunkLargeOffsetBox",function(t){var e,s;if(e=t.readUint32(),this.chunk_offsets=[],this.version===0)for(s=0;s<e;s++)this.chunk_offsets.push(t.readUint64())}),n.createFullBoxCtor("CoLL","ContentLightLevelBox",function(t){this.maxCLL=t.readUint16(),this.maxFALL=t.readUint16()}),n.createBoxCtor("colr","ColourInformationBox",function(t){if(this.colour_type=t.readString(4),this.colour_type==="nclx"){this.colour_primaries=t.readUint16(),this.transfer_characteristics=t.readUint16(),this.matrix_coefficients=t.readUint16();var e=t.readUint8();this.full_range_flag=e>>7}else this.colour_type==="rICC"?this.ICC_profile=t.readUint8Array(this.size-4):this.colour_type==="prof"&&(this.ICC_profile=t.readUint8Array(this.size-4))}),n.createFullBoxCtor("cprt","CopyrightBox",function(t){this.parseLanguage(t),this.notice=t.readCString()}),n.createFullBoxCtor("cslg","CompositionToDecodeBox",function(t){this.version===0&&(this.compositionToDTSShift=t.readInt32(),this.leastDecodeToDisplayDelta=t.readInt32(),this.greatestDecodeToDisplayDelta=t.readInt32(),this.compositionStartTime=t.readInt32(),this.compositionEndTime=t.readInt32())}),n.createFullBoxCtor("ctts","CompositionOffsetBox",function(t){var e,s;if(e=t.readUint32(),this.sample_counts=[],this.sample_offsets=[],this.version===0)for(s=0;s<e;s++){this.sample_counts.push(t.readUint32());var r=t.readInt32();r<0&&h.warn("BoxParser","ctts box uses negative values without using version 1"),this.sample_offsets.push(r)}else if(this.version==1)for(s=0;s<e;s++)this.sample_counts.push(t.readUint32()),this.sample_offsets.push(t.readInt32())}),n.createBoxCtor("dac3","AC3SpecificBox",function(t){var e=t.readUint8(),s=t.readUint8(),r=t.readUint8();this.fscod=e>>6,this.bsid=e>>1&31,this.bsmod=(e&1)<<2|s>>6&3,this.acmod=s>>3&7,this.lfeon=s>>2&1,this.bit_rate_code=s&3|r>>5&7}),n.createBoxCtor("dec3","EC3SpecificBox",function(t){var e=t.readUint16();this.data_rate=e>>3,this.num_ind_sub=e&7,this.ind_subs=[];for(var s=0;s<this.num_ind_sub+1;s++){var r={};this.ind_subs.push(r);var o=t.readUint8(),l=t.readUint8(),f=t.readUint8();r.fscod=o>>6,r.bsid=o>>1&31,r.bsmod=(o&1)<<4|l>>4&15,r.acmod=l>>1&7,r.lfeon=l&1,r.num_dep_sub=f>>1&15,r.num_dep_sub>0&&(r.chan_loc=(f&1)<<8|t.readUint8())}}),n.createFullBoxCtor("dfLa","FLACSpecificBox",function(t){var e=127,s=128,r=[],o=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];do{var l=t.readUint8(),f=Math.min(l&e,o.length-1);if(f?t.readUint8Array(t.readUint24()):(t.readUint8Array(13),this.samplerate=t.readUint32()>>12,t.readUint8Array(20)),r.push(o[f]),l&s)break}while(!0);this.numMetadataBlocks=r.length+" ("+r.join(", ")+")"}),n.createBoxCtor("dimm","hintimmediateBytesSent",function(t){this.bytessent=t.readUint64()}),n.createBoxCtor("dmax","hintlongestpacket",function(t){this.time=t.readUint32()}),n.createBoxCtor("dmed","hintmediaBytesSent",function(t){this.bytessent=t.readUint64()}),n.createBoxCtor("dOps","OpusSpecificBox",function(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(),this.ChannelMappingFamily!==0){this.StreamCount=t.readUint8(),this.CoupledCount=t.readUint8(),this.ChannelMapping=[];for(var e=0;e<this.OutputChannelCount;e++)this.ChannelMapping[e]=t.readUint8()}}),n.createFullBoxCtor("dref","DataReferenceBox",function(t){var e,s;this.entries=[];for(var r=t.readUint32(),o=0;o<r;o++)if(e=n.parseOneBox(t,!1,this.size-(t.getPosition()-this.start)),e.code===n.OK)s=e.box,this.entries.push(s);else return}),n.createBoxCtor("drep","hintrepeatedBytesSent",function(t){this.bytessent=t.readUint64()}),n.createFullBoxCtor("elng","ExtendedLanguageBox",function(t){this.extended_language=t.readString(this.size-this.hdr_size)}),n.createFullBoxCtor("elst","EditListBox",function(t){this.entries=[];for(var e=t.readUint32(),s=0;s<e;s++){var r={};this.entries.push(r),this.version===1?(r.segment_duration=t.readUint64(),r.media_time=t.readInt64()):(r.segment_duration=t.readUint32(),r.media_time=t.readInt32()),r.media_rate_integer=t.readInt16(),r.media_rate_fraction=t.readInt16()}}),n.createFullBoxCtor("emsg","EventMessageBox",function(t){this.version==1?(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());var e=this.size-this.hdr_size-(4*4+(this.scheme_id_uri.length+1)+(this.value.length+1));this.version==1&&(e-=4),this.message_data=t.readUint8Array(e)}),n.createEntityToGroupCtor=function(t,e){n[t+"Box"]=function(s){n.FullBox.call(this,t,s)},n[t+"Box"].prototype=new n.FullBox,n[t+"Box"].prototype.parse=function(s){if(this.parseFullHeader(s),e)e.call(this,s);else for(this.group_id=s.readUint32(),this.num_entities_in_group=s.readUint32(),this.entity_ids=[],i=0;i<this.num_entities_in_group;i++){var r=s.readUint32();this.entity_ids.push(r)}}},n.createEntityToGroupCtor("aebr"),n.createEntityToGroupCtor("afbr"),n.createEntityToGroupCtor("albc"),n.createEntityToGroupCtor("altr"),n.createEntityToGroupCtor("brst"),n.createEntityToGroupCtor("dobr"),n.createEntityToGroupCtor("eqiv"),n.createEntityToGroupCtor("favc"),n.createEntityToGroupCtor("fobr"),n.createEntityToGroupCtor("iaug"),n.createEntityToGroupCtor("pano"),n.createEntityToGroupCtor("slid"),n.createEntityToGroupCtor("ster"),n.createEntityToGroupCtor("tsyn"),n.createEntityToGroupCtor("wbbr"),n.createEntityToGroupCtor("prgr"),n.createEntityToGroupCtor("pymd",function(t){this.group_id=t.readUint32(),this.num_entities_in_group=t.readUint32(),this.entity_ids=[];for(var e=0;e<this.num_entities_in_group;e++){var s=t.readUint32();this.entity_ids.push(s)}for(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=[],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()}),n.createFullBoxCtor("esds","ElementaryStreamDescriptorBox",function(t){var e=t.readUint8Array(this.size-this.hdr_size);if(typeof w<"u"){var s=new w;this.esd=s.parseOneDescriptor(new a(e.buffer,0,a.BIG_ENDIAN))}}),n.createBoxCtor("fiel","FieldHandlingBox",function(t){this.fieldCount=t.readUint8(),this.fieldOrdering=t.readUint8()}),n.createBoxCtor("frma","OriginalFormatBox",function(t){this.data_format=t.readString(4)}),n.createBoxCtor("ftyp","FileTypeBox",function(t){var e=this.size-this.hdr_size;this.major_brand=t.readString(4),this.minor_version=t.readUint32(),e-=8,this.compatible_brands=[];for(var s=0;e>=4;)this.compatible_brands[s]=t.readString(4),e-=4,s++}),n.createFullBoxCtor("hdlr","HandlerBox",function(t){this.version===0&&(t.readUint32(),this.handler=t.readString(4),t.readUint32Array(3),this.name=t.readString(this.size-this.hdr_size-20),this.name[this.name.length-1]==="\0"&&(this.name=this.name.slice(0,-1)))}),n.createBoxCtor("hvcC","HEVCConfigurationBox",function(t){var e,s,r,o;this.configurationVersion=t.readUint8(),o=t.readUint8(),this.general_profile_space=o>>6,this.general_tier_flag=(o&32)>>5,this.general_profile_idc=o&31,this.general_profile_compatibility=t.readUint32(),this.general_constraint_indicator=t.readUint8Array(6),this.general_level_idc=t.readUint8(),this.min_spatial_segmentation_idc=t.readUint16()&4095,this.parallelismType=t.readUint8()&3,this.chroma_format_idc=t.readUint8()&3,this.bit_depth_luma_minus8=t.readUint8()&7,this.bit_depth_chroma_minus8=t.readUint8()&7,this.avgFrameRate=t.readUint16(),o=t.readUint8(),this.constantFrameRate=o>>6,this.numTemporalLayers=(o&13)>>3,this.temporalIdNested=(o&4)>>2,this.lengthSizeMinusOne=o&3,this.nalu_arrays=[],this.nalu_arrays.toString=function(){var c="<table class='inner-table'>";c+="<thead><tr><th>completeness</th><th>nalu_type</th><th>nalu_data</th></tr></thead>",c+="<tbody>";for(var g=0;g<this.length;g++){var m=this[g];c+="<tr>",c+="<td rowspan='"+m.length+"'>"+m.completeness+"</td>",c+="<td rowspan='"+m.length+"'>"+m.nalu_type+"</td>";for(var U=0;U<m.length;U++){var v=m[U];U!==0&&(c+="<tr>"),c+="<td>",c+=v.data.reduce(function(A,B){return A+B.toString(16).padStart(2,"0")},"0x"),c+="</td></tr>"}}return c+="</tbody></table>",c};var l=t.readUint8();for(e=0;e<l;e++){var f=[];this.nalu_arrays.push(f),o=t.readUint8(),f.completeness=(o&128)>>7,f.nalu_type=o&63;var p=t.readUint16();for(s=0;s<p;s++){var u={};f.push(u),r=t.readUint16(),u.data=t.readUint8Array(r)}}}),n.createFullBoxCtor("iinf","ItemInfoBox",function(t){var e;this.version===0?this.entry_count=t.readUint16():this.entry_count=t.readUint32(),this.item_infos=[];for(var s=0;s<this.entry_count;s++)if(e=n.parseOneBox(t,!1,this.size-(t.getPosition()-this.start)),e.code===n.OK)e.box.type!=="infe"&&h.error("BoxParser","Expected 'infe' box, got "+e.box.type),this.item_infos[s]=e.box;else return}),n.createFullBoxCtor("iloc","ItemLocationBox",function(t){var e;e=t.readUint8(),this.offset_size=e>>4&15,this.length_size=e&15,e=t.readUint8(),this.base_offset_size=e>>4&15,this.version===1||this.version===2?this.index_size=e&15:this.index_size=0,this.items=[];var s=0;if(this.version<2)s=t.readUint16();else if(this.version===2)s=t.readUint32();else throw"version of iloc box not supported";for(var r=0;r<s;r++){var o={};if(this.items.push(o),this.version<2)o.item_ID=t.readUint16();else if(this.version===2)o.item_ID=t.readUint32();else throw"version of iloc box not supported";switch(this.version===1||this.version===2?o.construction_method=t.readUint16()&15:o.construction_method=0,o.data_reference_index=t.readUint16(),this.base_offset_size){case 0:o.base_offset=0;break;case 4:o.base_offset=t.readUint32();break;case 8:o.base_offset=t.readUint64();break;default:throw"Error reading base offset size"}var l=t.readUint16();o.extents=[];for(var f=0;f<l;f++){var p={};if(o.extents.push(p),this.version===1||this.version===2)switch(this.index_size){case 0:p.extent_index=0;break;case 4:p.extent_index=t.readUint32();break;case 8:p.extent_index=t.readUint64();break;default:throw"Error reading extent index"}switch(this.offset_size){case 0:p.extent_offset=0;break;case 4:p.extent_offset=t.readUint32();break;case 8:p.extent_offset=t.readUint64();break;default:throw"Error reading extent index"}switch(this.length_size){case 0:p.extent_length=0;break;case 4:p.extent_length=t.readUint32();break;case 8:p.extent_length=t.readUint64();break;default:throw"Error reading extent index"}}}}),n.createBoxCtor("imir","ImageMirror",function(t){var e=t.readUint8();this.reserved=e>>7,this.axis=e&1}),n.createFullBoxCtor("infe","ItemInfoEntry",function(t){if((this.version===0||this.version===1)&&(this.item_ID=t.readUint16(),this.item_protection_index=t.readUint16(),this.item_name=t.readCString(),this.content_type=t.readCString(),this.content_encoding=t.readCString()),this.version===1){this.extension_type=t.readString(4),h.warn("BoxParser","Cannot parse extension type"),t.seek(this.start+this.size);return}this.version>=2&&(this.version===2?this.item_ID=t.readUint16():this.version===3&&(this.item_ID=t.readUint32()),this.item_protection_index=t.readUint16(),this.item_type=t.readString(4),this.item_name=t.readCString(),this.item_type==="mime"?(this.content_type=t.readCString(),this.content_encoding=t.readCString()):this.item_type==="uri "&&(this.item_uri_type=t.readCString()))}),n.createFullBoxCtor("ipma","ItemPropertyAssociationBox",function(t){var e,s;for(entry_count=t.readUint32(),this.associations=[],e=0;e<entry_count;e++){var r={};this.associations.push(r),this.version<1?r.id=t.readUint16():r.id=t.readUint32();var o=t.readUint8();for(r.props=[],s=0;s<o;s++){var l=t.readUint8(),f={};r.props.push(f),f.essential=(l&128)>>7===1,this.flags&1?f.property_index=(l&127)<<8|t.readUint8():f.property_index=l&127}}}),n.createFullBoxCtor("iref","ItemReferenceBox",function(t){var e,s;for(this.references=[];t.getPosition()<this.start+this.size;)if(e=n.parseOneBox(t,!0,this.size-(t.getPosition()-this.start)),e.code===n.OK)this.version===0?s=new n.SingleItemTypeReferenceBox(e.type,e.size,e.hdr_size,e.start):s=new n.SingleItemTypeReferenceBoxLarge(e.type,e.size,e.hdr_size,e.start),s.write===n.Box.prototype.write&&s.type!=="mdat"&&(h.warn("BoxParser",s.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(t)),s.parse(t),this.references.push(s);else return}),n.createBoxCtor("irot","ImageRotation",function(t){this.angle=t.readUint8()&3}),n.createFullBoxCtor("ispe","ImageSpatialExtentsProperty",function(t){this.image_width=t.readUint32(),this.image_height=t.readUint32()}),n.createFullBoxCtor("kind","KindBox",function(t){this.schemeURI=t.readCString(),this.value=t.readCString()}),n.createFullBoxCtor("leva","LevelAssignmentBox",function(t){var e=t.readUint8();this.levels=[];for(var s=0;s<e;s++){var r={};this.levels[s]=r,r.track_ID=t.readUint32();var o=t.readUint8();switch(r.padding_flag=o>>7,r.assignment_type=o&127,r.assignment_type){case 0:r.grouping_type=t.readString(4);break;case 1:r.grouping_type=t.readString(4),r.grouping_type_parameter=t.readUint32();break;case 2:break;case 3:break;case 4:r.sub_track_id=t.readUint32();break;default:h.warn("BoxParser","Unknown leva assignement type")}}}),n.createBoxCtor("lhvC","LHEVCConfigurationBox",function(t){var e,s,r;this.configurationVersion=t.readUint8(),this.min_spatial_segmentation_idc=t.readUint16()&4095,this.parallelismType=t.readUint8()&3,r=t.readUint8(),this.numTemporalLayers=(r&13)>>3,this.temporalIdNested=(r&4)>>2,this.lengthSizeMinusOne=r&3,this.nalu_arrays=[],this.nalu_arrays.toString=function(){var c="<table class='inner-table'>";c+="<thead><tr><th>completeness</th><th>nalu_type</th><th>nalu_data</th></tr></thead>",c+="<tbody>";for(var g=0;g<this.length;g++){var m=this[g];c+="<tr>",c+="<td rowspan='"+m.length+"'>"+m.completeness+"</td>",c+="<td rowspan='"+m.length+"'>"+m.nalu_type+"</td>";for(var U=0;U<m.length;U++){var v=m[U];U!==0&&(c+="<tr>"),c+="<td>",c+=v.data.reduce(function(A,B){return A+B.toString(16).padStart(2,"0")},"0x"),c+="</td></tr>"}}return c+="</tbody></table>",c};var o=t.readUint8();for(e=0;e<o;e++){var l=[];this.nalu_arrays.push(l),r=t.readUint8(),l.completeness=(r&128)>>7,l.nalu_type=r&63;var f=t.readUint16();for(s=0;s<f;s++){var p={};l.push(p);var u=t.readUint16();p.data=t.readUint8Array(u)}}}),n.createBoxCtor("lsel","LayerSelectorProperty",function(t){this.layer_id=t.readUint16()}),n.createBoxCtor("maxr","hintmaxrate",function(t){this.period=t.readUint32(),this.bytes=t.readUint32()});function I(t,e){this.x=t,this.y=e}I.prototype.toString=function(){return"("+this.x+","+this.y+")"},n.createBoxCtor("mdcv","MasteringDisplayColourVolumeBox",function(t){this.display_primaries=[],this.display_primaries[0]=new I(t.readUint16(),t.readUint16()),this.display_primaries[1]=new I(t.readUint16(),t.readUint16()),this.display_primaries[2]=new I(t.readUint16(),t.readUint16()),this.white_point=new I(t.readUint16(),t.readUint16()),this.max_display_mastering_luminance=t.readUint32(),this.min_display_mastering_luminance=t.readUint32()}),n.createFullBoxCtor("mdhd","MediaHeaderBox",function(t){this.version==1?(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()}),n.createFullBoxCtor("mehd","MovieExtendsHeaderBox",function(t){this.flags&1&&(h.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),this.version==1?this.fragment_duration=t.readUint64():this.fragment_duration=t.readUint32()}),n.createFullBoxCtor("meta","MetaBox",function(t){this.boxes=[],n.ContainerBox.prototype.parse.call(this,t)}),n.createFullBoxCtor("mfhd","MovieFragmentHeaderBox",function(t){this.sequence_number=t.readUint32()}),n.createFullBoxCtor("mfro","MovieFragmentRandomAccessOffsetBox",function(t){this._size=t.readUint32()}),n.createFullBoxCtor("mskC","MaskConfigurationProperty",function(t){this.bits_per_pixel=t.readUint8()}),n.createFullBoxCtor("mvhd","MovieHeaderBox",function(t){this.version==1?(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.readUint32Array(9),t.readUint32Array(6),this.next_track_id=t.readUint32()}),n.createBoxCtor("npck","hintPacketsSent",function(t){this.packetssent=t.readUint32()}),n.createBoxCtor("nump","hintPacketsSent",function(t){this.packetssent=t.readUint64()}),n.createFullBoxCtor("padb","PaddingBitsBox",function(t){var e=t.readUint32();this.padbits=[];for(var s=0;s<Math.floor((e+1)/2);s++)this.padbits=t.readUint8()}),n.createBoxCtor("pasp","PixelAspectRatioBox",function(t){this.hSpacing=t.readUint32(),this.vSpacing=t.readUint32()}),n.createBoxCtor("payl","CuePayloadBox",function(t){this.text=t.readString(this.size-this.hdr_size)}),n.createBoxCtor("payt","hintpayloadID",function(t){this.payloadID=t.readUint32();var e=t.readUint8();this.rtpmap_string=t.readString(e)}),n.createFullBoxCtor("pdin","ProgressiveDownloadInfoBox",function(t){var e=(this.size-this.hdr_size)/8;this.rate=[],this.initial_delay=[];for(var s=0;s<e;s++)this.rate[s]=t.readUint32(),this.initial_delay[s]=t.readUint32()}),n.createFullBoxCtor("pitm","PrimaryItemBox",function(t){this.version===0?this.item_id=t.readUint16():this.item_id=t.readUint32()}),n.createFullBoxCtor("pixi","PixelInformationProperty",function(t){var e;for(this.num_channels=t.readUint8(),this.bits_per_channels=[],e=0;e<this.num_channels;e++)this.bits_per_channels[e]=t.readUint8()}),n.createBoxCtor("pmax","hintlargestpacket",function(t){this.bytes=t.readUint32()}),n.createFullBoxCtor("prdi","ProgressiveDerivedImageItemInformationProperty",function(t){if(this.step_count=t.readUint16(),this.item_count=[],this.flags&2)for(var e=0;e<this.step_count;e++)this.item_count[e]=t.readUint16()}),n.createFullBoxCtor("prft","ProducerReferenceTimeBox",function(t){this.ref_track_id=t.readUint32(),this.ntp_timestamp=t.readUint64(),this.version===0?this.media_time=t.readUint32():this.media_time=t.readUint64()}),n.createFullBoxCtor("pssh","ProtectionSystemSpecificHeaderBox",function(t){if(this.system_id=n.parseHex16(t),this.version>0){var e=t.readUint32();this.kid=[];for(var s=0;s<e;s++)this.kid[s]=n.parseHex16(t)}var r=t.readUint32();r>0&&(this.data=t.readUint8Array(r))}),n.createFullBoxCtor("clef","TrackCleanApertureDimensionsBox",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),n.createFullBoxCtor("enof","TrackEncodedPixelsDimensionsBox",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),n.createFullBoxCtor("prof","TrackProductionApertureDimensionsBox",function(t){this.width=t.readUint32(),this.height=t.readUint32()}),n.createContainerBoxCtor("tapt","TrackApertureModeDimensionsBox",null,["clef","prof","enof"]),n.createBoxCtor("rtp ","rtpmoviehintinformation",function(t){this.descriptionformat=t.readString(4),this.sdptext=t.readString(this.size-this.hdr_size-4)}),n.createFullBoxCtor("saio","SampleAuxiliaryInformationOffsetsBox",function(t){this.flags&1&&(this.aux_info_type=t.readString(4),this.aux_info_type_parameter=t.readUint32());var e=t.readUint32();this.offset=[];for(var s=0;s<e;s++)this.version===0?this.offset[s]=t.readUint32():this.offset[s]=t.readUint64()}),n.createFullBoxCtor("saiz","SampleAuxiliaryInformationSizesBox",function(t){if(this.flags&1&&(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=[],this.default_sample_info_size===0)for(var e=0;e<this.sample_count;e++)this.sample_info_size[e]=t.readUint8()}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_METADATA,"mett",function(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_METADATA,"metx",function(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.parseFooter(t)}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SUBTITLE,"sbtt",function(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SUBTITLE,"stpp",function(t){this.parseHeader(t),this.namespace=t.readCString(),this.schema_location=t.readCString(),this.auxiliary_mime_types=t.readCString(),this.parseFooter(t)}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SUBTITLE,"stxt",function(t){this.parseHeader(t),this.content_encoding=t.readCString(),this.mime_format=t.readCString(),this.parseFooter(t)}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_SUBTITLE,"tx3g",function(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)}),n.createSampleEntryCtor(n.SAMPLE_ENTRY_TYPE_METADATA,"wvtt",function(t){this.parseHeader(t),this.parseFooter(t)}),n.createSampleGroupCtor("alst",function(t){var e,s=t.readUint16();for(this.first_output_sample=t.readUint16(),this.sample_offset=[],e=0;e<s;e++)this.sample_offset[e]=t.readUint32();var r=this.description_length-4-4*s;for(this.num_output_samples=[],this.num_total_samples=[],e=0;e<r/4;e++)this.num_output_samples[e]=t.readUint16(),this.num_total_samples[e]=t.readUint16()}),n.createSampleGroupCtor("avll",function(t){this.layerNumber=t.readUint8(),this.accurateStatisticsFlag=t.readUint8(),this.avgBitRate=t.readUint16(),this.avgFrameRate=t.readUint16()}),n.createSampleGroupCtor("avss",function(t){this.subSequenceIdentifier=t.readUint16(),this.layerNumber=t.readUint8();var 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=[];for(var s=t.readUint8(),r=0;r<s;r++){var o={};this.dependency.push(o),o.subSeqDirectionFlag=t.readUint8(),o.layerNumber=t.readUint8(),o.subSequenceIdentifier=t.readUint16()}}),n.createSampleGroupCtor("dtrt",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createSampleGroupCtor("mvif",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createSampleGroupCtor("prol",function(t){this.roll_distance=t.readInt16()}),n.createSampleGroupCtor("rap ",function(t){var e=t.readUint8();this.num_leading_samples_known=e>>7,this.num_leading_samples=e&127}),n.createSampleGroupCtor("rash",function(t){if(this.operation_point_count=t.readUint16(),this.description_length!==2+(this.operation_point_count===1?2:this.operation_point_count*6)+9)h.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=t.readUint8Array(this.description_length-2);else{if(this.operation_point_count===1)this.target_rate_share=t.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var 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()}}),n.createSampleGroupCtor("roll",function(t){this.roll_distance=t.readInt16()}),n.SampleGroupEntry.prototype.parse=function(t){h.warn("BoxParser","Unknown Sample Group type: "+this.grouping_type),this.data=t.readUint8Array(this.description_length)},n.createSampleGroupCtor("scif",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createSampleGroupCtor("scnm",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createSampleGroupCtor("seig",function(t){this.reserved=t.readUint8();var e=t.readUint8();this.crypt_byte_block=e>>4,this.skip_byte_block=e&15,this.isProtected=t.readUint8(),this.Per_Sample_IV_Size=t.readUint8(),this.KID=n.parseHex16(t),this.constant_IV_size=0,this.constant_IV=0,this.isProtected===1&&this.Per_Sample_IV_Size===0&&(this.constant_IV_size=t.readUint8(),this.constant_IV=t.readUint8Array(this.constant_IV_size))}),n.createSampleGroupCtor("stsa",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createSampleGroupCtor("sync",function(t){var e=t.readUint8();this.NAL_unit_type=e&63}),n.createSampleGroupCtor("tele",function(t){var e=t.readUint8();this.level_independently_decodable=e>>7}),n.createSampleGroupCtor("tsas",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createSampleGroupCtor("tscl",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createSampleGroupCtor("vipr",function(t){h.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),n.createFullBoxCtor("sbgp","SampleToGroupBox",function(t){this.grouping_type=t.readString(4),this.version===1?this.grouping_type_parameter=t.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var e=t.readUint32(),s=0;s<e;s++){var r={};this.entries.push(r),r.sample_count=t.readInt32(),r.group_description_index=t.readInt32()}});function k(t,e){this.bad_pixel_row=t,this.bad_pixel_column=e}k.prototype.toString=function(){return"[row: "+this.bad_pixel_row+", column: "+this.bad_pixel_column+"]"},n.createFullBoxCtor("sbpm","SensorBadPixelsMapBox",function(t){var e;for(this.component_count=t.readUint16(),this.component_index=[],e=0;e<this.component_count;e++)this.component_index.push(t.readUint16());var s=t.readUint8();for(this.correction_applied=(s&128)==128,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=[],e=0;e<this.num_bad_rows;e++)this.bad_rows.push(t.readUint32());for(e=0;e<this.num_bad_cols;e++)this.bad_columns.push(t.readUint32());for(e=0;e<this.num_bad_pixels;e++){var r=t.readUint32(),o=t.readUint32();this.bad_pixels.push(new k(r,o))}}),n.createFullBoxCtor("schm","SchemeTypeBox",function(t){this.scheme_type=t.readString(4),this.scheme_version=t.readUint32(),this.flags&1&&(this.scheme_uri=t.readString(this.size-this.hdr_size-8))}),n.createBoxCtor("sdp ","rtptracksdphintinformation",function(t){this.sdptext=t.readString(this.size-this.hdr_size)}),n.createFullBoxCtor("sdtp","SampleDependencyTypeBox",function(t){var e,s=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(var r=0;r<s;r++)e=t.readUint8(),this.is_leading[r]=e>>6,this.sample_depends_on[r]=e>>4&3,this.sample_is_depended_on[r]=e>>2&3,this.sample_has_redundancy[r]=e&3}),n.createFullBoxCtor("senc","SampleEncryptionBox"),n.createFullBoxCtor("sgpd","SampleGroupDescriptionBox",function(t){this.grouping_type=t.readString(4),h.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),this.version===1?this.default_length=t.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=t.readUint32()),this.entries=[];for(var e=t.readUint32(),s=0;s<e;s++){var r;n[this.grouping_type+"SampleGroupEntry"]?r=new n[this.grouping_type+"SampleGroupEntry"](this.grouping_type):r=new n.SampleGroupEntry(this.grouping_type),this.entries.push(r),this.version===1?this.default_length===0?r.description_length=t.readUint32():r.description_length=this.default_length:r.description_length=this.default_length,r.write===n.SampleGroupEntry.prototype.write&&(h.info("BoxParser","SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"),r.data=t.readUint8Array(r.description_length),t.position-=r.description_length),r.parse(t)}}),n.createFullBoxCtor("sidx","CompressedSegmentIndexBox",function(t){this.reference_ID=t.readUint32(),this.timescale=t.readUint32(),this.version===0?(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=[];for(var e=t.readUint16(),s=0;s<e;s++){var r={};this.references.push(r);var o=t.readUint32();r.reference_type=o>>31&1,r.referenced_size=o&2147483647,r.subsegment_duration=t.readUint32(),o=t.readUint32(),r.starts_with_SAP=o>>31&1,r.SAP_type=o>>28&7,r.SAP_delta_time=o&268435455}}),n.SingleItemTypeReferenceBox=function(t,e,s,r){n.Box.call(this,t,e),this.hdr_size=s,this.start=r},n.SingleItemTypeReferenceBox.prototype=new n.Box,n.SingleItemTypeReferenceBox.prototype.parse=function(t){this.from_item_ID=t.readUint16();var e=t.readUint16();this.references=[];for(var s=0;s<e;s++)this.references[s]={},this.references[s].to_item_ID=t.readUint16()},n.SingleItemTypeReferenceBoxLarge=function(t,e,s,r){n.Box.call(this,t,e),this.hdr_size=s,this.start=r},n.SingleItemTypeReferenceBoxLarge.prototype=new n.Box,n.SingleItemTypeReferenceBoxLarge.prototype.parse=function(t){this.from_item_ID=t.readUint32();var e=t.readUint16();this.references=[];for(var s=0;s<e;s++)this.references[s]={},this.references[s].to_item_ID=t.readUint32()},n.createFullBoxCtor("SmDm","SMPTE2086MasteringDisplayMetadataBox",function(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()}),n.createFullBoxCtor("smhd","SoundMediaHeaderBox",function(t){this.balance=t.readUint16(),t.readUint16()}),n.createFullBoxCtor("ssix","CompressedSubsegmentIndexBox",function(t){this.subsegments=[];for(var e=t.readUint32(),s=0;s<e;s++){var r={};this.subsegments.push(r),r.ranges=[];for(var o=t.readUint32(),l=0;l<o;l++){var f={};r.ranges.push(f),f.level=t.readUint8(),f.range_size=t.readUint24()}}}),n.createFullBoxCtor("stco","ChunkOffsetBox",function(t){var e;if(e=t.readUint32(),this.chunk_offsets=[],this.version===0)for(var s=0;s<e;s++)this.chunk_offsets.push(t.readUint32())}),n.createFullBoxCtor("stdp","DegradationPriorityBox",function(t){var e=(this.size-this.hdr_size)/2;this.priority=[];for(var s=0;s<e;s++)this.priority[s]=t.readUint16()}),n.createFullBoxCtor("sthd","SubtitleMediaHeaderBox"),n.createFullBoxCtor("stri","SubTrackInformationBox",function(t){this.switch_group=t.readUint16(),this.alternate_group=t.readUint16(),this.sub_track_id=t.readUint32();var e=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(var s=0;s<e;s++)this.attribute_list[s]=t.readUint32()}),n.createFullBoxCtor("stsc","SampleToChunkBox",function(t){var e,s;if(e=t.readUint32(),this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],this.version===0)for(s=0;s<e;s++)this.first_chunk.push(t.readUint32()),this.samples_per_chunk.push(t.readUint32()),this.sample_description_index.push(t.readUint32())}),n.createFullBoxCtor("stsd","SampleDescriptionBox",function(t){var e,s,r,o;for(this.entries=[],r=t.readUint32(),e=1;e<=r;e++)if(s=n.parseOneBox(t,!0,this.size-(t.getPosition()-this.start)),s.code===n.OK)n[s.type+"SampleEntry"]?(o=new n[s.type+"SampleEntry"](s.size),o.hdr_size=s.hdr_size,o.start=s.start):(h.warn("BoxParser","Unknown sample entry type: "+s.type),o=new n.SampleEntry(s.type,s.size,s.hdr_size,s.start)),o.write===n.SampleEntry.prototype.write&&(h.info("BoxParser","SampleEntry "+o.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),o.parseDataAndRewind(t)),o.parse(t),this.entries.push(o);else return}),n.createFullBoxCtor("stsg","SubTrackSampleGroupBox",function(t){this.grouping_type=t.readUint32();var e=t.readUint16();this.group_description_index=[];for(var s=0;s<e;s++)this.group_description_index[s]=t.readUint32()}),n.createFullBoxCtor("stsh","ShadowSyncSampleBox",function(t){var e,s;if(e=t.readUint32(),this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],this.version===0)for(s=0;s<e;s++)this.shadowed_sample_numbers.push(t.readUint32()),this.sync_sample_numbers.push(t.readUint32())}),n.createFullBoxCtor("stss","SyncSampleBox",function(t){var e,s;if(s=t.readUint32(),this.version===0)for(this.sample_numbers=[],e=0;e<s;e++)this.sample_numbers.push(t.readUint32())}),n.createFullBoxCtor("stsz","SampleSizeBox",function(t){var e;if(this.sample_sizes=[],this.version===0)for(this.sample_size=t.readUint32(),this.sample_count=t.readUint32(),e=0;e<this.sample_count;e++)this.sample_size===0?this.sample_sizes.push(t.readUint32()):this.sample_sizes[e]=this.sample_size}),n.createFullBoxCtor("stts","TimeToSampleBox",function(t){var e,s,r;if(e=t.readUint32(),this.sample_counts=[],this.sample_deltas=[],this.version===0)for(s=0;s<e;s++)this.sample_counts.push(t.readUint32()),r=t.readInt32(),r<0&&(h.warn("BoxParser","File uses negative stts sample delta, using value 1 instead, sync may be lost!"),r=1),this.sample_deltas.push(r)}),n.createFullBoxCtor("stvi","StereoVideoBox",function(t){var e=t.readUint32();this.single_view_allowed=e&3,this.stereo_scheme=t.readUint32();var s=t.readUint32();this.stereo_indication_type=t.readString(s);var r,o;for(this.boxes=[];t.getPosition()<this.start+this.size;)if(r=n.parseOneBox(t,!1,this.size-(t.getPosition()-this.start)),r.code===n.OK)o=r.box,this.boxes.push(o),this[o.type]=o;else return}),n.createBoxCtor("styp","SegmentTypeBox",function(t){n.ftypBox.prototype.parse.call(this,t)}),n.createFullBoxCtor("stz2","CompactSampleSizeBox",function(t){var e,s;if(this.sample_sizes=[],this.version===0)if(this.reserved=t.readUint24(),this.field_size=t.readUint8(),s=t.readUint32(),this.field_size===4)for(e=0;e<s;e+=2){var r=t.readUint8();this.sample_sizes[e]=r>>4&15,this.sample_sizes[e+1]=r&15}else if(this.field_size===8)for(e=0;e<s;e++)this.sample_sizes[e]=t.readUint8();else if(this.field_size===16)for(e=0;e<s;e++)this.sample_sizes[e]=t.readUint16();else h.error("BoxParser","Error in length field in stz2 box")}),n.createFullBoxCtor("subs","SubSampleInformationBox",function(t){var e,s,r,o;for(r=t.readUint32(),this.entries=[],e=0;e<r;e++){var l={};if(this.entries[e]=l,l.sample_delta=t.readUint32(),l.subsamples=[],o=t.readUint16(),o>0)for(s=0;s<o;s++){var f={};l.subsamples.push(f),this.version==1?f.size=t.readUint32():f.size=t.readUint16(),f.priority=t.readUint8(),f.discardable=t.readUint8(),f.codec_specific_parameters=t.readUint32()}}}),n.createFullBoxCtor("tenc","TrackEncryptionBox",function(t){if(t.readUint8(),this.version===0)t.readUint8();else{var e=t.readUint8();this.default_crypt_byte_block=e>>4&15,this.default_skip_byte_block=e&15}this.default_isProtected=t.readUint8(),this.default_Per_Sample_IV_Size=t.readUint8(),this.default_KID=n.parseHex16(t),this.default_isProtected===1&&this.default_Per_Sample_IV_Size===0&&(this.default_constant_IV_size=t.readUint8(),this.default_constant_IV=t.readUint8Array(this.default_constant_IV_size))}),n.createFullBoxCtor("tfdt","TrackFragmentBaseMediaDecodeTimeBox",function(t){this.version==1?this.baseMediaDecodeTime=t.readUint64():this.baseMediaDecodeTime=t.readUint32()}),n.createFullBoxCtor("tfhd","TrackFragmentHeaderBox",function(t){var e=0;this.track_id=t.readUint32(),this.size-this.hdr_size>e&&this.flags&n.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=t.readUint64(),e+=8):this.base_data_offset=0,this.size-this.hdr_size>e&&this.flags&n.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=t.readUint32(),e+=4):this.default_sample_description_index=0,this.size-this.hdr_size>e&&this.flags&n.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=t.readUint32(),e+=4):this.default_sample_duration=0,this.size-this.hdr_size>e&&this.flags&n.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=t.readUint32(),e+=4):this.default_sample_size=0,this.size-this.hdr_size>e&&this.flags&n.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=t.readUint32(),e+=4):this.default_sample_flags=0}),n.createFullBoxCtor("tfra","TrackFragmentRandomAccessBox",function(t){this.track_ID=t.readUint32(),t.readUint24();var 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=e&3,this.entries=[];for(var s=t.readUint32(),r=0;r<s;r++)this.version===1?(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)]()}),n.createFullBoxCtor("tkhd","TrackHeaderBox",function(t){this.version==1?(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()}),n.createBoxCtor("tmax","hintmaxrelativetime",function(t){this.time=t.readUint32()}),n.createBoxCtor("tmin","hintminrelativetime",function(t){this.time=t.readUint32()}),n.createBoxCtor("totl","hintBytesSent",function(t){this.bytessent=t.readUint32()}),n.createBoxCtor("tpay","hintBytesSent",function(t){this.bytessent=t.readUint32()}),n.createBoxCtor("tpyl","hintBytesSent",function(t){this.bytessent=t.readUint64()}),n.TrackGroupTypeBox.prototype.parse=function(t){this.parseFullHeader(t),this.track_group_id=t.readUint32()},n.createTrackGroupCtor("msrc"),n.TrackReferenceTypeBox=function(t,e,s,r){n.Box.call(this,t,e),this.hdr_size=s,this.start=r},n.TrackReferenceTypeBox.prototype=new n.Box,n.TrackReferenceTypeBox.prototype.parse=function(t){this.track_ids=t.readUint32Array((this.size-this.hdr_size)/4)},n.trefBox.prototype.parse=function(t){for(var e,s;t.getPosition()<this.start+this.size;)if(e=n.parseOneBox(t,!0,this.size-(t.getPosition()-this.start)),e.code===n.OK)s=new n.TrackReferenceTypeBox(e.type,e.size,e.hdr_size,e.start),s.write===n.Box.prototype.write&&s.type!=="mdat"&&(h.info("BoxParser","TrackReference "+s.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(t)),s.parse(t),this.boxes.push(s);else return},n.createFullBoxCtor("trep","TrackExtensionPropertiesBox",function(t){for(this.track_ID=t.readUint32(),this.boxes=[];t.getPosition()<this.start+this.size;)if(ret=n.parseOneBox(t,!1,this.size-(t.getPosition()-this.start)),ret.code===n.OK)box=ret.box,this.boxes.push(box);else return}),n.createFullBoxCtor("trex","TrackExtendsBox",function(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()}),n.createBoxCtor("trpy","hintBytesSent",function(t){this.bytessent=t.readUint64()}),n.createFullBoxCtor("trun","TrackRunBox",function(t){var e=0;if(this.sample_count=t.readUint32(),e+=4,this.size-this.hdr_size>e&&this.flags&n.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=t.readInt32(),e+=4):this.data_offset=0,this.size-this.hdr_size>e&&this.flags&n.TRUN_FLAGS_FIRST_FLAG?(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(var s=0;s<this.sample_count;s++)this.flags&n.TRUN_FLAGS_DURATION&&(this.sample_duration[s]=t.readUint32()),this.flags&n.TRUN_FLAGS_SIZE&&(this.sample_size[s]=t.readUint32()),this.flags&n.TRUN_FLAGS_FLAGS&&(this.sample_flags[s]=t.readUint32()),this.flags&n.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?this.sample_composition_time_offset[s]=t.readUint32():this.sample_composition_time_offset[s]=t.readInt32())}),n.createFullBoxCtor("tsel","TrackSelectionBox",function(t){this.switch_group=t.readUint32();var e=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(var s=0;s<e;s++)this.attribute_list[s]=t.readUint32()}),n.createFullBoxCtor("txtC","TextConfigBox",function(t){this.config=t.readCString()}),n.createBoxCtor("tyco","TypeCombinationBox",function(t){var e=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(var s=0;s<e;s++)this.compatible_brands[s]=t.readString(4)}),n.createFullBoxCtor("udes","UserDescriptionProperty",function(t){this.lang=t.readCString(),this.name=t.readCString(),this.description=t.readCString(),this.tags=t.readCString()}),n.createFullBoxCtor("uncC","UncompressedFrameConfigBox",function(t){var e;if(this.profile=t.readString(4),this.version!=1){if(this.version==0){for(this.component_count=t.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[],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();var s=t.readUint8();this.component_little_endian=s>>7&1,this.block_pad_lsb=s>>6&1,this.block_little_endian=s>>5&1,this.block_reversed=s>>4&1,this.pad_unknown=s>>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()}}}),n.createFullBoxCtor("url ","DataEntryUrlBox",function(t){this.flags!==1&&(this.location=t.readCString())}),n.createFullBoxCtor("urn ","DataEntryUrnBox",function(t){this.name=t.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=t.readCString())}),n.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66","LiveServerManifestBox",!0,!1,function(t){this.LiveServerManifest=t.readString(this.size-this.hdr_size).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}),n.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3","PiffProtectionSystemSpecificHeaderBox",!0,!1,function(t){this.system_id=n.parseHex16(t);var e=t.readUint32();e>0&&(this.data=t.readUint8Array(e))}),n.createUUIDBox("a2394f525a9b4f14a2446c427c648df4","PiffSampleEncryptionBox",!0,!1),n.createUUIDBox("8974dbce7be74c5184f97148f9882554","PiffTrackEncryptionBox",!0,!1,function(t){this.default_AlgorithmID=t.readUint24(),this.default_IV_size=t.readUint8(),this.default_KID=n.parseHex16(t)}),n.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f","TfrfBox",!0,!1,function(t){this.fragment_count=t.readUint8(),this.entries=[];for(var e=0;e<this.fragment_count;e++){var s={},r=0,o=0;this.version===1?(r=t.readUint64(),o=t.readUint64()):(r=t.readUint32(),o=t.readUint32()),s.absolute_time=r,s.absolute_duration=o,this.entries.push(s)}}),n.createUUIDBox("6d1d9b0542d544e680e2141daff757b2","TfxdBox",!0,!1,function(t){this.version===1?(this.absolute_time=t.readUint64(),this.duration=t.readUint64()):(this.absolute_time=t.readUint32(),this.duration=t.readUint32())}),n.createFullBoxCtor("vmhd","VideoMediaHeaderBox",function(t){this.graphicsmode=t.readUint16(),this.opcolor=t.readUint16Array(3)}),n.createFullBoxCtor("vpcC","VPCodecConfigurationRecord",function(t){var e;this.version===1?(this.profile=t.readUint8(),this.level=t.readUint8(),e=t.readUint8(),this.bitDepth=e>>4,this.chromaSubsampling=e>>1&7,this.videoFullRangeFlag=e&1,this.colourPrimaries=t.readUint8(),this.transferCharacteristics=t.readUint8(),this.matrixCoefficients=t.readUint8(),this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize)):(this.profile=t.readUint8(),this.level=t.readUint8(),e=t.readUint8(),this.bitDepth=e>>4&15,this.colorSpace=e&15,e=t.readUint8(),this.chromaSubsampling=e>>4&15,this.transferFunction=e>>1&7,this.videoFullRangeFlag=e&1,this.codecIntializationDataSize=t.readUint16(),this.codecIntializationData=t.readUint8Array(this.codecIntializationDataSize))}),n.createBoxCtor("vttC","WebVTTConfigurationBox",function(t){this.text=t.readString(this.size-this.hdr_size)}),n.createFullBoxCtor("vvcC","VvcConfigurationBox",function(t){var e,s,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(v){this.held_bits=v.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(v){this.held_bits=v.readUint16(),this.num_held_bits=16},extract_bits:function(v){var A=this.held_bits>>this.num_held_bits-v&(1<<v)-1;return this.num_held_bits-=v,A}};if(r.stream_read_1_bytes(t),r.extract_bits(5),this.lengthSizeMinusOne=r.extract_bits(2),this.ptl_present_flag=r.extract_bits(1),this.ptl_present_flag){r.stream_read_2_bytes(t),this.ols_idx=r.extract_bits(9),this.num_sublayers=r.extract_bits(3),this.constant_frame_rate=r.extract_bits(2),this.chroma_format_idc=r.extract_bits(2),r.stream_read_1_bytes(t),this.bit_depth_minus8=r.extract_bits(3),r.extract_bits(5);{if(r.stream_read_2_bytes(t),r.extract_bits(2),this.num_bytes_constraint_info=r.extract_bits(6),this.general_profile_idc=r.extract_bits(7),this.general_tier_flag=r.extract_bits(1),this.general_level_idc=t.readUint8(),r.stream_read_1_bytes(t),this.ptl_frame_only_constraint_flag=r.extract_bits(1),this.ptl_multilayer_enabled_flag=r.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(e=0;e<this.num_bytes_constraint_info-1;e++){var o=r.extract_bits(6);r.stream_read_1_bytes(t);var l=r.extract_bits(2);this.general_constraint_info[e]=o<<2|l}this.general_constraint_info[this.num_bytes_constraint_info-1]=r.extract_bits(6)}else r.extract_bits(6);if(this.num_sublayers>1){for(r.stream_read_1_bytes(t),this.ptl_sublayer_present_mask=0,s=this.num_sublayers-2;s>=0;--s){var f=r.extract_bits(1);this.ptl_sublayer_present_mask|=f<<s}for(s=this.num_sublayers;s<=8&&this.num_sublayers>1;++s)r.extract_bits(1);for(this.sublayer_level_idc=[],s=this.num_sublayers-2;s>=0;--s)this.ptl_sublayer_present_mask&1<<s&&(this.sublayer_level_idc[s]=t.readUint8())}if(this.ptl_num_sub_profiles=t.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(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()}var p=12,u=13;this.nalu_arrays=[];var c=t.readUint8();for(e=0;e<c;e++){var g=[];this.nalu_arrays.push(g),r.stream_read_1_bytes(t),g.completeness=r.extract_bits(1),r.extract_bits(2),g.nalu_type=r.extract_bits(5);var m=1;for(g.nalu_type!=u&&g.nalu_type!=p&&(m=t.readUint16()),s=0;s<m;s++){var U=t.readUint16();g.push({data:t.readUint8Array(U),length:U})}}}),n.createFullBoxCtor("vvnC","VvcNALUConfigBox",function(t){var e=strm.readUint8();this.lengthSizeMinusOne=e&3}),n.SampleEntry.prototype.isVideo=function(){return!1},n.SampleEntry.prototype.isAudio=function(){return!1},n.SampleEntry.prototype.isSubtitle=function(){return!1},n.SampleEntry.prototype.isMetadata=function(){return!1},n.SampleEntry.prototype.isHint=function(){return!1},n.SampleEntry.prototype.getCodec=function(){return this.type.replace(".","")},n.SampleEntry.prototype.getWidth=function(){return""},n.SampleEntry.prototype.getHeight=function(){return""},n.SampleEntry.prototype.getChannelCount=function(){return""},n.SampleEntry.prototype.getSampleRate=function(){return""},n.SampleEntry.prototype.getSampleSize=function(){return""},n.VisualSampleEntry.prototype.isVideo=function(){return!0},n.VisualSampleEntry.prototype.getWidth=function(){return this.width},n.VisualSampleEntry.prototype.getHeight=function(){return this.height},n.AudioSampleEntry.prototype.isAudio=function(){return!0},n.AudioSampleEntry.prototype.getChannelCount=function(){return this.channel_count},n.AudioSampleEntry.prototype.getSampleRate=function(){return this.samplerate},n.AudioSampleEntry.prototype.getSampleSize=function(){return this.samplesize},n.SubtitleSampleEntry.prototype.isSubtitle=function(){return!0},n.MetadataSampleEntry.prototype.isMetadata=function(){return!0},n.decimalToHex=function(t,e){var s=Number(t).toString(16);for(e=typeof e>"u"||e===null?e=2:e;s.length<e;)s="0"+s;return s},n.avc1SampleEntry.prototype.getCodec=n.avc2SampleEntry.prototype.getCodec=n.avc3SampleEntry.prototype.getCodec=n.avc4SampleEntry.prototype.getCodec=function(){var t=n.SampleEntry.prototype.getCodec.call(this);return this.avcC?t+"."+n.decimalToHex(this.avcC.AVCProfileIndication)+n.decimalToHex(this.avcC.profile_compatibility)+n.decimalToHex(this.avcC.AVCLevelIndication):t},n.hev1SampleEntry.prototype.getCodec=n.hvc1SampleEntry.prototype.getCodec=function(){var t,e=n.SampleEntry.prototype.getCodec.call(this);if(this.hvcC){switch(e+=".",this.hvcC.general_profile_space){case 0:e+="";break;case 1:e+="A";break;case 2:e+="B";break;case 3:e+="C";break}e+=this.hvcC.general_profile_idc,e+=".";var s=this.hvcC.general_profile_compatibility,r=0;for(t=0;t<32&&(r|=s&1,t!=31);t++)r<<=1,s>>=1;e+=n.decimalToHex(r,0),e+=".",this.hvcC.general_tier_flag===0?e+="L":e+="H",e+=this.hvcC.general_level_idc;var o=!1,l="";for(t=5;t>=0;t--)(this.hvcC.general_constraint_indicator[t]||o)&&(l="."+n.decimalToHex(this.hvcC.general_constraint_indicator[t],0)+l,o=!0);e+=l}return e},n.vvc1SampleEntry.prototype.getCodec=n.vvi1SampleEntry.prototype.getCodec=function(){var t,e=n.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var s="";if(this.vvcC.general_constraint_info){var r=[],o=0;o|=this.vvcC.ptl_frame_only_constraint<<7,o|=this.vvcC.ptl_multilayer_enabled<<6;var l;for(t=0;t<this.vvcC.general_constraint_info.length;++t)o|=this.vvcC.general_constraint_info[t]>>2&63,r.push(o),o&&(l=t),o=this.vvcC.general_constraint_info[t]>>2&3;if(l===void 0)s=".CA";else{s=".C";var f="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",p=0,u=0;for(t=0;t<=l;++t)for(p=p<<8|r[t],u+=8;u>=5;){var c=p>>u-5&31;s+=f[c],u-=5,p&=(1<<u)-1}u&&(p<<=5-u,s+=f[p&31])}}e+=s}return e},n.mp4aSampleEntry.prototype.getCodec=function(){var t=n.SampleEntry.prototype.getCodec.call(this);if(this.esds&&this.esds.esd){var e=this.esds.esd.getOTI(),s=this.esds.esd.getAudioConfig();return t+"."+n.decimalToHex(e)+(s?"."+s:"")}else return t},n.stxtSampleEntry.prototype.getCodec=function(){var t=n.SampleEntry.prototype.getCodec.call(this);return this.mime_format?t+"."+this.mime_format:t},n.vp08SampleEntry.prototype.getCodec=n.vp09SampleEntry.prototype.getCodec=function(){var t=n.SampleEntry.prototype.getCodec.call(this),e=this.vpcC.level;e==0&&(e="00");var s=this.vpcC.bitDepth;return s==8&&(s="08"),t+".0"+this.vpcC.profile+"."+e+"."+s},n.av01SampleEntry.prototype.getCodec=function(){var t=n.SampleEntry.prototype.getCodec.call(this),e=this.av1C.seq_level_idx_0;e<10&&(e="0"+e);var s;return this.av1C.seq_profile===2&&this.av1C.high_bitdepth===1?s=this.av1C.twelve_bit===1?"12":"10":this.av1C.seq_profile<=2&&(s=this.av1C.high_bitdepth===1?"10":"08"),t+"."+this.av1C.seq_profile+"."+e+(this.av1C.seq_tier_0?"H":"M")+"."+s},n.Box.prototype.writeHeader=function(t,e){this.size+=8,this.size>_&&(this.size+=8),this.type==="uuid"&&(this.size+=16),h.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+t.getPosition()+(e||"")),this.size>_?t.writeUint32(1):(this.sizePosition=t.getPosition(),t.writeUint32(this.size)),t.writeString(this.type,null,4),this.type==="uuid"&&t.writeUint8Array(this.uuid),this.size>_&&t.writeUint64(this.size)},n.FullBox.prototype.writeHeader=function(t){this.size+=4,n.Box.prototype.writeHeader.call(this,t," v="+this.version+" f="+this.flags),t.writeUint8(this.version),t.writeUint24(this.flags)},n.Box.prototype.write=function(t){this.type==="mdat"?this.data&&(this.size=this.data.length,this.writeHeader(t),t.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(t),this.data&&t.writeUint8Array(this.data))},n.ContainerBox.prototype.write=function(t){this.size=0,this.writeHeader(t);for(var e=0;e<this.boxes.length;e++)this.boxes[e]&&(this.boxes[e].write(t),this.size+=this.boxes[e].size);h.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)},n.TrackReferenceTypeBox.prototype.write=function(t){this.size=this.track_ids.length*4,this.writeHeader(t),t.writeUint32Array(this.track_ids)},n.avcCBox.prototype.write=function(t){var e;for(this.size=7,e=0;e<this.SPS.length;e++)this.size+=2+this.SPS[e].length;for(e=0;e<this.PPS.length;e++)this.size+=2+this.PPS[e].length;for(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),e=0;e<this.SPS.length;e++)t.writeUint16(this.SPS[e].length),t.writeUint8Array(this.SPS[e].nalu);for(t.writeUint8(this.PPS.length),e=0;e<this.PPS.length;e++)t.writeUint16(this.PPS[e].length),t.writeUint8Array(this.PPS[e].nalu);this.ext&&t.writeUint8Array(this.ext)},n.co64Box.prototype.write=function(t){var e;for(this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(t),t.writeUint32(this.chunk_offsets.length),e=0;e<this.chunk_offsets.length;e++)t.writeUint64(this.chunk_offsets[e])},n.cslgBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4*5,this.writeHeader(t),t.writeInt32(this.compositionToDTSShift),t.writeInt32(this.leastDecodeToDisplayDelta),t.writeInt32(this.greatestDecodeToDisplayDelta),t.writeInt32(this.compositionStartTime),t.writeInt32(this.compositionEndTime)},n.cttsBox.prototype.write=function(t){var e;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length),e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),this.version===1?t.writeInt32(this.sample_offsets[e]):t.writeUint32(this.sample_offsets[e])},n.drefBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.entries.length);for(var e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;h.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)},n.elngBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(t),t.writeString(this.extended_language)},n.elstBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4+12*this.entries.length,this.writeHeader(t),t.writeUint32(this.entries.length);for(var e=0;e<this.entries.length;e++){var s=this.entries[e];t.writeUint32(s.segment_duration),t.writeInt32(s.media_time),t.writeInt16(s.media_rate_integer),t.writeInt16(s.media_rate_fraction)}},n.emsgBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4*4+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)},n.ftypBox.prototype.write=function(t){this.size=8+4*this.compatible_brands.length,this.writeHeader(t),t.writeString(this.major_brand,null,4),t.writeUint32(this.minor_version);for(var e=0;e<this.compatible_brands.length;e++)t.writeString(this.compatible_brands[e],null,4)},n.hdlrBox.prototype.write=function(t){this.size=5*4+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(t),t.writeUint32(0),t.writeString(this.handler,null,4),t.writeUint32(0),t.writeUint32(0),t.writeUint32(0),t.writeCString(this.name)},n.hvcCBox.prototype.write=function(t){var e,s;for(this.size=23,e=0;e<this.nalu_arrays.length;e++)for(this.size+=3,s=0;s<this.nalu_arrays[e].length;s++)this.size+=2+this.nalu_arrays[e][s].data.length;for(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+(15<<24)),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),e=0;e<this.nalu_arrays.length;e++)for(t.writeUint8((this.nalu_arrays[e].completeness<<7)+this.nalu_arrays[e].nalu_type),t.writeUint16(this.nalu_arrays[e].length),s=0;s<this.nalu_arrays[e].length;s++)t.writeUint16(this.nalu_arrays[e][s].data.length),t.writeUint8Array(this.nalu_arrays[e][s].data)},n.kindBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value.length+1),this.writeHeader(t),t.writeCString(this.schemeURI),t.writeCString(this.value)},n.mdhdBox.prototype.write=function(t){this.size=4*4+2*2,this.flags=0,this.version=0,this.writeHeader(t),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)},n.mehdBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.fragment_duration)},n.mfhdBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4,this.writeHeader(t),t.writeUint32(this.sequence_number)},n.mvhdBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=23*4+2*2,this.writeHeader(t),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.writeUint32Array(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)},n.SampleEntry.prototype.writeHeader=function(t){this.size=8,n.Box.prototype.writeHeader.call(this,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)},n.SampleEntry.prototype.writeFooter=function(t){for(var e=0;e<this.boxes.length;e++)this.boxes[e].write(t),this.size+=this.boxes[e].size;h.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)},n.SampleEntry.prototype.write=function(t){this.writeHeader(t),t.writeUint8Array(this.data),this.size+=this.data.length,h.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)},n.VisualSampleEntry.prototype.write=function(t){this.writeHeader(t),this.size+=2*7+6*4+32,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,null,31),t.writeUint16(this.depth),t.writeInt16(-1),this.writeFooter(t)},n.AudioSampleEntry.prototype.write=function(t){this.writeHeader(t),this.size+=2*4+3*4,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.stppSampleEntry.prototype.write=function(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)},n.SampleGroupEntry.prototype.write=function(t){t.writeUint8Array(this.data)},n.sbgpBox.prototype.write=function(t){this.version=1,this.flags=0,this.size=12+8*this.entries.length,this.writeHeader(t),t.writeString(this.grouping_type,null,4),t.writeUint32(this.grouping_type_parameter),t.writeUint32(this.entries.length);for(var e=0;e<this.entries.length;e++){var s=this.entries[e];t.writeInt32(s.sample_count),t.writeInt32(s.group_description_index)}},n.sgpdBox.prototype.write=function(t){var e,s;for(this.flags=0,this.size=12,e=0;e<this.entries.length;e++)s=this.entries[e],this.version===1&&(this.default_length===0&&(this.size+=4),this.size+=s.data.length);for(this.writeHeader(t),t.writeString(this.grouping_type,null,4),this.version===1&&t.writeUint32(this.default_length),this.version>=2&&t.writeUint32(this.default_sample_description_index),t.writeUint32(this.entries.length),e=0;e<this.entries.length;e++)s=this.entries[e],this.version===1&&this.default_length===0&&t.writeUint32(s.description_length),s.write(t)},n.sidxBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4*4+2+2+12*this.references.length,this.writeHeader(t),t.writeUint32(this.reference_ID),t.writeUint32(this.timescale),t.writeUint32(this.earliest_presentation_time),t.writeUint32(this.first_offset),t.writeUint16(0),t.writeUint16(this.references.length);for(var e=0;e<this.references.length;e++){var s=this.references[e];t.writeUint32(s.reference_type<<31|s.referenced_size),t.writeUint32(s.subsegment_duration),t.writeUint32(s.starts_with_SAP<<31|s.SAP_type<<28|s.SAP_delta_time)}},n.smhdBox.prototype.write=function(t){this.version=0,this.flags=1,this.size=4,this.writeHeader(t),t.writeUint16(this.balance),t.writeUint16(0)},n.stcoBox.prototype.write=function(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)},n.stscBox.prototype.write=function(t){var e;for(this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(t),t.writeUint32(this.first_chunk.length),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])},n.stsdBox.prototype.write=function(t){var e;for(this.version=0,this.flags=0,this.size=0,this.writeHeader(t),t.writeUint32(this.entries.length),this.size+=4,e=0;e<this.entries.length;e++)this.entries[e].write(t),this.size+=this.entries[e].size;h.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),t.adjustUint32(this.sizePosition,this.size)},n.stshBox.prototype.write=function(t){var e;for(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),e=0;e<this.shadowed_sample_numbers.length;e++)t.writeUint32(this.shadowed_sample_numbers[e]),t.writeUint32(this.sync_sample_numbers[e])},n.stssBox.prototype.write=function(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)},n.stszBox.prototype.write=function(t){var e,s=!0;if(this.version=0,this.flags=0,this.sample_sizes.length>0)for(e=0;e+1<this.sample_sizes.length;)if(this.sample_sizes[e+1]!==this.sample_sizes[0]){s=!1;break}else e++;else s=!1;this.size=8,s||(this.size+=4*this.sample_sizes.length),this.writeHeader(t),s?t.writeUint32(this.sample_sizes[0]):t.writeUint32(0),t.writeUint32(this.sample_sizes.length),s||t.writeUint32Array(this.sample_sizes)},n.sttsBox.prototype.write=function(t){var e;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(t),t.writeUint32(this.sample_counts.length),e=0;e<this.sample_counts.length;e++)t.writeUint32(this.sample_counts[e]),t.writeUint32(this.sample_deltas[e])},n.tfdtBox.prototype.write=function(t){var e=Math.pow(2,32)-1;this.version=this.baseMediaDecodeTime>e?1:0,this.flags=0,this.size=4,this.version===1&&(this.size+=4),this.writeHeader(t),this.version===1?t.writeUint64(this.baseMediaDecodeTime):t.writeUint32(this.baseMediaDecodeTime)},n.tfhdBox.prototype.write=function(t){this.version=0,this.size=4,this.flags&n.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&n.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&n.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&n.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&n.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(t),t.writeUint32(this.track_id),this.flags&n.TFHD_FLAG_BASE_DATA_OFFSET&&t.writeUint64(this.base_data_offset),this.flags&n.TFHD_FLAG_SAMPLE_DESC&&t.writeUint32(this.default_sample_description_index),this.flags&n.TFHD_FLAG_SAMPLE_DUR&&t.writeUint32(this.default_sample_duration),this.flags&n.TFHD_FLAG_SAMPLE_SIZE&&t.writeUint32(this.default_sample_size),this.flags&n.TFHD_FLAG_SAMPLE_FLAGS&&t.writeUint32(this.default_sample_flags)},n.tkhdBox.prototype.write=function(t){this.version=0,this.size=4*18+2*4,this.writeHeader(t),t.writeUint32(this.creation_time),t.writeUint32(this.modification_time),t.writeUint32(this.track_id),t.writeUint32(0),t.writeUint32(this.duration),t.writeUint32(0),t.writeUint32(0),t.writeInt16(this.layer),t.writeInt16(this.alternate_group),t.writeInt16(this.volume<<8),t.writeUint16(0),t.writeInt32Array(this.matrix),t.writeUint32(this.width),t.writeUint32(this.height)},n.trexBox.prototype.write=function(t){this.version=0,this.flags=0,this.size=4*5,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)},n.trunBox.prototype.write=function(t){this.version=0,this.size=4,this.flags&n.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&n.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&n.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&n.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&n.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&n.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(t),t.writeUint32(this.sample_count),this.flags&n.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=t.getPosition(),t.writeInt32(this.data_offset)),this.flags&n.TRUN_FLAGS_FIRST_FLAG&&t.writeUint32(this.first_sample_flags);for(var e=0;e<this.sample_count;e++)this.flags&n.TRUN_FLAGS_DURATION&&t.writeUint32(this.sample_duration[e]),this.flags&n.TRUN_FLAGS_SIZE&&t.writeUint32(this.sample_size[e]),this.flags&n.TRUN_FLAGS_FLAGS&&t.writeUint32(this.sample_flags[e]),this.flags&n.TRUN_FLAGS_CTS_OFFSET&&(this.version===0?t.writeUint32(this.sample_composition_time_offset[e]):t.writeInt32(this.sample_composition_time_offset[e]))},n["url Box"].prototype.write=function(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)},n["urn Box"].prototype.write=function(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)},n.vmhdBox.prototype.write=function(t){this.version=0,this.flags=1,this.size=8,this.writeHeader(t),t.writeUint16(this.graphicsmode),t.writeUint16Array(this.opcolor)},n.cttsBox.prototype.unpack=function(t){var e,s,r;for(r=0,e=0;e<this.sample_counts.length;e++)for(s=0;s<this.sample_counts[e];s++)t[r].pts=t[r].dts+this.sample_offsets[e],r++},n.sttsBox.prototype.unpack=function(t){var e,s,r;for(r=0,e=0;e<this.sample_counts.length;e++)for(s=0;s<this.sample_counts[e];s++)r===0?t[r].dts=0:t[r].dts=t[r-1].dts+this.sample_deltas[e],r++},n.stcoBox.prototype.unpack=function(t){var e;for(e=0;e<this.chunk_offsets.length;e++)t[e].offset=this.chunk_offsets[e]},n.stscBox.prototype.unpack=function(t){var e,s,r,o,l;for(o=0,l=0,e=0;e<this.first_chunk.length;e++)for(s=0;s<(e+1<this.first_chunk.length?this.first_chunk[e+1]:1/0);s++)for(l++,r=0;r<this.samples_per_chunk[e];r++){if(t[o])t[o].description_index=this.sample_description_index[e],t[o].chunk_index=l;else return;o++}},n.stszBox.prototype.unpack=function(t){var e;for(e=0;e<this.sample_sizes.length;e++)t[e].size=this.sample_sizes[e]},n.DIFF_BOXES_PROP_NAMES=["boxes","entries","references","subsamples","items","item_infos","extents","associations","subsegments","ranges","seekLists","seekPoints","esd","levels"],n.DIFF_PRIMITIVE_ARRAY_PROP_NAMES=["compatible_brands","matrix","opcolor","sample_counts","sample_deltas","first_chunk","samples_per_chunk","sample_sizes","chunk_offsets","sample_offsets","sample_description_index","sample_duration"],n.boxEqualFields=function(t,e){if(t&&!e)return!1;var s;for(s in t)if(!(n.DIFF_BOXES_PROP_NAMES.indexOf(s)>-1)){if(t[s]instanceof n.Box||e[s]instanceof n.Box)continue;if(typeof t[s]>"u"||typeof e[s]>"u")continue;if(typeof t[s]=="function"||typeof e[s]=="function")continue;if(t.subBoxNames&&t.subBoxNames.indexOf(s.slice(0,4))>-1||e.subBoxNames&&e.subBoxNames.indexOf(s.slice(0,4))>-1)continue;if(s==="data"||s==="start"||s==="size"||s==="creation_time"||s==="modification_time")continue;if(n.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(s)>-1)continue;if(t[s]!==e[s])return!1}return!0},n.boxEqual=function(t,e){if(!n.boxEqualFields(t,e))return!1;for(var s=0;s<n.DIFF_BOXES_PROP_NAMES.length;s++){var r=n.DIFF_BOXES_PROP_NAMES[s];if(t[r]&&e[r]&&!n.boxEqual(t[r],e[r]))return!1}return!0};var P=function(){};P.prototype.parseSample=function(t){var e,s,r=new d(t.buffer);for(e=[];!r.isEos();)s=n.parseOneBox(r,!1),s.code===n.OK&&s.box.type==="vttc"&&e.push(s.box);return e},P.prototype.getText=function(t,e,s){function r(c,g,m){return m=m||"0",c=c+"",c.length>=g?c:new Array(g-c.length+1).join(m)+c}function o(c){var g=Math.floor(c/3600),m=Math.floor((c-g*3600)/60),U=Math.floor(c-g*3600-m*60),v=Math.floor((c-g*3600-m*60-U)*1e3);return""+r(g,2)+":"+r(m,2)+":"+r(U,2)+"."+r(v,3)}for(var l=this.parseSample(s),f="",p=0;p<l.length;p++){var u=l[p];f+=o(t)+" --> "+o(e)+`\r
|
|
2
|
+
`,f+=u.payl.text}return f};var G=function(){};G.prototype.parseSample=function(t){var e={},s;e.resources=[];var r=new d(t.data.buffer);if(!t.subsamples||t.subsamples.length===0)e.documentString=r.readString(t.data.length);else if(e.documentString=r.readString(t.subsamples[0].size),t.subsamples.length>1)for(s=1;s<t.subsamples.length;s++)e.resources[s]=r.readUint8Array(t.subsamples[s].size);return typeof DOMParser<"u"&&(e.document=new DOMParser().parseFromString(e.documentString,"application/xml")),e};var K=function(){};K.prototype.parseSample=function(t){var e,s=new d(t.data.buffer);return e=s.readString(t.data.length),e},K.prototype.parseConfig=function(t){var e,s=new d(t.buffer);return s.readUint32(),e=s.readCString(),e},x.VTTin4Parser=P,x.XMLSubtitlein4Parser=G,x.Textin4Parser=K;var y=function(t){this.stream=t||new S,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.items=[],this.entity_groups=[],this.onSidx=null,this.sidxSent=!1};y.prototype.setSegmentOptions=function(t,e,s){var r=this.getTrackById(t);if(r){var o={};this.fragmentedTracks.push(o),o.id=t,o.user=e,o.trak=r,r.nextSample=0,o.segmentStream=null,o.nb_samples=1e3,o.rapAlignement=!0,s&&(s.nbSamples&&(o.nb_samples=s.nbSamples),s.rapAlignement&&(o.rapAlignement=s.rapAlignement))}},y.prototype.unsetSegmentOptions=function(t){for(var e=-1,s=0;s<this.fragmentedTracks.length;s++){var r=this.fragmentedTracks[s];r.id==t&&(e=s)}e>-1&&this.fragmentedTracks.splice(e,1)},y.prototype.setExtractionOptions=function(t,e,s){var r=this.getTrackById(t);if(r){var o={};this.extractedTracks.push(o),o.id=t,o.user=e,o.trak=r,r.nextSample=0,o.nb_samples=1e3,o.samples=[],s&&s.nbSamples&&(o.nb_samples=s.nbSamples)}},y.prototype.unsetExtractionOptions=function(t){for(var e=-1,s=0;s<this.extractedTracks.length;s++){var r=this.extractedTracks[s];r.id==t&&(e=s)}e>-1&&this.extractedTracks.splice(e,1)},y.prototype.parse=function(){var t,e,s=!1;if(!(this.restoreParsePosition&&!this.restoreParsePosition()))for(;;)if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}else if(this.saveParsePosition&&this.saveParsePosition(),t=n.parseOneBox(this.stream,s),t.code===n.ERR_NOT_ENOUGH_DATA)if(this.processIncompleteBox){if(this.processIncompleteBox(t))continue;return}else return;else{var r;switch(e=t.box,r=e.type!=="uuid"?e.type:e.uuid,this.boxes.push(e),r){case"mdat":this.mdats.push(e);break;case"moof":this.moofs.push(e);break;case"moov":this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0);default:this[r]!==void 0&&h.warn("ISOFile","Duplicate Box of type: "+r+", overriding previous occurrence"),this[r]=e;break}this.updateUsedBytes&&this.updateUsedBytes(e,t)}},y.prototype.checkBuffer=function(t){if(t==null)throw"Buffer must be defined and non empty";if(t.fileStart===void 0)throw"Buffer must have a fileStart property";return t.byteLength===0?(h.warn("ISOFile","Ignoring empty buffer (fileStart: "+t.fileStart+")"),this.stream.logBufferLevel(),!1):(h.info("ISOFile","Processing buffer (fileStart: "+t.fileStart+")"),t.usedBytes=0,this.stream.insertBuffer(t),this.stream.logBufferLevel(),this.stream.initialized()?!0:(h.warn("ISOFile","Not ready to start parsing"),!1))},y.prototype.appendBuffer=function(t,e){var s;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?(s=this.nextSeekPosition,this.nextSeekPosition=void 0):s=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(s=this.stream.getEndFilePositionAfter(s))):this.nextParsePosition?s=this.nextParsePosition:s=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&&(h.info("ISOFile","Done processing buffer (fileStart: "+t.fileStart+") - next buffer to fetch should have a fileStart position of "+s),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),h.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),s},y.prototype.getInfo=function(){var t,e,s={},r,o,l,f,p=new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(s.hasMoov=!0,s.duration=this.moov.mvhd.duration,s.timescale=this.moov.mvhd.timescale,s.isFragmented=this.moov.mvex!=null,s.isFragmented&&this.moov.mvex.mehd&&(s.fragment_duration=this.moov.mvex.mehd.fragment_duration),s.isProgressive=this.isProgressive,s.hasIOD=this.moov.iods!=null,s.brands=[],s.brands.push(this.ftyp.major_brand),s.brands=s.brands.concat(this.ftyp.compatible_brands),s.created=new Date(p+this.moov.mvhd.creation_time*1e3),s.modified=new Date(p+this.moov.mvhd.modification_time*1e3),s.tracks=[],s.audioTracks=[],s.videoTracks=[],s.subtitleTracks=[],s.metadataTracks=[],s.hintTracks=[],s.otherTracks=[],t=0;t<this.moov.traks.length;t++){if(r=this.moov.traks[t],f=r.mdia.minf.stbl.stsd.entries[0],o={},s.tracks.push(o),o.id=r.tkhd.track_id,o.name=r.mdia.hdlr.name,o.references=[],r.tref)for(e=0;e<r.tref.boxes.length;e++)l={},o.references.push(l),l.type=r.tref.boxes[e].type,l.track_ids=r.tref.boxes[e].track_ids;r.edts&&(o.edits=r.edts.elst.entries),o.created=new Date(p+r.tkhd.creation_time*1e3),o.modified=new Date(p+r.tkhd.modification_time*1e3),o.movie_duration=r.tkhd.duration,o.movie_timescale=s.timescale,o.layer=r.tkhd.layer,o.alternate_group=r.tkhd.alternate_group,o.volume=r.tkhd.volume,o.matrix=r.tkhd.matrix,o.track_width=r.tkhd.width/65536,o.track_height=r.tkhd.height/65536,o.timescale=r.mdia.mdhd.timescale,o.cts_shift=r.mdia.minf.stbl.cslg,o.duration=r.mdia.mdhd.duration,o.samples_duration=r.samples_duration,o.codec=f.getCodec(),o.kind=r.udta&&r.udta.kinds.length?r.udta.kinds[0]:{schemeURI:"",value:""},o.language=r.mdia.elng?r.mdia.elng.extended_language:r.mdia.mdhd.languageString,o.nb_samples=r.samples.length,o.size=r.samples_size,o.bitrate=o.size*8*o.timescale/o.samples_duration,f.isAudio()?(o.type="audio",s.audioTracks.push(o),o.audio={},o.audio.sample_rate=f.getSampleRate(),o.audio.channel_count=f.getChannelCount(),o.audio.sample_size=f.getSampleSize()):f.isVideo()?(o.type="video",s.videoTracks.push(o),o.video={},o.video.width=f.getWidth(),o.video.height=f.getHeight()):f.isSubtitle()?(o.type="subtitles",s.subtitleTracks.push(o)):f.isHint()?(o.type="metadata",s.hintTracks.push(o)):f.isMetadata()?(o.type="metadata",s.metadataTracks.push(o)):(o.type="metadata",s.otherTracks.push(o))}else s.hasMoov=!1;if(s.mime="",s.hasMoov&&s.tracks){for(s.videoTracks&&s.videoTracks.length>0?s.mime+='video/mp4; codecs="':s.audioTracks&&s.audioTracks.length>0?s.mime+='audio/mp4; codecs="':s.mime+='application/mp4; codecs="',t=0;t<s.tracks.length;t++)t!==0&&(s.mime+=","),s.mime+=s.tracks[t].codec;s.mime+='"; profiles="',s.mime+=this.ftyp.compatible_brands.join(),s.mime+='"'}return s},y.prototype.setNextSeekPositionFromSample=function(t){t&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(t.offset+t.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=t.offset+t.alreadyRead)},y.prototype.processSamples=function(t){var e,s;if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&this.onSegment!==null)for(e=0;e<this.fragmentedTracks.length;e++){var r=this.fragmentedTracks[e];for(s=r.trak;s.nextSample<s.samples.length&&this.sampleProcessingStarted;){h.debug("ISOFile","Creating media fragment on track #"+r.id+" for sample "+s.nextSample);var o=this.createFragment(r.id,s.nextSample,r.segmentStream);if(o)r.segmentStream=o,s.nextSample++;else break;if((s.nextSample%r.nb_samples===0||t||s.nextSample>=s.samples.length)&&(h.info("ISOFile","Sending fragmented data on track #"+r.id+" for samples ["+Math.max(0,s.nextSample-r.nb_samples)+","+(s.nextSample-1)+"]"),h.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(r.id,r.user,r.segmentStream.buffer,s.nextSample,t||s.nextSample>=s.samples.length),r.segmentStream=null,r!==this.fragmentedTracks[e]))break}}if(this.onSamples!==null)for(e=0;e<this.extractedTracks.length;e++){var l=this.extractedTracks[e];for(s=l.trak;s.nextSample<s.samples.length&&this.sampleProcessingStarted;){h.debug("ISOFile","Exporting on track #"+l.id+" sample #"+s.nextSample);var f=this.getSample(s,s.nextSample);if(f)s.nextSample++,l.samples.push(f);else{this.setNextSeekPositionFromSample(s.samples[s.nextSample]);break}if((s.nextSample%l.nb_samples===0||s.nextSample>=s.samples.length)&&(h.debug("ISOFile","Sending samples on track #"+l.id+" for sample "+s.nextSample),this.onSamples&&this.onSamples(l.id,l.user,l.samples),l.samples=[],l!==this.extractedTracks[e]))break}}}},y.prototype.getBox=function(t){var e=this.getBoxes(t,!0);return e.length?e[0]:null},y.prototype.getBoxes=function(t,e){var s=[];return y._sweep.call(this,t,s,e),s},y._sweep=function(t,e,s){this.type&&this.type==t&&e.push(this);for(var r in this.boxes){if(e.length&&s)return;y._sweep.call(this.boxes[r],t,e,s)}},y.prototype.getTrackSamplesInfo=function(t){var e=this.getTrackById(t);if(e)return e.samples},y.prototype.getTrackSample=function(t,e){var s=this.getTrackById(t),r=this.getSample(s,e);return r},y.prototype.releaseUsedSamples=function(t,e){var s=0,r=this.getTrackById(t);r.lastValidSample||(r.lastValidSample=0);for(var o=r.lastValidSample;o<e;o++)s+=this.releaseSample(r,o);h.info("ISOFile","Track #"+t+" released samples up to "+e+" (released size: "+s+", remaining: "+this.samplesDataSize+")"),r.lastValidSample=e},y.prototype.start=function(){this.sampleProcessingStarted=!0,this.processSamples(!1)},y.prototype.stop=function(){this.sampleProcessingStarted=!1},y.prototype.flush=function(){h.info("ISOFile","Flushing remaining samples"),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)},y.prototype.seekTrack=function(t,e,s){var r,o,l=1/0,f=0,p=0,u;if(s.samples.length===0)return h.info("ISOFile","No sample in track, cannot seek! Using time "+h.getDurationString(0,1)+" and offset: 0"),{offset:0,time:0};for(r=0;r<s.samples.length;r++){if(o=s.samples[r],r===0)p=0,u=o.timescale;else if(o.cts>t*o.timescale){p=r-1;break}e&&o.is_sync&&(f=r)}for(e&&(p=f),t=s.samples[p].cts,s.nextSample=p;s.samples[p].alreadyRead===s.samples[p].size&&s.samples[p+1];)p++;return l=s.samples[p].offset+s.samples[p].alreadyRead,h.info("ISOFile","Seeking to "+(e?"RAP":"")+" sample #"+s.nextSample+" on track "+s.tkhd.track_id+", time "+h.getDurationString(t,u)+" and offset: "+l),{offset:l,time:t/u}},y.prototype.getTrackDuration=function(t){var e;return t.samples?(e=t.samples[t.samples.length-1],(e.cts+e.duration)/e.timescale):1/0},y.prototype.seek=function(t,e){var s=this.moov,r,o,l,f={offset:1/0,time:1/0};if(this.moov){for(l=0;l<s.traks.length;l++)r=s.traks[l],!(t>this.getTrackDuration(r))&&(o=this.seekTrack(t,e,r),o.offset<f.offset&&(f.offset=o.offset),o.time<f.time&&(f.time=o.time));return h.info("ISOFile","Seeking at time "+h.getDurationString(f.time,1)+" needs a buffer with a fileStart position of "+f.offset),f.offset===1/0?f={offset:this.nextParsePosition,time:0}:f.offset=this.stream.getEndFilePositionAfter(f.offset),h.info("ISOFile","Adjusted seek position (after checking data already in buffer): "+f.offset),f}else throw"Cannot seek: moov not received!"},y.prototype.equal=function(t){for(var e=0;e<this.boxes.length&&e<t.boxes.length;){var s=this.boxes[e],r=t.boxes[e];if(!n.boxEqual(s,r))return!1;e++}return!0},x.ISOFile=y,y.prototype.lastBoxStartPosition=0,y.prototype.parsingMdat=null,y.prototype.nextParsePosition=0,y.prototype.discardMdatData=!1,y.prototype.processIncompleteBox=function(t){var e,s,r;return t.type==="mdat"?(e=new n[t.type+"Box"](t.size),this.parsingMdat=e,this.boxes.push(e),this.mdats.push(e),e.start=t.start,e.hdr_size=t.hdr_size,this.stream.addUsedBytes(e.hdr_size),this.lastBoxStartPosition=e.start+e.size,r=this.stream.seek(e.start+e.size,!1,this.discardMdatData),r?(this.parsingMdat=null,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=e.start+e.size,!1)):(t.type==="moov"&&(this.moovStartFound=!0,this.mdats.length===0&&(this.isProgressive=!0)),s=this.stream.mergeNextBuffer?this.stream.mergeNextBuffer():!1,s?(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))},y.prototype.hasIncompleteMdat=function(){return this.parsingMdat!==null},y.prototype.processIncompleteMdat=function(){var t,e;return t=this.parsingMdat,e=this.stream.seek(t.start+t.size,!1,this.discardMdatData),e?(h.debug("ISOFile","Found 'mdat' end in buffered data"),this.parsingMdat=null,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)},y.prototype.restoreParsePosition=function(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)},y.prototype.saveParsePosition=function(){this.lastBoxStartPosition=this.stream.getPosition()},y.prototype.updateUsedBytes=function(t,e){this.stream.addUsedBytes&&(t.type==="mdat"?(this.stream.addUsedBytes(t.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(t.size-t.hdr_size)):this.stream.addUsedBytes(t.size))},y.prototype.add=n.Box.prototype.add,y.prototype.addBox=n.Box.prototype.addBox,y.prototype.init=function(t){var e=t||{};this.add("ftyp").set("major_brand",e.brands&&e.brands[0]||"iso4").set("minor_version",0).set("compatible_brands",e.brands||["iso4"]);var s=this.add("moov");return s.add("mvhd").set("timescale",e.timescale||600).set("rate",e.rate||65536).set("creation_time",0).set("modification_time",0).set("duration",e.duration||0).set("volume",e.width?0:256).set("matrix",[65536,0,0,0,65536,0,0,0,1073741824]).set("next_track_id",1),s.add("mvex"),this},y.prototype.addTrack=function(t){this.moov||this.init(t);var 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";var s=this.moov.add("trak");this.moov.mvhd.next_track_id=e.id+1,s.add("tkhd").set("flags",n.TKHD_FLAG_ENABLED|n.TKHD_FLAG_IN_MOVIE|n.TKHD_FLAG_IN_PREVIEW).set("creation_time",0).set("modification_time",0).set("track_id",e.id).set("duration",e.duration||0).set("layer",e.layer||0).set("alternate_group",0).set("volume",1).set("matrix",[65536,0,0,0,65536,0,0,0,1073741824]).set("width",e.width<<16).set("height",e.height<<16);var r=s.add("mdia");r.add("mdhd").set("creation_time",0).set("modification_time",0).set("timescale",e.timescale||1).set("duration",e.media_duration||0).set("language",e.language||"und"),r.add("hdlr").set("handler",e.hdlr||"vide").set("name",e.name||"Track created with MP4Box.js"),r.add("elng").set("extended_language",e.language||"fr-FR");var o=r.add("minf");if(n[e.type+"SampleEntry"]!==void 0){var l=new n[e.type+"SampleEntry"];l.data_reference_index=1;var f="";for(var p in n.sampleEntryCodes)for(var u=n.sampleEntryCodes[p],c=0;c<u.length;c++)if(u.indexOf(e.type)>-1){f=p;break}switch(f){case"Visual":if(o.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),l.set("width",e.width).set("height",e.height).set("horizresolution",72<<16).set("vertresolution",72<<16).set("frame_count",1).set("compressorname",e.type+" Compressor").set("depth",24),e.avcDecoderConfigRecord){var g=new n.avcCBox;g.parse(new d(e.avcDecoderConfigRecord)),l.addBox(g)}else if(e.hevcDecoderConfigRecord){var m=new n.hvcCBox;m.parse(new d(e.hevcDecoderConfigRecord)),l.addBox(m)}break;case"Audio":o.add("smhd").set("balance",e.balance||0),l.set("channel_count",e.channel_count||2).set("samplesize",e.samplesize||16).set("samplerate",e.samplerate||65536);break;case"Hint":o.add("hmhd");break;case"Subtitle":switch(o.add("sthd"),e.type){case"stpp":l.set("namespace",e.namespace||"nonamespace").set("schema_location",e.schema_location||"").set("auxiliary_mime_types",e.auxiliary_mime_types||"");break}break;case"Metadata":o.add("nmhd");break;case"System":o.add("nmhd");break;default:o.add("nmhd");break}e.description&&l.addBox(e.description),e.description_boxes&&e.description_boxes.forEach(function(v){l.addBox(v)}),o.add("dinf").add("dref").addEntry(new n["url Box"]().set("flags",1));var U=o.add("stbl");return U.add("stsd").addEntry(l),U.add("stts").set("sample_counts",[]).set("sample_deltas",[]),U.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),U.add("stco").set("chunk_offsets",[]),U.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",e.id).set("default_sample_description_index",e.default_sample_description_index||1).set("default_sample_duration",e.default_sample_duration||0).set("default_sample_size",e.default_sample_size||0).set("default_sample_flags",e.default_sample_flags||0),this.buildTrakSampleLists(s),e.id}},n.Box.prototype.computeSize=function(t){var e=t||new a;e.endianness=a.BIG_ENDIAN,this.write(e)},y.prototype.addSample=function(t,e,s){var r=s||{},o={},l=this.getTrackById(t);if(l!==null){o.number=l.samples.length,o.track_id=l.tkhd.track_id,o.timescale=l.mdia.mdhd.timescale,o.description_index=r.sample_description_index?r.sample_description_index-1:0,o.description=l.mdia.minf.stbl.stsd.entries[o.description_index],o.data=e,o.size=e.byteLength,o.alreadyRead=o.size,o.duration=r.duration||1,o.cts=r.cts||0,o.dts=r.dts||0,o.is_sync=r.is_sync||!1,o.is_leading=r.is_leading||0,o.depends_on=r.depends_on||0,o.is_depended_on=r.is_depended_on||0,o.has_redundancy=r.has_redundancy||0,o.degradation_priority=r.degradation_priority||0,o.offset=0,o.subsamples=r.subsamples,l.samples.push(o),l.samples_size+=o.size,l.samples_duration+=o.duration,l.first_dts===void 0&&(l.first_dts=r.dts),this.processSamples();var f=this.createSingleSampleMoof(o);return this.addBox(f),f.computeSize(),f.trafs[0].truns[0].data_offset=f.size+8,this.add("mdat").data=new Uint8Array(e),o}},y.prototype.createSingleSampleMoof=function(t){var e=0;t.is_sync?e=1<<25:e=65536;var s=new n.moofBox;s.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var r=s.add("traf"),o=this.getTrackById(t.track_id);return r.add("tfhd").set("track_id",t.track_id).set("flags",n.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),r.add("tfdt").set("baseMediaDecodeTime",t.dts-(o.first_dts||0)),r.add("trun").set("flags",n.TRUN_FLAGS_DATA_OFFSET|n.TRUN_FLAGS_DURATION|n.TRUN_FLAGS_SIZE|n.TRUN_FLAGS_FLAGS|n.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[t.duration]).set("sample_size",[t.size]).set("sample_flags",[e]).set("sample_composition_time_offset",[t.cts-t.dts]),s},y.prototype.lastMoofIndex=0,y.prototype.samplesDataSize=0,y.prototype.resetTables=function(){var t,e,s,r,o,l,f,p;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,t=0;t<this.moov.traks.length;t++){e=this.moov.traks[t],e.tkhd.duration=0,e.mdia.mdhd.duration=0,s=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,s.chunk_offsets=[],r=e.mdia.minf.stbl.stsc,r.first_chunk=[],r.samples_per_chunk=[],r.sample_description_index=[],o=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,o.sample_sizes=[],l=e.mdia.minf.stbl.stts,l.sample_counts=[],l.sample_deltas=[],f=e.mdia.minf.stbl.ctts,f&&(f.sample_counts=[],f.sample_offsets=[]),p=e.mdia.minf.stbl.stss;var u=e.mdia.minf.stbl.boxes.indexOf(p);u!=-1&&(e.mdia.minf.stbl.boxes[u]=null)}},y.initSampleGroups=function(t,e,s,r,o){var l,f,p,u;function c(g,m,U){this.grouping_type=g,this.grouping_type_parameter=m,this.sbgp=U,this.last_sample_in_run=-1,this.entry_index=-1}for(e&&(e.sample_groups_info=[]),t.sample_groups_info||(t.sample_groups_info=[]),f=0;f<s.length;f++){for(u=s[f].grouping_type+"/"+s[f].grouping_type_parameter,p=new c(s[f].grouping_type,s[f].grouping_type_parameter,s[f]),e&&(e.sample_groups_info[u]=p),t.sample_groups_info[u]||(t.sample_groups_info[u]=p),l=0;l<r.length;l++)r[l].grouping_type===s[f].grouping_type&&(p.description=r[l],p.description.used=!0);if(o)for(l=0;l<o.length;l++)o[l].grouping_type===s[f].grouping_type&&(p.fragment_description=o[l],p.fragment_description.used=!0,p.is_fragment=!0)}if(e){if(o)for(f=0;f<o.length;f++)!o[f].used&&o[f].version>=2&&(u=o[f].grouping_type+"/0",p=new c(o[f].grouping_type,0),p.is_fragment=!0,e.sample_groups_info[u]||(e.sample_groups_info[u]=p))}else for(f=0;f<r.length;f++)!r[f].used&&r[f].version>=2&&(u=r[f].grouping_type+"/0",p=new c(r[f].grouping_type,0),t.sample_groups_info[u]||(t.sample_groups_info[u]=p))},y.setSampleGroupProperties=function(t,e,s,r){var o,l;e.sample_groups=[];for(o in r)if(e.sample_groups[o]={},e.sample_groups[o].grouping_type=r[o].grouping_type,e.sample_groups[o].grouping_type_parameter=r[o].grouping_type_parameter,s>=r[o].last_sample_in_run&&(r[o].last_sample_in_run<0&&(r[o].last_sample_in_run=0),r[o].entry_index++,r[o].entry_index<=r[o].sbgp.entries.length-1&&(r[o].last_sample_in_run+=r[o].sbgp.entries[r[o].entry_index].sample_count)),r[o].entry_index<=r[o].sbgp.entries.length-1?e.sample_groups[o].group_description_index=r[o].sbgp.entries[r[o].entry_index].group_description_index:e.sample_groups[o].group_description_index=-1,e.sample_groups[o].group_description_index!==0){var f;r[o].fragment_description?f=r[o].fragment_description:f=r[o].description,e.sample_groups[o].group_description_index>0?(e.sample_groups[o].group_description_index>65535?l=(e.sample_groups[o].group_description_index>>16)-1:l=e.sample_groups[o].group_description_index-1,f&&l>=0&&(e.sample_groups[o].description=f.entries[l])):f&&f.version>=2&&f.default_group_description_index>0&&(e.sample_groups[o].description=f.entries[f.default_group_description_index-1])}},y.process_sdtp=function(t,e,s){e&&(t?(e.is_leading=t.is_leading[s],e.depends_on=t.sample_depends_on[s],e.is_depended_on=t.sample_is_depended_on[s],e.has_redundancy=t.sample_has_redundancy[s]):(e.is_leading=0,e.depends_on=0,e.is_depended_on=0,e.has_redundancy=0))},y.prototype.buildSampleLists=function(){var t,e;for(t=0;t<this.moov.traks.length;t++)e=this.moov.traks[t],this.buildTrakSampleLists(e)},y.prototype.buildTrakSampleLists=function(t){var e,s,r,o,l,f,p,u,c,g,m,U,v,A,B,O,H,N,L,M,q,Q,D,Y;if(t.samples=[],t.samples_duration=0,t.samples_size=0,s=t.mdia.minf.stbl.stco||t.mdia.minf.stbl.co64,r=t.mdia.minf.stbl.stsc,o=t.mdia.minf.stbl.stsz||t.mdia.minf.stbl.stz2,l=t.mdia.minf.stbl.stts,f=t.mdia.minf.stbl.ctts,p=t.mdia.minf.stbl.stss,u=t.mdia.minf.stbl.stsd,c=t.mdia.minf.stbl.subs,U=t.mdia.minf.stbl.stdp,g=t.mdia.minf.stbl.sbgps,m=t.mdia.minf.stbl.sgpds,N=-1,L=-1,M=-1,q=-1,Q=0,D=0,Y=0,y.initSampleGroups(t,null,g,m),!(typeof o>"u")){for(e=0;e<o.sample_sizes.length;e++){var E={};E.number=e,E.track_id=t.tkhd.track_id,E.timescale=t.mdia.mdhd.timescale,E.alreadyRead=0,t.samples[e]=E,E.size=o.sample_sizes[e],t.samples_size+=E.size,e===0?(A=1,v=0,E.chunk_index=A,E.chunk_run_index=v,H=r.samples_per_chunk[v],O=0,v+1<r.first_chunk.length?B=r.first_chunk[v+1]-1:B=1/0):e<H?(E.chunk_index=A,E.chunk_run_index=v):(A++,E.chunk_index=A,O=0,A<=B||(v++,v+1<r.first_chunk.length?B=r.first_chunk[v+1]-1:B=1/0),E.chunk_run_index=v,H+=r.samples_per_chunk[v]),E.description_index=r.sample_description_index[E.chunk_run_index]-1,E.description=u.entries[E.description_index],E.offset=s.chunk_offsets[E.chunk_index-1]+O,O+=E.size,e>N&&(L++,N<0&&(N=0),N+=l.sample_counts[L]),e>0?(t.samples[e-1].duration=l.sample_deltas[L],t.samples_duration+=t.samples[e-1].duration,E.dts=t.samples[e-1].dts+t.samples[e-1].duration):E.dts=0,f?(e>=M&&(q++,M<0&&(M=0),M+=f.sample_counts[q]),E.cts=t.samples[e].dts+f.sample_offsets[q]):E.cts=E.dts,p?(e==p.sample_numbers[Q]-1?(E.is_sync=!0,Q++):(E.is_sync=!1,E.degradation_priority=0),c&&c.entries[D].sample_delta+Y==e+1&&(E.subsamples=c.entries[D].subsamples,Y+=c.entries[D].sample_delta,D++)):E.is_sync=!0,y.process_sdtp(t.mdia.minf.stbl.sdtp,E,E.number),U?E.degradation_priority=U.priority[e]:E.degradation_priority=0,c&&c.entries[D].sample_delta+Y==e&&(E.subsamples=c.entries[D].subsamples,Y+=c.entries[D].sample_delta),(g.length>0||m.length>0)&&y.setSampleGroupProperties(t,E,e,t.sample_groups_info)}e>0&&(t.samples[e-1].duration=Math.max(t.mdia.mdhd.duration-t.samples[e-1].dts,0),t.samples_duration+=t.samples[e-1].duration)}},y.prototype.updateSampleLists=function(){var t,e,s,r,o,l,f,p,u,c,g,m,U,v,A;if(this.moov!==void 0){for(;this.lastMoofIndex<this.moofs.length;)if(u=this.moofs[this.lastMoofIndex],this.lastMoofIndex++,u.type=="moof")for(c=u,t=0;t<c.trafs.length;t++){for(g=c.trafs[t],m=this.getTrackById(g.tfhd.track_id),U=this.getTrexById(g.tfhd.track_id),g.tfhd.flags&n.TFHD_FLAG_SAMPLE_DESC?r=g.tfhd.default_sample_description_index:r=U?U.default_sample_description_index:1,g.tfhd.flags&n.TFHD_FLAG_SAMPLE_DUR?o=g.tfhd.default_sample_duration:o=U?U.default_sample_duration:0,g.tfhd.flags&n.TFHD_FLAG_SAMPLE_SIZE?l=g.tfhd.default_sample_size:l=U?U.default_sample_size:0,g.tfhd.flags&n.TFHD_FLAG_SAMPLE_FLAGS?f=g.tfhd.default_sample_flags:f=U?U.default_sample_flags:0,g.sample_number=0,g.sbgps.length>0&&y.initSampleGroups(m,g,g.sbgps,m.mdia.minf.stbl.sgpds,g.sgpds),e=0;e<g.truns.length;e++){var B=g.truns[e];for(s=0;s<B.sample_count;s++){v={},v.moof_number=this.lastMoofIndex,v.number_in_traf=g.sample_number,g.sample_number++,v.number=m.samples.length,g.first_sample_index=m.samples.length,m.samples.push(v),v.track_id=m.tkhd.track_id,v.timescale=m.mdia.mdhd.timescale,v.description_index=r-1,v.description=m.mdia.minf.stbl.stsd.entries[v.description_index],v.size=l,B.flags&n.TRUN_FLAGS_SIZE&&(v.size=B.sample_size[s]),m.samples_size+=v.size,v.duration=o,B.flags&n.TRUN_FLAGS_DURATION&&(v.duration=B.sample_duration[s]),m.samples_duration+=v.duration,m.first_traf_merged||s>0?v.dts=m.samples[m.samples.length-2].dts+m.samples[m.samples.length-2].duration:(g.tfdt?v.dts=g.tfdt.baseMediaDecodeTime:v.dts=0,m.first_traf_merged=!0),v.cts=v.dts,B.flags&n.TRUN_FLAGS_CTS_OFFSET&&(v.cts=v.dts+B.sample_composition_time_offset[s]),A=f,B.flags&n.TRUN_FLAGS_FLAGS?A=B.sample_flags[s]:s===0&&B.flags&n.TRUN_FLAGS_FIRST_FLAG&&(A=B.first_sample_flags),v.is_sync=!(A>>16&1),v.is_leading=A>>26&3,v.depends_on=A>>24&3,v.is_depended_on=A>>22&3,v.has_redundancy=A>>20&3,v.degradation_priority=A&65535;var O=!!(g.tfhd.flags&n.TFHD_FLAG_BASE_DATA_OFFSET),H=!!(g.tfhd.flags&n.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),N=!!(B.flags&n.TRUN_FLAGS_DATA_OFFSET),L=0;O?L=g.tfhd.base_data_offset:H||e===0?L=c.start:L=p,e===0&&s===0?N?v.offset=L+B.data_offset:v.offset=L:v.offset=p,p=v.offset+v.size,(g.sbgps.length>0||g.sgpds.length>0||m.mdia.minf.stbl.sbgps.length>0||m.mdia.minf.stbl.sgpds.length>0)&&y.setSampleGroupProperties(m,v,v.number_in_traf,g.sample_groups_info)}}if(g.subs){m.has_fragment_subsamples=!0;var M=g.first_sample_index;for(e=0;e<g.subs.entries.length;e++)M+=g.subs.entries[e].sample_delta,v=m.samples[M-1],v.subsamples=g.subs.entries[e].subsamples}}}},y.prototype.getSample=function(t,e){var s,r=t.samples[e];if(!this.moov)return null;if(!r.data)r.data=new Uint8Array(r.size),r.alreadyRead=0,this.samplesDataSize+=r.size,h.debug("ISOFile","Allocating sample #"+e+" on track #"+t.tkhd.track_id+" of size "+r.size+" (total: "+this.samplesDataSize+")");else if(r.alreadyRead==r.size)return r;for(;;){var o=this.stream.findPosition(!0,r.offset+r.alreadyRead,!1);if(o>-1){s=this.stream.buffers[o];var l=s.byteLength-(r.offset+r.alreadyRead-s.fileStart);if(r.size-r.alreadyRead<=l)return h.debug("ISOFile","Getting sample #"+e+" data (alreadyRead: "+r.alreadyRead+" offset: "+(r.offset+r.alreadyRead-s.fileStart)+" read size: "+(r.size-r.alreadyRead)+" full size: "+r.size+")"),a.memcpy(r.data.buffer,r.alreadyRead,s,r.offset+r.alreadyRead-s.fileStart,r.size-r.alreadyRead),s.usedBytes+=r.size-r.alreadyRead,this.stream.logBufferLevel(),r.alreadyRead=r.size,r;if(l===0)return null;h.debug("ISOFile","Getting sample #"+e+" partial data (alreadyRead: "+r.alreadyRead+" offset: "+(r.offset+r.alreadyRead-s.fileStart)+" read size: "+l+" full size: "+r.size+")"),a.memcpy(r.data.buffer,r.alreadyRead,s,r.offset+r.alreadyRead-s.fileStart,l),r.alreadyRead+=l,s.usedBytes+=l,this.stream.logBufferLevel()}else return null}},y.prototype.releaseSample=function(t,e){var s=t.samples[e];return s.data?(this.samplesDataSize-=s.size,s.data=null,s.alreadyRead=0,s.size):0},y.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},y.prototype.getCodecs=function(){var t,e="";for(t=0;t<this.moov.traks.length;t++){var s=this.moov.traks[t];t>0&&(e+=","),e+=s.mdia.minf.stbl.stsd.entries[0].getCodec()}return e},y.prototype.getTrexById=function(t){var e;if(!this.moov||!this.moov.mvex)return null;for(e=0;e<this.moov.mvex.trexs.length;e++){var s=this.moov.mvex.trexs[e];if(s.track_id==t)return s}return null},y.prototype.getTrackById=function(t){if(this.moov===void 0)return null;for(var e=0;e<this.moov.traks.length;e++){var s=this.moov.traks[e];if(s.tkhd.track_id==t)return s}return null},y.prototype.itemsDataSize=0,y.prototype.flattenItemInfo=function(){var t=this.items,e=this.entity_groups,s,r,o,l=this.meta;if(l!=null&&l.hdlr!==void 0&&l.iinf!==void 0){for(s=0;s<l.iinf.item_infos.length;s++)o={},o.id=l.iinf.item_infos[s].item_ID,t[o.id]=o,o.ref_to=[],o.name=l.iinf.item_infos[s].item_name,l.iinf.item_infos[s].protection_index>0&&(o.protection=l.ipro.protections[l.iinf.item_infos[s].protection_index-1]),l.iinf.item_infos[s].item_type?o.type=l.iinf.item_infos[s].item_type:o.type="mime",o.content_type=l.iinf.item_infos[s].content_type,o.content_encoding=l.iinf.item_infos[s].content_encoding,o.item_uri_type=l.iinf.item_infos[s].item_uri_type;if(l.grpl)for(s=0;s<l.grpl.boxes.length;s++)entity_group={},entity_group.id=l.grpl.boxes[s].group_id,entity_group.entity_ids=l.grpl.boxes[s].entity_ids,entity_group.type=l.grpl.boxes[s].type,e[entity_group.id]=entity_group;if(l.iloc)for(s=0;s<l.iloc.items.length;s++){var f=l.iloc.items[s];switch(o=t[f.item_ID],f.data_reference_index!==0&&(h.warn("Item storage with reference to other files: not supported"),o.source=l.dinf.boxes[f.data_reference_index-1]),f.construction_method){case 0:break;case 1:break;case 2:h.warn("Item storage with construction_method : not supported");break}for(o.extents=[],o.size=0,r=0;r<f.extents.length;r++)o.extents[r]={},o.extents[r].offset=f.extents[r].extent_offset+f.base_offset,f.construction_method==1&&(o.extents[r].offset+=l.idat.start+l.idat.hdr_size),o.extents[r].length=f.extents[r].extent_length,o.extents[r].alreadyRead=0,o.size+=o.extents[r].length}if(l.pitm&&(t[l.pitm.item_id].primary=!0),l.iref)for(s=0;s<l.iref.references.length;s++){var p=l.iref.references[s];for(r=0;r<p.references.length;r++)t[p.from_item_ID].ref_to.push({type:p.type,id:p.references[r]})}if(l.iprp)for(var u=0;u<l.iprp.ipmas.length;u++){var c=l.iprp.ipmas[u];for(s=0;s<c.associations.length;s++){var g=c.associations[s];if(o=t[g.id],o||(o=e[g.id]),o)for(o.properties===void 0&&(o.properties={},o.properties.boxes=[]),r=0;r<g.props.length;r++){var m=g.props[r];if(m.property_index>0&&m.property_index-1<l.iprp.ipco.boxes.length){var U=l.iprp.ipco.boxes[m.property_index-1];o.properties[U.type]=U,o.properties.boxes.push(U)}}}}}},y.prototype.getItem=function(t){var e,s;if(!this.meta)return null;if(s=this.items[t],!s.data&&s.size)s.data=new Uint8Array(s.size),s.alreadyRead=0,this.itemsDataSize+=s.size,h.debug("ISOFile","Allocating item #"+t+" of size "+s.size+" (total: "+this.itemsDataSize+")");else if(s.alreadyRead===s.size)return s;for(var r=0;r<s.extents.length;r++){var o=s.extents[r];if(o.alreadyRead!==o.length){var l=this.stream.findPosition(!0,o.offset+o.alreadyRead,!1);if(l>-1){e=this.stream.buffers[l];var f=e.byteLength-(o.offset+o.alreadyRead-e.fileStart);if(o.length-o.alreadyRead<=f)h.debug("ISOFile","Getting item #"+t+" extent #"+r+" data (alreadyRead: "+o.alreadyRead+" offset: "+(o.offset+o.alreadyRead-e.fileStart)+" read size: "+(o.length-o.alreadyRead)+" full extent size: "+o.length+" full item size: "+s.size+")"),a.memcpy(s.data.buffer,s.alreadyRead,e,o.offset+o.alreadyRead-e.fileStart,o.length-o.alreadyRead),e.usedBytes+=o.length-o.alreadyRead,this.stream.logBufferLevel(),s.alreadyRead+=o.length-o.alreadyRead,o.alreadyRead=o.length;else return h.debug("ISOFile","Getting item #"+t+" extent #"+r+" partial data (alreadyRead: "+o.alreadyRead+" offset: "+(o.offset+o.alreadyRead-e.fileStart)+" read size: "+f+" full extent size: "+o.length+" full item size: "+s.size+")"),a.memcpy(s.data.buffer,s.alreadyRead,e,o.offset+o.alreadyRead-e.fileStart,f),o.alreadyRead+=f,s.alreadyRead+=f,e.usedBytes+=f,this.stream.logBufferLevel(),null}else return null}}return s.alreadyRead===s.size?s:null},y.prototype.releaseItem=function(t){var e=this.items[t];if(e.data){this.itemsDataSize-=e.size,e.data=null,e.alreadyRead=0;for(var s=0;s<e.extents.length;s++){var r=e.extents[s];r.alreadyRead=0}return e.size}else return 0},y.prototype.processItems=function(t){for(var e in this.items){var s=this.items[e];this.getItem(s.id),t&&!s.sent&&(t(s),s.sent=!0,s.data=null)}},y.prototype.hasItem=function(t){for(var e in this.items){var s=this.items[e];if(s.name===t)return s.id}return-1},y.prototype.getMetaHandler=function(){return this.meta?this.meta.hdlr.handler:null},y.prototype.getPrimaryItem=function(){return!this.meta||!this.meta.pitm?null:this.getItem(this.meta.pitm.item_id)},y.prototype.itemToFragmentedTrackFile=function(t){var e=t||{},s=null;if(e.itemId?s=this.getItem(e.itemId):s=this.getPrimaryItem(),s==null)return null;var r=new y;r.discardMdatData=!1;var o={type:s.type,description_boxes:s.properties.boxes};s.properties.ispe&&(o.width=s.properties.ispe.image_width,o.height=s.properties.ispe.image_height);var l=r.addTrack(o);return l?(r.addSample(l,s.data),r):null},y.prototype.write=function(t){for(var e=0;e<this.boxes.length;e++)this.boxes[e].write(t)},y.prototype.createFragment=function(t,e,s){var r=this.getTrackById(t),o=this.getSample(r,e);if(o==null)return this.setNextSeekPositionFromSample(r.samples[e]),null;var l=s||new a;l.endianness=a.BIG_ENDIAN;var f=this.createSingleSampleMoof(o);f.write(l),f.trafs[0].truns[0].data_offset=f.size+8,h.debug("MP4Box","Adjusting data_offset with new value "+f.trafs[0].truns[0].data_offset),l.adjustUint32(f.trafs[0].truns[0].data_offset_position,f.trafs[0].truns[0].data_offset);var p=new n.mdatBox;return p.data=o.data,p.write(l),l},y.writeInitializationSegment=function(t,e,s,r){var o;h.debug("ISOFile","Generating initialization segment");var l=new a;l.endianness=a.BIG_ENDIAN,t.write(l);var f=e.add("mvex");for(s&&f.add("mehd").set("fragment_duration",s),o=0;o<e.traks.length;o++)f.add("trex").set("track_id",e.traks[o].tkhd.track_id).set("default_sample_description_index",1).set("default_sample_duration",r).set("default_sample_size",0).set("default_sample_flags",65536);return e.write(l),l.buffer},y.prototype.save=function(t){var e=new a;e.endianness=a.BIG_ENDIAN,this.write(e),e.save(t)},y.prototype.getBuffer=function(){var t=new a;return t.endianness=a.BIG_ENDIAN,this.write(t),t.buffer},y.prototype.initializeSegmentation=function(){var t,e,s,r;for(this.onSegment===null&&h.warn("MP4Box","No segmentation callback set!"),this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.nextMoofNumber=0,this.resetTables()),e=[],t=0;t<this.fragmentedTracks.length;t++){var o=new n.moovBox;o.mvhd=this.moov.mvhd,o.boxes.push(o.mvhd),s=this.getTrackById(this.fragmentedTracks[t].id),o.boxes.push(s),o.traks.push(s),r={},r.id=s.tkhd.track_id,r.user=this.fragmentedTracks[t].user,r.buffer=y.writeInitializationSegment(this.ftyp,o,this.moov.mvex&&this.moov.mvex.mehd?this.moov.mvex.mehd.fragment_duration:void 0,this.moov.traks[t].samples.length>0?this.moov.traks[t].samples[0].duration:0),e.push(r)}return e},n.Box.prototype.printHeader=function(t){this.size+=8,this.size>_&&(this.size+=8),this.type==="uuid"&&(this.size+=16),t.log(t.indent+"size:"+this.size),t.log(t.indent+"type:"+this.type)},n.FullBox.prototype.printHeader=function(t){this.size+=4,n.Box.prototype.printHeader.call(this,t),t.log(t.indent+"version:"+this.version),t.log(t.indent+"flags:"+this.flags)},n.Box.prototype.print=function(t){this.printHeader(t)},n.ContainerBox.prototype.print=function(t){this.printHeader(t);for(var e=0;e<this.boxes.length;e++)if(this.boxes[e]){var s=t.indent;t.indent+=" ",this.boxes[e].print(t),t.indent=s}},y.prototype.print=function(t){t.indent="";for(var e=0;e<this.boxes.length;e++)this.boxes[e]&&this.boxes[e].print(t)},n.mvhdBox.prototype.print=function(t){n.FullBox.prototype.printHeader.call(this,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)},n.tkhdBox.prototype.print=function(t){n.FullBox.prototype.printHeader.call(this,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)};var ot={};ot.createFile=function(t,e){var s=t!==void 0?t:!0,r=new y(e);return r.discardMdatData=!s,r},x.createFile=ot.createFile})($);const tt=lt($),j=Object.freeze({liveMaxLatency:.3,maxCacheBufByte:200*1024,maxCache:10});var et=(x=>(x.NOTMUTED="notmuted",x.MUTED="muted",x))(et||{}),it=(x=>(x.PLAY="play",x.PAUSE="pause",x))(it||{}),z=(x=>(x.AUDIO_STATE_CHANGE="audioStateChange",x.VIDEO_STATE_CHANGE="videoStateChange",x.VIDEO_INFO_UPDATE="videoInfoUpdate",x))(z||{});class st extends Z{constructor(d={}){super();b(this,"_videoEl");b(this,"_mp4box",tt.createFile());b(this,"_bufsQueue",[]);b(this,"_mediaSource");b(this,"_sourceBuffer");b(this,"_mimeType","");b(this,"_paused",!1);b(this,"_options");b(this,"_cacheAnimationID");this._options=d?Object.assign({},j,d):j,this._mp4box.onReady=this._onMp4boxReady.bind(this),this._setupVideo()}get muted(){var d;return((d=this._videoEl)==null?void 0:d.muted)||!1}set muted(d){this._videoEl&&(this._videoEl.muted=d)}set paused(d){var a,_;this._paused=d,d?(a=this._videoEl)==null||a.pause():(_=this._videoEl)==null||_.play()}get paused(){return this._paused}get videoEl(){return this._videoEl}updateOptions(d={}){Object.assign(this._options,{...d})}appendMediaBuffer(d){var a;if(!this._paused){if(!this._sourceBuffer){const _=d[0];_.fileStart=0,this._mp4box.appendBuffer(_)}if(this._bufsQueue.push(...d),this._sourceBuffer&&!((a=this._videoEl)!=null&&a.paused)&&this._bufsQueue.length>2){const _=this._bufsQueue.length,S=this._options.maxCacheBufByte;let w=_-1,n=0;for(let C=_-1;C>0;C--)if(n+=this._bufsQueue[C].byteLength,w=C,n>=S){this._bufsQueue=this._bufsQueue.slice(w);break}}this._cacheAnimationID&&cancelAnimationFrame(this._cacheAnimationID),this._cacheAnimationID=void 0,this._cache()}}_onMp4boxReady(d){if(console.log("onMp4boxReady",d),this._mp4box.flush(),!d.isFragmented){console.error("not fragmented mp4");return}this._mimeType=d.mime;try{const{width:a,height:_}=d.videoTracks[0].video;this.emit("videoInfoUpdate",{width:a,height:_})}catch(a){console.error(a)}this._setupMSE()}_setupVideo(){this._videoEl=document.createElement("video"),this._videoEl.preload="auto",this._videoEl.controls=!1,this._videoEl.muted=!0,this._videoEl.autoplay=!0,this._videoEl.loop=!1,this._videoEl.crossOrigin="anonymous",this._videoEl.playsInline=!0,this._videoEl["webkit-playsinline"]=!0,this._videoEl.addEventListener("canplay",()=>{var d;this._paused||(d=this._videoEl)==null||d.play()}),this._videoEl.addEventListener("play",()=>{this.emit("videoStateChange","play")}),this._videoEl.addEventListener("pause",()=>{this.emit("videoStateChange","pause")}),this._videoEl.addEventListener("volumechange",()=>{var d;this.emit("audioStateChange",(d=this._videoEl)!=null&&d.muted?"muted":"notmuted")}),this._videoEl.addEventListener("error",d=>{console.error("video error",d)}),document.body.appendChild(this._videoEl),this._videoEl.style.position="fixed",this._videoEl.style.left="0px",this._videoEl.style.top="0px",this._videoEl.style.zIndex="-10000",this._videoEl.style.width="1px",this._videoEl.style.height="1px",this._videoEl.style.opacity="0.01",this._videoEl.style.pointerEvents="none",this._videoEl.style.touchAction="none"}isSupportMSE(){return"MediaSource"in window}_setupMSE(){if(!this.isSupportMSE()){console.error("your borwser do not support MediaSource");return}if(!MediaSource.isTypeSupported(this._mimeType)){console.error("Unsupported MIME type or codec: ",this._mimeType);return}this._videoEl&&(this.destroyMediaSource(),this._mediaSource=new MediaSource,URL.revokeObjectURL(this._videoEl.src),this._videoEl.src=URL.createObjectURL(this._mediaSource),this._mediaSource.addEventListener("sourceopen",()=>{const d=this._sourceBuffer=this._mediaSource.addSourceBuffer(this._mimeType);d.mode="sequence",d.onupdateend=()=>{var _,S,w;if(!this._videoEl||!d||((_=this._mediaSource)==null?void 0:_.readyState)!=="open"||![...this._mediaSource.sourceBuffers].includes(d))return;const a=this._videoEl.currentTime;if(d.buffered.length>0){let n=d.buffered.length;if(n>1&&a){const P=n-1;a<d.buffered.start(P)&&(this._videoEl.currentTime=d.buffered.start(P));const G=d.buffered.end(P-1);!this._sourceBuffer.updating&&a>G&&((S=this._sourceBuffer)==null||S.remove(0,G))}n=d.buffered.length;const I=d.buffered.start(n-1),k=d.buffered.end(n-1);if(!a&&I&&(this._videoEl.currentTime=I),this._options.liveMaxLatency){const P=this._options.liveMaxLatency;k-a>P&&(this._videoEl.currentTime=k-.1)}!this._sourceBuffer.updating&&a-I>this._options.maxCache&&((w=this._sourceBuffer)==null||w.remove(0,a-this._options.maxCache/2))}}}))}_cache(){if(!this._videoEl)return;if(!this._mediaSource||!this._sourceBuffer||this._sourceBuffer.updating||!this._bufsQueue.length||this._mediaSource.readyState!=="open"){this._cacheAnimationID===void 0&&(this._cacheAnimationID=requestAnimationFrame(()=>this._cache()));return}if(this._videoEl.error)return this._setupMSE(),this._cacheAnimationID===void 0&&(this._cacheAnimationID=requestAnimationFrame(()=>this._cache()));this._cacheAnimationID=void 0;let d;if(this._bufsQueue.length>1){const a=this._bufsQueue.splice(0,this._bufsQueue.length),_=a.map(n=>n.byteLength).reduce((n,C)=>n+C,0),S=new Uint8Array(_);let w=0;for(const n of a){const C=new Uint8Array(n);S.set(C,w),w+=n.byteLength}d=S}else d=new Uint8Array(this._bufsQueue.shift()||[]);d&&this._sourceBuffer.appendBuffer(d)}refresh(){if(this._videoEl&&this._videoEl.buffered.length){const d=this._videoEl.buffered.end(this._videoEl.buffered.length-1);this._videoEl.currentTime=d}}resetMimeType(){this.destroyMediaSource(),this._videoEl&&(this._videoEl.src=""),this._mp4box=tt.createFile(),this._mp4box.onReady=this._onMp4boxReady.bind(this),this._bufsQueue.length=0}destroyMediaSource(){var d;this._mediaSource&&(this._videoEl&&(URL.revokeObjectURL(((d=this._videoEl)==null?void 0:d.src)||""),this._videoEl.src=""),this._mediaSource.readyState==="open"&&(this._sourceBuffer&&(this._sourceBuffer.abort(),this._mediaSource.removeSourceBuffer(this._sourceBuffer)),this._mediaSource.endOfStream()),this._mediaSource=void 0,this._sourceBuffer=void 0)}destroy(){this._bufsQueue=[],this._videoEl&&(this._videoEl.pause(),this._videoEl.currentTime=0,this._videoEl.parentElement===document.body&&document.body.removeChild(this._videoEl),URL.revokeObjectURL(this._videoEl.src),this._videoEl.src="",this._videoEl=void 0),this._mimeType="",this._cacheAnimationID&&cancelAnimationFrame(this._cacheAnimationID),this._cacheAnimationID=void 0,this.destroyMediaSource()}}class nt{constructor(h,d=!1){b(this,"_canvas",null);b(this,"_useGl",!1);b(this,"_ctx2d",null);b(this,"_gl",null);b(this,"_program",null);b(this,"_positionBuffer",null);b(this,"_texCoordBuffer",null);b(this,"_texture",null);b(this,"_positionLocation",-1);b(this,"_texCoordLocation",-1);b(this,"_textureLocation",null);b(this,"_glReady",!1);this._canvas=h,this._useGl=d,d?this.initGl():this.init2d()}init2d(){this._canvas&&(this._ctx2d=this._canvas.getContext("2d"),this._ctx2d&&(this._ctx2d.fillStyle="black",this._ctx2d.fillRect(0,0,this._canvas.width,this._canvas.height)))}initGl(){if(!this._canvas)return;if(this._gl=this._canvas.getContext("webgl")||this._canvas.getContext("webgl2"),!this._gl){console.error("WebGL not supported"),this._useGl=!1,this.init2d();return}const h=this._gl,d=this.createShader(h,h.VERTEX_SHADER,this.createShaderSource(h,h.VERTEX_SHADER)),a=this.createShader(h,h.FRAGMENT_SHADER,this.createShaderSource(h,h.FRAGMENT_SHADER));if(!d||!a)return;const _=this.createProgram(h,d,a);if(!_)return;const S=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,S),h.bufferData(h.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),h.STATIC_DRAW);const w=h.createBuffer();h.bindBuffer(h.ARRAY_BUFFER,w),h.bufferData(h.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),h.STATIC_DRAW);const n=h.createTexture();h.bindTexture(h.TEXTURE_2D,n),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_S,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_WRAP_T,h.CLAMP_TO_EDGE),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MIN_FILTER,h.LINEAR),h.texParameteri(h.TEXTURE_2D,h.TEXTURE_MAG_FILTER,h.LINEAR);const C=h.getAttribLocation(_,"a_position"),I=h.getAttribLocation(_,"a_texCoord"),k=h.getUniformLocation(_,"u_texture");this._program=_,this._positionBuffer=S,this._texCoordBuffer=w,this._texture=n,this._positionLocation=C,this._texCoordLocation=I,this._textureLocation=k,this._glReady=!0}createShaderSource(h,d){const a=`
|
|
3
|
+
attribute vec2 a_position;
|
|
4
|
+
attribute vec2 a_texCoord;
|
|
5
|
+
varying vec2 v_texCoord;
|
|
6
|
+
void main() {
|
|
7
|
+
gl_Position = vec4(-a_position.x, -a_position.y, 0.0, 1.0);
|
|
8
|
+
v_texCoord = vec2(1.0 - a_texCoord.x, a_texCoord.y);
|
|
9
|
+
}
|
|
10
|
+
`,_=`
|
|
11
|
+
precision mediump float;
|
|
12
|
+
varying vec2 v_texCoord;
|
|
13
|
+
uniform sampler2D u_texture;
|
|
14
|
+
void main() {
|
|
15
|
+
gl_FragColor = texture2D(u_texture, v_texCoord);
|
|
16
|
+
}
|
|
17
|
+
`;return d===h.VERTEX_SHADER?a:_}createShader(h,d,a){const _=h.createShader(d);return _?(h.shaderSource(_,a),h.compileShader(_),h.getShaderParameter(_,h.COMPILE_STATUS)?_:(h.deleteShader(_),console.error("An error occurred compiling the shaders: "+h.getShaderInfoLog(_)),null)):null}createProgram(h,d,a){const _=h.createProgram();return _?(h.attachShader(_,d),h.attachShader(_,a),h.linkProgram(_),h.getProgramParameter(_,h.LINK_STATUS)?_:(console.error("An error occurred linking the program: "+h.getProgramInfoLog(_)),h.deleteProgram(_),null)):null}draw(h){if(this._useGl){if(!this._glReady||!this._canvas)return;const d=this._gl,a=this._program,_=this._positionBuffer,S=this._texCoordBuffer,w=this._texture,n=this._positionLocation,C=this._texCoordLocation,I=this._textureLocation;if(d.viewport(0,0,this._canvas.width,this._canvas.height),h.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)return;d.bindTexture(d.TEXTURE_2D,w),d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,h),d.clear(d.COLOR_BUFFER_BIT),d.useProgram(a),d.enableVertexAttribArray(n),d.bindBuffer(d.ARRAY_BUFFER,_),d.vertexAttribPointer(n,2,d.FLOAT,!1,0,0),d.enableVertexAttribArray(C),d.bindBuffer(d.ARRAY_BUFFER,S),d.vertexAttribPointer(C,2,d.FLOAT,!1,0,0),d.uniform1i(I,0),d.drawArrays(d.TRIANGLES,0,6)}else{const d=this._ctx2d,a=this._canvas;if(!d||!a)return;d.fillStyle="black",d.fillRect(0,0,a.width,a.height),d.drawImage(h,0,0,a.width,a.height)}}destroy(){this._canvas=null,this._useGl=!1,this._ctx2d=null,this._gl=null,this._program=null,this._positionBuffer=null,this._texCoordBuffer=null,this._texture=null,this._positionLocation=-1,this._texCoordLocation=-1,this._textureLocation=null,this._glReady=!1}}const W=Object.freeze({connectLimit:ht?10:32,wsOptions:{binaryType:"arraybuffer"},reparseMimeOnReconnect:!0,renderOptions:j,useWebgl:!1});var X=(x=>(x.WS_URL_CHANGE="wsUrlChange",x.SOCKET_CLOSE="socketClose",x.CONNECT_LIMIT="connectLimit",x))(X||{});const ft=Object.assign({},X,z);class rt extends Z{constructor(d){super();b(this,"_wsInfoMap",new Map);b(this,"_option",W);b(this,"_reqAnimationID",null);this._option=d?Object.assign({},W,d):W}get linkedUrlList(){return[...this._wsInfoMap.keys()]}get connectLimit(){return this._option.connectLimit}_setAnimate(){this._reqAnimationID&&cancelAnimationFrame(this._reqAnimationID);const d=()=>{this._wsInfoMap.forEach(a=>{const{render:_,canvasMap:S}=a;if(!_)return;const{videoEl:w,paused:n}=_;w&&!n&&S.size&&[...S.values()].forEach(I=>{I.draw(w)})}),this._reqAnimationID=requestAnimationFrame(d)};d()}_addSocket(d,a){if(this._isSocketExist(d)){this.updateRenderOptions(d,a);return}if(this._wsInfoMap.size>=this._option.connectLimit){this.emit("connectLimit");return}const _=new dt(d,this._option.wsOptions),S=new st(Object.assign({},this._option.renderOptions,a)),w={socket:_,canvasMap:new Map,render:S};this._wsInfoMap.set(d,w),this._emitWsUrlListChange(),this._bindRenderEvent(d,S),this._bindSocketEvent(_,S,d),_.open()}_bindRenderEvent(d,a){a.on(z.AUDIO_STATE_CHANGE,_=>{this.emit(z.AUDIO_STATE_CHANGE,d,_)}),a.on(z.VIDEO_STATE_CHANGE,_=>{this.emit(z.VIDEO_STATE_CHANGE,d,_)}),a.on(z.VIDEO_INFO_UPDATE,_=>{this.emit(z.VIDEO_INFO_UPDATE,d,_)})}_removeSocket(d){const a=this._wsInfoMap.get(d);if(a){const{socket:_,render:S}=a;_.close(),_.destroy(),S.destroy(),this._wsInfoMap.delete(d),this._emitWsUrlListChange()}}_bindSocketEvent(d,a,_){d.on("close",()=>{this._option.reparseMimeOnReconnect&&a.resetMimeType(),this.emit("socketClose",_)}),d.on("reconnect",()=>{this._option.reparseMimeOnReconnect&&a.resetMimeType()}),d.on("message",S=>{a.appendMediaBuffer([S.data])})}_emitWsUrlListChange(){this.emit("wsUrlChange",[...this._wsInfoMap.keys()]),this._wsInfoMap.size?this._reqAnimationID||this._setAnimate():(this._reqAnimationID&&cancelAnimationFrame(this._reqAnimationID),this._reqAnimationID=null)}_isSocketExist(d){return this._wsInfoMap.has(d)}addCanvas(d,a,_){if(this._addSocket(a,_),this.isCanvasExist(d))throw new Error("the canvas allready exsist! please remove it before add");const S=this._wsInfoMap.get(a);if(!S)return;const{canvasMap:w}=S;w?w.set(d,new nt(d,this._option.useWebgl)):S.canvasMap=new Map([[d,new nt(d,this._option.useWebgl)]])}removeCanvas(d){[...this._wsInfoMap.entries()].some(([S,w])=>{var C;const{canvasMap:n}=w;if(n.has(d))return(C=n.get(d))==null||C.destroy(),n.delete(d),n.size===0&&this._removeSocket(S),!0})}isCanvasExist(d){return[...this._wsInfoMap.values()].some(_=>_.canvasMap.has(d))}setAllVideoMutedState(d){this._wsInfoMap.forEach(a=>{a.render.muted=d})}updateRenderOptions(d,a){if(a){const _=this._wsInfoMap.get(d);_==null||_.render.updateOptions(a)}}setOneMutedState(d,a){const _=this._wsInfoMap.get(d);_&&(_.render.muted=a)}getOneMutedState(d){const a=this._wsInfoMap.get(d);return a?a.render.muted:!0}playOneAudio(d){this.setAllVideoMutedState(!0),this.setOneMutedState(d,!1)}setOneVideoPausedState(d,a){const _=this._wsInfoMap.get(d);_&&(_.render.paused=a)}setAllVideoPausedState(d){this._wsInfoMap.forEach(a=>{a.render.paused=d})}getOneVideoPausedState(d){const a=this._wsInfoMap.get(d);return a?a.render.paused:!1}playOneVideo(d){this.setAllVideoPausedState(!0),this.setOneVideoPausedState(d,!1)}refresh(d){if(d){const a=this._wsInfoMap.get(d);a&&(a.render.refresh(),a.socket.isConnecting||a.socket.reconnect())}else this._wsInfoMap.forEach(a=>{a.render.refresh(),a.socket.isConnecting||a.socket.reconnect()})}destroy(){this._wsInfoMap.forEach(d=>{const{socket:a,render:_,canvasMap:S}=d;a.close(),a.destroy(),_.destroy(),S.forEach(w=>{w.destroy()}),S.clear()}),this._wsInfoMap.clear(),this._emitWsUrlListChange(),this._reqAnimationID&&cancelAnimationFrame(this._reqAnimationID),this._reqAnimationID=null}}new rt,T.AudioState=et,T.BcConnectEventTypeEnum=F,T.BcConnectNodeTypeEnum=R,T.BroadcastChannelManager=at,T.EventEnums=X,T.Render=st,T.RenderEventsEnum=z,T.VideoState=it,T.WS_VIDEO_RENDER_DEFAULT_OPTIONS=j,T.WsVideoManager=rt,T.WsVideoManagerEventEnums=ft,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
|
|
18
|
+
//# sourceMappingURL=solutions.full.min.js.map
|