(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0d7a44"],{"784a":function(e,t,i){"use strict";(function(e,i){class r{on(e,t,i){const r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:i}),this}once(e,t,i){const r=this;function s(){r.off(e,s);for(var a=arguments.length,n=new Array(a),o=0;o{delete i[e]}),void delete this.e;const r=i[e],s=[];if(r&&t)for(let a=0,n=r.length;a>1,(1&t)<<7|i<<3])}je.isEnabled;const Ge=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],He=Ge;function We(e,t){return 1024*(1{Qe(e,i,t[i])}),e.style[t]=i)}function Xe(e,t,i){return i=!(2{var s;ft(r)&&(t+=r,1e3<=(s=(r=Ze())-i)&&(e(t/s*1e3),i=r,t=0))}}try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var tt=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));tt instanceof WebAssembly.Module&&(new WebAssembly.Instance(tt),WebAssembly.Instance)}}catch(r){}function it(){return/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase())}function rt(){return!it()&&!/ipad|android(?!.*mobile)|tablet|kindle|silk/i.test(window.navigator.userAgent.toLowerCase())}function st(){var e=window.navigator.userAgent.toLowerCase();return/android/i.test(e)}function at(){const e=window.navigator.userAgent.toLowerCase()||"",t={type:"",version:""},i={IE:window.ActiveXObject||"ActiveXObject"in window,Chrome:-1{var r=i[t];return"a"===t?["一","二","三","四","五","六","日"][r-1]:(r=0{s=!1,i&&(a.apply(r,i),i=null,r=null)},t)}}function pt(e){if(null==e||""==e)return"0 Bytes";var t=new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"),i=(e=parseFloat(e),Math.floor(Math.log(e)/Math.log(1024)));return(e/Math.pow(1024,i)).toFixed(2)+t[i]}function ft(e){return"[object Number]"===Object.prototype.toString.call(e)}function mt(){let e=!1;return!(!("MediaSource"in window)||!window.MediaSource.isTypeSupported(te))||e}function gt(){const e=at();return"chrome"===e.type.toLowerCase()&&107<=e.version}function yt(){let e=!1;return"MediaStreamTrackGenerator"in window||e}function At(){let e=!1;return"MediaStream"in window||e}function bt(e){return null==e}function vt(e){return!0===e||!1===e}function _t(e){return!bt(e)}function wt(e){var t={left:"",right:"",top:"",bottom:"",opacity:1,backgroundColor:"",image:{src:"",width:"100",height:"60"},text:{content:"",fontSize:"14",color:"#000"},rect:{color:"",lineWidth:2,width:"",height:""},html:""},i=Object.assign(t.image,e.image||{}),r=Object.assign(t.text,e.text||{});return Object.assign(t,e,{image:i,text:r})}function St(e,t){return e={container:e||"",text:"",opacity:"",angle:"",color:"",fontSize:"",fontFamily:""},{watermark_parent_node:(e=Object.assign(e,t)).container,watermark_alpha:e.opacity,watermark_angle:e.angle,watermark_fontsize:e.fontSize,watermark_color:e.color,watermark_font:e.fontFamily,watermark_txt:e.text}}function Et(e,t){return new Promise((i,r)=>{let s=wt(t);if(!s.image.src&&!s.text.content)return i(e);let a=document.createElement("canvas"),n=(a.width=t.width,a.height=t.height,a.getContext("2d")),o=0,l=0;ft(s.left)?o=s.left:ft(s.right)&&(o=a.width-s.right),ft(s.top)?l=s.top:ft(s.bottom)&&(l=a.height-s.bottom);const d=new Image;d.src=e,d.onload=()=>{if(n.drawImage(d,0,0),s.image&&s.image.src){const e=new Image;e.src=s.image.src,e.setAttribute("crossOrigin","Anonymous"),e.onload=()=>{o-=s.image.width,n.drawImage(e,o,l,s.image.width,s.image.height),i(a.toDataURL(t.format,t.quality))},e.onerror=e=>{r()}}else s.text&&s.text.content&&(n.font=s.text.fontSize+"px 宋体",n.fillStyle=s.text.color,n.textAlign="right",n.fillText(s.text.content,o,l),i(a.toDataURL(t.format,t.quality)))},d.onerror=e=>{r(e)}})}function Tt(e){var t,i;return-1{var e=window.navigator.userAgent;return/MicroMessenger/i.test(e)};function It(e){return e=e||window.event,e.target||e.srcElement}function Pt(e){return"function"==typeof e}function Bt(e){let t=0,i=0;var r=e||window.event;return r.pageX||r.pageY?(t=r.pageX,i=r.pageY):(r.clientX||r.clientY)&&(t=e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft,i=e.clientY+document.documentElement.scrollTop+document.body.scrollTop),{posX:t,posY:i}}function Ut(){let e=document.createElement("video"),t=e.canPlayType("application/vnd.apple.mpegurl");return e=null,t}function Ft(e){return $t(e.hasAudio)&&(e.useMSE||e.useWCS&&!e.useOffscreen)}function Mt(e){return e=e.toString().trim().match(/^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/)[1],e=new Blob([e],{type:"application/javascript"}),URL.createObjectURL(e)}function Ot(e){e.close()}function Nt(){return"https:"===window.location.protocol||"localhost"===window.location.hostname}function jt(e,t){let i=(e=t?e.filter(e=>e.type===t):e)[0],r=null,s=1;var a;if(0>4==1&&0===e[1]}function Kt(e){return!0===e||"true"===e}function $t(e){return!0!==e&&"true"!==e}function Yt(e){return e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))}class qt{constructor(e){this.destroys=[],this.proxy=this.proxy.bind(this),this.master=e}proxy(e,t,i){let r=3this.proxy(e,t,i,r));e.addEventListener(t,i,r);var s=()=>{Pt(e.removeEventListener)&&e.removeEventListener(t,i,r)};return this.destroys.push(s),s}}destroy(){this.master.debug&&this.master.debug.log("Events","destroy"),this.destroys.forEach(e=>e()),this.destroys=[]}}var Jt="undefined"!=typeof Float32Array?Float32Array:Array;function Qt(){var e=new Jt(16);return Jt!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Xt(e){e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1}function Zt(e,t,i){var r=new Jt(3);return r[0]=e,r[1]=t,r[2]=i,r}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)}),tt=new Jt(3),Jt!=Float32Array&&(tt[0]=0,tt[1]=0,tt[2]=0),Vr=new Jt(4),Jt!=Float32Array&&(Vr[0]=0,Vr[1]=0,Vr[2]=0,Vr[3]=0);class ei{constructor(e,t){this.gl=e,t&&this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),t=this._initShaderProgram(),this._programInfo={program:t,attribLocations:{vertexPosition:e.getAttribLocation(t,"aVertexPosition"),texturePosition:e.getAttribLocation(t,"aTexturePosition")},uniformLocations:{projectionMatrix:e.getUniformLocation(t,"uProjectionMatrix"),modelMatrix:e.getUniformLocation(t,"uModelMatrix"),viewMatrix:e.getUniformLocation(t,"uViewMatrix"),rgbatexture:e.getUniformLocation(t,"rgbaTexture"),ytexture:e.getUniformLocation(t,"yTexture"),utexture:e.getUniformLocation(t,"uTexture"),vtexture:e.getUniformLocation(t,"vTexture"),isyuv:e.getUniformLocation(t,"isyuv")}},this._buffers=this._initBuffers(),this._rgbatexture=this._createTexture(),this._ytexture=this._createTexture(),this._utexture=this._createTexture(),this._vtexture=this._createTexture()}destroy(){this.gl.deleteProgram(this._programInfo.program),this.gl.deleteBuffer(this._buffers.position),this.gl.deleteBuffer(this._buffers.texPosition),this.gl.deleteBuffer(this._buffers.indices),this.gl.deleteTexture(this._rgbatexture),this.gl.deleteTexture(this._ytexture),this.gl.deleteTexture(this._utexture),this.gl.deleteTexture(this._vtexture),this._programInfo=null,this._buffers=null,this._rgbatexture=null,this._ytexture=null,this._utexture=null,this._vtexture=null}_initShaderProgram(){var e=this._loadShader(this.gl.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),t=this._loadShader(this.gl.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n\n void main(void) {\n\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,t),this.gl.linkProgram(i),this.gl.getProgramParameter(i,this.gl.LINK_STATUS)?i:(console.log("Unable to initialize the shader program: "+this.gl.getProgramInfoLog(i)),null)}_loadShader(e,t){const i=this.gl,r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)?r:(console.log("An error occurred compiling the shaders: "+i.getShaderInfoLog(r)),i.deleteShader(r),null)}_initBuffers(){const e=this.gl,t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t);var i=[-1,-1,1,-1,1,1,-1,1];e.bufferData(e.ARRAY_BUFFER,new Float32Array(i),e.STATIC_DRAW);var r=(r=[]).concat([0,1],[1,1],[1,0],[0,0]),s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW),r=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),e.STATIC_DRAW),{positions:i,position:t,texPosition:s,indices:r}}_createTexture(){var e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),e}_drawScene(e,t,i){this.gl.viewport(0,0,e,t),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this._buffers.position),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array(this._buffers.positions),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this._programInfo.attribLocations.vertexPosition,2,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(this._programInfo.attribLocations.vertexPosition),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this._buffers.texPosition),this.gl.vertexAttribPointer(this._programInfo.attribLocations.texturePosition,2,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(this._programInfo.attribLocations.texturePosition),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this._buffers.indices),i?(this.gl.activeTexture(this.gl.TEXTURE0+3),this.gl.bindTexture(this.gl.TEXTURE_2D,this._ytexture),this.gl.activeTexture(this.gl.TEXTURE0+4),this.gl.bindTexture(this.gl.TEXTURE_2D,this._utexture),this.gl.activeTexture(this.gl.TEXTURE0+5),this.gl.bindTexture(this.gl.TEXTURE_2D,this._vtexture)):(this.gl.activeTexture(this.gl.TEXTURE0+2),this.gl.bindTexture(this.gl.TEXTURE_2D,this._rgbatexture)),this.gl.useProgram(this._programInfo.program),this.gl.uniform1i(this._programInfo.uniformLocations.rgbatexture,2),this.gl.uniform1i(this._programInfo.uniformLocations.ytexture,3),this.gl.uniform1i(this._programInfo.uniformLocations.utexture,4),this.gl.uniform1i(this._programInfo.uniformLocations.vtexture,5),this.gl.uniform1i(this._programInfo.uniformLocations.isyuv,i?1:0),this.gl.drawElements(this.gl.TRIANGLES,6,this.gl.UNSIGNED_SHORT,0)}_calRect(e,t,i,r,s,a){var n=2*e/s-1;r=2*(a-t-r)/a-1,e=2*(e+i)/s-1,i=2*(a-t)/a-1;return[n,r,e,r,e,i,n,i]}_clear(){this.gl.clearColor(0,0,0,1),this.gl.clearDepth(1),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}render(e,t,i,r,s){const a=this.gl;this._clear(),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._ytexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e,t,0,a.LUMINANCE,a.UNSIGNED_BYTE,i),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this._utexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,r),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,this._vtexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,s),this._buffers.positions=[-1,-1,1,-1,1,1,-1,1],this._drawScene(e,t,!0)}renderYUV(e,t,i){var r=i.slice(0,e*t),s=i.slice(e*t,e*t*5/4);i=i.slice(e*t*5/4,e*t*3/2);const a=this.gl;this._clear(),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._ytexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e,t,0,a.LUMINANCE,a.UNSIGNED_BYTE,r),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this._utexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,s),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,this._vtexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,i),this._buffers.positions=[-1,-1,1,-1,1,1,-1,1],this._drawScene(e,t,!0)}drawDom(e,t,i,r,s){const a=this.gl;a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._rgbatexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,s),this._buffers.positions=this._calRect(i,r,s.width,s.height,e,t),this._drawScene(e,t,!1)}}class ti{constructor(e){this.gpu=e,this.pipeline=null,this.matrixGroupInfo=null,this.depthTexture=null,this.textureGroupInfo=null,this.hasInited=!1,this.buffers=this._initBuffer(),this._initPipeline().then(e=>{this.pipeline=e,this.matrixGroupInfo=this._initMatrixGroupInfo(),this.hasInited=!0})}destroy(){this.gpu&&(this.gpu.device.destroy(),this.gpu=null),this.hasInited=!1,this.pipeline=null,this.matrixGroupInfo=null,this.depthTexture=null,this.textureGroupInfo=null}_initBuffer(){const e=this.gpu.device,t=new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),i=e.createBuffer({size:t.byteLength,usage:window.GPUBufferUsage.VERTEX|window.GPUBufferUsage.COPY_DST});e.queue.writeBuffer(i,0,t);var r=new Float32Array([0,1,1,1,1,0,0,0]),s=e.createBuffer({size:r.byteLength,usage:window.GPUBufferUsage.VERTEX|window.GPUBufferUsage.COPY_DST}),a=(r=(e.queue.writeBuffer(s,0,r),new Uint16Array([0,1,2,0,2,3])),e.createBuffer({size:r.byteLength,usage:window.GPUBufferUsage.INDEX|window.GPUBufferUsage.COPY_DST}));return e.queue.writeBuffer(a,0,r),{positionBuffer:i,texpositionBuffer:s,indexBuffer:a}}_initPipeline(){return new Promise((e,t)=>{const i=this.gpu.device,r=this.gpu.format,s={layout:"auto",vertex:{module:i.createShaderModule({code:"\n\n @binding(0) @group(0) var uModelMatrix : mat4x4;\n @binding(1) @group(0) var uViewMatrix : mat4x4;\n @binding(2) @group(0) var uProjectionMatrix : mat4x4;\n\n struct VertexOutput {\n @builtin(position) Position : vec4,\n @location(0) vTexturePosition : vec2,\n }\n\n @vertex\n fn main(\n @location(0) aVertexPosition : vec4,\n @location(1) aTexturePosition : vec2\n ) -> VertexOutput {\n var output : VertexOutput;\n var tmppos : vec4 = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n output.Position = vec4(tmppos.x, tmppos.y, (tmppos.z+1.)/2., tmppos.w); // webgl z [-1, 1], webgpu z [0, 1], 这里z做下调整 z-webgpu = (z-webgl+1)/2\n output.vTexturePosition = aTexturePosition;\n return output;\n }\n\n "}),entryPoint:"main",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]},{arrayStride:8,attributes:[{shaderLocation:1,offset:0,format:"float32x2"}]}]},primitive:{topology:"triangle-list"},fragment:{module:i.createShaderModule({code:"\n @group(1) @binding(0) var mySampler: sampler;\n @group(1) @binding(1) var yTexture: texture_2d;\n @group(1) @binding(2) var uTexture: texture_2d;\n @group(1) @binding(3) var vTexture: texture_2d;\n\n const YUV2RGB : mat4x4 = mat4x4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n @fragment\n fn main(\n @location(0) vTexturePosition: vec2\n ) -> @location(0) vec4 {\n\n var y : f32= textureSample(yTexture, mySampler, vTexturePosition).r;\n var u : f32 = textureSample(uTexture, mySampler, vTexturePosition).r;\n var v : f32 = textureSample(vTexture, mySampler, vTexturePosition).r;\n\n return vec4(y, u, v, 1.0)*YUV2RGB;\n }\n\n "}),entryPoint:"main",targets:[{format:r}]},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}};i.createRenderPipelineAsync(s).then(t=>{e(t)}).catch(e=>{t(e)})})}_initMatrixGroupInfo(){const e=this.gpu.device,t=this.pipeline,i=Qt();r=(s=m=1)/((f=-1)-m),A=1/((a=-1)-s),h=1/((d=.1)-(l=100)),(c=i)[0]=-2*r,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=-2*A,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=2*h,c[11]=0,c[12]=(f+m)*r,c[13]=(s+a)*A,c[14]=(l+d)*h,c[15]=1;var r,s,a,n,o,l,d,h,c,u,p,f=Qt(),m=(Xt(f),Qt()),g=(r=m,s=Zt(0,0,0),a=Zt(0,0,-1),A=Zt(0,1,0),l=s[0],d=s[1],s=s[2],h=A[0],c=A[1],A=A[2],u=a[0],p=a[1],a=a[2],Math.abs(l-u)<1e-6&&Math.abs(d-p)<1e-6&&Math.abs(s-a)<1e-6?Xt(r):(a=s-a,y=c*(a*=g=1/Math.hypot(u=l-u,p=d-p,a))-A*(p*=g),A=A*(u*=g)-h*a,h=h*p-c*u,(g=Math.hypot(y,A,h))?(y*=g=1/g,A*=g,h*=g):h=A=y=0,c=p*h-a*A,n=a*y-u*h,o=u*A-p*y,(g=Math.hypot(c,n,o))?(c*=g=1/g,n*=g,o*=g):o=n=c=0,r[0]=y,r[1]=c,r[2]=u,r[3]=0,r[4]=A,r[5]=n,r[6]=p,r[7]=0,r[8]=h,r[9]=o,r[10]=a,r[11]=0,r[12]=-(y*l+A*d+h*s),r[13]=-(c*l+n*d+o*s),r[14]=-(u*l+p*d+a*s),r[15]=1),e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST})),y=(e.queue.writeBuffer(g,0,f),e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST})),A=(e.queue.writeBuffer(y,0,m),e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST}));return e.queue.writeBuffer(A,0,i),{modelMatrixBuffer:g,viewMatrixBuffer:y,projectMatrixBuffer:A,group:e.createBindGroup({label:"group0",layout:t.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:g}},{binding:1,resource:{buffer:y}},{binding:2,resource:{buffer:A}}]})}}_initTextureGroupInfo(e,t){const i=this.gpu.device,r=this.pipeline,s=i.createTexture({size:[e,t],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),a=i.createTexture({size:[e/2,t/2],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),n=i.createTexture({size:[e/2,t/2],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),o=i.createSampler({magFilter:"linear",minFilter:"linear"}),l=i.createBindGroup({label:"group1",layout:r.getBindGroupLayout(1),entries:[{binding:0,resource:o},{binding:1,resource:s.createView()},{binding:2,resource:a.createView()},{binding:3,resource:n.createView()}]});return{yTexture:s,uTexture:a,vTexture:n,group:l}}_drawScene(){const e=this.gpu.device,t=this.gpu.context,i=e.createCommandEncoder(),r={colorAttachments:[{view:t.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:this.depthTexture.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}},s=i.beginRenderPass(r);s.setPipeline(this.pipeline),s.setBindGroup(0,this.matrixGroupInfo.group),s.setBindGroup(1,this.textureGroupInfo.group),s.setVertexBuffer(0,this.buffers.positionBuffer),s.setVertexBuffer(1,this.buffers.texpositionBuffer),s.setIndexBuffer(this.buffers.indexBuffer,"uint16"),s.drawIndexed(6),s.end(),e.queue.submit([i.finish()])}renderYUV(e,t,i){if(this.hasInited){var r=i.slice(0,e*t),s=i.slice(e*t,e*t*5/4);i=i.slice(e*t*5/4,e*t*3/2);const a=this.gpu.device;this.depthTexture||(this.depthTexture=this.gpu.device.createTexture({size:[e,t],format:"depth24plus",usage:window.GPUTextureUsage.RENDER_ATTACHMENT})),this.textureGroupInfo||(this.textureGroupInfo=this._initTextureGroupInfo(e,t)),a.queue.writeTexture({texture:this.textureGroupInfo.yTexture},r,{bytesPerRow:e,rowsPerImage:t},[e,t]),a.queue.writeTexture({texture:this.textureGroupInfo.uTexture},s,{bytesPerRow:e/2,rowsPerImage:t/2},[e/2,t/2]),a.queue.writeTexture({texture:this.textureGroupInfo.vTexture},i,{bytesPerRow:e/2,rowsPerImage:t/2},[e/2,t/2]),this._drawScene()}}clear(){}}class ii extends r{constructor(){super(),this.videoInfo={width:null,height:null,encType:null},this.init=!1}destroy(){this.resetInit(),this.off()}resetInit(){this.videoInfo={width:null,height:null,encType:null},this.init=!1}getHasInit(){return this.init}updateVideoInfo(e){_t(e.encTypeCode)&&(this.videoInfo.encType=H[e.encTypeCode]),_t(e.encType)&&(this.videoInfo.encType=e.encType),_t(e.width)&&(this.videoInfo.width=e.width),_t(e.height)&&(this.videoInfo.height=e.height),_t(this.videoInfo.encType)&&_t(this.videoInfo.height)&&_t(this.videoInfo.width)&&!this.init&&(this.player.emit(U.videoInfo,this.videoInfo),this.init=!0)}getVideoInfo(){return this.videoInfo}clearView(){}play(){}pause(){}getType(){return""}getCanvasType(){return""}isPlaying(){return!0}addContentToCanvas(){}getPlaybackQuality(){return null}}var ri="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof e&&e.global===e?e:void 0;function si(e,t,i){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){li(r.response,t,i)},r.onerror=function(){console.error("could not download file")},r.send()}function ai(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&t.status<=299}function ni(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(r){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var oi=ri.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),li="object"!=typeof window||window!==ri?function(){}:"download"in HTMLAnchorElement.prototype&&!oi?function(e,t,i){var r=ri.URL||ri.webkitURL,s=document.createElementNS("http://www.w3.org/1999/xhtml","a");t=t||e.name||"download",s.download=t,s.rel="noopener","string"==typeof e?(s.href=e,s.origin!==location.origin?ai(s.href)?si(e,t,i):ni(s,s.target="_blank"):ni(s)):(s.href=r.createObjectURL(e),setTimeout((function(){r.revokeObjectURL(s.href)}),4e4),setTimeout((function(){ni(s)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){var r;t=t||e.name||"download","string"==typeof e?ai(e)?si(e,t,i):((r=document.createElement("a")).href=e,r.target="_blank",setTimeout((function(){ni(r)}))):navigator.msSaveOrOpenBlob((e=e,void 0===(i=i)?i={autoBom:!1}:"object"!=typeof i&&(console.warn("Deprecated: Expected third argument to be a object"),i={autoBom:!i}),i.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e),t)}:function(e,t,i,r){if((r=r||open("","_blank"))&&(r.document.title=r.document.body.innerText="downloading..."),"string"==typeof e)return si(e,t,i);t="application/octet-stream"===e.type,i=/constructor/i.test(ri.HTMLElement)||ri.safari;var s,a,n,o=/CriOS\/[\d]+/.test(navigator.userAgent);(o||t&&i||oi)&&"undefined"!=typeof FileReader?((s=new FileReader).onloadend=function(){var e=s.result;e=o?e:e.replace(/^data:[^;]*;/,"data:attachment/file;");r?r.location.href=e:location=e,r=null},s.readAsDataURL(e)):(a=ri.URL||ri.webkitURL,n=a.createObjectURL(e),r?r.location=n:location.href=n,r=null,setTimeout((function(){a.revokeObjectURL(n)}),4e4))};class di{constructor(e,t){this.gl=e,t&&this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1),e=this._initShaderProgram(),this.shaderProgram=e,this.programInfo={program:e,attribLocations:{vertexPosition:this.gl.getAttribLocation(e,"aVertexPosition")},uniformLocations:{linewidth:this.gl.getUniformLocation(e,"uLineWidth"),rect:this.gl.getUniformLocation(e,"uRect"),linecolor:this.gl.getUniformLocation(e,"uLineColor"),resolution:this.gl.getUniformLocation(e,"uResolution")}},this.buffers=this._initBuffers()}destroy(){this.gl.deleteProgram(this.shaderProgram),this.gl.deleteBuffer(this.buffers.position),this.gl.deleteBuffer(this.buffers.indices),this.shaderProgram=null,this.buffers=null}_initShaderProgram(){const e=this.gl,t=this._loadShader(e.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n void main(void) {\n gl_Position = aVertexPosition;\n }\n "),i=this._loadShader(e.FRAGMENT_SHADER,"\n precision highp float;\n uniform float uLineWidth;\n uniform vec4 uRect;\n uniform vec3 uLineColor;\n uniform vec2 uResolution;\n\n\n float inBox(vec2 st, vec4 rect){\n\n vec2 bl = step(rect.xy,st);\n float pct = bl.x * bl.y;\n\n vec2 tr = step(st, rect.zw);\n pct *= tr.x * tr.y;\n\n return pct;\n }\n\n void main(void) {\n\n vec2 cur = gl_FragCoord.xy/uResolution;\n\n float xlinewidth = uLineWidth/uResolution.x;\n float ylinewidth = uLineWidth/uResolution.y;\n\n // vec4 outRect = uRect + vec4(-1.*xlinewidth/2., -1.*ylinewidth/2., xlinewidth/2., ylinewidth/2.);\n // vec4 inRect = uRect + vec4(xlinewidth/2., ylinewidth/2., -1.*xlinewidth/2., -1.*ylinewidth/2.);\n\n vec4 outRect = uRect + vec4(-1.*xlinewidth/2., -1.*ylinewidth/2., xlinewidth/2., ylinewidth/2.);\n vec4 inRect = uRect;\n\n float a = inBox(cur, outRect);\n float b = inBox(cur, inRect);\n\n gl_FragColor = mix(vec4(0., 0., 0., 0.), vec4(uLineColor.rgb, 1.0), a-b);\n\n }\n "),r=e.createProgram();return e.attachShader(r,t),e.attachShader(r,i),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?r:(console.log("Unable to initialize the shader program: "+e.getProgramInfoLog(r)),null)}_loadShader(e,t){const i=this.gl,r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)?r:(console.log("An error occurred compiling the shaders: "+i.getShaderInfoLog(r)),i.deleteShader(r),null)}_createTexture(){const e=this.gl;var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t}_initBuffers(){const e=this.gl,t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,1,1,-1,1]),e.STATIC_DRAW);var i=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),e.STATIC_DRAW),{position:t,indices:i}}_drawScene(e){var{canvasWidth:e,canvasHeight:t,rect:i,lineWidth:r,lineColor:s}=e;const a=this.gl,n=this.buffers,o=this.programInfo;a.viewport(0,0,e,t),a.enable(a.BLEND),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.bindBuffer(a.ARRAY_BUFFER,n.position),a.vertexAttribPointer(o.attribLocations.vertexPosition,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(o.attribLocations.vertexPosition),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,n.indices),a.useProgram(o.program),a.uniform2f(o.uniformLocations.resolution,e,t),a.uniform4f(o.uniformLocations.rect,i[0],i[1],i[2],i[3]),a.uniform1f(o.uniformLocations.linewidth,r),a.uniform3f(o.uniformLocations.linecolor,s[0],s[1],s[2]),a.drawElements(a.TRIANGLES,6,a.UNSIGNED_SHORT,0)}drawBox(e){var{x:e,y:t,width:i,height:r,lineWidth:s,lineColor:a,canvasWidth:n,canvasHeight:o}=e,l=(l=e/n,r=(o-t-r)/o,e=(e+i)/n,i=(o-t)/o,(t=new Jt(4))[0]=l,t[1]=r,t[2]=e,t[3]=i,t),a=Zt(1,0,0);this._drawScene({canvasWidth:n,canvasHeight:o,rect:l,lineWidth:s,lineColor:a})}}class hi{constructor(e,t){if(this.canvas=e,e=(this.gl=t).createShader(t.VERTEX_SHADER),t.shaderSource(e,"\n attribute vec2 xy;\n varying highp vec2 uv;\n void main(void) {\n gl_Position = vec4(xy, 0.0, 1.0);\n // Map vertex coordinates (-1 to +1) to UV coordinates (0 to 1).\n // UV coordinates are Y-flipped relative to vertex coordinates.\n uv = vec2((1.0 + xy.x) / 2.0, (1.0 - xy.y) / 2.0);\n }\n "),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))throw t.getShaderInfoLog(e);var i=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(i,"\n varying highp vec2 uv;\n uniform sampler2D texture;\n void main(void) {\n gl_FragColor = texture2D(texture, uv);\n }\n "),t.compileShader(i),!t.getShaderParameter(i,t.COMPILE_STATUS))throw t.getShaderInfoLog(i);var r=t.createProgram();if(t.attachShader(r,e),t.attachShader(r,i),t.linkProgram(r),!t.getProgramParameter(r,t.LINK_STATUS))throw t.getProgramInfoLog(r);t.useProgram(r);var s=t.createBuffer(),a=(t.bindBuffer(t.ARRAY_BUFFER,s),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),t.STATIC_DRAW),t.getAttribLocation(r,"xy"));t.vertexAttribPointer(a,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(a),a=t.createTexture();t.bindTexture(t.TEXTURE_2D,a),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.program=r,this.buffer=s,this.vertexShader=e,this.fragmentShader=i,this.texture=a}destroy(){this.gl.deleteProgram(this.program),this.gl.deleteBuffer(this.buffer),this.gl.deleteTexture(this.texture),this.gl.deleteShader(this.vertexShader),this.gl.deleteShader(this.fragmentShader),this.program=null,this.buffer=null,this.vertexShader=null,this.fragmentShader=null,this.texture=null}render(e){this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight;const t=this.gl;t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.viewport(0,0,t.drawingBufferWidth,t.drawingBufferHeight),t.clearColor(1,0,0,1),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4)}}class ci extends ii{constructor(e){super(),this.player=e;const t=document.createElement("canvas");t.style.position="absolute",t.style.top=0,t.style.left=0,this.$videoElement=t,e.$container.appendChild(this.$videoElement),this.context2D=null,this.contextGl=null,this.webglRender=null,this.webglRectRender=null,this.webGPURender=null,this.isWebglContextLost=!1,this.isWcsWebgl2=!1,this.bitmaprenderer=null,this.renderType=null,this.controlHeight=0,this.proxyDestroyList=[],this.tempCanvasContentList=[],this._initCanvasRender()}destroy(){super.destroy(),0{e&&e()}),this.proxyDestroyList=[]),this.contextGl&&(this.contextGl=null),this.context2D&&(this.context2D=null),this.webglRender&&(this.webglRender.destroy(),this.webglRender=null),this.webglRectRender&&(this.webglRectRender.destroy(),this.webglRectRender=null),this.webGPURender&&(this.webGPURender.destroy(),this.webGPURender=null),this.bitmaprenderer&&(this.bitmaprenderer=null),this.renderType=null,this.isWebglContextLost=!1,this.videoInfo={width:"",height:"",encType:""},this.tempCanvasContentList=[],this.player.$container.removeChild(this.$videoElement),this.init=!1,this.off()}_initContext2D(){this.context2D=this.$videoElement.getContext("2d",0{t.preventDefault(),this.player.debug.error("canvasVideo","webglcontextlost error",t),this.isWebglContextLost=!0,this.webglRender&&(this.player.debug.log("CommonCanvasLoader","webglcontextlost error and destroy webglRender"),this.webglRender.destroy(),this.webglRender=null),this.webglRectRender&&(this.player.debug.log("CommonCanvasLoader","webglcontextlost error and destroy webglRectRender"),this.webglRectRender.destroy(),this.webglRectRender=null),this.contextGl=null,setTimeout(()=>{this.player.debug.log("CommonCanvasLoader","createContextGL() version "+e),1===e?this.contextGl=Ke(this.$videoElement):2===e&&(this.contextGl=$e(this.$videoElement)),this.player.debug.log("CommonCanvasLoader","createContextGL success"),this.contextGl&&this.contextGl.getContextAttributes&&this.contextGl.getContextAttributes().stencil?(1===e?(this.webglRender=new ei(this.contextGl,this.player._opt.openWebglAlignment),this.webglRectRender=new di(this.contextGl,this.player._opt.openWebglAlignment)):2===e&&(this.webglRender=new hi(this.$videoElement,this.contextGl)),this.isWebglContextLost=!1,this.player.debug.log("CommonCanvasLoader","webglcontextlost error reset and getContextAttributes().stencil is true")):(this.player.debug.error("CommonCanvasLoader","webglcontextlost error, getContextAttributes().stencil is false"),this.player.emitError(O.webglContextLostError))},500)}),r=t(this.$videoElement,"webglcontextrestored",e=>{e.preventDefault(),this.player.debug.log("CommonCanvasLoader","webglcontextrestored ",e)});this.proxyDestroyList.push(i,r)}_initContextGPU(){var e=this.$videoElement;new Promise((t,i)=>{navigator.gpu?navigator.gpu.requestAdapter().then(r=>{r?r.requestDevice().then(s=>{if(s){const a=e.getContext("webgpu");if(a){const e=navigator.gpu.getPreferredCanvasFormat();a.configure({device:s,format:e,alphaMode:"opaque"}),t({adapter:r,device:s,context:a,format:e})}else i('WebGPU "context" create fail')}else i('WebGPU "device" request fail')}).catch(e=>{i('WebGPU "adapter.requestDevice()" fail')}):i('WebGPU "adapter" request fail is empty')}).catch(e=>{i('WebGPU "navigator.gpu.requestAdapter()" fail')}):i("WebGPU not support!!")}).then(e=>{this.webGPURender=new ti(e),this.player.debug.log("CommonCanvasLoader","webGPURender init success")}).catch(e=>{this.player.debug.error("CommonCanvasLoader",`createWebGPUContext error is ${e} and next use webgl render`),this.renderType=J,this._initContextGl()})}initCanvasViewSize(){this.$videoElement.width=this.videoInfo.width,this.$videoElement.height=this.videoInfo.height,this.resize()}screenshot(e,t,i,r){e=e||qe(),r=r||z.download;let s=.92;!Ae[t]&&z[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));const a=Ae[t]||Ae.png,n=this.$videoElement.toDataURL(a,s);if(r===z.base64)return n;{const t=Ye(n);if(r===z.blob)return t;if(r===z.download){const i=a.split("/")[1];li(t,e+"."+i)}}}screenshotWatermark(e){return new Promise((t,i)=>{(e=(e=Dt(e)?{filename:e}:e)||{}).width=this.videoInfo.width,e.height=this.videoInfo.height,e.filename=e.filename||qe(),e.format=e.format?Ae[e.format]:Ae.png,e.quality=Number(e.quality)||.92,e.type=e.type||z.download;const r=this.$videoElement.toDataURL(e.format,e.quality);Et(r,e).then(i=>{if(e.type===z.base64)t(r);else{const r=Ye(i);if(e.type===z.blob)t(r);else if(e.type===z.download){t();const i=e.format.split("/")[1];li(r,e.filename+"."+i)}}}).catch(e=>{i(e)})})}render(){}clearView(){}play(){}pause(){}resize(){this.player.debug.log("canvasVideo","resize");var e=this.player._opt;let t=this.player.width,i=this.player.height;if(e.hasControl&&!e.controlAutoHide){const r=this.controlHeight;it()&&this.player.fullscreen&&e.useWebFullScreen?t-=r:i-=r}let r=this.$videoElement.width,s=this.$videoElement.height;var a=e.rotate,n=(t-r)/2,o=(i-s)/2,l=(270!==a&&90!==a||(r=this.$videoElement.height,s=this.$videoElement.width),t/r),d=i/s;let h=d{this.context2D.drawImage(t,0,0,this.$videoElement.width,this.$videoElement.height),Ot(e.videoFrame),this.doAddContentToCanvas()})}catch(e){}else this.context2D.drawImage(e.videoFrame,0,0,this.$videoElement.width,this.$videoElement.height),Ot(e.videoFrame),this.doAddContentToCanvas();else this.player.debug.warn("CanvasVideoLoader","doRender() and webcodecs context is lost");break;case Z:case"hls":this.context2D.drawImage(e.$video,0,0,this.$videoElement.width,this.$videoElement.height),this.doAddContentToCanvas()}}clearView(){switch(this.renderType){case X:(function(e,t){const i=document.createElement("canvas");return i.width=e,i.height=t,e=window.createImageBitmap(i,0,0,e,t),i.width=0,i.height=0,e})(this.$videoElement.width,this.$videoElement.height).then(e=>{this.bitmaprenderer.transferFromImageBitmap(e)});break;case J:this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);break;case Q:this.webGPURender.clear();break;case q:this.contextGl?this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT):this.context2D&&this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height);break;case Z:case"hls":this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height)}}_initTempTextCanvas(){this.tempTextCanvas=document.createElement("canvas"),this.tempTextCanvasCtx=this.tempTextCanvas.getContext("2d"),this.tempTextCanvas.width=600,this.tempTextCanvas.height=20}doAddContentToCanvas(){if(0{"text"===t.type?(e.font=(t.fontSize||12)+"px Arial",e.fillStyle=t.color||"green",e.fillText(t.text,t.x,t.y)):"rect"===t.type&&(e.strokeStyle=t.color||"green",e.lineWidth=t.lineWidth||2,e.strokeRect(t.x,t.y,t.width,t.height))}),e.restore()}}doAddContentToWebGlCanvas(){0{var t=e.x,i=e.y;if("rect"===e.type){var r=e.width,s=e.height,a=(a=e.color||"#008000",[parseInt(a.substring(1,3),16)/255,parseInt(a.substring(3,5),16)/255,parseInt(a.substring(5,7),16)/255,1]),n=e.lineWidth||4;r&&s&&this.webglRectRender.drawBox({x:t,y:i,width:r,height:s,lineColor:a,lineWidth:n,canvasWidth:this.$videoElement.width,canvasHeight:this.$videoElement.height})}else if("text"===e.type){const a=e.text||"";a&&(r=e.fontSize||20,s=e.color||"#008000",this.tempTextCanvas||this._initTempTextCanvas(),this.tempTextCanvasCtx.clearRect(0,0,this.tempTextCanvas.width,this.tempTextCanvas.height),this.tempTextCanvasCtx.font=r+"px Arial",this.tempTextCanvasCtx.fillStyle=s,this.tempTextCanvasCtx.textBaseline="top",this.tempTextCanvasCtx.fillText(a,0,0),this.webglRender.drawDom(this.$videoElement.width,this.$videoElement.height,t,i,this.tempTextCanvas))}})}}class pi{constructor(e){this.player=e,this.configList=[],this.shadowRoot=null,this.shadowRootRealDom=null,this.shadowRootInnerDom=null,this.scale=1,this._initDom(),this.player.debug.log("SingleWatermark","int")}destroy(){this.configList=[],this.shadowRootInnerDom=null,this.scale=1,this.shadowRoot&&(this.player.$container.removeChild(this.shadowRootRealDom),this.shadowRoot=null,this.shadowRootInnerDom=null),this.player.debug.log("SingleWatermark","destroy")}resize(){this._resizeDom()}_initDom(){const e=this.player.$container;let t=null;const i=document.createElement("div"),r=(i.setAttribute("style","pointer-events: none !important;display: block !important;"),t="function"==typeof i.attachShadow?i.attachShadow({mode:"open"}):i.shadowRoot||i,document.createElement("div"));r.setAttribute("style","position: absolute; top: 0; left: 0; width: 0; height: 0;display: none;"),t.appendChild(r);var s=e.children,a=Math.floor(Math.random()*(s.length-1));s[a]?e.insertBefore(i,s[a]):e.appendChild(i),this.shadowRootInnerDom=r,this.shadowRootRealDom=i,this.shadowRoot=t}update(e){this._removeDom();let t=[];Array.isArray(e)?t=e:Lt(e)&&t.push(e),e=t.map(e=>wt(e)),this.configList=e,this._updateDom()}_resizeDom(){this.player.$container;const e=this.player.width,t=this.player.height,i=this.player.getVideoInfo();if(i&&0{const t=document.createElement("div");let i=null;e.image&&e.image.src?((i=document.createElement("img")).style.height="100%",i.style.width="100%",i.style.objectFit="contain",i.src=e.image.src):e.text&&e.text.content?i=document.createTextNode(e.text.content):(e.rect&&e.rect.color&&e.rect.width||e.html)&&(i=document.createElement("div")),i&&(t.appendChild(i),t.style.visibility="",t.style.position="absolute",t.style.display="block",t.style["-ms-user-select"]="none",t.style["-moz-user-select"]="none",t.style["-webkit-user-select"]="none",t.style["-o-user-select"]="none",t.style["user-select"]="none",t.style["-webkit-touch-callout"]="none",t.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",t.style["-webkit-text-size-adjust"]="none",t.style["-webkit-touch-callout"]="none",t.style.opacity=e.opacity,ft(e.left)&&(t.style.left=e.left+"px"),ft(e.right)&&(t.style.right=e.right+"px"),ft(e.top)&&(t.style.top=e.top+"px"),ft(e.bottom)&&(t.style.bottom=e.bottom+"px"),e.backgroundColor&&(t.style.backgroundColor=e.backgroundColor),t.style.overflow="hidden",t.style.zIndex="9999999",e.image&&e.image.src?(t.style.width=e.image.width+"px",t.style.height=e.image.height+"px"):e.text&&e.text.content?(t.style.fontSize=e.text.fontSize+"px",t.style.color=e.text.color):e.rect&&e.rect.color&&e.rect.width?(t.style.width=e.rect.width+"px",t.style.height=e.rect.height+"px",t.style.borderWidth=e.rect.lineWidth+"px",t.style.borderStyle="solid",t.style.borderColor=e.rect.color):e.html&&(t.innerHTML=e.html,t.style.width=e.width+"px",t.style.height=e.height+"px"),this.shadowRootInnerDom.appendChild(t))})}remove(){this._removeDom()}_removeDom(){this.shadowRootInnerDom&&(this.shadowRootInnerDom.innerHTML="")}}class fi extends ii{constructor(e){super(),this.player=e,this.TAG_NAME="Video";const t=document.createElement("video"),i=document.createElement("canvas"),r=(t.muted=!0,t.style.position="absolute",t.style.top=0,t.style.left=0,this._delayPlay=!1,e.$container.appendChild(t),this.$videoElement=t,this.$canvasElement=i,this.canvasContext=i.getContext("2d"),this.mediaStream=null,this.vwriter=null,e.canVideoTrackWritter()&&yt()&&At()&&(this.trackGenerator=new MediaStreamTrackGenerator({kind:"video"}),this.mediaStream=new MediaStream([this.trackGenerator]),t.srcObject=this.mediaStream,this.vwriter=this.trackGenerator.writable.getWriter()),this.fixChromeVideoFlashBug(),this.fixMobileAutoFullscreen(),this.resize(),this.eventListenList=[],this.tempContentList=[],this.contentWatermark=null,this.isRenderRetryPlaying=!1,this.isRenderRetryPlayingTimes=0,this.isRetryPlaying=!1,this.isRetryPlayingTimes=0,this.player.events)["proxy"],s=r(this.$videoElement,"canplay",()=>{this.player.debug.log("Video","canplay"),this._delayPlay&&this._play()}),a=r(this.$videoElement,"waiting",()=>{this.player.debug.log("Video","waiting")}),n=r(this.$videoElement,"loadedmetadata",()=>{this.player.debug.log("Video","loadedmetadata")}),o=r(this.$videoElement,"timeupdate",t=>{t=parseInt(t.timeStamp,10),(this.player.isWebrtcH264()||this.player.isOldHls())&&this.player.emit(U.timeUpdate,t),e.isWebrtcH264()&&(e.handleRender(),e.updateStats({fps:!0}))}),l=r(this.$videoElement,"error",()=>{this.player.debug.error("Video","Error "+this.$videoElement.error.code+"; details: "+this.$videoElement.error.message)});this.eventListenList.push(s,a,o,l,n),this.player.debug.log("Video","init")}destroy(){if(super.destroy(),this.eventListenList&&(this.eventListenList.forEach(e=>{e()}),this.eventListenList=[]),this.contentWatermark&&(this.contentWatermark.destroy(),this.contentWatermark=null),this.tempContentList=[],this.isRenderRetryPlaying=!1,this.isRenderRetryPlayingTimes=0,this.isRetryPlaying=!1,this.isRetryPlayingTimes=0,this.player._opt.videoRenderSupportScale&&this._isNeedAddBackDropFilter()){const e=this.player.$container;e.style.backdropFilter="none",e.style.transform="none"}if(this.$canvasElement.height=0,this.$canvasElement.width=0,this.$canvasElement=null,this.canvasContext=null,this.$videoElement){this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src"));try{this.$videoElement.load()}catch(r){}this.player.$container.removeChild(this.$videoElement),this.$videoElement=null}this.trackGenerator&&(this.trackGenerator.stop(),this.trackGenerator=null),this.vwriter&&(this.vwriter.close(),this.vwriter=null),this._delayPlay=!1,this.mediaStream&&(this.mediaStream.getTracks().forEach(e=>e.stop()),this.mediaStream=null),this.off(),this.player.debug.log("Video","destroy")}fixChromeVideoFlashBug(){if(this.player._opt.videoRenderSupportScale&&this._isNeedAddBackDropFilter()){const e=this.player.$container;e.style.backdropFilter="blur(0px)",e.style.transform="translateZ(0)"}}fixMobileAutoFullscreen(){var e=nt(),t=st();(e||t)&&(this.player.debug.log("Video",`fixMobileAutoFullscreen and isIOS ${e} and isAndroid `+t),this.$videoElement.setAttribute("webkit-playsinline","true"),this.$videoElement.setAttribute("playsinline","true"),this.setAttribute("x5-video-player-type","h5-page"))}_isNeedAddBackDropFilter(){var e=at().type.toLowerCase();return"chrome"===e||"edge"===e}isPaused(){let e=!0;return this.$videoElement?this.$videoElement.paused:e}isPause(){return this.isPaused()}_getVideoReadyState(){let e=0;return this.$videoElement?this.$videoElement.readyState:e}_getVideoCurrentTime(){let e=0;return this.$videoElement?this.$videoElement.currentTime:e}play(){if(this.$videoElement){var e=this._getVideoReadyState();if(this.player.debug.log("Video","play and readyState: "+e),0===e)return this.player.debug.warn("Video","readyState is 0 and set _delayPlay to true and listen canplay event to play"),void(this._delayPlay=!0);this._play()}}_play(){this.$videoElement&&this.$videoElement.play().then(()=>{this._delayPlay=!1,this.player.debug.log("Video","_play success"),this.isPlaying()?(this.isRetryPlayingTimes=0,this.isRetryPlaying=!1):setTimeout(()=>{this._replay()},100)}).catch(e=>{this.player.debug.error("Video","_play error",e),this.isRetryPlaying=!1,setTimeout(()=>{this._replay()},100)})}_replay(){!this.isPlaying()&&$t(this.isRetryPlaying)&&(this.isRetryPlaying=!0,3<=this.isRetryPlayingTimes?this.player.isWebrtcH264()?(this.player.debug.error("Video",`_replay(webrtc H264) then but not playing and retry play times is ${this.isRetryPlayingTimes} and emit error`),this.player.emitError(O.videoElementPlayingFailedForWebrtc)):(this.player.debug.error("Video",`_replay then but not playing and retry play times is ${this.isRetryPlayingTimes} and emit error to use canvas render`),this.player.emitError(O.videoElementPlayingFailed)):(this.player.debug.warn("Video","_play then but not playing and retry play"),this._play(),this.isRetryPlayingTimes++))}pause(e){this.isPlaying()&&(e?this.$videoElement&&this.$videoElement.pause():setTimeout(()=>{this.$videoElement&&this.$videoElement.pause()},100))}clearView(){this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")))}screenshot(e,t,i,r){if(!this._canScreenshot())return this.player.debug.warn("Video","screenshot failed, video is not ready"),null;e=e||qe(),r=r||z.download;let s=.92;!Ae[t]&&z[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i)),i=this.$videoElement;let a=this.$canvasElement;a.width=i.videoWidth,a.height=i.videoHeight,this.canvasContext.drawImage(i,0,0,a.width,a.height);const n=Ae[t]||Ae.png,o=a.toDataURL(n,s);if(this.canvasContext.clearRect(0,0,a.width,a.height),a.width=0,a.height=0,r===z.base64)return o;{const t=Ye(o);if(r===z.blob)return t;if(r===z.download){const i=n.split("/")[1];li(t,e+"."+i)}}}screenshotWatermark(e){return new Promise((t,i)=>{if(Dt(e)&&(e={filename:e}),!this._canScreenshot())return this.player.debug.warn("Video","screenshot failed, video is not ready"),i("screenshot failed, video is not ready");var r=this.$videoElement;(e=e||{}).width=r.videoWidth,e.height=r.videoHeight,e.filename=e.filename||qe(),e.format=e.format?Ae[e.format]:Ae.png,e.quality=Number(e.quality)||.92,e.type=e.type||z.download;let s=this.$canvasElement;s.width=r.videoWidth,s.height=r.videoHeight,this.canvasContext.drawImage(r,0,0,s.width,s.height);const a=s.toDataURL(e.format,e.quality);this.canvasContext.clearRect(0,0,s.width,s.height),s.width=0,s.height=0,Et(a,e).then(i=>{if(e.type===z.base64)t(a);else{var r=Ye(i);if(e.type===z.blob)t(r);else if(e.type===z.download){t();const i=e.format.split("/")[1];li(r,e.filename+"."+i)}}}).catch(e=>{i(e)})})}initCanvasViewSize(){this.resize()}clear(){const e=this.$videoElement,t=e.buffered,i=t.length?t.end(t.length-1):0;e.currentTime=i}render(e){if(this.vwriter){if(this.$videoElement.srcObject||(this.$videoElement.srcObject=this.mediaStream),this.isPaused()){const e=this._getVideoReadyState();if(this.player.debug.warn("Video","render() error, video is paused and readyState is "+e),4===e&&$t(this.isRenderRetryPlaying)){if(this.isRenderRetryPlaying=!0,3{this.isRenderRetryPlayingTimes=0,this.isRenderRetryPlaying=!1,this.player.debug.log("Video","render() video is paused and replay success")}).catch(e=>{this.isRenderRetryPlaying=!1,this.isRenderRetryPlayingTimes++,this.player.debug.warn("Video","render() error, video is paused and replay error ",e)})}}if(this.player.videoTimestamp=e.ts||0,this.player.updateStats({fps:!0,ts:e.ts||0}),e.videoFrame)this.vwriter.write(e.videoFrame),Ot(e.videoFrame);else if(e.output){let s=e.output;this.player.faceDetectActive&&this.player.ai&&this.player.ai.faceDetector&&(s=this.player.ai.faceDetector.detect({width:this.videoInfo.width,height:this.videoInfo.height,data:e.output})),this.player.objectDetectActive&&this.player.ai&&this.player.ai.objectDetector&&(s=this.player.ai.objectDetector.detect({width:this.videoInfo.width,height:this.videoInfo.height,data:e.output}));try{i=s,r={format:"I420",codedWidth:this.videoInfo.width,codedHeight:this.videoInfo.height,timestamp:e.ts};var t=new VideoFrame(i,r);this.vwriter.write(t),Ot(t)}catch(e){this.player.debug.error("Video","render error",e),this.player.emitError(O.wasmUseVideoRenderError,e)}}this.doAddContentToWatermark()}else this.player.debug.warn("Video","render and this.vwriter is null");var i,r}resize(){let e=this.player.width,t=this.player.height;const i=this.player._opt,r=i.rotate;if(i.hasControl&&!i.controlAutoHide){const r=i.playType===d?48:38;it()&&this.player.fullscreen&&i.useWebFullScreen?e-=r:t-=r}this.$videoElement.width=e,this.$videoElement.height=t,270!==r&&90!==r||(this.$videoElement.width=t,this.$videoElement.height=e);let s=(e-this.$videoElement.width)/2,a=(t-this.$videoElement.height)/2,n="contain",o=(i.isResize||(n="fill"),i.isFullResize&&(n="none"),"");"none"===i.mirrorRotate&&r&&(o+=" rotate("+r+"deg)"),"level"===i.mirrorRotate?o+=" rotateY(180deg)":"vertical"===i.mirrorRotate&&(o+=" rotateX(180deg)"),this.player._opt.videoRenderSupportScale&&(this.$videoElement.style.objectFit=n),this.$videoElement.style.transform=o,this.$videoElement.style.left=s+"px",this.$videoElement.style.top=a+"px"}getType(){return b}isPlaying(){return this.$videoElement&&$t(this.$videoElement.paused)&&$t(this.$videoElement.ended)&&0!==this.$videoElement.playbackRate&&0!==this.$videoElement.readyState}_canScreenshot(){return this.$videoElement&&2<=this.$videoElement.readyState}addContentToCanvas(){this.tempContentList=0{let t={left:e.x,top:e.y};return"text"===e.type?t.text={content:e.text,fontSize:e.fontSize,color:e.color}:"rect"===e.type&&(t.rect={width:e.width,height:e.height,color:e.color,lineWidth:e.lineWidth}),t}),this.contentWatermark.update(e)):this.contentWatermark&&this.contentWatermark.remove()}getPlaybackQuality(){let e=null;var t;return this.$videoElement&&(e=Pt(this.$videoElement.getVideoPlaybackQuality)?{droppedVideoFrames:(t=this.$videoElement.getVideoPlaybackQuality()).droppedVideoFrames||t.corruptedVideoFrames,totalVideoFrames:t.totalVideoFrames,creationTime:t.creationTime}:{droppedVideoFrames:this.$videoElement.webkitDroppedFrameCount,totalVideoFrames:this.$videoElement.webkitDecodedFrameCount,creationTime:qe()})&&(e.renderedVideoFrames=e.totalVideoFrames-e.droppedVideoFrames),e}}class mi extends ci{constructor(e){super(e),this.controlHeight=48,this.bufferList=[],this.playing=!1,this.playInterval=null,this.fps=1,this.preFps=1,this.streamFps=0,this.playbackRate=1,this._firstTimestamp=null,this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,this.player.on(U.playbackPause,e=>{e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()}),this.player.debug.log("CanvasPlaybackLoader","init")}destroy(){this._stopSync(),this._firstTimestamp=null,this.playing=!1,this.playbackRate=1,this.fps=1,this.preFps=1,this.bufferList=[],this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,super.destroy(),this.player.debug.log("CanvasPlaybackLoader","destroy")}_initCanvasRender(){this.player._opt.useWCS?(this.renderType=q,this._initContext2D()):this.player._opt.useWebGPU?(this.renderType=Q,this._initContextGPU()):(this.renderType=J,this._initContextGl())}_sync(){this._stopSync(),this._doPlay(),this.playInterval=setInterval(()=>{this._doPlay()},this.fragDuration)}_doPlay(){var e;0{this.context2D.drawImage(t,0,0,this.$videoElement.width,this.$videoElement.height),Ot(e)})}catch(e){}else this.context2D.drawImage(e,0,0,this.$videoElement.width,this.$videoElement.height),Ot(e);else if(this.getCanvasType()===J)try{this.webglRender.renderYUV(this.$videoElement.width,this.$videoElement.height,e)}catch(e){this.player.debug.error("CanvasPlaybackLoader",`doRender webgl render context is lost ${this.contextGl&&this.contextGl.isContextLost()} and error: `+e.toString())}else if(this.getCanvasType()===Q)try{this.webGPURender?this.webGPURender.renderYUV(this.$videoElement.width,this.$videoElement.height,e):this.player.debug.warn("CanvasVideoLoader","doRender webgpu render is not init")}catch(e){this.player.debug.error("CanvasPlaybackLoader","doRender webgpu render and error: "+e.toString())}}_updateStats(e){this.player.updateStats({fps:!0,ts:e}),this._startfpsTime||(this._startfpsTime=e,this._startFpsTimestamp=qe());var t=e,i=qe(),r=i-this._startFpsTimestamp;r<=1e3?this._renderFps+=1:(this.player.emit(U.playbackStats,{fps:this._renderFps,start:this._startfpsTime,end:t,timestamp:r,dataTimestamp:t-this._startfpsTime,audioBufferSize:this.player.audio?this.player.audio.bufferSize:0,videoBufferSize:this.player.video?this.player.video.bufferSize:0,ts:e}),this._renderFps=0,this._startfpsTime=t,this._startFpsTimestamp=i)}get rate(){return this.playbackRate}get fragDuration(){return Math.ceil(1e3/(this.fps*this.playbackRate))}get bufferSize(){return this.bufferList.length}getStreamFps(){return this.streamFps}initFps(){this._hasCalcFps?this.player.debug.log("CanvasPlaybackLoader","initFps, has calc fps"):(this.preFps=Je(this.player.playback.fps,1,100),this.fps=this.preFps)}setFps(e){e!==this.fps?(100 `+this.fps),this.player.playback.isUseFpsRender&&this._sync()):this.player.debug.log("CanvasPlaybackLoader","setFps, same fps "+e)}setStreamFps(e){this.player.debug.log("CanvasPlaybackLoader","setStreamFps",e),this._hasCalcFps=!0,this.streamFps=e,this.preFps=e,this.setFps(e)}setRate(e){e!==this.playbackRate&&(this.playbackRate=e,this.player.playback.isUseFpsRender&&this._sync())}render$2(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);const t={tfTs:e.ts-this._firstTimestamp,ts:e.ts};e.videoFrame?t.buffer=e.videoFrame:t.buffer=e.output,this.bufferList.push(t),this.startRender(),this.player.handleRender(),this.player.playback.updateStats({ts:e.ts,tfTs:t.tfTs})}startRender(){for(;!(this.bufferList.length<=0);){var e=this.bufferList.shift();this._doRender(e.buffer)}}pushData(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);const t={tfTs:e.ts-this._firstTimestamp,ts:e.ts};if(e.videoFrame?t.buffer=e.videoFrame:t.buffer=e.output,e=this.player._opt.playbackConfig.isCacheBeforeDecodeForFpsRender,e||this.bufferSize>this.fps*this.playbackRate*2&&(this.player.debug.warn("CanvasPlaybackLoader","buffer size is "+this.bufferSize),this._doPlay()),this.bufferList.push(t),!this._hasCalcFps){const e=jt(this.bufferList);null!==e&&e!==this.preFps&&(this.player.debug.log("CanvasPlaybackLoader",`calc fps is ${e} pre fps is ${this.preFps} and updatePreFps`),this.setStreamFps(e))}if(!e){const e=this.bufferList.length,t=e/(this.fps*this.playbackRate);this.player.debug.log("CanvasPlaybackLoader","rate is",t),t<=1?this.setFps(this.preFps):(this.setFps(this.fps+Math.floor(t*this.playbackRate)),this.player.debug.warn("CanvasPlaybackLoader","rate is",t,"fps is",this.fps,"bufferListLength is",e))}}initVideo(){this.player.playback&&this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}initVideoDelay(){var e=this.player._opt.playbackDelayTime;0{this.initVideo()},e):this.initVideo()}clearView(){this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT)}clear(){this.player._opt.useWCS&&this.bufferList.forEach(e=>{e.buffer&&Ot(e.buffer)}),this.bufferList=[]}resume(){this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}pause(){this.player.playback.isUseFpsRender&&this._stopSync(),this.playing=!1}}class gi{constructor(e){return new(gi.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.useMSE?e.mseUseCanvasRender?ui:fi:e.isHls&&$t(e.supportHls265)?e.useCanvasRender?ui:fi:e.isWebrtc&&$t(e.isWebrtcH265)?fi:e.useWCS?e.playType===d?mi:!e.useOffscreen&&e.wcsUseVideoRender?fi:ui:e.playType===d?mi:e.wasmUseVideoRender&&!e.useOffscreen?fi:ui}}class yi extends r{constructor(e){super(),this.bufferList=[],this.player=e,this.$audio=null,this.scriptNode=null,this.workletProcessorNode=null,this.hasInitScriptNode=!1,this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain();const t=this.audioContext.createBufferSource();t.buffer=this.audioContext.createBuffer(1,1,22050),t.connect(this.audioContext.destination),t.noteOn?t.noteOn(0):t.start(0),this.audioBufferSourceNode=t,this.mediaStreamAudioDestinationNode=this.audioContext.createMediaStreamDestination(),this.gainNode.gain.value=0,this.playing=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1,this.hasAudio=!1,this.audioResumeStateTimeout=null,this.on(U.videoSyncAudio,e=>{this.audioSyncVideoOption=e})}destroy(){this.closeAudio(),this.resetInit(),this.audioContext.close(),this.audioContext=null,this.gainNode=null,this.hasAudio=!1,this.playing=!1,this.scriptNode&&(this.scriptNode.onaudioprocess=Ve,this.scriptNode=null),this.workletProcessorNode&&(this.workletProcessorNode.port.onmessage=Ve,this.workletProcessorNode=null),this.audioResumeStateTimeout&&(clearTimeout(this.audioResumeStateTimeout),this.audioResumeStateTimeout=null),this.audioBufferSourceNode=null,this.mediaStreamAudioDestinationNode=null,this.hasInitScriptNode=!1,this.audioSyncVideoOption={diff:null},this.off()}resetInit(){this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1}getAudioInfo(){return this.audioInfo}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encType=$[e.encTypeCode]),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.emit(U.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return this.playing}get isMute(){return 0===this.gainNode.gain.value}get volume(){return this.gainNode.gain.value}get bufferSize(){return this.bufferList.length}initScriptNode(){}initMobileScriptNode(){}initWorkletScriptNode(){}getEngineType(){return""}mute(e){e?(this.isMute||this.player.emit(U.mute,e),this.setVolume(0),this.clear()):(this.isMute&&this.player.emit(U.mute,e),this.setVolume(this.player.lastVolume||.5))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(this.audioEnabled(!0),e=Je(e,0,1),this.gainNode.gain.value=e,this.player.emit(U.volumechange,this.player.volume))}closeAudio(){this.hasInitScriptNode&&(this.scriptNode&&this.scriptNode.disconnect(this.gainNode),this.workletProcessorNode&&this.workletProcessorNode.disconnect(this.gainNode),this.gainNode&&(this.gainNode.disconnect(this.mediaStreamAudioDestinationNode),this.$audio||this.gainNode.disconnect(this.audioContext.destination))),this.clear()}audioEnabled(e){e?this.isStateSuspended()&&(this.audioContext.resume().then(()=>{this.player.emit(U.audioResumeState,{state:this.audioContext.state,isRunning:this.isStateRunning()})}),this.audioResumeStateTimeout=setTimeout(()=>{clearTimeout(this.audioResumeStateTimeout),this.audioResumeStateTimeout=null,this.isStateSuspended()&&this.player.emit(U.audioResumeState,{state:this.audioContext.state,isRunning:this.isStateRunning()})},1e3)):this.isStateRunning()&&this.audioContext.suspend()}isStateRunning(){return"running"===this.audioContext.state}isStateSuspended(){return"suspended"===this.audioContext.state}clear(){this.bufferList=[]}play(e,t){}pause(){this.audioSyncVideoOption={diff:null},this.playing=!1}resume(){this.playing=!0}setRate(e){}getAudioBufferSize(){return 0}}class Ai{constructor(e,t,i,r){this.player=e,this.audio=t,this.channel=i,this.bufferSize=r}extract(e,t){var i=this.provide(t);for(let r=0;rn){try{for(let e=0;ethis._frameCount)||(e=this.frameCount),this._frameCount-=e,this._position+=e}receiveSamples(e){var t=1=e-1)break e;var o=i+2*a;r[s+2*n]=(1-this.slopeCount)*t[o]+this.slopeCount*t[o+2],r[s+2*n+1]=(1-this.slopeCount)*t[o+1]+this.slopeCount*t[o+3],n+=1,this.slopeCount+=this._rate}return this.prevSampleL=t[i+2*e-2],this.prevSampleR=t[i+2*e-1],n}}function wi(){}class Si extends class{constructor(e){this._pipe=e}get pipe(){return this._pipe}get inputBuffer(){return this._pipe.inputBuffer}get outputBuffer(){return this._pipe.outputBuffer}fillInputBuffer(){throw new Error("fillInputBuffer() not overridden")}fillOutputBuffer(){let e=0this._position)throw new RangeError("New position may not be greater than current position");var t=this.outputBufferPosition-(this._position-e);if(t<0)throw new RangeError("New position falls outside of history buffer");this.outputBufferPosition=t,this._position=e}get sourcePosition(){return this._sourcePosition}set sourcePosition(e){this.clear(),this._sourcePosition=e}onEnd(){this.callback()}fillInputBuffer(){var e=0t&&(t=i,e=r);return e}seekBestOverlapPositionStereoQuick(){let e,t,i,r,s,a=0;for(this.preCalculateCorrelationReferenceStereo(),t=Number.MIN_VALUE,e=0,r=0,s=0;a<4;a+=1){let n=0;for(;Ei[a][n]&&!((s=r+Ei[a][n])>=this.seekLength);)(i=this.calculateCrossCorrelationStereo(2*s,this.refMidBuffer))>t&&(t=i,e=s),n+=1;r=e}return e}preCalculateCorrelationReferenceStereo(){let e,t,i=0;for(;i=this.sampleReq;){e=this.seekBestOverlapPosition(),this._outputBuffer.ensureAdditionalCapacity(this.overlapLength),this.overlap(Math.floor(e)),this._outputBuffer.put(this.overlapLength),0<(t=this.seekWindowLength-2*this.overlapLength)&&this._outputBuffer.putBuffer(this._inputBuffer,e+this.overlapLength,t);var t=this._inputBuffer.startIndex+2*(e+this.seekWindowLength-this.overlapLength);this.midBuffer.set(this._inputBuffer.vector.subarray(t,t+2*this.overlapLength)),this.skipFract+=this.nominalSkip,e=Math.floor(this.skipFract),this.skipFract-=e,this._inputBuffer.receive(e)}}}function ki(e,t){return 1e-10<(t{e()}),this.eventListenList=[]),this.$audio&&(this.$audio.pause(),this.$audio.srcObject=null,this.$audio.parentNode&&this.$audio.parentNode.removeChild(this.$audio),this.$audio=null),this.processor&&(this.processor.destroy(),this.processor=null),this.rateProcessor&&(this.rateProcessor.destroy(),this.rateProcessor=null),this.scriptNodeInterval&&(clearInterval(this.scriptNodeInterval),this.scriptNodeInterval=null),this.defaultPlaybackRate=1,this.playbackRate=1,this.scriptStartTime=0,this.audioBufferSize=0,this.engineType=ke,this.player.debug.log("AudioContext","destroy")}isAudioPlaying(){return this.$audio&&$t(this.$audio.paused)&&$t(this.$audio.ended)&&0!==this.$audio.playbackRate&&0!==this.$audio.readyState}_bindAudioProxy(){const e=this.player.events["proxy"],t=e(this.$audio,"canplay",()=>{this.player.debug.log("AudioContext","canplay"),this._delayPlay&&this._audioElementPlay()});this.eventListenList.push(t)}_getAudioElementReadyState(){let e=0;return this.$audio?this.$audio.readyState:e}audioElementPlay(){if(this.$audio){var e=this._getAudioElementReadyState();if(this.player.debug.log("AudioContext","play and readyState: "+e),!(0!==e||Rt()&&nt()))return this.player.debug.warn("AudioContext","readyState is 0 and set _delayPlay to true"),void(this._delayPlay=!0);this._audioElementPlay()}}_audioElementPlay(){this.$audio&&this.$audio.play().then(()=>{this._delayPlay=!1,this.player.debug.log("AudioContext","_audioElementPlay success"),setTimeout(()=>{this.isAudioPlaying()||(this.player.debug.warn("AudioContext","play failed and retry play"),this._audioElementPlay())},100),this.isAudioPlaying()&&(this.player.debug.log("AudioContext","play success and remove document click event listener"),document.removeEventListener("click",this._audioElementPlay.bind(this)))}).catch(e=>{this.player.debug.error("AudioContext","_audioElementPlay error",e),document.addEventListener("click",this._audioElementPlay.bind(this))})}getAudioBufferSize(){return this.audioBufferSize}get oneBufferDuration(){return this.audioBufferSize/this.audioContext.sampleRate*1e3}get isActiveEngineType(){return this.engineType===xe}initProcessor(){this.processor=new Ai(this.player,this,this.audioInfo.channels,this.audioBufferSize),this.rateProcessor=new Ci(this.player,this,this.processor)}getAutoAudioEngineType(){let e=this.player._opt.audioEngine||ke;var t=()=>{e=Rt()&&st()?xe:nt()&&this.player._opt.supportLockScreenPlayAudio||!Nt()?ke:Te};return this.player._opt.audioEngine?this.player._opt.audioEngine===Te&&Nt()?e=Te:this.player._opt.audioEngine===xe?e=xe:this.player._opt.audioEngine===ke?e=ke:t():t(),e}getAudioBufferSizeByType(){var e=this.engineType,t=(this.player._opt.hasVideo,this.player._opt.weiXinInAndroidAudioBufferSize);return e!==Te&&e===xe?t||4800:1024}initScriptNode(){this.playing=!0,this.hasInitScriptNode||(this.initProcessor(),this.engineType===Te?this.initWorkletScriptNode():this.engineType===xe?this.initIntervalScriptNode():this.engineType===ke&&this.initProcessScriptNode(),this.audioElementPlay())}getEngineType(){return this.engineType}isPlaybackRateSpeed(){return this.playbackRate>this.defaultPlaybackRate}initProcessScriptNode(){const e=this.audioContext.createScriptProcessor(this.audioBufferSize,0,this.audioInfo.channels);e.onaudioprocess=e=>{e=e.outputBuffer,this.handleScriptNodeCallback(e)},e.connect(this.gainNode),this.scriptNode=e,this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.$audio?this.$audio.srcObject=this.mediaStreamAudioDestinationNode.stream:this.gainNode.connect(this.audioContext.destination),this.hasInitScriptNode=!0}initIntervalScriptNode(){this.scriptStartTime=0;var e=1e3*this.audioBufferSize/this.audioContext.sampleRate;this.scriptNodeInterval=setInterval(()=>{const e=this.audioContext.createBufferSource(),t=this.audioContext.createBuffer(this.audioInfo.channels,this.audioBufferSize,this.audioContext.sampleRate);this.handleScriptNodeCallback(t,()=>{this.scriptStartTime{"init"===e.data.message?(this.audioBufferSize=e.data.audioBufferSize,this.start=e.data.start,this.channels=e.data.channels,this.state=0,this.offset=0,this.samplesArray=[]):"stop"===e.data.message?(this.state=0,this.start=!1,this.offset=0,this.samplesArray=[]):"data"===e.data.message?this.samplesArray.push(e.data.buffer):"zero"===e.data.message&&this.samplesArray.push({left:new Float32Array(this.audioBufferSize).fill(0),right:new Float32Array(this.audioBufferSize).fill(0)})}}process(e,t,i){const r=t[0][0],s=t[0][1];if(0===this.offset&&this.port.postMessage({message:"beep"}),0===this.state)this.state=1;else if(1===this.state&&4<=this.samplesArray.length)this.state=2;else if(2===this.state){const e=this.samplesArray[0];for(let t=0;t{if(this.audioContext){let t=[1];2===this.audioInfo.channels&&(t=[1,1]);try{this.workletProcessorNode=new AudioWorkletNode(this.audioContext,"worklet-processor",{numberOfOutputs:this.audioInfo.channels,outputChannelCount:t})}catch(e){this.player.debug.error("AudioContext","initWorkletScriptNode error",e),this.workletProcessorNode=null,this.tierDownToProcessScript()}this.workletProcessorNode&&(this.workletProcessorNode.connect(this.gainNode),this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.$audio?this.$audio.srcObject=this.mediaStreamAudioDestinationNode.stream:this.gainNode.connect(this.audioContext.destination),this.hasInitScriptNode=!0,this.workletProcessorNode.port.postMessage({message:"init",audioBufferSize:this.audioBufferSize,start:!0,channels:this.audioInfo.channels}),this.workletProcessorNode.port.onmessage=e=>{this.workletProcessorNode?this.audioContext?this.handleScriptNodeCallback(this.workletProcessorNode,null,!0):this.workletProcessorNode.port.postMessage({message:"zero"}):this.player.debug.error("AudioContext","workletProcessorNode is null")})}else this.player.debug.error("AudioContext","initWorkletScriptNode audioContext is null")}),this.clearWorkletUrlTimeout=setTimeout(()=>{URL.revokeObjectURL(e),this.clearWorkletUrlTimeout=null},E)}tierDownToProcessScript(){this.player.debug.log("AudioContext","tierDownToProcessScript"),this.engineType=ke,this.audioBufferSize=this.getAudioBufferSizeByType(),this.initProcessScriptNode(),this.audioElementPlay()}handleScriptNodeCallback(e,t){let i,r=2t)return this.player.debug.warn("AudioContext",`bufferList length ${this.bufferList.length} more than ${t}, and drop`),void this.clear();this.bufferList.length>e?(i=this.defaultPlaybackRate+.1,this.player.debug.warn("AudioContext",`bufferList length ${this.bufferList.length} more than ${e}, speed up, playbackRate is `+i)):this.bufferList.length{this.listenPlaybackPause(e)}),this.player.debug.log("AudioPlaybackContext","init")}destroy(){this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null),super.destroy(),this.player.debug.log("AudioPlaybackLoader","destroy")}listenPlaybackPause(e){e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()}initScriptNodeDelay(){var e=this.player._opt.playbackDelayTime;0{this.initScriptNode()},e):this.initScriptNode()}setRate(e){e!==this.defaultPlaybackRate&&this.rateProcessor&&(this.player.debug.log("AudioPlaybackContext","setRate",e),this.defaultPlaybackRate=e,this.updatePlaybackRate(e))}}class Ii extends Li{constructor(e){super(e),this.TAG_NAME="AudioPlayerLoader",this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.TAG_NAME,"destroy")}play(e,t){$t(this.playing)||super.play(e,t)}pause(){this.player.debug.log(this.TAG_NAME,"pause"),this.playing=!1,this.clear()}resume(){this.player.debug.log(this.TAG_NAME,"resume"),this.playing=!0}}class Pi{constructor(e){return new(Pi.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.playType===d?Ri:e.playType===l?Ii:e.isHls&&$t(e.supportHls265)||e.isWebrtc&&$t(e.isWebrtcH265)?Di:Li}}class Bi extends r{constructor(e){super(),this.TAG_NAME="FetchWorkerLoader",this.player=e,this.playing=!1,this.fetchWorker=null,this.workerClearTimeout=null,this.abortController=new AbortController,this.streamRate=et(t=>{e.emit(U.kBps,(t/1024).toFixed(2))}),this.streamRateInterval=null,this._initFetchWorker(),e.debug.log(this.TAG_NAME,"init")}destroy(){this.off(),this.workerClearTimeout&&(clearTimeout(this.workerClearTimeout),this.workerClearTimeout=null),this.fetchWorker&&(this.fetchWorker.postMessage({cmd:"destroy"}),this.fetchWorker.terminate(),this.fetchWorker=null),this._stopStreamRateInterval(),this.streamRate=null,this.player.debug.log(this.TAG_NAME,"destroy")}_initFetchWorker(){var e=function(){const e="The user aborted a request",t="AbortError",i="AbortError",r="fetchError",s="fetchClose",a="fetchSuccess";let n=new class{constructor(){this.abortController=new AbortController}destroy(){this.abort()}fetchStream(n){var o=Object.assign({signal:this.abortController.signal},{headers:(1{if(!(n.ok&&200<=n.status&&n.status<=299))return this.abort(),void postMessage({cmd:r,message:`fetch response status is ${n.status} and ok is `+n.ok});if(postMessage({cmd:a}),"undefined"!=typeof WritableStream)n.body.pipeTo(new WritableStream({write:e=>{this.streamRate&&this.streamRate(e.byteLength),postMessage({cmd:"buffer",buffer:e},[e.buffer])},close:()=>{postMessage({cmd:s})},abort:s=>{const a=s.toString();-1===a.indexOf(e)&&-1===a.indexOf(t)&&s.name!==i&&(this.abort(),postMessage({cmd:r,message:s.toString()}))}}));else{const a=n.body.getReader(),o=()=>{a.read().then(e=>{var{done:e,value:t}=e;e?postMessage({cmd:s}):(postMessage({cmd:"buffer",buffer:t},[t.buffer]),o())}).catch(s=>{const a=s.toString();-1===a.indexOf(e)&&-1===a.indexOf(t)&&s.name!==i&&(this.abort(),postMessage({cmd:r,message:s.toString()}))})};o()}}).catch(e=>{"AbortError"!==e.name&&(this.abort(),postMessage({cmd:r,message:e.toString()}))})}abort(){this.abortController&&(this.abortController.abort(),this.abortController=null)}};self.onmessage=e=>{var t=e.data;switch(t.cmd){case"fetch":n.fetchStream(t.url,JSON.parse(t.options));break;case"destroy":n.destroy(),n=null}}}.toString().trim().match(/^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/)[1];const t=new Blob([e],{type:"text/javascript"}),i=URL.createObjectURL(t),r=new Worker(i);this.workerClearTimeout=setTimeout(()=>{window.URL.revokeObjectURL(i),this.workerClearTimeout=null},E),r.onmessage=e=>{const t=this.player["demux"],i=e.data;switch(i.cmd){case"buffer":this.streamRate&&this.streamRate(i.buffer.byteLength),t.dispatch(i.buffer);break;case"fetchSuccess":this.emit(U.streamSuccess),this._startStreamRateInterval();break;case"fetchClose":t.close(),this.emit(U.streamEnd);break;case"fetchError":t.close(),this.emit(O.fetchError,i.message)}},this.fetchWorker=r}_startStreamRateInterval(){this._stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}_stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}fetchStream(e){var t=1{e.emit(U.kBps,(t/1024).toFixed(2))}),this.streamRateInterval=null,e.debug.log("WebsocketStream","init")}destroy(){this._closeWebSocket(),this.stopStreamRateInterval(),this.wsUrl=null,this.off(),this.player.debug.log("WebsocketStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebSocket(){const e=this.player,{debug:t,events:{proxy:i},demux:r}=e;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer";var s=i(this.socket,"open",()=>{t.log("WebsocketStream","socket open"),this.socketStatus=j,this.emit(U.streamSuccess),this.player.emit(U.websocketOpen),this.startStreamRateInterval()}),a=i(this.socket,"message",e=>{this.streamRate&&this.streamRate(e.data.byteLength),this._handleMessage(e.data)}),n=i(this.socket,"close",e=>{t.log("WebsocketStream","socket close and code is "+e.code),1006===e.code&&t.error("WebsocketStream","socket close abnormally and code is "+e.code),r.close(),this.socketStatus="close",this.player.emit(U.websocketClose),this.emit(U.streamEnd)}),o=i(this.socket,"error",e=>{t.error("WebsocketStream","socket error",e),this.socketStatus="error",this.emit(O.websocketError,e),r.close(),t.log("WebsocketStream","socket error:",e.isTrusted?"websocket user aborted":"websocket error")});this.socketDestroyFnList.push(s,a,n,o)}_closeWebSocket(){this.socketDestroyFnList.forEach(e=>e()),this.socket&&(this.socket.close(1e3,"Client disconnecting"),this.socket=null),this.socketStatus=N,this.streamRate=null}_handleMessage(e){const t=this.player["demux"];t?t.dispatch(e):this.player.debug.warn("WebsocketStream","websocket handle message demux is null")}fetchStream(e,t){this.player._times.streamStart=qe(),this.wsUrl=e,this._createWebSocket()}sendMessage(e){this.socket?this.socketStatus===j?this.socket.send(e):this.player.debug.error("WebsocketStream","websocket send message error and socket status is "+this.socketStatus):this.player.debug.error("WebsocketStream","websocket send message socket is null")}resetFetchStream(){this._closeWebSocket(),this._createWebSocket()}getStreamType(){return a}}class Fi extends r{constructor(e){super(),(this.player=e).debug.log("HlsStream","init")}destroy(){this.off(),this.player.debug.log("HlsStream","destroy")}fetchStream(e){const t=this.player["hlsDecoder"];this.player._times.streamStart=qe(),t.loadSource(e).then(()=>{this.player.debug.log("HlsStream","loadSource success"),this.emit(U.streamSuccess)}).catch(e=>{this.emit(O.hlsError,e)})}getStreamType(){return"hls"}}class Mi extends r{constructor(e){super(),this.player=e,this.webrctUrl=null,e.debug.log("WebrtcStream","init")}destroy(){this.webrctUrl=null,this.off(),this.player.debug.log("WebrtcStream","destroy")}fetchStream(e){const t=this.player["webrtc"];this.player._times.streamStart=qe(),this.webrctUrl=e.replace("webrtc:",window.location.protocol),t.loadSource(this.webrctUrl).then(()=>{this.player.debug.log("WebrtcStream","loadSource success"),this.emit(U.streamSuccess)}).catch(e=>{this.emit(O.webrtcError,e)})}getStreamType(){return"webrtc"}}class Oi extends r{constructor(e){super(),this.player=e,this.transport=null,this.wtUrl=null,this.streamRate=et(t=>{e.emit(U.kBps,(t/1024).toFixed(2))}),this.streamRateInterval=null,e.debug.log("WebTransportLoader","init")}destroy(){this.abort(),this.off(),this.player.debug.log("WebTransportLoader","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebTransport(){const e=this.player,{events:{},demux:t}=e;try{this.transport=new WebTransport(this.wtUrl),this.transport.ready.then(()=>{this.emit(U.streamSuccess),this.startStreamRateInterval(),this.transport.createBidirectionalStream().then(e=>{e.readable.pipeTo(new WritableStream(t.input))})}).catch(e=>{this.player.debug.warn("WebTransportLoader","_createWebTransport-ready",e)})}catch(e){this.player.debug.warn("WebTransportLoader","_createWebTransport",e)}}fetchStream(e){this.player._times.streamStart=qe(),this.wtUrl=e.replace(/^wt/,"https"),this._createWebTransport()}abort(){if(this.transport)try{this.transport.close(),this.transport=null}catch(r){this.transport=null}}getStreamType(){return"webTransport"}}class Ni extends r{constructor(e){super(),this.player=e,this.workUrl=null,e.debug.log("WorkerStream","init")}destroy(){this.workUrl=null,this.off(),this.player.debug.log("WorkerStream","destroy")}sendMessage(e){this.player.decoderWorker.workerSendMessage(e)}fetchStream(e){this.workUrl=e,this.player._times.streamStart=qe(),this.player.decoderWorker.workerFetchStream(e)}getStreamType(){var e=this.player._opt.protocol;return n+" "+(2===e?s:a)}}class ji{constructor(e){return new(ji.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){var{protocol:t,useWasm:i,playType:r,playbackConfig:s}=e;return 2===t?r===l?Ni:r===o?i&&!Ft(e)?Ni:Bi:s.useWCS?Bi:Ni:1===t?r===l?Ni:r===o?i&&!Ft(e)?Ni:Ui:s.useWCS?Ui:Ni:3===t?Fi:4===t?Mi:5===t?Oi:void 0}}var zi=Ne((function(e){function t(e,i){if(!e)throw"First parameter is required.";i=new r(e,i=i||{type:"video"});var a=this;function n(t){t&&(i.initCallback=function(){t(),t=i.initCallback=null});var r=new s(e,i);(p=new r(e,i)).record(),u("recording"),i.disableLogs||console.log("Initialized recorderType:",p.constructor.name,"for output-type:",i.type)}function o(e){if(e=e||function(){},p){if("paused"===a.state)return a.resumeRecording(),void setTimeout((function(){o(e)}),1);"recording"===a.state||i.disableLogs||console.warn('Recording state should be: "recording", however current state is: ',a.state),i.disableLogs||console.log("Stopped recording "+i.type+" stream."),"gif"!==i.type?p.stop(t):(p.stop(),t()),u("stopped")}else m();function t(t){if(p){Object.keys(p).forEach((function(e){"function"!=typeof p[e]&&(a[e]=p[e])}));var r,s=p.blob;if(!s){if(!t)throw"Recording failed.";p.blob=s=t}if(s&&!i.disableLogs&&console.log(s.type,"->",g(s.size)),e){try{r=d.createObjectURL(s)}catch(t){}"function"==typeof e.call?e.call(a,r):e(r)}i.autoWriteToDisk&&h((function(e){var t={};t[i.type+"Blob"]=e,D.Store(t)}))}else"function"==typeof e.call?e.call(a,""):e("")}}function l(e){postMessage((new FileReaderSync).readAsDataURL(e))}function h(e,t){if(!e)throw"Pass a callback function over getDataURL.";var r,s=(t||p||{}).blob;if(!s)return i.disableLogs||console.warn("Blob encoder did not finish its job yet."),void setTimeout((function(){h(e,t)}),1e3);"undefined"==typeof Worker||navigator.mozGetUserMedia?((r=new FileReader).readAsDataURL(s),r.onload=function(t){e(t.target.result)}):((r=function(e){try{var t=d.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(t);return d.revokeObjectURL(t),i}catch(e){}}(l)).onmessage=function(t){e(t.data)},r.postMessage(s))}function c(e){e=e||0,"paused"!==a.state?"stopped"!==a.state&&(e>=a.recordingDuration?o(a.onRecordingStopped):(e+=1e3,setTimeout((function(){c(e)}),1e3))):setTimeout((function(){c(e)}),1e3)}function u(e){a&&(a.state=e,"function"==typeof a.onStateChanged.call?a.onStateChanged.call(a,e):a.onStateChanged(e))}var p,f='It seems that recorder is destroyed or "startRecording" is not invoked for '+i.type+" recorder.";function m(){!0!==i.disableLogs&&console.warn(f)}var A,b={startRecording:function(t){return i.disableLogs||console.log("RecordRTC version: ",a.version),(i=t?new r(e,t):i).disableLogs||console.log("started recording "+i.type+" stream."),p?(p.clearRecordedData(),p.record(),u("recording"),a.recordingDuration&&c()):n((function(){a.recordingDuration&&c()})),a},stopRecording:o,pauseRecording:function(){p?"recording"===a.state?(u("paused"),p.pause(),i.disableLogs||console.log("Paused recording.")):i.disableLogs||console.warn("Unable to pause the recording. Recording state: ",a.state):m()},resumeRecording:function(){p?"paused"===a.state?(u("recording"),p.resume(),i.disableLogs||console.log("Resumed recording.")):i.disableLogs||console.warn("Unable to resume the recording. Recording state: ",a.state):m()},initRecorder:n,setRecordingDuration:function(e,t){if(void 0===e)throw"recordingDuration is required.";if("number"!=typeof e)throw"recordingDuration must be a number.";return a.recordingDuration=e,a.onRecordingStopped=t||function(){},{onRecordingStopped:function(e){a.onRecordingStopped=e}}},clearRecordedData:function(){p?(p.clearRecordedData(),i.disableLogs||console.log("Cleared old recorded data.")):m()},getBlob:function(){if(p)return p.blob;m()},getDataURL:h,toURL:function(){if(p)return d.createObjectURL(p.blob);m()},getInternalRecorder:function(){return p},save:function(e){p?y(p.blob,e):m()},getFromDisk:function(e){p?t.getFromDisk(i.type,e):m()},setAdvertisementArray:function(e){i.advertisement=[];for(var t=e.length,r=0;r>=8;return new Uint8Array(t.reverse())}(e[s].id)),r.push(t(o)),r.push(a)}return new Blob(r,{type:"video/webm"})}function r(e){for(var t=0,i={};t 127 not supported";return[128|e.trackNum,e.timecode>>8,255&e.timecode,t].map((function(e){return String.fromCharCode(e)})).join("")+e.frame}({discardable:0,frame:e.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(t)});return t+=e.duration,{data:i,id:163}})))}(n,0,o)};s[1].data.push(d),n+=l}return i(s)}(e.map((function(e){var t=function(e){for(var t=e.RIFF[0].WEBP[0],i=t.indexOf("*"),r=0,s=[];r<4;r++)s[r]=t.charCodeAt(i+3+r);return{width:16383&(s[1]<<8|s[0]),height:16383&(s[3]<<8|s[2]),data:t,riff:e}}(r(atob(e.image.slice(23))));return t.duration=e.duration,t}))),postMessage(e)}t.Whammy=x;var D={init:function(){var e,t,i,r=this;function s(e){e.createObjectStore(r.dataStoreName)}function a(){var t=e.transaction([r.dataStoreName],"readwrite");function i(e){t.objectStore(r.dataStoreName).get(e).onsuccess=function(t){r.callback&&r.callback(t.target.result,e)}}r.videoBlob&&t.objectStore(r.dataStoreName).put(r.videoBlob,"videoBlob"),r.gifBlob&&t.objectStore(r.dataStoreName).put(r.gifBlob,"gifBlob"),r.audioBlob&&t.objectStore(r.dataStoreName).put(r.audioBlob,"audioBlob"),i("audioBlob"),i("videoBlob"),i("gifBlob")}"undefined"!=typeof indexedDB&&void 0!==indexedDB.open?(t=this.dbName||location.href.replace(/\/|:|#|%|\.|\[|\]/g,""),(i=indexedDB.open(t,1)).onerror=r.onError,i.onsuccess=function(){(e=i.result).onerror=r.onError,e.setVersion&&1!==e.version?e.setVersion(1).onsuccess=function(){s(e),a()}:a()},i.onupgradeneeded=function(e){s(e.target.result)}):console.error("IndexedDB API are not available in this browser.")},Fetch:function(e){return this.callback=e,this.init(),this},Store:function(e){return this.audioBlob=e.audioBlob,this.videoBlob=e.videoBlob,this.gifBlob=e.gifBlob,this.init(),this},onError:function(e){console.error(JSON.stringify(e,null,"\t"))},dataStoreName:"recordRTC",dbName:null};function R(e,t){"undefined"==typeof GIFEncoder&&((i=document.createElement("script")).src="https://www.webrtc-experiment.com/gif-recorder.js",(document.body||document.documentElement).appendChild(i)),t=t||{};var i,r,s=e instanceof CanvasRenderingContext2D||e instanceof HTMLCanvasElement,a=(this.record=function(){"undefined"!=typeof GIFEncoder&&h?(s||(t.width||(t.width=r.offsetWidth||320),t.height||(t.height=r.offsetHeight||240),t.video||(t.video={width:t.width,height:t.height}),t.canvas||(t.canvas={width:t.width,height:t.height}),n.width=t.canvas.width||320,n.height=t.canvas.height||240,r.width=t.video.width||320,r.height=t.video.height||240),(u=new GIFEncoder).setRepeat(0),u.setDelay(t.frameRate||200),u.setQuality(t.quality||10),u.start(),"function"==typeof t.onGifRecordingStarted&&t.onGifRecordingStarted(),p=o((function e(i){if(!0!==f.clearedRecordedData){if(a)return setTimeout((function(){e(i)}),100);p=o(e),i-c<90||(!s&&r.paused&&r.play(),s||d.drawImage(r,0,0,n.width,n.height),t.onGifPreview&&t.onGifPreview(n.toDataURL("image/png")),u.addFrame(d),c=i)}})),t.initCallback&&t.initCallback()):setTimeout(f.record,1e3)},!(this.stop=function(e){e=e||function(){},p&&l(p),this.blob=new Blob([new Uint8Array(u.stream().bin)],{type:"image/gif"}),e(this.blob),u.stream().bin=[]})),n=(this.pause=function(){a=!0},this.resume=function(){a=!1},this.clearRecordedData=function(){f.clearedRecordedData=!0,u&&(u.stream().bin=[])},this.name="GifRecorder",this.toString=function(){return this.name},document.createElement("canvas")),d=n.getContext("2d"),h=(s&&(e instanceof CanvasRenderingContext2D?n=(d=e).canvas:e instanceof HTMLCanvasElement&&(d=e.getContext("2d"),n=e)),!0);s||((r=document.createElement("video")).muted=!0,r.autoplay=!0,r.playsInline=!0,h=!1,r.onloadedmetadata=function(){h=!0},v(e,r),r.play());var c,u,p=null,f=this}function I(e,t){t=t||"multi-streams-mixer";var i=[],r=!1,s=document.createElement("canvas"),a=s.getContext("2d"),n=(s.style.opacity=0,s.style.position="absolute",s.style.zIndex=-1,s.style.top="-1000em",s.style.left="-1000em",s.className=t,(document.body||document.documentElement).appendChild(s),this.disableLogs=!1,this.frameInterval=10,this.width=360,this.height=240,this.useGainNode=!0,this),o=window.AudioContext;void 0===o&&("undefined"!=typeof webkitAudioContext&&(o=webkitAudioContext),"undefined"!=typeof mozAudioContext&&(o=mozAudioContext)),window.URL,"undefined"!=typeof navigator&&void 0===navigator.getUserMedia&&(void 0!==navigator.webkitGetUserMedia&&(navigator.getUserMedia=navigator.webkitGetUserMedia),void 0!==navigator.mozGetUserMedia&&(navigator.getUserMedia=navigator.mozGetUserMedia));var l=window.MediaStream,d=(void 0!==(l=void 0===l&&"undefined"!=typeof webkitMediaStream?webkitMediaStream:l)&&void 0===l.prototype.stop&&(l.prototype.stop=function(){this.getTracks().forEach((function(e){e.stop()}))}),{});function h(){var e,t,a;r||(e=i.length,t=!1,a=[],i.forEach((function(e){e.stream||(e.stream={}),e.stream.fullcanvas?t=e:a.push(e)})),t?(s.width=t.stream.width,s.height=t.stream.height):a.length?(s.width=1>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t;var t=this._current_word_bits_left?this._current_word:0,i=(e=(t>>>=32-this._current_word_bits_left,e-this._current_word_bits_left),e=(this._fillCurrentWord(),Math.min(e,this._current_word_bits_left)),this._current_word>>>32-e);return this._current_word<<=e,this._current_word_bits_left-=e,t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class Hi{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let a=0;a=this.buflen)return this.iserro=!0,0;this.iserro=!1,t=8>8-this.bufoff-t&255>>8-t),this.bufoff+=t,e-=t,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return i}look(e){var t=this.bufpos,i=this.bufoff;e=this.read(e);return this.bufpos=t,this.bufoff=i,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<>>24&255,e>>>16&255,e>>>8&255,255&e]),r=new Uint8Array(e+4);r.set(i,0),r.set(t.sps,4),t.sps=r}if(t.pps){const e=t.pps.byteLength,i=new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e]),r=new Uint8Array(e+4);r.set(i,0),r.set(t.pps,4),t.pps=r}return t}function Ki(e){let{sps:t,pps:i}=e,r=8+t.byteLength+1+2+i.byteLength,s=!1;e=Hi.parseSPS$2(t),66!==t[3]&&77!==t[3]&&88!==t[3]&&(s=!0,r+=4);let a=new Uint8Array(r);a[0]=1,a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=255,a[5]=225;var n=t.byteLength,o=(a[6]=n>>>8,a[7]=255&n,8);a.set(t,8),o+=n,a[o]=1,n=i.byteLength;a[o+1]=n>>>8,a[o+2]=255&n,a.set(i,o+3),o+=3+n,s&&(a[o]=252|e.chroma_format_idc,a[o+1]=248|e.bit_depth_luma-8,a[o+2]=248|e.bit_depth_chroma-8,a[o+3]=0,o+=4);const l=[23,0,0,0,0],d=new Uint8Array(l.length+a.byteLength);return d.set(l,0),d.set(a,l.length),d}function $i(e,t){let i=[];i[0]=t?23:39,i[1]=1,i[2]=0,i[3]=0,i[4]=0;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}function Yi(e){return 31&e[0]}function qi(e){return e===Y}function Ji(e){return 7!==e&&8!==e&&!qi(e)}const Qi=e=>{let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let a=0;a>6&3,a.general_tier_flag=e[1]>>5&1,a.general_profile_idc=31&e[1],a.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],a.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],a.general_constraint_indicator_flags=a.general_constraint_indicator_flags<<16|e[10]<<8|e[11],a.general_level_idc=e[12],a.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],a.parallelismType=3&e[15],a.chromaFormat=3&e[16],a.bitDepthLumaMinus8=7&e[17],a.bitDepthChromaMinus8=7&e[18],a.avgFrameRate=e[19]<<8|e[20],a.constantFrameRate=e[21]>>6&3,a.numTemporalLayers=e[21]>>3&7,a.temporalIdNested=e[21]>>2&1,a.lengthSizeMinusOne=3&e[21];let n=e[22],o=e.slice(23);for(let e=0;e{let t=Qi(e),i=new Gi(t);return i.readByte(),i.readByte(),i.readBits(4),i.readBits(2),i.readBits(6),{num_temporal_layers:i.readBits(3)+1,temporal_id_nested:i.readBool()}})(e),a=(e=>{let t=Qi(e),i=new Gi(t),r=(i.readByte(),i.readByte(),0),s=0,a=0,n=0;i.readBits(4);var o=i.readBits(3);i.readBool();let l=i.readBits(2),d=i.readBool(),h=i.readBits(5),c=i.readByte(),u=i.readByte(),p=i.readByte(),f=i.readByte(),m=i.readByte(),g=i.readByte(),y=i.readByte(),A=i.readByte(),b=i.readByte(),v=i.readByte(),_=i.readByte(),w=[],S=[];for(let $=0;${switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}})(e),general_level_idc:_,general_profile_space:l,general_tier_flag:d,general_profile_idc:h,general_profile_compatibility_flags_1:c,general_profile_compatibility_flags_2:u,general_profile_compatibility_flags_3:p,general_profile_compatibility_flags_4:f,general_constraint_indicator_flags_1:m,general_constraint_indicator_flags_2:g,general_constraint_indicator_flags_3:y,general_constraint_indicator_flags_4:A,general_constraint_indicator_flags_5:b,general_constraint_indicator_flags_6:v,min_spatial_segmentation_idc:F,constant_frame_rate:0,chroma_format_idc:e,bit_depth_luma_minus8:x,bit_depth_chroma_minus8:C,frame_rate:{fixed:N,fps:z/j,fps_den:j,fps_num:z},sar_ratio:{width:M,height:O},codec_size:{width:W,height:V},present_size:{width:W*K,height:V}}})(i),n=(e=>{let t=Qi(e),i=new Gi(t),r=(i.readByte(),i.readByte(),i.readUEG(),i.readUEG(),i.readBool(),i.readBool(),i.readBits(3),i.readBool(),i.readBool(),i.readUEG(),i.readUEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool()&&i.readUEG(),i.readSEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool(),i.readBool(),i.readBool()),s=i.readBool(),a=1;return s&&r?a=0:s?a=3:r&&(a=2),{parallelismType:a}})(t);r=Object.assign(r,s,a,n);let o=23+(5+e.byteLength)+(5+i.byteLength)+(5+t.byteLength),l=new Uint8Array(o);l[0]=1,l[1]=(3&r.general_profile_space)<<6|(r.general_tier_flag?1:0)<<5|31&r.general_profile_idc,l[2]=r.general_profile_compatibility_flags_1||0,l[3]=r.general_profile_compatibility_flags_2||0,l[4]=r.general_profile_compatibility_flags_3||0,l[5]=r.general_profile_compatibility_flags_4||0,l[6]=r.general_constraint_indicator_flags_1||0,l[7]=r.general_constraint_indicator_flags_2||0,l[8]=r.general_constraint_indicator_flags_3||0,l[9]=r.general_constraint_indicator_flags_4||0,l[10]=r.general_constraint_indicator_flags_5||0,l[11]=r.general_constraint_indicator_flags_6||0,l[12]=60,l[13]=240|(3840&r.min_spatial_segmentation_idc)>>8,l[14]=255&r.min_spatial_segmentation_idc,l[15]=252|3&r.parallelismType,l[16]=252|3&r.chroma_format_idc,l[17]=248|7&r.bit_depth_luma_minus8,l[18]=248|7&r.bit_depth_chroma_minus8,l[19]=0,l[20]=0,l[21]=(3&r.constant_frame_rate)<<6|(7&r.num_temporal_layers)<<3|(r.temporal_id_nested?1:0)<<2|3,l[22]=3,l[23]=160,l[24]=0,l[25]=1,l[26]=(65280&e.byteLength)>>8,l[27]=(255&e.byteLength)>>0,l.set(e,28),l[23+(5+e.byteLength)+0]=161,l[23+(5+e.byteLength)+1]=0,l[23+(5+e.byteLength)+2]=1,l[23+(5+e.byteLength)+3]=(65280&i.byteLength)>>8,l[23+(5+e.byteLength)+4]=(255&i.byteLength)>>0,l.set(i,23+(5+e.byteLength)+5),l[23+(5+e.byteLength+5+i.byteLength)+0]=162,l[23+(5+e.byteLength+5+i.byteLength)+1]=0,l[23+(5+e.byteLength+5+i.byteLength)+2]=1,l[23+(5+e.byteLength+5+i.byteLength)+3]=(65280&t.byteLength)>>8,l[23+(5+e.byteLength+5+i.byteLength)+4]=(255&t.byteLength)>>0,l.set(t,23+(5+e.byteLength+5+i.byteLength)+5);const d=[28,0,0,0,0],h=new Uint8Array(d.length+l.byteLength);return h.set(d,0),h.set(l,d.length),h}function er(e,t){let i=[];i[0]=t?28:44,i[1]=1,i[2]=0,i[3]=0,i[4]=0;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}function tr(e){return(126&e[0])>>1}function ir(e){return!(32<=e&&e<=40)}function rr(e){return 16<=e&&e<=21}class sr extends r{constructor(e){super(),this.player=e,this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.recordingInterval=null,this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.mdatBytesLength=0,this.metaInfo={codecWidth:0,codecHeight:0,presentWidth:0,presentHeight:0,refSampleDuration:0,timescale:1e3,avcc:null,videoType:""}}destroy(){this._reset()}get isH264(){return 7===this.codecId}get isH265(){return 12===this.codecId}setFileName(e){this.fileName=e}get isRecording(){return this._isRecording}get recording(){return this._isRecording}get recordTime(){return this._recordingTimestamp}startRecord(){}handleAddNaluTrack(e,t,i,r){}handleAddTrack(e){}stopRecordAndSave(){}startRecordingInterval(){}stopRecordingInterval(){this.recordingInterval&&clearInterval(this.recordingInterval),this.recordingInterval=null}getToTalByteLength(){}_reset(){this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.stopRecordingInterval(),this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.mdatBytesLength=0}initMetaData(e,t){let i;var r=e.slice(5);if(this.codecId=t,this.metaInfo.avcc=r,7===t)i=Vi(r);else if(12===t){i=function(e){var t=23,i=e[23];if(32!=(63&i))return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and vpsTag is "+i),{};t+=2,++t;i=e[27]|e[26]<<8;var r=(t+=2,e.slice(28,28+i)),s=e[t+=i];if(33!=(63&s))return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and sps tag is "+s),{};t+=2;s=e[1+ ++t]|e[t]<<8;var a=e.slice(t+=2,t+s),n=e[t+=s];if(34!=(63&n))return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and pps tag is "+n),{};t+=2,n=e[1+ ++t]|e[t]<<8;const o=e.slice(t+=2,t+n),l=new Uint8Array([s>>>24&255,s>>>16&255,s>>>8&255,255&s]),d=new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,255&n]),h=new Uint8Array([i>>>24&255,i>>>16&255,i>>>8&255,255&i]),c=new Uint8Array(4+s),u=(c.set(l,0),c.set(a,4),new Uint8Array(4+n)),p=(u.set(d,0),u.set(o,4),new Uint8Array(4+i));return p.set(h,0),p.set(r,4),{sps:c,pps:u,vps:p}}(r);const t=Xi(e);i=Object.assign(i,t)}i&&(i.vps&&(this.vps=i.vps),i.pps&&(this.pps=i.pps),i.sps&&(this.sps=i.sps),i.presentWidth&&(this.metaInfo.presentWidth=i.presentWidth),i.presentHeight&&(this.metaInfo.presentHeight=i.presentHeight),i.codecWidth&&(this.metaInfo.codecWidth=i.codecWidth),i.codecHeight&&(this.metaInfo.codecHeight=i.codecHeight),i.timescale&&(this.metaInfo.timescale=i.timescale),i.refSampleDuration&&(this.metaInfo.refSampleDuration=i.refSampleDuration),i.videoType&&(this.metaInfo.videoType=i.videoType))}}class ar extends sr{constructor(e){super(e),this.totalByteLength=0,this._startRecordingTimestamp=null,e.debug.log("RecorderRTC","init")}_reset(){super._reset(),this.totalByteLength=0,this._startRecordingTimestamp=null,this.recorder&&(this.recorder.destroy(),this.recorder=null)}destroy(){super.destroy(),this._reset(),this.player.debug.log("RecorderRTC","destroy")}getSeekableBlob(e){const t=new EBML.Reader,i=new EBML.Decoder,r=EBML.tools,s=new FileReader;return new Promise((a,n)=>{s.onload=function(e){i.decode(this.result).forEach((function(e){t.read(e)})),t.stop();var s=r.makeMetadataSeekable(t.metadatas,t.duration,t.cues),n=this.result.slice(t.metadataSize);s=new Blob([s,n],{type:"video/webm"});a(s)},s.readAsArrayBuffer(e)})}startRecord(){const e=this.player.debug,t={type:"video",mimeType:"video/webm;codecs=h264",timeSlice:1e3,onTimeStamp:t=>{e.log("RecorderRTC","record timestamp :"+t),null===this._startRecordingTimestamp&&(this._startRecordingTimestamp=t),this._recordingTimestamp=(t-this._startRecordingTimestamp)/1e3},ondataavailable:t=>{this.totalByteLength+=t.size,e.log("RecorderRTC","ondataavailable",t.size)},disableLogs:!this.player._opt.debug};try{let i=null;if(this.player.getRenderType()===A?i=this.player.video.$videoElement.captureStream(25):this.player.video.mediaStream?i=this.player.video.mediaStream:this.player.isOldHls()||this.player._opt.useMSE||this.player._opt.useWCS?i=this.player.video.$videoElement.captureStream(25):this.player.isWebrtcH264()&&(i=this.player.webrtc.videoStream),i){if(this.player.audio&&this.player.audio.mediaStreamAudioDestinationNode&&this.player.audio.mediaStreamAudioDestinationNode.stream&&!this.player.audio.isStateSuspended()&&this.player.audio.hasAudio&&this.player._opt.hasAudio){const e=this.player.audio.mediaStreamAudioDestinationNode.stream;if(0{this.player.emit(U.recordingTimestamp,this._recordingTimestamp)},1e3)}stopRecordAndSave(){let e=0{this.recorder&&this._isRecording||r("recorder is not ready"),t&&this.setFileName(t),this.recorder.stopRecording(()=>{this.player.debug.log("RecorderRTC","stop recording");var t=(this.fileName||qe())+"."+c;if(this.recorder.getBlob(),"blob"===e){const e=this.recorder.getBlob();i(e),this.player.emit(U.recordBlob,e)}else i(),this.recorder.save(t);this.player.emit(U.recordEnd),this._reset(),this.player.emit(U.recording,!1)})})}getToTalByteLength(){return this.totalByteLength}getTotalDuration(){return this.recordTime}getType(){return c}initMetaData(){}}class nr{static init(){for(var e in nr.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[],free:[],edts:[],elst:[],stss:[]},nr.types)nr.types.hasOwnProperty(e)&&(nr.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=nr.constants={};t.FTYP=new Uint8Array([105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,97,118,99,49,109,112,52,49,0,0,0,0]),t.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),t.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSC=t.STCO=t.STTS,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),t.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let n=0;n>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let n=0;n=Math.pow(2,32)-1?(a=16,(n=new Uint8Array(i+a)).set(new Uint8Array([0,0,0,1]),0),n.set(nr.types.mdat,4),n.set(new Uint8Array([i+8>>>56&255,i+8>>>48&255,i+8>>>40&255,i+8>>>32&255,i+8>>>24&255,i+8>>>16&255,i+8>>>8&255,i+8&255]),8)):((n=new Uint8Array(i+a))[0]=i+8>>>24&255,n[1]=i+8>>>16&255,n[2]=i+8>>>8&255,n[3]=i+8&255,n.set(nr.types.mdat,4));for(let h=0;h>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3]))}static trak(e){return nr.box(nr.types.trak,nr.tkhd(e),nr.mdia(e))}static tkhd(e){var t=e.id,i=e.duration,r=e.presentWidth;e=e.presentHeight;return nr.box(nr.types.tkhd,new Uint8Array([0,0,0,15,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,e>>>8&255,255&e,0,0]))}static edts(e,t){return nr.box(nr.types.edts,nr.elst(e,t))}static elst(e,t){let i=0;for(let s=0;s>>24&255,i>>>16&255,i>>>8&255,255&i,255,255,255,255,0,1,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,0,0,1,0,0]))}static mdia(e){return nr.box(nr.types.mdia,nr.mdhd(e),nr.hdlr(e),nr.minf(e))}static mdhd(e){var t=e.timescale/e.refSampleDuration;e=t*e.duration/e.timescale;return nr.box(nr.types.mdhd,new Uint8Array([0,0,0,0,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e,85,196,0,0]))}static hdlr(e){var t=nr.constants.HDLR_VIDEO;return nr.box(nr.types.hdlr,t)}static minf(e){var t=nr.box(nr.types.vmhd,nr.constants.VMHD);return nr.box(nr.types.minf,t,nr.dinf(),nr.stbl(e))}static dinf(){return nr.box(nr.types.dinf,nr.box(nr.types.dref,nr.constants.DREF))}static stbl(e){let t=e.samples,i=[{No:1,num:0,sampleDelte:1,chunkNo:1,duration:t[0].duration}],r=[t[0].duration],s=t.length;for(let a=0;a>>24&255,t>>>16&255,t>>>8&255,255&t]),r=i.byteLength,s=new Uint8Array(r+8*t);s.set(i,0);for(let a=0;a>>24&255,e[a].num>>>16&255,e[a].num>>>8&255,255&e[a].num,e[a].sampleDelte>>>24&255,e[a].sampleDelte>>>16&255,e[a].sampleDelte>>>8&255,255&e[a].sampleDelte]),r),r+=8;return nr.box(nr.types.stts,s)}static stss(e){let t=[],i=e.length;for(let o=0;o>>24&255,r>>>16&255,r>>>8&255,255&r]),a=s.byteLength,n=new Uint8Array(a+4*r);n.set(s,0);for(let o=0;o>>24&255,t[o]>>>16&255,t[o]>>>8&255,255&t[o]]),a),a+=4;return nr.box(nr.types.stss,n)}static stsc(e){let t=e.length,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]),r=i.byteLength,s=new Uint8Array(r+12*t);s.set(i,0);for(let l=0;l>>24&255,a>>>16&255,a>>>8&255,255&a,n>>>24&255,n>>>16&255,n>>>8&255,255&n,o>>>24&255,o>>>16&255,o>>>8&255,255&o]),r),r+=12}return nr.box(nr.types.stsc,s)}static stsz(e){let t=e.length,i=new Uint8Array([0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]),r=i.byteLength,s=new Uint8Array(r+4*t);s.set(i,0);for(let n=0;n>>24&255,a>>>16&255,a>>>8&255,255&a]),r),r+=4}return nr.box(nr.types.stsz,s)}static stco(e,t){return t=t[0].chunkOffset,nr.box(nr.types.stco,new Uint8Array([0,0,0,0,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t]))}static stsd(e){return"audio"===e.type?"mp3"===e.codec?nr.box(nr.types.stsd,nr.constants.STSD_PREFIX,nr.mp3(e)):nr.box(nr.types.stsd,nr.constants.STSD_PREFIX,nr.mp4a(e)):"avc"===e.videoType?nr.box(nr.types.stsd,nr.constants.STSD_PREFIX,nr.avc1(e)):nr.box(nr.types.stsd,nr.constants.STSD_PREFIX,nr.hvc1(e))}static mp3(e){var t=e.channelCount;e=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,e>>>8&255,255&e,0,0]);return nr.box(nr.types[".mp3"],t)}static mp4a(e){var t=e.channelCount,i=e.audioSampleRate;t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return nr.box(nr.types.mp4a,t,nr.esds(e))}static esds(e){e=e.config||[];var t=e.length;t=new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e).concat([6,1,2]));return nr.box(nr.types.esds,t)}static avc1(e){var t=e.avcc,i=e.codecWidth;e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return nr.box(nr.types.avc1,i,nr.box(nr.types.avcC,t))}static hvc1(e){var t=e.avcc,i=e.codecWidth;e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return nr.box(nr.types.hvc1,i,nr.box(nr.types.hvcC,t))}static mvex(e){return nr.box(nr.types.mvex,nr.trex(e))}static trex(e){return e=e.id,e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]),nr.box(nr.types.trex,e)}static moof(e,t){return nr.box(nr.types.moof,nr.mfhd(e.sequenceNumber),nr.traf(e,t))}static mfhd(e){return e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]),nr.box(nr.types.mfhd,e)}static traf(e,t){var i=e.id,r=(i=nr.box(nr.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),t=nr.box(nr.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),nr.sdtp(e));e=nr.trun(e,r.byteLength+16+16+8+16+8+8);return nr.box(nr.types.traf,i,t,e,r)}static sdtp(e){let t=e.samples||[],i=t.length,r=new Uint8Array(4+i);for(let a=0;a>>24&255,r>>>16&255,r>>>8&255,255&r,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);for(let h=0;h>>24&255,n>>>16&255,n>>>8&255,255&n,o>>>24&255,o>>>16&255,o>>>8&255,255&o,l.isLeading<<2|l.dependsOn,l.isDependedOn<<6|l.hasRedundancy<<4|l.isNonSync,0,0,d>>>24&255,d>>>16&255,d>>>8&255,255&d],12+16*h)}return nr.box(nr.types.trun,a)}static mdat(e){return nr.box(nr.types.mdat,e)}}nr.init();class or extends sr{constructor(e){super(e),this.tagName="recorderMP4",this.totalDuration=0,this.totalByteLength=0,this.bufferList=[],this.cacheTrack={},this.sequenceNumber=0,e.debug.log(this.tagName,"init")}destroy(){super.destroy(),this._reset(),this.player.debug.log(this.tagName,"destroy")}_reset(){super._reset(),this.totalDuration=0,this.totalByteLength=0,this.sequenceNumber=0,this.cacheTrack={},this.bufferList=[]}startRecord(){const e=this.player.debug;this._isRecording=!0,this.player.emit(U.recording,!0),e.log(this.tagName,"start recording"),this.player.emit(U.recordStart),this.startRecordingInterval()}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval(()=>{this.player.emit(U.recordingTimestamp,this.getTotalDuration())},1e3)}formatFmp4Track(e,t,i,r){return{id:1,sequenceNumber:++this.sequenceNumber,size:e.byteLength,dts:i,cts:r,isKeyframe:t,data:e,duration:0,flags:{isLeading:0,dependsOn:t?2:1,isDependedOn:t?1:0,hasRedundancy:0,isNonSync:t?0:1}}}handleAddNaluTrack(e,t,i,r){this.cacheTrack.id&&i>=this.cacheTrack.dts?(this.cacheTrack.duration=i-this.cacheTrack.dts,this.handleAddFmp4Track(this.cacheTrack)):this.cacheTrack={},this.cacheTrack=this.formatFmp4Track(e,t,i,r)}handleAddFmp4Track(e){if(this.isRecording)if(null!==this.sps&&null!==this.pps||!this.isH264)if(null!==this.sps&&null!==this.pps&&null!==this.vps||!this.isH265){const i=Object.assign({},e);i.pts=i.dts+i.cts;var t=i.data;if(i.isKeyframe)if(this.isH264){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength),r=(e.set(this.sps,0),e.set(this.pps,this.sps.byteLength),new Uint8Array(e.byteLength+t.byteLength));r.set(e,0),r.set(t,e.byteLength),i.data=r}else if(this.isH265){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength+this.vps.byteLength),r=(e.set(this.vps,0),e.set(this.sps,this.vps.byteLength),e.set(this.pps,this.vps.byteLength+this.sps.byteLength),new Uint8Array(e.byteLength+t.byteLength));r.set(e,0),r.set(t,e.byteLength),i.data=r}i.size=i.data.byteLength,this.totalDuration+=i.duration,this.totalByteLength+=i.data.byteLength,i.duration=0,i.originalDts=i.dts,delete i.id,delete i.sequenceNumber,this.bufferList.push(i)}else this.player.debug.error(this.tagName,"handleAddFmp4Track, is h265 and this.sps or this.pps or this.vps is null ");else this.player.debug.error(this.tagName,"handleAddFmp4Track, is h264 and this.sps or this.pps is null ");else this.player.debug.error(this.tagName,"handleAddFmp4Track, isRecording is false ")}getTotalDuration(){return this.totalDuration/1e3}getType(){return h}getToTalByteLength(){return this.totalByteLength}stopRecordAndSave(){let e=0{if(!this.isRecording)return this.player.debug.error(this.tagName,"stop recording fail, isRecording is false "),r("stop recording fail, isRecording is false ");if(0===this.bufferList.length)return this.player.debug.error(this.tagName,"stop recording fail, this.bufferList.length is 0 "),r("stop recording fail, this.bufferList.length is 0 ");if(t&&this.setFileName(t),r={id:1,type:"video",sps:this.sps,pps:this.pps,samples:this.bufferList,sequenceNumber:this.bufferList.length,length:0,addSampleNum:1,duration:0,...this.metaInfo},r=nr.generateInitSegment({timescale:1e3,duration:this.totalDuration},[r],this.totalByteLength),this.player.debug.log(this.tagName,"stop recording"),r=new Blob([r],{type:"application/octet-stream"}),"blob"===e)i(r),this.player.emit(U.recordBlob,r);else{i();{i=(this.fileName||qe())+"."+h;let e=window.URL.createObjectURL(r),t=window.document.createElement("a"),s=(t.download=i,t.href=e,window.document.createEvent("MouseEvents"));s.initEvent("click",!0,!0),t.dispatchEvent(s),setTimeout(()=>{window.URL.revokeObjectURL(e)},nt()?1e3:0)}}this._reset(),this.player.emit(U.recording,!1)})}}class lr{constructor(e){return new(lr.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.recordType===h&&(e.useWasm||e.useMSE||e.useWCS)?or:ar}}class dr{constructor(e){this.player=e,this.destroyResolve=null,this.workerClearTimeout=null;let t=e._opt.decoder,i=!1;if(0===(t=$t(this.player._opt.useWasm)?e._opt.decoderAudio:t).indexOf("http")&&this.player._opt.isDecoderUseCDN){const e=new Blob([`importScripts("${t}")`],{type:"application/javascript"});t=window.URL.createObjectURL(e),i=!0,this.workerClearTimeout=setTimeout(()=>{window.URL.revokeObjectURL(t),this.workerClearTimeout=null},E)}this.decoderWorker=new Worker(t),this._initDecoderWorker(),e.debug.log("decoderWorker","init and decoder url is "+(i?"":t)),e.on(U.visibilityChange,()=>{this.updateWorkConfig({key:"visibility",value:e.visibility})})}destroy(){return new Promise((e,t)=>{this.player.loaded?(this.player.debug.log("decoderWorker","has loaded and post message to destroy"),this.decoderWorker?(this.decoderWorker.postMessage({cmd:"close"}),this.destroyResolve=e):(this.player.debug.warn("decoderWorker","has loaded but decoderWorker is null and destroy directly"),this._destroy(),setTimeout(()=>{e()},0))):(this.player.debug.log("decoderWorker","has not loaded and destroy directly"),this._destroy(),setTimeout(()=>{e()},0))})}_destroy(){this.workerClearTimeout&&(clearTimeout(this.workerClearTimeout),this.workerClearTimeout=null),this.decoderWorker&&(this.decoderWorker.terminate(),this.decoderWorker=null),this.player.debug.log("decoderWorker","destroy"),this.destroyResolve&&(this.destroyResolve(),this.destroyResolve=null)}_initDecoderWorker(){const{debug:e,events:{}}=this.player;this.decoderWorker.onmessage=t=>{const i=t.data;switch(i.cmd){case x:e.log("decoderWorker","onmessage:",x),this.decoderWorker&&this._initWork(),this.player.loaded||this.player.emit(U.load),this.player.emit(U.decoderWorkerInit);break;case R:e.log("decoderWorker","onmessage:",R,i.code),this.player._times.decodeStart||(this.player._times.decodeStart=qe()),this.player.video.updateVideoInfo({encTypeCode:i.code});break;case I:e.log("decoderWorker","onmessage:",I,i.codecId),this.player.recorder&&this.player.recorder.initMetaData(i.buffer,i.codecId);break;case D:e.log("decoderWorker","onmessage:",D,i.code),this.player.audio&&this.player.audio.updateAudioInfo({encTypeCode:i.code});break;case C:if(e.log("decoderWorker","onmessage:",C,`width:${i.w},height:`+i.h),this.player.video.updateVideoInfo({width:i.w,height:i.h}),!this.player._opt.openWebglAlignment&&i.w/2%4!=0&&this.player.getRenderType()===A)return void this.player.emitError(O.webglAlignmentError);this.player.video.initCanvasViewSize(),this.player._opt.playType===d&&(this.player.video.initFps(),this.player.video.initVideoDelay());break;case L:if(e.log("decoderWorker","onmessage:",L,`channels:${i.channels},sampleRate:`+i.sampleRate),2=this.player._opt.playbackForwardMaxRateDecodeIFrame?i&&(this.player.debug.log("decoderWorker",`current rate is ${this.player.video.rate},only decode i frame`),this._decodeVideoNoDelay(e,t,i)):1===this.player.video.rate?this._decodeVideo(e,t,i):this._decodeVideoNoDelay(e,t,i))}_decodeVideo(e,t,i){t={type:2,ts:Math.max(t,0),isIFrame:i},this.decoderWorker.postMessage({cmd:"decode",buffer:e,options:t},[e.buffer])}_decodeVideoNoDelay(e,t,i){this.decoderWorker.postMessage({cmd:"videoDecode",buffer:e,ts:Math.max(t,0),isIFrame:i},[e.buffer])}decodeAudio(e,t){this.player._opt.playType===o?this.player._opt.useWCS||this.player._opt.useMSE||this.player.isUseHls265()?this._decodeAudioNoDelay(e,t):this._decodeAudio(e,t):this.player._opt.playType===d&&(1===this.player.video.rate?this._decodeAudio(e,t):this._decodeAudioNoDelay(e,t))}_decodeAudio(e,t){t={type:1,ts:Math.max(t,0)},this.decoderWorker.postMessage({cmd:"decode",buffer:e,options:t},[e.buffer])}_decodeAudioNoDelay(e,t){this.decoderWorker.postMessage({cmd:"audioDecode",buffer:e,ts:Math.max(t,0)},[e.buffer])}updateWorkConfig(e){this.decoderWorker&&this.decoderWorker.postMessage({cmd:"updateConfig",key:e.key,value:e.value})}workerFetchStream(e){var t=this.player["_opt"];t={protocol:t.protocol,isFlv:t.isFlv,isFmp4:t.isFmp4,isMpeg4:t.isMpeg4,isNakedFlow:t.isNakedFlow};this.decoderWorker.postMessage({cmd:"fetchStream",url:e,opt:JSON.stringify(t)})}clearWorkBuffer(){this.decoderWorker.postMessage({cmd:"clearBuffer",needClear:0>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,new Uint8Array(t+4));return r.set(i,0),r.set(e,4),r}class cr extends r{constructor(e){super(),this.player=e,this.stopId=null,this.firstTimestamp=null,this.startTimestamp=null,this.preDelayTimestamp=null,this.preLoopTimestamp=null,this.bufferStartDts=null,this.bufferStartLocalTs=null,this.preIframeTs=null,this.preFrameTs=null,this.preTimestamp=null,this.preTimestampDuration=0,this.prevPayloadBufferSize=0,this.isStreamTsMoreThanLocal=!1,this.delay=-1,this.pushLatestDelay=-1,this.bufferList=[],this.historyIntervalDiffTimeList=[],this.playbackStreamFps=null,this.playbackStreamAudioFps=null,this.playbackStreamVideoFps=null,this.dropping=!1,this.isPushDropping=!1,this.initInterval(),this.player.debug.log("CommonDemux","init")}destroy(){this.bufferList=[],this.historyIntervalDiffTimeList=[],this.playbackStreamFps=null,this.playbackStreamAudioFps=null,this.playbackStreamVideoFps=null,this.clearStopInterval(),this.firstTimestamp=null,this.startTimestamp=null,this.bufferStartDts=null,this.bufferStartLocalTs=null,this.preDelayTimestamp=null,this.preLoopTimestamp=null,this.preIframeTs=null,this.preTimestamp=null,this.preTimestampDuration=0,this.prevPayloadBufferSize=0,this.isStreamTsMoreThanLocal=!1,this.delay=-1,this.pushLatestDelay=-1,this.dropping=!1,this.isPushDropping=!1,this.off(),this.player.debug.log("CommonDemux","destroy")}isDropping(){return this.dropping||this.isPushDropping}getDelay(e){return e&&this.player.isDemuxDecodeFirstIIframeInit()?(this.preDelayTimestamp&&this.preDelayTimestamp>e?1e3 timestamp is ${e} more than ${this.preDelayTimestamp-e}ms`):this.firstTimestamp?e&&(t=Date.now()-this.startTimestamp,(i=e-this.firstTimestamp)<=t?(this.isStreamTsMoreThanLocal=!1,this.delay=t-i):(this.isStreamTsMoreThanLocal=!0,this.delay=i-t)):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.preDelayTimestamp=e,this.delay):-1;var t,i}getDelayNotUpdateDelay(e){if(!e||!this.player.isDemuxDecodeFirstIIframeInit())return-1;if(this.preDelayTimestamp&&1e3 timestamp is ${e} more than ${this.preDelayTimestamp-e}ms`),-1;if(this.firstTimestamp){let i=-1;var t;return e&&(t=Date.now()-this.startTimestamp,e-=this.firstTimestamp,i=e<=t?t-e:e-t),i}return-1}resetDelay(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1}resetAllDelay(){this.resetDelay(),this.preDelayTimestamp=null}initInterval(){this.player.isUseHls265()?this.player.debug.log("CommonDemux","initInterval() and is hls and support hls265 so return"):-1===this.player.getStreamType().indexOf(n)?this.player.isPlaybackCacheBeforeDecodeForFpsRender()?this.player.debug.log("CommonDemux","initInterval() and playback and playbackIsCacheBeforeDecodeForFpsRender is true so return"):(this.player.debug.log("CommonDemux","initInterval()"),this._loop(),this.stopId=setInterval(()=>{var e=(new Date).getTime();this.preLoopTimestamp||(this.preLoopTimestamp=e),e-=this.preLoopTimestamp;this.updateHistoryIntervalDiffTimeList(e),100{var e;this.bufferList.length&&(e=this.bufferList.shift(),this._doDecoderDecode(e))},t=(e(),Math.ceil(1e3/(this.playbackStreamFps*this.player.getPlaybackRate())));this.player.debug.log("CommonDemux",`initPlaybackCacheLoop() and fragDuration is ${t}, playbackStreamFps is ${this.playbackStreamFps}, playbackRate is `+this.player.getPlaybackRate()),this.stopId=setInterval(e,t)}_loop(){let e;const t=this.player._opt.videoBuffer,i=this.player._opt.videoBufferDelay,r=this.player._opt.playType===o;if(this.bufferList.length)if(this.isPushDropping)this.player.debug.warn("CommonDemux","_loop isPushDropping is true and bufferList length is "+this.bufferList.length);else if(this.player._opt.useMSE&&this.player.mseDecoder&&this.player.mseDecoder.getSourceBufferUpdating())this.player.debug.warn("CommonDemux","_loop getSourceBufferUpdating is true and bufferList length is "+this.bufferList.length);else if(this.dropping){e=this.bufferList.shift();const t=this.getDelayNotUpdateDelay(e.ts);for(this.player.debug.warn("CommonDemux",`_loop is dropping and data.ts is ${e.ts}, data.isIFrame is ${e.isIFrame} tempDelay is ${t}, delay is `+this.delay);!e.isIFrame&&this.bufferList.length;)e=this.bufferList.shift();e.isIFrame&&t<=this.getNotDroppingDelayTs()&&(this.player.debug.log("CommonDemux","_loop data isIFrame is true and delay is "+this.delay),this.dropping=!1,this._doDecoderDecode(e))}else e=this.bufferList[0],-1===this.getDelay(e.ts)||this.player.isPlayback()?(this.player.isPlayer()&&this.player.debug.log("CommonDemux",`delay is -1 and data.ts is ${e.ts} data.type is `+e.type),this.bufferList.shift(),this._doDecoderDecode(e)):this.delay>i+t&&r?this.hasIframeInBufferList()?(this.player.debug.warn("CommonDemux",`_loop delay is ${this.delay}, set dropping is true`),this.resetAllDelay(),this.dropping=!0):(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay>t?(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay<0&&this.player.debug.warn("CommonDemux",`_loop delay is ${this.delay} bufferList is `+this.bufferList);else-1!==this.delay&&this.player.debug.log("CommonDemux","loop() bufferList is empty and reset delay"),this.resetAllDelay()}_doDecode(e,t,i,r){const s=this.player;let a={ts:i,cts:4>4==10&&0===e[1])return this.player.debug.log("CommonDemux",`pushBuffer audio ts is ${t.ts}, isAacCodecPacket is true`),void this._doDecoderDecode({ts:t.ts,payload:e,type:1});if(2===t.type&&t.isIFrame&&Vt(e))return this.player.debug.log("CommonDemux",`pushBuffer video ts is ${t.ts}, isVideoSequenceHeader is true`),void this._doDecoderDecode({ts:t.ts,payload:e,type:2,isIFrame:t.isIFrame,cts:t.cts});if(s){if(0=2*this.preTimestampDuration-5&&this.player.debug.warn("CommonDemux",`pushBuffer video\n ts is ${t.ts}, preTimestamp is ${this.preTimestamp},\n diff is ${e} and preTimestampDuration is ${this.preTimestampDuration}\n maybe trigger black screen or flower screen`)}if(0e&&this.delay ${r+i}, bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()):a>e&&this.delay ${r+i},bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()),this.isHistoryIntervalDiffTimeAllLarge()&&$t(this.player.visibility)&&(this.player._opt.useMSE?this.hasIframeInBufferList()&&!1===this.isPushDropping&&!1===this.player.mseDecoder.getSourceBufferUpdating()&&(this.player.debug.warn("CommonDemux",`useMSE, page visibility is false and\n history interval diff is ${this.historyIntervalDiffTimeList.join(",")} and\n bufferList is ${this.bufferList.length},\n delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()):this.hasIframeInBufferList()&&!1===this.isPushDropping&&(this.player.debug.warn("CommonDemux",`useWCS, page visibility is false and\n history interval diff is ${this.historyIntervalDiffTimeList.join(",")} and\n bufferList is ${this.bufferList.length},\n delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()))}}if(2===t.type&&(0Kt(e.isIFrame)&&2===e.type);if(this.isAllIframeInBufferList())for(let t=0;t=this.getNotDroppingDelayTs()){this.player.debug.log("CommonDemux",`dropBuffer$2() isAllIframeInBufferList() is true, and index is ${t} and tempDelay is ${e} and notDroppingDelayTs is `+this.getNotDroppingDelayTs()),r=t;break}}var t,i;0<=r?(this.bufferList=this.bufferList.slice(r),t=this.bufferList.shift(),i=this.getDelayNotUpdateDelay(t.ts),this._doDecoderDecode(t),this.isPushDropping=!1,this.player.debug.log("CommonDemux",`dropBuffer$2() iFrameIndex is ${r},and bufferList length is ${this.bufferList.length} and tempDelay is ${i} ,delay is ${this.delay} `)):this.isPushDropping=!1}0===this.bufferList.length&&(this.isPushDropping=!1)}clearBuffer(){var e=0this.player._opt.networkDelay&&this.player._opt.playType===o&&(this.player.debug.warn("CommonDemux",`delay is more than networkDelay and now dts:${e},start dts is ${this.bufferStartDts}, vs start is ${t},local diff is ${i} ,delay is ${r}, _opt.networkDelay is `+this.player._opt.networkDelay),this.player.emit(U.networkDelayTimeout,r)),this.player.updateStats({netBuf:r}))}calcIframeIntervalTimestamp(e){var t;null===this.preIframeTs?this.preIframeTs=e:this.preIframeTs{2===t.type&&(e+=1)}),e}hasIframeInBufferList(){return this.bufferList.some(e=>2===e.type&&e.isIFrame)}isAllIframeInBufferList(){var e=this.getVideoBufferLength();let t=0;return this.bufferList.forEach(e=>{2===e.type&&e.isIFrame&&(t+=1)}),e===t}getInputByteLength(){return 0}getIsStreamTsMoreThanLocal(){return this.isStreamTsMoreThanLocal}close(){}reset(){}findSei(e,t){const i=function(e,t){var i=1>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}(e,a),3===i&&(s>>>=8),a+=i,s){if(a+s>t)break;r.push(e.subarray(a,a+s)),a+=s}return r}}(e.slice(5)),r=this.player.video.encType===V;i.forEach(e=>{var i=r?e[0]>>>1&63:31&e[0];(r&&(40==i||39==i)||$t(r)&&i===Y)&&this.player.emit(U.videoSEI,{ts:t,data:e})})}}const ur=Symbol(32),pr=Symbol(16),fr=Symbol(8);class mr{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}setG(e){this.g=e,this.demand(e.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(e){return t=this,s=function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,i)=>{this.reject=i,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(e,!0)||null==(i=this.pull)||i.call(this,e)})},new(r=(r=i=void 0)||Promise)((function(e,a){function n(e){try{l(s.next(e))}catch(e){a(e)}}function o(e){try{l(s.throw(e))}catch(e){a(e)}}function l(t){var i;t.done?e(t.value):((i=t.value)instanceof r?i:new r((function(e){e(i)}))).then(n,o)}l((s=s.apply(t,i||[])).next())}));var t,i,r,s}readU32(){return this.read(ur)}readU16(){return this.read(pr)}readU8(){return this.read(fr)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null!=(e=this.reject)&&e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(this.buffer&&this.need){let t=null;const i=this.buffer.subarray(this.consumed);let r=0;var e=e=>i.length<(r=e);if("number"==typeof this.need){if(e(this.need))return;t=i.subarray(0,r)}else if(this.need===ur){if(e(4))return;t=i[0]<<24|i[1]<<16|i[2]<<8|i[3]}else if(this.need===pr){if(e(2))return;t=i[0]<<8|i[1]}else if(this.need===fr){if(e(1))return;t=i[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(e(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(i.subarray(0,r)),t=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(e(this.need.byteLength))return;new Uint8Array(this.need).set(i.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,i=t+e;if(i<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,i);else{const e=new Uint8Array(i);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,i)}return this.buffer=new Uint8Array(e),this.buffer}}mr.U32=ur,mr.U16=pr,mr.U8=fr;var gr,yr="application/json, text/javascript",Ar="text/html",br=/^(?:text|application)\/xml/i,vr=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,_r=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,wr=/^\s*$/,Sr={},Er={},Tr="",kr={type:"GET",beforeSend:xr,success:xr,error:xr,complete:xr,context:null,xhr:function(){return new window.XMLHttpRequest},accepts:{json:yr,xml:"application/xml, text/xml",html:Ar,text:"text/plain","*":"*/".concat("*")},crossDomain:!1,timeout:0,username:null,password:null,processData:!0,promise:xr,contentType:"application/x-www-form-urlencoded; charset=UTF-8"};function xr(){}function Cr(e,t){"object"==typeof e&&(t=e,e=void 0);var i,r=Ur({},t=t||{});for(i in kr)void 0===r[i]&&(r[i]=kr[i]);try{var s={},a=new Promise((function(e,t){s.resolve=e,s.reject=t}));a.resolve=s.resolve,a.reject=s.reject,r.promise=a}catch(e){r.promise={resolve:xr,reject:xr}}a=_r.exec(window.location.href.toLowerCase())||[];var n,o,l,d,h,c=(r.url=((e||r.url||window.location.href)+"").replace(/#.*$/,"").replace(/^\/\//,a[1]+"//"),r.url),u=(r.crossDomain||(r.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(r.url)&&RegExp.$2!==window.location.href),r.dataType);if("jsonp"===u)return/=\?/.test(r.url)||(a=(r.jsonp||"callback")+"=?",r.url=Pr(r.url,a)),l=(n=r).jsonpCallback||"jsonp"+Or(),d=window.document.createElement("script"),h={abort:function(){l in window&&(window[l]=xr)}},a=window.document.getElementsByTagName("head")[0]||window.document.documentElement,d.onerror=function(e){e=e,window.clearTimeout(o),h.abort(),Rr(e.type,h,e.type,n),p()},window[l]=function(e){window.clearTimeout(o),Lr(e,h,n),p()},Br(n),d.src=n.url.replace(/=\?/,"="+l),d.src=Pr(d.src,"_="+(new Date).getTime()),d.async=!0,n.scriptCharset&&(d.charset=n.scriptCharset),a.insertBefore(d,a.firstChild),0>4]+Wr[15&r])}return t.join("")}}),$r={16:10,24:12,32:14},Yr=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],qr=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Jr=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Qr=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Xr=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Zr=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],es=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],ts=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],is=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],rs=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],ss=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],as=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],ns=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],os=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],ls=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function ds(e){for(var t=[],i=0;i>2][t%4]=a[t],this._Kd[e-i][t%4]=a[t];for(var n,o=0,l=s;l>16&255]<<24^qr[n>>8&255]<<16^qr[255&n]<<8^qr[n>>24&255]^Yr[o]<<24,o+=1,8!=s)for(t=1;t>8&255]<<8^qr[n>>16&255]<<16^qr[n>>24&255]<<24,t=s/2+1;t>2][h=l%4]=a[t],this._Kd[e-d][h]=a[t++],l++}for(var d=1;d>24&255]^ns[n>>16&255]^os[n>>8&255]^ls[255&n]},hs.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,i=[0,0,0,0],r=ds(e),s=0;s<4;s++)r[s]^=this._Ke[0][s];for(var a=1;a>24&255]^Xr[r[(s+1)%4]>>16&255]^Zr[r[(s+2)%4]>>8&255]^es[255&r[(s+3)%4]]^this._Ke[a][s];r=i.slice()}var n,o=Gr(16);for(s=0;s<4;s++)n=this._Ke[t][s],o[4*s]=255&(qr[r[s]>>24&255]^n>>24),o[4*s+1]=255&(qr[r[(s+1)%4]>>16&255]^n>>16),o[4*s+2]=255&(qr[r[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(qr[255&r[(s+3)%4]]^n);return o},hs.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,i=[0,0,0,0],r=ds(e),s=0;s<4;s++)r[s]^=this._Kd[0][s];for(var a=1;a>24&255]^is[r[(s+3)%4]>>16&255]^rs[r[(s+2)%4]>>8&255]^ss[255&r[(s+1)%4]]^this._Kd[a][s];r=i.slice()}var n,o=Gr(16);for(s=0;s<4;s++)n=this._Kd[t][s],o[4*s]=255&(Jr[r[s]>>24&255]^n>>24),o[4*s+1]=255&(Jr[r[(s+3)%4]>>16&255]^n>>16),o[4*s+2]=255&(Jr[r[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(Jr[255&r[(s+1)%4]]^n);return o},cs.prototype.encrypt=function(e){if((e=zr(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=Gr(e.length),i=Gr(16),r=0;rNumber.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;0<=t;--t)this._counter[t]=e%256,e=parseInt(e/256)},ms.prototype.setBytes=function(e){if(16!=(e=zr(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},ms.prototype.increment=function(){for(var e=15;0<=e;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}},gs.prototype.decrypt=gs.prototype.encrypt=function(e){for(var t=zr(e,!0),i=0;i>>32-t}function Ss(e){return(255&bs[e>>>24&255])<<24|(255&bs[e>>>16&255])<<16|(255&bs[e>>>8&255])<<8|255&bs[255&e]}function Es(e){return e^ws(e,2)^ws(e,10)^ws(e,18)^ws(e,24)}function Ts(e){return e^ws(e,13)^ws(e,23)}function ks(e,t,i,r){let{padding:s="pkcs#7",mode:a,iv:n=[],output:o="string"}=3>>6),t.push(128|63&i);else if(i<=55295||57344<=i&&i<=65535)t.push(224|i>>>12),t.push(128|i>>>6&63),t.push(128|63&i);else{if(!(65536<=i&&i<=1114111))throw t.push(i),new Error("input is not supported");r++,t.push(240|i>>>18&28),t.push(128|i>>>12&63),t.push(128|i>>>6&63),t.push(128|63&i)}}return t}:_s)(e):[...e],("pkcs#5"===s||"pkcs#7"===s)&&0!==i){const t=As-e.length%As;for(let i=0;i=As;){const t=e.slice(f,f+16),r=new Array(16);if("cbc"===a)for(let e=0;e>>24&255,g[t+1]=e[3-t/4]>>>16&255,g[t+2]=e[3-t/4]>>>8&255,g[t+3]=255&e[3-t/4]}for(let e=0;e1===(e=e.toString(16)).length?"0"+e:e).join("");{var A=c;const e=[];for(let t=0,i=A.length;t>4&15,t=1==e;if(1!=e&&2!=e&&r.debug.warn("FlvDemux",`frameType is ${e} is not keyFrame or interFrame`),t&&this.calcIframeIntervalTimestamp(a),0r)break;var a=e[s+4];if(1==(a&=31)||5==a){const r=e.slice(s+4+2,s+4+n);let o=new ys.ModeOfOperation.ctr(t,new ys.Counter(i));a=o.decrypt(r),o=null,e.set(a,s+4+2)}s=s+4+n}var n;return e}(n,r._opt.cryptoKey,r._opt.cryptoIV):r.debug.error("FlvDemux",`cryptoKey.length is ${r._opt.cryptoKey&&r._opt.cryptoKey.byteLength} or cryptoIV.length is ${r._opt.cryptoIV&&r._opt.cryptoIV.byteLength} null`):r._opt.isSm4Crypto&&r._opt.sm4CryptoKey&&t&&(e=function(e,t){const i=e.byteLength;let r=5;for(;ri)break;var s=e[r+4];if(1==(s&=31)||5==s){const i=ks(e.slice(r+4+2,r+4+a),t,0,{padding:"none",output:"array"});e.set(i,r+4+2)}r=r+4+a}var a;return e}(n,r._opt.sm4CryptoKey)),r._opt.isEmitSEI&&this.findSei(e,a),this._doDecode(e,2,a,t,o)}}break;default:r.debug.warn("FlvDemux","demux() type is "+l)}}}close(){this.input=null}getInputByteLength(){let e=0;return this.input&&this.input.buffer?this.input.buffer.byteLength:e}}class Cs extends cr{constructor(e){super(e),e.debug.log("M7sDemux","init")}destroy(){super.destroy(),this.player.debug.log("M7sDemux","destroy")}dispatch(e){const t=this.player,i=new DataView(e),r=i.getUint8(0),s=i.getUint32(1,!1);switch(r){case 1:if(t._opt.hasAudio){const i=new Uint8Array(e,5);t.updateStats({abps:i.byteLength}),0>4==1,t.updateStats({vbps:a.byteLength,dts:s}),0>1)&&33!==i&&34!==i||(t=V),t}(t)),this.streamVideoType===W){const e=this.handleAddNaluStartCode(t),i=this.extractNALu(e);if(0===i.length)this.player.debug.warn(this.TAG_NAME,"handleVideoNalu","naluList.length === 0");else{const e=[];if(i.forEach(t=>{var i=Yi(t);8===i||7===i?this.handleVideoH264Nalu(t):Ji(i)&&e.push(t)}),1===e.length)this.handleVideoH264Nalu(e[0]);else{const t=function(e){if(0===e.length)return!1;var t=Yi(e[0]);for(let i=1;i{this.handleVideoH264Nalu(e)})}}}else if(this.streamVideoType===V){const e=this.handleAddNaluStartCode(t),i=this.extractNALu(e);if(0===i.length)this.player.debug.warn(this.TAG_NAME,"handleVideoNalu","h265 naluList.length === 0");else{const e=[];if(i.forEach(t=>{var i=tr(t);34===i||33===i||32===i?this.handleVideoH265Nalu(t):ir(i)&&e.push(t)}),1===e.length)this.handleVideoH265Nalu(e[0]);else{const t=function(e){if(0===e.length)return!1;var t=tr(e[0]);for(let i=1;i{this.handleVideoH265Nalu(e)})}}}else this.player.debug.error(this.TAG_NAME," this.streamVideoType is null")}extractH264PPS(e){e=this.handleAddNaluStartCode(e),this.extractNALu(e).forEach(e=>{qi(Yi(e))?this.extractH264SEI(e):this.handleVideoH264Nalu(e)})}extractH265PPS(e){e=this.handleAddNaluStartCode(e),this.extractNALu(e).forEach(e=>{39===tr(e)?this.extractH265SEI(e):this.handleVideoH265Nalu(e)})}extractH264SEI(e){e=this.handleAddNaluStartCode(e),this.extractNALu(e).forEach(e=>{this.handleVideoH264Nalu(e)})}extractH265SEI(e){e=this.handleAddNaluStartCode(e),this.extractNALu(e).forEach(e=>{this.handleVideoH265Nalu(e)})}handleAddNaluStartCode(e){const t=[0,0,0,1],i=new Uint8Array(e.length+t.length);return i.set(t),i.set(e,t.length),i}handleAudioAACNalu(e){if(e&&!(e.byteLength<1)){this.streamAudioType||(this.streamAudioType=K.AAC);let i=new Uint8Array(e);var t=i.slice(0,7);if(i=i.slice(7),!this.isSendAACSeqHeader){const e=(192&t[2])>>6,i=(60&t[2])>>2,r=(1&t[2])<<2|(192&t[3])>>6,s=new Uint8Array([175,0,e<<3|(14&i)>>1,(1&i)<<7|r<<3]);this.isSendAACSeqHeader=!0,this._doDecode(s,1,0,!1,0)}const r=this.getNaluAudioDts(),s=new Uint8Array(i.length+2);s.set([175,1],0),s.set(i,2),this._doDecode(s,1,r,!1,0)}}handleAudioG711ANalu(e){if(e&&!(e.byteLength<1)){this.streamAudioType||(this.streamAudioType=K.ALAW),e=new Uint8Array(e);const t=this.getNaluAudioDts(),i=new Uint8Array(e.length+1);i.set([114],0),i.set(e,1),this._doDecode(i,1,t,!1,0)}}handleAudioG711UNalu(e){if(e&&!(e.byteLength<1)){this.streamAudioType||(this.streamAudioType=K.MULAW),e=new Uint8Array(e);const t=this.getNaluAudioDts(),i=new Uint8Array(e.length+1);i.set([130],0),i.set(e,1),this._doDecode(i,1,t,!1,0)}}handleVideoH264Nalu(e){const t=Yi(e);switch(t){case 7:this.sps=e;break;case 8:this.pps=e}if(this.isSendSeqHeader){if(this.sps&&this.pps){const e=Ki({sps:this.sps,pps:this.pps}),t=this.getNaluDts();this._doDecode(e,2,t,!0,0),this.sps=null,this.pps=null}if(Ji(t)){this.player._times.demuxStart||(this.player._times.demuxStart=qe());const i=5===t,r=this.getNaluDts(),s=function(e){let t=[];t[0]=i?23:39,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e);this._preDoDecode(s,2,r,i,0)}else this.player.debug.warn(this.TAG_NAME,"handleVideoH264Nalu is avc seq head nalType is "+t)}else if(this.sps&&this.pps){this.isSendSeqHeader=!0;const e=Ki({sps:this.sps,pps:this.pps});this._doDecode(e,2,0,!0,0),this.sps=null,this.pps=null}}handleVideoH264NaluList(e,t,i){if(this.isSendSeqHeader){this.player._times.demuxStart||(this.player._times.demuxStart=qe());const i=this.getNaluDts(),r=$i(e.reduce((e,t)=>{const i=hr(e),r=hr(t),s=new Uint8Array(i.byteLength+r.byteLength);return s.set(i,0),s.set(r,i.byteLength),s}),t);this._preDoDecode(r,2,i,t,0)}else this.player.debug.warn(this.TAG_NAME,"handleVideoH264NaluList isSendSeqHeader is false")}handleVideoH265Nalu(e){const t=tr(e);switch(t){case 32:this.vps=e;break;case 33:this.sps=e;break;case 34:this.pps=e}if(this.isSendSeqHeader){if(this.vps&&this.sps&&this.pps){const e=Zi({vps:this.vps,sps:this.sps,pps:this.pps}),t=this.getNaluDts();this._doDecode(e,2,t,!0,0),this.vps=null,this.sps=null,this.pps=null}if(ir(t)){this.player._times.demuxStart||(this.player._times.demuxStart=qe());const i=rr(t),r=this.getNaluDts(),s=function(e){let t=[];t[0]=i?28:44,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e);this._preDoDecode(s,2,r,i,0)}}else if(this.vps&&this.sps&&this.pps){this.isSendSeqHeader=!0;const e=Zi({vps:this.vps,sps:this.sps,pps:this.pps});this._doDecode(e,2,0,!0,0),this.vps=null,this.sps=null,this.pps=null}}handleVideoH265NaluList(e,t,i){if(this.isSendSeqHeader){this.player._times.demuxStart||(this.player._times.demuxStart=qe());const i=this.getNaluDts(),r=er(e.reduce((e,t)=>{const i=hr(e),r=hr(t),s=new Uint8Array(i.byteLength+r.byteLength);return s.set(i,0),s.set(r,i.byteLength),s}),t);this._preDoDecode(r,2,i,t,0)}else this.player.debug.warn(this.TAG_NAME,"handleVideoH265NaluList isSendSeqHeader is false")}_preDoDecode(e,t,i,r,s){this.player.updateStats({vbps:e.byteLength,dts:i}),r&&this.calcIframeIntervalTimestamp(i),this.player._opt.isEmitSEI&&this.findSei(e,i),this._doDecode(e,2,i,r,s)}getInputByteLength(){let e=0;return this.lastBuf?this.lastBuf.byteLength:e}}class Is extends cr{constructor(e){super(e),(this.player=e).debug.log("EmptyDemux","init")}destroy(){super.destroy(),this.player.debug.log("EmptyDemux","destroy")}}var Ps=Ne((function(e,t){function i(e){if(!(e instanceof ArrayBuffer))throw"Needs an array buffer";this.buffer=e,this.dataview=new DataView(e),this.position=0}function r(e,t,i){this._byteOffset=t||0,e instanceof ArrayBuffer?this.buffer=e:"object"==typeof e?(this.dataView=e,t&&(this._byteOffset+=t)):this.buffer=new ArrayBuffer(e||0),this.position=0,this.endianness=null==i?r.LITTLE_ENDIAN:i}function s(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)}function a(){var e=[],t=(e[3]="ES_Descriptor",e[4]="DecoderConfigDescriptor",e[5]="DecoderSpecificInfo",e[6]="SLConfigDescriptor",this.getDescriptorName=function(t){return e[t]},this),i={};return this.parseOneDescriptor=function(t){for(var r=0,s=t.readUint8(),a=t.readUint8();128&a;)r=(127&a)<<7,a=t.readUint8();return c.debug("MPEG4DescriptorParser","Found "+(e[s]||"Descriptor "+s)+", size "+(r+=127&a)+" at position "+t.getPosition()),(s=new(e[s]?i[e[s]]:i.Descriptor)(r)).parse(t),s},i.Descriptor=function(e,t){this.tag=e,this.size=t,this.descs=[]},i.Descriptor.prototype.parse=function(e){this.data=e.readUint8Array(this.size)},i.Descriptor.prototype.findDescriptor=function(e){for(var t=0;t>3)&&2<=t.data.length?32+((7&t.data[0])<<3)+((224&t.data[1])>>5):i:null},i.DecoderConfigDescriptor=function(e){i.Descriptor.call(this,4,e)},i.DecoderConfigDescriptor.prototype=new i.Descriptor,i.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},i.DecoderSpecificInfo=function(e){i.Descriptor.call(this,5,e)},i.DecoderSpecificInfo.prototype=new i.Descriptor,i.SLConfigDescriptor=function(e){i.Descriptor.call(this,6,e)},i.SLConfigDescriptor.prototype=new i.Descriptor,this}function n(){}function o(){}function l(e){this.stream=e||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.onSidx=null,this.sidxSent=!1}d=new Date,h=4;var d,h,c={setLogLevel:function(e){h=e==this.debug?1:e==this.info?2:e==this.warn?3:(this.error,4)},debug:function(e,t){void 0===console.debug&&(console.debug=console.log),h<=1&&console.debug("["+c.getDurationString(new Date-d,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){h<=2&&console.info("["+c.getDurationString(new Date-d,1e3)+"]","["+e+"]",t)},warn:function(e,t){h<=3&&console.warn("["+c.getDurationString(new Date-d,1e3)+"]","["+e+"]",t)},error:function(e,t){h<=4&&console.error("["+c.getDurationString(new Date-d,1e3)+"]","["+e+"]",t)}},u=(c.getDurationString=function(e,t){var i;function r(e,t){for(var i=(""+e).split(".");i[0].length=this.getEndPosition()},i.prototype.readAnyInt=function(e,t){var i=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:i=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:i=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";i=this.dataview.getUint8(this.position)<<16,i=(i|=this.dataview.getUint8(this.position+1)<<8)|this.dataview.getUint8(this.position+2);break;case 4:i=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";i=this.dataview.getUint32(this.position)<<32,i|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,i}throw"Not enough bytes in buffer"},i.prototype.readUint8=function(){return this.readAnyInt(1,!1)},i.prototype.readUint16=function(){return this.readAnyInt(2,!1)},i.prototype.readUint24=function(){return this.readAnyInt(3,!1)},i.prototype.readUint32=function(){return this.readAnyInt(4,!1)},i.prototype.readUint64=function(){return this.readAnyInt(8,!1)},i.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",i=0;ithis._byteLength&&(this._byteLength=t);else{for(i<1&&(i=1);i=this._byteLength},r.prototype.mapUint8Array=function(e){this._realloc(+e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},r.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Int32Array(e);return r.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),r.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},r.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var i=new Int16Array(e);return r.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),r.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},r.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return r.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},r.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Uint32Array(e);return r.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),r.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},r.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var i=new Uint16Array(e);return r.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),r.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},r.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return r.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},r.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var i=new Float64Array(e);return r.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),r.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},r.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Float32Array(e);return r.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),r.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},r.prototype.readInt32=function(e){return e=this._dataView.getInt32(this.position,null==e?this.endianness:e),this.position+=4,e},r.prototype.readInt16=function(e){return e=this._dataView.getInt16(this.position,null==e?this.endianness:e),this.position+=2,e},r.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},r.prototype.readUint32=function(e){return e=this._dataView.getUint32(this.position,null==e?this.endianness:e),this.position+=4,e},r.prototype.readUint16=function(e){return e=this._dataView.getUint16(this.position,null==e?this.endianness:e),this.position+=2,e},r.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},r.prototype.readFloat32=function(e){return e=this._dataView.getFloat32(this.position,null==e?this.endianness:e),this.position+=4,e},r.prototype.readFloat64=function(e){return e=this._dataView.getFloat64(this.position,null==e?this.endianness:e),this.position+=8,e},r.endianness=0>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},r.prototype.adjustUint32=function(e,t){var i=this.position;this.seek(e),this.writeUint32(t),this.seek(i)},r.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var i=new Int32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},r.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var i=new Int16Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(i,null==t?this.endianness:t),this.position+=2*e,i},r.prototype.mapInt8Array=function(e){this._realloc(+e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},r.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var i=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},r.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var i=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(i,null==t?this.endianness:t),this.position+=2*e,i},r.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var i=new Float64Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(i,null==t?this.endianness:t),this.position+=8*e,i},r.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var i=new Float32Array(this._buffer,this.byteOffset+this.position,e);return r.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},(s.prototype=new r(new ArrayBuffer,0,r.BIG_ENDIAN)).initialized=function(){var e;return-1r.byteLength){this.buffers.splice(i,1),i--;continue}c.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=r.fileStart||(e=this.reduceBuffer(e,0,r.fileStart-e.fileStart)),c.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(i,0,e),0===i&&(this.buffer=e);t=!1;break}if(e.fileStart"+this.buffer.byteLength+")"),!0)},s.prototype.findPosition=function(e,t,i){for(var r=null,s=-1,a=!0===e?0:this.bufferIndex;a=t?(c.debug("MultiBufferStream","Found position in existing buffer #"+s),s):-1},s.prototype.findEndContiguousBuf=function(e){e=void 0!==e?e:this.bufferIndex;var t,i,r=this.buffers[e];if(this.buffers.length>e+1)for(t=e+1;te.getEndPosition()?(e.seek(a),c.info("BoxParser","Not enough data in stream to parse the entire '"+l+"' box"),{code:p.ERR_NOT_ENOUGH_DATA,type:l,size:o,hdr_size:n,start:a}):t?{code:p.OK,type:l,size:o,hdr_size:n,start:a}:(p[l+"Box"]?r=new p[l+"Box"](o):"uuid"!==l?(c.warn("BoxParser","Unknown box type: '"+l+"'"),(r=new p.Box(l,o)).has_unparsed_data=!0):p.UUIDBoxes[s]?r=new p.UUIDBoxes[s](o):(c.warn("BoxParser","Unknown uuid type: '"+s+"'"),(r=new p.Box(l,o)).uuid=s,r.has_unparsed_data=!0),r.hdr_size=n,r.start=a,r.write===p.Box.prototype.write&&"mdat"!==r.type&&(c.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),(i=e.getPosition()-(r.start+r.size))<0?(c.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-i+" bytes), seeking forward"),e.seek(r.start+r.size)):0>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},p.SAMPLE_ENTRY_TYPE_VISUAL="Visual",p.SAMPLE_ENTRY_TYPE_AUDIO="Audio",p.SAMPLE_ENTRY_TYPE_HINT="Hint",p.SAMPLE_ENTRY_TYPE_METADATA="Metadata",p.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",p.SAMPLE_ENTRY_TYPE_SYSTEM="System",p.SAMPLE_ENTRY_TYPE_TEXT="Text",p.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},p.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},p.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},p.SampleEntry.prototype.parseFooter=function(e){p.ContainerBox.prototype.parse.call(this,e)},p.createMediaSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_HINT),p.createMediaSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_METADATA),p.createMediaSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_SUBTITLE),p.createMediaSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_SYSTEM),p.createMediaSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_TEXT),p.createMediaSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,(function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)})),p.createMediaSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_AUDIO,(function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)})),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),p.createSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),p.createEncryptedSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),p.createEncryptedSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),p.createEncryptedSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),p.createEncryptedSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),p.createEncryptedSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_TEXT,"enct"),p.createEncryptedSampleEntryCtor(p.SAMPLE_ENTRY_TYPE_METADATA,"encm"),p.createBoxCtor("a1lx",(function(e){var t=16*(1+(1&e.readUint8()));this.layer_size=[];for(var i=0;i<3;i++)this.layer_size[i]=16==t?e.readUint16():e.readUint32()})),p.createBoxCtor("a1op",(function(e){this.op_index=e.readUint8()})),p.createFullBoxCtor("auxC",(function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)})),p.createBoxCtor("av1C",(function(e){var t=e.readUint8();if(t>>7&!1)c.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void c.error("av1C reserved_2 parsing problem");t=this.size-this.hdr_size-4,this.configOBUs=e.readUint8Array(t)}else c.error("av1C reserved_1 parsing problem");else c.error("av1C version "+this.version+" not supported")})),p.createBoxCtor("avcC",(function(e){var t,i;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),i=this.size-this.hdr_size-6,this.SPS=[],t=0;t>7):"rICC"!==this.colour_type&&"prof"!==this.colour_type||(this.ICC_profile=e.readUint8Array(this.size-4))})),p.createFullBoxCtor("cprt",(function(e){this.parseLanguage(e),this.notice=e.readCString()})),p.createFullBoxCtor("cslg",(function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())})),p.createFullBoxCtor("ctts",(function(e){var t,i=e.readUint32();if(this.sample_counts=[],this.sample_offsets=[],0===this.version)for(t=0;t>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|i>>6&3,this.acmod=i>>3&7,this.lfeon=i>>2&1,this.bit_rate_code=3&i|e>>5&7})),p.createBoxCtor("dec3",(function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var i=0;i>6,r.bsid=s>>1&31,r.bsmod=(1&s)<<4|a>>4&15,r.acmod=a>>1&7,r.lfeon=1&a,r.num_dep_sub=n>>1&15,0>12,e.readUint8Array(20)),t.push(i[s]),128&r)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"})),p.createBoxCtor("dimm",(function(e){this.bytessent=e.readUint64()})),p.createBoxCtor("dmax",(function(e){this.time=e.readUint32()})),p.createBoxCtor("dmed",(function(e){this.bytessent=e.readUint64()})),p.createBoxCtor("dOps",(function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t>6,this.general_tier_flag=(32&i)>>5,this.general_profile_idc=31&i,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),i=e.readUint8(),this.constantFrameRate=i>>6,this.numTemporalLayers=(13&i)>>3,this.temporalIdNested=(4&i)>>2,this.lengthSizeMinusOne=3&i,this.nalu_arrays=[];for(var t,i,r=e.readUint8(),s=0;s>7,a.nalu_type=63&i,e.readUint16()),o=0;o>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[],0);if(this.version<2)i=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";i=e.readUint32()}for(var r=0;r>7,this.axis=1&e})),p.createFullBoxCtor("infe",(function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),c.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);2<=this.version&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))})),p.createFullBoxCtor("ipma",(function(e){var t,i;for(entry_count=e.readUint32(),this.associations=[],t=0;t>7==1,1&this.flags?n.property_index=(127&a)<<8|e.readUint8():n.property_index=127&a}}})),p.createFullBoxCtor("iref",(function(e){var t;for(this.references=[];e.getPosition()>7,r.assignment_type=127&s,r.assignment_type){case 0:r.grouping_type=e.readString(4);break;case 1:r.grouping_type=e.readString(4),r.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:r.sub_track_id=e.readUint32();break;default:c.warn("BoxParser","Unknown leva assignement type")}}})),p.createBoxCtor("lsel",(function(e){this.layer_id=e.readUint16()})),p.createBoxCtor("maxr",(function(e){this.period=e.readUint32(),this.bytes=e.readUint32()})),p.createBoxCtor("mdcv",(function(e){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=e.readUint16(),this.display_primaries[0].y=e.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=e.readUint16(),this.display_primaries[1].y=e.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=e.readUint16(),this.display_primaries[2].y=e.readUint16(),this.white_point={},this.white_point.x=e.readUint16(),this.white_point.y=e.readUint16(),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()})),p.createFullBoxCtor("mdhd",(function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()})),p.createFullBoxCtor("mehd",(function(e){1&this.flags&&(c.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()})),p.createFullBoxCtor("meta",(function(e){this.boxes=[],p.ContainerBox.prototype.parse.call(this,e)})),p.createFullBoxCtor("mfhd",(function(e){this.sequence_number=e.readUint32()})),p.createFullBoxCtor("mfro",(function(e){this._size=e.readUint32()})),p.createFullBoxCtor("mvhd",(function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()})),p.createBoxCtor("npck",(function(e){this.packetssent=e.readUint32()})),p.createBoxCtor("nump",(function(e){this.packetssent=e.readUint64()})),p.createFullBoxCtor("padb",(function(e){var t=e.readUint32();this.padbits=[];for(var i=0;i>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var i=e.readUint8(),r=0;r>7,this.num_leading_samples=127&e})),p.createSampleGroupCtor("rash",(function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)c.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=p.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))})),p.createSampleGroupCtor("stsa",(function(e){c.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),p.createSampleGroupCtor("sync",(function(e){e=e.readUint8(),this.NAL_unit_type=63&e})),p.createSampleGroupCtor("tele",(function(e){e=e.readUint8(),this.level_independently_decodable=e>>7})),p.createSampleGroupCtor("tsas",(function(e){c.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),p.createSampleGroupCtor("tscl",(function(e){c.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),p.createSampleGroupCtor("vipr",(function(e){c.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),p.createFullBoxCtor("sbgp",(function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),i=0;i>6,this.sample_depends_on[r]=t>>4&3,this.sample_is_depended_on[r]=t>>2&3,this.sample_has_redundancy[r]=3&t})),p.createFullBoxCtor("senc"),p.createFullBoxCtor("sgpd",(function(e){this.grouping_type=e.readString(4),c.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,2<=this.version&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),i=0;i>31&1,r.referenced_size=2147483647&s,r.subsegment_duration=e.readUint32(),s=e.readUint32(),r.starts_with_SAP=s>>31&1,r.SAP_type=s>>28&7,r.SAP_delta_time=268435455&s}})),p.SingleItemTypeReferenceBox=function(e,t,i,r){p.Box.call(this,e,t),this.hdr_size=i,this.start=r},p.SingleItemTypeReferenceBox.prototype=new p.Box,p.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var i=0;i>4&15,this.sample_sizes[t+1]=15&r}else if(8===this.field_size)for(t=0;t>4&15,this.default_skip_byte_block=15&t),this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=p.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))})),p.createFullBoxCtor("tfdt",(function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()})),p.createFullBoxCtor("tfhd",(function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&p.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&p.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&p.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&p.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&p.TFHD_FLAG_SAMPLE_FLAGS?this.default_sample_flags=e.readUint32():this.default_sample_flags=0})),p.createFullBoxCtor("tfra",(function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var i=e.readUint32(),r=0;r>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()})),p.createBoxCtor("tmax",(function(e){this.time=e.readUint32()})),p.createBoxCtor("tmin",(function(e){this.time=e.readUint32()})),p.createBoxCtor("totl",(function(e){this.bytessent=e.readUint32()})),p.createBoxCtor("tpay",(function(e){this.bytessent=e.readUint32()})),p.createBoxCtor("tpyl",(function(e){this.bytessent=e.readUint64()})),p.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},p.createTrackGroupCtor("msrc"),p.TrackReferenceTypeBox=function(e,t,i,r){p.Box.call(this,e,t),this.hdr_size=i,this.start=r},p.TrackReferenceTypeBox.prototype=new p.Box,p.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},p.trefBox.prototype.parse=function(e){for(var t;e.getPosition()(t+=4)&&this.flags&p.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&p.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=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>t)for(var i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")})),p.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,(function(e){this.system_id=p.parseHex16(e);var t=e.readUint32();0>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8()):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)})),p.createBoxCtor("vttC",(function(e){this.text=e.readString(this.size-this.hdr_size)})),p.createFullBoxCtor("vvcC",(function(e){var t,i={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<>=1;e=e+p.decimalToHex(i,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var s=!1,a="";for(r=5;0<=r;r--)(this.hvcC.general_constraint_indicator[r]||s)&&(a="."+p.decimalToHex(this.hvcC.general_constraint_indicator[r],0)+a,s=!0);e+=a}return e},p.vvc1SampleEntry.prototype.getCodec=p.vvi1SampleEntry.prototype.getCodec=function(){var e=p.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 t="";if(this.vvcC.general_constraint_info){var i,r=[],s=0;s=(s|=this.vvcC.ptl_frame_only_constraint<<7)|this.vvcC.ptl_multilayer_enabled<<6;for(l=0;l>2&63,r.push(s),s&&(i=l),s=this.vvcC.general_constraint_info[l]>>2&3;if(void 0===i)t=".CA";else{t=".C";for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",n=0,o=0,l=0;l<=i;++l)for(n=n<<8|r[l],o+=8;5<=o;)t+=a[n>>o-5&31],n&=(1<<(o-=5))-1;o&&(t+=a[31&(n<<=5-o)])}}e+=t}return e},p.mp4aSampleEntry.prototype.getCodec=function(){var e,t,i=p.SampleEntry.prototype.getCodec.call(this);return this.esds&&this.esds.esd?(e=this.esds.esd.getOTI(),t=this.esds.esd.getAudioConfig(),i+"."+p.decimalToHex(e)+(t?"."+t:"")):i},p.stxtSampleEntry.prototype.getCodec=function(){var e=p.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},p.vp08SampleEntry.prototype.getCodec=p.vp09SampleEntry.prototype.getCodec=function(){var e=p.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level,i=this.vpcC.bitDepth;return e+".0"+this.vpcC.profile+"."+(t=0==t?"00":t)+"."+(8==i?"08":i)},p.av01SampleEntry.prototype.getCodec=function(){var e,t=p.SampleEntry.prototype.getCodec.call(this),i=this.av1C.seq_level_idx_0;return 2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+(i=i<10?"0"+i:i)+(this.av1C.seq_tier_0?"H":"M")+"."+e},p.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>u&&(this.size+=8),"uuid"===this.type&&(this.size+=16),c.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>u?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>u&&e.writeUint64(this.size)},p.FullBox.prototype.writeHeader=function(e){this.size+=4,p.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},p.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},p.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;tt?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},p.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&p.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&p.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&p.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&p.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&p.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&p.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&p.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&p.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&p.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&p.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},p.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},p.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},p.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&p.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&p.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&p.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&p.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&p.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&p.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&p.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&p.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t=r.samples.length)&&(c.info("ISOFile","Sending fragmented data on track #"+i.id+" for samples ["+Math.max(0,r.nextSample-i.nb_samples)+","+(r.nextSample-1)+"]"),c.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(i.id,i.user,i.segmentStream.buffer,r.nextSample,e||r.nextSample>=r.samples.length),i.segmentStream=null,i!==this.fragmentedTracks[t]))break}if(null!==this.onSamples)for(t=0;t=r.samples.length)&&(c.debug("ISOFile","Sending samples on track #"+a.id+" for sample "+r.nextSample),this.onSamples&&this.onSamples(a.id,a.user,a.samples),a.samples=[],a!==this.extractedTracks[t]))break}}}},l.prototype.getBox=function(e){return e=this.getBoxes(e,!0),e.length?e[0]:null},l.prototype.getBoxes=function(e,t){var i=[];return l._sweep.call(this,e,i,t),i},l._sweep=function(e,t,i){for(var r in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&i)return;l._sweep.call(this.boxes[r],e,t,i)}},l.prototype.getTrackSamplesInfo=function(e){return e=this.getTrackById(e),e?e.samples:void 0},l.prototype.getTrackSample=function(e,t){return e=this.getTrackById(e),this.getSample(e,t)},l.prototype.releaseUsedSamples=function(e,t){var i=0,r=this.getTrackById(e);r.lastValidSample||(r.lastValidSample=0);for(var s=r.lastValidSample;se*s.timescale){l=r-1;break}t&&s.is_sync&&(o=r)}for(t&&(l=o),e=i.samples[l].cts,i.nextSample=l;i.samples[l].alreadyRead===i.samples[l].size&&i.samples[l+1];)l++;return a=i.samples[l].offset+i.samples[l].alreadyRead,c.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+i.nextSample+" on track "+i.tkhd.track_id+", time "+c.getDurationString(e,n)+" and offset: "+a),{offset:a,time:e/n}},l.prototype.seek=function(e,t){var i,r,s=this.moov,a={offset:1/0,time:1/0};if(this.moov){for(r=0;r=r[s].last_sample_in_run&&(r[s].last_sample_in_run<0&&(r[s].last_sample_in_run=0),r[s].entry_index++,r[s].entry_index<=r[s].sbgp.entries.length-1&&(r[s].last_sample_in_run+=r[s].sbgp.entries[r[s].entry_index].sample_count)),r[s].entry_index<=r[s].sbgp.entries.length-1?t.sample_groups[s].group_description_index=r[s].sbgp.entries[r[s].entry_index].group_description_index:t.sample_groups[s].group_description_index=-1,0!==t.sample_groups[s].group_description_index&&(n=r[s].fragment_description||r[s].description,0>16)-1:t.sample_groups[s].group_description_index-1,n&&0<=a&&(t.sample_groups[s].description=n.entries[a])):n&&2<=n.version&&0>16&1),u.is_leading=g>>26&3,u.depends_on=g>>24&3,u.is_depended_on=g>>22&3,u.has_redundancy=g>>20&3,u.degradation_priority=65535&g;var g=!!(d.tfhd.flags&p.TFHD_FLAG_BASE_DATA_OFFSET),y=!!(d.tfhd.flags&p.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),A=!!(f.flags&p.TRUN_FLAGS_DATA_OFFSET);g=g?d.tfhd.base_data_offset:y||0===v?o.start:a;u.offset=0===v&&0===m?A?g+f.data_offset:g:a,a=u.offset+u.size,(0u&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},p.FullBox.prototype.printHeader=function(e){this.size+=4,p.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},p.Box.prototype.print=function(e){this.printHeader(e)},p.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t,i=0;i>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},p.tkhdBox.prototype.print=function(e){p.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var f=function(e,t){return e=void 0===e||e,t=new l(t),t.discardMdatData=!e,t};t.createFile=f}));function Bs(e){return e.reduce((e,t)=>256*e+t)}function Us(e){const t=[101,103,119,99],i=e.length-28,r=e.slice(i,i+t.length);return t.every((e,t)=>e===r[t])}Ps.Log,Ps.MP4BoxStream,Ps.DataStream,Ps.MultiBufferStream,Ps.MPEG4DescriptorParser,Ps.BoxParser,Ps.XMLSubtitlein4Parser,Ps.Textin4Parser,Ps.ISOFile,Ps.createFile;class Fs{constructor(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=new Uint8Array([30,158,90,33,244,57,83,165,2,70,35,87,215,231,226,108]),this.t=this.n.slice().reverse()}destroy(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=null,this.t=null}transport(e){if(!this.s&&50~e)]}return null}(t,this.t);if(!i)return e;var r=function(e){try{if("object"!=typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)throw null;{const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(!(e instanceof WebAssembly.Module&&new WebAssembly.Instance(e)instanceof WebAssembly.Instance))throw null}}catch(e){return new Error("video_error_4")}let t;try{t={env:{__handle_stack_overflow:()=>e(new Error("video_error_1")),memory:new WebAssembly.Memory({initial:256,maximum:256})}}}catch(e){return new Error("video_error_5")}return t}(e);if(r instanceof Error)return console.error(r.message),this.d=!0,e;this.A=!0,this.u=i[1],Us(t)&&this.c++,WebAssembly.instantiate(i[2],r).then(e=>{if("function"!=typeof(t=e.instance.exports).parse||"object"!=typeof t.memory)return this.d=!0,void console.error("video_error_3");var t;this.s=e.instance.exports,this.a=new Uint8Array(this.s.memory.buffer)}).catch(e=>{this.d=!0,console.error("video_error_6")})}return e}}class Ms extends cr{constructor(e){super(e),Ds(this,"TAG_NAME","Fmp4Loader"),this.player=e,this.mp4Box=Ps.createFile(),this.tempFmp4List=[],this.offset=0,this.videoTrackId=null,this.audioTrackId=null,this.isHevc=!1,this.transportDescarmber=null,this.player._opt.isFmp4Private&&(this.transportDescarmber=new Fs),this._listenMp4Box(),e.debug.log(this.TAG_NAME,"init")}destroy(){this.mp4Box&&(this.mp4Box.flush(),this.mp4Box=null),this.transportDescarmber&&(this.transportDescarmber.destroy(),this.transportDescarmber=null),this.tempFmp4List=[],this.offset=0,this.videoTrackId=null,this.audioTrackId=null,this.isHevc=!1,this.player.debug.log(this.TAG_NAME,"destroy")}_listenMp4Box(){this.mp4Box.onReady=this.onReady.bind(this),this.mp4Box.onError=this.onError.bind(this),this.mp4Box.onSamples=this.onSamples.bind(this)}onReady(e){this.player.debug.log(this.TAG_NAME,"onReady",e);const t=e.videoTracks[0],i=e.audioTracks[0];if(t){this.videoTrackId=t.id;const e=this.getSeqHeader(t);e&&(this.player.debug.log(this.TAG_NAME,"seqHeader",e),this._doDecodeByFmp4(e,2,0,!0,0)),this.mp4Box.setExtractionOptions(t.id)}if(i){this.audioTrackId=i.id;const e=i.audio||{},t=He.indexOf(e.sample_rate),a=i.codec.replace("mp4a.40.","");this.mp4Box.setExtractionOptions(i.id);var r={profile:parseInt(a,10),sampleRate:t,channel:e.channel_count},s=ze(r);this.player.debug.log(this.TAG_NAME,"aacADTSHeader",s,"config",r),this._doDecodeByFmp4(s,1,0,!1,0)}this.mp4Box.start()}onError(e){this.player.debug.error(this.TAG_NAME,"mp4Box onError",e)}onSamples(e,t,i){if(e===this.videoTrackId)for(const s of i){const e=s.data,t=s.is_sync,i=1e3*s.cts/s.timescale;s.duration,s.timescale,this.player.updateStats({vbps:e.byteLength,dts:i}),t&&this.calcIframeIntervalTimestamp(i);var r=(this.isHevc?er:$i)(e,t);this.player._opt.isEmitSEI&&this.findSei(r,i),this._doDecodeByFmp4(r,2,i,t,0)}else if(e===this.audioTrackId)for(const s of i){const e=s.data,t=(this.player.updateStats({abps:e.byteLength}),1e3*s.cts/s.timescale),i=(s.duration,s.timescale,new Uint8Array(e.byteLength+2));i.set([175,1],0),i.set(e,2),this._doDecodeByFmp4(i,1,t,!1,0)}else this.player.debug.warn(this.TAG_NAME,"onSamples() trackId error",e)}getSeqHeader(e){const t=this.mp4Box.getTrackById(e.id);for(const i of t.mdia.minf.stbl.stsd.entries)if(i.avcC||i.hvcC){const e=new Ps.DataStream(void 0,0,Ps.DataStream.BIG_ENDIAN);let t=[];t=i.avcC?(i.avcC.write(e),[23,0,0,0,0]):(this.isHevc=!0,i.hvcC.write(e),[28,0,0,0,0]);const r=new Uint8Array(e.buffer,8),s=new Uint8Array(t.length+r.length);return s.set(t,0),s.set(r,t.length),s}return null}dispatch(e){let t=new Uint8Array(e);"string"!=typeof e?"object"==typeof e?((t=this.transportDescarmber?this.transportDescarmber.transport(t):t).buffer.fileStart=this.offset,this.offset+=t.byteLength,this.mp4Box.appendBuffer(t.buffer)):this.player.debug.warn(this.TAG_NAME,"dispatch()","data is not object",e):this.player.debug.warn(this.TAG_NAME,"dispatch()","data is string",e)}downloadFmp4File(){const e=new Blob(this.tempFmp4List,{type:'video/mp4; codecs="avc1.640028,mp4a.40.2"'}),t=URL.createObjectURL(e),i=document.createElement("a");i.href=t,i.download=qe()+".fmp4",i.click(),URL.revokeObjectURL(t)}}class Os extends cr{constructor(e){super(e),Ds(this,"LOG_NAME","Mpeg4Loader"),this.player=e,this.player.debug.log(this.LOG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.LOG_NAME,"destroy")}}class Ns{constructor(e){return new(Ns.getLoaderFactory(e))(e)}static getLoaderFactory(e){var t=e._opt.demuxType;return"m7s"===t?Cs:t===u||e.isWebrtcH265()?xs:t===p?Ls:t===f?Rs:t===m?Ms:t===g?Os:Is}}class js extends r{constructor(e){super(),this.player=e,this.hasInit=!1,this.isDecodeFirstIIframe=!!$t(e._opt.checkFirstIFrame),this.isInitInfo=!1,this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.decoder=null,this.isWidthOrHeightChanged=!1,this.initDecoder(),e.debug.log("Webcodecs","init")}destroy(){this.decoder&&($t(this.isDecodeStateClosed())&&this.decoder.close(),this.decoder=null),this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.hasInit=!1,this.isInitInfo=!1,this.isDecodeFirstIIframe=!1,this.isWidthOrHeightChanged=!1,this.off(),this.player.debug.log("Webcodecs","destroy")}initDecoder(){const e=this;this.decoder=new VideoDecoder({output(t){e.handleDecode(t)},error(t){e.handleError(t)}})}handleDecode(e){this.isInitInfo||(this.player.video.updateVideoInfo({width:e.codedWidth,height:e.codedHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0),this.player.isPlayer()?(this.player._times.videoStart||(this.player._times.videoStart=qe(),this.player.handlePlayToRenderTimes()),this.player.video.render({videoFrame:e,ts:e.timestamp}),this.player.handleRender(),this.player.updateStats({dfps:!0,buf:this.player.demux&&this.player.demux.delay||0})):this.player.isPlayback()&&(this.player.updateStats({dfps:!0}),$t(this.player.playbackPause)?(this.player.playback.isUseLocalCalculateTime&&this.player.playback.increaseLocalTimestamp(),this.player.playback.isUseFpsRender?this.player.video.pushData({videoFrame:e,ts:e.timestamp}):this.player.video.render$2({videoFrame:e,ts:e.timestamp})):!this.player.playback.isPlaybackPauseClearCache&&this.player.playback.isCacheBeforeDecodeForFpsRender&&this.player.playback.isUseFpsRender&&this.player.video.pushData({videoFrame:e,ts:e.timestamp}))}handleError(e){this.player.debug.error("Webcodecs","VideoDecoder handleError:",e.code,e);const t=e.toString();-1!==t.indexOf("Unsupported configuration")?this.player.emitError(O.webcodecsUnsupportedConfigurationError,t):-1!==t.indexOf("Decoder failure")&&this.player.emitError(O.webcodecsDecodeError,t)}decodeVideo(e,t,i,r){if(this.hasInit)if(this.isDecodeFirstIIframe||i||this.player.debug.warn("Webcodecs","VideoDecoder isDecodeFirstIIframe false and isIframe is false"),!this.isDecodeFirstIIframe&&i&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe)if(this.isDecodeStateClosed())this.player.debug.warn("Webcodecs","VideoDecoder isDecodeStateClosed true");else{if(i&&0===e[1]){const t=15&e[0];let i={};7==t?i=Vi(e.slice(5)):12==t&&(i=Xi(e));const r=this.player.video.videoInfo;r&&r.width&&r.height&&i&&i.codecWidth&&i.codecHeight&&(i.codecWidth!==r.width||i.codecHeight!==r.height)&&(this.player.debug.warn("Webcodecs",`decodeVideo: video width or height is changed, old width is ${videoWidth}, old height is ${videoHeight}, new width is ${i.codecWidth}, new height is ${i.codecHeight}, and emit change event`),this.isWidthOrHeightChanged=!0,this.player.emitError(O.wcsWidthOrHeightChange))}if(this.isWidthOrHeightChanged)this.player.debug.warn("Webcodecs","decodeVideo: video width or height is changed, and return");else if(Vt(e))this.player.debug.warn("Webcodecs","decodeVideo and payload is video sequence header so drop this frame");else if(e.byteLength<12)this.player.debug.warn("Webcodecs","decodeVideo and payload is too small , payload length is "+e.byteLength);else{let n=!1,o=(new Date).getTime();this.prevTimestamp||(this.prevTimestamp=o,n=!0);var s=o-this.prevTimestamp,a=(s=(((this.decodeDiffTimestamp=s)<5||500(e[t]=`\n \n ${zs[t]?`${zs[t]}`:""}\n`,e),{});function Hs(e,t){let i=!1;return e.forEach(e=>{i||e.startTimestamp<=t&&e.endTimestamp>t&&(i=!0)}),i}function Ws(e,t,i){let r=0\n ${e.title}\n \n `),s[u]);a&&(i+=`\n
${a.title}
\n `),u+=1}t&&a.$playbackTimeListOne.insertAdjacentHTML("beforeend",t),i&&a.$playbackTimeListSecond.insertAdjacentHTML("beforeend",i),(c+=1){const{proxy:i}=e["events"],r=document.createElement("object");r.setAttribute("aria-hidden","true"),r.setAttribute("tabindex",-1),r.type="text/html",r.data="about:blank",Qe(r,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});let s=e.width,a=e.height;const n=ut(()=>{e.width===s&&e.height===a||(s=e.width,a=e.height,e.emit(U.resize),u())},500),o=(i(r,"load",()=>{i(r.contentDocument.defaultView,"resize",()=>{n()})}),e.$container.appendChild(r),e.on(U.destroy,()=>{e.$container.removeChild(r)}),e.on(U.volumechange,()=>{var i,r,s;0===(i=e.volume)?(Qe(t.$volumeOn,"display","none"),Qe(t.$volumeOff,"display","flex"),Qe(t.$volumeHandle,"top","48px")):t.$volumeHandle&&t.$volumePanel&&(r=Xe(t.$volumePanel,"height")||60,s=Xe(t.$volumeHandle,"height"),Qe(t.$volumeHandle,"top",r-(r-s)*i-s+"px"),Qe(t.$volumeOn,"display","flex"),Qe(t.$volumeOff,"display","none")),t.$volumePanelText&&(t.$volumePanelText.innerHTML=parseInt(100*i))}),e.on(U.loading,i=>{Qe(t.$loading,"display",i?"flex":"none"),($t(e._opt.backgroundLoadingShow)&&Kt(i)||$t(i))&&Qe(t.$poster,"display","none"),i&&Qe(t.$playBig,"display","none"),it()||i||(e._opt.useMSE?setTimeout(()=>{o()},500):o())}),()=>{t.$loadingBgImage&&t.$loadingBg&&(t.$loadingBgImage.width=0,t.$loadingBgImage.height=0,t.$loadingBgImage.src="",Qe(t.$loadingBg,"display","none"))}),l=t=>{e.fullscreen&&It(t)!==e.$container||h()},h=i=>{i=vt(i)?i:e.fullscreen,Qe(t.$fullscreenExit,"display",i?"flex":"none"),Qe(t.$fullscreen,"display",i?"none":"flex")},c=()=>e._opt.playType===d&&e._opt.playbackConfig.showControl,u=i=>{it()&&t.$controls&&e._opt.useWebFullScreen&&setTimeout(()=>{if(e.fullscreen){const i=c()?48:38;var r=e.height/2-e.width+i/2,s=e.height/2-i/2;t.$controls.style.transform=`translateX(${-r}px) translateY(-${s}px) rotate(-90deg)`}else t.$controls.style.transform="translateX(0) translateY(0) rotate(0)";i&&i()},10)};try{je.on("change",l),e.events.destroys.push(()=>{je.off("change",l)})}catch(e){}e.on(U.webFullscreen,e=>{it()&&(h(e),u(()=>{f()}))}),e.on(U.recording,()=>{e.playing&&(Qe(t.$record,"display",e.recording?"none":"flex"),Qe(t.$recordStop,"display",e.recording?"flex":"none"),(e._opt.hasControl||e._opt.isShowRecordingUI)&&Qe(t.$recording,"display",e.recording?"flex":"none"))}),e.on(U.recordingTimestamp,e=>{t.$recordingTime&&(t.$recordingTime.innerHTML=Tt(e))}),e.on(U.zooming,()=>{e.playing&&(Qe(t.$zoom,"display",e.zooming?"none":"flex"),Qe(t.$zoomStop,"display",e.zooming?"flex":"none"),(e._opt.hasControl||e._opt.isShowZoomingUI)&&Qe(t.$zoomControls,"display",e.zooming?"flex":"none"))}),e.on(U.playing,e=>{p(e)});const p=i=>{Qe(t.$play,"display",i?"none":"flex"),Qe(t.$playBig,"display",i?"none":"block"),Qe(t.$pause,"display",i?"flex":"none"),Qe(t.$screenshot,"display",i?"flex":"none"),Qe(t.$record,"display",i?"flex":"none"),Qe(t.$qualityMenu,"display",i?"flex":"none"),Qe(t.$volume,"display",i?"flex":"none"),Qe(t.$ptz,"display",i?"flex":"none"),Qe(t.$zoom,"display",i?"flex":"none"),Qe(t.$scaleMenu,"display",i?"flex":"none"),Qe(t.$faceDetect,"display",i?"flex":"none"),Qe(t.$controlHtml,"display",i?"flex":"none"),e.isPlayback()&&Qe(t.$speedMenu,"display",i?"flex":"none"),h(),t.extendBtnList.forEach(e=>{e.$iconWrap&&Qe(e.$iconWrap,"display",i?"flex":"none"),e.$activeIconWrap&&Qe(e.$activeIconWrap,"display","none")}),e._opt.showPerformance?Qe(t.$performanceActive,"display",i?"flex":"none"):Qe(t.$performance,"display",i?"flex":"none"),Qe(t.$poster,"display","none"),Qe(t.$ptzActive,"display","none"),Qe(t.$recordStop,"display","none"),Qe(t.$zoomStop,"display","none"),Qe(t.$faceDetectActive,"display","none"),i||(t.$speed&&(t.$speed.innerHTML="0 KB/s"),Qe(t.$zoomControls,"display","none"),Qe(t.$recording,"display","none"),t.$ptzControl&&t.$ptzControl.classList.remove("jessibuca-ptz-controls-show")),f()},f=(e.on(U.playbackPause,e=>{p(!e)}),e.on(U.kBps,i=>{i=function(e){if(null==e||""===e||0===parseFloat(e)||"NaN"===e)return"0 KB/s";var t=["KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],i=(e=parseFloat(e),Math.floor(Math.log(e)/Math.log(1024)));let r=e/Math.pow(1024,i);return(r=r.toFixed(2))+(t[i]||t[0])}(i),t.kbpsShow=i,e._opt.showBandwidth&&(t.$speed&&(t.$speed.innerHTML=i),f())}),()=>{if(c()){let i=t.controlsInnerRect.width-t.controlsLeftRect.width-t.controlsRightRect.width-t.controlsPlaybackBtnsRect.width;it()&&e.webFullscreen&&(i=t.controlsInnerRect.height-t.controlsLeftRect.height-t.controlsRightRect.height-t.controlsPlaybackBtnsRect.height),t.$playbackTimeInner.style.width=i+"px"}});if(c()){const i=()=>{if(c()){let r=0;var i=e.playback&&e.playback.playingTimestamp;if(i){const s=new Date(i),a=s.getHours(),n=s.getMinutes(),o=s.getSeconds();e.playback.is60Min?r=60*a+n:e.playback.is30Min?r=2*(60*a+n)+parseInt(o/30,10):e.playback.is10Min?r=6*(60*a+n)+parseInt(o/10,10):e.playback.is5Min?r=12*(60*a+n)+parseInt(o/5,10):e.playback.is1Min&&(r=60*(60*a+n)+parseInt(o,10)),t.$playbackCurrentTime.style.left=r+"px"}}},r=e=>{t.$playbackNarrow.classList.remove("disabled"),t.$playbackExpand.classList.remove("disabled"),e===ie&&t.$playbackNarrow.classList.add("disabled"),e===se&&t.$playbackExpand.classList.add("disabled")},s=()=>{var e=t.$playbackCurrentTime.style.left;let i=parseInt(e,10);e=t.controlsPlaybackTimeInner.width,i=0{t.$playbackCurrentTimeText&&(t.$playbackCurrentTimeText.innerText=lt(e,"{h}:{i}:{s}")),i()}),e.on(U.playbackPrecision,(e,a)=>{t.$playbackTimeScroll.classList.remove(ae.oneHour,ae.halfHour,ae.fiveMin,ae.tenMin),t.$playbackTimeScroll.classList.add(ae[e]),t.rafId&&(window.cancelAnimationFrame(t.rafId),t.rafId=null),t.changePercisitionInterval&&(clearTimeout(t.changePercisitionInterval),t.changePercisitionInterval=null),t.$playbackTimeListOne.innerHTML="",t.$playbackTimeListSecond.innerHTML="",t.changePercisitionInterval=setTimeout(()=>{switch(t.$playbackTimeListOne.innerHTML="",t.$playbackTimeListSecond.innerHTML="",e){case ie:Vs(a,t);break;case re:o=t,Ws(function(e){let t=0{f()}),f()}if(e._opt.operateBtns.quality&&0{i(e)});const i=e=>{t.$qualityText.innerText=e,t.$qualityMenuItems.forEach(t=>{var i=t.dataset.quality;t.classList.remove("jessibuca-quality-menu-item-active"),i===e&&t.classList.add("jessibuca-quality-menu-item-active")})};{const i=e._opt.qualityConfig||[];let r="";i.forEach(e=>{r+=`\n
${e}
\n `}),r&&(t.$qualityMenuList.insertAdjacentHTML("beforeend",r),Object.defineProperty(t,"$qualityMenuItems",{value:e.$container.querySelectorAll(".jessibuca-quality-menu-item")}),setTimeout(()=>{var t=i[0];e.streamQuality=t},0))}e.streamQuality&&i(e.streamQuality)}if(e._opt.operateBtns.scale&&0{i(e)});const i=i=>{var r=e._opt.scaleConfig[i];t.$scaleText.innerText=r,t.$scaleMenuItems.forEach(e=>{var t=e.dataset.scale;e.classList.remove("jessibuca-scale-menu-item-active"),ht(t)===ht(i)&&e.classList.add("jessibuca-scale-menu-item-active")})};{const i=e._opt.scaleConfig||[];let r="";i.forEach((e,t)=>{r+=`\n
${e}
\n `}),r&&(t.$scaleMenuList.insertAdjacentHTML("beforeend",r),Object.defineProperty(t,"$scaleMenuItems",{value:e.$container.querySelectorAll(".jessibuca-scale-menu-item")}))}i(e.scaleType)}if(e.isPlayback()&&e._opt.playbackConfig.showRateBtn&&0{i(e)});const i=i=>{var r=e._opt.playbackConfig.rateConfig.find(e=>ht(e.value)===ht(i));r&&(t.$speedText.innerText=r.label,t.$speedMenuItems.forEach(e=>{var t=e.dataset.speed;e.classList.remove("jessibuca-speed-menu-item-active"),ht(t)===ht(i)&&e.classList.add("jessibuca-speed-menu-item-active")}))};{const i=e._opt.playbackConfig.rateConfig;let r="";i.forEach((e,t)=>{r+=`\n
${e.label}
\n `}),r&&(t.$speedMenuList.insertAdjacentHTML("beforeend",r),Object.defineProperty(t,"$speedMenuItems",{value:e.$container.querySelectorAll(".jessibuca-speed-menu-item")}))}const r=e.playback?e.playback.playbackRate:1;i(r)}e.on(U.stats,(function(){var i,r,s,a,n,o,l,d,h,c,u,p,f,m,g,b,v,_,w=0\n 版本 "7-18-2023"\n \n ${_?`\n
\n 内存大小限制 ${pt(_.jsHeapSizeLimit)}\n
\n
\n 可使用的内存 ${pt(_.totalJSHeapSize)}\n
\n
\n 已使用的内存 ${pt(_.usedJSHeapSize)}\n
\n `:""}\n ${_&&_.usedJSHeapSize>_.totalJSHeapSize?'\n
\n 可能内存泄漏 是}\n
\n ':""}\n
\n 播放模式 ${m}\n
\n ${e.isPlayback()?`\n
\n 播放倍率 ${e.playback.rate}倍\n
\n
\n 播放模式 ${e.playback.isUseFpsRender?"固定FPS":"动态FPS"}\n
\n ${e.playback.isUseFpsRender?`\n
\n 固定FPS ${e.video.getStreamFps()}\n
\n `:""}\n `:""}\n
\n 解封装模式 ${y[l]}\n
\n
\n 解码模式 ${o}\n
\n
\n 渲染组件 ${a}\n
\n ${a===A?`\n
\n 渲染引擎 ${n}\n
\n `:""}\n
\n 网络请求组件 ${d}\n
\n
\n 视频格式 ${i.encType||"-"}\n
\n
\n 视频(宽x高) ${i.width||"-"}x${i.height||"-"}\n
\n ${e.isPlayer()?`\n
\n 视频GOP(ms) ${u||"-"}\n
\n `:""}\n
\n 音频格式 ${K[r.encType]||"-"}\n
\n
\n 音频引擎 ${h||"-"}\n
\n
\n 音频通道 ${r.channels||"-"}\n
\n
\n 音频采样率 ${r.sampleRate||"-"}\n
\n ${e.isPlayer()?`\n
\n 播放器初始化(ms) ${s.playTimestamp}\n
\n
\n 开始请求地址(ms) ${s.streamTimestamp}\n
\n
\n 请求响应(ms) ${s.streamResponseTimestamp}\n
\n
\n 解封装(ms) ${s.demuxTimestamp}\n
\n
\n 解码(ms) ${s.decodeTimestamp}\n
\n
\n 页面开始渲染(ms) ${s.videoTimestamp}\n
\n
\n 初始化到页面渲染(ms) ${s.allTimestamp}\n
\n ${e.recording?`\n
\n 视频录制时间 ${p}\n
\n
\n 视频录制大小 ${f}\n
\n `:""}\n `:""}\n
\n 音频码率(bit) ${w.abps}\n
\n
\n 视频码率(bit) ${w.vbps}\n
\n
\n 视频帧率(fps) ${w.fps}\n
\n
\n 视频峰值帧率(fps) ${w.maxFps}\n
\n
\n 解码帧率(fps) ${w.dfps}\n
\n
\n 音频缓冲帧 ${w.audioBuffer}\n
\n
\n 音频缓冲时长(ms) ${w.audioBufferDelayTs}\n
\n ${e.isPlayer()?`\n
\n 视频待解码帧 ${w.demuxBuffer}\n
\n `:`\n
\n 缓存时长(ms) ${w.playbackCacheDataDuration}\n
\n
\n 视频待渲染帧 ${w.playbackVideoBuffer}\n
\n
\n 视频待解码帧 ${w.demuxBuffer}\n
\n
\n 音频待解码帧 ${w.audioDemuxBuffer}\n
\n `}\n
\n 待解封装数据(byte) ${w.flvBuffer}\n
\n ${e._opt.useMSE?`\n
\n MSE缓冲时长(ms) ${w.mseDelay}\n
\n
\n MSE解码间隔(ms) ${w.mseDecodeDiffTimes}\n
\n
\n MSE解码时间(ms) ${w.mseTs}\n
\n
\n MSE播放模式 ${1\n
\n `:""}\n ${e._opt.useWCS?`\n
\n WCS解码间隔(ms) ${w.wcsDecodeDiffTimes}\n
\n `:""}\n ${e.isOldHls()?`
\n HLS缓冲时长(ms) ${w.hlsDelay}\n
\n
\n HLS播放模式 ${1\n
\n `:""}\n ${e.isUseHls265()?`
\n HLS缓冲时长(ms) ${w.hlsDelay}\n
\n
\n HLS待解码帧 ${w.hlsDemuxLength}\n
\n
\n HLS待解码视频帧 ${w.hlsDemuxVideoLength}\n
\n
\n HLS待解码音频帧 ${w.hlsDemuxAudioLength}\n
\n `:""}\n ${e.isPlayer()&&v?`\n
\n 已渲染帧 ${v.renderedVideoFrames}\n
\n
\n 已丢弃帧 ${v.droppedVideoFrames}\n
\n `:""}\n ${e.isPlayer()?`\n
\n 网络延迟(ms) ${w.netBuf}\n
\n
\n 缓冲时长(ms) ${w.buf}\n
\n
\n 最新缓冲时长(ms) ${w.pushLatestDelay}\n
\n `:""}\n
\n 视频显示时间(ms) ${w.ts}\n
\n ${e._opt.hasAudio&&e.isAudioNotMute()?`\n
\n 音频显示时间(ms) ${w.audioTs}\n
\n ${e._opt.hasVideo?`\n
\n 音视频同步时间戳(ms) ${w.ts-w.audioTs}\n
\n `:""}\n
\n 音频播放模式 ${c?"加速":"正常"}\n
\n `:""}\n
\n 视频解码时间(ms) ${w.dts}\n
\n ${e.isPlayer()?`\n
\n 解码前-解码后延迟(ms) ${w.delayTs}\n
\n
\n 总延迟(网络+解码)(ms) ${w.totalDelayTs}\n
\n `:""}\n ${e.isPlayer()&&w.isStreamTsMoreThanLocal?'
\n 是否超过一倍率推流 是\n
\n ':""}\n ${e.isPlayer()?`\n
\n 是否在丢帧 ${g}\n
\n `:""}\n
\n 网速 ${b}\n
\n
\n 播放时长(s) ${Tt(w.pTs)}\n
\n
\n `,t.$performancePanel.insertAdjacentHTML("beforeend",_)):(t.$performancePanel.innerHTML="",Qe(t.$performancePanel,"display","none"))})),e.on(U.togglePerformancePanel,e=>{Qe(t.$performance,"display",e?"none":"flex"),Qe(t.$performanceActive,"display",e?"flex":"none")}),e.on(U.faceDetectActive,e=>{Qe(t.$faceDetect,"display",e?"none":"flex"),Qe(t.$faceDetectActive,"display",e?"flex":"none")})};function $s(e,t){var i,r;t=(t=void 0===t?{}:t).insertAt;e&&"undefined"!=typeof document&&(i=document.head||document.getElementsByTagName("head")[0],(r=document.createElement("style")).type="text/css","top"===t&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e)))}function Ys(e,t){t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function qs(e,t,i){e.style[t]=i}function Js(e,t){return e.composedPath&&-1\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
00:00:00
\n
\n
\n
\n
\n
\n
${Gs.narrow}
\n
${Gs.expand}
\n
\n \n `,l.$container.insertAdjacentHTML("beforeend",`\n ${c.background?`
`:""}\n
\n \n
\n ${c.loadingIcon?`\n
\n ${Gs.loading}\n
${c.loadingText}
\n
\n `:""}\n ${c.hasControl&&u.play?'
':""}\n ${c.hasControl&&u.ptz?`\n
\n
\n
\n
\n
\n
\n ${c.ptzMoreArrowShow?'\n
\n
\n
\n
\n ':""}\n
\n
\n ${c.ptzZoomShow?'\n
\n
\n \n \n 缩放+\n \n
\n
\n \n \n 缩放-\n \n
\n
\n ':""}\n ${c.ptzApertureShow?'\n
\n
\n \n \n 光圈+\n \n
\n
\n \n \n 光圈-\n \n
\n
\n ':""}\n ${c.ptzFocusShow?'\n
\n
\n \n \n 聚焦+\n \n
\n
\n \n \n 聚焦-\n \n
\n
\n ':""}\n
\n\n
\n `:""}\n ${c.hasVideo?`\n
\n
${Gs.narrow}
\n
电子放大
\n
${Gs.expand}
\n
${Gs.zoomStop}
\n
\n
\n
\n
00:00:00
\n
${Gs.recordStop}
\n
\n `:""}\n\n ${c.hasControl?`\n
\n
\n
\n ${c.showBandwidth?'
':""}\n
${c.controlHtml}
\n
\n ${c.playType===d&&c.playbackConfig.showControl?p:""}\n\n
\n ${c.playType===d&&c.playbackConfig.showRateBtn?'\n
\n
\n
\n
\n
\n
\n ':""}\n ${u.close?`
${Gs.close}
`:""}\n ${u.performance?`
${Gs.performance}
${Gs.performanceActive}
`:""}\n ${u.aiFace?`
${Gs.face}
${Gs.faceActive}
`:""}\n ${u.quality?'\n
\n
\n
\n
\n
\n
\n ':""}\n ${u.scale?'\n
\n
\n
\n
\n
\n
\n ':""}\n ${u.audio?`\n
\n
\n ${Gs.audio}\n ${Gs.mute}\n
\n
\n
\n
\n
\n
\n
\n
\n `:""}\n ${u.play?`
${Gs.play}
${Gs.pause}
`:""}\n ${u.screenshot?`
${Gs.screenshot}
`:""}\n ${u.record?`
${Gs.record}
${Gs.recordStop}
`:""}\n ${u.ptz?`
${Gs.ptz}
${Gs.ptzActive}
`:""}\n ${u.zoom?`
${Gs.zoom}
${Gs.zoomStop}
`:""}\n ${u.fullscreen?`
${Gs.fullscreen}
${Gs.fullscreenExit}
`:""}\n
\n
\n
\n `:""}\n
\n
\n `),Object.defineProperty(h,"$poster",{value:l.$container.querySelector(".jessibuca-poster")}),Object.defineProperty(h,"$loadingBg",{value:l.$container.querySelector(".jessibuca-loading-bg")}),Object.defineProperty(h,"$loadingBgImage",{value:l.$container.querySelector(".jessibuca-loading-bg-image")}),Object.defineProperty(h,"$loading",{value:l.$container.querySelector(".jessibuca-loading")}),Object.defineProperty(h,"$loadingText",{value:l.$container.querySelector(".jessibuca-loading-text")}),Object.defineProperty(h,"$play",{value:l.$container.querySelector(".jessibuca-play")}),Object.defineProperty(h,"$playBig",{value:l.$container.querySelector(".jessibuca-play-big")}),Object.defineProperty(h,"$recording",{value:l.$container.querySelector(".jessibuca-recording")}),Object.defineProperty(h,"$recordingTime",{value:l.$container.querySelector(".jessibuca-recording-time")}),Object.defineProperty(h,"$recordingStop",{value:l.$container.querySelector(".jessibuca-recording-stop")}),Object.defineProperty(h,"$pause",{value:l.$container.querySelector(".jessibuca-pause")}),Object.defineProperty(h,"$controls",{value:l.$container.querySelector(".jessibuca-controls")}),Object.defineProperty(h,"$controlsInner",{value:l.$container.querySelector(".jessibuca-controls-bottom")}),Object.defineProperty(h,"$controlsLeft",{value:l.$container.querySelector(".jessibuca-controls-left")}),Object.defineProperty(h,"$controlsRight",{value:l.$container.querySelector(".jessibuca-controls-right")}),Object.defineProperty(h,"$volume",{value:l.$container.querySelector(".jessibuca-volume")}),Object.defineProperty(h,"$volumePanelWrap",{value:l.$container.querySelector(".jessibuca-volume-panel-wrap")}),Object.defineProperty(h,"$volumePanelText",{value:l.$container.querySelector(".jessibuca-volume-panel-text")}),Object.defineProperty(h,"$volumePanel",{value:l.$container.querySelector(".jessibuca-volume-panel")}),Object.defineProperty(h,"$volumeHandle",{value:l.$container.querySelector(".jessibuca-volume-panel-handle")}),Object.defineProperty(h,"$volumeOn",{value:l.$container.querySelector(".jessibuca-icon-audio")}),Object.defineProperty(h,"$volumeOff",{value:l.$container.querySelector(".jessibuca-icon-mute")}),Object.defineProperty(h,"$fullscreen",{value:l.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(h,"$fullscreenExit",{value:l.$container.querySelector(".jessibuca-fullscreen-exit")}),Object.defineProperty(h,"$record",{value:l.$container.querySelector(".jessibuca-record")}),Object.defineProperty(h,"$recordStop",{value:l.$container.querySelector(".jessibuca-record-stop")}),Object.defineProperty(h,"$screenshot",{value:l.$container.querySelector(".jessibuca-screenshot")}),Object.defineProperty(h,"$speed",{value:l.$container.querySelector(".jessibuca-speed")}),Object.defineProperty(h,"$controlHtml",{value:l.$container.querySelector(".jessibuca-controls-item-html")}),Object.defineProperty(h,"$playbackTime",{value:l.$container.querySelector(".jessibuca-controls-playback-time")}),Object.defineProperty(h,"$playbackTimeInner",{value:l.$container.querySelector(".jessibuca-controls-playback-time-inner")}),Object.defineProperty(h,"$playbackTimeScroll",{value:l.$container.querySelector(".jessibuca-controls-playback-time-scroll")}),Object.defineProperty(h,"$playbackTimeList",{value:l.$container.querySelector(".jessibuca-controls-playback-time-list")}),Object.defineProperty(h,"$playbackTimeListOne",{value:l.$container.querySelector(".jessibuca-playback-time-one-wrap")}),Object.defineProperty(h,"$playbackTimeListSecond",{value:l.$container.querySelector(".jessibuca-playback-time-second-wrap")}),Object.defineProperty(h,"$playbackCurrentTime",{value:l.$container.querySelector(".jessibuca-controls-playback-current-time")}),Object.defineProperty(h,"$playbackCurrentTimeText",{value:l.$container.querySelector(".jessibuca-controls-playback-current-time-text")}),Object.defineProperty(h,"$controlsPlaybackBtns",{value:l.$container.querySelector(".jessibuca-controls-playback-btns")}),Object.defineProperty(h,"$playbackNarrow",{value:l.$container.querySelector(".jessibuca-playback-narrow")}),Object.defineProperty(h,"$playbackExpand",{value:l.$container.querySelector(".jessibuca-playback-expand")}),Object.defineProperty(h,"$ptz",{value:l.$container.querySelector(".jessibuca-ptz")}),Object.defineProperty(h,"$ptzActive",{value:l.$container.querySelector(".jessibuca-ptz-active")}),Object.defineProperty(h,"$ptzControl",{value:l.$container.querySelector(".jessibuca-ptz-controls")}),Object.defineProperty(h,"$ptzBgActive",{value:l.$container.querySelector(".jessibuca-ptz-bg-active")}),Object.defineProperty(h,"$ptzControlCircular",{value:l.$container.querySelector(".jessibuca-ptz-control")}),Object.defineProperty(h,"$ptzArrows",{value:l.$container.querySelectorAll(".jessibuca-ptz-arrow")}),Object.defineProperty(h,"$ptzExpand",{value:l.$container.querySelector(".jessibuca-ptz-expand")}),Object.defineProperty(h,"$ptzNarrow",{value:l.$container.querySelector(".jessibuca-ptz-narrow")}),Object.defineProperty(h,"$ptzApertureFar",{value:l.$container.querySelector(".jessibuca-ptz-aperture-far")}),Object.defineProperty(h,"$ptzApertureNear",{value:l.$container.querySelector(".jessibuca-ptz-aperture-near")}),Object.defineProperty(h,"$ptzFocusFar",{value:l.$container.querySelector(".jessibuca-ptz-focus-far")}),Object.defineProperty(h,"$ptzFocusNear",{value:l.$container.querySelector(".jessibuca-ptz-focus-near")}),Object.defineProperty(h,"$qualityText",{value:l.$container.querySelector(".jessibuca-quality-icon-text")}),Object.defineProperty(h,"$qualityMenu",{value:l.$container.querySelector(".jessibuca-quality-menu")}),Object.defineProperty(h,"$qualityMenuList",{value:l.$container.querySelector(".jessibuca-quality-menu-list")}),Object.defineProperty(h,"$scaleText",{value:l.$container.querySelector(".jessibuca-scale-icon-text")}),Object.defineProperty(h,"$scaleMenu",{value:l.$container.querySelector(".jessibuca-scale-menu")}),Object.defineProperty(h,"$scaleMenuList",{value:l.$container.querySelector(".jessibuca-scale-menu-list")}),Object.defineProperty(h,"$zoom",{value:l.$container.querySelector(".jessibuca-zoom")}),Object.defineProperty(h,"$zoomStop",{value:l.$container.querySelector(".jessibuca-zoom-stop")}),Object.defineProperty(h,"$zoomNarrow",{value:l.$container.querySelector(".jessibuca-zoom-narrow")}),Object.defineProperty(h,"$zoomExpand",{value:l.$container.querySelector(".jessibuca-zoom-expand")}),Object.defineProperty(h,"$zoomStop2",{value:l.$container.querySelector(".jessibuca-zoom-stop2")}),Object.defineProperty(h,"$close",{value:l.$container.querySelector(".jessibuca-close")}),Object.defineProperty(h,"$zoomControls",{value:l.$container.querySelector(".jessibuca-zoom-controls")}),Object.defineProperty(h,"$performancePanel",{value:l.$container.querySelector(".jessibuca-performance-panel")}),Object.defineProperty(h,"$performance",{value:l.$container.querySelector(".jessibuca-performance")}),Object.defineProperty(h,"$performanceActive",{value:l.$container.querySelector(".jessibuca-performance-active")}),Object.defineProperty(h,"$faceDetect",{value:l.$container.querySelector(".jessibuca-face")}),Object.defineProperty(h,"$faceDetectActive",{value:l.$container.querySelector(".jessibuca-face-active")}),Object.defineProperty(h,"$contextmenus",{value:l.$container.querySelector(".jessibuca-contextmenus")}),Object.defineProperty(h,"$speedText",{value:l.$container.querySelector(".jessibuca-speed-icon-text")}),Object.defineProperty(h,"$speedMenu",{value:l.$container.querySelector(".jessibuca-speed-menu")}),Object.defineProperty(h,"$speedMenuList",{value:l.$container.querySelector(".jessibuca-speed-menu-list")}),0{this.addExtendBtn(e)}),o=this,Object.defineProperty(o,"controlsRect",{get:()=>o.$controls.getBoundingClientRect()}),Object.defineProperty(o,"controlsInnerRect",{get:()=>o.$controlsInner.getBoundingClientRect()}),Object.defineProperty(o,"controlsLeftRect",{get:()=>o.$controlsLeft.getBoundingClientRect()}),Object.defineProperty(o,"controlsRightRect",{get:()=>o.$controlsRight.getBoundingClientRect()}),Object.defineProperty(o,"controlsPlaybackTimeInner",{get:()=>o.$playbackTimeInner&&o.$playbackTimeInner.getBoundingClientRect()||{}}),Object.defineProperty(o,"controlsPlaybackBtnsRect",{get:()=>o.$controlsPlaybackBtns&&o.$controlsPlaybackBtns.getBoundingClientRect()||{width:0}}),Ks(e,this);{var t=e,i=this;const s=t["events"]["proxy"],a=t._opt,n=a.operateBtns;function r(e){var{bottom:t,height:r}=i.$volumePanel.getBoundingClientRect(),s=i.$volumeHandle.getBoundingClientRect()["height"];return Je(t-e.y-s/2,0,r-s/2)/(r-s)}if(s(window,["click","contextmenu"],e=>{-1{setTimeout(()=>{t.resize()},300)}),s(i.$controls,"click",e=>{e.stopPropagation()}),n.play&&(s(i.$pause,"click",e=>{a.playType===d&&a.playbackConfig.uiUsePlaybackPause?t.playbackPause=!0:Pt(n.pauseFn)?n.pauseFn():t.pauseForControl()}),s(i.$play,"click",e=>{a.playType===d&&t.playbackPause?t.playbackPause=!1:Pt(n.playFn)?n.playFn():t.playForControl().then(()=>{t.resumeAudioAfterPause()})})),s(i.$playBig,"click",e=>{a.playType===d&&t.playbackPause?t.playbackPause=!1:Pt(n.playFn)?n.playFn():t.playForControl().then(()=>{t.resumeAudioAfterPause()})}),n.screenshot&&s(i.$screenshot,"click",e=>{e.stopPropagation(),Pt(n.screenshotFn)?n.screenshotFn():t.video.screenshot()}),n.audio&&(s(i.$volume,"mouseover",()=>{i.$volumePanelWrap.classList.add("jessibuca-volume-panel-wrap-show")}),s(i.$volume,"mouseout",()=>{i.$volumePanelWrap.classList.remove("jessibuca-volume-panel-wrap-show")}),s(i.$volumeOn,"click",e=>{e.stopPropagation(),Qe(i.$volumeOn,"display","none"),Qe(i.$volumeOff,"display","block"),e=t.volume,t.volume=0,t._lastVolume=e}),s(i.$volumeOff,"click",e=>{e.stopPropagation(),Qe(i.$volumeOn,"display","block"),Qe(i.$volumeOff,"display","none"),t.volume=t.lastVolume||.5}),s(i.$volumePanel,"click",e=>{e.stopPropagation(),t.volume=r(e)}),s(i.$volumeHandle,"mousedown",()=>{i.isVolumeDroging=!0}),s(i.$volumeHandle,"mousemove",e=>{i.isVolumeDroging&&(t.volume=r(e))}),s(document,"mouseup",()=>{i.isVolumeDroging&&(i.isVolumeDroging=!1)})),n.record&&(s(i.$record,"click",e=>{e.stopPropagation(),Pt(n.recordFn)?n.recordFn():t.recording=!0}),s(i.$recordStop,"click",e=>{e.stopPropagation(),Pt(n.recordStopFn)?n.recordStopFn():t.recording=!1})),s(i.$recordingStop,"click",e=>{e.stopPropagation(),Pt(n.recordStopFn)?n.recordStopFn():t.recording=!1}),n.fullscreen&&(s(i.$fullscreen,"click",e=>{e.stopPropagation(),Pt(n.fullscreenFn)?n.fullscreenFn():t.fullscreen=!0}),s(i.$fullscreenExit,"click",e=>{e.stopPropagation(),Pt(n.fullscreenExitFn)?n.fullscreenExitFn():t.fullscreen=!1})),n.ptz){if(s(i.$ptz,"click",e=>{e.stopPropagation(),Qe(i.$ptzActive,"display","flex"),Qe(i.$ptz,"display","none"),i.$ptzControl.classList.add("jessibuca-ptz-controls-show")}),s(i.$ptzActive,"click",e=>{e.stopPropagation(),Qe(i.$ptz,"display","flex"),Qe(i.$ptzActive,"display","none"),i.$ptzControl.classList.remove("jessibuca-ptz-controls-show")}),i.$ptzArrows.forEach(e=>{if(a.ptzClickType===w)s(e,"click",e=>{e.stopPropagation(),e=e.currentTarget.dataset.arrow,i.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-show"),i.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-"+e),i.$ptzControlCircular.classList.add("jessibuca-ptz-control-"+e),t.emit(U.ptz,Yt(e)),setTimeout(()=>{i.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-show"),oe.forEach(e=>{i.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-"+e),i.$ptzControlCircular.classList.remove("jessibuca-ptz-control-"+e)}),t.emit(U.ptz,le)},1e3*a.ptzStopEmitDelay)});else if(a.ptzClickType===S){let r=!1;s(e,"mousedown",e=>{e.stopPropagation(),r=!0,e=e.currentTarget.dataset.arrow,i.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-show"),i.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-"+e),i.$ptzControlCircular.classList.add("jessibuca-ptz-control-"+e),t.emit(U.ptz,Yt(e))});const a=()=>{r=!1,i.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-show"),oe.forEach(e=>{i.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-"+e),i.$ptzControlCircular.classList.remove("jessibuca-ptz-control-"+e)}),t.emit(U.ptz,le)};s(e,"mouseup",e=>{e.stopPropagation(),r&&a()}),s(window,"mouseup",e=>{e.stopPropagation(),r&&a()})}}),a.ptzZoomShow)if(a.ptzClickType===w)s(i.$ptzExpand,"click",e=>{e.stopPropagation(),t.emit(U.ptz,he),setTimeout(()=>{t.emit(U.ptz,le)},1e3*a.ptzStopEmitDelay)}),s(i.$ptzNarrow,"click",e=>{e.stopPropagation(),t.emit(U.ptz,ce),setTimeout(()=>{t.emit(U.ptz,le)},1e3*a.ptzStopEmitDelay)});else if(a.ptzClickType===S){let e=!1,r=!1;s(i.$ptzExpand,"mousedown",i=>{i.stopPropagation(),e=!0,t.emit(U.ptz,he)}),s(i.$ptzNarrow,"mousedown",e=>{e.stopPropagation(),r=!0,t.emit(U.ptz,ce)});const a=()=>{e=!1,r=!1,t.emit(U.ptz,le)};s(i.$ptzExpand,"mouseup",t=>{t.stopPropagation(),e&&a()}),s(i.$ptzNarrow,"mouseup",e=>{e.stopPropagation(),r&&a()}),s(window,"mouseup",t=>{t.stopPropagation(),(e||r)&&a()})}if(a.ptzApertureShow)if(a.ptzClickType===w)s(i.$ptzApertureFar,"click",e=>{e.stopPropagation(),t.emit(U.ptz,ue),setTimeout(()=>{t.emit(U.ptz,de)},1e3*a.ptzStopEmitDelay)}),s(i.$ptzApertureNear,"click",e=>{e.stopPropagation(),t.emit(U.ptz,pe),setTimeout(()=>{t.emit(U.ptz,de)},1e3*a.ptzStopEmitDelay)});else if(a.ptzClickType===S){let e=!1,r=!1;s(i.$ptzApertureFar,"mousedown",i=>{i.stopPropagation(),e=!0,t.emit(U.ptz,ue)}),s(i.$ptzApertureNear,"mousedown",e=>{e.stopPropagation(),r=!0,t.emit(U.ptz,pe)});const a=()=>{e=!1,r=!1,t.emit(U.ptz,de)};s(i.$ptzApertureFar,"mouseup",t=>{t.stopPropagation(),e&&a()}),s(i.$ptzApertureNear,"mouseup",e=>{e.stopPropagation(),r&&a()}),s(window,"mouseup",t=>{t.stopPropagation(),(e||r)&&a()})}if(a.ptzFocusShow)if(a.ptzClickType===w)s(i.$ptzFocusFar,"click",e=>{e.stopPropagation(),t.emit(U.ptz,fe),setTimeout(()=>{t.emit(U.ptz,de)},1e3*a.ptzStopEmitDelay)}),s(i.$ptzFocusNear,"click",e=>{e.stopPropagation(),t.emit(U.ptz,me),setTimeout(()=>{t.emit(U.ptz,de)},1e3*a.ptzStopEmitDelay)});else if(a.ptzClickType===S){let e=!1,r=!1;s(i.$ptzFocusFar,"mousedown",i=>{i.stopPropagation(),e=!0,t.emit(U.ptz,fe)}),s(i.$ptzFocusNear,"mousedown",e=>{e.stopPropagation(),r=!0,t.emit(U.ptz,me)});const a=()=>{e=!1,r=!1,t.emit(U.ptz,de)};s(i.$ptzFocusFar,"mouseup",t=>{t.stopPropagation(),e&&a()}),s(i.$ptzFocusNear,"mouseup",e=>{e.stopPropagation(),r&&a()}),s(window,"mouseup",t=>{t.stopPropagation(),(e||r)&&a()})}}if(n.performance&&(s(i.$performance,"click",e=>{e.stopPropagation(),t.togglePerformancePanel(!0)}),s(i.$performanceActive,"click",e=>{e.stopPropagation(),t.togglePerformancePanel(!1)})),n.aiFace&&(s(i.$faceDetect,"click",e=>{e.stopPropagation(),t.faceDetect(!0)}),s(i.$faceDetectActive,"click",e=>{e.stopPropagation(),t.faceDetect(!1)})),t._opt.hasControl&&t._opt.controlAutoHide){s(t.$container,"mouseover",()=>{t.fullscreen||(Qe(i.$controls,"display","block"),r())}),s(t.$container,"mousemove",()=>{t.$container&&i.$controls&&(t.fullscreen,"none"===i.$controls.style.display&&(Qe(i.$controls,"display","block"),r()))}),s(t.$container,"mouseout",()=>{a(),Qe(i.$controls,"display","none")});let e=null;const r=()=>{a(),e=setTimeout(()=>{Qe(i.$controls,"display","none")},5e3)},a=()=>{e&&(clearTimeout(e),e=null)}}t._opt.playType===d&&(s(i.$playbackNarrow,"click",e=>{e.stopPropagation(),t.playback&&t.playback.narrowPrecision()}),s(i.$playbackExpand,"click",e=>{e.stopPropagation(),t.playback&&t.playback.expandPrecision()}),s(i.$playbackTimeList,"click",e=>{const i=It(e);i.matches("div.jessibuca-playback-time-minute-one")&&t.playback&&t.playback.seek(i.dataset)}),t._opt.playbackConfig.showRateBtn&&(s(i.$speedMenu,"mouseover",()=>{i.$speedMenuList.classList.add("jessibuca-speed-menu-shown")}),s(i.$speedMenu,"mouseout",()=>{i.$speedMenuList.classList.remove("jessibuca-speed-menu-shown")}),s(i.$speedMenuList,"click",e=>{const i=It(e);if(i.matches("div.jessibuca-speed-menu-item")){const e=i.dataset;t.emit(U.playbackPreRateChange,e.speed)}})),t._opt.playbackConfig.supportWheel&&s(i.$playbackTimeInner,"wheel",e=>{e.preventDefault(),0<(e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3)?t.playback&&t.playback.expandPrecision():t.playback&&t.playback.narrowPrecision()})),n.quality&&(s(i.$qualityMenu,"mouseover",()=>{i.$qualityMenuList.classList.add("jessibuca-quality-menu-shown")}),s(i.$qualityMenu,"mouseout",()=>{i.$qualityMenuList.classList.remove("jessibuca-quality-menu-shown")}),s(i.$qualityMenuList,"click",e=>{const i=It(e);if(i.matches("div.jessibuca-quality-menu-item")){const e=i.dataset;t.streamQuality=e.quality}})),n.scale&&(s(i.$scaleMenu,"mouseover",()=>{i.$scaleMenuList.classList.add("jessibuca-scale-menu-shown")}),s(i.$scaleMenu,"mouseout",()=>{i.$scaleMenuList.classList.remove("jessibuca-scale-menu-shown")}),s(i.$scaleMenuList,"click",e=>{const i=It(e);if(i.matches("div.jessibuca-scale-menu-item")){const e=i.dataset;t.setScaleMode(e.scale)}})),n.zoom&&(s(i.$zoom,"click",e=>{e.stopPropagation(),t.zooming=!0}),s(i.$zoomStop,"click",e=>{e.stopPropagation(),t.zooming=!1})),s(i.$zoomExpand,"click",e=>{e.stopPropagation(),t.zoom&&t.zoom.expandPrecision()}),s(i.$zoomNarrow,"click",e=>{e.stopPropagation(),t.zoom&&t.zoom.narrowPrecision()}),s(i.$zoomStop2,"click",e=>{e.stopPropagation(),t.zooming=!1}),n.close&&s(i.$close,"click",e=>{e.stopPropagation(),t.doDestroy()})}if(e._opt.hotKey){var s=e,a=this;const t=s["events"]["proxy"],i={};function n(e,t){i[e]?i[e].push(t):i[e]=[t]}n(27,()=>{s.fullscreen&&(s.fullscreen=!1)}),n(38,()=>{s.volume+=.05}),n(40,()=>{s.volume-=.05}),t(window,"keydown",e=>{if(a.isFocus){const t=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==r&&"true"!==r){const t=i[e.keyCode];t&&(e.preventDefault(),t.forEach(e=>e()))}}})}var o,l,h,c,u,p;this.btnIndex=0,this.kbpsShow="0 KB/s",this.player.debug.log("Control","init")}destroy(){var e;this.$performancePanel&&(this.$performancePanel.innerHTML="",Qs(this.$performancePanel)||(e=this.player.$container.querySelector(".jessibuca-performance-panel"))&&this.player.$container&&this.player.$container.removeChild(e)),this.$poster&&!Qs(this.$poster)&&(e=this.player.$container.querySelector(".jessibuca-poster"))&&this.player.$container&&this.player.$container.removeChild(e),this.$loading&&!Qs(this.$loading)&&(e=this.player.$container.querySelector(".jessibuca-loading"))&&this.player.$container&&this.player.$container.removeChild(e),this.$loadingBg&&!Qs(this.$loadingBg)&&(e=this.player.$container.querySelector(".jessibuca-loading-bg"))&&this.player.$container&&this.player.$container.removeChild(e),this.$controls&&!Qs(this.$controls)&&(e=this.player.$container.querySelector(".jessibuca-controls"))&&this.player.$container&&this.player.$container.removeChild(e),this.$playBig&&!Qs(this.$playBig)&&(e=this.player.$container.querySelector(".jessibuca-play-big"))&&this.player.$container&&this.player.$container.removeChild(e),this.$recording&&!Qs(this.$recording)&&(e=this.player.$container.querySelector(".jessibuca-recording"))&&this.player.$container&&this.player.$container.removeChild(e),this.$ptzControl&&!Qs(this.$ptzControl)&&(e=this.player.$container.querySelector(".jessibuca-ptz-controls"))&&this.player.$container&&this.player.$container.removeChild(e),this.$zoomControls&&!Qs(this.$zoomControls)&&(e=this.player.$container.querySelector(".jessibuca-zoom-controls"))&&this.player.$container&&this.player.$container.removeChild(e),this.$contextmenus&&(this.$contextmenus.innerHTML="",Qs(this.$contextmenus)||(e=this.player.$container.querySelector(".jessibuca-contextmenus"))&&this.player.$container&&this.player.$container.removeChild(e)),this.btnIndex=0,this.extendBtnList=[],this.kbpsShow="0 KB/s",this.player.$container&&(this.player.$container.classList.remove("jessibuca-controls-show-auto-hide"),this.player.$container.classList.remove("jessibuca-controls-show")),this.player.debug.log("control","destroy")}getBtnIndex(){return this.btnIndex++}autoSize(){const e=this.player,t=(e.$container.style.padding="0 0",e.width),i=e.height,r=t/i,s=e.video.$videoElement.width/e.video.$videoElement.height;if(r>s){const r=(t-i*s)/2;e.$container.style.padding=`0 ${r}px`}else{const r=(i-t/s)/2;e.$container.style.padding=r+"px 0"}}initLoadingBackground(){var e=this.player;if(e._opt.loadingBackground&&(e._opt.heartTimeoutReplayUseLastFrameShow||e._opt.replayUseLastFrameShow||e._opt.pauseAndNextPlayUseLastFrameShow)){let r=e.height;var t=e._opt,i=(t.hasControl&&!t.controlAutoHide&&(r-=t.playType===d?48:38),this.$loadingBgImage.width=e.width,this.$loadingBgImage.height=r,t.rotate);270!==i&&90!==i||(control.$loadingBgImage.width=r,control.$loadingBgImage.height=e.width),this.$loadingBgImage.src=e._opt.loadingBackground;let s="contain",a=(t.isResize||(s="fill"),t.isFullResize&&(s="none"),"");"none"===t.mirrorRotate&&i&&(a+=" rotate("+i+"deg)"),"level"===t.mirrorRotate?a+=" rotateY(180deg)":"vertical"===t.mirrorRotate&&(a+=" rotateX(180deg)"),this.$loadingBgImage.style.transform=a,this.$loadingBgImage.style.objectFit=s,qs(this.$loadingBg,"display","block")}}_validateExtendBtn(e){let t=!0;return e.name||(this.player.debug.warn("Control","extend button name is required"),t=!1),t&&-1!==this.extendBtnList.findIndex(t=>t.name===e.name)&&(this.player.debug.warn("Control",`extend button name: ${e.name} is already exist`),t=!1),t&&!e.icon&&(this.player.debug.warn("Control","extend button icon is required"),t=!1),t}addExtendBtn(){let e=0\n ${e.icon?`
\n \n ${e.iconTitle?`\n ${e.iconTitle}\n `:""}\n
`:""}\n ${e.activeIcon?`
\n \n ${e.activeIconTitle?`\n ${e.activeIconTitle}\n `:""}\n
`:""}\n \n `,a=Array.from(i.children)[e.index],n=(a?a.insertAdjacentHTML("beforebegin",s):Ys(i,s),e.icon?i.querySelector(".jessibuca-icon-extend-"+t):null),o=e.icon?i.querySelector(".jessibuca-control-extend-"+t):null,l=e.activeIcon?i.querySelector(`.jessibuca-icon-extend-${t}-active`):null,d=e.activeIcon?i.querySelector(`.jessibuca-control-extend-${t}-active`):null,{proxy:h}=this.player["events"];e.icon&&(qs(n,"background",`url(${e.icon}) no-repeat center`),qs(n,"background-size","100% 100%"),qs(o,"display","none"),e.iconHover&&(h(n,"mouseover",()=>{qs(n,"background",`url(${e.iconHover}) no-repeat center`),qs(n,"background-size","100% 100%")}),h(n,"mouseout",()=>{qs(n,"background",`url(${e.icon}) no-repeat center`),qs(n,"background-size","100% 100%")}))),e.activeIcon&&(qs(l,"background",`url(${e.activeIcon}) no-repeat center`),qs(l,"background-size","100% 100%"),qs(d,"display","none"),e.activeIconHover&&(h(l,"mouseover",()=>{qs(l,"background",`url(${e.activeIconHover}) no-repeat center`),qs(l,"background-size","100% 100%")}),h(l,"mouseout",()=>{qs(l,"background",`url(${e.activeIcon}) no-repeat center`),qs(l,"background-size","100% 100%")}))),e.click&&n&&h(n,"click",t=>{t.preventDefault(),r&&(qs(o,"display","none"),qs(d,"display","flex")),e.click.call(this.player,this,t)}),e.activeClick&&l&&h(l,"click",t=>{t.preventDefault(),qs(o,"display","flex"),qs(d,"display","none"),e.activeClick.call(this.player,this,t)}),this.extendBtnList.push({name:t,$iconWrap:o,$activeIconWrap:d})}}updateLoadingText(e){this.$loadingText&&(this.$loadingText.innerText=e)}}$s(".jessibuca-container{position:relative;width:100%;height:100%;overflow:hidden}.jessibuca-container.jessibuca-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100vw!important;height:100vh!important;background:#000}");class Zs{static init(){for(var e in Zs.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},Zs.types)Zs.types.hasOwnProperty(e)&&(Zs.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=Zs.constants={};t.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),t.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),t.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSC=t.STCO=t.STTS,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),t.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let n=0;n>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let n=0;n>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return Zs.box(Zs.types.trak,Zs.tkhd(e),Zs.mdia(e))}static tkhd(e){var t=e.id,i=e.duration,r=e.presentWidth;e=e.presentHeight;return Zs.box(Zs.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,e>>>8&255,255&e,0,0]))}static mdia(e){return Zs.box(Zs.types.mdia,Zs.mdhd(e),Zs.hdlr(e),Zs.minf(e))}static mdhd(e){var t=e.timescale;e=e.duration;return Zs.box(Zs.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e,85,196,0,0]))}static hdlr(e){return e="audio"===e.type?Zs.constants.HDLR_AUDIO:Zs.constants.HDLR_VIDEO,Zs.box(Zs.types.hdlr,e)}static minf(e){var t="audio"===e.type?Zs.box(Zs.types.smhd,Zs.constants.SMHD):Zs.box(Zs.types.vmhd,Zs.constants.VMHD);return Zs.box(Zs.types.minf,t,Zs.dinf(),Zs.stbl(e))}static dinf(){return Zs.box(Zs.types.dinf,Zs.box(Zs.types.dref,Zs.constants.DREF))}static stbl(e){return Zs.box(Zs.types.stbl,Zs.stsd(e),Zs.box(Zs.types.stts,Zs.constants.STTS),Zs.box(Zs.types.stsc,Zs.constants.STSC),Zs.box(Zs.types.stsz,Zs.constants.STSZ),Zs.box(Zs.types.stco,Zs.constants.STCO))}static stsd(e){return"audio"===e.type?Zs.box(Zs.types.stsd,Zs.constants.STSD_PREFIX,Zs.mp4a(e)):"avc"===e.videoType?Zs.box(Zs.types.stsd,Zs.constants.STSD_PREFIX,Zs.avc1(e)):Zs.box(Zs.types.stsd,Zs.constants.STSD_PREFIX,Zs.hvc1(e))}static mp4a(e){var t=e.channelCount,i=e.audioSampleRate;t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return Zs.box(Zs.types.mp4a,t,Zs.esds(e))}static esds(e){e=e.config||[];var t=e.length;t=new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e).concat([6,1,2]));return Zs.box(Zs.types.esds,t)}static avc1(e){var t=e.avcc,i=e.codecWidth;e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return Zs.box(Zs.types.avc1,i,Zs.box(Zs.types.avcC,t))}static hvc1(e){var t=e.avcc,i=e.codecWidth;e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return Zs.box(Zs.types.hvc1,i,Zs.box(Zs.types.hvcC,t))}static mvex(e){return Zs.box(Zs.types.mvex,Zs.trex(e))}static trex(e){return e=e.id,e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]),Zs.box(Zs.types.trex,e)}static moof(e,t){return Zs.box(Zs.types.moof,Zs.mfhd(e.sequenceNumber),Zs.traf(e,t))}static mfhd(e){return e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]),Zs.box(Zs.types.mfhd,e)}static traf(e,t){var i=e.id,r=(i=Zs.box(Zs.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),t=Zs.box(Zs.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),Zs.sdtp(e));e=Zs.trun(e,r.byteLength+16+16+8+16+8+8);return Zs.box(Zs.types.traf,i,t,e,r)}static sdtp(e){let t=new Uint8Array(5),i=e.flags;return t[4]=i.isLeading<<6|i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy,Zs.box(Zs.types.sdtp,t)}static trun(e,t){let i=new Uint8Array(28);t+=36,i.set([0,0,15,1,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);t=e.duration;var r=e.size,s=e.flags;e=e.cts;return i.set([t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,s.isLeading<<2|s.dependsOn,s.isDependedOn<<6|s.hasRedundancy<<4|s.isNonSync,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e],12),Zs.box(Zs.types.trun,i)}static mdat(e){return Zs.box(Zs.types.mdat,e)}}Zs.init();class ea extends r{constructor(e){super(),this.player=e,this.isAvc=!0,this.mediaSource=new window.MediaSource,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.cacheTrack={},this.timeInit=!1,this.sequenceNumber=0,this.dropping=!1,this.firstRenderTime=null,this.$videoElement=null,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.mediaSourceAddSourceBufferError=!1,this.mediaSourceError=!1,this.isDecodeFirstIIframe=!!$t(e._opt.checkFirstIFrame),this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.prevPayloadBufferSize=0,this.isWidthOrHeightChanged=!1,this.prevTs=null,this.mediaSourceObjectURL=window.URL.createObjectURL(this.mediaSource),this.eventListenList=[],this.tempFmp4List=[],e._opt.mseUseCanvasRender?(this.$videoElement=document.createElement("video"),this.$videoElement.src=this.mediaSourceObjectURL,this.initVideoEvents()):(this.player.video.$videoElement.src=this.mediaSourceObjectURL,this.$videoElement=this.player.video.$videoElement),this._bindMediaSourceEvents(),e.debug.log("MediaSource","init")}destroy(){this.stop(),this.eventListenList.length&&(this.eventListenList.forEach(e=>e()),this.eventListenList=[]),this.tempFmp4List=[],this.mediaSource=null,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.sequenceNumber=0,this.cacheTrack={},this.timeInit=!1,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.mediaSourceAddSourceBufferError=!1,this.mediaSourceError=!1,this.isDecodeFirstIIframe=!1,this.prevTimestamp=null,this.prevDts=null,this.prevPayloadBufferSize=0,this.prevTs=null,this.firstRenderTime=null,this.isWidthOrHeightChanged=!1,this.dropping=!1,this.$videoElement&&(this.player._opt.mseUseCanvasRender&&this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement=null),this.mediaSourceObjectURL&&(window.URL.revokeObjectURL(this.mediaSourceObjectURL),this.mediaSourceObjectURL=null),this.off(),this.player.debug.log("MediaSource","destroy")}get state(){return this.mediaSource&&this.mediaSource.readyState}get isStateOpen(){return"open"===this.state}get isStateClosed(){return"closed"===this.state}get isStateEnded(){return"ended"===this.state}get duration(){return this.mediaSource&&this.mediaSource.duration||-1}set duration(e){this.mediaSource.duration=e}_bindMediaSourceEvents(){const{proxy:e}=this.player["events"],t=e(this.mediaSource,"sourceopen",()=>{this.player&&this.player.emit(U.mseSourceOpen)}),i=e(this.mediaSource,"sourceclose",()=>{this.player&&this.player.emit(U.mseSourceClose)}),r=e(this.mediaSource,"sourceended",()=>{this.player&&this.player.emit(U.mseSourceended)});if(this.eventListenList.push(t,i,r),this.player.isPlayer){const t=e(this.$videoElement,_e,e=>{this._handleUpdatePlaybackRate(),!this.player._opt.mseUseCanvasRender||this.player.checkIsInRender()?this.player.handleRender():(e=parseInt(e.timeStamp,10),this.player.debug.warn("MediaSource",`mseUseCanvasRender is true and $videoElement ts is ${e}, but not in render`))}),i=e(this.$videoElement,we,()=>{this.player.debug.log("MediaSource","video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)});this.eventListenList.push(t,i)}}initVideoEvents(){const e=this.player.events["proxy"],t=e(this.$videoElement,be,()=>{this.player.debug.log("MediaSource","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("MediaSource","video play")}).catch(e=>{this.player.debug.error("MediaSource","video play error ",e),this.player.emitError(O.mediaSourceUseCanvasRenderPlayFailed,e)})}),i=e(this.$videoElement,ve,()=>{this.player.debug.log("MediaSource","video waiting")}),r=e(this.$videoElement,_e,e=>{e=parseInt(e.timeStamp,10),this.player.emit(U.videoTimeUpdate,e),this.$videoElement.paused&&(this.player.debug.warn("MediaSource","video is paused and next try to replay"),this.$videoElement.play().then(()=>{this.player.debug.log("MediaSource","video is paused and replay success")}).catch(e=>{this.player.debug.warn("MediaSource","video is paused and replay error ",e)}))});this.eventListenList.push(t,i,r)}decodeVideo(e,t,i,r){const s=this.player;if(s)if(this.player.isDestroyed())this.player.debug.warn("MediaSource","decodeVideo() player is destroyed");else if(this.hasInit)if(!this.isDecodeFirstIIframe&&i&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){if(i&&0===e[1]){const t=15&e[0];let i={};7==t?i=Vi(e.slice(5)):12==t&&(i=Xi(e));const r=this.player.video.videoInfo;r&&r.width&&r.height&&i&&i.codecWidth&&i.codecHeight&&(i.codecWidth!==r.width||i.codecHeight!==r.height)&&(this.player.debug.warn("MediaSource",`\n decodeVideo: video width or height is changed,\n old width is ${r.width}, old height is ${r.height},\n new width is ${i.codecWidth}, new height is ${i.codecHeight},\n and emit change event`),this.isWidthOrHeightChanged=!0,this.player.emitError(O.mseWidthOrHeightChange))}if(this.isWidthOrHeightChanged)this.player.debug.warn("MediaSource","decodeVideo: video width or height is changed, and return");else if(Vt(e))this.player.debug.warn("MediaSource","decodeVideo and payload is video sequence header so drop this frame");else if(e.byteLength<12)this.player.debug.warn("MediaSource","decodeVideo and payload is too small , payload length is "+e.byteLength);else{null===this.firstRenderTime&&(this.firstRenderTime=t);let s=t-this.firstRenderTime;if(s<0&&(this.player.debug.warn("MediaSource",`decodeVideo\n local dts is < 0 , ts is ${t} and prevTs is ${this.prevTs},\n firstRenderTime is ${this.firstRenderTime} and mseCorrectTimeDuration is `+this.player._opt.mseCorrectTimeDuration),s=null===this.prevDts?0:this.prevDts+this.player._opt.mseCorrectTimeDuration,this._checkTsIsMaxDiff(t)))return this.player.debug.warn("MediaSource",`decodeVideo is max diff , ts is ${t} and prevTs is ${this.prevTs}, diff is `+(this.prevTs-t)),void this.emit(O.mediaSourceTsIsMaxDiff);if(null!==this.prevDts&&s<=this.prevDts){if(this.player.debug.warn("MediaSource",`\n decodeVideo dts is less than(or equal) prev dts ,\n dts is ${s} and prev dts is ${this.prevDts} ,\n and now ts is ${t} and prev ts is ${this.prevTs} ,\n and diff is ${t-this.prevTs} and firstRenderTime is ${this.firstRenderTime},\n and mseCorrectTimeDuration is ${this.player._opt.mseCorrectTimeDuration},\n and prevPayloadBufferSize is ${this.prevPayloadBufferSize} and payload size is `+e.byteLength),s===this.prevDts&&this.prevPayloadBufferSize===e.byteLength)return void this.player.debug.warn("MediaSource","decodeVideo dts is equal to prev dts and payload size is equal to prev payload size so drop this frame");if(s=this.prevDts+this.player._opt.mseCorrectTimeDuration,this._checkTsIsMaxDiff(t))return this.player.debug.warn("MediaSource",`decodeVideo is max diff , ts is ${t} and prevTs is ${this.prevTs}, diff is ${this.prevTs-t} and emit replay`),void this.emit(O.mediaSourceTsIsMaxDiff)}this._decodeVideo(e,s,i,r,t),this.prevDts=s,this.prevPayloadBufferSize=e.byteLength,this.prevTs=t,this.player.getRenderType()===b&&this.player.video&&this.player.video.doAddContentToWatermark()}}else this.player.debug.warn("MediaSource","decodeVideo isDecodeFirstIIframe false");else if(i&&0===e[1]){const r=15&e[0];s.video.updateVideoInfo({encTypeCode:r}),12!=r||mt()?(s._times.decodeStart||(s._times.decodeStart=qe()),this.hasInit=this._decodeConfigurationRecord(e,t,i,r)):this.emit(O.mediaSourceH265NotSupport)}else this.player.debug.warn("MediaSource",`decodeVideo has not init , isIframe is ${i} , payload is `+e[1])}_checkTsIsMaxDiff(e){return 0u)a.debug.warn("MediaSource","dropping time is ",t-this.cacheTrack.dts),this.dropping=!1,this.cacheTrack={};else if(this.cacheTrack.id&&t>=this.cacheTrack.dts){let e=8+this.cacheTrack.size,i=new Uint8Array(e),r=(i[0]=e>>>24&255,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i.set(Zs.types.mdat,4),i.set(this.cacheTrack.data,8),this.cacheTrack.duration=t-this.cacheTrack.dts,this.player.recorder&&this.player.recorder.isRecording&&this.player._opt.recordType===h&&this.player.recorder.handleAddFmp4Track(this.cacheTrack),Zs.moof(this.cacheTrack,this.cacheTrack.dts)),n=new Uint8Array(r.byteLength+i.byteLength);n.set(r,0),n.set(i,r.byteLength),this.appendBuffer(n.buffer),a.emit(U.timeUpdate,s),a.videoTimestamp=s,a.updateStats({fps:!0,ts:s,mseTs:t,buf:a.demux&&a.demux.delay||0}),a._times.videoStart||(a._times.videoStart=qe(),a.handlePlayToRenderTimes())}else a.debug.log("MediaSource",`timeInit set false , cacheTrack = {} now dts is ${t}, and ts is ${s} cacheTrack dts is `+(this.cacheTrack&&this.cacheTrack.dts)),this.timeInit=!1,this.cacheTrack={};this.cacheTrack||(this.cacheTrack={}),this.cacheTrack.id=1,this.cacheTrack.sequenceNumber=++this.sequenceNumber,this.cacheTrack.size=o,this.cacheTrack.dts=t,this.cacheTrack.cts=r,this.cacheTrack.isKeyframe=i,this.cacheTrack.data=n,this.cacheTrack.flags={isLeading:0,dependsOn:i?2:1,isDependedOn:i?1:0,hasRedundancy:0,isNonSync:i?0:1},this.timeInit||1!==c.buffered.length||(a.debug.log("MediaSource","timeInit set true"),this.timeInit=!0,c.currentTime=c.buffered.end(0)),!this.isInitInfo&&0{this.player.emitError(O.mseSourceBufferError,e)}),t=i(this.sourceBuffer,"updateend",()=>{});this.eventListenList.push(e,t)}}if(this.mediaSourceAppendBufferFull)t.warn("MediaSource","this.mediaSourceAppendBufferFull is true");else if(this.mediaSourceAppendBufferError)t.warn("MediaSource","this.mediaSourceAppendBufferError is true");else if(!1===this.sourceBuffer.updating&&this.isStateOpen)try{let i=e;if(0"wakeLock"in navigator&&-1===window.navigator.userAgent.indexOf("Samsung")&&$t(nt());class ia{constructor(e){this.player=e,this.enabled=!1,ta()?(this.player.debug.log("NoSleep","Native Wake Lock API supported."),this._wakeLock=null,this.handleVisibilityChange=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()},document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("fullscreenchange",this.handleVisibilityChange)):(this.player.debug.log("NoSleep","Native Wake Lock API not supported. so use video element."),this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm","data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQRChYECGFOAZwEAAAAAABLfEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHYTbuMU6uEElTDZ1OsggGXTbuMU6uEHFO7a1OsghLJ7AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmsirXsYMPQkBNgI1MYXZmNTguNDUuMTAwV0GNTGF2ZjU4LjQ1LjEwMESJiECzmgAAAAAAFlSua0C5rgEAAAAAAABO14EBc8WI9UhIq9EDJPCcgQAitZyDdW5khoVWX1ZQOIOBASPjg4QF9eEA4AEAAAAAAAAbsIIBQLqB8FSwggElVLqB8FWwiFW3gQFVuIECrgEAAAAAAABZ14ECc8WIUEWPA9J/iJ6cgQAitZyDdW5khoZBX09QVVNWqoNjLqBWu4QExLQAg4EC4ZGfgQG1iEDncAAAAAAAYmSBIGOik09wdXNIZWFkAQE4AYC7AAAAAAASVMNnQcJzcwEAAAAAAACXY8CAZ8gBAAAAAAAAFUWji01BSk9SX0JSQU5ERIeEaXNvbWfIAQAAAAAAABZFo41NSU5PUl9WRVJTSU9ORIeDNTEyZ8gBAAAAAAAAJ0WjkUNPTVBBVElCTEVfQlJBTkRTRIeQaXNvbWlzbzJhdmMxbXA0MWfIAQAAAAAAABpFo4dFTkNPREVSRIeNTGF2ZjU4LjQ1LjEwMHNzAQAAAAAAAIZjwItjxYj1SEir0QMk8GfIAQAAAAAAAB5Fo4xIQU5ETEVSX05BTUVEh4xWaWRlb0hhbmRsZXJnyAEAAAAAAAAhRaOHRU5DT0RFUkSHlExhdmM1OC45MS4xMDAgbGlidnB4Z8iiRaOIRFVSQVRJT05Eh5QwMDowMDowNS4wMDcwMDAwMDAAAHNzAQAAAAAAAIdjwItjxYhQRY8D0n+InmfIAQAAAAAAAB5Fo4xIQU5ETEVSX05BTUVEh4xTb3VuZEhhbmRsZXJnyAEAAAAAAAAiRaOHRU5DT0RFUkSHlUxhdmM1OC45MS4xMDAgbGlib3B1c2fIokWjiERVUkFUSU9ORIeUMDA6MDA6MDUuMDE4MDAwMDAwAAAfQ7Z1T2TngQCjh4IAAID4//6jQKSBAAeAMBIAnQEqQAHwAABHCIWFiIWEiAICAAYWBPcGgWSfa9ubJzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh7Jzh69AD+/6tQgKOHggAVgPj//qOHggApgPj//qOHggA9gPj//qOHggBRgPj//qOHggBlgPj//qOegQBrANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCAHmA+P/+o4eCAI2A+P/+o4eCAKGA+P/+o4eCALWA+P/+o4eCAMmA+P/+o56BAM8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IA3YD4//6jh4IA8YD4//6jh4IBBYD4//6jh4IBGYD4//6jh4IBLYD4//6jnoEBMwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggFBgPj//qOHggFVgPj//qOHggFpgPj//qOHggF9gPj//qOHggGRgPj//qOegQGXANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCAaWA+P/+o4eCAbmA+P/+o4eCAc2A+P/+o4eCAeGA+P/+o4eCAfWA+P/+o56BAfsA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4ICCYD4//6jh4ICHYD4//6jh4ICMYD4//6jh4ICRYD4//6jh4ICWYD4//6jnoECXwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggJtgPj//qOHggKBgPj//qOHggKVgPj//qOHggKpgPj//qOHggK9gPj//qOegQLDANECAAUQEBRgAGFgv9AAIgAQzX61yT5xzAAAo4eCAtGA+P/+o4eCAuWA+P/+o4eCAvmA+P/+o4eCAw2A+P/+o4eCAyGA+P/+o56BAycA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IDNYD4//6jh4IDSYD4//6jh4IDXYD4//6jh4IDcYD4//6jh4IDhYD4//6jnoEDiwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggOZgPj//qOHggOtgPj//qOHggPBgPj//qOHggPVgPj//qOHggPpgPj//qOegQPvANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCA/2A+P/+o4eCBBGA+P/+o4eCBCWA+P/+o4eCBDmA+P/+o4eCBE2A+P/+o56BBFMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IEiID4//6jh4IEnID4//6jh4IEsID4//6jnoEEtwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggTEgPj//qOHggTYgPj//qOHggTsgPj//qOHggUAgPj//qOHggUUgPj//qOegQUbANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCBSiA+P/+o4eCBTyA+P/+o4eCBVCA+P/+o4eCBWSA+P/+o4eCBXiA+P/+o56BBX8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IFjID4//6jh4IFoID4//6jh4IFtID4//6jh4IFyID4//6jh4IF3ID4//6jnoEF4wDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggXwgPj//qOHggYEgPj//qOHggYYgPj//qOHggYsgPj//qOHggZAgPj//qOegQZHANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCBlSA+P/+o4eCBmiA+P/+o4eCBnyA+P/+o4eCBpCA+P/+o4eCBqSA+P/+o56BBqsA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IGuID4//6jh4IGzID4//6jh4IG4ID4//6jh4IG9ID4//6jh4IHCID4//6jnoEHDwDRAgAFEBAUYABhYL/QACIAEM1+tck+ccwAAKOHggccgPj//qOHggcwgPj//qOHggdEgPj//qOHggdYgPj//qOHggdsgPj//qOegQdzANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCB4CA+P/+o4eCB5SA+P/+o4eCB6iA+P/+o4eCB7yA+P/+o4eCB9CA+P/+o56BB9cA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IH5ID4//6jh4IH+ID4//6jh4IIDID4//6jh4IIIID4//6jh4IINID4//6jnoEIOwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgghIgPj//qOHgghcgPj//qOHgghwgPj//qOHggiEgPj//qOegQifANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCMCA+P/+o4eCCNSA+P/+o4eCCOiA+P/+o4eCCPyA+P/+o56BCQMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IJEID4//6jh4IJJID4//6jh4IJOID4//6jh4IJTID4//6jh4IJYID4//6jnoEJZwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggl0gPj//qOHggmIgPj//qOHggmcgPj//qOHggmwgPj//qOHggnEgPj//qOegQnLANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCdiA+P/+o4eCCeyA+P/+o4eCCgCA+P/+o4eCChSA+P/+o4eCCiiA+P/+o56BCi8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IKPID4//6jh4IKUID4//6jh4IKZID4//6jh4IKeID4//6jh4IKjID4//6jnoEKkwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggqggPj//qOHggq0gPj//qOHggrIgPj//qOHggrcgPj//qOHggrwgPj//qOegQr3ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCwSA+P/+o4eCCxiA+P/+o4eCCyyA+P/+o4eCC0CA+P/+o4eCC1SA+P/+o56BC1sA0QIABRAQFGAAYWC/0AAiABDNfrXJPnHMAACjh4ILaID4//6jh4ILfID4//6jh4ILkID4//6jh4ILpID4//6jh4ILuID4//6jnoELvwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggvMgPj//qOHggvggPj//qOHggv0gPj//qOHggwIgPj//qOHggwcgPj//qOegQwjANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDDCA+P/+o4eCDESA+P/+o4eCDFiA+P/+o4eCDGyA+P/+o4eCDICA+P/+o56BDIcA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IMlID4//6jh4IMqID4//6jh4IMvID4//6jh4IM0ID4//6jnoEM6wDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg0MgPj//qOHgg0ggPj//qOHgg00gPj//qOHgg1IgPj//qOegQ1PANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDVyA+P/+o4eCDXCA+P/+o4eCDYSA+P/+o4eCDZiA+P/+o4eCDayA+P/+o56BDbMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4INwID4//6jh4IN1ID4//6jh4IN6ID4//6jh4IN/ID4//6jh4IOEID4//6jnoEOFwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg4kgPj//qOHgg44gPj//qOHgg5MgPj//qOHgg5ggPj//qOHgg50gPj//qOegQ57ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDoiA+P/+o4eCDpyA+P/+o4eCDrCA+P/+o4eCDsSA+P/+o4eCDtiA+P/+o56BDt8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IO7ID4//6jh4IPAID4//6jh4IPFID4//6jh4IPKID4//6jh4IPPID4//6jnoEPQwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg9QgPj//qOHgg9kgPj//qOHgg94gPj//qOHgg+MgPj//qOHgg+ggPj//qOegQ+nANECAAUQEBRgAGFgv9AAIgAQzX61yT5xzAAAo4eCD7SA+P/+o4eCD8iA+P/+o4eCD9yA+P/+o4eCD/CA+P/+o4eCEASA+P/+o56BEAsA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IQGID4//6jh4IQLID4//6jh4IQQID4//6jh4IQVID4//6jh4IQaID4//6jnoEQbwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghB8gPj//qOHghCQgPj//qOHghCkgPj//qOHghC4gPj//qOHghDMgPj//qOegRDTANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEOCA+P/+o4eCEPSA+P/+o4eCEQiA+P/+o56BETcA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IRQ4D4//6jh4IRV4D4//6jh4IRa4D4//6jh4IRf4D4//6jh4IRk4D4//6jnoERmwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghGngPj//qOHghG7gPj//qOHghHPgPj//qOHghHjgPj//qOHghH3gPj//qOegRH/ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEguA+P/+o4eCEh+A+P/+o4eCEjOA+P/+o4eCEkeA+P/+o4eCEluA+P/+o56BEmMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4ISb4D4//6jh4ISg4D4//6jh4ISl4D4//6jh4ISq4D4//6jh4ISv4D4//6jnoESxwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghLTgPj//qOHghLngPj//qOHghL7gPj//qOHghMPgPj//qOHghMjgPj//qOegRMrANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEzeA+P/+o4eCE0uA+P/+o4eCE1+A+P/+o4eCE3OA+P/+oAEAAAAAAAAPoYeCE4cA+P/+daKDB/KBHFO7a5G7j7OBB7eK94EB8YIDX/CBDA=="),this._addSourceToVideo(this.noSleepVideo,"mp4","data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACORtZGF03gIATGF2YzU4LjM1LjEwMAACMEAOAAACcQYF//9t3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSByMzAyNyA0MTIxMjc3IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTAgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTcgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0wIHdlaWdodHA9MCBrZXlpbnQ9MjUwIGtleWludF9taW49MTAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAADvZYiED/JigADD7JycnJycnJycnJycnJycnJycnJ11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111114BGCAHARggBwEYIAcBGCAHARggBwAAAAdBmjgf4BLYARggBwEYIAcBGCAHARggBwAAAAdBmlQH+AS2ARggBwEYIAcBGCAHARggBwAAAAdBmmA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZqAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZrAP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0Ga4D/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbAD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbID/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBm0A/wCWwARggBwEYIAcBGCAHAAAAB0GbYD/AJbABGCAHARggBwEYIAcAAAAHQZuAP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GboD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbwD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0Gb4D/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBmgA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmiA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmkA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZpgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqgP8AlsAEYIAcBGCAHARggBwAAAAdBmsA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmuA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmwA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZsgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZtAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZtgP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GbgD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GboD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbwD/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBm+A/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmgA/wCWwARggBwEYIAcAAAAHQZogP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GaQD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GaYD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GagD/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBmqA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmsA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmuA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZsAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZsgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZtAP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GbYD/AJbABGCAHARggBwAAAAdBm4A/wCWwARggBwEYIAcBGCAHARggBwAAAAdBm6A/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZvAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZvgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZoAO8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GaIDfAJbABGCAHARggBwEYIAcBGCAHAAAMxm1vb3YAAABsbXZoZAAAAAAAAAAAAAAAAAAAA+gAABOgAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAPLdHJhawAAAFx0a2hkAAAAAwAAAAAAAAAAAAAAAQAAAAAAABOIAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAElVVUA8AAAAAAAJGVkdHMAAAAcZWxzdAAAAAAAAAABAAATiAAAAAAAAQAAAAADQ21kaWEAAAAgbWRoZAAAAAAAAAAAAAAAAAAAKAAAAMgAVcQAAAAAAC1oZGxyAAAAAAAAAAB2aWRlAAAAAAAAAAAAAAAAVmlkZW9IYW5kbGVyAAAAAu5taW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAAKuc3RibAAAAKpzdHNkAAAAAAAAAAEAAACaYXZjMQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAFAAPAASAAAAEgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj//wAAADRhdmNDAULAC//hABxnQsAL2QFB+/8ACwAMEAAAAwAQAAADAUDxQqSAAQAFaMuDyyAAAAAQcGFzcAAAAAsAAAAMAAAAGHN0dHMAAAAAAAAAAQAAADIAAAQAAAAAFHN0c3MAAAAAAAAAAQAAAAEAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAEAAAABAAAA3HN0c3oAAAAAAAAAAAAAADIAAANoAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAANhzdGNvAAAAAAAAADIAAABFAAADwQAAA9wAAAP3AAAEFgAABDEAAARMAAAEawAABIYAAAShAAAEwAAABNcAAATuAAAFDQAABSgAAAVDAAAFYgAABX0AAAWYAAAFtwAABdIAAAXtAAAGBAAABh8AAAY6AAAGWQAABnQAAAaPAAAGrgAABskAAAbkAAAHAwAABx4AAAcxAAAHUAAAB2sAAAeGAAAHpQAAB8AAAAfbAAAH+gAACBUAAAgwAAAITwAACGIAAAh9AAAInAAACLcAAAjSAAAI8QAACCV0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAAE6AAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAABOIAAAEAAABAAAAAAedbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAACsRAADYVRVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAAHSG1pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAHDHN0YmwAAABqc3RzZAAAAAAAAAABAAAAWm1wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAACsRAAAAAAANmVzZHMAAAAAA4CAgCUAAgAEgICAF0AVAAAAAAENiAAABVQFgICABRIIVuUABoCAgAECAAAAYHN0dHMAAAAAAAAACgAAAC8AAAQAAAAAAQAACtUAAAAsAAAEAAAAAAEAAArWAAAALAAABAAAAAABAAAK1QAAACwAAAQAAAAAAQAACtUAAAAaAAAEAAAAAAEAAAH/AAABzHN0c2MAAAAAAAAAJQAAAAEAAAABAAAAAQAAAAIAAAAFAAAAAQAAAAMAAAAEAAAAAQAAAAUAAAAFAAAAAQAAAAYAAAAEAAAAAQAAAAgAAAAFAAAAAQAAAAkAAAAEAAAAAQAAAAsAAAAFAAAAAQAAAAwAAAADAAAAAQAAAA4AAAAFAAAAAQAAAA8AAAAEAAAAAQAAABEAAAAFAAAAAQAAABIAAAAEAAAAAQAAABQAAAAFAAAAAQAAABUAAAAEAAAAAQAAABcAAAADAAAAAQAAABgAAAAEAAAAAQAAABoAAAAFAAAAAQAAABsAAAAEAAAAAQAAAB0AAAAFAAAAAQAAAB4AAAAEAAAAAQAAACAAAAAFAAAAAQAAACEAAAAEAAAAAQAAACIAAAACAAAAAQAAACMAAAAFAAAAAQAAACQAAAAEAAAAAQAAACYAAAAFAAAAAQAAACcAAAAEAAAAAQAAACkAAAAFAAAAAQAAACoAAAAEAAAAAQAAACwAAAAFAAAAAQAAAC0AAAACAAAAAQAAAC4AAAAEAAAAAQAAAC8AAAAFAAAAAQAAADAAAAAEAAAAAQAAADIAAAAFAAAAAQAAADMAAAAEAAAAAQAAA1xzdHN6AAAAAAAAAAAAAADSAAAAFQAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAA3HN0Y28AAAAAAAAAMwAAADAAAAOtAAADzAAAA+cAAAQCAAAEIQAABDwAAARXAAAEdgAABJEAAASsAAAEywAABOIAAAT5AAAFGAAABTMAAAVOAAAFbQAABYgAAAWjAAAFwgAABd0AAAX4AAAGDwAABioAAAZFAAAGZAAABn8AAAaaAAAGuQAABtQAAAbvAAAHDgAABykAAAc8AAAHWwAAB3YAAAeRAAAHsAAAB8sAAAfmAAAIBQAACCAAAAg7AAAIWgAACG0AAAiIAAAIpwAACMIAAAjdAAAI/AAAABpzZ3BkAQAAAHJvbGwAAAACAAAAAf//AAAAHHNiZ3AAAAAAcm9sbAAAAAEAAADSAAAAAQAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTguMjAuMTAw"),Object.assign(this.noSleepVideo.style,{position:"absolute",left:"-100%",top:"-100%"}),document.querySelector("body").append(this.noSleepVideo),this.handleNoSleepVideoTimeUpdate=()=>{this.noSleepVideo&&4{this._wakeLock=t,this.enabled=!0,e.log("wakeLock","Wake Lock active."),this._wakeLock.addEventListener("release",()=>{e.log("wakeLock","Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,e.warn("wakeLock",t.name+", "+t.message),t}):this.noSleepVideo.play().then(t=>(e.log("wakeLock","noSleepVideo Wake Lock active."),this.enabled=!0,t)).catch(t=>{throw e.warn("wakeLock",`noSleepVideo ${t.name}, `+t.message),this.enabled=!1,t})}disable(){ta()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):this.noSleepVideo&&this.noSleepVideo.pause(),this.enabled=!1,this.player.debug.log("wakeLock","Disabling wake lock.")}}var ra=Oe(Ne((function(e,t){"undefined"!=typeof window&&(e.exports=(()=>{var e={"./src/config.ts":(e,t,i)=>{i.r(t),i.d(t,{enableStreamingMode:()=>function(e){var t=e.loader;t!==f.default&&t!==p.default?(y.logger.log("[config]: Custom loader detected, cannot enable progressive streaming"),e.progressive=!1):(0,f.fetchSupported)()&&(e.loader=f.default,e.progressive=!0,e.enableSoftwareAES=!0,y.logger.log("[config]: Progressive streaming enabled, using FetchLoader"))},hlsDefaultConfig:()=>_,mergeConfig:()=>function(e,t){if((t.liveSyncDurationCount||t.liveMaxLatencyDurationCount)&&(t.liveSyncDuration||t.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==t.liveMaxLatencyDurationCount&&(void 0===t.liveSyncDurationCount||t.liveMaxLatencyDurationCount<=t.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==t.liveMaxLatencyDuration&&(void 0===t.liveSyncDuration||t.liveMaxLatencyDuration<=t.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');return A({},e,t)}});t=i("./src/controller/abr-controller.ts");var r=i("./src/controller/audio-stream-controller.ts"),s=i("./src/controller/audio-track-controller.ts"),a=i("./src/controller/subtitle-stream-controller.ts"),n=i("./src/controller/subtitle-track-controller.ts"),o=i("./src/controller/buffer-controller.ts"),l=i("./src/controller/timeline-controller.ts"),d=i("./src/controller/cap-level-controller.ts"),h=i("./src/controller/fps-controller.ts"),c=i("./src/controller/eme-controller.ts"),u=i("./src/controller/cmcd-controller.ts"),p=i("./src/utils/xhr-loader.ts"),f=i("./src/utils/fetch-loader.ts"),m=i("./src/utils/cues.ts"),g=i("./src/utils/mediakeys-helper.ts"),y=i("./src/utils/logger.ts");function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{default:()=>c});var r=i("./src/polyfills/number.ts"),s=i("./src/utils/ewma-bandwidth-estimator.ts"),a=i("./src/events.ts"),n=i("./src/errors.ts"),o=i("./src/types/loader.ts"),l=i("./src/utils/logger.ts");function d(e,t){for(var i,r=0;r{i.r(t),i.d(t,{default:()=>_});var r,s=i("./src/polyfills/number.ts"),a=i("./src/controller/base-stream-controller.ts"),n=i("./src/events.ts"),o=i("./src/utils/buffer-helper.ts"),l=i("./src/controller/fragment-tracker.ts"),d=i("./src/types/level.ts"),h=i("./src/types/loader.ts"),c=i("./src/loader/fragment.ts"),u=i("./src/demux/chunk-cache.ts"),p=i("./src/demux/transmuxer-interface.ts"),f=i("./src/types/transmuxer.ts"),m=i("./src/controller/fragment-finders.ts"),g=i("./src/utils/discontinuities.ts"),y=i("./src/errors.ts");function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var t=1;t=this.getMaxBufferLength(null==e?void 0:e.len)&&!t||(o=s.fragments[0].start,l=r.end,t&&i&&(l=t=this.getLoadPosition(),s.PTSKnown&&to||r.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),i.currentTime=o+.05)),e&&l>e.end+s.targetduration||!(e&&e.len||!r.len)||((t=this.getNextFragment(l,s))?this.loadFragment(t,s,l):this.bufferFlushed=!0))}},i.getMaxBufferLength=function(e){var t=r.prototype.getMaxBufferLength.call(this);return e?Math.max(t,e):t},i.onMediaDetaching=function(){this.videoBuffer=null,r.prototype.onMediaDetaching.call(this)},i.onAudioTracksUpdated=function(e,t){t=t.audioTracks,this.resetTransmuxer(),this.levels=t.map((function(e){return new d.Level(e)}))},i.onAudioTrackSwitching=function(e,t){var i=!!t.url;this.trackId=t.id,t=this.fragCurrent;t&&t.abortRequests(),this.fragCurrent=null,this.clearWaitingFragment(),i?this.setInterval(100):this.resetTransmuxer(),i?(this.audioSwitch=!0,this.state=a.State.IDLE):this.state=a.State.STOPPED,this.tick()},i.onManifestLoading=function(){this.mainDetails=null,this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1},i.onLevelLoaded=function(e,t){this.mainDetails=t.details,null!==this.cachedTrackLoadedData&&(this.hls.trigger(n.Events.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)},i.onAudioTrackLoaded=function(e,t){if(null!=this.mainDetails){var i=this.levels,r=t.details,s=t.id;if(i){this.log("Track "+s+" loaded ["+r.startSN+","+r.endSN+"],duration:"+r.totalduration);i=i[s];var n=0;if(r.live||null!=(o=i.details)&&o.live){var o=this.mainDetails;if(r.fragments[0]||(r.deltaUpdateFailed=!0),r.deltaUpdateFailed||!o)return;n=!i.details&&r.hasProgramDateTime&&o.hasProgramDateTime?((0,g.alignMediaPlaylistByPDT)(r,o),r.fragments[0].start):this.alignPlaylists(r,i.details)}i.details=r,this.levelLastLoaded=s,this.startFragRequested||!this.mainDetails&&r.live||this.setStartPosition(i.details,n),this.state!==a.State.WAITING_TRACK||this.waitForCdnTuneIn(r)||(this.state=a.State.IDLE),this.tick()}else this.warn("Audio tracks were reset while loading level "+s)}else this.cachedTrackLoadedData=t},i._handleFragmentLoadProgress=function(e){var t,i,r,s,n=e.frag,o=e.part,l=(e=e.payload,this.config),d=this.trackId,c=this.levels;c?(c=c[d],console.assert(c,"Audio track is defined on fragment load progress"),t=c.details,console.assert(t,"Audio track details are defined on fragment load progress"),l=l.defaultAudioCodec||c.audioCodec||"mp4a.40.2",c=(c=this.transmuxer)||(this.transmuxer=new p.default(this.hls,h.PlaylistLevelType.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this))),i=this.initPTS[n.cc],r=null==(r=n.initSegment)?void 0:r.data,void 0!==i?(s=o?o.index:-1,s=new f.ChunkMetadata(n.level,n.sn,n.stats.chunkCount,e.byteLength,s,-1!==s),c.push(e,r,l,"",n,o,t.totalduration,!1,s,i)):(this.log("Unknown video PTS for cc "+n.cc+", waiting for video PTS before demuxing audio frag "+n.sn+" of ["+t.startSN+" ,"+t.endSN+"],track "+d),(this.waitingData=this.waitingData||{frag:n,part:o,cache:new u.default,complete:!1}).cache.push(new Uint8Array(e)),this.waitingVideoCC=this.videoTrackCC,this.state=a.State.WAITING_INIT_PTS)):this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+n.sn+" of level "+n.level+" will not be buffered")},i._handleFragmentLoadComplete=function(e){this.waitingData?this.waitingData.complete=!0:r.prototype._handleFragmentLoadComplete.call(this,e)},i.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},i.onBufferCreated=function(e,t){var i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer||null),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer||null)},i.onFragBuffered=function(e,t){var i=t.frag;t=t.part;i.type===h.PlaylistLevelType.AUDIO?this.fragContextChanged(i)?this.warn("Fragment "+i.sn+(t?" p: "+t.index:"")+" of level "+i.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+this.audioSwitch):("initSegment"!==i.sn&&(this.fragPrevious=i,this.audioSwitch&&(this.audioSwitch=!1,this.hls.trigger(n.Events.AUDIO_TRACK_SWITCHED,{id:this.trackId}))),this.fragBufferedComplete(i,t)):this.loadedmetadata||i.type!==h.PlaylistLevelType.MAIN||null!=(t=this.videoBuffer||this.media)&&t.buffered.length&&(this.loadedmetadata=!0)},i.onError=function(e,t){if(t.type!==y.ErrorTypes.KEY_SYSTEM_ERROR)switch(t.details){case y.ErrorDetails.FRAG_LOAD_ERROR:case y.ErrorDetails.FRAG_LOAD_TIMEOUT:case y.ErrorDetails.FRAG_PARSING_ERROR:case y.ErrorDetails.KEY_LOAD_ERROR:case y.ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(h.PlaylistLevelType.AUDIO,t);break;case y.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case y.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:this.state!==a.State.ERROR&&this.state!==a.State.STOPPED&&(this.state=t.fatal?a.State.ERROR:a.State.IDLE,this.warn(t.details+" while loading frag, switching to "+this.state+" state"));break;case y.ErrorDetails.BUFFER_FULL_ERROR:var i,s;"audio"!==t.parent||this.state!==a.State.PARSING&&this.state!==a.State.PARSED||(i=!0,(i=(s=this.getFwdBufferInfo(this.mediaBuffer,h.PlaylistLevelType.AUDIO))&&.5{i.r(t),i.d(t,{default:()=>h});var r,s=i("./src/events.ts"),a=i("./src/errors.ts"),n=(t=i("./src/controller/base-playlist-controller.ts"),i("./src/types/loader.ts"));function o(e,t){for(var i,r=0;r=l.length?this.warn("Invalid id passed to audio-track controller"):(this.clearTimer(),t=l[this.trackId],this.log("Now switching to audio-track index "+e),i=(l=l[e]).id,r=void 0===(r=l.groupId)?"":r,a=l.name,n=l.type,o=l.url,this.trackId=e,this.trackName=a,this.selectDefaultTrack=!1,this.hls.trigger(s.Events.AUDIO_TRACK_SWITCHING,{id:i,groupId:r,name:a,type:n,url:o}),l.details&&!l.details.live||(e=this.switchParams(l.url,null==t?void 0:t.details),this.loadPlaylist(e)))},t.selectInitialTrack=function(){var e=this.tracksInGroup;console.assert(e.length,"Initial audio track should be selected when tracks are known"),e=this.trackName,e=this.findTrackId(e)||this.findTrackId();-1!==e?this.setAudioTrack(e):(this.warn("No track found for running audio group-ID: "+this.groupId),this.hls.trigger(s.Events.ERROR,{type:a.ErrorTypes.MEDIA_ERROR,details:a.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,fatal:!0}))},t.findTrackId=function(e){for(var t=this.tracksInGroup,i=0;i{i.r(t),i.d(t,{default:()=>o});var r=i("./src/types/level.ts"),s=i("./src/controller/level-helper.ts"),a=i("./src/utils/logger.ts"),n=i("./src/errors.ts"),o=((t=l.prototype).destroy=function(){this.clearTimer(),this.hls=this.log=this.warn=null},t.onError=function(e,t){!t.fatal||t.type!==n.ErrorTypes.NETWORK_ERROR&&t.type!==n.ErrorTypes.KEY_SYSTEM_ERROR||this.stopLoad()},t.clearTimer=function(){clearTimeout(this.timer),this.timer=-1},t.startLoad=function(){this.canLoad=!0,this.retryCount=0,this.requestScheduled=-1,this.loadPlaylist()},t.stopLoad=function(){this.canLoad=!1,this.clearTimer()},t.switchParams=function(e,t){var i=null==t?void 0:t.renditionReports;if(i)for(var s=0;st.partTarget&&(o+=1)),new r.HlsUrlParameters(l,0<=o?o:void 0,r.HlsSkip.No)}},t.loadPlaylist=function(e){-1===this.requestScheduled&&(this.requestScheduled=self.performance.now())},t.shouldLoadTrack=function(e){return this.canLoad&&e&&!!e.url&&(!e.details||e.details.live)},t.playlistLoaded=function(e,t,i){var r=this,a=t.details,n=t.stats,o=self.performance.now(),l=n.loading.first?Math.max(0,o-n.loading.first):0;if(a.advancedDateTime=Date.now()-l,a.live||null!=i&&i.live){if(a.reloaded(i),i&&this.log("live playlist "+e+" "+(a.advanced?"REFRESHED "+a.lastPartSn+"-"+a.lastPartIndex:"MISSED")),i&&0i.tuneInGoal?(this.warn("CDN Tune-in goal increased from: "+i.tuneInGoal+" to: "+p+" with playlist age: "+a.age),p=0):(l+=f=Math.floor(p/a.targetduration),void 0!==h&&(h+=Math.round(p%a.targetduration/a.partTarget)),this.log("CDN Tune-in age: "+a.ageHeader+"s last advanced "+u.toFixed(2)+"s goal: "+p+" skip sn "+f+" to part "+h)),a.tuneInGoal=p),d=this.getDeliveryDirectives(a,t.deliveryDirectives,l,h),c||!m)return void this.loadPlaylist(d)}else d=this.getDeliveryDirectives(a,t.deliveryDirectives,l,h);i=this.hls.mainForwardBufferInfo,u=i?i.end-i.len:0,f=1e3*(a.edge-u),p=(0,s.computeReloadInterval)(a,f),a.updated?o>this.requestScheduled+p&&(this.requestScheduled=n.loading.start):this.requestScheduled=-1,void 0!==l&&a.canBlockReload?this.requestScheduled=n.loading.first+p-(1e3*a.partTarget||1e3):this.requestScheduled=(-1===this.requestScheduled?o:this.requestScheduled)+p,c=this.requestScheduled-o,c=Math.max(0,c),this.log("reload live playlist "+e+" in "+Math.round(c)+" ms"),this.timer=self.setTimeout((function(){return r.loadPlaylist(d)}),c)}}else this.clearTimer()},t.getDeliveryDirectives=function(e,t,i,s){var a=(0,r.getSkipValue)(e,i);return null!=t&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,s=t.part,a=r.HlsSkip.No),new r.HlsUrlParameters(i,s,a)},t.retryLoadingOrFail=function(e){var t,i=this,r=this.hls.config,s=this.retryCount{i.r(t),i.d(t,{State:()=>_,default:()=>w});var r=i("./src/polyfills/number.ts"),s=(t=i("./src/task-loop.ts"),i("./src/controller/fragment-tracker.ts")),a=i("./src/utils/buffer-helper.ts"),n=i("./src/utils/logger.ts"),o=i("./src/events.ts"),l=i("./src/errors.ts"),d=i("./src/types/transmuxer.ts"),h=i("./src/utils/mp4-tools.ts"),c=i("./src/utils/discontinuities.ts"),u=i("./src/controller/fragment-finders.ts"),p=i("./src/controller/level-helper.ts"),f=i("./src/loader/fragment-loader.ts"),m=i("./src/crypt/decrypter.ts"),g=i("./src/utils/time-ranges.ts"),y=i("./src/types/loader.ts");function A(e,t){for(var i,r=0;rs.end)&&(n=n buffer:"+(i?g.default.toString(a.BufferHelper.getBuffered(i)):"(detached)")+")"),this.state=_.IDLE,i&&(!this.loadedmetadata&&e.type==y.PlaylistLevelType.MAIN&&i.buffered.length&&(null==(t=this.fragCurrent)?void 0:t.sn)===(null==(e=this.fragPrevious)?void 0:e.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())},t.seekToStartPos=function(){},t._handleFragmentLoadComplete=function(e){var t,i,r=this.transmuxer;r&&(i=e.frag,t=e.part,e=!(e=e.partsLoaded)||0===e.length||e.some((function(e){return!e})),i=new d.ChunkMetadata(i.level,i.sn,i.stats.chunkCount+1,0,t?t.index:-1,!e),r.flush(i))},t._handleFragmentLoadProgress=function(e){},t._doFragLoad=function(e,t,i,s){var a=this;if(void 0===i&&(i=null),!this.levels)throw new Error("frag load aborted, missing levels");var n=null;if(!e.encrypted||null!=(d=e.decryptdata)&&d.key?!e.encrypted&&t.encryptedFragments.length&&this.keyLoader.loadClear(e,t.encryptedFragments):(this.log("Loading key for "+e.sn+" of ["+t.startSN+"-"+t.endSN+"], "+("[stream-controller]"===this.logPrefix?"level":"track")+" "+e.level),this.state=_.KEY_LOADING,this.fragCurrent=e,n=this.keyLoader.load(e).then((function(e){if(!a.fragContextChanged(e.frag))return a.hls.trigger(o.Events.KEY_LOADED,e),e})),this.hls.trigger(o.Events.KEY_LOADING,{frag:e}),this.throwIfFragContextChanged("KEY_LOADING")),i=Math.max(e.start,i||0),this.config.lowLatencyMode&&t){var l=t.partList;if(l&&s){i>e.end&&t.fragmentHint&&(e=t.fragmentHint);var d,h=this.getNextPart(l,e,i);if(-1i&&this.flushMainBuffer(r,e.start)):this.flushMainBuffer(0,e.start))},t.getFwdBufferInfo=function(e,t){var i=this.config,s=this.getLoadPosition();if(!(0,r.isFiniteNumber)(s))return null;var n=a.BufferHelper.bufferInfo(e,s,i.maxBufferHole);return 0===n.len&&void 0!==n.nextStart&&(t=this.fragmentTracker.getBufferedFrag(s,t),t&&n.nextStart=e&&(t.maxMaxBufferLength/=2,this.warn("Reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},t.getNextFragment=function(e,t){var i=t.fragments,r=i.length;if(!r)return null;var s,a=this.config,n=i[0].start;if(t.live){var o=a.initialLiveManifestSize;if(re.start&&e.loaded},t.getInitialLiveFragment=function(e,t){var i,r=this.fragPrevious,s=null;return r?(e.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+r.programDateTime),s=(0,u.findFragmentByPDT)(t,r.endProgramDateTime,this.config.maxFragLookUpTolerance)),s||((i=r.sn+1)>=e.startSN&&i<=e.endSN&&(i=t[i-e.startSN],r.cc===i.cc&&this.log("Live playlist, switching playlist, load frag with next SN: "+(s=i).sn)),s||(s=(0,u.findFragWithCC)(t,r.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: "+s.sn))):null!==(i=this.hls.liveSyncPosition)&&(s=this.getFragmentAtPosition(i,this.bitrateTest?e.fragmentEnd:e.edge,e)),s},t.getFragmentAtPosition=function(e,t,i){var r=this.config,a=this.fragPrevious,n=i.fragments,o=i.endSN,l=i.fragmentHint,d=r.maxFragLookUpTolerance;r=!!(r.lowLatencyMode&&i.partList&&l);return r&&l&&!this.bitrateTest&&(n=n.concat(l),o=l.sn),(l=e=s-a.maxFragLookUpTolerance&&i<=r,null!==t&&n.duration>t&&(i"+e.startSN+" prev-sn: "+(a?a.sn:"na")+" fragments: "+s),o):n},t.waitForCdnTuneIn=function(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)},t.setStartPosition=function(e,t){var i,s=this.startPosition;-1!==(s=s"+e))}}]),Object.defineProperty(i,"prototype",{writable:!1}),S);function S(e,t,i,r){var s;return(s=v.call(this)||this).hls=void 0,s.fragPrevious=null,s.fragCurrent=null,s.fragmentTracker=void 0,s.transmuxer=null,s._state=_.STOPPED,s.media=null,s.mediaBuffer=null,s.config=void 0,s.bitrateTest=!1,s.lastCurrentTime=0,s.nextLoadPosition=0,s.startPosition=0,s.loadedmetadata=!1,s.fragLoadError=0,s.retryDate=0,s.levels=null,s.fragmentLoader=void 0,s.keyLoader=void 0,s.levelLastLoaded=null,s.startFragRequested=!1,s.decrypter=void 0,s.initPTS=[],s.onvseeking=null,s.onvended=null,s.logPrefix="",s.log=void 0,s.warn=void 0,s.logPrefix=r,s.log=n.logger.log.bind(n.logger,r+":"),s.warn=n.logger.warn.bind(n.logger,r+":"),s.hls=e,s.fragmentLoader=new f.default(e.config),s.keyLoader=i,s.fragmentTracker=t,s.config=e.config,s.decrypter=new m.default(e.config),e.on(o.Events.LEVEL_SWITCHING,s.onLevelSwitching,function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(s)),s}},"./src/controller/buffer-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>u});var r=i("./src/polyfills/number.ts"),s=i("./src/events.ts"),a=i("./src/utils/logger.ts"),n=i("./src/errors.ts"),o=i("./src/utils/buffer-helper.ts"),l=(t=i("./src/utils/mediasource-helper.ts"),i("./src/loader/fragment.ts")),d=i("./src/controller/buffer-operation-queue.ts"),h=(0,t.getMediaSource)(),c=/([ha]vc.)(?:\.[^.,]+)+/,u=((i=p.prototype).hasSourceTypes=function(){return 0r.config.appendErrorMaxRetry&&(a.logger.error("[buffer-controller]: Failed "+r.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),t.fatal=!0,r.stopLoad())),r.trigger(s.Events.ERROR,t)}},c)},i.onBufferFlushing=function(e,t){function i(e){return{execute:r.removeExecutor.bind(r,e,t.startOffset,t.endOffset),onStart:function(){},onComplete:function(){r.hls.trigger(s.Events.BUFFER_FLUSHED,{type:e})},onError:function(t){a.logger.warn("[buffer-controller]: Failed to remove from "+e+" SourceBuffer",t)}}}var r=this,n=this.operationQueue;t.type?n.append(i(t.type),t.type):this.getSourceBufferTypes().forEach((function(e){n.append(i(e),e)}))},i.onFragParsed=function(e,t){var i=this,r=t.frag,n=t.part,o=(t=[],(n||r).elementaryStreams);o[l.ElementaryStreamTypes.AUDIOVIDEO]?t.push("audiovideo"):(o[l.ElementaryStreamTypes.AUDIO]&&t.push("audio"),o[l.ElementaryStreamTypes.VIDEO]&&t.push("video")),0===t.length&&a.logger.warn("Fragments must have at least one ElementaryStreamType set. type: "+r.type+" level: "+r.level+" sn: "+r.sn),this.blockBuffers((function(){var e=self.performance.now();r.stats.buffering.end=e,n&&(n.stats.buffering.end=e),e=(n||r).stats;i.hls.trigger(s.Events.FRAG_BUFFERED,{frag:r,part:n,stats:e,id:r.type})}),t)},i.onFragChanged=function(e,t){this.flushBackBuffer()},i.onBufferEos=function(e,t){var i=this;this.getSourceBufferTypes().reduce((function(e,r){var s=i.sourceBuffer[r];return!s||t.type&&t.type!==r||(s.ending=!0,s.ended||(s.ended=!0,a.logger.log("[buffer-controller]: "+r+" sourceBuffer now EOS"))),e&&!(s&&!s.ended)}),!0)&&(a.logger.log("[buffer-controller]: Queueing mediaSource.endOfStream()"),this.blockBuffers((function(){i.getSourceBufferTypes().forEach((function(e){e=i.sourceBuffer[e],e&&(e.ending=!1)}));var e=i.mediaSource;e&&"open"===e.readyState?(a.logger.log("[buffer-controller]: Calling mediaSource.endOfStream()"),e.endOfStream()):e&&a.logger.info("[buffer-controller]: Could not call mediaSource.endOfStream(). mediaSource.readyState: "+e.readyState)})))},i.onLevelUpdated=function(e,t){t=t.details,t.fragments.length&&(this.details=t,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())},i.flushBackBuffer=function(){var e,t,i,n,l,d=this.hls,h=this.details,c=this.media,u=this.sourceBuffer;c&&null!==h&&(e=this.getSourceBufferTypes()).length&&(t=h.live&&null!==d.config.liveBackBufferLength?d.config.liveBackBufferLength:d.config.backBufferLength,!(0,r.isFiniteNumber)(t)||t<0||(i=c.currentTime,n=h.levelTargetDuration,c=Math.max(t,n),l=Math.floor(i/n)*n-c,e.forEach((function(e){var t=u[e];if(t){var r=o.BufferHelper.getBuffered(t);if(0r.start(0)){if(d.trigger(s.Events.BACK_BUFFER_REACHED,{bufferEnd:l}),h.live)d.trigger(s.Events.LIVE_BACK_BUFFER_REACHED,{bufferEnd:l});else if(t.ended&&r.end(r.length-1)-i<2*n)return void a.logger.info("[buffer-controller]: Cannot flush "+e+" back buffer while SourceBuffer is in ended state");d.trigger(s.Events.BUFFER_FLUSHING,{startOffset:0,endOffset:l,type:e})}}}))))},i.updateMediaElementDuration=function(){var e,t,i,s,n,o;this.details&&this.media&&this.mediaSource&&"open"===this.mediaSource.readyState&&(e=this.details,t=this.hls,n=this.media,i=this.mediaSource,s=e.fragments[0].start+e.totalduration,n=n.duration,o=(0,r.isFiniteNumber)(i.duration)?i.duration:0,e.live&&t.config.liveDurationInfinity?(a.logger.log("[buffer-controller]: Media Source duration is set to Infinity"),i.duration=1/0,this.updateSeekableRange(e)):(o{i.r(t),i.d(t,{default:()=>s});var r=i("./src/utils/logger.ts"),s=((t=a.prototype).append=function(e,t){var i=this.queues[t];i.push(e),1===i.length&&this.buffers[t]&&this.executeNext(t)},t.insertAbort=function(e,t){this.queues[t].unshift(e),this.executeNext(t)},t.appendBlocker=function(e){var t,i=new Promise((function(e){t=e})),r={execute:t,onStart:function(){},onComplete:function(){},onError:function(){}};return this.append(r,e),i},t.executeNext=function(e){var t=this.buffers,i=this.queues,s=t[e];i=i[e];if(i.length){var a=i[0];try{a.execute()}catch(t){r.logger.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"),a.onError(t),s&&s.updating||(i.shift(),this.executeNext(e))}}},t.shiftAndExecuteNext=function(e){this.queues[e].shift(),this.executeNext(e)},t.current=function(e){return this.queues[e][0]},a);function a(e){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=e}},"./src/controller/cap-level-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>n});var r=i("./src/events.ts");function s(e,t){for(var i,r=0;rthis.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping)},t.getMaxLevel=function(e){var t=this,i=this.hls.levels;return i.length?(i=i.filter((function(i,r){return a.isLevelAllowed(r,t.restrictedLevels)&&r<=e})),this.clientRect=null,a.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)):-1},t.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},t.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},t.getDimensions=function(){if(this.clientRect)return this.clientRect;var e,t=this.media,i={width:0,height:0};return t&&(e=t.getBoundingClientRect(),i.width=e.width,i.height=e.height,i.width||i.height||(i.width=e.right-e.left||t.width||0,i.height=e.bottom-e.top||t.height||0)),this.clientRect=i},a.isLevelAllowed=function(e,t){return-1===(t=void 0===t?[]:t).indexOf(e)},a.getMaxLevelByMediaSize=function(e,t,i){if(!e||!e.length)return-1;for(var r,s=e.length-1,a=0;a=t||n.height>=i)&&(!(r=e[a+1])||n.width!==r.width||n.height!==r.height)){s=a;break}}return s},s((t=a).prototype,[{key:"mediaWidth",get:function(){return this.getDimensions().width*this.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*this.contentScaleFactor}},{key:"contentScaleFactor",get:function(){var e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch(e){}return e}}]),Object.defineProperty(t,"prototype",{writable:!1});const n=a},"./src/controller/cmcd-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>u});var r=i("./src/events.ts"),s=i("./src/types/cmcd.ts"),a=i("./src/utils/buffer-helper.ts"),n=i("./src/utils/logger.ts");function o(e,t){for(var i,r=0;r=e.length?{done:!0}:{done:!1,value:e[i++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=new Array(t);it&&(t=a.bitrate)}return 0{i.r(t),i.d(t,{default:()=>S});var r=i("./src/events.ts"),s=i("./src/errors.ts"),a=i("./src/utils/logger.ts"),n=i("./src/utils/mediakeys-helper.ts"),o=i("./src/utils/keysystem-util.ts"),l=i("./src/utils/numeric-encoding-utils.ts"),d=i("./src/loader/level-key.ts"),h=i("./src/utils/hex.ts"),c=i("./src/utils/mp4-tools.ts"),u=(t=i("./node_modules/eventemitter3/index.js"),i.n(t));function p(e){var t="function"==typeof Map?new Map:void 0;return(p=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return f(e,arguments,g(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),m(i,e)})(e)}function f(e,t,i){return(f=function(){if("undefined"!=typeof Reflect&&Reflect.construct&&!Reflect.construct.sham){if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),1}catch(e){return}}}()?Reflect.construct.bind():function(e,t,i){var r=[null];r.push.apply(r,t),t=new(Function.bind.apply(e,r));return i&&m(t,i.prototype),t}).apply(null,arguments)}function m(e,t){return(m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function g(e){return(g=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var y="[eme]";(i=A.prototype).destroy=function(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null},i.registerListeners=function(){this.hls.on(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(r.Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(r.Events.MANIFEST_LOADED,this.onManifestLoaded,this)},i.unregisterListeners=function(){this.hls.off(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(r.Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(r.Events.MANIFEST_LOADED,this.onManifestLoaded,this)},i.getLicenseServerUrl=function(e){var t=this.config,i=t.drmSystems;t=t.widevineLicenseUrl,i=i[e];if(i)return i.licenseUrl;if(e===n.KeySystems.WIDEVINE&&t)return t;throw new Error('no license server URL configured for key-system "'+e+'"')},i.getServerCertificateUrl=function(e){var t=this.config.drmSystems[e];if(t)return t.serverCertificateUrl;this.log('No Server Certificate in config.drmSystems["'+e+'"]')},i.attemptKeySystemAccess=function(e){function t(e,t,i){return!!e&&i.indexOf(e)===t}var i=this,r=this.hls.levels,a=r.map((function(e){return e.audioCodec})).filter(t),n=r.map((function(e){return e.videoCodec})).filter(t);return a.length+n.length===0&&n.push("avc1.42e01e"),new Promise((function(t,r){!function e(o){var l=o.shift();i.getMediaKeysPromise(l,a,n).then((function(e){return t({keySystem:l,mediaKeys:e})})).catch((function(t){o.length?e(o):r(t instanceof _?t:new _({type:s.ErrorTypes.KEY_SYSTEM_ERROR,details:s.ErrorDetails.KEY_SYSTEM_NO_ACCESS,error:t,fatal:!0},t.message))}))}(e)}))},i.requestMediaKeySystemAccess=function(e,t){var i,r=this.config.requestMediaKeySystemAccessFunc;return"function"!=typeof r?(i="Configured requestMediaKeySystemAccess is not a function "+r,null===n.requestMediaKeySystemAccess&&"http:"===self.location.protocol&&(i="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(i))):r(e,t)},i.getMediaKeysPromise=function(e,t,i){var r,s=this,a=(t=(0,n.getSupportedMediaKeySystemConfigurations)(e,t,i,this.config.drmSystemOptions),this.keySystemAccessPromises[e]);i=null==a?void 0:a.keySystemAccess;return i?i.then((function(){return a.mediaKeys})):(this.log('Requesting encrypted media "'+e+'" key-system access with config: '+JSON.stringify(t)),i=this.requestMediaKeySystemAccess(e,t),r=this.keySystemAccessPromises[e]={keySystemAccess:i},i.catch((function(t){s.log('Failed to obtain access to key-system "'+e+'": '+t)})),i.then((function(t){s.log('Access for key-system "'+t.keySystem+'" obtained');var i=s.fetchServerCertificate(e);return s.log('Create media-keys for "'+e+'"'),r.mediaKeys=t.createMediaKeys().then((function(t){return s.log('Media-keys created for "'+e+'"'),i.then((function(i){return i?s.setMediaKeysServerCertificate(t,e,i):t}))})),r.mediaKeys.catch((function(t){s.error('Failed to create media-keys for "'+e+'"}: '+t)})),r.mediaKeys})))},i.createMediaKeySessionContext=function(e){var t=e.decryptdata,i=e.keySystem,r=(e=e.mediaKeys,console.assert(!!e,"mediaKeys is defined"),this.log('Creating key-system session "'+i+'" keyId: '+h.default.hexDump(t.keyId||[])),e.createSession());t={decryptdata:t,keySystem:i,mediaKeys:e,mediaKeysSession:r,keyStatus:"status-pending"};return this.mediaKeySessions.push(t),t},i.renewKeySession=function(e){var t,i,r=e.decryptdata;r.pssh?(t=this.createMediaKeySessionContext(e),i=this.getKeyIdString(r),this.keyIdToKeySessionPromise[i]=this.generateRequestWithPreferredKeySession(t,"cenc",r.pssh,"expired")):this.warn("Could not renew expired session. Missing pssh initData."),this.removeSession(e)},i.getKeyIdString=function(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(null===e.keyId)throw new Error("keyId is null");return h.default.hexDump(e.keyId)},i.updateKeySession=function(e,t){var i=e.mediaKeysSession;return this.log('Updating key-session "'+i.sessionId+'" for keyID '+h.default.hexDump((null==(e=e.decryptdata)?void 0:e.keyId)||[])+"\n } (data length: "+(t&&t.byteLength)+")"),i.update(t)},i.selectKeySystemFormat=function(e){var t=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log("Selecting key-system from fragment (sn: "+e.sn+" "+e.type+": "+e.level+") key formats "+t.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(t)),this.keyFormatPromise},i.getKeyFormatPromise=function(e){var t=this;return new Promise((function(i,r){var s=(0,n.getKeySystemsForConfig)(t.config),a=e.map(n.keySystemFormatToKeySystemDomain).filter((function(e){return!!e&&-1!==s.indexOf(e)}));return t.getKeySystemSelectionPromise(a).then((function(e){e=e.keySystem;var t=(0,n.keySystemDomainToKeySystemFormat)(e);t?i(t):r(new Error('Unable to find format for key-system "'+e+'"'))})).catch(r)}))},i.loadKey=function(e){var t=this,i=e.keyInfo.decryptdata,r=this.getKeyIdString(i),s="(keyId: "+r+' format: "'+i.keyFormat+'" method: '+i.method+" uri: "+i.uri+")",a=(this.log("Starting session for key "+s),this.keyIdToKeySessionPromise[r]);return a||(a=this.keyIdToKeySessionPromise[r]=this.getKeySystemForKeyPromise(i).then((function(r){var a=r.keySystem,n=r.mediaKeys;return t.throwIfDestroyed(),t.log("Handle encrypted media sn: "+e.frag.sn+" "+e.frag.type+": "+e.frag.level+" using key "+s),t.attemptSetMediaKeys(a,n).then((function(){t.throwIfDestroyed();var e=t.createMediaKeySessionContext({keySystem:a,mediaKeys:n,decryptdata:i});return t.generateRequestWithPreferredKeySession(e,"cenc",i.pssh,"playlist-key")}))}))).catch((function(e){return t.handleError(e)})),a},i.throwIfDestroyed=function(e){if(!this.hls)throw new Error("invalid state")},i.handleError=function(e){this.hls&&(this.error(e.message),e instanceof _?this.hls.trigger(r.Events.ERROR,e.data):this.hls.trigger(r.Events.ERROR,{type:s.ErrorTypes.KEY_SYSTEM_ERROR,details:s.ErrorDetails.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0}))},i.getKeySystemForKeyPromise=function(e){var t=this.getKeyIdString(e);t=this.keyIdToKeySessionPromise[t];return t||(e=(t=(0,n.keySystemFormatToKeySystemDomain)(e.keyFormat))?[t]:(0,n.getKeySystemsForConfig)(this.config),this.attemptKeySystemAccess(e))},i.getKeySystemSelectionPromise=function(e){if(0===(e=e.length?e:(0,n.getKeySystemsForConfig)(this.config)).length)throw new _({type:s.ErrorTypes.KEY_SYSTEM_ERROR,details:s.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(e)},i._onMediaEncrypted=function(e){var t,i,r=this,s=e.initDataType,a=e.initData;if(this.debug('"'+e.type+'" event: init data type: "'+s+'"'),null!==a){if("sinf"===s&&this.config.drmSystems[n.KeySystems.FAIRPLAY]){var o=(0,c.bin2str)(new Uint8Array(a));try{var u=(0,l.base64Decode)(JSON.parse(o).sinf),p=(0,c.parseSinf)(new Uint8Array(u));if(!p)return;t=p.subarray(8,24),i=n.KeySystems.FAIRPLAY}catch(e){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{if(o=(0,c.parsePssh)(a),null===o)return;0===o.version&&o.systemId===n.KeySystemIds.WIDEVINE&&o.data&&(t=o.data.subarray(8,24)),i=(0,n.keySystemIdToKeySystemDomain)(o.systemId)}if(i&&t){for(var f=h.default.hexDump(t),m=this.keyIdToKeySessionPromise,g=this.mediaKeySessions,y=m[f],A=0;A{i.r(t),i.d(t,{default:()=>n});var r=i("./src/events.ts"),s=i("./src/utils/logger.ts");function a(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}(t=a.prototype).setStreamController=function(e){this.streamController=e},t.registerListeners=function(){this.hls.on(r.Events.MEDIA_ATTACHING,this.onMediaAttaching,this)},t.unregisterListeners=function(){this.hls.off(r.Events.MEDIA_ATTACHING,this.onMediaAttaching)},t.destroy=function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null},t.onMediaAttaching=function(e,t){var i=this.hls.config;i.capLevelOnFPSDrop&&(t=t.media instanceof self.HTMLVideoElement?t.media:null,(this.media=t)&&"function"==typeof t.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod))},t.checkFPS=function(e,t,i){var a,n,o,l,d=performance.now();t&&(this.lastTime&&(l=d-this.lastTime,a=i-this.lastDroppedFrames,n=t-this.lastDecodedFrames,l=1e3*a/l,(o=this.hls).trigger(r.Events.FPS_DROP,{currentDropped:a,currentDecoded:n,totalDroppedFrames:i}),0o.config.fpsDroppedMonitoringThreshold*n&&(l=o.currentLevel,s.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+l),0=l)&&(o.trigger(r.Events.FPS_DROP_LEVEL_CAPPING,{level:--l,droppedLevel:o.currentLevel}),o.autoLevelCapping=l,this.streamController.nextLevelSwitch()))),this.lastTime=d,this.lastDroppedFrames=i,this.lastDecodedFrames=t)},t.checkFPSInterval=function(){var e,t=this.media;t&&(this.isVideoPlaybackQualityAvailable?(e=t.getVideoPlaybackQuality(),this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)):this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount))};const n=a},"./src/controller/fragment-finders.ts":(e,t,i)=>{i.r(t),i.d(t,{findFragWithCC:()=>function(e,t){return s.default.search(e,(function(e){return e.cct?-1:0}))},findFragmentByPDT:()=>function(e,t,i){if(null===t||!Array.isArray(e)||!e.length||!(0,r.isFiniteNumber)(t))return null;if(t<(e[0].programDateTime||0))return null;if(t>=(e[e.length-1].endProgramDateTime||0))return null;i=i||0;for(var s=0;sfunction(e,t,i,r){void 0===i&&(i=0),void 0===r&&(r=0);var n=null;return e?n=t[e.sn-t[0].sn+1]||null:0===i&&0===t[0].start&&(n=t[0]),n&&0===a(i,r,n)?n:(t=s.default.search(t,a.bind(null,i,r)),!t||t===e&&n?n:t)},fragmentWithinToleranceTest:()=>a,pdtWithinToleranceTest:()=>n});var r=i("./src/polyfills/number.ts"),s=i("./src/utils/binary-search.ts");function a(e,t,i){return void 0===t&&(t=0),i.start<=(e=void 0===e?0:e)&&i.start+i.duration>e?0:(t=Math.min(t,i.duration+(i.deltaPTS||0)),i.start+i.duration-t<=e?1:i.start-t>e&&i.start?-1:0)}function n(e,t,i){return t=1e3*Math.min(t,i.duration+(i.deltaPTS||0)),(i.endProgramDateTime||0)-t>e}},"./src/controller/fragment-tracker.ts":(e,t,i)=>{i.r(t),i.d(t,{FragmentState:()=>r,FragmentTracker:()=>n});var r,s=i("./src/events.ts"),a=i("./src/types/loader.ts"),n=((t=r=r||{}).NOT_LOADED="NOT_LOADED",t.APPENDING="APPENDING",t.PARTIAL="PARTIAL",t.OK="OK",(i=o.prototype)._registerListeners=function(){var e=this.hls;e.on(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.on(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.on(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i._unregisterListeners=function(){var e=this.hls;e.off(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.off(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.off(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i.destroy=function(){this._unregisterListeners(),this.fragments=this.endListFragments=this.timeRanges=this.activeFragment=this.activeParts=null},i.getAppendedFrag=function(e,t){if(t===a.PlaylistLevelType.MAIN){var i=this.activeFragment,r=this.activeParts;if(!i)return null;if(r)for(var s=r.length;s--;){var n=r[s],o=n?n.end:i.appendedPTS;if(n.start<=e&&void 0!==o&&e<=o)return 9o.startPTS?r.appendedPTS=Math.max(d,r.appendedPTS||0):r.appendedPTS=o.endPTS}}}))},i.onFragBuffered=function(e,t){this.detectPartialFragments(t)},i.hasFragment=function(e){return e=d(e),!!this.fragments[e]},i.removeFragmentsInRange=function(e,t,i){var r=this;Object.keys(this.fragments).forEach((function(s){s=r.fragments[s];s&&s.buffered&&(s=s.body).type===i&&s.starte&&r.removeFragment(s)}))},i.removeFragment=function(e){var t=d(e);e.stats.loaded=0,e.clearElementaryStreamInfo(),e.appendedPTS=void 0,delete this.fragments[t],e.endList&&delete this.endListFragments[e.type]},i.removeAllFragments=function(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activeFragment=null,this.activeParts=null},o);function o(e){this.activeFragment=null,this.activeParts=null,this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hls=e,this._registerListeners()}function l(e){var t;return e.buffered&&((null==(t=e.range.video)?void 0:t.partial)||(null==(t=e.range.audio)?void 0:t.partial))}function d(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn}},"./src/controller/gap-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{MAX_START_GAP_JUMP:()=>l,SKIP_BUFFER_HOLE_STEP_SECONDS:()=>d,SKIP_BUFFER_RANGE_START:()=>h,STALL_MINIMUM_DURATION_MS:()=>o,default:()=>c});var r=i("./src/utils/buffer-helper.ts"),s=i("./src/errors.ts"),a=i("./src/events.ts"),n=i("./src/utils/logger.ts"),o=250,l=2,d=.1,h=.05,c=((t=u.prototype).destroy=function(){this.media=null,this.hls=this.fragmentTracker=null},t.poll=function(e,t){var i=this.config,s=this.media,a=this.stalled;if(null!==s){var d=s.currentTime,h=s.seeking,c=this.seeking&&!h,u=!this.seeking&&h;if(this.seeking=h,d===e){if((u||c)&&(this.stalled=null),!(s.paused&&!h||s.ended||0===s.playbackRate)&&r.BufferHelper.getBuffered(s).length&&(e=r.BufferHelper.bufferInfo(s,d,0),u=0l,t=!c||t&&t.start<=d||li.maxBufferHole&&t>1e3*i.highBufferWatchdogPeriod&&(n.logger.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer()))},t._reportStall=function(e){var t=this.hls,i=this.media;!this.stallReported&&i&&(this.stallReported=!0,n.logger.warn("Playback stalling at @"+i.currentTime+" due to low buffer ("+JSON.stringify(e)+")"),t.trigger(a.Events.ERROR,{type:s.ErrorTypes.MEDIA_ERROR,details:s.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,buffer:e.len}))},t._trySkipBufferHole=function(e){var t=this.config,i=this.hls,o=this.media;if(null===o)return 0;for(var l=o.currentTime,c=0,u=r.BufferHelper.getBuffered(o),p=0;p=c&&l{i.r(t),i.d(t,{default:()=>p});var r=i("./src/polyfills/number.ts"),s=i("./src/events.ts"),a=i("./src/utils/texttrack-utils.ts"),n=i("./src/demux/id3.ts"),o=i("./src/loader/date-range.ts"),l=i("./src/types/demuxer.ts");function d(){return self.WebKitDataCue||self.VTTCue||self.TextTrackCue}var h=function(){var e=d();try{new e(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY}();function c(e,t){return e.getTime()/1e3-t}function u(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=e,this._registerListeners()}(t=u.prototype).destroy=function(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null},t._registerListeners=function(){var e=this.hls;e.on(s.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(s.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(s.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(s.Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(s.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(s.Events.LEVEL_UPDATED,this.onLevelUpdated,this)},t._unregisterListeners=function(){var e=this.hls;e.off(s.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(s.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(s.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(s.Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(s.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(s.Events.LEVEL_UPDATED,this.onLevelUpdated,this)},t.onMediaAttached=function(e,t){this.media=t.media},t.onMediaDetaching=function(){this.id3Track&&((0,a.clearCurrentCues)(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})},t.onManifestLoading=function(){this.dateRangeCuesAppended={}},t.createTrack=function(e){return e=this.getID3Track(e.textTracks),e.mode="hidden",e},t.getID3Track=function(e){if(this.media){for(var t=0;tt.startDate&&e.push(r),e}),[]).sort((function(e,t){return e.startDate.getTime()-t.startDate.getTime()}))[0])&&(f=c(y.startDate,m),d=!0);for(var A,b=Object.keys(t.attr),v=0;v{i.r(t),i.d(t,{default:()=>o});var r=i("./src/errors.ts"),s=i("./src/events.ts"),a=i("./src/utils/logger.ts");function n(e,t){for(var i,r=0;r{i.r(t),i.d(t,{default:()=>f});var r=i("./src/types/level.ts"),s=i("./src/events.ts"),a=i("./src/errors.ts"),n=i("./src/utils/codecs.ts"),o=i("./src/controller/level-helper.ts"),l=(t=i("./src/controller/base-playlist-controller.ts"),i("./src/types/loader.ts"));function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var t=1;t(t.attrs["HDCP-LEVEL"]||"")?1:-1:e.bitrate!==t.bitrate?e.bitrate-t.bitrate:e.attrs.SCORE!==t.attrs.SCORE?e.attrs.decimalFloatingPoint("SCORE")-t.attrs.decimalFloatingPoint("SCORE"):f&&e.height!==t.height?e.height-t.height:0})),this._levels=d;for(var y=0;ythis.hls.config.fragLoadingMaxRetry&&(n=o)):n=o);break;case a.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:var c=s.attrs["HDCP-LEVEL"];c&&(this.hls.maxHdcpLevel=r.HdcpLevels[r.HdcpLevels.indexOf(c)-1],this.warn('Restricting playback to HDCP-LEVEL of "'+this.hls.maxHdcpLevel+'" or lower'));case a.ErrorDetails.FRAG_PARSING_ERROR:case a.ErrorDetails.KEY_SYSTEM_NO_SESSION:n=(null==(o=t.frag)?void 0:o.type)===l.PlaylistLevelType.MAIN?t.frag.level:this.currentLevelIndex,t.levelRetry=!1;break;case a.ErrorDetails.LEVEL_LOAD_ERROR:case a.ErrorDetails.LEVEL_LOAD_TIMEOUT:i&&(i.deliveryDirectives&&(h=!1),n=i.level),d=!0;break;case a.ErrorDetails.REMUX_ALLOC_ERROR:n=null!=(c=t.level)?c:this.currentLevelIndex,d=!0}void 0!==n&&this.recoverLevel(t,n,d,h)}}},t.recoverLevel=function(e,t,i,r){var s=e.details,a=this._levels[t];if(a.loadError++,i){if(!this.retryLoadingOrFail(e))return void(this.currentLevelIndex=-1);e.levelRetry=!0}if(r)if(i=a.url.length,1=t.length){var i=e<0;if(this.hls.trigger(s.Events.ERROR,{type:a.ErrorTypes.OTHER_ERROR,details:a.ErrorDetails.LEVEL_SWITCH_ERROR,level:e,fatal:i,reason:"invalid level idx"}),i)return;e=Math.min(e,t.length-1)}this.clearTimer();i=this.currentLevelIndex;var r=t[i];t=t[e],i=(this.log("switching to level "+e+" from "+i),d({},t,{level:this.currentLevelIndex=e,maxBitrate:t.maxBitrate,uri:t.uri,urlId:t.urlId})),e=(delete i._urlId,this.hls.trigger(s.Events.LEVEL_SWITCHING,i),t.details);e&&!e.live||(i=this.switchParams(t.uri,null==r?void 0:r.details),this.loadPlaylist(i))}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){var e;return void 0===this._startLevel?void 0!==(e=this.hls.config.startLevel)?e:this._firstLevel:this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),Object.defineProperty(i,"prototype",{writable:!1}),m);function m(e){return(e=u.call(this,e,"[level-controller]")||this)._levels=[],e._firstLevel=-1,e._startLevel=void 0,e.currentLevelIndex=-1,e.manualLevelIndex=-1,e.onParsedComplete=void 0,e._registerListeners(),e}},"./src/controller/level-helper.ts":(e,t,i)=>{i.r(t),i.d(t,{addGroupId:()=>function(e,t,i){switch(t){case"audio":e.audioGroupIds||(e.audioGroupIds=[]),e.audioGroupIds.push(i);break;case"text":e.textGroupIds||(e.textGroupIds=[]),e.textGroupIds.push(i)}},addSliding:()=>u,adjustSliding:()=>c,assignTrackIdsByGroup:()=>function(e){var t={};e.forEach((function(e){var i=e.groupId||"";e.id=t[i]=t[i]||0,t[i]++}))},computeReloadInterval:()=>function(e,t){void 0===t&&(t=1/0);var i=1e3*e.targetduration;return e.updated?(e=e.fragments).length&&t<4*i&&(t=1e3*e[e.length-1].duration)function(e,t,i){if(!e||!e.details)return null;var r;e=e.details;return(r=e.fragments[t-e.startSN])||((r=e.fragmentHint)&&r.sn===t?r:tfunction(e,t,i){if(!e||!e.details)return null;var r=e.details.partList;if(r)for(var s=r.length;s--;){var a=r[s];if(a.index===i&&a.fragment.sn===t)return a}return null},mapFragmentIntersection:()=>h,mapPartIntersection:()=>d,mergeDetails:()=>function(e,t){for(var i=null,o=e.fragments,u=o.length-1;0<=u;u--){var p=o[u].initSegment;if(p){i=p;break}}e.fragmentHint&&delete e.fragmentHint.endPTS;var f,m,g,y=0;if(h(e,t,(function(e,s){e.relurl&&(y=e.cc-s.cc),(0,r.isFiniteNumber)(e.startPTS)&&(0,r.isFiniteNumber)(e.endPTS)&&(s.start=s.startPTS=e.startPTS,s.startDTS=e.startDTS,s.appendedPTS=e.appendedPTS,s.maxStartPTS=e.maxStartPTS,s.endPTS=e.endPTS,s.endDTS=e.endDTS,s.minEndPTS=e.minEndPTS,s.duration=e.endPTS-e.startPTS,s.duration&&(f=s),t.PTSKnown=t.alignedSliding=!0),s.elementaryStreams=e.elementaryStreams,s.loader=e.loader,s.stats=e.stats,s.urlId=e.urlId,e.initSegment&&(s.initSegment=e.initSegment,i=e.initSegment)})),i&&(t.fragmentHint?t.fragments.concat(t.fragmentHint):t.fragments).forEach((function(e){var t;e.initSegment&&e.initSegment.relurl!==(null==(t=i)?void 0:t.relurl)||(e.initSegment=i)})),t.skippedSegments)if(t.deltaUpdateFailed=t.fragments.some((function(e){return!e})),t.deltaUpdateFailed){s.logger.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var A=t.skippedSegments;A--;)t.fragments.shift();t.startSN=t.fragments[0].sn,t.startCC=t.fragments[0].cc}else t.canSkipDateRanges&&(t.dateRanges=(w=e.dateRanges,m=t.dateRanges,_=t.recentlyRemovedDateranges,g=n({},w),_&&_.forEach((function(e){delete g[e]})),Object.keys(m).forEach((function(e){var t=new a.DateRange(m[e].attr,g[e]);t.isValid?g[e]=t:s.logger.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "'+JSON.stringify(m[e].attr)+'"')})),g));var b=t.fragments;if(y){s.logger.warn("discontinuity sliding from playlist, take drift into account");for(var v=0;vl,updatePTS:()=>function(e,t,i){o(e[t],e[i])}});var r=i("./src/polyfills/number.ts"),s=i("./src/utils/logger.ts"),a=i("./src/loader/date-range.ts");function n(){return(n=Object.assign?Object.assign.bind():function(e){for(var t=1;te.sn?(i=s-e.start,e):(i=e.start-s,t)).duration!==i&&(s.duration=i)):t.sn>e.sn?e.cc===t.cc&&e.minEndPTS?t.start=e.start+(e.minEndPTS-e.start):t.start=e.start+e.duration:t.start=Math.max(e.start-t.duration,0)}function l(e,t,i,a,n,l){a-i<=0&&(s.logger.warn("Fragment should have a positive duration",t),a=i+t.duration,l=n+t.duration);var d=i,h=a,c=t.startPTS,u=t.endPTS,p=((0,r.isFiniteNumber)(c)&&(p=Math.abs(c-i),(0,r.isFiniteNumber)(t.deltaPTS)?t.deltaPTS=Math.max(p,t.deltaPTS):t.deltaPTS=p,d=Math.max(i,c),i=Math.min(i,c),n=Math.min(n,t.startDTS),h=Math.min(a,u),a=Math.max(a,u),l=Math.max(l,t.endDTS)),t.duration=a-i,i-t.start);t.start=t.startPTS=i,t.maxStartPTS=d,t.startDTS=n,t.endPTS=a,t.minEndPTS=h,t.endDTS=l;var f;c=t.sn;if(!e||ce.endSN)return 0;u=c-e.startSN;var m=e.fragments;for(m[u]=t,f=u;0=e.length||u(t,e[i].start)}function u(e,t){if(t){for(var i=e.fragments,r=e.skippedSegments;r{i.r(t),i.d(t,{default:()=>A});var r=i("./src/polyfills/number.ts"),s=i("./src/controller/base-stream-controller.ts"),a=i("./src/is-supported.ts"),n=i("./src/events.ts"),o=i("./src/utils/buffer-helper.ts"),l=i("./src/controller/fragment-tracker.ts"),d=i("./src/types/loader.ts"),h=i("./src/loader/fragment.ts"),c=i("./src/demux/transmuxer-interface.ts"),u=i("./src/types/transmuxer.ts"),p=i("./src/controller/gap-controller.ts"),f=i("./src/errors.ts");function m(e,t){for(var i,r=0;r=this.getMaxBufferLength(t.maxBitrate)||(this.backtrackFragment&&this.backtrackFragment.start>r.end&&(this.backtrackFragment=null),i=this.backtrackFragment?this.backtrackFragment.start:r.end,e=this.getNextFragment(i,a),this.couldBacktrack&&!this.fragPrevious&&e&&"initSegment"!==e.sn&&this.fragmentTracker.getState(e)!==l.FragmentState.OK?(t=(null!=(o=this.backtrackFragment)?o:e).sn-a.startSN,(o=a.fragments[t-1])&&e.cc===o.cc&&this.fragmentTracker.removeFragment(e=o)):this.backtrackFragment&&r.len&&(this.backtrackFragment=null),e&&this.fragmentTracker.getState(e)===l.FragmentState.OK&&this.nextLoadPosition>i&&((o=((t=this.audioOnly&&!this.altAudio?h.ElementaryStreamTypes.AUDIO:h.ElementaryStreamTypes.VIDEO)===h.ElementaryStreamTypes.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media)&&this.afterBufferFlushed(o,t,d.PlaylistLevelType.MAIN),e=this.getNextFragment(this.nextLoadPosition,a)),e&&(!e.initSegment||e.initSegment.data||this.bitrateTest||(e=e.initSegment),this.loadFragment(e,a,i)))}},i.loadFragment=function(e,t,i){var r=this.fragmentTracker.getState(e);this.fragCurrent=e,r===l.FragmentState.NOT_LOADED?"initSegment"===e.sn?this._loadInitSegment(e,t):this.bitrateTest?(this.log("Fragment "+e.sn+" of level "+e.level+" is being downloaded to test bitrate and will not be buffered"),this._loadBitrateTestFrag(e,t)):(this.startFragRequested=!0,y.prototype.loadFragment.call(this,e,t,i)):r===l.FragmentState.APPENDING?this.reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e):0===(null==(t=this.media)?void 0:t.buffered.length)&&this.fragmentTracker.removeAllFragments()},i.getAppendedFrag=function(e){return e=this.fragmentTracker.getAppendedFrag(e,d.PlaylistLevelType.MAIN),e&&"fragment"in e?e.fragment:e},i.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,d.PlaylistLevelType.MAIN)},i.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.end+.5):null},i.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},i.nextLevelSwitch=function(){var e,t=this.levels,i=this.media;null!=i&&i.readyState&&((e=this.getAppendedFrag(i.currentTime))&&1{i.r(t),i.d(t,{SubtitleStreamController:()=>m});var r=i("./src/events.ts"),s=i("./src/utils/buffer-helper.ts"),a=i("./src/controller/fragment-finders.ts"),n=i("./src/utils/discontinuities.ts"),o=i("./src/controller/level-helper.ts"),l=i("./src/controller/fragment-tracker.ts"),d=i("./src/controller/base-stream-controller.ts"),h=i("./src/types/loader.ts"),c=i("./src/types/level.ts");function u(e,t){for(var i,r=0;r=r[n].start&&a<=r[n].end){s=r[n];break}t=i.start+i.duration,s?s.end=t:r.push(s={start:a,end:t}),this.fragmentTracker.fragBuffered(i)}}},i.onBufferFlushing=function(e,t){var i,r,s,a=t.startOffset,n=t.endOffset;0===a&&n!==Number.POSITIVE_INFINITY&&(i=this.currentTrackId,(r=this.levels).length&&r[i]&&r[i].details&&((s=n-r[i].details.targetduration)<=0||(t.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach((function(e){for(var t=0;t=s.length||t!==r)&&l){if(this.mediaBuffer=this.mediaBufferTimeRanges,s=0,i.live||null!=(r=l.details)&&r.live){if(r=this.mainDetails,i.deltaUpdateFailed||!r)return;var h=r.fragments[0];l.details?0===(s=this.alignPlaylists(i,l.details))&&h&&(s=h.start,(0,o.addSliding)(i,s)):i.hasProgramDateTime&&r.hasProgramDateTime?((0,n.alignMediaPlaylistByPDT)(i,r),s=i.fragments[0].start):h&&(s=h.start,(0,o.addSliding)(i,s))}l.details=i,this.levelLastLoaded=t,this.startFragRequested||!this.mainDetails&&i.live||this.setStartPosition(l.details,s),this.tick(),!i.live||this.fragCurrent||!this.media||this.state!==d.State.IDLE||(0,a.findFragmentByPTS)(null,i.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),l.details=void 0)}}},i._handleFragmentLoadComplete=function(e){var t,i=this,s=e.frag,a=(e=e.payload,s.decryptdata),n=this.hls;!this.fragContextChanged(s)&&e&&0this.getMaxBufferLength(null==n?void 0:n.len)+u||(console.assert(e,"Subtitle track details are defined on idle subtitle stream controller tick"),n=(r=e.fragments).length,u=e.edge,o=null,c=this.fragPrevious,i>>=0)>r-1)throw new DOMException("Failed to execute '"+t+"' on 'TimeRanges': The index provided ("+i+") is greater than the maximum bound ("+r+")");return e[i][t]}this.buffered=void 0,this.buffered={get length(){return e.length},end:function(i){return t("end",i,e.length)},start:function(i){return t("start",i,e.length)}}};function y(e,t,i){return(e=f.call(this,e,t,i,"[subtitle-stream-controller]")||this).levels=[],e.currentTrackId=-1,e.tracksBuffered=[],e.mainDetails=null,e._registerListeners(),e}},"./src/controller/subtitle-track-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>c});var r,s=i("./src/events.ts"),a=i("./src/utils/texttrack-utils.ts"),n=(t=i("./src/controller/base-playlist-controller.ts"),i("./src/types/loader.ts"));function o(e,t){for(var i,r=0;r=l.length||(this.clearTimer(),i=l[e],this.log("Switching to subtitle track "+e),this.trackId=e,i?(l=i.id,r=i.groupId,a=i.name,n=i.type,o=i.url,this.hls.trigger(s.Events.SUBTITLE_TRACK_SWITCH,{id:l,groupId:void 0===r?"":r,name:a,type:n,url:o}),l=this.switchParams(i.url,null==t?void 0:t.details),this.loadPlaylist(l)):this.hls.trigger(s.Events.SUBTITLE_TRACK_SWITCH,{id:e}))):this.queuedDefaultTrack=e},t.onTextTracksChanged=function(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),this.media&&this.hls.config.renderTextTracksNatively){for(var e=-1,t=h(this.media.textTracks),i=0;i{i.r(t),i.d(t,{TimelineController:()=>p});var r=i("./src/polyfills/number.ts"),s=i("./src/events.ts"),a=i("./src/utils/cea-608-parser.ts"),n=i("./src/utils/output-filter.ts"),o=i("./src/utils/webvtt-parser.ts"),l=i("./src/utils/texttrack-utils.ts"),d=i("./src/utils/imsc1-ttml-parser.ts"),h=i("./src/utils/mp4-tools.ts"),c=i("./src/types/loader.ts"),u=i("./src/utils/logger.ts"),p=((t=f.prototype).destroy=function(){var e=this.hls;e.off(s.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(s.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(s.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(s.Events.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(s.Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(s.Events.FRAG_LOADING,this.onFragLoading,this),e.off(s.Events.FRAG_LOADED,this.onFragLoaded,this),e.off(s.Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(s.Events.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(s.Events.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(s.Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(s.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.cea608Parser1=this.cea608Parser2=null},t.addCues=function(e,t,i,r,a){for(var n,o,l,d=!1,h=a.length;h--;){var c=a[h],u=(n=c[0],u=c[1],o=t,Math.min(u,i)-Math.max(n,o));if(0<=u&&(c[0]=Math.min(c[0],t),c[1]=Math.max(c[1],i),d=!0,.5{i.r(t),i.d(t,{default:()=>r}),s.prototype.decrypt=function(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)};var r=s;function s(e,t){this.subtle=void 0,this.aesIV=void 0,this.subtle=e,this.aesIV=t}},"./src/crypt/aes-decryptor.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>s,removePadding:()=>function(e){var t=e.byteLength,i=t&&new DataView(e.buffer).getUint8(t-1);return i?(0,r.sliceUint8)(e,0,t-i):e}});var r=i("./src/utils/typed-array.ts");(t=a.prototype).uint8ArrayToUint32Array_=function(e){for(var t=new DataView(e),i=new Uint32Array(4),r=0;r<4;r++)i[r]=t.getUint32(4*r);return i},t.initTable=function(){var e=this.sBox,t=this.invSBox,i=this.subMix,r=i[0],s=i[1],a=i[2],n=i[3],o=(i=this.invSubMix,i[0]),l=i[1],d=i[2],h=i[3],c=new Uint32Array(256),u=0,p=0,f=0;for(f=0;f<256;f++)c[f]=f<128?f<<1:f<<1^283;for(f=0;f<256;f++){var m=p^p<<1^p<<2^p<<3^p<<4,g=(e[u]=m=m>>>8^255&m^99,c[t[m]=u]),y=c[g],A=c[y],b=257*c[m]^16843008*m;r[u]=b<<24|b>>>8,s[u]=b<<16|b>>>16,a[u]=b<<8|b>>>24,n[u]=b,o[m]=(b=16843009*A^65537*y^257*g^16843008*u)<<24|b>>>8,l[m]=b<<16|b>>>16,d[m]=b<<8|b>>>24,h[m]=b,u?(u=g^c[c[c[A^g]]],p^=c[c[p]]):u=p=1}},t.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),i=!0,r=0;r{i.r(t),i.d(t,{default:()=>d});var r=i("./src/crypt/aes-crypto.ts"),s=i("./src/crypt/fast-aes-key.ts"),a=i("./src/crypt/aes-decryptor.ts"),n=i("./src/utils/logger.ts"),o=i("./src/utils/mp4-tools.ts"),l=i("./src/utils/typed-array.ts"),d=((t=h.prototype).destroy=function(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null},t.isSync=function(){return this.useSoftware},t.flush=function(){var e=this.currentResult,t=this.remainderData;return!e||t?(n.logger.error("[softwareDecrypt] "+(t?"overflow bytes: "+t.byteLength:"no result")),this.reset(),null):(t=new Uint8Array(e),this.reset(),this.removePKCS7Padding?(0,a.removePadding)(t):t)},t.reset=function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)},t.decrypt=function(e,t,i){var r=this;return this.useSoftware?new Promise((function(s,a){r.softwareDecrypt(new Uint8Array(e),t,i);var n=r.flush();n?s(n.buffer):a(new Error("[softwareDecrypt] Failed to decrypt data"))})):this.webCryptoDecrypt(new Uint8Array(e),t,i)},t.softwareDecrypt=function(e,t,i){var r=this.currentIV,s=this.currentResult,n=this.remainderData;this.logOnce("JS AES decrypt"),n&&(e=(0,o.appendUint8Array)(n,e),this.remainderData=null),n=this.getValidChunk(e);return n.length?(r&&(i=r),e=this.softwareDecrypter,(e=e||(this.softwareDecrypter=new a.default)).expandKey(t),r=s,this.currentResult=e.decrypt(n.buffer,0,i),this.currentIV=(0,l.sliceUint8)(n,-16).buffer,r||null):null},t.webCryptoDecrypt=function(e,t,i){var a=this,o=this.subtle;return this.key===t&&this.fastAesKey||(this.key=t,this.fastAesKey=new s.default(o,t)),this.fastAesKey.expandKey().then((function(t){return o?(a.logOnce("WebCrypto AES decrypt"),new r.default(o,new Uint8Array(i)).decrypt(e.buffer,t)):Promise.reject(new Error("web crypto not initialized"))})).catch((function(r){return n.logger.warn("[decrypter]: WebCrypto Error, disable WebCrypto API, "+r.name+": "+r.message),a.onWebCryptoError(e,t,i)}))},t.onWebCryptoError=function(e,t,i){if(this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,i),e=this.flush(),e)return e.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")},t.getValidChunk=function(e){var t=e,i=e.length-e.length%16;return i!==e.length&&(t=(0,l.sliceUint8)(e,0,i),this.remainderData=(0,l.sliceUint8)(e,i)),t},t.logOnce=function(e){this.logEnabled&&(n.logger.log("[decrypter]: "+e),this.logEnabled=!1)},h);function h(e,t){if(t=(void 0===t?{}:t).removePKCS7Padding,t=void 0===t||t,this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=e.enableSoftwareAES,this.removePKCS7Padding=t)try{var i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(e){}null===this.subtle&&(this.useSoftware=!0)}},"./src/crypt/fast-aes-key.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r}),s.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])};var r=s;function s(e,t){this.subtle=void 0,this.key=void 0,this.subtle=e,this.key=t}},"./src/demux/aacdemuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>d});t=i("./src/demux/base-audio-demuxer.ts");var r,s=i("./src/demux/adts.ts"),a=i("./src/utils/logger.ts"),n=i("./src/demux/id3.ts");function o(e,t){return(o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function l(e,t){var i;return(i=r.call(this)||this).observer=void 0,i.config=void 0,i.observer=e,i.config=t,i}r=t.default,i=r,(t=l).prototype=Object.create(i.prototype),o(t.prototype.constructor=t,i),(t=l.prototype).resetInitSegment=function(e,t,i,s){r.prototype.resetInitSegment.call(this,e,t,i,s),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:t,duration:s,inputTimeScale:9e4,dropped:0}},l.probe=function(e){if(!e)return!1;for(var t=(n.getID3Data(e,0)||[]).length,i=e.length;t{i.r(t),i.d(t,{appendFrame:()=>function(e,t,i,r,s){var a,n,o;r+=s*u(e.samplerate),s=p(t,i);return s?(n=s.frameLength,s=s.headerLength,n=s+n,(o=Math.max(0,i+n-t.length))?(a=new Uint8Array(n-s)).set(t.subarray(i+s,t.length),0):a=t.subarray(i+s,i+n),s={unit:a,pts:r},o||e.samples.push(s),{sample:s,length:n,missing:o}):(e=t.length-i,(a=new Uint8Array(e)).set(t.subarray(i,t.length),0),{sample:{unit:a,pts:r},length:e,missing:-1})},canGetFrameLength:()=>h,canParse:()=>function(e,t){return h(e,t)&&o(e,t)&&d(e,t)<=e.length-t},getAudioConfig:()=>n,getFrameDuration:()=>u,getFullFrameLength:()=>d,getHeaderLength:()=>l,initTrackConfig:()=>function(e,t,i,s,a){e.samplerate||(t=n(t,i,s,a))&&(e.config=t.config,e.samplerate=t.samplerate,e.channelCount=t.channelCount,e.codec=t.codec,e.manifestCodec=t.manifestCodec,r.logger.log("parsed codec:"+e.codec+", rate:"+t.samplerate+", channels:"+t.channelCount))},isHeader:()=>c,isHeaderPattern:()=>o,parseFrameHeader:()=>p,probe:()=>function(e,t){if(c(e,t)){var i=l(e,t);if(t+i>=e.length)return!1;var r=d(e,t);return!(r<=i)&&(i=t+r,i===e.length||c(e,i))}return!1}});var r=i("./src/utils/logger.ts"),s=i("./src/errors.ts"),a=i("./src/events.ts");function n(e,t,i,n){var o,l,d=navigator.userAgent.toLowerCase(),h=n,c=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],u=1+((192&t[i+2])>>>6),p=(60&t[i+2])>>>2;if(!(c.length-1>>6,r.logger.log("manifest codec:"+n+", ADTS type:"+u+", samplingIndex:"+p),t=/firefox/i.test(d)?6<=p?(u=5,l=new Array(4),p-3):(u=2,l=new Array(2),p):-1!==d.indexOf("android")?(u=2,l=new Array(2),p):(u=5,l=new Array(4),n&&(-1!==n.indexOf("mp4a.40.29")||-1!==n.indexOf("mp4a.40.5"))||!n&&6<=p?p-3:((n&&-1!==n.indexOf("mp4a.40.2")&&(6<=p&&1==o||/vivaldi/i.test(d))||!n&&1==o)&&(u=2,l=new Array(2)),p)),l[0]=u<<3,l[0]|=(14&p)>>1,l[1]|=(1&p)<<7,l[1]|=o<<3,5===u&&(l[1]|=(14&t)>>1,l[2]=(1&t)<<7,l[2]|=8,l[3]=0),{config:l,samplerate:c[p],channelCount:o,codec:"mp4a.40."+u,manifestCodec:h};e.trigger(a.Events.ERROR,{type:s.ErrorTypes.MEDIA_ERROR,details:s.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+p})}function o(e,t){return 255===e[t]&&240==(246&e[t+1])}function l(e,t){return 1&e[t+1]?7:9}function d(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function h(e,t){return t+5{i.r(t),i.d(t,{default:()=>c,initPTSFn:()=>d});var r=i("./src/polyfills/number.ts"),s=i("./src/demux/id3.ts"),a=i("./src/types/demuxer.ts"),n=i("./src/demux/dummy-demuxed-track.ts"),o=i("./src/utils/mp4-tools.ts"),l=i("./src/utils/typed-array.ts");(t=h.prototype).resetInitSegment=function(e,t,i,r){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},t.resetTimeStamp=function(e){this.initPTS=e,this.resetContiguity()},t.resetContiguity=function(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0},t.canParse=function(e,t){return!1},t.appendFrame=function(e,t,i){},t.demux=function(e,t){this.cachedData&&(e=(0,o.appendUint8Array)(this.cachedData,e),this.cachedData=null);var i,h,c=s.getID3Data(e,0),u=c?c.length:0,p=this._audioTrack,f=this._id3Track,m=c?s.getTimeStamp(c):void 0,g=e.length;for((null===this.basePTS||0===this.frameIndex&&(0,r.isFiniteNumber)(m))&&(this.basePTS=d(m,t,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),c&&0{i.r(t),i.d(t,{default:()=>r}),(i=s.prototype).push=function(e){this.chunks.push(e),this.dataLength+=e.length},i.flush=function(){var e=this.chunks,t=this.dataLength;return e.length?(e=1===e.length?e[0]:function(e){for(var i=new Uint8Array(t),r=0,s=0;s{i.r(t),i.d(t,{dummyTrack:()=>function(e,t){return{type:e=void 0===e?"":e,id:-1,pid:-1,inputTimeScale:t=void 0===t?9e4:t,sequenceNumber:-1,samples:[],dropped:0}}})},"./src/demux/exp-golomb.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>s});var r=i("./src/utils/logger.ts");(t=a.prototype).loadWord=function(){var e=this.data,t=this.bytesAvailable,i=e.byteLength-t,r=new Uint8Array(4);t=Math.min(4,t);if(0===t)throw new Error("no bytes available");r.set(e.subarray(i,i+t)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*t,this.bytesAvailable-=t},t.skipBits=function(e){var t;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>e||(e=(e-=this.bitsAvailable)-((t=e>>3)<<3),this.bytesAvailable-=t,this.loadWord()),this.word<<=e,this.bitsAvailable-=e},t.readBits=function(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;if(32>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},t.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.skipEG=function(){this.skipBits(1+this.skipLZ())},t.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},t.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},t.readBoolean=function(){return 1===this.readBits(1)},t.readUByte=function(){return this.readBits(8)},t.readUShort=function(){return this.readBits(16)},t.readUInt=function(){return this.readBits(32)},t.skipScalingList=function(e){for(var t=8,i=8,r=0;r{i.r(t),i.d(t,{canParse:()=>l,decodeFrame:()=>p,getID3Data:()=>n,getID3Frames:()=>u,getTimeStamp:()=>d,isFooter:()=>a,isHeader:()=>s,isTimeStampFrame:()=>h,testables:()=>b,utf8ArrayToStr:()=>A});var r,s=function(e,t){return t+10<=e.length&&73===e[t]&&68===e[t+1]&&51===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},a=function(e,t){return t+10<=e.length&&51===e[t]&&68===e[t+1]&&73===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},n=function(e,t){for(var i=t,r=0;s(e,t);)r=(r+=10)+o(e,t+6),a(e,t+10)&&(r+=10),t+=r;if(0>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:d+=String.fromCharCode(a);break;case 12:case 13:n=e[h++],d+=String.fromCharCode((31&a)<<6|63&n);break;case 14:n=e[h++],o=e[h++],d+=String.fromCharCode((15&a)<<12|(63&n)<<6|(63&o)<<0)}}return d},b={decodeTextFrame:m}},"./src/demux/mp3demuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>d});t=i("./src/demux/base-audio-demuxer.ts");var r,s=i("./src/demux/id3.ts"),a=i("./src/utils/logger.ts"),n=i("./src/demux/mpegaudio.ts");function o(e,t){return(o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function l(){return r.apply(this,arguments)||this}r=t.default,i=r,(t=l).prototype=Object.create(i.prototype),o(t.prototype.constructor=t,i),(t=l.prototype).resetInitSegment=function(e,t,i,s){r.prototype.resetInitSegment.call(this,e,t,i,s),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:t,duration:s,inputTimeScale:9e4,dropped:0}},l.probe=function(e){if(!e)return!1;for(var t=(s.getID3Data(e,0)||[]).length,i=e.length;t{i.r(t),i.d(t,{default:()=>l});var r=i("./src/polyfills/number.ts"),s=i("./src/types/demuxer.ts"),a=i("./src/utils/mp4-tools.ts"),n=i("./src/demux/dummy-demuxed-track.ts"),o=/\/emsg[-/]ID3/i;(t=d.prototype).resetTimeStamp=function(){},t.resetInitSegment=function(e,t,i,r){var s,o,l,d=this.videoTrack=(0,n.dummyTrack)("video",1),h=this.audioTrack=(0,n.dummyTrack)("audio",1),c=this.txtTrack=(0,n.dummyTrack)("text",1);this.id3Track=(0,n.dummyTrack)("id3",1),this.timeOffset=0,e&&e.byteLength&&((e=(0,a.parseInitSegment)(e)).video&&(s=(l=e.video).id,o=l.timescale,l=l.codec,d.id=s,d.timescale=c.timescale=o,d.codec=l),e.audio&&(o=(s=e.audio).id,l=s.timescale,e=s.codec,h.id=o,h.timescale=l,h.codec=e),c.id=a.RemuxerTrackIdConfig.text,d.sampleDuration=0,d.duration=h.duration=r)},t.resetContiguity=function(){},d.probe=function(e){return e=16384{i.r(t),i.d(t,{appendFrame:()=>function(e,t,i,r,s){if(!(i+24>t.length)){var a=l(t,i);if(a&&i+a.frameLength<=t.length)return r+=s*(9e4*a.samplesPerFrame/a.sampleRate),s={unit:t.subarray(i,i+a.frameLength),pts:r,dts:r},e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(s),{sample:s,length:a.frameLength,missing:0}}},canParse:()=>function(e,t){return d(e,t)&&4<=e.length-t},isHeader:()=>h,isHeaderPattern:()=>d,parseHeader:()=>l,probe:()=>function(e,t){var i,r;return!!(t+1>3&3,p=e[t+1]>>1&3,f=e[t+2]>>4&15,m=e[t+2]>>2&3;if(1!=u&&0!=f&&15!=f&&3!=m)return c=e[t+2]>>1&1,i=e[t+3]>>6,f=1e3*s[14*(3==u?3-p:3==p?3:4)+f-1],m=a[3*(3==u?0:2==u?1:2)+m],l=3==i?1:2,h=8*(u=n[u][p])*(d=o[p]),u=Math.floor(u*f/m+c)*d,null===r&&(c=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),r=c?parseInt(c[1]):0),r&&r<=87&&2==p&&224e3<=f&&0==i&&(e[t+3]=128|e[t+3]),{sampleRate:m,channelCount:l,frameLength:u,samplesPerFrame:h}}function d(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])}function h(e,t){return t+1{i.r(t),i.d(t,{default:()=>a});var r=i("./src/crypt/decrypter.ts"),s=i("./src/utils/mp4-tools.ts");(t=n.prototype).decryptBuffer=function(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer)},t.decryptAacSample=function(e,t,i){var r,s=this,a=e[t].unit;a.length<=16||(r=(r=a.subarray(16,a.length-a.length%16)).buffer.slice(r.byteOffset,r.byteOffset+r.length),this.decryptBuffer(r).then((function(r){r=new Uint8Array(r),a.set(r,16),s.decrypter.isSync()||s.decryptAacSamples(e,t+1,i)})))},t.decryptAacSamples=function(e,t,i){for(;;t++){if(t>=e.length)return void i();if(!(e[t].unit.length<32||(this.decryptAacSample(e,t,i),this.decrypter.isSync())))return}},t.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,i=new Int8Array(t),r=0,s=32;s=e.length)return void r();for(var s=e[t].units;!(i>=s.length);i++){var a=s[i];if(!(a.data.length<=48||1!==a.type&&5!==a.type||(this.decryptAvcSample(e,t,i,r,a),this.decrypter.isSync())))return}}};const a=n;function n(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new r.default(t,{removePKCS7Padding:!1})}},"./src/demux/transmuxer-interface.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>h});var r=i("./src/demux/webworkify-webpack.js"),s=i("./src/events.ts"),a=i("./src/demux/transmuxer.ts"),n=i("./src/utils/logger.ts"),o=i("./src/errors.ts"),l=(t=i("./src/utils/mediasource-helper.ts"),i("./node_modules/eventemitter3/index.js")),d=(0,t.getMediaSource)()||{isTypeSupported:function(){return!1}},h=((i=c.prototype).destroy=function(){var e=this.worker;e?(e.removeEventListener("message",this.onwmsg),e.terminate(),this.worker=null,this.onwmsg=void 0):(e=this.transmuxer)&&(e.destroy(),this.transmuxer=null),e=this.observer;e&&e.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null},i.push=function(e,t,i,r,s,o,l,d,h,c){var u=this,p=(h.transmuxing.start=self.performance.now(),this.transmuxer),f=this.worker,m=(o||s).start,g=s.decryptdata,y=this.frag,A=!(y&&s.cc===y.cc),b=!(y&&h.level===y.level),v=y?h.sn-y.sn:-1,_=this.part?h.part-this.part.index:-1,w=0==v&&1{i.r(t),i.d(t,{default:()=>function(e){function t(t,i){e.postMessage({event:t,data:i})}var i=new n.EventEmitter;i.on(s.Events.FRAG_DECRYPTED,t),i.on(s.Events.ERROR,t),e.addEventListener("message",(function(n){var d=n.data;switch(d.cmd){case"init":var c,u=JSON.parse(d.config);for(c in e.transmuxer=new r.default(i,d.typeSupported,u,d.vendor,d.id),(0,a.enableLogs)(u.debug,d.id),a.logger)!function(e){a.logger[e]=function(i){t("workerLog",{logType:e,message:i})}}(c);t("init",null);break;case"configure":e.transmuxer.configure(d.config);break;case"demux":u=e.transmuxer.push(d.data,d.decryptdata,d.chunkMeta,d.state),(0,r.isPromise)(u)?(e.transmuxer.async=!0,u.then((function(t){l(e,t)})).catch((function(e){t(s.Events.ERROR,{type:o.ErrorTypes.MEDIA_ERROR,details:o.ErrorDetails.FRAG_PARSING_ERROR,chunkMeta:d.chunkMeta,fatal:!1,error:e,err:e,reason:"transmuxer-worker push error"})}))):(e.transmuxer.async=!1,l(e,u));break;case"flush":var p=d.chunkMeta;u=e.transmuxer.flush(p);(0,r.isPromise)(u)||e.transmuxer.async?(u=(0,r.isPromise)(u)?u:Promise.resolve(u)).then((function(t){h(e,t,p)})).catch((function(e){t(s.Events.ERROR,{type:o.ErrorTypes.MEDIA_ERROR,details:o.ErrorDetails.FRAG_PARSING_ERROR,chunkMeta:d.chunkMeta,fatal:!1,error:e,err:e,reason:"transmuxer-worker flush error"})})):h(e,u,p)}}))}});var r=i("./src/demux/transmuxer.ts"),s=i("./src/events.ts"),a=i("./src/utils/logger.ts"),n=i("./node_modules/eventemitter3/index.js"),o=i("./src/errors.ts");function l(e,t){if(!((i=t.remuxResult).audio||i.video||i.text||i.id3||i.initSegment))return!1;var i=[],r=t.remuxResult,s=r.audio;r=r.video;return s&&d(i,s),r&&d(i,r),e.postMessage({event:"transmuxComplete",data:t},i),!0}function d(e,t){t.data1&&e.push(t.data1.buffer),t.data2&&e.push(t.data2.buffer)}function h(e,t,i){t.reduce((function(t,i){return l(e,i)||t}),!1)||e.postMessage({event:"transmuxComplete",data:t[0]}),e.postMessage({event:"flush",data:i})}},"./src/demux/transmuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{TransmuxConfig:()=>A,TransmuxState:()=>b,default:()=>f,isPromise:()=>y});var r,s=i("./src/events.ts"),a=i("./src/errors.ts"),n=i("./src/crypt/decrypter.ts"),o=(t=i("./src/demux/aacdemuxer.ts"),i("./src/demux/mp4demuxer.ts")),l=i("./src/demux/tsdemuxer.ts"),d=i("./src/demux/mp3demuxer.ts"),h=i("./src/remux/mp4-remuxer.ts"),c=i("./src/remux/passthrough-remuxer.ts"),u=i("./src/utils/logger.ts");try{r=self.performance.now.bind(self.performance)}catch(e){u.logger.debug("Unable to use Performance API on this environment"),r=self.Date.now}var p=[{demux:o.default,remux:c.default},{demux:l.default,remux:h.default},{demux:t.default,remux:h.default},{demux:d.default,remux:h.default}],f=((i=g.prototype).configure=function(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()},i.push=function(e,t,i,s){var a=this,n=i.transmuxing,o=(e=(n.executeStart=r(),new Uint8Array(e)),this.currentTransmuxState),l=this.transmuxConfig,d=(s=(s&&(this.currentTransmuxState=s),s||o),o=s.contiguous,s.discontinuity),h=s.trackSwitch,c=s.accurateTimeOffset,u=s.timeOffset,p=(s=s.initSegmentChange,l.audioCodec),f=l.videoCodec,g=l.defaultInitPts,y=l.duration,A=(l=l.initSegmentData,A=null,A=0{i.r(t),i.d(t,{default:()=>y});var r=i("./src/demux/adts.ts"),s=i("./src/demux/mpegaudio.ts"),a=i("./src/demux/exp-golomb.ts"),n=i("./src/demux/sample-aes.ts"),o=i("./src/events.ts"),l=i("./src/utils/mp4-tools.ts"),d=i("./src/utils/logger.ts"),h=i("./src/errors.ts"),c=i("./src/types/demuxer.ts");function u(){return(u=Object.assign?Object.assign.bind():function(e){for(var t=1;te.size-6)return null;var l=t[7],h=(192&l&&(r=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,64&l?54e5>4){if((R=C+5+e[C+4])===C+188)continue}else R=C+4;switch(D){case f:L&&(g&&(s=m(g))&&this.parseAVCPES(a,u,s,!1),g={data:[],size:0}),g&&(g.data.push(e.subarray(R,C+188)),g.size+=C+188-R);break;case y:if(L){if(b&&(s=m(b)))switch(n.segmentCodec){case"aac":this.parseAACPES(n,s);break;case"mp3":this.parseMPEGPES(n,s)}b={data:[],size:0}}b&&(b.data.push(e.subarray(R,C+188)),b.size+=C+188-R);break;case A:L&&(v&&(s=m(v))&&this.parseID3PES(c,s),v={data:[],size:0}),v&&(v.data.push(e.subarray(R,C+188)),v.size+=C+188-R);break;case 0:L&&(R+=e[R]+1),S=this._pmtId=(31&(I=e)[(k=R)+10])<<8|I[k+11];break;case S:L&&(R+=e[R]+1);var I=function(e,t,i,r){var s={audio:-1,avc:-1,id3:-1,segmentCodec:"aac"},a=t+3+((15&e[t+1])<<8|e[t+2])-4;for(t+=12+((15&e[t+10])<<8|e[t+11]);t{i.r(t),i.d(t,{default:()=>function(e,t){t=t||{};var r={main:i.m},l=t.all?{main:Object.keys(r.main)}:function(t){for(var r={main:[e]},o={main:[]},l={main:{}};function(e){return Object.keys(e).reduce((function(t,i){return t||0/);if(!t)return o;t=t[1];for(var d,h=new RegExp("(\\\\n|\\W)"+n(t)+a,"g");d=h.exec(l);)"dll-reference"!==d[3]&&o[r].push(d[3]);for(h=new RegExp("\\("+n(t)+'\\("(dll-reference\\s('+s+'))"\\)\\)'+a,"g");d=h.exec(l);)e[d[2]]||(o[r].push(d[1]),e[d[2]]=i(d[1]).m),o[d[2]]=o[d[2]]||[],o[d[2]].push(d[4]);for(var c,u=Object.keys(o),p=0;p{var r,s;i.r(t),i.d(t,{ErrorDetails:()=>s,ErrorTypes:()=>r}),(i=r=r||{}).NETWORK_ERROR="networkError",i.MEDIA_ERROR="mediaError",i.KEY_SYSTEM_ERROR="keySystemError",i.MUX_ERROR="muxError",i.OTHER_ERROR="otherError",(t=s=s||{}).KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown"},"./src/events.ts":(e,t,i)=>{var r;i.r(t),i.d(t,{Events:()=>r}),(i=r=r||{}).MEDIA_ATTACHING="hlsMediaAttaching",i.MEDIA_ATTACHED="hlsMediaAttached",i.MEDIA_DETACHING="hlsMediaDetaching",i.MEDIA_DETACHED="hlsMediaDetached",i.BUFFER_RESET="hlsBufferReset",i.BUFFER_CODECS="hlsBufferCodecs",i.BUFFER_CREATED="hlsBufferCreated",i.BUFFER_APPENDING="hlsBufferAppending",i.BUFFER_APPENDED="hlsBufferAppended",i.BUFFER_EOS="hlsBufferEos",i.BUFFER_FLUSHING="hlsBufferFlushing",i.BUFFER_FLUSHED="hlsBufferFlushed",i.MANIFEST_LOADING="hlsManifestLoading",i.MANIFEST_LOADED="hlsManifestLoaded",i.MANIFEST_PARSED="hlsManifestParsed",i.LEVEL_SWITCHING="hlsLevelSwitching",i.LEVEL_SWITCHED="hlsLevelSwitched",i.LEVEL_LOADING="hlsLevelLoading",i.LEVEL_LOADED="hlsLevelLoaded",i.LEVEL_UPDATED="hlsLevelUpdated",i.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",i.LEVELS_UPDATED="hlsLevelsUpdated",i.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",i.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",i.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",i.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",i.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",i.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",i.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",i.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",i.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",i.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",i.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",i.CUES_PARSED="hlsCuesParsed",i.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",i.INIT_PTS_FOUND="hlsInitPtsFound",i.FRAG_LOADING="hlsFragLoading",i.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",i.FRAG_LOADED="hlsFragLoaded",i.FRAG_DECRYPTED="hlsFragDecrypted",i.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",i.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",i.FRAG_PARSING_METADATA="hlsFragParsingMetadata",i.FRAG_PARSED="hlsFragParsed",i.FRAG_BUFFERED="hlsFragBuffered",i.FRAG_CHANGED="hlsFragChanged",i.FPS_DROP="hlsFpsDrop",i.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",i.ERROR="hlsError",i.DESTROYING="hlsDestroying",i.KEY_LOADING="hlsKeyLoading",i.KEY_LOADED="hlsKeyLoaded",i.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",i.BACK_BUFFER_REACHED="hlsBackBufferReached"},"./src/hls.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>b});var r=i("./node_modules/url-toolkit/src/url-toolkit.js"),s=i("./src/loader/playlist-loader.ts"),a=i("./src/controller/id3-track-controller.ts"),n=i("./src/controller/latency-controller.ts"),o=i("./src/controller/level-controller.ts"),l=i("./src/controller/fragment-tracker.ts"),d=i("./src/loader/key-loader.ts"),h=i("./src/controller/stream-controller.ts"),c=i("./src/is-supported.ts"),u=i("./src/utils/logger.ts"),p=i("./src/config.ts"),f=i("./node_modules/eventemitter3/index.js"),m=i("./src/events.ts"),g=i("./src/errors.ts"),y=i("./src/types/level.ts");function A(e,t){for(var i,r=0;r=t)return r;return 0}},{key:"maxAutoLevel",get:function(){var e=this.levels,t=this.autoLevelCapping,i=this.maxHdcpLevel;t=-1===t&&e&&e.length?e.length-1:t;if(i)for(var r=t;r--;){var s=e[r].attrs["HDCP-LEVEL"];if(s&&s<=i)return r}return t}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}},{key:"playingDate",get:function(){return this.streamController.currentProgramDateTime}},{key:"mainForwardBufferInfo",get:function(){return this.streamController.getMainFwdBufferInfo()}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(e){this.config.lowLatencyMode=e}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}}]),A(i,t),Object.defineProperty(i,"prototype",{writable:!1});var b=v;function v(e){void 0===e&&(e={}),this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new f.EventEmitter,this._autoLevelCapping=void 0,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null;var t=this.config=(0,p.mergeConfig)(v.DefaultConfig,e),i=(e=(this.userConfig=e,(0,u.enableLogs)(t.debug,"Hls instance"),this._autoLevelCapping=-1,t.progressive&&(0,p.enableStreamingMode)(t),t.abrController),t.bufferController),r=t.capLevelController,c=t.fpsController,m=(e=this.abrController=new e(this),i=this.bufferController=new i(this),r=this.capLevelController=new r(this),c=new c(this),new s.default(this)),g=new a.default(this),y=this.levelController=new o.default(this),A=new l.FragmentTracker(this),b=new d.default(this.config),_=this.streamController=new h.default(this,A,b);r.setStreamController(_),c.setStreamController(_),m=[m,y,_],this.networkControllers=m,y=[e,i,r,c,g,A],this.audioTrackController=this.createController(t.audioTrackController,m),_=t.audioStreamController,_&&m.push(new _(this,A,b)),this.subtitleTrackController=this.createController(t.subtitleTrackController,m),e=t.subtitleStreamController;e&&m.push(new e(this,A,b)),this.createController(t.timelineController,y),b.emeController=this.emeController=this.createController(t.emeController,y),this.cmcdController=this.createController(t.cmcdController,y),this.latencyController=this.createController(n.default,y),this.coreComponents=y}b.defaultConfig=void 0},"./src/is-supported.ts":(e,t,i)=>{i.r(t),i.d(t,{changeTypeSupported:()=>function(){var e=s();return"function"==typeof(null==e||null==(e=e.prototype)?void 0:e.changeType)},isSupported:()=>function(){var e=(0,r.getMediaSource)();if(!e)return!1;var t=s();e=e&&"function"==typeof e.isTypeSupported&&e.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),t=!t||t.prototype&&"function"==typeof t.prototype.appendBuffer&&"function"==typeof t.prototype.remove;return!!e&&!!t}});var r=i("./src/utils/mediasource-helper.ts");function s(){return self.SourceBuffer||self.WebKitSourceBuffer}},"./src/loader/date-range.ts":(e,t,i)=>{i.r(t),i.d(t,{DateRange:()=>d,DateRangeAttribute:()=>r});var r,s=i("./src/polyfills/number.ts"),a=i("./src/utils/attr-list.ts"),n=i("./src/utils/logger.ts");function o(){return(o=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{LoadError:()=>f,default:()=>h});var r=i("./src/polyfills/number.ts"),s=i("./src/errors.ts");function a(e){var t="function"==typeof Map?new Map:void 0;return(a=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return n(e,arguments,l(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),o(i,e)})(e)}function n(e,t,i){return(n=function(){if("undefined"!=typeof Reflect&&Reflect.construct&&!Reflect.construct.sham){if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),1}catch(e){return}}}()?Reflect.construct.bind():function(e,t,i){var r=[null];r.push.apply(r,t),t=new(Function.bind.apply(e,r));return i&&o(t,i.prototype),t}).apply(null,arguments)}function o(e,t){return(o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var d=Math.pow(2,17),h=((t=c.prototype).destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)},t.abort=function(){this.loader&&this.loader.abort()},t.load=function(e,t){var i=this,r=e.url;if(!r)return Promise.reject(new f({type:s.ErrorTypes.NETWORK_ERROR,details:s.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:e,networkDetails:null},"Fragment does not have a "+(r?"part list":"url")));this.abort();var a=this.config,n=a.fLoader,o=a.loader;return new Promise((function(r,l){i.loader&&i.loader.destroy();var h=i.loader=e.loader=new(n||o)(a),c=u(e),p={timeout:a.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:a.fragLoadingMaxRetryTimeout,highWaterMark:"initSegment"===e.sn?1/0:d};e.stats=h.stats,h.load(c,p,{onSuccess:function(t,s,a,n){i.resetLoader(e,h),t=t.data,a.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(t.slice(0,16)),t=t.slice(16)),r({frag:e,part:null,payload:t,networkDetails:n})},onError:function(t,r,a){i.resetLoader(e,h),l(new f({type:s.ErrorTypes.NETWORK_ERROR,details:s.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:t,networkDetails:a}))},onAbort:function(t,r,a){i.resetLoader(e,h),l(new f({type:s.ErrorTypes.NETWORK_ERROR,details:s.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:e,networkDetails:a}))},onTimeout:function(t,r,a){i.resetLoader(e,h),l(new f({type:s.ErrorTypes.NETWORK_ERROR,details:s.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,networkDetails:a}))},onProgress:function(i,r,s,a){t&&t({frag:e,part:null,payload:s,networkDetails:a})}})}))},t.loadPart=function(e,t,i){var r=this,a=(this.abort(),this.config),n=a.fLoader,o=a.loader;return new Promise((function(l,h){r.loader&&r.loader.destroy();var c=r.loader=e.loader=new(n||o)(a),p=u(e,t),m={timeout:a.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:a.fragLoadingMaxRetryTimeout,highWaterMark:d};t.stats=c.stats,c.load(p,m,{onSuccess:function(s,a,n,o){r.resetLoader(e,c),r.updateStatsFromPart(e,t),s={frag:e,part:t,payload:s.data,networkDetails:o},i(s),l(s)},onError:function(i,a,n){r.resetLoader(e,c),h(new f({type:s.ErrorTypes.NETWORK_ERROR,details:s.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:t,response:i,networkDetails:n}))},onAbort:function(i,a,n){e.stats.aborted=t.stats.aborted,r.resetLoader(e,c),h(new f({type:s.ErrorTypes.NETWORK_ERROR,details:s.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:e,part:t,networkDetails:n}))},onTimeout:function(i,a,n){r.resetLoader(e,c),h(new f({type:s.ErrorTypes.NETWORK_ERROR,details:s.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:t,networkDetails:n}))}})}))},t.updateStatsFromPart=function(e,t){var i=e.stats,r=t.stats,s=r.total;i.loaded+=r.loaded,s?(s=((e=Math.round(e.duration/t.duration))-(t=Math.min(Math.round(i.loaded/s),e)))*Math.round(i.loaded/t),i.total=i.loaded+s):i.total=Math.max(i.loaded,i.total),e=i.loading,t=r.loading;e.start?e.first+=t.first-t.start:(e.start=t.start,e.first=t.first),e.end=t.end},t.resetLoader=function(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()},c);function c(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}function u(e,t){var i,s,a=(t=void 0===t?null:t)||e,n=(t={frag:e,part:t,responseType:"arraybuffer",url:a.url,headers:{},rangeStart:0,rangeEnd:0},a.byteRangeStartOffset);a=a.byteRangeEndOffset;return(0,r.isFiniteNumber)(n)&&(0,r.isFiniteNumber)(a)&&(i=n,s=a,"initSegment"===e.sn&&"AES-128"===(null==(e=e.decryptdata)?void 0:e.method)&&((e=a-n)%16&&(s=a+(16-e%16)),0!==n&&(t.resetIV=!0,i=n-16)),t.rangeStart=i,t.rangeEnd=s),t}p=a(Error),i=p,(t=m).prototype=Object.create(i.prototype),o(t.prototype.constructor=t,i);var p,f=m;function m(e){for(var t,i=arguments.length,r=new Array(1{i.r(t),i.d(t,{BaseSegment:()=>p,ElementaryStreamTypes:()=>r,Fragment:()=>f,Part:()=>m});var r,s=i("./src/polyfills/number.ts"),a=i("./node_modules/url-toolkit/src/url-toolkit.js"),n=i("./src/loader/load-stats.ts");function o(e,t){e.prototype=Object.create(t.prototype),l(e.prototype.constructor=e,t)}function l(e,t){return(l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){for(var i,r=0;r{i.r(t),i.d(t,{default:()=>a});var r=i("./src/errors.ts"),s=i("./src/loader/fragment-loader.ts"),a=((t=n.prototype).abort=function(){for(var e in this.keyUriToKeyInfo)e=this.keyUriToKeyInfo[e].loader,e&&e.abort()},t.detach=function(){for(var e in this.keyUriToKeyInfo){var t=this.keyUriToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[e]}},t.destroy=function(){for(var e in this.detach(),this.keyUriToKeyInfo)e=this.keyUriToKeyInfo[e].loader,e&&e.destroy();this.keyUriToKeyInfo={}},t.createKeyLoadError=function(e,t,i,a){return void 0===t&&(t=r.ErrorDetails.KEY_LOAD_ERROR),new s.LoadError({type:r.ErrorTypes.NETWORK_ERROR,details:t,fatal:!1,frag:e,networkDetails:i})},t.loadClear=function(e,t){var i=this;if(this.emeController&&this.config.emeEnabled)for(var r=e.sn,s=e.cc,a=0;a{i.r(t),i.d(t,{LevelDetails:()=>a});var r=i("./src/polyfills/number.ts");function s(e,t){for(var i,r=0;re.endSN||0{i.r(t),i.d(t,{LevelKey:()=>d});var r=i("./src/utils/keysystem-util.ts"),s=i("./src/utils/mediakeys-helper.ts"),a=i("./src/utils/mp4-tools.ts"),n=i("./src/utils/logger.ts"),o=i("./src/utils/numeric-encoding-utils.ts"),l={},d=(h.clearKeyUriToKeyIdMap=function(){l={}},(t=h.prototype).isSupported=function(){if(this.method){if("AES-128"===this.method||"NONE"===this.method)return!0;switch(this.keyFormat){case"identity":return"SAMPLE-AES"===this.method;case s.KeySystemFormats.FAIRPLAY:case s.KeySystemFormats.WIDEVINE:case s.KeySystemFormats.PLAYREADY:case s.KeySystemFormats.CLEARKEY:return-1!==["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1},t.getDecryptData=function(e){if(!this.encrypted||!this.uri)return null;if("AES-128"===this.method&&this.uri&&!this.iv)return"number"!=typeof e&&("AES-128"!==this.method||this.iv||n.logger.warn('missing IV for initialization segment with method="'+this.method+'" - compliance issue'),e=0),e=function(e){for(var t=new Uint8Array(16),i=12;i<16;i++)t[i]=e>>8*(15-i)&255;return t}(e),new h(this.method,this.uri,"identity",this.keyFormatVersions,e);var t,i=(0,r.convertDataUriToArrayBytes)(this.uri);if(i)switch(this.keyFormat){case s.KeySystemFormats.WIDEVINE:22<=(this.pssh=i).length&&(this.keyId=i.subarray(i.length-22,i.length-6));break;case s.KeySystemFormats.PLAYREADY:var d=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);d=(this.pssh=(0,a.mp4pssh)(d,null,i),new Uint16Array(i.buffer,i.byteOffset,i.byteLength/2)),d=String.fromCharCode.apply(null,Array.from(d)),d=d.substring(d.indexOf("<"),d.length),d=(new DOMParser).parseFromString(d,"text/xml").getElementsByTagName("KID")[0];!d||(d=d.childNodes[0]?d.childNodes[0].nodeValue:d.getAttribute("VALUE"))&&(d=(0,o.base64Decode)(d).subarray(0,16),(0,r.changeEndianness)(d),this.keyId=d);break;default:var c;d=i.subarray(0,16);16!==d.length&&((c=new Uint8Array(16)).set(d,16-d.length),d=c),this.keyId=d}return this.keyId&&16===this.keyId.byteLength||((e=l[this.uri])||(t=Object.keys(l).length%Number.MAX_SAFE_INTEGER,e=new Uint8Array(16),new DataView(e.buffer,12,4).setUint32(0,t),l[this.uri]=e),this.keyId=e),this},h);function h(e,t,i,r,s){void 0===r&&(r=[1]),void 0===s&&(s=null),this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=r,this.iv=s,this.encrypted=!!e&&"NONE"!==e,this.isCommonEncryption=this.encrypted&&"AES-128"!==e}},"./src/loader/load-stats.ts":(e,t,i)=>{i.r(t),i.d(t,{LoadStats:()=>r});var r=function(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}},"./src/loader/m3u8-parser.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>y});var r=i("./src/polyfills/number.ts"),s=i("./node_modules/url-toolkit/src/url-toolkit.js"),a=i("./src/loader/date-range.ts"),n=i("./src/loader/fragment.ts"),o=i("./src/loader/level-details.ts"),l=i("./src/loader/level-key.ts"),d=i("./src/utils/attr-list.ts"),h=i("./src/utils/logger.ts"),c=i("./src/utils/codecs.ts");function u(){return(u=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{default:()=>u});var r=i("./src/polyfills/number.ts"),s=i("./src/events.ts"),a=i("./src/errors.ts"),n=i("./src/utils/logger.ts"),o=i("./src/loader/m3u8-parser.ts"),l=i("./src/types/loader.ts"),d=i("./src/utils/attr-list.ts");function h(e,t){return e=e.url,void 0!==e&&0!==e.indexOf("data:")?e:t.url}function c(e){this.hls=void 0,this.loaders=Object.create(null),this.hls=e,this.registerListeners()}(t=c.prototype).startLoad=function(e){},t.stopLoad=function(){this.destroyInternalLoaders()},t.registerListeners=function(){var e=this.hls;e.on(s.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(s.Events.LEVEL_LOADING,this.onLevelLoading,this),e.on(s.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(s.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},t.unregisterListeners=function(){var e=this.hls;e.off(s.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(s.Events.LEVEL_LOADING,this.onLevelLoading,this),e.off(s.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(s.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},t.createInternalLoader=function(e){var t=this.hls.config,i=t.pLoader,r=t.loader;i=new(i||r)(t);return e.loader=i,this.loaders[e.type]=i},t.getInternalLoader=function(e){return this.loaders[e.type]},t.resetInternalLoader=function(e){this.loaders[e]&&delete this.loaders[e]},t.destroyInternalLoaders=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}},t.destroy=function(){this.unregisterListeners(),this.destroyInternalLoaders()},t.onManifestLoading=function(e,t){t=t.url,this.load({id:null,groupId:null,level:0,responseType:"text",type:l.PlaylistContextType.MANIFEST,url:t,deliveryDirectives:null})},t.onLevelLoading=function(e,t){var i=t.id,r=t.level,s=t.url;t=t.deliveryDirectives;this.load({id:i,groupId:null,level:r,responseType:"text",type:l.PlaylistContextType.LEVEL,url:s,deliveryDirectives:t})},t.onAudioTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url;t=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:l.PlaylistContextType.AUDIO_TRACK,url:s,deliveryDirectives:t})},t.onSubtitleTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url;t=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:l.PlaylistContextType.SUBTITLE_TRACK,url:s,deliveryDirectives:t})},t.load=function(e){var t,i,r,s,a=this.hls.config;if(d=this.getInternalLoader(e)){var o=d.context;if(o&&o.url===e.url)return void n.logger.trace("[playlist-loader]: playlist request ongoing");n.logger.log("[playlist-loader]: aborting previous loader for type: "+e.type),d.abort()}switch(e.type){case l.PlaylistContextType.MANIFEST:t=a.manifestLoadingMaxRetry,i=a.manifestLoadingTimeOut,r=a.manifestLoadingRetryDelay,s=a.manifestLoadingMaxRetryTimeout;break;case l.PlaylistContextType.LEVEL:case l.PlaylistContextType.AUDIO_TRACK:case l.PlaylistContextType.SUBTITLE_TRACK:t=0,i=a.levelLoadingTimeOut;break;default:t=a.levelLoadingMaxRetry,i=a.levelLoadingTimeOut,r=a.levelLoadingRetryDelay,s=a.levelLoadingMaxRetryTimeout}var d=this.createInternalLoader(e),h=(o=(null!=(o=e.deliveryDirectives)&&o.part&&(e.type===l.PlaylistContextType.LEVEL&&null!==e.level?h=this.hls.levels[e.level].details:e.type===l.PlaylistContextType.AUDIO_TRACK&&null!==e.id?h=this.hls.audioTracks[e.id].details:e.type===l.PlaylistContextType.SUBTITLE_TRACK&&null!==e.id&&(h=this.hls.subtitleTracks[e.id].details),h)&&(o=h.partTarget,h=h.targetduration,o&&h&&(i=Math.min(1e3*Math.max(3*o,.8*h),i))),{timeout:i,maxRetry:t,retryDelay:r,maxRetryDelay:s,highWaterMark:0}),{onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)});d.load(e,o,h)},t.loadsuccess=function(e,t,i,r){void 0===r&&(r=null),this.resetInternalLoader(i.type);var s=e.data;0===s.indexOf("#EXTM3U")?(t.parsing.start=performance.now(),0{i.r(t),i.d(t,{MAX_SAFE_INTEGER:()=>s,isFiniteNumber:()=>r});var r=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},s=Number.MAX_SAFE_INTEGER||9007199254740991},"./src/remux/aac-helper.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r}),s.getSilentFrame=function(e,t){return"mp4a.40.2"===e?1===t?new Uint8Array([0,200,0,128,35,128]):2===t?new Uint8Array([33,0,73,144,2,25,0,35,128]):3===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]):4===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]):5===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]):6===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]):void 0:1===t?new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]):2===t||3===t?new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]):void 0};const r=s;function s(){}},"./src/remux/mp4-generator.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>a});var r=Math.pow(2,32)-1;s.init=function(){for(var e in s.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]})s.types.hasOwnProperty(e)&&(s.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),r=(t=(s.HDLR_TYPES={video:t,audio:i},new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1])),i=new Uint8Array([0,0,0,0,0,0,0,0]),i=(s.STTS=s.STSC=s.STCO=i,s.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),s.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),s.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),s.STSD=new Uint8Array([0,0,0,0,0,0,0,1]),new Uint8Array([105,115,111,109])),new Uint8Array([97,118,99,49])),a=new Uint8Array([0,0,0,1]);s.FTYP=s.box(s.types.ftyp,i,a,i,r),s.DINF=s.box(s.types.dinf,s.box(s.types.dref,t))},s.box=function(e){for(var t=8,i=arguments.length,r=new Array(1>24&255,o[1]=t>>16&255,o[2]=t>>8&255,o[3]=255&t,o.set(e,4),a=0,t=8;a>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,85,196,0,0]))},s.mdia=function(e){return s.box(s.types.mdia,s.mdhd(e.timescale,e.duration),s.hdlr(e.type),s.minf(e))},s.mfhd=function(e){return s.box(s.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},s.minf=function(e){return"audio"===e.type?s.box(s.types.minf,s.box(s.types.smhd,s.SMHD),s.DINF,s.stbl(e)):s.box(s.types.minf,s.box(s.types.vmhd,s.VMHD),s.DINF,s.stbl(e))},s.moof=function(e,t,i){return s.box(s.types.moof,s.mfhd(e),s.traf(i,t))},s.moov=function(e){for(var t=e.length,i=[];t--;)i[t]=s.trak(e[t]);return s.box.apply(null,[s.types.moov,s.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(s.mvex(e)))},s.mvex=function(e){for(var t=e.length,i=[];t--;)i[t]=s.trex(e[t]);return s.box.apply(null,[s.types.mvex].concat(i))},s.mvhd=function(e,t){t*=e;var i=Math.floor(t/(1+r));t=Math.floor(t%(1+r)),e=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return s.box(s.types.mvhd,e)},s.sdtp=function(e){for(var t,i=e.samples||[],r=new Uint8Array(4+i.length),a=0;a>>8&255),r.push(255&i),r=r.concat(Array.prototype.slice.call(t));for(n=0;n>>8&255),a.push(255&i),a=a.concat(Array.prototype.slice.call(t));var o=s.box(s.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|e.sps.length].concat(r).concat([e.pps.length]).concat(a))),l=e.width,d=e.height,h=e.pixelRatio[0],c=e.pixelRatio[1];return s.box(s.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,d>>8&255,255&d,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),o,s.box(s.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),s.box(s.types.pasp,new Uint8Array([h>>24,h>>16&255,h>>8&255,255&h,c>>24,c>>16&255,c>>8&255,255&c])))},s.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},s.mp4a=function(e){var t=e.samplerate;return s.box(s.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]),s.box(s.types.esds,s.esds(e)))},s.mp3=function(e){var t=e.samplerate;return s.box(s.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]))},s.stsd=function(e){return"audio"===e.type?"mp3"===e.segmentCodec&&"mp3"===e.codec?s.box(s.types.stsd,s.STSD,s.mp3(e)):s.box(s.types.stsd,s.STSD,s.mp4a(e)):s.box(s.types.stsd,s.STSD,s.avc1(e))},s.tkhd=function(e){var t=e.id,i=e.duration*e.timescale,a=e.width,n=(e=e.height,Math.floor(i/(1+r)));i=Math.floor(i%(1+r));return s.box(s.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,a>>8&255,255&a,0,0,e>>8&255,255&e,0,0]))},s.traf=function(e,t){var i=s.sdtp(e),a=e.id,n=Math.floor(t/(1+r));t=Math.floor(t%(1+r));return s.box(s.types.traf,s.box(s.types.tfhd,new Uint8Array([0,0,0,0,a>>24,a>>16&255,a>>8&255,255&a])),s.box(s.types.tfdt,new Uint8Array([1,0,0,0,n>>24,n>>16&255,n>>8&255,255&n,t>>24,t>>16&255,t>>8&255,255&t])),s.trun(e,i.length+16+20+8+16+8+8),i)},s.trak=function(e){return e.duration=e.duration||4294967295,s.box(s.types.trak,s.tkhd(e),s.mdia(e))},s.trex=function(e){return e=e.id,s.box(s.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},s.trun=function(e,t){var i,r,a,n,o,l=e.samples||[],d=l.length,h=12+16*d,c=new Uint8Array(h);for(c.set(["video"===e.type?1:0,0,15,1,d>>>24&255,d>>>16&255,d>>>8&255,255&d,(t+=8+h)>>>24&255,t>>>16&255,t>>>8&255,255&t],0),i=0;i>>24&255,r>>>16&255,r>>>8&255,255&r,a>>>24&255,a>>>16&255,a>>>8&255,255&a,n.isLeading<<2|n.dependsOn,n.isDependedOn<<6|n.hasRedundancy<<4|n.paddingValue<<1|n.isNonSync,61440&n.degradPrio,15&n.degradPrio,o>>>24&255,o>>>16&255,o>>>8&255,255&o],12+16*i);return s.box(s.types.trun,c)},s.initSegment=function(e){s.types||s.init();e=s.moov(e);var t=new Uint8Array(s.FTYP.byteLength+e.byteLength);return t.set(s.FTYP),t.set(e,s.FTYP.byteLength),t},i=s;function s(){}i.types=void 0,i.HDLR_TYPES=void 0,i.STTS=void 0,i.STSC=void 0,i.STCO=void 0,i.STSZ=void 0,i.VMHD=void 0,i.SMHD=void 0,i.STSD=void 0,i.FTYP=void 0,i.DINF=void 0;const a=i},"./src/remux/mp4-remuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>f,flushTextTrackMetadataCueSamples:()=>y,flushTextTrackUserdataCueSamples:()=>A,normalizePts:()=>g});var r=i("./src/polyfills/number.ts"),s=i("./src/remux/aac-helper.ts"),a=i("./src/remux/mp4-generator.ts"),n=i("./src/events.ts"),o=i("./src/errors.ts"),l=i("./src/utils/logger.ts"),d=i("./src/types/loader.ts"),h=i("./src/utils/timescale-conversion.ts");function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;td[0].pts)&&(x=A,O=d[0].pts-t,d[0].dts=x,d[0].pts=O,l.logger.log("Video: First PTS/DTS adjusted: "+(0,h.toMsFromMpegTsClock)(O,!0)+"/"+(0,h.toMsFromMpegTsClock)(x,!0)+", delta: "+(0,h.toMsFromMpegTsClock)(t,!0)+" ms"))),x=Math.max(0,x);for(var L=0,D=0,R=0;R{i.r(t),i.d(t,{default:()=>d});var r=i("./src/polyfills/number.ts"),s=i("./src/remux/mp4-remuxer.ts"),a=i("./src/utils/mp4-tools.ts"),n=i("./src/loader/fragment.ts"),o=i("./src/utils/logger.ts");function l(e,t){return e=null==e?void 0:e.codec,e&&4{i.r(t),i.d(t,{default:()=>r}),(i=s.prototype).destroy=function(){this.onHandlerDestroying(),this.onHandlerDestroyed()},i.onHandlerDestroying=function(){this.clearNextTick(),this.clearInterval()},i.onHandlerDestroyed=function(){},i.hasInterval=function(){return!!this._tickInterval},i.hasNextTick=function(){return!!this._tickTimer},i.setInterval=function(e){return!this._tickInterval&&(this._tickInterval=self.setInterval(this._boundTick,e),!0)},i.clearInterval=function(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),!(this._tickInterval=null))},i.clearNextTick=function(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),!(this._tickTimer=null))},i.tick=function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),1{i.r(t),i.d(t,{CMCDObjectType:()=>r,CMCDStreamType:()=>a,CMCDStreamingFormat:()=>s,CMCDVersion:()=>n});var r,s,a,n=1;(i=r=r||{}).MANIFEST="m",i.AUDIO="a",i.VIDEO="v",i.MUXED="av",i.INIT="i",i.CAPTION="c",i.TIMED_TEXT="tt",i.KEY="k",i.OTHER="o",(t=s=s||{}).DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o",(i=a=a||{}).VOD="v",i.LIVE="l"},"./src/types/demuxer.ts":(e,t,i)=>{var r;i.r(t),i.d(t,{MetadataSchema:()=>r}),(i=r=r||{}).audioId3="org.id3",i.dateRange="com.apple.quicktime.HLS",i.emsg="https://aomedia.org/emsg/ID3"},"./src/types/level.ts":(e,t,i)=>{function r(e,t){for(var i,r=0;ra,HlsSkip:()=>s,HlsUrlParameters:()=>n,Level:()=>o,getSkipValue:()=>function(e,t){var i=e.canSkipUntil,r=e.canSkipDateRanges;e=e.endSN;return i&&(void 0!==t?t-e:0){var r,s;i.r(t),i.d(t,{PlaylistContextType:()=>r,PlaylistLevelType:()=>s}),(i=r=r||{}).MANIFEST="manifest",i.LEVEL="level",i.AUDIO_TRACK="audioTrack",i.SUBTITLE_TRACK="subtitleTrack",(t=s=s||{}).MAIN="main",t.AUDIO="audio",t.SUBTITLE="subtitle"},"./src/types/transmuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{ChunkMetadata:()=>r});var r=function(e,t,i,r,s,a){void 0===r&&(r=0),void 0===s&&(s=-1),void 0===a&&(a=!1),this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=e,this.sn=t,this.id=i,this.size=r,this.part=s,this.partial=a}},"./src/utils/attr-list.ts":(e,t,i)=>{i.r(t),i.d(t,{AttrList:()=>a});var r=/^(\d+)x(\d+)$/,s=/\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g,a=((i=n.prototype).decimalInteger=function(e){return e=parseInt(this[e],10),e>Number.MAX_SAFE_INTEGER?1/0:e},i.hexadecimalInteger=function(e){if(this[e]){for(var t=(1&(t=(this[e]||"0x").slice(2)).length?"0":"")+t,i=new Uint8Array(t.length/2),r=0;rNumber.MAX_SAFE_INTEGER?1/0:e},i.decimalFloatingPoint=function(e){return parseFloat(this[e])},i.optionalFloat=function(e,t){return e=this[e],e?parseFloat(e):t},i.enumeratedString=function(e){return this[e]},i.bool=function(e){return"YES"===this[e]},i.decimalResolution=function(e){if(e=r.exec(this[e]),null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},n.parseAttrList=function(e){var t,i={};for(s.lastIndex=0;null!==(t=s.exec(e));){var r=t[2];0===r.indexOf('"')&&r.lastIndexOf('"')===r.length-1&&(r=r.slice(1,-1)),i[t[1]]=r}return i},n);function n(e){for(var t in e="string"==typeof e?n.parseAttrList(e):e)e.hasOwnProperty(t)&&(this[t]=e[t])}},"./src/utils/binary-search.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r={search:function(e,t){for(var i,r,s=0,a=e.length-1;s<=a;){var n=t(r=e[i=(s+a)/2|0]);if(0{i.r(t),i.d(t,{BufferHelper:()=>a});var r=i("./src/utils/logger.ts"),s={length:0,start:function(){return 0},end:function(){return 0}},a=(n.isBuffered=function(e,t){try{if(e)for(var i=n.getBuffered(e),r=0;r=i.start(r)&&t<=i.end(r))return!0}catch(e){}return!1},n.bufferInfo=function(e,t,i){try{if(e){for(var r=n.getBuffered(e),s=[],a=0;aa&&(r[n-1].end=e[s].end):r.push(e[s])):r.push(e[s])}else r=e;for(var o,l=0,d=t,h=t,c=0;c{function r(e){var t=e;return o.hasOwnProperty(e)&&(t=o[e]),String.fromCharCode(t)}function s(e){for(var t=[],i=0;ib,Row:()=>A,default:()=>L});var a,n=i("./src/utils/logger.ts"),o={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},l=15,d=100,h={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},c={17:2,18:4,21:6,22:8,23:10,19:13,20:15},u={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},p={25:2,26:4,29:6,30:8,31:10,27:13,28:15},f=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],m=((t=a=a||{})[t.ERROR=0]="ERROR",t[t.TEXT=1]="TEXT",t[t.WARNING=2]="WARNING",t[t.INFO=2]="INFO",t[t.DEBUG=3]="DEBUG",t[t.DATA=3]="DATA",k.prototype.log=function(e,t){this.verboseLevel>=e&&(t="function"==typeof t?t():t,n.logger.log(this.time+" ["+e+"] "+t))},k),g=((i=T.prototype).reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},i.setStyles=function(e){for(var t=["foreground","underline","italics","background","flash"],i=0;id&&(this.logger.log(a.DEBUG,"Too large cursor position "+this.pos),this.pos=d)},i.moveCursor=function(e){var t=this.pos+e;if(1=d?this.logger.log(a.ERROR,(function(){return"Cannot insert "+e.toString(16)+" ("+i+") at position "+t.pos+". Skipping it!"})):(this.chars[this.pos].setChar(i,this.currPenState),this.moveCursor(1))},i.clearFromPos=function(e){for(var t=e;t ("+s([l,d])+")"),!(i=(i=(i=(i=this.parseCmd(l,d))?i:this.parseMidrow(l,d))||this.parsePAC(l,d))||this.parseBackgroundAttributes(l,d))&&(r=this.parseChars(l,d))&&((o=this.currentChannel)&&0{i.r(t),i.d(t,{isCodecSupportedInMp4:()=>function(e,t){return MediaSource.isTypeSupported((t||"video")+'/mp4;codecs="'+e+'"')},isCodecType:()=>function(e,t){return t=r[t],!!t&&!0===t[e.slice(0,4)]}});var r={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,av01:!0,drac:!0,dva1:!0,dvav:!0,dvh1:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0},text:{stpp:!0,wvtt:!0}}},"./src/utils/cues.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>o});var r=i("./src/utils/vttparser.ts"),s=i("./src/utils/webvtt-parser.ts"),a=i("./src/utils/texttrack-utils.ts"),n=/\s/;const o={newCue:function(e,t,i,o){for(var l,d,h,c,u=[],p=self.VTTCue||self.TextTrackCue,f=0;f{i.r(t),i.d(t,{adjustSlidingStart:()=>h,alignMediaPlaylistByPDT:()=>function(e,t){var i,r,s;e.hasProgramDateTime&&t.hasProgramDateTime&&(i=e.fragments,t=t.fragments,i.length&&t.length&&(t=t[Math.round(t.length/2)-1],i=n(i,t.cc)||i[Math.round(i.length/2)-1],r=t.programDateTime,s=i.programDateTime,null!==r&&null!==s&&h((s-r)/1e3-(i.start-t.start),e)))},alignPDT:()=>c,alignStream:()=>function(e,t,i){var n;t&&(o(e,e=t,n=i)&&(e=l(e.details,n))&&(0,r.isFiniteNumber)(e.start)&&(s.logger.log("Adjusting PTS using last level due to CC increase within current level "+n.url),h(e.start,n)),!i.alignedSliding&&t.details&&c(i,t.details),i.alignedSliding||!t.details||i.skippedSegments||(0,a.adjustSliding)(t.details,i))},findDiscontinuousReferenceFrag:()=>l,findFirstFragWithCC:()=>n,shouldAlignOnDiscontinuities:()=>o});var r=i("./src/polyfills/number.ts"),s=i("./src/utils/logger.ts"),a=i("./src/controller/level-helper.ts");function n(e,t){for(var i=null,r=0,s=e.length;ri.startCC||e&&e.cc{i.r(t),i.d(t,{default:()=>s});var r=i("./src/utils/ewma.ts");(t=a.prototype).update=function(e,t){var i=this.slow_,s=this.fast_;this.slow_.halfLife!==e&&(this.slow_=new r.default(e,i.getEstimate(),i.getTotalWeight())),this.fast_.halfLife!==t&&(this.fast_=new r.default(t,s.getEstimate(),s.getTotalWeight()))},t.sample=function(e,t){e=(e=Math.max(e,this.minDelayMs_))/1e3,t=8*t/e,this.fast_.sample(e,t),this.slow_.sample(e,t)},t.canEstimate=function(){var e=this.fast_;return e&&e.getTotalWeight()>=this.minWeight_},t.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.destroy=function(){};const s=a;function a(e,t,i){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultEstimate_=i,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new r.default(e),this.fast_=new r.default(t)}},"./src/utils/ewma.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r}),(i=s.prototype).sample=function(e,t){var i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e},i.getTotalWeight=function(){return this.totalWeight_},i.getEstimate=function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_};const r=s;function s(e,t,i){void 0===t&&(t=0),void 0===i&&(i=0),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}},"./src/utils/fetch-loader.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>y,fetchSupported:()=>function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1}});var r=i("./src/polyfills/number.ts"),s=i("./src/loader/load-stats.ts"),a=i("./src/demux/chunk-cache.ts");function n(e){var t="function"==typeof Map?new Map:void 0;return(n=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return o(e,arguments,d(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),l(i,e)})(e)}function o(e,t,i){return(o=function(){if("undefined"!=typeof Reflect&&Reflect.construct&&!Reflect.construct.sham){if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),1}catch(e){return}}}()?Reflect.construct.bind():function(e,t,i){var r=[null];r.push.apply(r,t),t=new(Function.bind.apply(e,r));return i&&l(t,i.prototype),t}).apply(null,arguments)}function l(e,t){return(l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(){return(h=Object.assign?Object.assign.bind():function(e){for(var t=1;t=r&&s(t,i,n.flush(),e)):s(t,i,o,e),a()})).catch((function(){return Promise.reject()}))}()},i=c,p=n(Error),t=p,(f=g).prototype=Object.create(t.prototype),l(f.prototype.constructor=f,t);var p,f,m=g;function g(e,t,i){return(e=p.call(this,e)||this).code=void 0,e.details=void 0,e.code=t,e.details=i,e}const y=i},"./src/utils/hex.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r={hexDump:function(e){for(var t="",i=0;i{i.r(t),i.d(t,{IMSC1_CODEC:()=>h,parseIMSC1:()=>function(e,t,i,s,h){var c=(0,r.findBox)(new Uint8Array(e),["mdat"]);if(0!==c.length){c=c.map((function(e){return(0,n.utf8ArrayToStr)(e)}));var u=(0,o.toTimescaleFromScale)(t,1,i);try{c.forEach((function(e){return s(function(e,t){var i=(new DOMParser).parseFromString(e,"text/xml").getElementsByTagName("tt")[0];if(!i)throw new Error("Invalid ttml");var r={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},s=Object.keys(r).reduce((function(e,t){return e[t]=i.getAttribute("ttp:"+t)||r[t],e}),{}),n="preserve"!==i.getAttribute("xml:space"),o=m(f(i,"styling","style")),h=m(f(i,"layout","region"));e=f(i,"body","[begin]");return[].map.call(e,(function(e){var i=function e(t,i){return[].slice.call(t.childNodes).reduce((function(t,r,s){return"br"===r.nodeName&&s?t+"\n":null!=(s=r.childNodes)&&s.length?e(r,i):i?t+r.textContent.trim().replace(/\s+/g," "):t+r.textContent}),"")}(e,n);if(!i||!e.hasAttribute("begin"))return null;var r=A(e.getAttribute("begin"),s),c=A(e.getAttribute("dur"),s),u=A(e.getAttribute("end"),s);if(null===r)throw y(e);if(null===u){if(null===c)throw y(e);u=r+c}var f,m,b,v;c=new a.default(r-t,u-t,i),c.id=(0,l.generateCueId)(c.startTime,c.endTime,c.text),f=h[e.getAttribute("region")],m=o[e.getAttribute("style")],r=o,b="http://www.w3.org/ns/ttml#styling",(u=(v=null)!=f&&f.hasAttribute("style")?f.getAttribute("style"):null)&&r.hasOwnProperty(u)&&(v=r[u]),i=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((function(e,t){var i=g(m,b,t)||g(f,b,t)||g(v,b,t);return i&&(e[t]=i),e}),{}),e=i.textAlign;return e&&((r=p[e])&&(c.lineAlign=r),c.align=e),d(c,i),c})).filter((function(e){return null!==e}))}(e,u))}))}catch(e){h(e)}}else h(new Error("Could not parse IMSC1 mdat"))}});var r=i("./src/utils/mp4-tools.ts"),s=i("./src/utils/vttparser.ts"),a=i("./src/utils/vttcue.ts"),n=i("./src/demux/id3.ts"),o=i("./src/utils/timescale-conversion.ts"),l=i("./src/utils/webvtt-parser.ts");function d(){return(d=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{changeEndianness:()=>function(e){function t(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}t(e,0,3),t(e,1,2),t(e,4,5),t(e,6,7)},convertDataUriToArrayBytes:()=>function(e){e=e.split(":");var t,i,a=null;return"data"===e[0]&&2===e.length&&(e=e[1].split(";"),2===(i=e[e.length-1].split(",")).length&&(t="base64"===i[0],i=i[1],a=t?(e.splice(-1,1),(0,r.base64Decode)(i)):(t=s(i).subarray(0,16),(e=new Uint8Array(16)).set(t,16-t.length),e))),a},strToUtf8array:()=>s});var r=i("./src/utils/numeric-encoding-utils.ts");function s(e){return Uint8Array.from(unescape(encodeURIComponent(e)),(function(e){return e.charCodeAt(0)}))}},"./src/utils/logger.ts":(e,t,i)=>{function r(){}i.r(t),i.d(t,{enableLogs:()=>function(e,t){if(self.console&&!0===e||"object"==typeof e){!function(e){for(var t=arguments.length,i=new Array(1"):r)}))}(e,"debug","log","info","warn","error");try{a.log('Debug logs enabled for "'+t+'"')}catch(e){a=s}}else a=s},logger:()=>n});var s={trace:r,debug:r,log:r,warn:r,info:r,error:r},a=s,n=s},"./src/utils/mediakeys-helper.ts":(e,t,i)=>{var r,s,a;i.r(t),i.d(t,{KeySystemFormats:()=>s,KeySystemIds:()=>a,KeySystems:()=>r,getKeySystemsForConfig:()=>function(e){var t=e.drmSystems,i=(e=e.widevineLicenseUrl,t?[r.FAIRPLAY,r.WIDEVINE,r.PLAYREADY,r.CLEARKEY].filter((function(e){return!!t[e]})):[]);return!i[r.WIDEVINE]&&e&&i.push(r.WIDEVINE),i},getSupportedMediaKeySystemConfigurations:()=>function(e,t,i,s){var a;switch(e){case r.FAIRPLAY:a=["cenc","sinf"];break;case r.WIDEVINE:case r.PLAYREADY:a=["cenc"];break;case r.CLEARKEY:a=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+e)}var n=s;return[{initDataTypes:a,persistentState:n.persistentState||"not-allowed",distinctiveIdentifier:n.distinctiveIdentifier||"not-allowed",sessionTypes:n.sessionTypes||[n.sessionType||"temporary"],audioCapabilities:t.map((function(e){return{contentType:'audio/mp4; codecs="'+e+'"',robustness:n.audioRobustness||"",encryptionScheme:n.audioEncryptionScheme||null}})),videoCapabilities:i.map((function(e){return{contentType:'video/mp4; codecs="'+e+'"',robustness:n.videoRobustness||"",encryptionScheme:n.videoEncryptionScheme||null}}))}]},keySystemDomainToKeySystemFormat:()=>function(e){switch(e){case r.FAIRPLAY:return s.FAIRPLAY;case r.PLAYREADY:return s.PLAYREADY;case r.WIDEVINE:return s.WIDEVINE;case r.CLEARKEY:return s.CLEARKEY}},keySystemFormatToKeySystemDomain:()=>function(e){switch(e){case s.FAIRPLAY:return r.FAIRPLAY;case s.PLAYREADY:return r.PLAYREADY;case s.WIDEVINE:return r.WIDEVINE;case s.CLEARKEY:return r.CLEARKEY}},keySystemIdToKeySystemDomain:()=>function(e){if(e===a.WIDEVINE)return r.WIDEVINE},requestMediaKeySystemAccess:()=>n}),(i=r=r||{}).CLEARKEY="org.w3.clearkey",i.FAIRPLAY="com.apple.fps",i.PLAYREADY="com.microsoft.playready",i.WIDEVINE="com.widevine.alpha",(t=s=s||{}).CLEARKEY="org.w3.clearkey",t.FAIRPLAY="com.apple.streamingkeydelivery",t.PLAYREADY="com.microsoft.playready",t.WIDEVINE="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",(a=a||{}).WIDEVINE="edef8ba979d64acea3c827dcd51d21ed";var n="undefined"!=typeof self&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null},"./src/utils/mediasource-helper.ts":(e,t,i)=>{i.r(t),i.d(t,{getMediaSource:()=>function(){return self.MediaSource||self.WebKitMediaSource}})},"./src/utils/mp4-tools.ts":(e,t,i)=>{i.r(t),i.d(t,{RemuxerTrackIdConfig:()=>h,appendUint8Array:()=>function(e,t){var i=new Uint8Array(e.length+t.length);return i.set(e),i.set(t,e.length),i},bin2str:()=>c,computeRawDurationFromSamples:()=>b,discardEPB:()=>_,findBox:()=>g,getDuration:()=>function(e,t){for(var i=0,s=0,a=0,n=g(e,["moof","traf"]),o=0;ofunction(e,t){return g(t,["moof","traf"]).reduce((function(t,i){var r=g(i,["tfdt"])[0],s=r[0];i=g(i,["tfhd"]).reduce((function(t,i){if(i=p(i,4),i=e[i],i){var a=p(r,4);a=(a=1===s?(a*=Math.pow(2,32))+p(r,8):a)/(i.timescale||9e4);if(isFinite(a)&&(null===t||aw,mp4pssh:()=>function(e,t,i){if(16!==e.byteLength)throw new RangeError("Invalid system id");var r,s,a;if(t){r=1,s=new Uint8Array(16*t.length);for(var n=0;nfunction(e,t,i){g(t,["moof","traf"]).forEach((function(t){g(t,["tfhd"]).forEach((function(r){var s;r=p(r,4),r=e[r];r&&(s=r.timescale||9e4,g(t,["tfdt"]).forEach((function(e){var t=e[0],r=p(e,4);0===t?(r-=i*s,m(e,4,r=Math.max(r,0))):(r=(r=(r*=Math.pow(2,32))+p(e,8))-i*s,r=Math.max(r,0),t=Math.floor(r/(l+1)),r=Math.floor(r%(l+1)),m(e,4,t),m(e,8,r))})))}))}))},parseEmsg:()=>function(e){var t=e[0],i="",r="",s=0,a=0,n=0,o=0,l=0,d=0;if(0===t){for(;"\0"!==c(e.subarray(d,d+1));)i+=c(e.subarray(d,d+1)),d+=1;for(i+=c(e.subarray(d,d+1)),d+=1;"\0"!==c(e.subarray(d,d+1));)r+=c(e.subarray(d,d+1)),d+=1;r+=c(e.subarray(d,d+1)),d+=1,s=p(e,12),a=p(e,16),o=p(e,20),l=p(e,24),d=28}else if(1===t){s=p(e,d+=4);t=p(e,d+=4);var h=p(e,d+=4);for(d+=4,n=Math.pow(2,32)*t+h,Number.isSafeInteger(n)||(n=Number.MAX_SAFE_INTEGER,console.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=p(e,d),l=p(e,d+=4),d+=4;"\0"!==c(e.subarray(d,d+1));)i+=c(e.subarray(d,d+1)),d+=1;for(i+=c(e.subarray(d,d+1)),d+=1;"\0"!==c(e.subarray(d,d+1));)r+=c(e.subarray(d,d+1)),d+=1;r+=c(e.subarray(d,d+1)),d+=1}return{schemeIdUri:i,value:r,timeScale:s,presentationTime:n,presentationTimeDelta:a,eventDuration:o,id:l,payload:e.subarray(d,e.byteLength)}},parseInitSegment:()=>function(e){for(var t=[],i=g(e,["moov","trak"]),s=0;sfunction(e){if(!(e instanceof ArrayBuffer)||e.byteLength<32)return null;var t={version:0,systemId:"",kids:null,data:null},i=new DataView(e),r=i.getUint32(0);if(e.byteLength!==r&&44>>24,1v,parseSamples:()=>function(e,t){var i=[],s=t.samples,a=t.timescale,n=t.id,o=!1;return g(s,["moof"]).map((function(l){var d=l.byteOffset-8;g(l,["traf"]).map((function(l){var h=g(l,["tfdt"]).map((function(e){var t=e[0],i=p(e,4);return(i=1===t?(i*=Math.pow(2,32))+p(e,8):i)/a}))[0];return void 0!==h&&(e=h),g(l,["tfhd"]).map((function(h){var c=p(h,4),u=16777215&p(h,0),m=0,y=0,A=8;c===n&&(0!=(1&u)&&(A+=8),0!=(2&u)&&(A+=4),0!=(8&u)&&(m=p(h,A),A+=4),0!=(16&u)&&(y=p(h,A),A+=4),0!=(32&u)&&(A+=4),"video"===t.type&&(o=function(e){if(!e)return!1;var t=e.indexOf(".");e=t<0?e:e.substring(0,t);return"hvc1"===e||"hev1"===e||"dvh1"===e||"dvhe"===e}(t.codec)),g(l,["trun"]).map((function(n){var l=n[0],h=16777215&p(n,0),c=0,u=0!=(256&h),g=0,A=0!=(512&h),b=0,_=0!=(1024&h),w=0!=(2048&h),S=0,E=p(n,4),T=8;0!=(1&h)&&(c=p(n,T),T+=4),0!=(4&h)&&(T+=4);for(var k=c+d,x=0;x>1&63)||40==e:6==(31&t)}(o,s[k+=4])||v(s.subarray(k,k+L),o?2:1,e+S/a,i),k+=L,C+=L+4}e+=g/a}})))}))}))})),i},parseSegmentIndex:()=>y,parseSinf:()=>A,patchEncyptionData:()=>function(e,t){if(!e||!t)return e;var i=t.keyId;return i&&t.isCommonEncryption&&g(e,["moov","trak"]).forEach((function(e){e=g(e,["mdia","minf","stbl","stsd"])[0].subarray(8);var t=g(e,["enca"]),r=0sinf>>tenc' box: "+o.default.hexDump(t)+" -> "+o.default.hexDump(i)),e.set(i,8))}))}))})),e},readSint32:()=>f,readUint16:()=>u,readUint32:()=>p,segmentValidRange:()=>function(e){var t={valid:null,remainder:null},i=g(e,["moof"]);return i?i.length<2?(t.remainder=e,t):(i=i[i.length-1],t.valid=(0,s.sliceUint8)(e,0,i.byteOffset-8),t.remainder=(0,s.sliceUint8)(e,i.byteOffset-8),t):t},writeUint32:()=>m});var r=i("./src/loader/fragment.ts"),s=i("./src/utils/typed-array.ts"),a=i("./src/demux/id3.ts"),n=i("./src/utils/logger.ts"),o=i("./src/utils/hex.ts"),l=Math.pow(2,32)-1,d=[].push,h={video:1,audio:2,id3:3,text:4};function c(e){return String.fromCharCode.apply(null,e)}function u(e,t){return e=e[t]<<8|e[t+1],e<0?65536+e:e}function p(e,t){return e=f(e,t),e<0?4294967296+e:e}function f(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function m(e,t,i){e[t]=i>>24,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i}function g(e,t){var i=[];if(!t.length)return i;for(var r=e.byteLength,s=0;s>>31)return console.warn("SIDX has hierarchical references (not supported)"),null;d=p(e,l),l+=4,t.push({referenceSize:h,subsegmentDuration:d,info:{duration:d/s,start:a,end:a+h-1}}),a+=h,r=l+=4}return{earliestPresentationTime:0,timescale:s,version:i,referencesCount:n,references:t}}function A(e){var t=g(e,["schm"])[0];return t&&(t=c(t.subarray(4,8)),"cbcs"===t||"cenc"===t)?g(e,["schi","tenc"])[0]:(n.logger.error("[eme] missing 'schm' box"),null)}function b(e){var t=p(e,0),i=8;1&t&&(i+=4),4&t&&(i+=4);for(var r=0,s=p(e,4),a=0;a=s.length)&&(o+=h=s[n++],255===h););for(l=0;!(n>=s.length)&&(l+=h=s[n++],255===h););var c=s.length-n;if(!d&&4===o&&n>24&255,o[1]=a>>16&255,o[2]=a>>8&255,o[3]=255&a,o.set(e,4),n=0,a=8;n{function r(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function s(e){return btoa(String.fromCharCode.apply(String,e))}i.r(t),i.d(t,{base64Decode:()=>function(e){return Uint8Array.from(atob(e),(function(e){return e.charCodeAt(0)}))},base64DecodeToStr:()=>function(e){return atob(e)},base64Encode:()=>s,base64ToBase64Url:()=>r,base64UrlEncode:()=>function(e){return r(s(e))},strToBase64Encode:()=>function(e){return btoa(e)}})},"./src/utils/output-filter.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r}),(i=s.prototype).dispatchCue=function(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)},i.newCue=function(e,t,i){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)},i.reset=function(){this.cueRanges=[],this.startTime=null};var r=s;function s(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}},"./src/utils/texttrack-utils.ts":(e,t,i)=>{i.r(t),i.d(t,{addCueToTrack:()=>function(e,t){var i=e.mode;if("disabled"===i&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(t.id))try{if(e.addCue(t),!e.cues.getCueById(t.id))throw new Error("addCue is failed for: "+t)}catch(i){r.logger.debug("[texttrack-utils]: "+i);var s=new self.TextTrackCue(t.startTime,t.endTime,t.text);s.id=t.id,e.addCue(s)}"disabled"===i&&(e.mode=i)},clearCurrentCues:()=>function(e){var t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues)for(var i=e.cues.length;i--;)e.removeCue(e.cues[i]);"disabled"===t&&(e.mode=t)},getCuesInRange:()=>s,removeCuesInRange:()=>function(e,t,i,r){var a=e.mode;if("disabled"===a&&(e.mode="hidden"),e.cues&&0function(e,t){var i;try{i=new Event("addtrack")}catch(e){(i=document.createEvent("Event")).initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}});var r=i("./src/utils/logger.ts");function s(e,t,i){var r=[],s=function(e,t){if(te[i].endTime)return-1;for(var r=0,s=i;r<=s;){var a=Math.floor((s+r)/2);if(te[a].startTime&&r=t&&o.endTime<=i)r.push(o);else if(o.startTime>i)return r}return r}},"./src/utils/time-ranges.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r={toString:function(e){for(var t="",i=e.length,r=0;r{function r(e,t,i,r){return e=e*t*(i=void 0===i?1:i),(r=void 0!==r&&r)?Math.round(e):e}i.r(t),i.d(t,{toMpegTsClockFromTimescale:()=>function(e,t){return r(e,9e4,1/(t=void 0===t?1:t))},toMsFromMpegTsClock:()=>function(e,t){return r(e,1e3,1/9e4,t=void 0!==t&&t)},toTimescaleFromBase:()=>r,toTimescaleFromScale:()=>function(e,t,i,s){return r(e,t,1/(i=void 0===i?1:i),s=void 0!==s&&s)}})},"./src/utils/typed-array.ts":(e,t,i)=>{i.r(t),i.d(t,{sliceUint8:()=>function(e,t,i){return Uint8Array.prototype.slice?e.slice(t,i):new Uint8Array(Array.prototype.slice.call(e,t,i))}})},"./src/utils/vttcue.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r=function(){if("undefined"!=typeof self&&self.VTTCue)return self.VTTCue;var e=["","lr","rl"],t=["start","middle","end","left","right"];function i(e,t){return"string"==typeof t&&(!!Array.isArray(e)&&(t=t.toLowerCase(),!!~e.indexOf(t)&&t))}function r(e){return i(t,e)}function s(e){for(var t=arguments.length,i=new Array(1{i.r(t),i.d(t,{VTTParser:()=>p,fixLineBreaks:()=>u,parseTimeStamp:()=>n});var r=i("./src/utils/vttcue.ts"),s=(a.prototype.decode=function(e,t){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))},a);function a(){}function n(e){function t(e,t,i,r){return 3600*(0|e)+60*(0|t)+(0|i)+parseFloat(r||0)}return e=e.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/),e?59/gi,"\n")}(i=f.prototype).parse=function(e){var t=this;function i(){for(var e=0,i=u(i=t.buffer);e{i.r(t),i.d(t,{generateCueId:()=>c,parseWebVTT:()=>function(e,t,i,h,u,p,f,m){var g,y=new s.VTTParser,A=(e=(0,a.utf8ArrayToStr)(new Uint8Array(e)).trim().replace(l,"\n").split("\n"),[]),b=(0,n.toMpegTsClockFromTimescale)(t,i),v="00:00.000",_=0,w=0,S=!0;y.oncue=function(e){var t=h[u],i=h.ccOffset,r=(_-b)/9e4;null!=t&&t.new&&(void 0!==w?i=h.ccOffset=t.start:function(e,t){var i,r=e[u],s=e[r.prevCC];if(!s||!s.new&&r.new)return e.ccOffset=e.presentationOffset=r.start,r.new=!1;for(;null!=(i=s)&&i.new;)e.ccOffset+=r.start-s.start,r.new=!1,s=e[(r=s).prevCC];e.presentationOffset=t}(h,r)),r&&(i=r-h.presentationOffset),t=e.endTime-e.startTime,r=(0,o.normalizePts)(9e4*(e.startTime+i-w),9e4*p)/9e4,e.startTime=Math.max(r,0),e.endTime=Math.max(r+t,0),i=e.text.trim();e.text=decodeURIComponent(encodeURIComponent(i)),e.id||(e.id=c(e.startTime,e.endTime,i)),0>>0).toString()};function c(e,t,i){return h(e.toString())+h(t.toString())+h(i)}},"./src/utils/xhr-loader.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>n});var r=i("./src/utils/logger.ts"),s=i("./src/loader/load-stats.ts"),a=/^age:\s*[\d.]+\s*$/m;(t=o.prototype).destroy=function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null},t.abortInternal=function(){var e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState&&(this.stats.aborted=!0,e.abort()))},t.abort=function(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)},t.load=function(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.retryDelay=t.retryDelay,this.loadInternal()},t.loadInternal=function(){var e=this.config,t=this.context;if(e){var i=this.loader=new self.XMLHttpRequest,r=this.stats;r=(r.loading.first=0,r.loaded=0,this.xhrSetup);try{if(r)try{r(i,t.url)}catch(e){i.open("GET",t.url,!0),r(i,t.url)}i.readyState||i.open("GET",t.url,!0);var s=this.context.headers;if(s)for(var a in s)i.setRequestHeader(a,s[a])}catch(e){return void this.callbacks.onError({code:i.status,text:e.message},t,i)}t.rangeEnd&&i.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),i.onreadystatechange=this.readystatechange.bind(this),i.onprogress=this.loadprogress.bind(this),i.responseType=t.responseType,self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),e.timeout),i.send()}},t.readystatechange=function(){var e,t,i,s,a=this.context,n=this.loader,o=this.stats;a&&n&&(t=n.readyState,e=this.config,!o.aborted&&2<=t&&(self.clearTimeout(this.requestTimeout),0===o.loading.first&&(o.loading.first=Math.max(self.performance.now(),o.loading.start)),4===t?(n.onreadystatechange=null,n.onprogress=null,t=n.status,s="arraybuffer"===n.responseType,200<=t&&t<300&&(s&&n.response||null!==n.responseText)?(o.loading.end=Math.max(self.performance.now(),o.loading.first),s=s?(i=n.response).byteLength:(i=n.responseText).length,o.loaded=o.total=s,this.callbacks&&((s=this.callbacks.onProgress)&&s(o,a,i,n),this.callbacks&&(s={url:n.responseURL,data:i},this.callbacks.onSuccess(s,o,a,n)))):o.retry>=e.maxRetry||400<=t&&t<499?(r.logger.error(t+" while loading "+a.url),this.callbacks.onError({code:t,text:n.statusText},a,n)):(r.logger.warn(t+" while loading "+a.url+", retrying in "+this.retryDelay+"..."),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,e.maxRetryDelay),o.retry++)):(self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),e.timeout))))},t.loadtimeout=function(){r.logger.warn("timeout while loading "+this.context.url);var e=this.callbacks;e&&(this.abortInternal(),e.onTimeout(this.stats,this.context,this.loader))},t.loadprogress=function(e){var t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)},t.getCacheAge=function(){var e,t=null;return this.loader&&a.test(this.loader.getAllResponseHeaders())?(e=this.loader.getResponseHeader("age"))?parseFloat(e):null:t};const n=o;function o(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=void 0,this.loader=null,this.stats=void 0,this.xhrSetup=e?e.xhrSetup:null,this.stats=new s.LoadStats,this.retryDelay=0}},"./node_modules/eventemitter3/index.js":e=>{var t=Object.prototype.hasOwnProperty,i="~";function r(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function a(e,t,r,a,n){if("function"!=typeof r)throw new TypeError("The listener must be a function");return r=new s(r,a||e,n),a=i?i+t:t,e._events[a]?e._events[a].fn?e._events[a]=[e._events[a],r]:e._events[a].push(r):(e._events[a]=r,e._eventsCount++),e}function n(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function o(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(i=!1)),o.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(i?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},o.prototype.listeners=function(e){e=i?i+e:e;var t=this._events[e];if(!t)return[];if(t.fn)return[t.fn];for(var r=0,s=t.length,a=new Array(s);r{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r=i("./src/hls.ts");return r.default})())})));class sa extends r{constructor(e){super(),(this.player=e)._opt,this.canVideoPlay=!1,this.$videoElement=null,this.canvasRenderInterval=null,this.bandwidthEstimateInterval=null,this.fpsInterval=null,this.hlsFps=0,this.hlsPrevFrams=0,this.isInitInfo=!1,this.eventsDestroy=[],Ut()?(this.$videoElement=this.player.video.$videoElement,this.canVideoPlay=!0):ra.isSupported()?(this.$videoElement=this.player.video.$videoElement,this.hls=new ra({}),this._initHls(),this._bindEvents()):this.player.debug.error("HlsDecoder","init hls error ,not support "),this.player.debug.log("HlsDecoder","init")}destroy(){return new Promise((e,t)=>{this.hls&&(this.hls.destroy(),this.hls=null),this.eventsDestroy.length&&(this.eventsDestroy.forEach(e=>e()),this.eventsDestroy=[]),this.isInitInfo=!1,this._stopCanvasRender(),this._stopBandwidthEstimateInterval(),this._stopFpsInterval(),this.$videoElement=null,this.hlsFps=0,this.player.debug.log("HlsDecoder","destroy"),setTimeout(()=>{e()},0)})}checkHlsBufferedDelay(){var e=this.$videoElement;let t=0;const i=e.buffered,r=i.length?i.end(i.length-1):0;return(t=r-e.currentTime)<0&&(this.player.debug.warn("HlsDecoder","checkHlsBufferedDelay result < 0",t,r,e.currentTime),t=0),t}getFps(){return this.hlsFps}_startCanvasRender(){this._stopCanvasRender(),this.canvasRenderInterval=setInterval(()=>{this.player.video.render({$video:this.$videoElement,ts:0})},40)}_stopCanvasRender(){this.canvasRenderInterval&&(clearInterval(this.canvasRenderInterval),this.canvasRenderInterval=null)}_startBandwidthEstimateInterval(){this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval(()=>{let e=0;this.hls.bandwidthEstimate&&(e=this.hls.bandwidthEstimate),this.player.emit(U.kBps,(e/1024/8/10).toFixed(2))},1e3)}_stopBandwidthEstimateInterval(){this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}_startFpsInterval(){this._stopCanvasRender(),this.fpsInterval=setInterval(()=>{var e=this.$videoElement.getVideoPlaybackQuality();this.hlsFps=e.totalVideoFrames-this.hlsPrevFrams,this.hlsPrevFrams=e.totalVideoFrames},1e3)}_stopFpsInterval(){this.fpsInterval&&(clearInterval(this.fpsInterval),this.fpsInterval=null)}_initHls(){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.$videoElement.muted=!0,ot()&&(this.$videoElement.style.position="absolute"),this.initVideoEvents()),this.hls.attachMedia(this.$videoElement)}_bindEvents(){const e=this.player,t=this.player.events["proxy"];this.hls;var i=t(this.$videoElement,_e,t=>{this.hls&&(t=parseInt(t.timeStamp,10),e.handleRender(),e.updateStats({ts:t,dts:t,fps:!0}),e.emit(U.videoTimeUpdate,t))});this.eventsDestroy.push(i),this._startBandwidthEstimateInterval(),this._startFpsInterval(),this.hls.on(ra.Events.ERROR,(e,t)=>{if(t.fatal)switch(t.type){case ra.ErrorTypes.NETWORK_ERROR:this.player.debug.warn("HlsDecoder","fatal network error encountered, try to recover"),this.hls.startLoad();break;case ra.ErrorTypes.MEDIA_ERROR:this.player.debug.warn("HlsDecoder","fatal media error encountered, try to recover"),this.hls.recoverMediaError()}}),this.hls.on(ra.Events.MEDIA_ATTACHING,()=>{}),this.hls.on(ra.Events.MEDIA_ATTACHED,()=>{}),this.hls.on(ra.Events.MEDIA_DETACHING,()=>{}),this.hls.on(ra.Events.MEDIA_DETACHED,()=>{}),this.hls.on(ra.Events.BUFFER_RESET,()=>{}),this.hls.on(ra.Events.BUFFER_CODECS,()=>{}),this.hls.on(ra.Events.BUFFER_CREATED,()=>{}),this.hls.on(ra.Events.BUFFER_APPENDING,(e,t)=>{this.player.debug.log("HlsDecoder","BUFFER_APPENDING",t)}),this.hls.on(ra.Events.BUFFER_APPENDED,()=>{}),this.hls.on(ra.Events.BUFFER_EOS,()=>{}),this.hls.on(ra.Events.BUFFER_FLUSHING,()=>{}),this.hls.on(ra.Events.BUFFER_FLUSHED,()=>{}),this.hls.on(ra.Events.MANIFEST_LOADING,()=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADING 开始加载playlist m3u8资源")}),this.hls.on(ra.Events.MANIFEST_LOADED,(e,t)=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADED playlist m3u8文件加载完成",t)}),this.hls.on(ra.Events.MANIFEST_PARSED,()=>{this.player.debug.log("HlsDecoder","MANIFEST_PARSED playlist m3u8解析完成"),e._times.demuxStart||(e._times.demuxStart=qe())}),this.hls.on(ra.Events.LEVEL_LOADING,()=>{}),this.hls.on(ra.Events.LEVEL_LOADED,(e,t)=>{}),this.hls.on(ra.Events.FRAG_LOADING,()=>{}),this.hls.on(ra.Events.FRAG_LOADED,(t,i)=>{e._times.decodeStart||(e._times.decodeStart=qe())}),this.hls.on(ra.Events.BUFFER_APPENDING,()=>{e._times.videoStart||(e._times.videoStart=qe(),e.handlePlayToRenderTimes())}),this.hls.on(ra.Events.FRAG_DECRYPTED,()=>{}),this.hls.on(ra.Events.KEY_LOADING,()=>{}),this.hls.on(ra.Events.KEY_LOADING,()=>{}),this.hls.on(ra.Events.FPS_DROP,e=>{}),this.hls.on(ra.Events.FPS_DROP_LEVEL_CAPPING,e=>{}),this.hls.on(ra.Events.FRAG_PARSING_INIT_SEGMENT,(e,t)=>{this.player.debug.log("HlsDecoder","FRAG_PARSING_INIT_SEGMENT",t);const i=!!(t&&t.tracks&&t.tracks.audio),r=!!(t&&t.tracks&&t.tracks.video);if(i&&t.tracks.audio){var s=t.tracks.audio;const e=s.metadata&&s.metadata.channelCount?s.metadata.channelCount:0,i=s.codec;this.player.audio&&this.player.audio.updateAudioInfo({encType:i,channels:e,sampleRate:44100})}if(r&&t.tracks.video){let e=t.tracks.video,i=e.codec,r=e.metadata&&e.metadata.width?e.metadata.width:0,s=e.metadata&&e.metadata.height?e.metadata.height:0;this.player.video&&this.player.video.updateVideoInfo({encTypeCode:-1!==i.indexOf("avc")?7:12,width:r,height:s})}})}initVideoPlay(e){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.initVideoEvents()),this.$videoElement.muted=!0,this.$videoElement.src=e}initRenderSize(){this.isInitInfo||(this.player.video.updateVideoInfo({width:this.$videoElement.videoWidth,height:this.$videoElement.videoHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0)}initVideoEvents(){const e=this.player.events["proxy"],t=e(this.$videoElement,be,()=>{this.player.debug.log("HlsDecoder","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("HlsDecoder","video play"),this._startCanvasRender(),this.initRenderSize()}).catch(e=>{this.player.debug.warn("HlsDecoder","video play error ",e)})}),i=e(this.$videoElement,ve,()=>{this.player.debug.log("HlsDecoder","video waiting")}),r=e(this.$videoElement,_e,e=>{e=parseInt(e.timeStamp,10),this.player.handleRender(),this.player.updateStats({ts:e}),this.player.emit(U.videoTimeUpdate,e),this.$videoElement.paused&&(this.player.debug.warn("HlsDecoder","video is paused and next try to replay"),this.$videoElement.play().then(()=>{this.player.debug.log("HlsDecoder","video is paused and replay success")}).catch(e=>{this.player.debug.warn("HlsDecoder","video is paused and replay error ",e)}))}),s=e(this.$videoElement,we,()=>{this.player.debug.log("HlsDecoder","video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)});this.eventsDestroy.push(t,i,r,s)}loadSource(e){return new Promise((t,i)=>{this.canVideoPlay?(this.initVideoPlay(e),t()):this.hls.on(ra.Events.MEDIA_ATTACHED,()=>{this.hls.loadSource(e),t()})})}_handleUpdatePlaybackRate(){if(this.$videoElement){const r=this.$videoElement;var e=(this.player._opt.videoBuffer+this.player._opt.videoBufferDelay)/1e3;const s=r.buffered;s.length&&s.start(0);var t=s.length?s.end(s.length-1):0;let a=r.currentTime;var i=t-a;e=Math.max(5,3+e),e=(e{if(null!=(r=t[e]))return Array.isArray(r)?e+="[]":r=[r],r.map(t=>{var i=t;return"[object Date]"===la.call(i)?t=t.toISOString():null!==t&&"object"==typeof t&&(t=JSON.stringify(t)),ca(e)+"="+ca(t)}).join("&")}).filter(Boolean).join("&");if(i){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}}function pa(e,t,i,r,s,a,n,o,l,d,h){return s=null!=s?parseFloat(s):null,r=parseInt(r||"0",10),{data:e,done:t,option:{range:l,vid:d,index:o,contentLength:r=Number.isNaN(r)?0:r,age:s,startTime:a,firstByteTime:n,endTime:Date.now(),priOptions:h},response:i}}function fa(e,t){return Math.round(8*e*1e3/t/1024)}class ma extends Error{constructor(e,t,i,r){super(r),Ds(this,"retryCount",0),Ds(this,"isTimeout",!1),Ds(this,"loaderType",aa),Ds(this,"startTime",0),Ds(this,"endTime",0),Ds(this,"options",{}),this.url=e,this.request=t,this.response=i}}class ga extends r{constructor(e){super(),Ds(this,"_abortController",null),Ds(this,"_timeoutTimer",null),Ds(this,"_reader",null),Ds(this,"_response",null),Ds(this,"_aborted",!1),Ds(this,"_index",-1),Ds(this,"_range",null),Ds(this,"_receivedLength",0),Ds(this,"_running",!1),Ds(this,"_logger",null),Ds(this,"_vid",""),Ds(this,"_onProcessMinLen",0),Ds(this,"_onCancel",null),Ds(this,"_priOptions",null),Ds(this,"TAG_NAME","FetchLoader"),this.player=e}load(e){let{url:t,vid:i,timeout:r,responseType:s,onProgress:a,index:n,onTimeout:o,onCancel:l,range:d,transformResponse:h,request:c,params:u,method:p,headers:f,body:m,mode:g,credentials:y,cache:A,redirect:b,referrer:v,referrerPolicy:_,onProcessMinLen:w,priOptions:S}=e;this._aborted=!1,this._onProcessMinLen=w,this._onCancel=l,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=n,this._range=d||[0,0],this._vid=i||t,this._priOptions=S||{};const E={method:p,headers:f,body:m,mode:g,credentials:y,cache:A,redirect:b,referrer:v,referrerPolicy:_,signal:null==(e=this._abortController)?void 0:e.signal};let T=!1;clearTimeout(this._timeoutTimer),t=ua(t,u),e=ha(d),e&&(f=c?c.headers:E.headers=E.headers||(Headers?new Headers:{}),Headers&&f instanceof Headers?f.append("Range",e):f.Range=e),r&&(this._timeoutTimer=setTimeout(()=>{if(T=!0,this.cancel(),o){const e=new ma(t,E,null,"timeout");e.isTimeout=!0,o(e,{index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})}},r));const k=Date.now();return(_t(n)||_t(d))&&this.player.debug.log(this.TAG_NAME,"[fetch load start], index,",n,",range,",d),new Promise((e,i)=>{fetch(c||t,c?void 0:E).then(async r=>{if(clearTimeout(this._timeoutTimer),this._response=r,!this._aborted&&this._running){if(!(r=h&&h(r,t)||r).ok)throw new ma(t,E,r,"bad network response");var o=Date.now();let l;if("text"===s)l=await r.text(),this._running=!1;else if("json"===s)l=await r.json(),this._running=!1;else{if(a)return this.resolve=e,this.reject=i,void this._loadChunk(r,a,k,o);{l=await r.arrayBuffer(),l=new Uint8Array(l),this._running=!1;const e=Date.now()-k,t=fa(l.byteLength,e);this.emit(oa,{speed:t,len:l.byteLength,time:e,vid:this._vid,index:this._index,range:this._range,priOptions:this._priOptions})}}(_t(n)||_t(d))&&this.player.debug.log(this.TAG_NAME,"[fetch load end], index,",n,",range,",d),e(pa(l,!0,r,r.headers.get("Content-Length"),r.headers.get("age"),k,o,n,d,this._vid,this._priOptions))}}).catch(e=>{var r;clearTimeout(this._timeoutTimer),this._running=!1,this._aborted&&!T||((e=e instanceof ma?e:new ma(t,E,null,null==(r=e)?void 0:r.message)).startTime=k,e.endTime=Date.now(),e.isTimeout=T,e.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},i(e))})})}async cancel(){if(!this._aborted){if(this._aborted=!0,this._running=!1,this._response){try{this._reader&&await this._reader.cancel()}catch(r){}this._response=this._reader=null}if(this._abortController){try{this._abortController.abort()}catch(r){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})}}_loadChunk(e,t,i,r){if(!e.body||!e.body.getReader){this._running=!1;const t=new ma(e.url,"",e,"onProgress of bad response.body.getReader");return t.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(t)}0{n=Date.now();try{a=await s.read(),o=Date.now()}catch(d){return o=Date.now(),void(this._aborted||(this._running=!1,d.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this.reject(d)))}var d=0<(null==(d=this._range)?void 0:d.length)?this._range[0]:0,h=d+this._receivedLength;if(this._aborted)return this._running=!1,void t(void 0,!1,{range:[h,h],vid:this._vid,index:this._index,startTime:n,endTime:o,st:i,firstByteTime:r,priOptions:this._priOptions},e);var c=a.value?a.value.byteLength:0;let u;if(this._receivedLength+=c,this.player.debug.log(this.TAG_NAME,"【fetchLoader,onProgress call】,task,",this._range,", start,",h,", end,",d+this._receivedLength,", done,",a.done),0=this._onProcessMinLen||a.done)(u=new Uint8Array(this._writeIdx+c)).set(this._cache.slice(0,this._writeIdx),0),0{e=i,t=r});return i.used=!1,i.resolve=function(){return i.used=!0,e(...arguments)},i.reject=function(){return i.used=!0,t(...arguments)},i}(),this.alive=!!t.onProgress,this._loaderType=e,this.player=i,this._loader=new(e===aa&&window.fetch?ga:Aa)(i),this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc}exec(){const{retry:e,retryDelay:t,onRetryError:i,transformError:s,...a}=this._config,n=async()=>{try{const e=await this._loader.load(a);this.promise.resolve(e)}catch(r){if(this._loader.running=!1,this.player.debug.log(this.TAG_NAME,"[task request catch err]",r),this._canceled)return;r.loaderType=this._loaderType,r.retryCount=this._retryCount;let l=r,d=(s&&(l=s(l)||l),i&&0{this._loadCompleteResolve=e,this._loadCompleteReject=t,this._startLoad()}).catch(e=>{if(clearTimeout(this._timeoutTimer),this._runing=!1,!this._aborted)throw(e=e instanceof ma?e:new ma(this._url,this._request)).startTime=t,e.endTime=Date.now(),e.options={index:this._index,vid:this._vid,priOptions:this._priOptions},e})}_startLoad(){let e=null;if(this._responseType===na&&this._range&&1],tast :",this._range,", SubRange, ",e)}else e=this._range,this.player.debug.log(this.TAG_NAME,"[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}_internalOpen(e){try{this._startTime=Date.now();const t=this._xhr=new XMLHttpRequest,i=(t.open(this._method||"GET",this._url,!0),t.responseType=this._responseType,this._timeout&&(t.timeout=this._timeout),t.withCredentials=this._withCredentials,t.onload=this._onLoad.bind(this),t.onreadystatechange=this._onReadyStatechange.bind(this),t.onerror=e=>{var t;this._running=!1;const i=new ma(this._url,this._request,null==e||null==(t=e.currentTarget)?void 0:t.response,"xhr.onerror.status:"+(null==e||null==(t=e.currentTarget)?void 0:t.status)+",statusText,"+(null==e||null==(t=e.currentTarget)?void 0:t.statusText));i.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(i)},t.ontimeout=e=>{this.cancel();const t=new ma(this._url,this._request,{status:408},"timeout");this._onTimeout&&(t.isTimeout=!0,this._onTimeout(t,{index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})),t.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)},this._headers||{}),r=ha(e);r&&(i.Range=r),i&&Object.keys(i).forEach(e=>{t.setRequestHeader(e,i[e])}),this.player.debug.log(this.TAG_NAME,"[xhr.send->] tast,",this._range,",load sub range, ",e),t.send(this._body)}catch(r){r.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(r)}}_onReadyStatechange(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}_onLoad(e){var t;const i=e.target.status;if(i<200||299], tast :",this._range,", start",r,"end ",o+this._receivedLength,",dataLen,",t?t.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",a)}else a=!0,s=e.target.response;let l={ok:200<=i&&i<300,status:i,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(l=this._transformResponse(l,this._url)||l),this._onProgress&&this._onProgress(s,a,{index:this._index,vid:this._vid,range:[r,o+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},l),a?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(pa(this._onProgress?null:s,a,l,l.headers["content-length"],l.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}cancel(){if(!this._aborted)return this._aborted=!0,this._runing=!1,super.removeAllListeners(),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}static isSupported(){return"undefined"!=typeof XMLHttpRequest}get receiveLen(){return this._receivedLength}get running(){return this._running}set running(e){this._running=e}_getHeaders(e){const t=e.getAllResponseHeaders().trim().split("\r\n"),i={};for(const r of t){const e=r.split(": ");i[e[0].toLowerCase()]=e.slice(1).join(": ")}return i}}class ba extends r{constructor(e,t){super(),Ds(this,"type",aa),Ds(this,"_queue",[]),Ds(this,"_alive",[]),Ds(this,"_currentTask",null),Ds(this,"_config",void 0),this.player=t,this._config=(t=e,{loaderType:aa,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:"text",range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0,...t}),"xhr"!==this._config.loaderType&&ga.isSupported()||(this.type="xhr")}destroy(){this._queue=[],this._alive=[],this._currentTask=null}isFetch(){return this.type===aa}static isFetchSupport(){return ga.isSupported()}load(e){let t=1{this.emit(oa,e)}),this._queue.push(i),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),i.promise}async cancel(){const e=this._queue.map(e=>e.cancel()).concat(this._alive.map(e=>e.cancel()));this._currentTask&&e.push(this._currentTask.cancel()),this._queue=[],this._alive=[],await Promise.all(e),await function(e){let t=0setTimeout(e,t))}()}_processTask(){if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);const e=this._currentTask.exec().catch(e=>{});e&&"function"==typeof e.finally&&e.finally(()=>{var e;null!=(e=this._currentTask)&&e.alive&&0<(null==(e=this._alive)?void 0:e.length)&&(this._alive=this._alive.filter(e=>e&&e!==this._currentTask)),this._processTask()})}}}const va="network",_a="network_timeout",wa="other";class Sa extends Error{constructor(e,t,i,r,s){super(s||(null==i?void 0:i.message)),this.errorType=e===_a?va:e,this.originError=i,this.ext=r,this.errorMessage=this.message}static create(e,t,i,r,s){return e instanceof Sa?e:(e instanceof Error&&(i=e,e=""),e=e||wa,new Sa(e,t,i,r,s))}static network(e){return new Sa(null!=e&&e.isTimeout?_a:va,null,e instanceof Error?e:null,{url:null==e?void 0:e.url,response:null==e?void 0:e.response,httpCode:null==e||null==(e=e.response)?void 0:e.status})}}const Ea=/^#(EXT[^:]*)(?::(.*))?$/,Ta=/([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g,ka=/^(?:[a-zA-Z0-9+\-.]+:)?\/\//,xa=/^((?:[a-zA-Z0-9+\-.]+:)?\/\/[^/?#]*)?([^?#]*\/)?/;function Ca(e){const t=e.match(Ea);if(t&&t[1])return[t[1].replace("EXT-X-",""),t[2]]}function La(e){const t={};let i=Ta.exec(e);for(;i;)t[i[1]]=i[2]||i[3],i=Ta.exec(e);return t}function Da(e,t){return t&&e&&!ka.test(e)?(t=xa.exec(t),t?"/"===e[0]?t[1]+e:t[1]+t[2]+e:e):e}const Ra={audio:[/^mp4a/,/^vorbis$/,/^opus$/,/^flac$/,/^[ae]c-3$/],video:[/^avc/,/^hev/,/^hvc/,/^vp0?[89]/,/^av1$/],text:[/^vtt$/,/^wvtt/,/^stpp/]};function Ia(e,t){const i=Ra[e];if(i&&t&&t.length)for(let r=0;r>8*(15-t)&255}}}class za{static parse(){let e=0e.trim()).filter(Boolean);return(za.isMediaPlaylist(e)?function(e,t){const i=new Oa;i.url=t;let r,s=new Na,a=null,n=null,o=0,l=0,d=0,h=0,c=!1;for(;(r=e[h++])&&!c;)if("#"!==r[0])s.sn=l,s.cc=d,s.url=Da(r,t),n&&(s.key=n.clone(l)),a&&(s.initSegment=a),i.segments.push(s),s=new Na,l++;else{const e=Ca(r);if(e){const[r,h]=e;switch(r){case"VERSION":i.version=parseInt(h);break;case"PLAYLIST-TYPE":i.type=null==h?void 0:h.toUpperCase();break;case"TARGETDURATION":i.targetDuration=parseFloat(h);break;case"ENDLIST":{const e=i.segments[i.segments.length-1];e&&(e.isLast=!0),i.live=!1,c=!0}break;case"MEDIA-SEQUENCE":l=i.startSN=parseInt(h);break;case"DISCONTINUITY-SEQUENCE":d=i.startCC=parseInt(h);break;case"DISCONTINUITY":d++;break;case"BYTERANGE":s.setByteRange(h,i.segments[i.segments.length-1]);break;case"EXTINF":{const[e,t]=h.split(",");s.start=o,s.duration=parseFloat(e),o+=s.duration,s.title=t}break;case"KEY":{const e=La(h);if("NONE"===e.METHOD){n=null;break}if("AES-128"!==e.METHOD)throw new Error(`encrypt ${e.METHOD}/${e.KEYFORMAT} is not supported`);if((n=new ja).method=e.METHOD,n.url=/^blob:/.test(e.URI)?e.URI:Da(e.URI,t),n.keyFormat=e.KEYFORMAT||"identity",n.keyFormatVersions=e.KEYFORMATVERSIONS,e.IV){let t=e.IV.slice(2);t=(1&t.length?"0":"")+t,n.iv=new Uint8Array(t.length/2);for(let e=0,i=t.length/2;e{e.id=t}),a.length&&(a.forEach((e,t)=>{e.id=t}),i.streams.forEach(e=>{e.audioGroup&&(e.audioStreams=a.filter(t=>t.group===e.audioGroup))})),n.length&&(n.forEach((e,t)=>{e.id=t}),i.streams.forEach(e=>{e.subtitleGroup&&(e.subtitleStreams=n.filter(t=>t.group===e.subtitleGroup))})),i})(i,t)}static isMediaPlaylist(e){return e.includes("#EXTINF:")||e.includes("#EXT-X-TARGETDURATION:")}}class Ga{constructor(e){Ds(this,"_onLoaderRetry",(e,t)=>{this.hls.emit(Be,{error:Sa.network(e),retryTime:t})}),this.hls=e,this.player=e.player,this.TAG_NAME="HlsManifestLoader",this._timer=null;var{retryCount:e,retryDelay:t,loadTimeout:i,fetchOptions:r}=this.hls.config;this._loader=new ba({...r,responseType:"text",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._audioLoader=new ba({...r,responseType:"text",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._subtitleLoader=new ba({...r,responseType:"text",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player)}async destroy(){await this.stopPoll(),this._audioLoader&&(this._audioLoader.destroy(),this._audioLoader=null),this._subtitleLoader&&(this._subtitleLoader.destroy(),this._subtitleLoader=null),this._loader&&(this._loader.destroy(),this._loader=null)}async load(e,t,i){this.player.debug.log(this.TAG_NAME,"load()",e,t,i);const r=[this._loader.load(e)];let s,a,n,o,l,d;t&&r.push(this._audioLoader.load(t)),i&&r.push(this._subtitleLoader.load(i));try{const[e,i,o]=await Promise.all(r);if(!e)return[];s=e.data,n=t?(a=null==i?void 0:i.data,null==o?void 0:o.data):null==i?void 0:i.data}catch(e){throw Sa.network(e)}try{var h;if(!1===(null==(h=o=za.parse(s,e))?void 0:h.live)&&o.segments&&!o.segments.length)throw new Error("empty segments list");a&&(l=za.parse(a,t)),n&&(d=za.parse(n,i))}catch(e){throw new Sa("manifest","hls",e)}return o&&(o.isMaster?this.hls.emit("hls-manifest-loaded",{playlist:o}):this.hls.emit("hls-level-loaded",{playlist:o})),[o,l,d]}poll(e,t,i,r,s,a){clearTimeout(this._timer),a=a||3e3;let n=this.hls.config.pollRetryCount;const o=async()=>{clearTimeout(this._timer);try{const s=await this.load(e,t,i);if(!s[0])return;n=this.hls.config.pollRetryCount,r(s[0],s[1],s[2])}catch(e){--n<=0&&s(e)}this._timer=setTimeout(o,a)};this._timer=setTimeout(o,a)}stopPoll(){return clearTimeout(this._timer),this.cancel()}cancel(){return Promise.all([this._loader.cancel(),this._audioLoader.cancel()])}}class Ha{constructor(){Ds(this,"_chunkSpeeds",[]),Ds(this,"_speeds",[])}addRecord(e,t){e&&t&&(this._speeds.push(8e3*e/t),this._speeds=this._speeds.slice(-3))}addChunkRecord(e,t){e&&t&&(this._chunkSpeeds.push(8e3*e/t),this._chunkSpeeds=this._chunkSpeeds.slice(-100))}getAvgSpeed(){return this._chunkSpeeds.length||this._speeds.length?this._speeds.length?this._speeds.reduce((e,t)=>e+t)/this._speeds.length:this._chunkSpeeds.reduce((e,t)=>e+t)/this._chunkSpeeds.length:0}getLatestSpeed(){return this._chunkSpeeds.length||this._speeds.length?this._speeds.length?this._speeds[this._speeds.length-1]:this._chunkSpeeds[this._chunkSpeeds.length-1]:0}reset(){this._chunkSpeeds=[],this._speeds=[]}}class Wa{constructor(e){Ds(this,"_emitOnLoaded",(e,t)=>{var{data:e,response:i,option:r}=e,{firstByteTime:r,startTime:s,endTime:a,contentLength:n}=r||{},a=a-s;this._bandwidthService.addRecord(n||e.byteLength,a),this.hls.emit("speed",{time:a,byteLength:n,url:t}),this.hls.emit("load-complete",{url:t,elapsed:a||0}),this.hls.emit("ttfb",{url:t,responseUrl:i.url,elapsed:r-s}),this.hls.emit("load-response-headers",{headers:i.headers})}),Ds(this,"_onLoaderRetry",(e,t)=>{this.hls.emit(Be,{error:Sa.network(e),retryTime:t})}),this.hls=e,this.player=e.player,this._bandwidthService=new Ha;var{retryCount:e,retryDelay:t,loadTimeout:i,fetchOptions:r}=this.hls.config;this._segmentLoader=new ba({...r,responseType:"arraybuffer",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._audioSegmentLoader=new ba({...r,responseType:"arraybuffer",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._keyLoader=new ba({...r,responseType:"arraybuffer",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player)}destroy(){this.reset(),this._keyLoader&&(this._keyLoader.destroy(),this._keyLoader=null),this._audioSegmentLoader&&(this._audioSegmentLoader.destroy(),this._audioSegmentLoader=null),this._segmentLoader&&(this._segmentLoader.destroy(),this._segmentLoader=null)}speedInfo(){return{speed:this._bandwidthService.getLatestSpeed(),avgSpeed:this._bandwidthService.getAvgSpeed()}}load(e,t,i){var r=3{e&&(30{e&&(o=this._keyCache[r]=e.data,this._emitOnLoaded(e,r))})))}const h=null==(r=t.key)?void 0:r.url;h&&(n=t.key.iv,(a=this._keyCache[h])||(this.hls.emit(Ue,{url:h}),d[3]=this._keyLoader.load(h).then(e=>{e&&(a=this._keyCache[h]=e.data,this._emitOnLoaded(e,h))})));var[i]=await Promise.all(d);if(i)return e=i.data,this._emitOnLoaded(i,t.url),{data:e,map:s,key:a,mapKey:o,keyIv:n,mapKeyIv:l}}reset(){this.error=null,this._mapCache={},this._keyCache={},this._bandwidthService.reset()}async cancel(){await Promise.all([this._keyLoader.cancel(),this._segmentLoader.cancel(),this._audioSegmentLoader.cancel()])}}class Va{constructor(e,t,i){this.live=void 0,this.id=0,this.bitrate=0,this.width=0,this.height=0,this.name="",this.url="",this.audioCodec="",this.videoCodec="",this.textCodec="",this.startCC=0,this.endCC=0,this.startSN=0,this.endSN=-1,this.totalDuration=0,this.targetDuration=0,this.snDiff=null,this.segments=[],this.audioStreams=[],this.subtitleStreams=[],this.closedCaptions=[],this.currentAudioStream=null,this.currentSubtitleStream=null,this.TAG_NAME="HlsStream",this.update(e,t,i)}get lastSegment(){return this.segments.length?this.segments[this.segments.length-1]:null}get segmentDuration(){var e;return this.targetDuration||(null==(e=this.segments[0])?void 0:e.duration)||0}get liveEdge(){return this.endTime}get endTime(){var e;return(null==(e=this.lastSegment)?void 0:e.end)||0}get currentSubtitleEndSn(){var e;return(null==(e=this.currentSubtitleStream)?void 0:e.endSN)||0}clearOldSegment(e,t){return this._clearSegments(e,t)}getAudioSegment(e){if(e&&this.currentAudioStream){const t=e.sn-this.snDiff;return this.currentAudioStream.segments.find(e=>e.sn===t)}}update(e,t){this.url=e.url,Array.isArray(e.segments)?(null!==this.live&&void 0!==this.live||(this.live=e.live),this._updateSegments(e,this),this.startCC=e.startCC,this.endCC=e.endCC,this.startSN=e.startSN,this.endSN=e.endSN||-1,this.totalDuration=e.totalDuration,this.targetDuration=e.targetDuration,this.live=e.live,t&&this.currentAudioStream&&Array.isArray(t.segments)&&(this._updateSegments(t,this.currentAudioStream),(null===this.snDiff||void 0===this.snDiff)&&e.segments.length&&t.segments.length&&(this.snDiff=e.segments[0].sn-t.segments[0].sn))):(this.id=e.id,this.bitrate=e.bitrate,this.width=e.width,this.height=e.height,this.name=e.name,this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.textCodec=e.textCodec,this.audioStreams=e.audioStreams,this.subtitleStreams=e.subtitleStreams,!this.currentAudioStream&&this.audioStreams.length&&(this.currentAudioStream=this.audioStreams.find(e=>e.default)||this.audioStreams[0]),!this.currentSubtitleStream&&this.subtitleStreams.length&&(this.currentSubtitleStream=this.subtitleStreams.find(e=>e.default)||this.subtitleStreams[0]))}updateSubtitle(e){if(e&&this.currentSubtitleStream&&Array.isArray(e.segments)){const t=this._updateSegments(e,this.currentSubtitleStream),i=this.currentSubtitleStream.segments;return 100({sn:e.sn,url:e.url,duration:e.duration,start:e.start,end:e.end,lang:this.currentSubtitleStream.lang})):void 0}}switchSubtitle(e){const t=this.subtitleStreams.find(t=>t.lang===e),i=this.currentSubtitleStream;t&&(this.currentSubtitleStream=t,i.segments=[])}_clearSegments(e,t){let i=0;var r=this.segments;for(let s=0,a=r.length;s=e){i=s;break}return(i=i>t?t:i)&&(this.segments=this.segments.slice(i),this.currentAudioStream&&(this.currentAudioStream.segments=this.currentAudioStream.segments.slice(i))),t-i}_updateSegments(e,t){const i=t.segments;if(this.live){const r=i[i.length-1],s=(null==r?void 0:r.sn)||-1;if(se.sn===s),n=a<0?e.segments:e.segments.slice(a+1);if(i.length&&n.length){let e=r.end;n.forEach(t=>{t.start=e,e=t.end});const t=(null==r?void 0:r.cc)||-1;t>n[0].cc&&n.forEach(e=>e.cc+=t)}return t.endSN=e.endSN,t.segments=i.concat(n),n}}else t.segments=e.segments}}class Ka{constructor(e){this.hls=e,this.player=e.player,this.streams=[],this.currentStream=null,this.dvrWindow=0,this._segmentPointer=-1,this.TAG_NAME="HlsPlaylist"}destroy(){this.reset()}get lastSegment(){var e;return null==(e=this.currentStream)?void 0:e.lastSegment}get currentSegment(){var e;return null==(e=this.currentSegments)?void 0:e[this._segmentPointer]}get nextSegment(){var e;return null==(e=this.currentSegments)?void 0:e[this._segmentPointer+1]}get currentSegments(){var e;return null==(e=this.currentStream)?void 0:e.segments}get currentSubtitleEndSn(){var e;return null==(e=this.currentStream)?void 0:e.currentSubtitleEndSn}get liveEdge(){var e;return null==(e=this.currentStream)?void 0:e.liveEdge}get totalDuration(){var e;return(null==(e=this.currentStream)?void 0:e.totalDuration)||0}get seekRange(){var e=this.currentSegments;if(e&&e.length)return[e[0].start,e[e.length-1].end]}get isEmpty(){var e;return!(null!=(e=this.currentSegments)&&e.length)}get isLive(){var e;return null==(e=this.currentStream)?void 0:e.live}get hasSubtitle(){var e;return!(null==(e=this.currentStream)||!e.currentSubtitleStream)}getAudioSegment(e){var t;return null==(t=this.currentStream)?void 0:t.getAudioSegment(e)}moveSegmentPointer(e){var t;null==e&&(e=this._segmentPointer+1),this._segmentPointer=Je(e,-1,null==(t=this.currentSegments)?void 0:t.length),this.player.debug.log(this.TAG_NAME,"moveSegmentPointer()",e,this._segmentPointer)}reset(){this.streams=[],this.currentStream=null,this.dvrWindow=0,this._segmentPointer=-1}getSegmentByIndex(e){var t;return null==(t=this.currentSegments)?void 0:t[e]}setNextSegmentByIndex(){var e=0=(i=t[r]).start&&ee.url).forEach((e,t)=>{this.streams[t]?this.streams[t].update(e):this.streams[t]=new Va(e)}),this.currentStream=this.streams[0];else if(Array.isArray(e.segments)){const s=this.currentStream;var r;s?(s.update(e,t,i),(r=s.updateSubtitle(i))&&this.hls.emit("subtitle-segments",{list:r})):(this.reset(),this.currentStream=this.streams[0]=new Va(e,t,i))}this.currentStream&&this.hls.isLive&&!this.dvrWindow&&(this.dvrWindow=this.currentSegments.reduce((e,t)=>e+t.duration,0))}else this.player.debug.warn(this.TAG_NAME,"upsertPlaylist() playlist is null")}switchSubtitle(e){var t;null!=(t=this.currentStream)&&t.switchSubtitle(e)}clearOldSegment(){var e,t,i=0e+t.byteLength,0));let s=0;return t.forEach(e=>{r.set(e,s),s+=e.byteLength}),r}class Ya{constructor(){var e=window.crypto||window.msCrypto;this.subtle=e&&(e.subtle||e.webkitSubtle),this.externalDecryptor=null}decrypt(e,t){if(e||t){const i=[];return e&&(i[0]=this._decryptSegment(e)),t&&(i[1]=this._decryptSegment(t)),Promise.all(i)}}async _decryptSegment(e){let t=e.data;return e.key&&(t=await this._decryptData(e.data,e.key,e.keyIv)),e.map?$a(e.map,t):t}async _decryptData(e,t,i){if(this.externalDecryptor)return this.externalDecryptor.decrypt(e,t,i);if(!this.subtle)throw new Error("crypto is not defined");return t=await this.subtle.importKey("raw",t,{name:"AES-CBC"},!1,["encrypt","decrypt"]),new Uint8Array(await this.subtle.decrypt({name:"AES-CBC",iv:i},t,e))}}class qa extends cr{constructor(e){super(e),this.player=e,this._pmtId=-1,this._remainingPacketData=null,this._videoPesData=[],this._audioPesData=[],this._gopId=0,this._videoPid=-1,this._audioPid=-1,this._codecType=7,this._audioCodecType=10,this._vps=null,this._sps=null,this._pps=null,this.TAG_NAME="TsLoader",this.videoTrack=qa.initVideoTrack(),this.audioTrack=qa.initAudioTrack(),this._baseDts=-1,this._baseDtsInited=!1,this._basefps=25,this._baseFpsInterval=null,this._allSampleList=[],this._tempSampleTsList=[],this._hasAudio=!1,this._hasVideo=!1,this._audioNextPts=void 0,this._videoNextDts=void 0,this._audioTimestampBreak=!1,this._videoTimestampBreak=!1,this._lastAudioExceptionGapDot=0,this._lastAudioExceptionOverlapDot=0,this._lastAudioExceptionLargeGapDot=0,this._isSendAACSeqHeader=!1,this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this._stopDecodeLoopInterval(),this.videoTrack=null,this.audioTrack=null,this._baseDts=-1,this._baseDtsInited=!1,this._basefps=50,this._hasCalcFps=!1,this._allSampleList=[],this._audioNextPts=void 0,this._videoNextDts=void 0,this._audioTimestampBreak=!1,this._videoTimestampBreak=!1,this._lastAudioExceptionGapDot=0,this._lastAudioExceptionOverlapDot=0,this._lastAudioExceptionLargeGapDot=0,this._isSendAACSeqHeader=!1,this.player.debug.log(this.TAG_NAME,"destroy")}static initVideoTrack(){return{samples:[]}}static initAudioTrack(){return{samples:[]}}static probe(e){return!!e.length&&71===e[0]&&71===e[188]&&71===e[376]}static _parsePES(e){var t=e[8];if(!(null==t||e.lengthe.length-6)){let r,s;return i=e[7],192&i&&(r=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&i?(s=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,54e5>4){if((r=a+5+e[a+4])===a+188)continue}else r=a+4;switch(i){case 0:t&&(r+=e[r]+1),this._pmtId=(31&e[r+10])<<8|e[r+11];break;case this._pmtId:{t&&(r+=e[r]+1);const i=r+3+((15&e[r+1])<<8|e[r+2])-4;for(r+=12+((15&e[r+10])<<8|e[r+11]);r=t)return[];const s=[];for(;r{const t=r?e[0]>>>1&63:31&e[0];switch(t){case 5:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:if(!r&&5!==t||r&&5===t)break;s.isIFrame=!0,this._gopId++;break;case 6:case 39:case 40:if(!r&&6!==t||r&&6===t)break;{var a=function(e){const t=e.byteLength,i=[];let r=1;for(;rt+16)for(let e=0;e<16;e++)l+=a[t].toString(16),t++;a.subarray(t)}return void(this.player._opt.isEmitSEI&&this.player.emit(U.videoSEI,{ts:i/90,data:e}));case 32:if(!r)break;s.vps||(s.vps=e);break;case 7:case 33:if(!r&&7!==t||r&&7===t)break;s.sps||(s.sps=e);break;case 8:case 34:if(!r&&8!==t||r&&8===t)break;s.pps||(s.pps=e)}if(r&&ir(t)||!r&&Ji(t)){const t=hr(e);if(s.payload){this.player.debug.log(this.TAG_NAME,"append nal unit to payload");const e=new Uint8Array(s.payload.byteLength+t.byteLength);e.set(s.payload,0),e.set(t,s.payload.byteLength),s.payload=e}else s.payload=t}});let a=null;r?s.sps&&s.vps&&s.pps&&(a=Zi({vps:s.vps,sps:s.sps,pps:s.pps})):s.sps&&s.pps&&(a=Ki({sps:s.sps,pps:s.pps})),a&&(this.player.debug.log(this.TAG_NAME,"_createVideoSample","seqHeader"),this._doDecodeByHls(a,2,s.pts,!0,0)),s.isIFrame&&this.calcIframeIntervalTimestamp(s.dts/90),this.videoTrack.samples=this.videoTrack.samples.concat(s)}}_parseAudioData(){if(this._audioPesData.length){const e=qa._parsePES($a(...this._audioPesData));if(e){if(this.player._opt.hasAudio){if(this.player.updateStats({abps:e.data.byteLength}),10===this._audioCodecType){const t=function(e,t){var i=e.length;let r=0;for(;r+2=i)){const o=r,l=[],d=(60&e[r+2])>>>2,h=Ge[d];if(!h)throw new Error("Invalid sampling index: "+d);var s=1+((192&e[r+2])>>>6),a=(1&e[r+2])<<2|(192&e[r+3])>>>6;let c,u,p=0;for(var n=We(h);r+7>5,i-r=i?void 0:e.subarray(r),frames:l,samplingFrequencyIndex:d,sampleRate:h,objectType:s,channelCount:a,originCodec:"mp4a.40."+s}}}(e.data,e.originalPts);if(t){if(this.audioTrack.codec=t.codec,this.audioTrack.sampleRate=t.sampleRate,this.audioTrack.channelCount=t.channelCount,!this._isSendAACSeqHeader){const e=ze({profile:t.objectType,sampleRate:t.samplingFrequencyIndex,channel:t.channelCount});this._isSendAACSeqHeader=!0,this.player.debug.log(this.TAG_NAME,"aac seq header",`profile: ${t.objectType}, sampleRate:${t.sampleRate},sampleRateIndex: ${t.samplingFrequencyIndex}, channel: `+t.channelCount),this._doDecodeByHls(e,1,0,!1,0)}if(this._isSendAACSeqHeader){const e=[];t.frames.forEach(t=>{const i=t.pts,r=new Uint8Array(t.data.length+2);r.set([175,1],0),r.set(t.data,2),t={type:1,pts:i,dts:i,payload:r},e.push(t)}),this.audioTrack.samples=this.audioTrack.samples.concat(e)}else this.player.debug.warn(this.TAG_NAME,"aac seq header not send")}else this.player.debug.warn(this.TAG_NAME,"aac parseADTS error")}this._audioPesData=[]}}else console.warn("Cannot parse audio pes",this._audioPesData)}}_fix(){let e=0(e.dts=e.dts/90,e.pts=e.pts/90,e.cts=e.pts-e.dts,e)).sort((e,t)=>e.dts-t.dts),this._allSampleList=this._allSampleList.concat(h),$t(this._hasCalcFps)&&(this._hasCalcFps=!0,this._calcDecodeFps(h))}}_calculateBaseDts(){const e=this.audioTrack,t=this.videoTrack,i=e.samples,r=t.samples;if(!i.length&&!r.length)return!1;let s=1/0,a=1/0;i.length&&(e.baseDts=s=i[0].pts),r.length&&(t.baseDts=a=r[0].dts),this._baseDts=Math.min(s,a);var n=a-s;return Number.isFinite(n)&&45e3{e.pts-=this._baseDts,e.dts=e.pts}),this._doFixAudioInternal(e,t,9e4))}_fixVideo(e){const t=e.samples;if(t.length){if(t.forEach(e=>{e.dts-=this._baseDts,e.pts-=this._baseDts}),void 0===this._videoNextDts){const e=t[0];this._videoNextDts=e.dts}const a=t.length;let n=0;const o=t[0],l=t[1],d=this._videoNextDts-o.dts;45e3{0!==t&&(e.dts+=d,e.pts+=d)})));var i=e.samples[0],r=e.samples[a-1],s=1===a?9e3:Math.floor((r.dts-i.dts)/(a-1));for(let i=0;ia&&(n=s),this.player.debug.warn(this.TAG_NAME,`large video gap between frames,\n time is ${r/e.timescale},\n dts is ${r},\n origin dts is ${t[i].originalDts},\n next dts is ${this._videoNextDts},\n sample Duration is ${n} ,\n ref Sample DurationInt is `+s)}t[i].duration=n,this._videoNextDts+=n}}}_doFixAudioInternal(e,t,i){e.sampleDuration||(e.sampleDuration=We(e.timescale,i));var r,s,a=e.sampleDuration;if(void 0===this._audioNextPts){const e=t[0];this._audioNextPts=e.pts}for(let o=0;o({ts:e.dts||e.pts,type:e.type})),2),e&&(this._basefps=e,this._startDecodeLoopInterval(),this.player.debug.log(this.TAG_NAME,`_calcDecodeFps() video fps is ${e}, update base fps is `+this._basefps))}_startDecodeLoopInterval(){this.player.debug.log(this.TAG_NAME,"_startDecodeLoopInterval()"),this._stopDecodeLoopInterval(),this._loop();var e=Math.ceil(1e3/this._basefps);this._baseFpsInterval=setInterval(()=>{var e=(new Date).getTime();this.preLoopTimestamp||(this.preLoopTimestamp=e),e-=this.preLoopTimestamp;e>2*this._basefps&&this.player.debug.warn(this.TAG_NAME,`hls loop demux diff time is ${e} and more than `+2*this._basefps),this._loop(),this.preLoopTimestamp=(new Date).getTime()},e)}_loop(){let e=null;if(this._allSampleList.length)if(2===(e=this._allSampleList.shift()).type){this._doDecodeVideo(e);let t=this._allSampleList[0];for(;t&&1===t.type;)e=this._allSampleList.shift(),this._doDecodeAudio(e),t=this._allSampleList[0]}else 1===e.type&&(this._doDecodeAudio(e),this._allSampleList.length&&2===this._allSampleList[0].type&&(e=this._allSampleList.shift(),this._doDecodeVideo(e)))}_doDecodeAudio(e){this._doDecodeByHls(e.payload,1,e.dts,!1,0)}_doDecodeVideo(e){var t=new Uint8Array(e.payload),i=(t=(e.isHevc?er:$i)(t,e.isIFrame),this.player.updateStats({dts:e.dts}),e.pts-e.dts);this._doDecodeByHls(t,2,e.dts,e.isIFrame,i)}_stopDecodeLoopInterval(){this._baseFpsInterval&&(clearInterval(this._baseFpsInterval),this._baseFpsInterval=null)}getBuferredDuration(){let e=0;return this._allSampleList&&this._allSampleList.forEach(t=>{t.duration&&2===t.type&&(e+=t.duration)}),e/90}getSampleListLength(){return this._allSampleList.length}getSampleAudioListLength(){return this._allSampleList.filter(e=>1===e.type).length}getSampleVideoListLength(){return this._allSampleList.filter(e=>2===e.type).length}}class Ja{constructor(e,t){this.hls=e,this.player=this.hls.player,this._initSegmentId="",this.TAG_NAME="HlsTransmuxer",this._demuxer=new qa(this.hls.player),t&&console.log("hls needRemux")}destroy(){this._demuxer&&(this._demuxer.destroy(),this._demuxer=null)}transmux(e,t,i,r,s,a){this.player.debug.log(this.TAG_NAME,`transmux videoChunk:${e&&e.byteLength}, audioChunk:${t&&t.byteLength}, discontinuity:${i}, contiguous:${r}, startTime:${s}, needInit:`+a);const n=this._demuxer;try{n.demuxAndFix($a(e,t),i,r,s)}catch(e){throw new Sa("demux","hls",e)}}}class Qa{constructor(e){this.hls=e,this.player=e.player,this._decryptor=new Ya,this._transmuxer=null,this._mse=null,this._softVideo=null,this._sourceCreated=!1,this._needInitSegment=!0,this._directAppend=!1,this.TAG_NAME="HlsBufferService"}async destroy(){this._softVideo=null,this._transmuxer&&(this._transmuxer.destroy(),this._transmuxer=null)}get baseDts(){var e;return null==(e=this._transmuxer)||null==(e=e._demuxer)?void 0:e._baseDts}get nbSb(){return 0}async updateDuration(e){this.player.debug.log(this.TAG_NAME,"updateDuration()",e)}getBuferredDuration(){var e;return null==(e=this._transmuxer)||null==(e=e._demuxer)?void 0:e.getBuferredDuration()}getBufferedSegments(){var e;return null==(e=this._transmuxer)||null==(e=e._demuxer)?void 0:e.getSampleListLength()}getBufferedAudioSegments(){var e;return null==(e=this._transmuxer)||null==(e=e._demuxer)?void 0:e.getSampleAudioListLength()}getBufferedVideoSegments(){var e;return null==(e=this._transmuxer)||null==(e=e._demuxer)?void 0:e.getSampleVideoListLength()}createSource(e,t,i,r){this._sourceCreated||(e=e||t)&&(qa.probe(e)?this._transmuxer||(this._transmuxer=new Ja(this.hls,!this._softVideo)):console.error("createSource error: chunk is not ts"))}async appendBuffer(e,t,i,r,s,a,n){if(null!=i&&i.length||null!=r&&r.length)return this._needInitSegment,this._transmuxer.transmux(i,r,s,a,n,this._needInitSegment||s),!0}async clearAllBuffer(){this.player.debug.log(this.TAG_NAME,"clearAllBuffer")}decryptBuffer(e,t){return this._decryptor.decrypt(e,t)}async reset(){this._transmuxer=null,this._needInitSegment=!0,this._directAppend=!1}async endOfStream(){this._softVideo&&this._softVideo.endOfStream()}async setLiveSeekableRange(e,t){}seamlessSwitch(){this._needInitSegment=!0}}class Xa{constructor(e){this.emitter=e,this._seiSet=new Set,e.on("sei",e=>{e&&this._seiSet.add(e)})}throw(e){if(null!=e&&this._seiSet.size){const t=e-.2,i=e+.2,r=[];this._seiSet.forEach(e=>{e.time>=t&&e.time<=i&&r.push(e)}),r.forEach(e=>{this._seiSet.delete(e),this.emitter.emit("sei-in-time",e)})}}reset(){this._seiSet.clear()}}class Za{constructor(e){this._timescale=e,this.encodeType="",this.audioCodec="",this.videoCodec="",this.domain="",this.fps=0,this.bitrate=0,this.width=0,this.height=0,this.samplerate=0,this.channelCount=0,this.gop=0,this._bitsAccumulateSize=0,this._bitsAccumulateDuration=0}getStats(){return{encodeType:this.encodeType,audioCodec:this.audioCodec,videoCodec:this.videoCodec,domain:this.domain,fps:this.fps,bitrate:this.bitrate,width:this.width,height:this.height,samplerate:this.samplerate,channelCount:this.channelCount,gop:this.gop}}setEncodeType(e){this.encodeType=e}setFpsFromScriptData(e){e=e["data"],e=null==e||null==(e=e.onMetaData)?void 0:e.framerate;e&&0e+t.duration,0)/e.length,this.fps=Math.round(this._timescale/t)),e.forEach(e=>{1===e.gopId&&this.gop++,this._bitsAccumulateDuration+=e.duration/(this._timescale/1e3),this._bitsAccumulateSize+=e.units.reduce((e,t)=>e+t.length,0),1e3<=this._bitsAccumulateDuration&&(this.bitrate=8*this._bitsAccumulateSize,this._bitsAccumulateDuration=0,this._bitsAccumulateSize=0)})}}class en{constructor(e){var t=1this._stats.updateBitrate(e.samples)),this._core.on("flv-script-data",e=>{this._stats.setFpsFromScriptData(e)}),this._core.on("metadata-parsed",e=>{"video"===e.type?this._stats.setVideoMeta(e.track):this._stats.setAudioMeta(e.track)}),this._core.on("ttfb",e=>{this._stats.setDomain(e.responseUrl)})}reset(){this._samples=[],this._stats=new Za(this._timescale)}}class tn extends r{constructor(e){var t=1{var e,t;if(this.player.debug.log(this.TAG_NAME,"_loadSegment()","_segmentProcessing",this._segmentProcessing),!this._segmentProcessing)return e=this._playlist.currentSegment,t=this._playlist.nextSegment,this.player.debug.log(this.TAG_NAME,"_loadSegment()","curSeg",e,"nextSeg",t),t?this._loadSegmentDirect():void this.player.debug.log(this.TAG_NAME,"nextSeg is null and return");this.player.debug.warn("_loadSegment()","_segmentProcessing is ture and return")}),this.player=e,this.config=null,this._manifestLoader=null,this._segmentLoader=null,this._playlist=null,this._bufferService=null,this._seiService=null,this._stats=null,this._prevSegSn=null,this._prevSegCc=null,this._tickTimer=null,this._tickInterval=500,this._segmentProcessing=!1,this._reloadOnPlay=!1,this._switchUrlOpts=null,this._disconnectTimer=null,this.TAG_NAME="Hls256",this.canVideoPlay=!1,this.$videoElement=null,this.config={isLive:!0,maxPlaylistSize:50,retryCount:3,retryDelay:1e3,pollRetryCount:2,loadTimeout:1e4,preloadTime:30,softDecode:!1,bufferBehind:10,maxJumpDistance:3,startTime:0,targetLatency:10,maxLatency:20,allowedStreamTrackChange:!0,...t},this._manifestLoader=new Ga(this),this._segmentLoader=new Wa(this),this._playlist=new Ka(this),this._bufferService=new Qa(this),this._seiService=new Xa(this),this._stats=new en(this,9e4),this.player.debug.log(this.TAG_NAME,"init")}async destroy(){this.player.debug.log(this.TAG_NAME,"destroy()"),this._playlist.reset(),this._segmentLoader.reset(),this._seiService.reset(),await Promise.all([this._clear(),this._bufferService.destroy()]),this._manifestLoader&&(await this._manifestLoader.destroy(),this._manifestLoader=null),this._segmentLoader&&(this._segmentLoader.destroy(),this._segmentLoader=null),this._playlist&&(this._playlist.destroy(),this._playlist=null),this.player.debug.log(this.TAG_NAME,"destroy end")}_startTick(){this._stopTick(),this._tickTimer=setTimeout(()=>{this._tick()},this._tickInterval)}_stopTick(){this._tickTimer&&clearTimeout(this._tickTimer),this._tickTimer=null}_tick(){this._startTick(),this._loadSegment()}get isLive(){return this._playlist.isLive}get streams(){return this._playlist.streams}get currentStream(){return this._playlist.currentStream}get hasSubtitle(){return this._playlist.hasSubtitle}get baseDts(){var e;return null==(e=this._bufferService)?void 0:e.baseDts}speedInfo(){return this._segmentLoader.speedInfo()}getStats(){return this._stats.getStats()}async loadSource(e){return this.player.debug.log(this.TAG_NAME,"loadSource() "+e),await this._reset(),await this._loadData(e),this._startTick(),!0}async _loadData(e){this.player.debug.log(this.TAG_NAME,"_loadData() "+e);try{e=e&&e.trim()}catch(e){}if(!e)throw this._emitError(new Sa(wa,wa,null,null,"m3u8 url is missing"));const t=await this._loadM3U8(e),i=this._playlist["currentStream"];if(this._urlSwitching){var r;0===i.bitrate&&null!=(r=this._switchUrlOpts)&&r.bitrate&&(i.bitrate=null==(r=this._switchUrlOpts)?void 0:r.bitrate);const e=this._getSeamlessSwitchPoint(),t=(this.config.startTime=e,this._playlist.findSegmentIndexByTime(e)),s=this._playlist.getSegmentByIndex(t+1);if(s){const e=s.start;this.player.debug.warn(this.TAG_NAME,"clear buffer from "+e)}}t&&(this.isLive?(this.player.debug.log(this.TAG_NAME,"is live"),this._bufferService.setLiveSeekableRange(0,4294967295),this.config.targetLatency{var[e,t,a]=e;e?(this._playlist.upsertPlaylist(e,t,a),this.isLive&&this._pollM3U8(i,r,s)):this.player.debug.warn(this.TAG_NAME,"_refreshM3U8() mediaPlaylist is empty")}).catch(e=>{throw this._emitError(Sa.create(e))})}_pollM3U8(e,t,i){let r=this._playlist.isEmpty;this._manifestLoader.poll(e,t,i,(e,t,i)=>{this._playlist.upsertPlaylist(e,t,i),this._playlist.clearOldSegment(),e&&r&&!this._playlist.isEmpty&&this._loadSegment(),r=r&&this._playlist.isEmpty},e=>{this._emitError(Sa.create(e))},1e3*((null==(e=this._playlist.lastSegment)?void 0:e.duration)||0))}async _loadSegmentDirect(){this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()");var e=this._playlist.nextSegment;if(e){let t=!1,i=null;try{this._segmentProcessing=!0,t=await this._reqAndBufferSegment(e,this._playlist.getAudioSegment(e))}catch(e){i=e}finally{this._segmentProcessing=!1}return i?this._emitError(Sa.create(i)):(t?(this._urlSwitching&&(this._urlSwitching=!1,this.emit("switch-url-success",{url:this.config.url})),this._playlist.moveSegmentPointer(),this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","seg.isLast",e.isLast),e.isLast?(this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","seg.isLast"),this._end()):(this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","and next _loadSegment()"),this._loadSegment())):this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect() not appended"),t)}this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect() !seg")}async _reqAndBufferSegment(e,t){this.player.debug.log(this.TAG_NAME,"video seg",e&&e.url,"audio seg",t&&t.url);var i=(e||t).cc,r=this._prevSegCc!==i;let s=[];try{s=await this._segmentLoader.load(e,t,r)}catch(e){throw e.fatal=!1,this._segmentLoader.error=e}if(s[0]){var a,n,o,l=await this._bufferService.decryptBuffer(...s);if(l)return a=(e||t).sn,n=(e||t).start,o=this._playlist.currentStream,this._bufferService.createSource(l[0],l[1],null==o?void 0:o.videoCodec,null==o?void 0:o.audioCodec),await this._bufferService.appendBuffer(e,t,l[0],l[1],r,this._prevSegSn===a-1,n),this._prevSegCc=i,this._prevSegSn=a,!0;this.player.debug.log(this.TAG_NAME,"decryptBuffer return null")}}async _clear(){this.player.debug.log(this.TAG_NAME,"_clear()"),clearTimeout(this._disconnectTimer),this._stopTick(),await Promise.all([this._segmentLoader.cancel(),this._manifestLoader.stopPoll()]),this._segmentProcessing=!1}async _reset(){var e=0e()),this.eventsDestroy=[]),this.$videoElement=null,this.player.debug.log(this.TAG_NAME,"destroy"),!0}_bindEvents(){this.hls.on("error",e=>{this.player.emitError(O.hlsError,e)}),this._startBandwidthEstimateInterval()}_startBandwidthEstimateInterval(){this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval(()=>{var e=this.hls.speedInfo();this.player.emit(U.kBps,(e.avgSpeed/1024).toFixed(2))},1e3)}_stopBandwidthEstimateInterval(){this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}initVideoPlay(e){this.$videoElement.muted=!0,this.$videoElement.src=e}async loadSource(e){return this.player.debug.log(this.TAG_NAME,"loadSource() "+e),this.url=e,this.canVideoPlay?this.initVideoPlay(e):await this.hls.loadSource(e),!0}checkHlsBufferedDelay(){let e=0;return this.hls?this.hls.getDemuxBuferredDuration():e}getDemuxBufferedListLength(){let e=0;return this.hls?this.hls.getDemuxBufferedListLength():e}getDemuxAudioBufferedListLength(){let e=0;return this.hls?this.hls.getDemuxAudioBufferedListLength():e}getDemuxVideoBufferedListLength(){let e=0;return this.hls?this.hls.getDemuxVideoBufferedListLength():e}}class sn extends r{constructor(e){super(),this.player=e,this.rtcPeerConnection=null,this.videoStream=null,this._initRtcPeerConnection(),this.player.isWebrtcH265()&&(this.streamRate=et(t=>{e.emit(U.kBps,(t/1024).toFixed(2))})),this.player.debug.log("WebrtcDecoder","init")}destroy(){this.stopStreamRateInterval(),this.rtcPeerConnectionDataChannel&&(this.rtcPeerConnectionDataChannel.onopen=Ve,this.rtcPeerConnectionDataChannel.onclose=Ve,this.rtcPeerConnectionDataChannel.onmessage=Ve,this.rtcPeerConnectionDataChannel.close(),this.rtcPeerConnectionDataChannel=null),this.rtcPeerConnection&&(this.rtcPeerConnection.onicecandidate=Ve,this.rtcPeerConnection.ontrack=Ve,this.rtcPeerConnection.onconnectionstatechange=Ve,this.rtcPeerConnection.ondatachannel=Ve,this.rtcPeerConnection.close(),this.rtcPeerConnection=null),this.player.isWebrtcH264()&&(this.videoStream=null,this.player.video.$videoElement.srcObject=null),this.player.debug.log("WebrtcDecoder","destroy")}_initRtcPeerConnection(){const e=new RTCPeerConnection,t=this.player;e.addTransceiver("video",{direction:"recvonly"}),e.addTransceiver("audio",{direction:"recvonly"}),e.onsignalingstatechange=e=>{this.player.debug.log("WebrtcDecoder","onsignalingstatechange",e)},e.oniceconnectionstatechange=t=>{this.player.debug.log("WebrtcDecoder","oniceconnectionstatechange",e.iceConnectionState)},e.onicecandidate=e=>{this.player.debug.log("WebrtcDecoder","onicecandidate",e)},e.ontrack=e=>{this.player.debug.log("WebrtcDecoder","ontrack",e);const i=t.video.$videoElement;"video"===e.track.kind&&t.isWebrtcH264()&&(e=e.streams[0],i.srcObject=e,this.videoStream=e)},e.onconnectionstatechange=i=>{switch(t.debug.log("WebrtcDecoder","sdp connect status "+e.connectionState),e.connectionState){case"connecting":case"connected":break;case"disconnected":t.emit(U.webrtcDisconnect);break;case"failed":t.emit(U.webrtcFailed);break;case"closed":t.emit(U.webrtcClosed)}},e.ondatachannel=e=>{const t=e.channel;this.player.debug.log("WebrtcDecoder","ondatachannel"),t.onopen=()=>{this.player.debug.log("WebrtcDecoder","ondatachannel and onopen")},t.onmessage=e=>{if(e=e.data,this.player.isWebrtcH264())return this.player.debug.warn("WebrtcDecoder","ondatachannel is H265 but decode is h264 so emit webrtcStreamH265 "),void this.player.emit(U.webrtcStreamH265);this.player.isDestroyed()?this.player.debug.warn("WebrtcDecoder","ondatachannel and player is destroyed"):(this.streamRate&&this.streamRate(e.byteLength),this.player.demux&&this.player.demux.dispatch(e))},t.onclose=()=>{this.player.debug.warn("WebrtcDecoder","ondatachannel and onclose")},this.rtcPeerConnectionDataChannel=t},e.createDataChannel("signal").onmessage=e=>{this.player.debug.log("WebrtcDecoder","signalChannel,onmessage",e),JSON.parse(e.data).type},this.rtcPeerConnection=e}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}loadSource(e){return new Promise((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then(s=>{r.setLocalDescription(s),this.player.debug.log("WebrtcDecoder","getWebRtcRemoteSdp loadSource"),s=s.sdp,fetch(e,{method:"POST",mode:"cors",cache:"no-cache",credentials:"include",redirect:"follow",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/sdp"},body:s}).then(e=>{e.text().then(e=>{this.player.debug.log("WebrtcDecoder","getWebRtcRemoteSdp response"),r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e})),this.player.isWebrtcH265()&&this.startStreamRateInterval(),t()}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource response.text() error",e),i(e)})}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource getWebRtcRemoteSdp response error",e),i(e)})}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource rtcPeerConnection.createOffer() error",e),i(e)})})}}class an extends r{constructor(e){super(),this.tagName="WebrtcForZLMDecoder",this.player=e,this.rtcPeerConnection=null,this.videoStream=null,this._initRtcPeerConnection(),this.player.debug.log(this.tagName,"init")}destroy(){this.rtcPeerConnection&&(this.rtcPeerConnection.onicecandidate=Ve,this.rtcPeerConnection.ontrack=Ve,this.rtcPeerConnection.onconnectionstatechange=Ve,this.rtcPeerConnection.ondatachannel=Ve,this.rtcPeerConnection.close(),this.rtcPeerConnection=null),this.videoStream&&(this.videoStream.getTracks().forEach(e=>e.stop()),this.videoStream=null),this.videoStream=null,this.player.video.$videoElement.srcObject=null,this.player.debug.log(this.tagName,"destroy")}_initRtcPeerConnection(){const e=new RTCPeerConnection,t=this.player;e.addTransceiver("video",{direction:"recvonly"}),e.addTransceiver("audio",{direction:"recvonly"}),e.onsignalingstatechange=e=>{this.player.debug.log(this.tagName,"onsignalingstatechange",e)},e.oniceconnectionstatechange=t=>{this.player.debug.log(this.tagName,"oniceconnectionstatechange",e.iceConnectionState),this.player.emit(U.webrtcOnIceConnectionStateChange,e.iceConnectionState),e.iceConnectionState},e.onicecandidate=e=>{this.player.debug.log(this.tagName,"onicecandidate",e),e.candidate&&this.player.debug.log(this.tagName,"Remote ICE candidate: ",e.candidate.candidate)},e.ontrack=e=>{const i=t.video.$videoElement;this.player.debug.log(this.tagName,"ontrack",e),"video"===e.track.kind&&(this.player.debug.log(this.tagName,"ontrack video"),e=e.streams[0],i.srcObject=e,this.videoStream=e)},e.onicecandidateerror=e=>{this.player.debug.log(this.tagName,"onicecandidateerror",e),this.player.emitError(O.webrtcIceCandidateError,e)},e.onconnectionstatechange=t=>{this.player.debug.log(this.tagName,"onconnectionstatechange",t),this.player.emit(U.webrtcOnConnectionStateChange,e.connectionState),e.connectionState},this.rtcPeerConnection=e}loadSource(e){return new Promise((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then(s=>{r.setLocalDescription(s),this.player.debug.log(this.tagName,"getWebRtcRemoteSdp loadSource"),s=s.sdp,Cr({url:e,type:"POST",data:s,contentType:"text/plain;charset=utf-8",processData:!1,dataType:"json"}).then(e=>{if(this.player.debug.log(this.tagName,"getWebRtcRemoteSdp response and code is "+e.code),0!==e.code)return i(e.msg);r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e.sdp})),t()}).catch(e=>{this.player.debug.error(this.tagName,"loadSource getWebRtcRemoteSdp response error",e),i(e)})}).catch(e=>{this.player.debug.error(this.tagName,"loadSource rtcPeerConnection.createOffer() error",e),i(e)})})}}class nn extends r{constructor(e,t){super(),this.player=e,this.player.$container.classList.add("jessibuca-container-playback"),this._showPrecision=null,this._startTime=null,this._playStartTime=null,this._playingTimestamp=null,this._fps=parseInt(t.fps,10)||e._opt.playbackFps,this._isUseFpsRender=!!Kt(t.isUseFpsRender),this._rate=1,this._audioTimestamp=0,this._videoTimestamp=0,this._currentLocalTimestamp=0,this._localOneFrameTimestamp=t.localOneFrameTimestamp||40,this._localCalculateTimeInterval=null,this._isUseLocalCalculateTime=!!Kt(t.isUseLocalCalculateTime),this._isPlaybackPauseClearCache=!$t(t.isPlaybackPauseClearCache),this._isCacheBeforeDecodeForFpsRender=!!Kt(t.isCacheBeforeDecodeForFpsRender),this._startfpsTime=null,this._startFpsTimestamp=null,this._checkStatsInterval=null,this._playbackTs=0,this._renderFps=0,this._isUseLocalCalculateTime?this._startLocalCalculateTime():this._listen(),this.playbackList=[],this._totalDuration=0,this.initPlaybackList(t.playList),this.player.on(U.playbackPause,e=>{e?this.pause():this.resume()}),t={fps:this._fps,isUseFpsRender:this._isUseFpsRender,localOneFrameTimestamp:this._localOneFrameTimestamp,isUseLocalCalculateTime:this._isUseLocalCalculateTime,uiUsePlaybackPause:t.uiUsePlaybackPause,showControl:t.showControl},e.debug.log("Playback","init",JSON.stringify(t))}destroy(){this._startTime=null,this._showPrecision=null,this._playStartTime=null,this._playingTimestamp=null,this._totalDuration=0,this._audioTimestamp=0,this._videoTimestamp=0,this._fps=null,this._isUseFpsRender=!1,this._rate=1,this.playbackList=[],this._localCalculateTimeInterval=null,this._currentLocalTimestamp=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._renderFps=0,this._playbackTs=0,this._stopLocalCalculateTime(),this.clearStatsInterval(),this.player.$container&&this.player.$container.classList.remove("jessibuca-container-playback"),this.off(),this.player.debug.log("Playback","destroy")}_listen(){this.player.on(U.stats,e=>{e=e.ts,this._playStartTime||(this._playStartTime=e),e-=this._playStartTime,this.setPlayingTimestamp(e)})}pause(){this.clearStatsInterval()}resume(){this.startCheckStatsInterval()}updateStats(){var e=0{var e=this._currentLocalTimestamp;this._playStartTime||(this._playStartTime=e),e-=this._playStartTime;this.setPlayingTimestamp(e)},1e3)}startCheckStatsInterval(){this.clearStatsInterval(),this._checkStatsInterval=setInterval(()=>{this.updateStats()},1e3)}_stopLocalCalculateTime(){this._localCalculateTimeInterval&&(clearInterval(this._localCalculateTimeInterval),this._localCalculateTimeInterval=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}increaseLocalTimestamp(){this._isUseLocalCalculateTime&&(this._currentLocalTimestamp+=this._localOneFrameTimestamp)}initPlaybackList(e){this.playbackList=e||[];let t=0;this.playbackList.forEach((e,i)=>{10===Ct(e.start)&&(e.startTimestamp=1e3*e.start,e.startTime=lt(e.startTimestamp)),10===Ct(e.end)&&(e.endTimestamp=1e3*e.end,e.endTime=lt(e.endTimestamp)),e.duration=e.end-e.start,t+=e.duration}),this._totalDuration=t,this.player.debug.log("Playback",this.playbackList),0{if(e){this.player.$container.classList.add("jessibuca-zoom-control"),this._bindEvents();const e=this.player.video.$videoElement.style.transform;var t=this.player.video.$videoElement.style.left,i=this.player.video.$videoElement.style.top;t=parseFloat(t),i=parseFloat(i);t&&(this.videoPosition.left=t),i&&(this.videoPosition.top=i);let r=(this.prevVideoElementStyleTransform=e).match(/scale\([0-9., ]*\)/g);if(r&&r[0]){let e=r[0].replace("scale(","").replace(")","");this.prevVideoElementStyleScale=e.split(",")}}else this.player.$container.classList.remove("jessibuca-zoom-control"),this._unbindEvents(),this._resetVideoPosition(),this.player.$container.style.cursor="auto",this.player.video.$videoElement.style.transform=this.prevVideoElementStyleTransform,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null}),t(window,"mouseup",e=>{this.handleMouseUp(e)}),e.debug.log("zoom","init")}destroy(){this.bindEvents=[],this.isDragging=!1,this.currentZoom=1,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null,this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.off(),this.player.debug.log("zoom","destroy")}_bindEvents(){const{proxy:e}=this.player["events"],t=e(this.player.$container,"mousemove",e=>{this.handleMouseMove(e)});this.bindEvents.push(t);var i=e(this.player.$container,"mousedown",e=>{this.handleMouseDown(e)});this.bindEvents.push(i)}_unbindEvents(){this.bindEvents.forEach(e=>{e&&e()})}handleMouseMove(e){var t,i,r;e.stopPropagation(),this.isDragging&&this.player.zooming&&(({posX:e,posY:t}=Bt(e)),i=this.tempPosition.x-e,r=this.tempPosition.y-t,this.videoPosition.left=this.videoPosition.left-i,this.videoPosition.top=this.videoPosition.top-r,this.tempPosition.x=e,this.tempPosition.y=t,this.updateVideoPosition())}handleMouseDown(e){e.stopPropagation();const t=It(e);if(this.player.zooming&&(t.matches("video")||t.matches("canvas"))){const{posX:t,posY:i}=Bt(e);this.player.$container.style.cursor="grabbing",this.tempPosition.x=t,this.tempPosition.y=i,this.isDragging=!0,this.player.debug.log("zoom","handleMouseDown is dragging true")}}handleMouseUp(e){e.stopPropagation(),this.isDragging&&this.player.zooming&&(this.tempPosition={x:0,y:0},this.isDragging=!1,this.player.$container.style.cursor="grab",this.player.debug.log("zoom","handleMouseUp is dragging false"))}updateVideoPosition(){const e=this.player.video.$videoElement;e.style.left=this.videoPosition.left+"px",e.style.top=this.videoPosition.top+"px"}_resetVideoPosition(){this.player.resize(),this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.currentZoom=1}narrowPrecision(){this.currentZoom<=1||(--this.currentZoom,this.updateVideoElementScale())}expandPrecision(){5<=this.currentZoom||(this.currentZoom+=1,this.updateVideoElementScale())}updateVideoElementScale(){const e=this.player.video.$videoElement;let t=e.style.transform,i=1,r=1;if(this.prevVideoElementStyleScale){const e=this.prevVideoElementStyleScale[0],t=(void 0!==e&&(i=e,r=e),this.prevVideoElementStyleScale[1]);void 0!==t&&(r=t)}r=ht(r);var s=.5*(i=ht(i))*(this.currentZoom-1)+i,a=.5*r*(this.currentZoom-1)+r,n=-1===t.indexOf("scale(")?t+` scale(${s},${a})`:t.replace(/scale\([0-9., ]*\)/,`scale(${s},${a})`);this.player.debug.log("zoom",`updateVideoElementScale end is ${s}, ${a} style is `+n),e.style.transform=n}}class ln extends r{constructor(e){super(),this.player=e,this.faceDetector=null,this.objectDetector=null,this.initFaceDetector(),this.initObjectDetector(),this.player.debug.log("AiLoader","init")}initFaceDetector(){if(this.player._opt.useFaceDetector&&window.JessibucaProFaceDetector){const e=new JessibucaProFaceDetector({detectWidth:this.player._opt.aiFaceDetectWidth});e.load().then(()=>{this.player.debug.log("AiLoader","init face detector success"),this.faceDetector=e})}}initObjectDetector(){if(this.player._opt.useObjectDetector&&window.JessibucaProObjectDetector){const e=new JessibucaProObjectDetector({detectWidth:this.player._opt.aiObjectDetectWidth});e.load().then(()=>{this.player.debug.log("AiLoader","init object detector success"),this.objectDetector=e,this.objectDetector.on("jessibuca-pro-object-detector-info",e=>{e&&0{this.addMenuItem(e)}),e(this.player.$container,"contextmenu",e=>{e.preventDefault(),this.show();var t=e.clientX,{height:i,width:r,left:s,top:a}=(e=e.clientY,this.player.$container.getBoundingClientRect()),{height:n,width:o}=this.$contextmenus.getBoundingClientRect();let l=t-s,d=e-a;s+r{Js(e,this.$contextmenus)||this.hide()}),this.player.on(U.blur,()=>{this.hide()})}_validateMenuItem(e){let t=!0;return e.content||(this.player.debug.warn(this.LOG_NAME,"content is required"),t=!1),t}addMenuItem(){let e=0\n ${e.content}\n \n `,a=Array.from(this.$contextmenus.children)[e.index];a?a.insertAdjacentHTML("beforebegin",s):Ys(this.$contextmenus,s),t=this.$contextmenus.querySelector(".jessibuca-contextmenu-"+r),e.click&&i(t,"click",t=>{t.preventDefault(),e.click.call(this.player,this,t),this.hide()}),this.menuList.push({uuid:r,$menuItem:t})}}}class hn extends r{constructor(e){let t=1false"),this._opt.forceNoOffscreen||this.debug.warn("Player","useMSE is true and forceNoOffscreen is false then forceNoOffscreen set false->true"),this._opt.useWCS=!1,this._opt.forceNoOffscreen=!0):this._opt.useWCS,this._opt.useSIMD||-1!==this._opt.decoder.indexOf("-simd")){const e=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),t=/iphone/i.test(navigator.userAgent);this._opt.useSIMD=e&&$t(t),this._opt.useSIMD||this.debug.warn("Player",`useSIMD is true, but not support(isSupportSimd is ${e} ,isIphone is ${t}) so set useSIMD false`)}this._opt.useSIMD?-1===this._opt.decoder.indexOf("-simd")&&(this._opt.decoder=this._opt.decoder.replace("./hzPlayer/decoder-pro","./hzPlayer/decoder-pro-simd")):-1!==this._opt.decoder.indexOf("-simd")&&(this._opt.decoder=this._opt.decoder.replace("./hzPlayer/decoder-pro-simd","./hzPlayer/decoder-pro")),-1!==this._opt.decoder.indexOf("-simd")?this._opt.decoderAudio=this._opt.decoder.replace("./hzPlayer/decoder-pro-simd","./hzPlayer/decoder-pro-audio"):this._opt.decoderAudio=this._opt.decoder.replace("./hzPlayer/decoder-pro","./hzPlayer/decoder-pro-audio"),$t(this._opt.hasAudio)&&(this._opt.operateBtns.audio=!1),$t(this._opt.hasVideo)&&(this._opt.operateBtns.fullscreen=!1,this._opt.operateBtns.screenshot=!1,this._opt.operateBtns.record=!1,this._opt.operateBtns.ptz=!1,this._opt.operateBtns.quality=!1,this._opt.operateBtns.zoom=!1),this._opt.qualityConfig&&0===this._opt.qualityConfig.length&&this._opt.operateBtns.quality&&(this._opt.operateBtns.quality=!1,this.debug.warn("Player","_opt.qualityConfig is empty, so set operateBtns.quality false")),Kt(this._opt.useWebGPU)&&(this._opt.useWebGPU=function(){let e=!1;return"gpu"in navigator||e}(),$t(this._opt.useWebGPU)&&this.debug.warn("Player","useWebGPU is true, but not support so set useWebGPU false")),this._opt.hasControl=this._hasControl(),this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._zooming=!1,this._destroyed=!1,this._checkHeartTimeout=null,this._checkLoadingTimeout=null,this._checkStatsInterval=null,this._checkVisibleHiddenTimeout=null,this._startBpsTime=null,this._isPlayingBeforePageHidden=!1,this._stats={buf:0,netBuf:0,fps:0,maxFps:0,dfps:0,abps:0,vbps:0,ts:0,mseTs:0,pTs:0,dts:0},this._allStatsData={},this._faceDetectActive=!1,this._objectDetectActive=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._videoTimestamp=0,this._audioTimestamp=0,this._videoIframeIntervalTs=0,this._streamQuality=this._opt.defaultStreamQuality||"",this._visibility=!0,this._lastestVisibilityChangeTimestamp=null,this._tempWorkerStats=null,this._historyFpsList=[],this._tempStreamList=[],this._tempInnerPlayBgBase64="",$t(this._opt.useMSE)&&$t(this._opt.useWCS)&&!this.isWebrtcH264()&&!this.isOldHls()&&(this._opt.useWasm=!0),(this.isOldHls()||this.isWebrtcH264())&&(this._opt.hasVideo=!0,this._opt.hasAudio=!0),this._opt.hasVideo||(this._opt.useMSE=!1,this._opt.useWCS=!1),this._opt.useWasm&&(this._opt.useOffscreen?this._opt.wasmUseVideoRender=!1:this._opt.wasmUseVideoRender&&(this._opt.wasmUseVideoRender=dt()&&yt()&&At(),this._opt.wasmUseVideoRender||this.debug.warn("Player","use wasm video render, but not support so set wasmUseVideoRender false")),this._opt.useSIMD?this.debug.log("Player","use simd wasm"):this.debug.log("Player","use wasm")),this._opt.useWasm&&(this._opt.useFaceDetector&&window.JessibucaProFaceDetector||this._opt.useObjectDetector&&window.JessibucaProObjectDetector)?(this.ai=new ln(this),this._opt.useFaceDetector&&window.JessibucaProFaceDetector||(this._opt.operateBtns.aiFace=!1),this._opt.useObjectDetector&&window.JessibucaProObjectDetector||(this._opt.operateBtns.aiObject=!1)):(this._opt.operateBtns.aiObject=!1,this._opt.operateBtns.aiFace=!1),!this._opt.useFaceDetector||this._opt.useWasm&&window.JessibucaProFaceDetector||this.debug.warn("Player",`use face detector, useWasm is ${this._opt.useWasm} and window.JessibucaProFaceDetector is `+!!window.JessibucaProFaceDetector),!this._opt.useObjectDetector||this._opt.useWasm&&window.JessibucaProObjectDetector||this.debug.warn("Player",`use object detector, useWasm is ${this._opt.useWasm} and window.JessibucaProObjectDetector is `+!!window.JessibucaProObjectDetector),this._opt.useVideoRender&&(this._opt.useWasm&&!this._opt.useOffscreen?(this._opt.wasmUseVideoRender=dt()&&yt()&&At(),this._opt.wasmUseVideoRender||this.debug.warn("Player","use wasm video render, but not support so set wasmUseVideoRender false")):this._opt.useWCS&&!this._opt.useOffscreen&&(this._opt.wcsUseVideoRender=yt()&&At(),this._opt.wcsUseVideoRender||this.debug.warn("Player","use wcs video render, but not support so set wcsUseVideoRender false"))),this._opt.useCanvasRender&&(this._opt.useMSE&&(this._opt.mseUseCanvasRender=!0),this._opt.useWasm&&(this._opt.wasmUseVideoRender=!1),this._opt.useWCS&&(this._opt.wcsUseVideoRender=!1),this.isOldHls()&&!ot()&&(this._opt.hlsUseCanvasRender=!0)),this._opt.useVideoRender=!1,this._opt.useCanvasRender=!1,this._opt.useWasm?this._opt.wasmUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useWCS?this._opt.wcsUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useMSE?this._opt.mseUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this.isOldHls()?this._opt.hlsUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this.isWebrtcH264()&&(this._opt.useVideoRender=!0),i=this,Object.defineProperty(i,"rect",{get:()=>{const e=i.$container.getBoundingClientRect();return e.width=Math.max(e.width,i.$container.clientWidth),e.height=Math.max(e.height,i.$container.clientHeight),e}}),["bottom","height","left","right","top","width"].forEach(e=>{Object.defineProperty(i,e,{get:()=>i.rect[e]})}),this.events=new qt(this),this._opt.hasVideo&&(this.video=new gi(this),this.recorder=new lr(this)),this.isOldHls()?(this.hlsDecoder=new sa(this),this.loaded=!0):this.isWebrtcH264()?(this._opt.isWebrtcForZLM?this.webrtc=new an(this):this.webrtc=new sn(this),this.loaded=!0):(this.isUseHls265()&&(this.hlsDecoder=new rn(this)),this.isWebrtcH265()&&(this.webrtc=new sn(this)),Ft(this._opt)?this.loaded=!0:this.decoderWorker=new dr(this)),this._opt.hasAudio&&(this.audio=new Pi(this)),this.stream=null,this.demux=null,this._lastVolume=null,this._isInZoom=!1,this._playingStartTimestamp=null,this._opt.useWCS&&(this.webcodecsDecoder=new js(this),this._opt.hasAudio||(this.loaded=!0)),this._opt.useMSE&&(this.mseDecoder=new ea(this),this._opt.hasAudio||(this.loaded=!0)),this.control=new Xs(this),0{It(e)===r.$container&&(r.emit(F.fullscreen,r.fullscreen),r.fullscreen&&!r._opt.useMSE||r.resize())};je.on("change",e),r.events.destroys.push(()=>{je.off("change",e)})}catch(r){}if(r.on(U.decoderWorkerInit,()=>{r.debug.log("player","listen decoderWorkerInit and set loaded true"),r.loaded=!0}),r.on(U.play,()=>{r.loading=!1}),r.on(U.fullscreen,e=>{if(e)try{je.request(r.$container).then(()=>{}).catch(e=>{r.debug.error("player","fullscreen request error",e),it()&&r._opt.useWebFullScreen&&(r.webFullscreen=!0)})}catch(e){it()&&r._opt.useWebFullScreen&&(r.webFullscreen=!0)}else try{je.exit().then(()=>{r.webFullscreen&&(r.webFullscreen=!1)}).catch(e=>{r.debug.error("player","fullscreen exit error",e),r.webFullscreen&&(r.webFullscreen=!1)})}catch(e){r.webFullscreen&&(r.webFullscreen=!1)}}),it()&&r.on(U.webFullscreen,e=>{e?r.$container.classList.add("jessibuca-fullscreen-web"):r.$container.classList.remove("jessibuca-fullscreen-web"),r.emit(F.fullscreen,r.fullscreen)}),r.on(U.resize,()=>{r.video&&r.video.resize()}),r._opt.debug){const e=[U.timeUpdate],t=[U.stats,U.playbackStats,U.playbackTimestamp];Object.keys(U).forEach(i=>{r.on(U[i],s=>{e.includes(i)||(t.includes(i)&&(s=JSON.stringify(s)),r.debug.log("player events",U[i],s))})}),Object.keys(O).forEach(e=>{r.on(O[e],t=>{r.debug.warn("player event error",O[e],t)})})}{var s=this;const{_opt:e,debug:t,events:{proxy:i}}=s;if(e.supportDblclickFullscreen&&i(s.$container,"dblclick",e=>{e=It(e).nodeName.toLowerCase(),"canvas"!==e&&"video"!==e||(s.fullscreen=!s.fullscreen)}),i(document,"visibilitychange",()=>{s.visibility="visible"===document.visibilityState,t.log("visibilitychange",document.visibilityState),e.hiddenAutoPause&&(t.log("visibilitychange","hiddenAutoPause is true ",document.visibilityState,s._isPlayingBeforePageHidden),"visible"===document.visibilityState?s._isPlayingBeforePageHidden&&s.play():(s._isPlayingBeforePageHidden=s.playing,s.playing&&s.pause()))}),i(document,["click","contextmenu"],e=>{Js(e,s.$container)?(s.isInput="INPUT"===e.target.tagName,s.isFocus=!0,s.emit(U.focus)):(s.isInput=!1,s.isFocus=!1,s.emit(U.blur))}),e.autoResize){const e=ut(()=>{s.resize()},500);i(window,["resize","orientationchange"],()=>{e()}),screen&&screen.orientation&&screen.orientation.onchange&&i(screen.orientation,"change",()=>{e()})}}this.singleWatermark=new pi(this),this._opt.watermarkConfig&&this.updateWatermark(this._opt.watermarkConfig),this._opt.useWCS&&this.debug.log("Player","use WCS"),this._opt.useMSE&&this.debug.log("Player","use MSE"),this._opt.useOffscreen&&this.debug.log("Player","use offscreen"),this._opt.isHls&&(this._opt.supportHls265?this.debug.log("Player","use hls 265"):this.debug.log("Player","use hls")),this._opt.isWebrtc&&(this._opt.isWebrtcH265?this.debug.log("Player","use webrtc h265"):this._opt.isWebrtcForZLM?this.debug.log("Player","use webrtc for ZLM"):this.debug.log("Player","use webrtc")),this._opt.isFmp4&&this.debug.log("Player","use fmp4"),this._opt.isMpeg4&&this.debug.log("Player","use mpeg4"),this.isPlayback()&&this.debug.log("Player","use playback"),this._opt.hasVideo&&(0===this.width&&this.debug.warn("Player","container width is 0, please check the container width"),0===this.height&&this.debug.warn("Player","container height is 0, please check the container height")),this.debug.log("Player options",JSON.stringify(this._opt))}async destroy(){this._destroyed=!0,this.emit("destroy"),this.off(),this.events&&(this.events.destroy(),this.events=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.clearVisibilityHiddenTimeout(),this.decoderWorker&&(await this.decoderWorker.destroy(),this.decoderWorker=null),await this._destroy()}async _destroy(){this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._lastVolume=null,this._zooming=!1,this._faceDetectActive=!1,this._objectDetectActive=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this.singleWatermark&&(this.singleWatermark.destroy(),this.singleWatermark=null),this.stream&&(this.stream.destroy(),this.stream=null),this.hlsDecoder&&(await this.hlsDecoder.destroy(),this.hlsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.webrtc&&(this.webrtc.destroy(),this.webrtc=null),this.video&&(this.video.destroy(),this.video=null),this.audio&&(this.audio.destroy(),this.audio=null),this.recorder&&(this.recorder.destroy(),this.recorder=null),this.control&&(this.control.destroy(),this.control=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.demux&&(this.demux.destroy(),this.demux=null),this.playback&&(this.playback.destroy(),this.playback=null),this.zoom&&(this.zoom.destroy(),this.zoom=null),this.ai&&(this.ai.destroy(),this.ai=null),this.keepScreenOn&&(this.releaseWakeLock(),this.keepScreenOn.destroy(),this.keepScreenOn=null),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._streamQuality="",this._visibility=!0,this._isInZoom=!1,this._playingStartTimestamp=null,this._lastestVisibilityChangeTimestamp=null,this._videoIframeIntervalTs=null,this._tempWorkerStats=null,this._tempStreamList=[],this._tempInnerPlayBgBase64="",this.debug.log("play","destroy end"),this._opt=Wt(),this.$container=null}set fullscreen(e){it()&&this._opt.useWebFullScreen?(this.emit(U.webFullscreen,e),setTimeout(()=>{this.updateOption({rotate:e?270:0}),this.resize()},10)):this.emit(U.fullscreen,e)}get fullscreen(){return je.isFullscreen||this.webFullscreen}set webFullscreen(e){this.emit(U.webFullscreen,e)}get webFullscreen(){return this.$container.classList.contains("jessibuca-fullscreen-web")}set loaded(e){this._hasLoaded=e}get loaded(){return this._hasLoaded||this.isOldHls()||this.isWebrtcH264()||this._opt.useMSE&&!this._opt.hasAudio||this._opt.useWCS&&!this._opt.hasAudio}set playing(e){e&&(this.loading=!1),this.playing!==e&&(this._playing=e,this.emit(U.playing,e),this.emit(U.volumechange,this.volume),e?this.emit(U.play):this.emit(U.pause))}get playing(){return this._playing}get volume(){return this.audio&&this.audio.volume||0}set volume(e){e!==this.volume&&(this.audio?(this.audio.setVolume(e),this._lastVolume=this.volume):this.debug.warn("Player","set volume error, audio is null"))}get lastVolume(){return this._lastVolume}set loading(e){this.loading!==e&&(this._loading=e,this.emit(U.loading,this._loading))}get loading(){return this._loading}set zooming(e){this.zooming!==e&&(this.zoom||(this.zoom=new on(this)),this._zooming=e,this.emit(U.zooming,this.zooming))}get zooming(){return this._zooming}set recording(e){e?this.playing&&!this.recording&&(this.recorder&&this.recorder.startRecord(),this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!0})):this.recording&&(this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!1}),this.recorder&&this.recorder.stopRecordAndSave().then(()=>{}).catch(e=>{}))}get recording(){return!!this.recorder&&this.recorder.isRecording}set audioTimestamp(e){null!==e&&(this._audioTimestamp=e)}get audioTimestamp(){return this._audioTimestamp}set videoTimestamp(e){null!==e&&(this._videoTimestamp=e,this._opt.useWCS||this._opt.useMSE||this.audioTimestamp&&this.videoTimestamp&&this.audio&&this.audio.emit(U.videoSyncAudio,{audioTimestamp:this.audioTimestamp,videoTimestamp:this.videoTimestamp,diff:this.audioTimestamp-this.videoTimestamp}))}set streamQuality(e){this.streamQuality!==e&&(this._streamQuality=e,this.emit(U.streamQualityChange,e))}get streamQuality(){return this._streamQuality}get videoTimestamp(){return this._videoTimestamp}get isDebug(){return Kt(this._opt.debug)}get scaleType(){var e=this._opt,t=e.isResize;e=e.isFullResize;let i=0;return $t(e)&&$t(t)?i=0:$t(e)&&Kt(t)?i=1:Kt(e)&&Kt(t)&&(i=2),i}set visibility(e){this._visibility!==e&&(this._visibility=e,this.emit(U.visibilityChange,e),this._lastestVisibilityChangeTimestamp=qe(),e?this.clearVisibilityHiddenTimeout():this.startVisibilityHiddenTimeout())}get visibility(){return this._visibility}set playbackPause(e){this._playbackPause!==e&&(this._playbackPause=e,this.emit(U.playbackPause,e),this.emit(U.playbackPauseOrResume,e))}get playbackPause(){return this._playbackPause}set videoIframeIntervalTs(e){this._videoIframeIntervalTs=e}get videoIframeIntervalTs(){return this._videoIframeIntervalTs}set faceDetectActive(e){this._faceDetectActive!==e&&(this._faceDetectActive=e,this.emit(U.faceDetectActive,e))}get faceDetectActive(){return this._faceDetectActive}set objectDetectActive(e){this._objectDetectActive!==e&&(this._objectDetectActive=e,this.emit(U.objectDetectActive,e))}get objectDetectActive(){return this._objectDetectActive}get isUseWorkerDemuxAndDecode(){return this.stream&&this.stream.getStreamType()===n}isDestroyed(){return this._destroyed}updateOption(e){var t=1{this.decoderWorker.updateWorkConfig({key:t,value:e[t]})})}init(){return new Promise((e,t)=>{this.video||this._opt.hasVideo&&(this.video=new gi(this)),this.audio||this._opt.hasAudio&&(this.audio=new Pi(this)),this.stream||(this.stream=new ji(this)),this.isOldHls()?(this.hlsDecoder||(this.hlsDecoder=new sa(this),this.loaded=!0),e()):this.isWebrtcH264()?(this.webrtc||(this._opt.isWebrtcForZLM?this.webrtc=new an(this):this.webrtc=new sn(this),this.loaded=!0),e()):(this.demux||this._opt.hasVideo&&!this.isUseWorkerDemuxAndDecode&&(this.demux=new Ns(this)),this._opt.useWCS&&!this.webcodecsDecoder&&(this.webcodecsDecoder=new js(this)),this._opt.useMSE&&!this.mseDecoder&&(this.mseDecoder=new ea(this)),this.isUseHls265()&&!this.hlsDecoder&&(this.hlsDecoder=new rn(this)),this.isWebrtcH265()&&!this.webrtc&&(this.webrtc=new sn(this)),this.decoderWorker?this.loaded?e():this.once(U.decoderWorkerInit,()=>{this.loaded=!0,e()}):Ft(this._opt)?e():(this.decoderWorker=new dr(this),this.once(U.decoderWorkerInit,()=>{this.loaded=!0,e()})))})}play(e){let t=1{if(!e&&!this._opt.url)return r("url is empty");this.loading=!0,this.playing=!1,this._times.playInitStart=qe(),e=e||this._opt.url,this._opt.url=e,this.clearCheckHeartTimeout(),this.control&&(this.control.initLoadingBackground(),this._opt.loadingBackground=""),this.init().then(()=>{this._times.playStart=qe(),this._opt.isNotMute&&this.mute(!1),this.webcodecsDecoder&&this.webcodecsDecoder.once(O.webcodecsH265NotSupport,()=>{this.emitError(O.webcodecsH265NotSupport)}),this.mseDecoder&&(this.mseDecoder.once(O.mediaSourceH265NotSupport,()=>{this.emitError(O.mediaSourceH265NotSupport)}),this.mseDecoder.once(O.mediaSourceFull,()=>{this.emitError(O.mediaSourceFull)}),this.mseDecoder.once(O.mediaSourceAppendBufferError,()=>{this.emitError(O.mediaSourceAppendBufferError)}),this.mseDecoder.once(O.mediaSourceBufferListLarge,()=>{this.emitError(O.mediaSourceBufferListLarge)}),this.mseDecoder.once(O.mediaSourceAppendBufferEndTimeout,()=>{this.emitError(O.mediaSourceAppendBufferEndTimeout)}),this.mseDecoder.once(O.mediaSourceDecoderConfigurationError,()=>{this.emitError(O.mediaSourceDecoderConfigurationError)}),this.mseDecoder.once(O.mediaSourceTsIsMaxDiff,()=>{this.emitError(O.mediaSourceTsIsMaxDiff)})),this.enableWakeLock(),this.checkLoadingTimeout(),this.stream?(this.stream.once(O.fetchError,e=>{this.emitError(O.fetchError,e)}),this.stream.once(O.websocketError,e=>{this.emitError(O.websocketError,e)}),this.stream.once(U.streamEnd,()=>{this.emit(U.streamEnd)}),this.stream.once(O.hlsError,e=>{this.emitError(O.hlsError,e)}),this.stream.once(O.webrtcError,e=>{this.emitError(O.webrtcError,e)}),this.stream.once(U.streamSuccess,()=>{i(),this._times.streamResponse=qe(),this.video&&this.video.play(),this.checkStatsInterval(),this.isPlayback()&&this.playback&&this.playback.startCheckStatsInterval();Number("1")}),this.stream.fetchStream(e,t)):this.debug.warn("player","play() this.stream is null")}).catch(e=>{r(e)})})}playForControl(){return new Promise((e,t)=>{this.debug.log("player","playForControl() and pauseAndNextPlayUseLastFrameShow is "+this._opt.pauseAndNextPlayUseLastFrameShow),this._opt.pauseAndNextPlayUseLastFrameShow&&this._tempInnerPlayBgBase64&&this.updateOption({loadingBackground:this._tempInnerPlayBgBase64}),this.play().then(t=>{e(t)}).catch(e=>{t(e)})})}close(){return new Promise((e,t)=>{this._close().then(()=>{this.video&&this.video.clearView(),e()}).catch(e=>{t(e)})})}resumeAudioAfterPause(){this.lastVolume&&(this.volume=this.lastVolume)}_close(){return new Promise((e,t)=>{const i=()=>{this.stream&&(this.stream.destroy(),this.stream=null),this.demux&&(this.demux.destroy(),this.demux=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.hlsDecoder&&(this.hlsDecoder.destroy(),this.hlsDecoder=null),this.webrtc&&(this.webrtc.destroy(),this.webrtc=null),this.audio&&(this.audio.destroy(),this.audio=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.isPlayback()&&this.playback&&this.playback.clearStatsInterval(),this.loading=!1,this.recording=!1,this.zooming=!1,this.playing=!1,this.video&&(this.video.resetInit(),this.video.pause(!0)),this.releaseWakeLock(),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""}};this.decoderWorker?this.decoderWorker.destroy().then(()=>{this.decoderWorker=null,i(),setTimeout(()=>{e()},0)}).catch(e=>{this.debug&&this.debug.error("player","close() decoderWorker.destroy() error",e),t()}):(i(),setTimeout(()=>{e()},0))})}pause(){let e=0{e?this.close().then(()=>{t()}).catch(e=>{i(e)}):this._close().then(()=>{t()}).catch(e=>{i(e)})})}pauseForControl(){return new Promise((e,t)=>{if(this.debug.log("player","_pauseInner()"),this._opt.pauseAndNextPlayUseLastFrameShow&&this.video){const e=this.video.screenshot("","png",.92,"base64");e&&(this._tempInnerPlayBgBase64=e)}this.pause().then(t=>{e(t)}).catch(e=>{t(e)})})}isAudioMute(){let e=!0;return this.audio?this.audio.isMute:e}isAudioNotMute(){return!this.isAudioMute()}mute(e){this.audio&&this.audio.mute(e)}resize(){this.video&&this.video.resize()}startRecord(e,t){this.recording||(this.recorder.setFileName(e,t),this.recording=!0)}stopRecordAndSave(e,t){return new Promise((i,r)=>{this.recorder||r("recorder is null"),this.recording?(this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!0}),this.recorder.stopRecordAndSave(e,t).then(e=>{i(e)}).catch(e=>{r(e)})):r("recorder is not recording")})}_hasControl(){let e=!1,t=!1;return Object.keys(this._opt.operateBtns).forEach(e=>{this._opt.operateBtns[e]&&-1===(""+e).indexOf("Fn")&&(t=!0)}),(this._opt.showBandwidth||t)&&(e=!0),!(!this.isPlayback()||!this._opt.playbackConfig.showControl)||e}useWasmDecode(){return $t(this._opt.useMSE)&&$t(this._opt.useWCS)}canVideoTrackWritter(){var e=this._opt;return!this.isOldHls()&&!this.isWebrtcH264()&&$t(e.useMSE)&&(e.useWCS&&$t(e.useOffscreen)&&e.wcsUseVideoRender||this.useWasmDecode())}checkHeart(){this.clearCheckHeartTimeout(),this.checkHeartTimeout()}checkHeartTimeout(){this._checkHeartTimeout=setTimeout(()=>{$t(this.playbackPause)&&this.playing?this.isDestroyed()?this.debug&&this.debug.warn("player","checkHeartTimeout but player is destroyed"):0!==this._stats.fps?this.debug&&this.debug.warn("player","checkHeartTimeout but fps is "+this._stats.fps):$t(this.visibility)&&0!==this._stats.vbps?this.debug&&this.debug.warn("player","checkHeartTimeout but page is not visibility and vbps is "+this._stats.vbps):(this.debug.warn("player",`checkHeartTimeout and\n pause and emit delayTimeout event and\n current vbps is ${this._stats.vbps} and\n current fps is ${this._stats.fps} and\n current visibility is ${this.visibility} and`),this.emit(U.timeout,U.delayTimeout),this.emit(U.delayTimeout)):this.debug.warn("player",`playbackPause is ${this.playbackPause}, playing is `+this.playing)},1e3*this._opt.heartTimeout)}checkHeartTimeout$2(){var e;$t(this.playbackPause)&&this.playing?this.isDestroyed()?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but player is destroyed"):$t(this.isHistoryFpsListAllZero())?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but fps is not all zero"):0!==this._stats.fps?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but fps is "+this._stats.fps):$t(this.visibility)&&0!==this._stats.vbps?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but page is not visibility and vbps is "+this._stats.vbps):(e=this._historyFpsList.join(","),this.debug.warn("player",`checkHeartTimeout$2 and\n pause and emit delayTimeout event and\n current vbps is ${this._stats.vbps} and\n current fps is ${this._stats.fps} and\n history FpsList is ${e} and\n current visibility is ${this.visibility} and`),this.emit(U.timeout,U.delayTimeout),this.emit(U.delayTimeout)):this.debug.log("player",`checkHeartTimeout$2 playbackPause is ${this.playbackPause}, playing is `+this.playing)}checkStatsInterval(){this._checkStatsInterval=setInterval(()=>{this.updateStats()},1e3)}clearCheckHeartTimeout(){this._checkHeartTimeout&&(clearTimeout(this._checkHeartTimeout),this._checkHeartTimeout=null)}checkLoadingTimeout(){this._checkLoadingTimeout=setTimeout(()=>{this.playing?this.debug.warn("player",`checkLoadingTimeout but loading is ${this.loading} and playing is `+this.playing):this.isDestroyed()?this.debug&&this.debug.warn("player","checkLoadingTimeout but player is destroyed"):(this.debug.warn("player","checkLoadingTimeout and pause and emit loadingTimeout event"),this.emit(U.timeout,U.loadingTimeout),this.emit(U.loadingTimeout))},1e3*this._opt.loadingTimeout)}clearCheckLoadingTimeout(){this._checkLoadingTimeout&&(this.debug.log("player","clearCheckLoadingTimeout"),clearTimeout(this._checkLoadingTimeout),this._checkLoadingTimeout=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}handleRender(){this.isDestroyed()?this.debug&&this.debug.warn("player","handleRender but player is destroyed"):(this.loading&&(this.clearCheckLoadingTimeout(),this.loading=!1,this.emit(U.start)),this.playing||(this.playing=!0))}updateStats(){var e=0this._stats.maxFps&&(this._stats.maxFps=this._stats.fps),this._allStatsData=Object.assign(this._stats,{audioBuffer:m,audioBufferDelayTs:g,audioTs:this.audioTimestamp,playbackVideoBuffer:y,playbackVideoWaitingBuffer:0,playbackAudioWaitingBuffer:0,playbackCacheDataDuration:A,demuxBuffer:h,pushLatestDelay:f,audioDemuxBuffer:c,flvBuffer:d,mseDelay:r,mseDecodeDiffTimes:s,mseDecodePlaybackRate:a,wcsDecodeDiffTimes:s,hlsDelay:r,hlsDemuxLength:n,hlsDemuxAudioLength:o,hlsDemuxVideoLength:l,hlsDecodePlaybackRate:a,delayTs:e,totalDelayTs:i,isDropping:u,isStreamTsMoreThanLocal:p}),this.emit(U.stats,this._allStatsData),1048576i)&&t)&&e.netBuf>this._opt.networkDelay)&&t)&&e.delayTs>i)&&t)&&this.visibility&&this._historyFpsList.length>=this._opt.heartTimeout){const i=this._historyFpsList.reduce((e,t)=>e+t,0)/this._historyFpsList.length;e.fps{this.emit(U.visibilityHiddenTimeout)},1e3*this._opt.pageVisibilityHiddenTimeout))}clearVisibilityHiddenTimeout(){this._checkVisibleHiddenTimeout&&(clearTimeout(this._checkVisibleHiddenTimeout),this._checkVisibleHiddenTimeout=null)}faceDetect(e){this.faceDetectActive=e}objectDetect(e){this.objectDetectActive=e}downloadNakedFlowFile(){this.demux&&this.demux.downloadNakedFlowFile&&this.demux.downloadNakedFlowFile()}downloadFmp4File(){this.demux&&this.demux.downloadFmp4File&&this.demux.downloadFmp4File()}downloadMpeg4File(){var e=new Blob([this._tempStreamList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".mpeg4",t.click(),window.URL.revokeObjectURL(t.href)}catch(e){console.error("downloadMpeg4File",e)}}hasCacheOnGopBuffer(){var e=this.videoIframeIntervalTs,t=this._allStatsData.demuxBuffer,i=this._allStatsData.maxFps;let r=!!(e&&t&&i)&&e<1e3/i*t;return r}addContentToCanvas(){this.video&&this.video.addContentToCanvas(0this._opt.heartTimeout&&this._historyFpsList.shift(),this._historyFpsList.push(e),this.isHistoryFpsListAllZero()&&this.checkHeartTimeout$2()}isHistoryFpsListAllZero(){let e=!0;if(e=!(this._historyFpsList.length=this._opt.playbackForwardMaxRateDecodeIFrame}pushTempStream(e){e=new Uint8Array(e),this._tempStreamList.push(e)}updateLoadingText(e){this.loading&&this.control&&this.control.updateLoadingText(e)}}class cn{constructor(e){var{fromSampleRate:e,toSampleRate:t,channels:i,inputBufferSize:r}=e;if(!e||!t||!i)throw new Error("Invalid settings specified for the resampler.");this.resampler=null,this.fromSampleRate=e,this.toSampleRate=t,this.channels=i||0,this.inputBufferSize=r,this.initialize()}initialize(){this.fromSampleRate==this.toSampleRate?(this.resampler=e=>e,this.ratioWeight=1):(this.fromSampleRate{let t,i,r,s,a,n,o,l,d,h=e.length,c=this.channels;if(h%c!=0)throw new Error("Buffer was of incorrect sample length.");if(h<=0)return[];for(t=this.outputBufferSize,i=this.ratioWeight,r=this.lastWeight,s=0,a=0,n=0,o=0,l=this.outputBuffer;r<1;r+=i)for(a=r%1,s=1-a,this.lastWeight=r%1,d=0;d{let t,i,r,s,a,n,o,l,d,h,c,u=e.length,p=this.channels;if(u%p!=0)throw new Error("Buffer was of incorrect sample length.");if(u<=0)return[];for(t=this.outputBufferSize,i=[],r=this.ratioWeight,s=0,n=0,l=!this.tailExists,this.tailExists=!1,d=this.outputBuffer,h=0,c=0,a=0;a=o)){for(a=0;a{e.stop()}),this.userMediaStream=null),this.mediaStreamSource&&(this.mediaStreamSource.disconnect(),this.mediaStreamSource=null),this.recorder&&(this.recorder.disconnect(),this.recorder.onaudioprocess=null,this.recorder=null),this.biquadFilter&&(this.biquadFilter.disconnect(),this.biquadFilter=null),this.gainNode&&(this.gainNode.disconnect(),this.gainNode=null),this.workletRecorder&&(this.workletRecorder.disconnect(),this.workletRecorder=null),this.socket&&(this.socketStatus===j&&this._sendClose(),this.socket.close(),this.socket=null),this._stopHeartInterval(),this._stopCheckGetUserMediaTimeout(),this.audioContext=null,this.gainNode=null,this.recorder=null,this.audioBufferList=[],this.sequenceId=0,this.wsUrl=null,this.tempTimestamp=null,this.tempRtpBufferList=[],this.startTimestamp=0,this.log("talk","destroy")}addRtpToBuffer(e){const t=e.length+this.tempRtpBufferList.length,i=new Uint8Array(t);i.set(this.tempRtpBufferList,0),i.set(e,this.tempRtpBufferList.length),this.tempRtpBufferList=i}downloadRtpFile(){var e=new Blob([this.tempRtpBufferList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".rtp",t.click(),window.URL.revokeObjectURL(t.href)}catch(e){console.error("downloadRtpFile",e)}}calcAudioBufferLength(){var e=this._opt["sampleRate"];return 8*e*.02/8}get socketStatusOpen(){return this.socketStatus===j}log(){for(var e=arguments.length,t=new Array(e),i=0;i{const i=this.events.proxy;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer",this.emit(U.talkStreamStart),i(this.socket,"open",()=>{this.socketStatus=j,this.log(this.tag,"websocket open -> do talk"),this.emit(U.talkStreamOpen),e(),this._doTalk()}),i(this.socket,"message",e=>{this.log(this.tag,"websocket message",e.data)}),i(this.socket,"close",e=>{this.socketStatus="close",this.warn(this.tag,"websocket close -> reject",e),this.emit(U.talkStreamClose),t(e)}),i(this.socket,"error",e=>{this.socketStatus="error",this.error(this.tag,"websocket error -> reject",e),this.emit(U.talkStreamError,e),t(e)})})}_sendClose(){}_initTalk(){this._initMethods(),this._opt.engine===Se?this._initWorklet():"script"===this._opt.engine&&this._initScriptProcessor(),this.log(this.tag,"audioContext samplerate",this.audioContext.sampleRate)}_initMethods(){this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain(),this.gainNode.gain.value=1,this.biquadFilter=this.audioContext.createBiquadFilter(),this.biquadFilter.type="lowpass",this.biquadFilter.frequency.value=3e3,this.resampler=new cn({fromSampleRate:this.audioContext.sampleRate,toSampleRate:this._opt.sampleRate,channels:this._opt.numberChannels,inputBufferSize:this.bufferSize})}_initScriptProcessor(){const e=this.audioContext.createScriptProcessor||this.audioContext.createJavaScriptNode;this.recorder=e.apply(this.audioContext,[this.bufferSize,this._opt.numberChannels,this._opt.numberChannels]),this.recorder.onaudioprocess=e=>this._onaudioprocess(e)}_initWorklet(){const e=Mt((function(){class e extends AudioWorkletProcessor{constructor(e){super(),this._cursor=0,this._bufferSize=e.processorOptions.bufferSize,this._buffer=new Float32Array(this._bufferSize)}process(e,t,i){if(!e.length||!e[0].length)return!0;for(let r=0;r{const e=new AudioWorkletNode(this.audioContext,"talk-processor",{processorOptions:{bufferSize:this.bufferSize}});e.connect(this.gainNode),e.port.onmessage=e=>{"data"===e.data.eventType&&this._encodeAudioData(e.data.buffer)},this.workletRecorder=e}),this.clearWorkletUrlTimeout=setTimeout(()=>{URL.revokeObjectURL(e),this.clearWorkletUrlTimeout=null},E)}_onaudioprocess(e){e=e.inputBuffer.getChannelData(0),this._encodeAudioData(new Float32Array(e))}_encodeAudioData(e){if(0===e[0]&&0===e[1])this.log(this.tag,"empty audio data");else{const i=this.resampler.resample(e);let r=i;if(16===this._opt.sampleBitsWidth?r=function(e){let t=e.length,i=new Int16Array(t);for(;t--;){var r=Math.max(-1,Math.min(1,e[t]));i[t]=r<0?32768*r:32767*r}return i}(i):8===this._opt.sampleBitsWidth&&(r=function(e){let t=e.length,i=new Int8Array(t);for(;t--;){var r=Math.max(-1,Math.min(1,e[t]));i[t]=parseInt(255/(65535/(32768+(r<0?32768*r:32767*r))),10)}return i}(i)),null!==r.buffer){let e=null;this._opt.encType===ge?e=function(e){const t=[];return Array.prototype.slice.call(e).forEach((e,i)=>{t[i]=function(e){let t,i,r;return 0<=e?t=213:(t=85,(e=-e-1)<0&&(e=32767)),8<=(i=pn(e,un,8))?127^t:(r=i<<4,(r|=i<2?e>>4&15:e>>i+3&15)^t)}(e)}),t}(r):this._opt.encType===ye?e=function(e){const t=[];return Array.prototype.slice.call(e).forEach((e,i)=>{t[i]=function(e){let t=0;t=e<0?(e=132-e,127):(e+=132,255);var i=pn(e,un,8);return 8<=i?127^t:(i<<4|e>>i+3&15)^t}(e)}),t}(r):"pcm"===this._opt.encType&&(e=r);const i=new Uint8Array(e);for(let r=0;r>8,t[1]=255&n>>0,t[2]=128,t[3]=128+s,t[4]=i/256,t[5]=i%256,t[6]=r/65536/256,t[7]=r/65536%256,t[8]=r%65536/256,t[9]=r%65536%256,t[10]=a/65536/256,t[11]=a/65536%256,t[12]=a%65536/256,t[13]=a%65536%256;let o=t.concat([...e]),l=new Uint8Array(o.length);for(let d=0;d{this.log(this.tag,"getUserMedia success"),this.userMediaStream=e,this.mediaStreamSource=this.audioContext.createMediaStreamSource(e),this.mediaStreamSource.connect(this.biquadFilter),this.recorder?(this.biquadFilter.connect(this.recorder),this.recorder.connect(this.gainNode)):this.workletRecorder&&(this.biquadFilter.connect(this.workletRecorder),this.workletRecorder.connect(this.gainNode)),this.gainNode.connect(this.audioContext.destination),this.emit(U.talkGetUserMediaSuccess),null===e.oninactive&&(e.oninactive=e=>{this._handleStreamInactive(e)})}).catch(e=>{this.error(this.tag,"getUserMedia error",e.toString()),this.emit(U.talkGetUserMediaFail,e.toString())}).finally(()=>{this.log(this.tag,"getUserMedia finally"),this._stopCheckGetUserMediaTimeout()})}_getUserMedia2(){this.log(this.tag,"getUserMedia"),navigator.mediaDevices?navigator.mediaDevices.getUserMedia({audio:!0}).then(e=>{this.log(this.tag,"getUserMedia2 success")}):navigator.getUserMedia({audio:!0},this.log(this.tag,"getUserMedia2 success"),this.log(this.tag,"getUserMedia2 fail"))}async _getUserMedia3(){this.log(this.tag,"getUserMedia3");try{var e=await navigator.mediaDevices.getUserMedia({audio:{latency:!0,noiseSuppression:!0,autoGainControl:!0,echoCancellation:!0,sampleRate:48e3,channelCount:1},video:!1});console.log("getUserMedia() got stream:",e),this.log(this.tag,"getUserMedia3 success")}catch(e){this.log(this.tag,"getUserMedia3 fail")}}_handleStreamInactive(e){this.userMediaStream&&(this.warn(this.tag,"stream oninactive",e),this.emit(U.talkStreamInactive))}_startCheckGetUserMediaTimeout(){this._stopCheckGetUserMediaTimeout(),this.checkGetUserMediaTimeout=setTimeout(()=>{this.log(this.tag,"check getUserMedia timeout"),this.emit(U.talkGetUserMediaTimeout)},this._opt.getUserMediaTimeout)}_stopCheckGetUserMediaTimeout(){this.checkGetUserMediaTimeout&&(this.log(this.tag,"stop checkGetUserMediaTimeout"),clearTimeout(this.checkGetUserMediaTimeout),this.checkGetUserMediaTimeout=null)}_startHeartInterval(){this.heartInterval=setInterval(()=>{this.log(this.tag,"heart interval");var e=[35,36,0,0,0,0,0,0];e=new Uint8Array(e);this.socket.send(e.buffer)},15e3)}_stopHeartInterval(){this.heartInterval&&(this.log(this.tag,"stop heart interval"),clearInterval(this.heartInterval),this.heartInterval=null)}startTalk(e){return new Promise((t,i)=>{if(!function(){let e=!1;var t=window.navigator;return t?(e=!(!t.mediaDevices||!t.mediaDevices.getUserMedia))||!!(t.getUserMedia||t.webkitGetUserMedia||t.mozGetUserMedia||t.msGetUserMedia):e}())return i("not support getUserMedia");if(this.wsUrl=e,this._opt.testMicrophone)this._doTalk();else{if(!this.wsUrl)return i("wsUrl is null");this._createWebSocket().catch(e=>{i(e)})}this.once(U.talkGetUserMediaFail,()=>{i("getUserMedia fail")}),this.once(U.talkGetUserMediaSuccess,()=>{t()})})}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(e=Je(e,0,1),this.gainNode.gain.value=e)}getOption(){return this._opt}get volume(){return this.gainNode?parseFloat(100*this.gainNode.gain.value).toFixed(0):null}}class mn{constructor(e){this.player=e,this.globalSetting=null,e=ct(),this.defaultSettings={watermark_id:"JessibucaPro_"+e,watermark_prefix:"JessibucaPro_mask_"+e,watermark_txt:"",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:0,watermark_width:150,watermark_height:100,watermark_angle:15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","int")}destroy(){this._removeMark(),this.globalSetting=null,this.defaultSettings={watermark_id:"",watermark_prefix:"",watermark_txt:"",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:0,watermark_width:150,watermark_height:100,watermark_angle:15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","destroy")}remove(){this._removeMark()}load(e){this.globalSetting=e,this._loadMark(e)}resize(){this.globalSetting&&this._loadMark(this.globalSetting)}_loadMark(){let e=this.defaultSettings;if(1===arguments.length&&"object"==typeof arguments[0]){var t,i=arguments[0]||{};for(t in i)i[t]&&e[t]&&i[t]===e[t]||!i[t]&&0!==i[t]||(e[t]=i[t])}var r=document.getElementById(e.watermark_id),s=(r&&r.parentNode&&r.parentNode.removeChild(r),"string"==typeof e.watermark_parent_node?document.getElementById(e.watermark_parent_node):e.watermark_parent_node),a=(r=s||document.body,r.getBoundingClientRect()),n=Math.max(r.scrollWidth,r.clientWidth,a.width),o=Math.max(r.scrollHeight,r.clientHeight,a.height),l=(a=arguments[0]||{},a=((a.watermark_parent_width||a.watermark_parent_height)&&r&&(e.watermark_x=e.watermark_x+0,e.watermark_y=e.watermark_y+0),document.getElementById(e.watermark_id)),null);a?a.shadowRoot&&(l=a.shadowRoot):((a=document.createElement("div")).id=e.watermark_id,a.setAttribute("style","pointer-events: none !important; display: block !important"),l="function"==typeof a.attachShadow?a.attachShadow({mode:"open"}):a,(h=r.children)[c=Math.floor(Math.random()*(h.length-1))]?r.insertBefore(a,h[c]):r.appendChild(a)),e.watermark_cols=parseInt((n-e.watermark_x)/(e.watermark_width+e.watermark_x_space));var d,h=parseInt((n-e.watermark_x-e.watermark_width*e.watermark_cols)/e.watermark_cols);e.watermark_x_space=h&&e.watermark_x_space,e.watermark_rows=parseInt((o-e.watermark_y)/(e.watermark_height+e.watermark_y_space));var c=parseInt((o-e.watermark_y-e.watermark_height*e.watermark_rows)/e.watermark_rows);e.watermark_y_space=c&&e.watermark_y_space;for(var u=s?(d=e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1)):(d=0+e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),0+e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1)),p=0;p{if(void 0===e[t])throw new Error(`JbPro option "${t}" can not be undefined`)}),this.originalOptions=e;var t,i=Ht();let r=Object.assign({},i,e),s=(r.url="",r.isMulti&&(r.debugUuid="xxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))),this.debug=new Fe(this),e.container);if(!(s="string"==typeof e.container?document.querySelector(e.container):s))throw this.debug.error("JbPro","JbPro need container option and now container is",e.container),new Error("JbPro need container option");if("CANVAS"===s.nodeName||"VIDEO"===s.nodeName)throw this.debug.error("JbPro",`JbPro container type can not be ${s.nodeName} type`),new Error(`JbPro container type can not be ${s.nodeName} type`);if(r.videoBuffer>=r.heartTimeout)throw this.debug.error("JbPro",`JbPro videoBuffer ${r.videoBuffer}s must be less than heartTimeout ${r.heartTimeout}s`),new Error(`JbPro videoBuffer ${r.videoBuffer}s must be less than heartTimeout ${r.heartTimeout}s`);if(s.classList.add("jessibuca-container"),i=s,t=ct(),i&&(i.dataset?i.dataset.jbprov=t:i.setAttribute("data-jbprov",t)),$t(r.isLive)){const e=document.createElement("video");return e.muted=!0,e.setAttribute("controlsList","nodownload"),e.disablePictureInPicture="disablePictureInPicture",e.style.position="absolute",e.style.top=0,e.style.left=0,e.style.height="100%",e.style.width="100%",s.appendChild(e),this.$videoElement=e,this.$container=s,void(this._opt=r)}delete r.container,_t(r.videoBuffer)&&(r.videoBuffer=1e3*Number(r.videoBuffer)),_t(r.videoBufferDelay)&&(r.videoBufferDelay=1e3*Number(r.videoBufferDelay)),_t(r.networkDelay)&&(r.networkDelay=1e3*Number(r.networkDelay)),_t(r.timeout)&&(bt(r.loadingTimeout)&&(r.loadingTimeout=r.timeout),bt(r.heartTimeout)&&(r.heartTimeout=r.timeout)),this._opt=r,this._destroyed=!1,this.$container=s,this._tempPlayBgBase64="",this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.events=new qt(this),this.watermark=new mn(this),this._initPlayer(s,r),this._initWatermark(),this.debug.log("JbPro",'init success and version is "7-18-2023"'),console.log('JbPro version is "7-18-2023"')}destroy(){return new Promise((e,t)=>{this.debug.log("JbPro","destroy()"),this._destroyed=!0,this.off(),this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$container.removeChild(this.$videoElement),this.$videoElement=null),this.player?this.player.destroy().then(()=>{this.player=null,this._destroy(),setTimeout(()=>{e()},0)}).catch(()=>{t()}):(this._destroy(),setTimeout(()=>{e()},0))})}_destroy(){var e;this.events&&(this.events.destroy(),this.events=null),this.talk&&(this.talk.destroy(),this.talk=null),this.watermark&&(this.watermark.destroy(),this.watermark=null),this.$container&&(this.$container.classList.remove("jessibuca-container"),e=this.$container,e&&(e.dataset?delete e.dataset.jbprov:e.removeAttribute("data-jbprov")),this.$container=null),this.debug&&this.debug.log("JbPro","destroy end"),this._resetOpt(),this._tempPlayBgBase64="",this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0}_resetOpt(){this._opt=Ht()}_initPlayer(e,t){this.player=new hn(e,t),this.debug.log("JbPro","_initPlayer",this.player.getOption()),this._bindEvents()}_initTalk(){let e=0{const r=()=>{this._opt.url="",this._opt.playOptions={},this._opt=Object.assign(this._opt,e),this._initPlayer(this.$container,this._opt)};this.player?this.player.destroy().then(()=>{this.player=null,r(),setTimeout(()=>{t()},0)}):(r(),setTimeout(()=>{t()},0))})}_bindEvents(){var e=this;Object.keys(F).forEach(t=>{this.player.on(F[t],(function(){for(var i=arguments.length,r=new Array(i),s=0;s{this.emit(U.close),this.destroy().then(()=>{}).catch(e=>{})}),this.player.on(U.resize,()=>{this.watermark&&this.watermark.resize(),this.player.singleWatermark&&this.player.singleWatermark.resize()}),this.player.on(U.fullscreen,()=>{this.watermark&&this.watermark.resize(),this.player.singleWatermark&&this.player.singleWatermark.resize()}),this.player.on(U.videoInfo,()=>{this.player.singleWatermark&&this.player.singleWatermark.resize()})}_bindTalkEvents(){Object.keys(M).forEach(e=>{this.player.on(M[e],t=>{this.emit(e,t)})})}_initWatermark(){var e;this._opt.fullscreenWatermarkConfig.text=decodeURIComponent("JessibucaPro%20%E4%BD%93%E9%AA%8C"),this._opt.fullscreenWatermarkConfig.color="white",Lt(this._opt.fullscreenWatermarkConfig)&&((e=St(this.$container,this._opt.fullscreenWatermarkConfig)).watermark_txt?this.watermark.load(e):this.debug.warn("JbPro","fullscreenWatermarkConfig text is empty"))}_checkHasCreated(e){return!!e&&(e=e,!(!e||!(e.dataset?e.dataset.jbprov:e.getAttribute("data-jbprov"))))}isDestroyed(){return this._destroyed}getOption(){return this.player?this.player.getOption():{}}setDebug(e){this.debug.log("JbPro","setDebug() "+e),this._opt.debug=!!e,this.player?this.player.updateOption({debug:!!e},!0):this.debug.warn("JbPro","player is not init")}getIsDebug(){let e=!1;return this.player?this.player._opt.debug:e}mute(){this.debug.log("JbPro","mute()"),this.player&&this.player.mute(!0)}cancelMute(){this.debug.log("JbPro","cancelMute()"),this.player&&this.player.mute(!1)}setVolume(e){this.debug.log("JbPro","setVolume() "+e),this.player&&(this.player.volume=e)}getVolume(){let e=null;return this.player&&(e=this.player.volume,e=parseFloat(e).toFixed(2)),e}audioResume(){this.debug.log("JbPro","audioResume()"),this.player&&this.player.audio?this.player.audio.audioEnabled(!0):this.debug.warn("JbPro","audioResume error")}setTimeout(e){this.debug.log("JbPro","setTimeout() "+e),e=Number(e),isNaN(e)?this.debug.warn("JbPro",`setTimeout error: ${e} is not a number`):(this._opt.timeout=e,this._opt.loadingTimeout=e,this._opt.heartTimeout=e,this.player&&this.player.updateOption({timeout:e,loadingTimeout:e,heartTimeout:e}))}setScaleMode(e){this.debug.log("JbPro","setScaleMode() "+e),this.player?this.player.setScaleMode(e):this.debug.warn("JbPro","setScaleMode() player is null")}pause(){let e=0{if(this.debug.log("JbPro","pause() "+e),this._opt.pauseAndNextPlayUseLastFrameShow){const e=this.screenshot("","png",.92,"base64");e&&(this._tempPlayBgBase64=e)}this._pause(e).then(e=>{t(e)}).catch(e=>{i(e)})})}_pause(){let e=0{if(this.debug.log("JbPro","_pause() "+e),this.isDestroyed())return i("JbPro is destroyed");this.player?this.player.pause(e).then(e=>{t(e)}).catch(e=>{i(e)}):i("player is null")})}close(){return new Promise((e,t)=>{this.debug.log("JbPro","close()"),this._opt.url="",this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.player?this.player.close().then(()=>{e()}).catch(e=>{t(e)}):t("player is null")})}clearView(){this.debug.log("JbPro","clearView()"),this.player&&this.player.video?this.getRenderType()===A?this.player.video.clearView():this.debug.warn("JbPro","clearView","render type is video, not support clearView, please use canvas render type"):this.debug.warn("JbPro","clearView","player is null")}play(){let e=0{if(this.debug.log("JbPro","play() "+e),!e&&!this._opt.url)return this.emit(U.error,O.playError),void r("url is null and this._opt.url is null");if(e=e&&(""+e).trim(),$t(this._opt.isLive))return this.$videoElement.controls="controls",this.$videoElement.muted=!1,this.$videoElement.src=e,this.$videoElement.play(),void i(this.$videoElement);if(this._opt.isCrypto){var s,a=t.cryptoKey||this._opt.playOptions.cryptoKey,n=t.cryptoIV||this._opt.playOptions.cryptoIV;if(!a||!n)return s=e||this._opt.url,void this._cryptoPlay(s).then(s=>{var{cryptoIV:s,cryptoKey:a}=s;this._opt.playOptions.cryptoKey=a,this._opt.playOptions.cryptoIV=s,t.cryptoIV=s,t.cryptoKey=a,this._playBefore(e,t).then(()=>{i()}).catch(e=>{r(e)})}).catch(e=>{r(e)});this._opt.playOptions.cryptoKey=a,this._opt.playOptions.cryptoIV=n,t.cryptoIV=n,t.cryptoKey=a}this._playBefore(e,t).then(()=>{i()}).catch(e=>{r(e)})})}_playBefore(e,t){return new Promise((i,r)=>{var s;this.player?e?this._opt.url?e===this._opt.url?this.player.playing?(this.debug.log("JbPro","_playBefore","playing and resolve()"),i()):(this.debug.log("JbPro","_playBefore","this._opt.url === url and pause -> play"),s=this._opt.playOptions,this._opt.pauseAndNextPlayUseLastFrameShow&&this._tempPlayBgBase64&&this.player.updateOption({loadingBackground:this._tempPlayBgBase64}),this.player.play(this._opt.url,s).then(()=>{i(),this.player.resumeAudioAfterPause()}).catch(e=>{this.debug.error("JbPro","_playBefore this.player.play error",e),this.emit(U.crashLog,this.getCrashLog("this.player.play 1",e)),this.player.pause().then(()=>{r(e)})})):(this.debug.log("JbPro","_playBefore",`\n this._url.url is ${this._opt.url}\n and new url is ${e}\n and destroy and play new url`),this._pause().then(()=>{this._resetPlayer().then(()=>{this._play(e,t).then(()=>{i()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(U.crashLog,this.getCrashLog("this.player.play 2",e)),r(e)})}).catch(()=>{})}).catch(e=>{this.debug.error("JbPro","this.player.pause error",e),r(e)})):this._play(e,t).then(()=>{i()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(U.crashLog,this.getCrashLog("this.player.play 3",e)),r(e)}):this.player.play(this._opt.url,this._opt.playOptions).then(()=>{i(),this.player.resumeAudioAfterPause()}).catch(e=>{this.debug.error("JbPro","this.player.play error",e),this.emit(U.crashLog,this.getCrashLog("this.player.play 4",e)),this.player.pause().then(()=>{r(e)})}):e?this._play(e,t).then(()=>{i()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(U.crashLog,this.getCrashLog("this.player.play 5",e)),r(e)}):this._play(this._opt.url,this._opt.playOptions).then(()=>{i()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(U.crashLog,this.getCrashLog("this.player.play 6",e)),r(e)})})}_cryptoPlay(e){return new Promise((t,i)=>{var r,s=function(){const t=(e||document.location.toString()).split("//"),i=t[1].indexOf("/");let r=t[1].substring(i);return-1!=r.indexOf("?")?r.split("?")[0]:r}();let a=this._opt.cryptoKeyUrl,n="";if(a)n=a;else{const t=function(e){const t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");let r=e;return t&&(i.setAttribute("href",r),r=i.href),i.setAttribute("href",r),{origin:i.origin,href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}(e);a=t.origin+"/crypto/",n=a+"?stream="+s}r=n,new Promise((e,t)=>{Cr.get(r).then(t=>{e(t)}).catch(e=>{t(e)})}).then(e=>{if(e){const r=e.split("."),s=zt(r[0]),a=zt(r[1]);a&&s?t({cryptoIV:a,cryptoKey:s}):i("get cryptoIV or cryptoKey error")}else i(`cryptoKeyUrl: getM7SCryptoStreamKey ${n} res is null`)}).catch(e=>{i(e)})})}playback(e){let t=1{if(this.debug.log("JbPro","playback() "+e),$t(this._opt.isLive))return r("this._opt.isLive is false, can not playback");const s=Wt(),a=Object.assign({},s.playbackConfig,this._opt.playbackConfig,t);a.isUseFpsRender||a.isCacheBeforeDecodeForFpsRender&&(a.isCacheBeforeDecodeForFpsRender=!1,this.debug.warn("JbPro","playbackConfig.isUseFpsRender is false, isCacheBeforeDecodeForFpsRender can not be ture, isCacheBeforeDecodeForFpsRender is set to false")),0===a.rateConfig.length&&a.showRateBtn&&(a.showRateBtn=!1,this.debug.warn("JbPro","playbackConfig.rateConfig.length is 0, showRateBtn can not be ture, showRateBtn is set to false")),this._resetPlayer({videoBuffer:0,playbackConfig:a,playType:d,openWebglAlignment:!0,useMSE:!1,useWCS:a.useWCS,useSIMD:!0}).then(()=>{this.play(e).then(()=>{i()}).catch(e=>{r(e)})}).catch(e=>{r(e)})})}playbackPause(){let e=0{if(!this.player)return i("player is null");Kt(e)?this._pause().then(()=>{t()}).catch(e=>{i(e)}):(this.player.playbackPause=!0,t())})}playbackResume(){return this.debug.log("JbPro","playbackResume()"),this._opt.playType===o?Promise.reject("playType is player, can not call playbackResume method"):new Promise((e,t)=>{if(!this.player)return t();this.player.playbackPause=!1,e()})}forward(e){return this.debug.log("JbPro","forward() "+e),$t(this._opt.isLive)||this._opt.playType===o?Promise.reject("forward() method only just for playback type"):ft(Number(e))?new Promise((t,i)=>{this.player?(e=Je(Number(e),.1,32),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"playbackRate",value:e}),this.player.playback.setRate(e),this.player.video&&this.player.video.setRate(e),this.player.audio&&this.player.audio.setRate(e),this.player.isPlaybackUseWCS()&&(this.player.demux.dropBuffer$2(),this.player.isPlaybackCacheBeforeDecodeForFpsRender()&&this.player.demux.initPlaybackCacheLoop()),t()):i("player is not playing")}):Promise.reject(`forward() params "rate": ${e} must be number type`)}playbackForward(e){return this.forward(e)}normal(){return this.forward(1)}playbackNormal(){return this.normal()}updatePlaybackForwardMaxRateDecodeIFrame(e){this.debug.log("JbPro","updatePlaybackForwardMaxRateDecodeIFrame() "+e),e=Number(e),e=Je(e=parseInt(e,10),1,8),this._opt.playbackForwardMaxRateDecodeIFrame=e,this.player?this.player.updateOption({playbackForwardMaxRateDecodeIFrame:e},!0):this.debug.warn("JbPro","updatePlaybackForwardMaxRateDecodeIFrame() player is null")}setPlaybackStartTime(e){this.debug.log("JbPro","setPlaybackStartTime() "+e);var t=Ct(e);this.player?this.player.isPlayback()?t<10&&0!==e?this.debug.warn("JbPro",`timestamp: ${e} is not valid`):this.player.playing&&(10===t&&(e*=1e3),this.player.playback.setStartTime(e),this.playbackClearCacheBuffer()):this.debug.warn("JbPro","playType is not playback"):this.debug.warn("JbPro","player is null")}playbackClearCacheBuffer(){this.debug.log("JbPro","playbackClearCacheBuffer()"),this.player?this.player.isPlayback()?(this.player.video&&this.player.video.clear(),this.player.audio&&this.player.audio.clear(),this.player.decoderWorker.clearWorkBuffer(!0)):this.debug.warn("JbPro","playType is not playback"):this.debug.warn("JbPro","player is null")}getPlaybackCurrentRate(){if(this.player){if(this.player.isPlayback())return this.player.getPlaybackRate();this.debug.warn("JbPro","playType is not playback")}else this.debug.warn("JbPro","player is null")}updatePlaybackLocalOneFrameTimestamp(e){this.debug.log("JbPro","updatePlaybackLocalOneFrameTimestamp() "+e),this.player?this.player.isPlayback()?this.player.playback.updateLocalOneFrameTimestamp(e):this.debug.warn("JbPro","playType is not playback"):this.debug.warn("JbPro","player is null")}setStreamQuality(e){this.debug.log("JbPro","setStreamQuality() "+e),this.player?this.player._opt.operateBtns.quality?(this.player._opt.qualityConfig||[]).includes(e)?this.player.streamQuality=e:this.debug.warn("JbPro",`quality: ${e} is not in qualityList`):this.debug.warn("JbPro","player._opt.operateBtns.quality is false"):this.debug.warn("JbPro","player is null")}_play(){let e=0{if(!this.player)return r("player is null");let s=!1;this._opt.url&&this._opt.url!==e&&(s=!0),this._opt.url=e,this._opt.playOptions=t;var a=0===e.indexOf("http"),n=0===e.indexOf("webrtc"),o=0===e.indexOf("wt"),l=!n&&-1!==e.indexOf(".m3u8"),d=!n&&-1!==e.indexOf(".flv"),h=!n&&-1!==e.indexOf(".fmp4")||!n&&-1!==e.indexOf(".mp4"),c=!n&&-1!==e.indexOf(".mpeg4"),y=!n&&-1!==e.indexOf(".h264")||!n&&-1!==e.indexOf(".h265");if(this._opt.isWebrtcForZLM=!1,this._opt.isWebrtc=!1,this._opt.isFmp4=!1,this._opt.isMpeg4=!1,this._opt.isNakedFlow=!1,this._opt.isHls=!1,n&&-1!==e.indexOf("/index/api/webrtc")&&(this._opt.isWebrtcForZLM=!0),d&&!this._opt.isFlv&&(this._opt.isFlv=!0),h&&!this._opt.isFmp4&&(this._opt.isFmp4=!0),c&&!this._opt.isMpeg4&&(this._opt.isMpeg4=!0),y&&!this._opt.isNakedFlow&&(this._opt.isNakedFlow=!0),h=a?l?3:2:o?5:n?4:1,y=this._opt.isNakedFlow?f:this._opt.isFmp4?m:this._opt.isMpeg4?g:a&&!l||d||this._opt.isFlv?u:l?"hls":n?"webrtc":o?p:"m7s",!h||!y)return r(`play protocol is ${h}, demuxType is `+y);const A=()=>{this.player.once(O.webglAlignmentError,e=>{this.emit(U.crashLog,this.getCrashLog(O.webglAlignmentError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.webglAlignmentErrorReplay){this.debug.log("JbPro","webglAlignmentError");const e=this._opt.url;this._resetPlayer({openWebglAlignment:!0}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","webglAlignmentError and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webglAlignmentError),this.debug.error("JbPro","webglAlignmentError and play error",e)})}).catch(e=>{this.debug.error("JbPro","webglAlignmentError and _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.webglAlignmentError),this.debug.log("JbPro","webglAlignmentError and webglAlignmentErrorReplay is false")}).catch(e=>{this.debug.error("JbPro","webglAlignmentError and pause error",e)})}),this.player.once(O.webglContextLostError,e=>{this.emit(U.crashLog,this.getCrashLog(O.webglContextLostError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.webglContextLostErrorReplay){this.debug.log("JbPro","webglContextLostError");const t=this._opt.url,i={};var e;this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","webglContextLostError and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webglContextLostError),this.debug.error("JbPro","webglContextLostError and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.webglContextLostError),this.debug.error("JbPro","webglContextLostError and _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.webglContextLostError),this.debug.log("JbPro","webglContextLostError and webglContextLostErrorReplay is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webglContextLostError),this.debug.error("JbPro","webglAlignmentError and pause error",e)})}),this.player.once(O.mediaSourceH265NotSupport,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceH265NotSupport,e)),this._pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceH265NotSupport),this.debug.error("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceH265NotSupport),this.debug.error("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.mediaSourceH265NotSupport),this.debug.log("JbPro","mediaSourceH265NotSupport and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceH265NotSupport),this.debug.error("JbPro","mediaSourceH265NotSupport and pause error",e)})}),this.player.once(O.mediaSourceFull,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceFull,e)),this._pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){const t=this._opt.url;let i={};var e;this.player._opt.autoWasm&&(i={useMSE:!1,useWCS:!1}),this.debug.log("JbPro",`mediaSourceFull and auto wasm [mse-> ${this.player._opt.autoWasm?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","mediaSourceFull and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceFull),this.debug.error("JbPro","mediaSourceFull and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceFull),this.debug.error("JbPro","mediaSourceFull and _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.mediaSourceFull),this.debug.log("JbPro","mediaSourceFull and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceFull),this.debug.error("JbPro","mediaSourceFull and pause error",e)})}),this.player.once(O.mediaSourceAppendBufferError,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceAppendBufferError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){const t=this._opt.url;let i={};var e;this.player._opt.autoWasm&&(i={useMSE:!1,useWCS:!1}),this.debug.log("JbPro",`mediaSourceAppendBufferError and auto wasm [mse-> ${this.player._opt.autoWasm?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","mediaSourceAppendBufferError and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferError),this.debug.error("JbPro","mediaSourceAppendBufferError and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferError),this.debug.error("JbPro","mediaSourceAppendBufferError and _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferError),this.debug.log("JbPro","mediaSourceAppendBufferError and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferError),this.debug.error("JbPro","mediaSourceAppendBufferError and pause error",e)})}),this.player.once(O.mediaSourceBufferListLarge,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceBufferListLarge,e)),this._pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){const t=this._opt.url;let i={};var e;this.player._opt.autoWasm&&(i={useMSE:!1,useWCS:!1}),this.debug.log("JbPro",`media source buffer list large and auto wasm [mse-> ${this.player._opt.autoWasm?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","media source buffer list large and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceBufferListLarge),this.debug.error("JbPro","media source buffer list large and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceBufferListLarge),this.debug.error("JbPro","media source buffer list large and _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.mediaSourceBufferListLarge),this.debug.log("JbPro","media source buffer list large and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceBufferListLarge),this.debug.error("JbPro","media source buffer list large and pause error",e)})}),this.player.once(O.mediaSourceAppendBufferEndTimeout,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceAppendBufferEndTimeout,e)),this._pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){const t=this._opt.url;let i={};var e;this.player._opt.autoWasm&&(i={useMSE:!1,useWCS:!1}),this.debug.log("JbPro",`media source append buffer end timeout and auto wasm [mse-> ${this.player._opt.autoWasm?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","media source append buffer end timeout and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferEndTimeout),this.debug.error("JbPro","media source append buffer end timeout and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferEndTimeout),this.debug.error("JbPro","media source append buffer end timeout and _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferEndTimeout),this.debug.log("JbPro","media source append buffer end timeout and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceAppendBufferEndTimeout),this.debug.error("JbPro","media source append buffer end timeout and pause error",e)})}),this.player.once(O.mseSourceBufferError,e=>{this.emit(U.crashLog,this.getCrashLog(O.mseSourceBufferError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){const t=this._opt.url;let i={};var e;this.player._opt.autoWasm&&(i={useMSE:!1,useWCS:!1}),this.debug.log("JbPro",`mseSourceBufferError auto wasm [mse-> ${this.player._opt.autoWasm?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","mseSourceBufferError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mseSourceBufferError),this.debug.error("JbPro","mseSourceBufferError auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mseSourceBufferError),this.debug.error("JbPro","mseSourceBufferError auto wasm [mse-> wasm] _resetPlayer and play error",e)})}else this.emit(U.playFailedAndPaused,O.mseSourceBufferError),this.debug.log("JbPro","mseSourceBufferError and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","mseSourceBufferError and pause error:",e)})}),this.player.once(O.mseAddSourceBufferError,e=>{this.emit(U.crashLog,this.getCrashLog(O.mseAddSourceBufferError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mseAddSourceBufferError),this.debug.error("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mseAddSourceBufferError),this.debug.error("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] _resetPlayer and play error",e)})}else this.emit(U.playFailedAndPaused,O.mseAddSourceBufferError),this.debug.log("JbPro","mseAddSourceBufferError and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mseAddSourceBufferError),this.debug.error("JbPro","mseAddSourceBufferError and pause error",e)})}),this.player.once(O.mediaSourceDecoderConfigurationError,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceDecoderConfigurationError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceDecoderConfigurationError),this.debug.error("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceDecoderConfigurationError),this.debug.error("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] _resetPlayer and play error",e)})}else this.emit(U.playFailedAndPaused,O.mediaSourceDecoderConfigurationError),this.debug.log("JbPro","mediaSourceDecoderConfigurationError and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceDecoderConfigurationError),this.debug.error("JbPro","mediaSourceDecoderConfigurationError and pause error",e)})}),this.player.once(O.mediaSourceTsIsMaxDiff,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceTsIsMaxDiff,e)),this._pause().then(()=>{if(this.player&&this.player._opt.mediaSourceTsIsMaxDiffReplay){this.debug.log("JbPro","mediaSourceTsIsMaxDiff reset player and play");const e=this._opt.url,t={};t.loadingBackground=this.screenshot("","png",.92,"base64"),this._resetPlayer(t).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","mediaSourceTsIsMaxDiff replay success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceTsIsMaxDiff),this.debug.error("JbPro","mediaSourceTsIsMaxDiff replay error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceTsIsMaxDiff),this.debug.error("JbPro","mediaSourceTsIsMaxDiff _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,O.mediaSourceTsIsMaxDiff),this.debug.log("JbPro","mediaSourceTsIsMaxDiff and replay is false")}).catch(e=>{this.debug.error("JbPro","mediaSourceTsIsMaxDiff and pause error",e)})}),this.player.once(O.mseWidthOrHeightChange,e=>{this.emit(U.crashLog,this.getCrashLog(O.mseWidthOrHeightChange,e)),this.debug.log("JbPro","mseWidthOrHeightChange and reset player and play");const t=this._opt.url,i=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:i}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","mseWidthOrHeightChange and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mseWidthOrHeightChange),this.debug.error("JbPro","mseWidthOrHeightChange and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mseWidthOrHeightChange),this.debug.error("JbPro","mseWidthOrHeightChange and _resetPlayer error",e)})}),this.player.once(O.mediaSourceUseCanvasRenderPlayFailed,e=>{this.emit(U.crashLog,this.getCrashLog(O.mediaSourceUseCanvasRenderPlayFailed,e)),this.debug.log("JbPro","mediaSourceUseCanvasRenderPlayFailed and reset player"),this._pause().then(()=>{this._resetPlayer().then(()=>{this.debug.log("JbPro","mediaSourceUseCanvasRenderPlayFailed and reset player success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceUseCanvasRenderPlayFailed),this.debug.error("JbPro","mediaSourceUseCanvasRenderPlayFailed and reset player error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.mediaSourceUseCanvasRenderPlayFailed),this.debug.error("JbPro","mediaSourceUseCanvasRenderPlayFailed and pause",e)})}),this.player.once(O.webcodecsH265NotSupport,e=>{this.emit(U.crashLog,this.getCrashLog(O.webcodecsH265NotSupport,e)),this._pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webcodecsH265NotSupport),this.debug.error("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] _resetPlayer and play error",e)})}else this.emit(U.playFailedAndPaused,O.webcodecsH265NotSupport),this.debug.log("JbPro","webcodecsH265NotSupport and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webcodecsH265NotSupport),this.debug.error("JbPro","webcodecsH265NotSupport and pause error",e)})}),this.player.once(O.webcodecsUnsupportedConfigurationError,e=>{this.emit(U.crashLog,this.getCrashLog(O.webcodecsUnsupportedConfigurationError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webcodecsUnsupportedConfigurationError),this.debug.error("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.webcodecsUnsupportedConfigurationError),this.debug.error("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] _resetPlayer and play error",e)})}else this.emit(U.playFailedAndPaused,O.webcodecsUnsupportedConfigurationError),this.debug.log("Jessibuca","webcodecsUnsupportedConfigurationError and autoWasm is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webcodecsUnsupportedConfigurationError),this.debug.error("Jessibuca","webcodecsUnsupportedConfigurationError and pause error",e)})}),this.player.once(O.webcodecsDecodeError,e=>{this.emit(U.crashLog,this.getCrashLog(O.webcodecsDecodeError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.wcsDecodeErrorReplay){const t=this._opt.url;let i={};var e;this.player._opt.autoWasm&&(i={useMSE:!1,useWCS:!1}),this.debug.log("JbPro",`webcodecs decode error autoWasm [wcs-> ${this.player._opt.autoWasm?"wasm":"wcs"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","webcodecs decode error reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.webcodecsDecodeError),this.debug.error("JbPro","webcodecs decode error reset player and play error",e)})}).catch(()=>{this.emit(U.playFailedAndPaused,O.webcodecsDecodeError),this.debug.error("JbPro","webcodecs decode error _resetPlayer error")})}else this.emit(U.playFailedAndPaused,O.webcodecsDecodeError),this.debug.log("JbPro","webcodecs decode error and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","webcodecs decode error and pause error",e)})}),this.player.once(O.wcsWidthOrHeightChange,e=>{this.emit(U.crashLog,this.getCrashLog(O.wcsWidthOrHeightChange,e)),this.debug.log("JbPro","wcsWidthOrHeightChange and reset player and play");const t=this._opt.url,i=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:i}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wcsWidthOrHeightChange and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.wcsWidthOrHeightChange),this.debug.error("JbPro","wcsWidthOrHeightChange and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.wcsWidthOrHeightChange),this.debug.error("JbPro","wcsWidthOrHeightChange and _resetPlayer error",e)})}),this.player.once(O.wasmDecodeError,e=>{this.emit(U.crashLog,this.getCrashLog(O.wasmDecodeError,e)),this._pause().then(()=>{if(this.player&&this.player._opt.wasmDecodeErrorReplay){this.debug.log("JbPro","wasm decode error and reset player and play");const t=this._opt.url,i={};var e;this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasm decode error and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.wasmDecodeError),this.debug.error("JbPro","wasm decode error and reset player and play error",e)})}).catch(()=>{this.emit(U.playFailedAndPaused,O.wasmDecodeError),this.debug.error("JbPro","wasm decode error and _resetPlayer error")})}else this.emit(U.playFailedAndPaused,O.wasmDecodeError),this.debug.log("JbPro","wasm decode error and wasmDecodeErrorReplay is false")}).catch(e=>{this.emit(U.playFailedAndPaused,O.wasmDecodeError),this.debug.error("JbPro","wasm decode error and pause error",e)})}),this.player.once(O.simdDecodeError,e=>{this.emit(U.crashLog,this.getCrashLog(O.simdDecodeError,e)),this.debug.log("JbPro","simdDecodeError error and reset player and play");const t=this._opt.url,i=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:i}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","simdDecodeError and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.simdDecodeError),this.debug.error("JbPro","simdDecodeError and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.simdDecodeError),this.debug.error("JbPro","simdDecodeError and _resetPlayer error",e)})}),this.player.once(O.wasmWidthOrHeightChange,e=>{this.emit(U.crashLog,this.getCrashLog(O.wasmWidthOrHeightChange,e)),this.debug.log("JbPro","wasmWidthOrHeightChange and reset player and play");const t=this._opt.url,i=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:i}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasmWidthOrHeightChange and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.wasmWidthOrHeightChange),this.debug.error("JbPro","wasmWidthOrHeightChange and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.wasmWidthOrHeightChange),this.debug.error("JbPro","wasmWidthOrHeightChange and _resetPlayer error",e)})}),this.player.once(O.wasmUseVideoRenderError,e=>{this.emit(U.crashLog,this.getCrashLog(O.wasmUseVideoRenderError,e)),this.debug.log("JbPro","wasmUseVideoRenderError and reset player and play");const t=this._opt.url;this._resetPlayer({useVideoRender:!1,useCanvasRender:!0}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasmUseVideoRenderError and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.wasmUseVideoRenderError),this.debug.error("JbPro","wasmUseVideoRenderError and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.wasmUseVideoRenderError),this.debug.error("JbPro","wasmUseVideoRenderError and _resetPlayer error",e)})}),this.player.once(O.videoElementPlayingFailed,e=>{this.emit(U.crashLog,this.getCrashLog(O.videoElementPlayingFailed,e)),this.debug.log("JbPro","videoElementPlayingFailed and reset player and play");const t=this._opt.url;this._resetPlayer({useVideoRender:!1,useCanvasRender:!0}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","videoElementPlayingFailed and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.videoElementPlayingFailed),this.debug.error("JbPro","videoElementPlayingFailed and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.videoElementPlayingFailed),this.debug.error("JbPro","videoElementPlayingFailed and _resetPlayer error",e)})}),this.player.once(O.simdH264DecodeVideoWidthIsTooLarge,e=>{this.emit(U.crashLog,this.getCrashLog(O.simdH264DecodeVideoWidthIsTooLarge,e)),this._pause().then(()=>{this.debug.log("JbPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play");const e=this._opt.url;this._resetPlayer({useSIMD:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,O.simdH264DecodeVideoWidthIsTooLarge),this.debug.error("JbPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.simdH264DecodeVideoWidthIsTooLarge),this.debug.error("JbPro","simdH264DecodeVideoWidthIsTooLarge and _resetPlayer error",e)})}).catch(e=>{this.debug.error("JbPro","simdH264DecodeVideoWidthIsTooLarge and pause error",e)})}),this.player.once(U.networkDelayTimeout,e=>{if(this.player._opt.networkDelayTimeoutReplay){this.emit(U.crashLog,this.getCrashLog(U.networkDelayTimeout,e)),this.debug.log("JbPro","network delay time out and reset player and play");const t=this._opt.url,i={};if(this.player&&this.player._opt.replayUseLastFrameShow){const e=this.screenshot("","png",.92,"base64");i.loadingBackground=e}this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasm decode error and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,U.networkDelayTimeout),this.debug.error("JbPro","wasm decode error and reset player and play error",e)})}).catch(()=>{this.emit(U.playFailedAndPaused,U.networkDelayTimeout),this.debug.error("JbPro","wasm decode error and _resetPlayer error")})}}),this.player.once(O.fetchError,e=>{this.emit(U.crashLog,this.getCrashLog(O.fetchError,e)),this.debug.log("JbPro","fetch error and reset player"),this._pause().then(()=>{this._resetPlayer().then(()=>{this.emit(U.playFailedAndPaused,O.fetchError)}).catch(()=>{this.emit(U.playFailedAndPaused,O.fetchError)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.fetchError),this.debug.error("JbPro","fetch error and pause",e)})}),this.player.once(U.streamEnd,e=>{this.emit(U.crashLog,this.getCrashLog(U.streamEnd,e)),this.debug.log("JbPro","streamEnd reset player"),this._pause().then(()=>{this._resetPlayer().then(()=>{this.emit(U.playFailedAndPaused,U.streamEnd)}).catch(()=>{this.emit(U.playFailedAndPaused,U.streamEnd)})}).catch(e=>{this.emit(U.playFailedAndPaused,U.streamEnd),this.debug.error("JbPro","streamEnd pause",e)})}),this.player.once(O.websocketError,e=>{this.emit(U.crashLog,this.getCrashLog(O.websocketError,e)),this.debug.log("JbPro","websocketError and reset player"),this._pause().then(()=>{this._resetPlayer().then(()=>{this.emit(U.playFailedAndPaused,O.websocketError)}).catch(()=>{this.emit(U.playFailedAndPaused,O.websocketError)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.websocketError),this.debug.error("JbPro","websocketError and pause",e)})}),this.player.once(O.webrtcError,e=>{this.emit(U.crashLog,this.getCrashLog(O.webrtcError,e)),this.debug.log("JbPro","webrtcError and reset player"),this._pause().then(()=>{this._resetPlayer().then(()=>{this.emit(U.playFailedAndPaused,O.webrtcError)}).catch(()=>{this.emit(U.playFailedAndPaused,O.webrtcError)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.webrtcError),this.debug.error("JbPro","webrtcError and pause",e)})}),this.player.once(O.hlsError,e=>{this.emit(U.crashLog,this.getCrashLog(O.hlsError,e)),this.debug.log("JbPro","hlsError and reset player"),this._pause().then(()=>{this._resetPlayer().then(()=>{this.emit(U.playFailedAndPaused,O.hlsError)}).catch(()=>{this.emit(U.playFailedAndPaused,O.hlsError)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.hlsError),this.debug.error("JbPro","hlsError and pause",e)})}),this.player.once(O.videoElementPlayingFailedForWebrtc,e=>{this.emit(U.crashLog,this.getCrashLog(O.videoElementPlayingFailedForWebrtc,e)),this.debug.log("JbPro","videoElementPlayingFailedForWebrtc and reset player"),this._pause().then(()=>{this._resetPlayer().then(()=>{this.emit(U.playFailedAndPaused,O.videoElementPlayingFailedForWebrtc)}).catch(()=>{this.emit(U.playFailedAndPaused,O.videoElementPlayingFailedForWebrtc)})}).catch(e=>{this.emit(U.playFailedAndPaused,O.videoElementPlayingFailedForWebrtc),this.debug.error("JbPro","videoElementPlayingFailedForWebrtc and pause",e)})}),this.player.once(U.webrtcStreamH265,e=>{this.debug.log("JbPro","webrtcStreamH265 and reset player and play");const t=this._opt.url;this._resetPlayer({isWebrtcH265:!0}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","webrtcStreamH265 and reset player and play success")}).catch(e=>{this.emit(U.playFailedAndPaused,U.webrtcStreamH265),this.debug.error("JbPro","webrtcStreamH265 and reset player and play error",e)})}).catch(()=>{this.emit(U.playFailedAndPaused,U.webrtcStreamH265),this.debug.error("JbPro","webrtcStreamH265 and _resetPlayer error")})}),this.player.on(U.delayTimeout,e=>{this.emit(U.crashLog,this.getCrashLog(U.delayTimeout,e)),this.isDestroyed()?this.debug.log("JbPro","delay timeout but player is destroyed"):this._pause().then(()=>{if(this.player&&this.player._opt.heartTimeoutReplay&&(this._heartTimeoutReplayTimes{this.play(e).then(()=>{}).catch(e=>{this.emit(U.playFailedAndPaused,U.delayTimeout),this.debug.error("JbPro","delay timeout replay error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,U.delayTimeout),this.debug.error("JbPro","delay timeout _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,U.delayTimeout),this.player&&this.player.emit(U.delayTimeoutRetryEnd),this.debug.warn("JbPro",`delayTimeoutRetryEnd and\n opt.heartTimeout is ${this.player&&this.player._opt.heartTimeout} and\n opt.heartTimeoutReplay is ${this.player&&this.player._opt.heartTimeoutReplay} and\n opt.heartTimeoutReplayTimes is ${this.player&&this.player._opt.heartTimeoutReplayTimes},and\n local._heartTimeoutReplayTimes is `+this._heartTimeoutReplayTimes)}).catch(e=>{this.emit(U.playFailedAndPaused,U.delayTimeout),this.debug.error("JbPro","delay timeout and pause error",e)})}),this.player.on(U.loadingTimeout,e=>{this.emit(U.crashLog,this.getCrashLog(U.loadingTimeout,e)),this.isDestroyed()?this.debug.log("JbPro","loading timeout but player is destroyed"):this._pause().then(()=>{if(this.player&&this.player._opt.loadingTimeoutReplay&&(this._loadingTimeoutReplayTimes{this.play(e).then(()=>{}).catch(e=>{this.emit(U.playFailedAndPaused,U.loadingTimeout),this.debug.error("JbPro","loading timeout replay error",e)})}).catch(e=>{this.emit(U.playFailedAndPaused,U.loadingTimeout),this.debug.error("JbPro","loading timeout _resetPlayer error",e)})}else this.emit(U.playFailedAndPaused,U.loadingTimeout),this.player&&this.player.emit(U.loadingTimeoutRetryEnd),this.debug.log("JbPro",`loadingTimeoutRetryEnd and\n opt.loadingTimeout is ${this.player&&this.player._opt.loadingTimeout} and\n opt.loadingTimeoutReplay is ${this.player&&this.player._opt.loadingTimeoutReplay} and\n local._loadingTimeoutReplayTimes time is ${this._loadingTimeoutReplayTimes} and\n opt.loadingTimeoutReplayTimes is `+(this.player&&this.player._opt.loadingTimeoutReplayTimes))}).catch(e=>{this.emit(U.playFailedAndPaused,U.loadingTimeout),this.debug.error("JbPro","loading timeout and pause error",e)})}),this._hasLoaded()?this.player.play(e,t).then(()=>{i()}).catch(e=>{this.debug.error("JbPro","_hasLoaded() and play error",e),this.emit(U.crashLog,this.getCrashLog("_hasLoaded() and play error",e)),this.player.pause().then(()=>{r(e)}).catch(e=>{r(e),this.debug.error("JbPro","_hasLoaded() and play error and next pause error",e)})}):this.player.once(U.decoderWorkerInit,()=>{this.player.play(e,t).then(()=>{i()}).catch(e=>{this.debug.error("JbPro","decoderWorkerInit and play error",e),this.emit(U.crashLog,this.getCrashLog("decoderWorkerInit and play error",e)),this.player&&this.player.pause().then(()=>{r(e)}).catch(e=>{r(e),this.debug.error("JbPro","decoderWorkerInit and play error and next pause error",e)})})})};l&&$t(this._opt.supportHls265)||n&&$t(this._opt.isWebrtcH265)||s||c?(this.debug.log("JbPro","need reset player"),this._resetPlayer({protocol:h,demuxType:y,isHls:l,isWebrtc:n,url:e}).then(()=>{A()}).catch(e=>{r("reset player error")})):(this.player.updateOption({protocol:h,demuxType:y,isHls:l,isWebrtc:n,isFlv:this._opt.isFlv,isFmp4:this._opt.isFmp4,isMpeg4:this._opt.isMpeg4,isNakedFlow:this._opt.isNakedFlow,cryptoKey:t.cryptoKey||"",cryptoIV:t.cryptoIV||""}),t.cryptoKey&&t.cryptoIV&&(this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"cryptoKey",value:t.cryptoKey}),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"cryptoIV",value:t.cryptoIV})),A())})}resize(){this.debug.log("JbPro","resize()"),this.player&&this.player.resize()}setBufferTime(e){this.debug.log("JbPro","setBufferTime() "+e),10<(e=Number(e))&&this.debug.warn("JbPro",`setBufferTime() buffer time is ${e} second, is too large, video will show blank screen until cache ${e} second buffer data`),e*=1e3,this._opt.videoBuffer=e,this.player?this.player.updateOption({videoBuffer:e},!0):this.debug.warn("JbPro","setBufferTime() player is null")}setBufferDelayTime(e){this.debug.log("JbPro","setBufferDelayTime() "+e),(e=Number(e))<.2&&this.debug.warn("JbPro",`setBufferDelayTime() buffer time delay is ${e} second, is too small`),e=1e3*(e=Je(e,.2,100)),this._opt.videoBufferDelay=e,this.player?this.player.updateOption({videoBufferDelay:e},!0):this.debug.warn("JbPro","setBufferDelayTime() player is null")}setRotate(e){this.debug.log("JbPro","setRotate() "+e),e=parseInt(e,10),this._opt.rotate!==e&&-1!==[0,90,180,270].indexOf(e)?(this._opt.rotate=e,this.player?(this.player.updateOption({rotate:e}),this.resize()):this.debug.warn("JbPro","setRotate() player is null")):this.debug.warn("JbPro",`setRotate() rotate is ${e} and this._opt.rotate is `+this._opt.rotate)}setMirrorRotate(e){this.debug.log("JbPro","setMirrorRotate() "+e),this._opt.mirrorRotate!==e&&-1!==["none","level","vertical"].indexOf(e)?(this._opt.mirrorRotate=e,this.player?(this.player.updateOption({mirrorRotate:e}),this.resize()):this.debug.warn("JbPro","setMirrorRotate() player is null")):this.debug.warn("JbPro",`setMirrorRotate() mirrorRotate is ${e} and this._opt.mirrorRotate is `+this._opt.mirrorRotate)}hasLoaded(){return!0}_hasLoaded(){return this.player&&this.player.loaded||!1}setKeepScreenOn(){this.debug.log("JbPro","setKeepScreenOn()"),this._opt.keepScreenOn=!0,this.player?this.player.updateOption({keepScreenOn:!0}):this.debug.warn("JbPro","setKeepScreenOn() player is not ready")}setFullscreen(e){this.debug.log("JbPro","setFullscreen() "+e),e=!!e,this.player?this.player.fullscreen!==e&&(this.player.fullscreen=e):this.debug.warn("JbPro","setFullscreen() player is not ready")}screenshot(e,t,i,r){return this.debug.log("JbPro",`screenshot() ${e} ${t} ${i} `+r),this.player&&this.player.video?this.player.video.screenshot(e,t,i,r):(this.debug.warn("JbPro","screenshot() player is not ready"),null)}screenshotWatermark(e){return new Promise((t,i)=>{this.debug.log("JbPro","screenshotWatermark()",e),this.player&&this.player.video?this.player.video.screenshotWatermark(e).then(e=>{t(e)}).catch(e=>{i(e)}):(this.debug.warn("JbPro","screenshotWatermark() player is not ready"),i("player is not ready"))})}startRecord(e,t){return new Promise((i,r)=>{if(this.debug.log("JbPro",`startRecord() ${e} `+t),!this.player)return this.debug.warn("JbPro","startRecord() player is not ready"),r("player is not ready");this.player.playing?(this.player.startRecord(e,t),i()):(this.debug.warn("JbPro","startRecord() player is not playing"),r("not playing"))})}stopRecordAndSave(e,t){return new Promise((i,r)=>{this.debug.log("JbPro",`stopRecordAndSave() ${e} `+t),this.player&&this.player.recording?this.player.stopRecordAndSave(e,t).then(e=>{i(e)}).catch(e=>{r(e)}):r("not recording")})}isPlaying(){let e=!1;return this.player&&(this._opt.playType===o?e=this.player.playing:this._opt.playType===d&&(e=$t(this.player.playbackPause)&&this.player.playing)),e}isLoading(){return!!this.player&&this.player.loading}isPause(){let e=!1;return this._opt.playType===o?e=!this.isPlaying()&&!this.isLoading():this._opt.playType===d&&this.player&&(e=this.player.playbackPause),e}isPaused(){return this.isPause()}isPlaybackPause(){let e=!1;return this._opt.playType===d&&this.player?this.player.playbackPause:e}isMute(){let e=!0;return this.player?this.player.isAudioMute():e}isRecording(){return this.player&&this.player.recorder&&this.player.recorder.recording||!1}clearBufferDelay(){this.debug.log("JbPro","clearBufferDelay()"),this.player?this.player.clearBufferDelay():this.debug.warn("JbPro","clearBufferDelay() player is not init")}setNetworkDelayTime(e){this.debug.log("JbPro","setNetworkDelayTime() "+e),(e=Number(e))<1&&this.debug.warn("JbPro",`setNetworkDelayTime() network delay is ${e} second, is too small`),e=1e3*(e=Je(e,1,100)),this._opt.networkDelay=e,this.player?this.player.updateOption({networkDelay:e},!0):this.debug.warn("JbPro","setNetworkDelayTime() player is null")}getDecodeType(){let e="";return this.player?this.player.getDecodeType():e}getRenderType(){let e="";return this.player?this.player.getRenderType():e}getAudioEngineType(){let e="";return this.player?this.player.getAudioEngineType():e}getPlayingTimestamp(){let e=0;return this.player?this.player.getPlayingTimestamp():e}getStatus(){let e="destroy";return this.player?this.player.loading?"loading":this.player.playing?"playing":"paused":e}getPlayType(){return this.player?this.player._opt.playType:o}togglePerformancePanel(e){this.debug.log("JbPro","togglePerformancePanel() "+e);var t=this.player._opt.showPerformance;let i=!t;(i=vt(e)?e:i)!==t?this.player?this.player.togglePerformancePanel(i):this.debug.warn("JbPro","togglePerformancePanel() failed, this.player is not init"):this.debug.warn("JbPro",`togglePerformancePanel() failed, showPerformance is prev: ${t} === now: `+i)}openZoom(){this.debug.log("JbPro","openZoom()"),this.player?this.player.zooming=!0:this.debug.warn("JbPro","openZoom() failed, this.player is not init")}closeZoom(){this.debug.log("JbPro","closeZoom()"),this.player?this.player.zooming=!1:this.debug.warn("JbPro","closeZoom() failed, this.player is not init")}isZoomOpen(){let e=!1;return this.player?this.player.zooming:e}expandZoom(){this.debug.log("JbPro","expandZoom()"),this.player&&this.player.zoom&&this.player.zooming?this.player.zoom.expandPrecision():this.debug.warn("JbPro","expandZoom() failed, zoom is not open or not init")}narrowZoom(){this.debug.log("JbPro","narrowZoom()"),this.player&&this.player.zoom&&this.player.zooming?this.player.zoom.narrowPrecision():this.debug.warn("JbPro","narrowZoom failed, zoom is not open or not init")}getCurrentZoomIndex(){let e=1;return this.player&&this.player.zoom?this.player.zoom.currentZoom:e}startTalk(e){let t=1{this.debug.log("JbPro","startTalk()",e,t),this._initTalk(t),this.talk.startTalk(e).then(()=>{i(),this.talk.once(U.talkStreamClose,()=>{this.debug.warn("JbPro","talk stream close"),this.stopTalk().catch(e=>{})}),this.talk.once(U.talkStreamError,e=>{this.debug.warn("JbPro","talk stream error",e),this.stopTalk().catch(e=>{})}),this.talk.once(U.talkStreamInactive,()=>{this.debug.warn("JbPro","talk stream inactive"),this.stopTalk().catch(e=>{})})}).catch(e=>{r(e)})})}stopTalk(){return new Promise((e,t)=>{if(this.debug.log("JbPro","stopTalk()"),!this.talk)return t("stopTalk() talk is not init");this.talk.destroy(),e()})}getTalkVolume(){return new Promise((e,t)=>{if(!this.talk)return t("getTalkVolume() talk is not init");e(this.talk.volume)})}setTalkVolume(e){return new Promise((t,i)=>{if(this.debug.log("JbPro","setTalkVolume()",e),!this.talk)return i("setTalkVolume() talk is not init");this.talk.setVolume(e/100),t()})}setNakedFlowFps(e){return new Promise((t,i)=>{if(this.debug.log("JbPro","setNakedFlowFps()",e),bt(e))return i("setNakedFlowFps() fps is empty");i=Je(Number(e),1,100),this._opt.nakedFlowFps=i,this.player?this.player.updateOption({nakedFlowFps:i}):this.debug.warn("JbPro","setNakedFlowFps() player is null"),t()})}getCrashLog(e){var t=1{this.player?(this.player.downloadNakedFlowFile(),e()):t("player is not init")})}downloadTempFmp4File(){return new Promise((e,t)=>{this.player?(this.player.downloadFmp4File(),e()):t("player is not init")})}downloadTempMpeg4File(){return new Promise((e,t)=>{this.player?(this.player.downloadMpeg4File(),e()):t("player is not init")})}downloadTempRtpFile(){return new Promise((e,t)=>{this.talk?(this.talk.downloadRtpFile(),e()):t("talk is not init")})}}gn.ERROR=O,gn.EVENTS=F,window.JessibucaPro=gn,window.WebPlayerPro=gn;class yn extends r{constructor(){let e=0{if(void 0===e[t])throw new Error(`Jessibuca-pro-multi option "${t}" can not be undefined`)});var t=Gt(De);this._opt=Object.assign({},t,e),this.LOG_TAG="jessibucaProMulti";let i=e.container;if(!(i="string"==typeof e.container?document.querySelector(e.container):i))throw new Error("Jessibuca-pro-multi need container option");if("CANVAS"===i.nodeName||"VIDEO"===i.nodeName)throw new Error(`Jessibuca-pro-multi container type can not be ${i.nodeName} type`);i.classList.add("jessibuca-multi-container"),this.maxWindowSize=this._opt.maxSplit*this._opt.maxSplit,this.currentWindowIndex=-1,this.specialLayoutType=null,this.windowList=[],this.$container=i,this.debug=new Fe(this),this.events=new qt(this),this._initWindows(),this._initEvents(),this._handleWindowSelect(0),this._listenFullscreenChange()}destroy(){return new Promise((e,t)=>{if(this.debug.log(this.LOG_TAG,"destroy()"),this.off(),this.events&&(this.events.destroy(),this.events=null),this.specialLayoutType=null,this.windowList){const i=[];this.windowList.forEach(e=>{e.$playerContainerEvents.forEach(e=>{e()}),e.player&&i.push(e.player.destroy())}),Promise.all(i).then(()=>{this.windowList.forEach(e=>{e.player=null}),this.windowList=[],e()}).catch(e=>{t(e)})}else e();this.debug&&this.debug.log(this.LOG_TAG,"destroy")})}_createPlayer(e){const t=this._findWindowItemIndex(e),i=this._opt,r=(i.supportDblclickContainerFullscreen&&(i.supportDblclickFullscreen=!1),new gn({...i,isMulti:!0,container:e.$player}));return Object.keys(F).forEach(e=>{r.on(F[e],i=>{this.emit(e,t,i)})}),r.on(U.close,()=>{this.emit(U.close,t),e.player=null}),r}_initWindows(){const e=this._getContainerRect(),t=e.width,i=e.height;let r="";var s,a,n,o,l=this._opt.split,d=t%l,h=i%l,c=(t-d-2*l)/l,u=(i-h-2*l)/l,p=(t-d)/l,f=(i-h)/l;for(let y=0;y=Math.pow(l,2)?h:0),n=p+(y%l==l-1?d:0),o=f+(y+l>=Math.pow(l,2)?h:0),r+=`\n
\n
\n
\n
\n `;var m=`
${r}
`,g=(this.$container.innerHTML=m,this.$container.querySelectorAll(".jessibuca-multi-player"));for(let y=0;y{var r=t.$playerContainer,s=e(r,"click",()=>{this.emit(Re.selected,i),this.getSelectedWindowIndex()===i&&this.windowList[i].isContainerFullscreen||1!==this._opt.split&&this._handleWindowSelect(i)}),a=e(r,"dblclick",()=>{this.emit(Re.dblSelected,i),this._opt.supportDblclickContainerFullscreen&&1!==this._opt.split&&this._handleWindowContainerFullscreen(i)}),n=e(r,"mouseup",()=>{this.emit(Re.mouseUp,i)}),o=e(r,"mouseover",()=>{this.emit(Re.mouseOver,i)});r=e(r,"mouseout",()=>{this.emit(Re.mouseOut,i)});t.$playerContainerEvents=[s,n,o,r,a]})}_getContainerRect(){var e=this.$container.getBoundingClientRect();return{width:Math.max(e.width,this.$container.clientWidth),height:Math.max(e.height,this.$container.clientHeight)}}_updateWindows(){const e=this._getContainerRect(),t=e.width,i=e.height,r=this._opt.split,s=t%r,a=i%r,n=(t-s-2*r)/r,o=(i-a-2*r)/r,l=(t-s)/r,d=(i-a)/r;let h=this._getCurrentMaxSplit();for(let c=0;c=Math.pow(r,2)?a:0),f=l+(c%r==r-1?s:0),m=d+(c+r>=Math.pow(r,2)?a:0);t.style.width=f+"px",t.style.height=m+"px",t.style.display="block",h.style.width=u+"px",h.style.height=p+"px",h.style.display="block",i.style.width=u+"px",i.style.height=p+"px",i.style.display="block",e.player&&e.player.resize()}if(this.specialLayoutType){const e=this.windowList[0],t=e.$playerContainer,i=e.$player,r=e.$playerBorder,s=t.style.width.replace("px",""),a=t.style.height.replace("px",""),n=i.style.width.replace("px",""),o=i.style.height.replace("px","");let l,d,c,u;this.specialLayoutType===Ie?(l=2*s,d=2*a,c=2*n+2,u=2*o+2):this.specialLayoutType===Pe&&(l=3*s,d=3*a,c=3*n+4,u=3*o+4),t.style.width=l+"px",t.style.height=d+"px",i.style.width=c+"px",i.style.height=u+"px",r.style.width=c+"px",r.style.height=u+"px",e.player&&e.player.resize(),h=this._getSpecialMaxSplit()}for(let c=h;c{t.$playerBorder.style.display="block",e.$playerBorder.style.border="1px solid "+this._opt.style.border}),t.$playerBorder.style.border="1px solid "+this._opt.style.borderSelect)):this.debug.warn(this.LOG_TAG,`_handleWindowSelect() ${e} is not exist`),1===this._opt.split&&(t.$playerBorder.style.display="none")}_handleWindowContainerFullscreen(e){const t=this.windowList[e];if(t){if(t.isContainerFullscreen)t.$playerContainer.style.position="relative",t.$playerContainer.style.left="auto",t.$playerContainer.style.top="auto",t.$playerContainer.style.zIndex="auto",t.$playerContainer.style.width=t.prevInfo.playerContainerWidth,t.$playerContainer.style.height=t.prevInfo.playerContainerHeight,t.$player.style.width=t.prevInfo.playerWidth,t.$player.style.height=t.prevInfo.playerHeight,this.getSelectedWindowIndex()===e&&(t.$playerBorder.style.display="block");else{const e=this._getContainerRect(),i=e.width,r=e.height;t.prevInfo={playerContainerWidth:t.$playerContainer.style.width,playerContainerHeight:t.$playerContainer.style.height,playerWidth:t.$player.style.width,playerHeight:t.$player.style.height},t.$playerContainer.style.position="absolute",t.$playerContainer.style.top="0",t.$playerContainer.style.left="0",t.$playerContainer.style.zIndex="10",t.$playerContainer.style.width=i+"px",t.$playerContainer.style.height=r+"px",t.$player.style.width=i+"px",t.$player.style.height=r+"px",t.$playerBorder.style.display="none"}t.isContainerFullscreen=!t.isContainerFullscreen,t.player&&t.player.resize()}else this.debug.warn(this.LOG_TAG,`handleWindowContainerFullscreen() ${e} is not exist`)}_handleFullscreenResize(){let e=this._getContainerRect(),t=0;const i=setInterval(()=>{var r=this._getContainerRect();if(r.width===e.width&&r.height===e.height&&4{It(e)===this.$container&&(this.emit(F.fullscreen,je.isFullscreen),je.isFullscreen?this._handleFullscreenResize():this.resize())};je.on("change",e),this.events.destroys.push(()=>{je.off("change",e)})}catch(r){}}play(e,t,i){return new Promise((r,s)=>{ft(t)&&(i=t,t={});const a=()=>{const i=this._createPlayer(o);(o.player=i).play(e,t).then(()=>{r()}).catch(e=>{s(e)})};var n=ft(i)?i:this.currentWindowIndex;const o=this.windowList[n];o?o.player?o.player.destroy().then(()=>{o.player=null,a()}).catch(()=>{}):a():s(`play() windowIndex ${n} is not exist`)})}getOption(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getOption():(this.debug.warn(this.LOG_TAG,`getOption() windowIndex ${e} is not exist`),{})}setDebug(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setDebug(e):this.debug.warn(this.LOG_TAG,`setDebug() windowIndex ${t} is not exist`)}mute(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.mute():this.debug.warn(this.LOG_TAG,`mute() windowIndex ${e} is not exist`)}cancelMute(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.cancelMute():this.debug.warn(this.LOG_TAG,`cancelMute() windowIndex ${e} is not exist`)}setVolume(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setVolume(e):this.debug.warn(this.LOG_TAG,`setVolume() windowIndex ${t} is not exist`)}audioResume(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.audioResume():this.debug.warn(this.LOG_TAG,`audioResume() windowIndex ${e} is not exist`)}setTimeout(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setTimeout(e):this.debug.warn(this.LOG_TAG,`setTimeout() windowIndex ${t} is not exist`)}setScaleMode(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setScaleMode(e):this.debug.warn(this.LOG_TAG,`setScaleMode() windowIndex ${t} is not exist`)}pause(){let e=0{t=ft(t)?t:this.currentWindowIndex;const s=this.windowList[t];s&&s.player?s.player.pause(e).then(()=>{i()}).catch(e=>{r(e)}):r(`pause() windowIndex ${t} is not exist`)})}close(e){return new Promise((t,i)=>{e=ft(e)?e:this.currentWindowIndex;const r=this.windowList[e];r&&r.player?r.player.close().then(()=>{t()}).catch(e=>{i(e)}):i(`close() windowIndex ${e} is not exist`)})}clearView(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.clearView():this.debug.warn(this.LOG_TAG,`clearView() windowIndex ${e} is not exist`)}setStreamQuality(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setStreamQuality(e):this.debug.warn(this.LOG_TAG,`setStreamQuality() windowIndex ${t} is not exist`)}resize(){this._updateWindows()}setBufferTime(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setBufferTime(e):this.debug.warn(this.LOG_TAG,`setBufferTime() windowIndex ${t} is not exist`)}setBufferDelayTime(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setBufferDelayTime(e):this.debug.warn(this.LOG_TAG,`setBufferDelayTime() windowIndex ${t} is not exist`)}setRotate(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setRotate(e):this.debug.warn(this.LOG_TAG,`setRotate() windowIndex ${t} is not exist`)}setMirrorRotate(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setMirrorRotate(e):this.debug.warn(this.LOG_TAG,`setMirrorRotate() windowIndex ${t} is not exist`)}hasLoaded(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return!(!t||!t.player)&&t.player.hasLoaded()}setKeepScreenOn(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.setKeepScreenOn():this.debug.warn(this.LOG_TAG,`setKeepScreenOn() windowIndex ${e} is not exist`)}setFullscreen(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setFullscreen(e):this.debug.warn(this.LOG_TAG,`setFullscreen() windowIndex ${t} is not exist`)}screenshot(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];return i&&i.player?i.player.screenshot(e.filename,e.format,e.quality,e.type):null}screenshotWatermark(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];return i&&i.player?i.player.screenshotWatermark(e):null}startRecord(e,t,i){return new Promise((r,s)=>{i=ft(i)?i:this.currentWindowIndex;const a=this.windowList[i];a&&a.player?a.player.startRecord(e,t).then(()=>{r()}).catch(e=>{s(e)}):(this.debug.warn(this.LOG_TAG,`startRecord() windowIndex ${i} is not exist`),s(`windowIndex ${i} is not exist`))})}stopRecordAndSave(e,t,i){return new Promise((r,s)=>{i=ft(i)?i:this.currentWindowIndex;const a=this.windowList[i];a&&a.player?a.player.stopRecordAndSave(e,t).then(e=>{r(e)}).catch(e=>{s(e)}):(this.debug.warn(this.LOG_TAG,`stopRecordAndSave() windowIndex ${i} is not exist`),s(`windowIndex ${i} is not exist`))})}isPlaying(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.isPlaying():(this.debug.warn(this.LOG_TAG,`isPlaying() windowIndex ${e} is not exist`),!1)}isLoading(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.isLoading():(this.debug.warn(this.LOG_TAG,`isLoading() windowIndex ${e} is not exist`),!1)}isPaused(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.isPaused():(this.debug.warn(this.LOG_TAG,`windowIndex ${e} is not exist`),!1)}isMute(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.isMute():(this.debug.warn(this.LOG_TAG,`isMute() windowIndex ${e} is not exist`),!1)}isRecording(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.isRecording():(this.debug.warn(this.LOG_TAG,`isRecording() windowIndex ${e} is not exist`),!1)}clearBufferDelay(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.clearBufferDelay():this.debug.warn(this.LOG_TAG,`clearBufferDelay() windowIndex ${e} is not exist`)}setNetworkDelayTime(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setNetworkDelayTime(e):this.debug.warn(this.LOG_TAG,`setNetworkDelayTime() windowIndex ${t} is not exist`)}getDecodeType(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getDecodeType():(this.debug.warn(this.LOG_TAG,`getDecodeType() windowIndex ${e} is not exist`),null)}getRenderType(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getRenderType():(this.debug.warn(this.LOG_TAG,`windowIndex ${e} is not exist`),null)}getAudioEngineType(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getAudioEngineType():(this.debug.warn(this.LOG_TAG,`windowIndex ${e} is not exist`),null)}getPlayingTimestamp(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getPlayingTimestamp():(this.debug.warn(this.LOG_TAG,`windowIndex ${e} is not exist`),null)}getStatus(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getStatus():(this.debug.warn(this.LOG_TAG,`getStatus() windowIndex ${e} is not exist`),null)}getPlayType(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getPlayType():(this.debug.warn(this.LOG_TAG,`getPlayType() windowIndex ${e} is not exist`),null)}togglePerformancePanel(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.togglePerformancePanel(e):this.debug.warn(this.LOG_TAG,`togglePerformancePanel() windowIndex ${t} is not exist`)}openZoom(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.openZoom():this.debug.warn(this.LOG_TAG,`openZoom() windowIndex ${e} is not exist`)}closeZoom(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.closeZoom():this.debug.warn(this.LOG_TAG,`closeZoom() windowIndex ${e} is not exist`)}isZoomOpen(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.isZoomOpen():(this.debug.warn(this.LOG_TAG,`isZoomOpen() windowIndex ${e} is not exist`),!1)}expandZoom(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.expandZoom():this.debug.warn(this.LOG_TAG,`expandZoom() windowIndex ${e} is not exist`)}narrowZoom(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.narrowZoom():this.debug.warn(this.LOG_TAG,`narrowZoom() windowIndex ${e} is not exist`)}getCurrentZoomIndex(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];return t&&t.player?t.player.getCurrentZoomIndex():(this.debug.warn(this.LOG_TAG,`getCurrentZoomIndex() windowIndex ${e} is not exist`),0)}setNakedFlowFps(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setNakedFlowFps(e):this.debug.warn(this.LOG_TAG,`setNakedFlowFps() windowIndex ${t} is not exist`)}updateDebugLevel(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.updateDebugLevel(e):this.debug.warn(this.LOG_TAG,`updateDebugLevel() windowIndex ${t} is not exist`)}updateWatermark(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.updateWatermark(e):this.debug.warn(this.LOG_TAG,`updateWatermark() windowIndex ${t} is not exist`)}removeWatermark(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.removeWatermark():this.debug.warn(this.LOG_TAG,`removeWatermark() windowIndex ${e} is not exist`)}updateFullscreenWatermark(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.updateFullscreenWatermark(e):this.debug.warn(this.LOG_TAG,`updateFullscreenWatermark() windowIndex ${t} is not exist`)}removeFullscreenWatermark(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.removeFullscreenWatermark():this.debug.warn(this.LOG_TAG,`removeFullscreenWatermark() windowIndex ${e} is not exist`)}faceDetectOpen(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.faceDetectOpen():this.debug.warn(this.LOG_TAG,`faceDetectOpen() windowIndex ${e} is not exist`)}faceDetectClose(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.faceDetectClose():this.debug.warn(this.LOG_TAG,`faceDetectClose() windowIndex ${e} is not exist`)}objectDetectOpen(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.objectDetectOpen():this.debug.warn(this.LOG_TAG,`objectDetectOpen() windowIndex ${e} is not exist`)}objectDetectClose(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.objectDetectClose():this.debug.warn(this.LOG_TAG,`objectDetectClose() windowIndex ${e} is not exist`)}sendWebsocketMessage(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.sendWebsocketMessage(e):this.debug.warn(this.LOG_TAG,`sendWebsocketMessage() windowIndex ${t} is not exist`)}addContentToCanvas(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.addContentToCanvas(e):this.debug.warn(this.LOG_TAG,`addContentToCanvas() windowIndex ${t} is not exist`)}clearContentToCanvas(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.clearContentToCanvas():this.debug.warn(this.LOG_TAG,`clearContentToCanvas() windowIndex ${e} is not exist`)}setControlHtml(e,t){t=ft(t)?t:this.currentWindowIndex;const i=this.windowList[t];i&&i.player?i.player.setControlHtml(e):this.debug.warn(this.LOG_TAG,`setControlHtml() windowIndex ${t} is not exist`)}clearControlHtml(e){e=ft(e)?e:this.currentWindowIndex;const t=this.windowList[e];t&&t.player?t.player.clearControlHtml():this.debug.warn(this.LOG_TAG,`clearControlHtml() windowIndex ${e} is not exist`)}destroySingle(e){return new Promise((t,i)=>{e=ft(e)?e:this.currentWindowIndex;const r=this.windowList[e];r?r.player&&r.player.destroy().then(()=>{r.player=null,t()}).catch(e=>{i(e)}):(i("windowIndex is not exist"),this.debug.warn(this.LOG_TAG,`destroySingle() windowIndex ${e} is not exist`))})}setFullscreenMulti(e){return new Promise((t,i)=>{if(this.debug.log(this.LOG_TAG,"setFullscreenMulti",e),e)try{je.request(this.$container).then(()=>{t()}).catch(e=>{this.debug.error(this.LOG_TAG,"fullscreen request inner error",e),i(e)})}catch(t){this.debug.error(this.LOG_TAG,"fullscreen request error",t),i(t)}else try{je.exit().then(()=>{t()}).catch(e=>{this.debug.error(this.LOG_TAG,"fullscreen exit inner error",e),i(e)})}catch(t){this.debug.error(this.LOG_TAG,"fullscreen exit error",t),i(t)}})}selectWindow(e){this.debug.log(this.LOG_TAG,"selectWindow",e),this._handleWindowSelect(e)}arrangeWindow(e){this.debug.log(this.LOG_TAG,"arrangeWindow",e),e?[Ie,Pe].includes(e)?this._arrangeSpecialWindow(e):this._opt.split===e&&null===this.specialLayoutType?this.debug.warn(this.LOG_TAG,`arrangeWindow() split ${e} is not changed`):(this.specialLayoutType=null,this._arrangeWindow(e)):this.debug.warn(this.LOG_TAG,`arrangeWindow() split ${e} is not valid`)}_arrangeWindow(e){(e=ht(e))<1||!ft(e)?this.debug.warn(this.LOG_TAG,`arrangeWindow() split ${e} is not valid`):(e>this._opt.maxSplit&&(e=this._opt.maxSplit),this._opt.split=e,this.currentWindowIndex=0,this._updateWindows(),this._handleWindowSelect(this.currentWindowIndex))}_arrangeSpecialWindow(e){this._opt.maxSplit<=3&&e===Pe||this._opt.maxSplit<=2&&e===Ie?this.debug.warn(this.LOG_TAG,`_arrangeSpecialWindow() type ${e} is not valid because maxSplit is `+this._opt.maxSplit):this.specialLayoutType&&this.specialLayoutType===e?this.debug.warn(this.LOG_TAG,`_arrangeSpecialWindow() type ${e} is not changed`):(this.specialLayoutType=e)===Ie?this._arrangeWindow(3):e===Pe?this._arrangeWindow(4):this.debug.warn(this.LOG_TAG,`_arrangeSpecialWindow() type ${e} is not valid`)}getCurrentSplit(){return this.specialLayoutType||this._opt.split}_getCurrentMaxSplit(){if(this.specialLayoutType){let e=0;return this.specialLayoutType===Ie?e=9:this.specialLayoutType===Pe&&(e=16),e}return this._opt.split*this._opt.split}_getSpecialMaxSplit(){let e=0;return this.specialLayoutType===Ie?e=6:this.specialLayoutType===Pe&&(e=8),e}getSelectedWindowIndex(){return this.currentWindowIndex}_findWindowItemIndex(e){return this.windowList.findIndex(t=>t.uuid===e.uuid)}}yn.MULTI_EVENTS=Re,yn.EVENTS=U,yn.ERROR=O,window.JessibucaProMulti=yn,window.WebPlayerProMulti=yn,t["a"]=gn}).call(this,i("c8ba"),i("4362"))}}]);