ezuikit-flv 1.0.2-beta.1 → 1.0.2-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/decoder.js +1 -1
  2. package/index.js +1 -1
  3. package/package.json +1 -1
package/decoder.js CHANGED
@@ -3,4 +3,4 @@
3
3
  * screenfull
4
4
  * v5.1.0 - 2020-12-24
5
5
  * (c) Sindre Sorhus; MIT License
6
- */Vt={exports:{}},function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=Vt.exports,t=function(){for(var r,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,o=t.length,a={};n<o;n++)if((r=t[n])&&r[1]in e){for(n=0;n<r.length;n++)a[t[0][n]]=r[n];return a}return!1}(),n={change:t.fullscreenchange,error:t.fullscreenerror},o={request:function(r,n){return new Promise(function(o,a){var i=function(){this.off("change",i),o()}.bind(this);this.on("change",i);var s=(r=r||e.documentElement)[t.requestFullscreen](n);s instanceof Promise&&s.then(i).catch(a)}.bind(this))},exit:function(){return new Promise(function(r,n){if(this.isFullscreen){var o=function(){this.off("change",o),r()}.bind(this);this.on("change",o);var a=e[t.exitFullscreen]();a instanceof Promise&&a.then(o).catch(n)}else r()}.bind(this))},toggle:function(e,r){return this.isFullscreen?this.exit():this.request(e,r)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(r,t){var o=n[r];o&&e.addEventListener(o,t,!1)},off:function(r,t){var o=n[r];o&&e.removeEventListener(o,t,!1)},raw:t};t?(Object.defineProperties(o,{isFullscreen:{get:function(){return Boolean(e[t.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[t.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[t.fullscreenEnabled])}}}),r?Vt.exports=o:window.screenfull=o):r?Vt.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}(),(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})(),Date.now||(Date.now=function(){return(new Date).getTime()}),At.postRun=function(){let e=[],r=[],t={};"VideoEncoder"in self&&(t={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(e){t.isEmitInfo||(n.opt.debug,postMessage({cmd:Dt,w:e.codedWidth,h:e.codedHeight}),t.isEmitInfo=!0,t.offscreenCanvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),t.offscreenCanvasCtx=t.offscreenCanvas.getContext("2d")),t.offscreenCanvasCtx.drawImage(e,0,0,e.codedWidth,e.codedHeight);const r=t.offscreenCanvas.transferToImageBitmap();postMessage({cmd:Ot,buffer:r,delay:n.delay,ts:0},[r]),setTimeout((function(){e.close?e.close():e.destroy()}),100)},error:function(e){}}),decode:function(e,r){const o=e[0]>>4==1;if(t.hasInit){const n=new EncodedVideoChunk({data:e.slice(5),timestamp:r,type:o?Ht:Gt});t.decoder.decode(n)}else if(o&&0===e[1]){const r=15&e[0];n.setVideoCodec(r);const o=function(e){const r=e.subarray(1,4);let t="avc1.";for(let e=0;e<3;e++){let n=r[e].toString(16);n.length<2&&(n="0"+n),t+=n}return{codec:t,description:e}}(e.slice(5));t.decoder.configure(o),t.hasInit=!0}},reset(){t.hasInit=!1,t.isEmitInfo=!1,t.offscreenCanvas=null,t.offscreenCanvasCtx=null}});const n={opt:{debug:Ft.debug,useOffscreen:Ft.useOffscreen,useWCS:Ft.useWCS,videoBuffer:Ft.videoBuffer,openWebglAlignment:Ft.openWebglAlignment,videoBufferDelay:Ft.videoBufferDelay},useOffscreen:function(){return n.opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},initAudioPlanar:function(e,t){postMessage({cmd:Rt,sampleRate:t,channels:e});const n=[];let o=0;this.playAudioPlanar=function(t,a,i){let s=a;const l=[];let u=0;for(let e=0;e<2;e++){const r=At.HEAPU32[(t>>2)+e]>>2;l[e]=At.HEAPF32.subarray(r,r+s)}if(o){if(!(s>=(a=1024-o)))return o+=s,r[0]=Float32Array.of(...r[0],...l[0]),void(2===e&&(r[1]=Float32Array.of(...r[1],...l[1])));n[0]=Float32Array.of(...r[0],...l[0].subarray(0,a)),2===e&&(n[1]=Float32Array.of(...r[1],...l[1].subarray(0,a))),postMessage({cmd:Mt,buffer:n,ts:i},n.map((e=>e.buffer))),u=a,s-=a}for(o=s;o>=1024;o-=1024)n[0]=l[0].slice(u,u+=1024),2===e&&(n[1]=l[1].slice(u-1024,u)),postMessage({cmd:Mt,buffer:n,ts:i},n.map((e=>e.buffer)));o&&(r[0]=l[0].slice(u),2===e&&(r[1]=l[1].slice(u)))}},setVideoCodec:function(e){postMessage({cmd:It,code:e})},setAudioCodec:function(e){postMessage({cmd:Nt,code:e})},setVideoSize:function(e,r){postMessage({cmd:Dt,w:e,h:r});const t=e*r,o=t>>2;n.useOffscreen()?(this.offscreenCanvas=new OffscreenCanvas(e,r),this.offscreenCanvasGL=this.offscreenCanvas.getContext("webgl"),this.webglObj=((e,r)=>{var t=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),n=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n");r&&e.pixelStorei(e.UNPACK_ALIGNMENT,1);var o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,t),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS);var a=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(a,n),e.compileShader(a),e.getShaderParameter(a,e.COMPILE_STATUS);var i=e.createProgram();e.attachShader(i,o),e.attachShader(i,a),e.linkProgram(i),e.getProgramParameter(i,e.LINK_STATUS),e.useProgram(i);var s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);var l=e.getAttribLocation(i,"vertexPos");e.enableVertexAttribArray(l),e.vertexAttribPointer(l,2,e.FLOAT,!1,0,0);var u=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,u),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.STATIC_DRAW);var c=e.getAttribLocation(i,"texturePos");function d(r,t){var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),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),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(e.getUniformLocation(i,r),t),n}e.enableVertexAttribArray(c),e.vertexAttribPointer(c,2,e.FLOAT,!1,0,0);var f=d("ySampler",0),p=d("uSampler",1),m=d("vSampler",2);return{render:function(r,t,n,o,a){e.viewport(0,0,r,t),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,f),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r,t,0,e.LUMINANCE,e.UNSIGNED_BYTE,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,p),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,o),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,m),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,a),e.drawArrays(e.TRIANGLE_STRIP,0,4)},destroy:function(){try{e.deleteProgram(i),e.deleteBuffer(s),e.deleteBuffer(u),e.deleteTexture(f),e.deleteTexture(p),e.deleteTexture(m)}catch(e){}}}})(this.offscreenCanvasGL,n.opt.openWebglAlignment),this.draw=function(n,a,i,s){const l=At.HEAPU8.subarray(a,a+t),u=At.HEAPU8.subarray(i,i+o),c=At.HEAPU8.subarray(s,s+o);this.webglObj.render(e,r,l,u,c);const d=this.offscreenCanvas.transferToImageBitmap();postMessage({cmd:Ot,buffer:d,delay:this.delay,ts:n},[d])}):this.draw=function(e,r,n,a){const i=[Uint8Array.from(At.HEAPU8.subarray(r,r+t)),Uint8Array.from(At.HEAPU8.subarray(n,n+o)),Uint8Array.from(At.HEAPU8.subarray(a,a+o))];postMessage({cmd:Ot,output:i,delay:this.delay,ts:e},i.map((e=>e.buffer)))}},getDelay:function(e){if(!e)return-1;if(this.firstTimestamp){if(e){const r=Date.now()-this.startTimestamp,t=e-this.firstTimestamp;this.delay=r>=t?r-t:t-r}}else this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1;return this.delay},resetDelay:function(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1},init:function(){n.opt.debug;const r=e=>{n.opt.useWCS&&n.useOffscreen()&&e.type===Lt&&t.decode?t.decode(e.payload,e.ts):e.decoder.decode(e.payload,e.ts)};this.stopId=setInterval((()=>{if(e.length)if(this.dropping){let t=e.shift();for(t&&t.type===$t&&0===t.payload[1]&&r(t);!t.isIFrame&&e.length;)t=e.shift(),t.type===$t&&0===t.payload[1]&&r(t);t.isIFrame&&(this.dropping=!1,r(t))}else{let t=e[0];if(-1===this.getDelay(t.ts))e.shift(),r(t);else if(this.delay>n.opt.videoBuffer+n.opt.videoBufferDelay)this.resetDelay(),this.dropping=!0;else for(;e.length&&(t=e[0],this.getDelay(t.ts)>n.opt.videoBuffer);)e.shift(),r(t)}}),10)},close:function(){n.opt.debug,clearInterval(this.stopId),this.stopId=null,o.clear&&o.clear(),a.clear&&a.clear(),t.reset&&t.reset(),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1,this.webglObj&&(this.webglObj.destroy(),this.offscreenCanvas=null,this.offscreenCanvasGL=null,this.offscreenCanvasCtx=null),e=[],r=[],delete this.playAudioPlanar,delete this.draw},pushBuffer:function(r,t){t.type===$t?e.push({ts:t.ts,payload:r,decoder:o,type:$t}):t.type===Lt&&e.push({ts:t.ts,payload:r,decoder:a,type:Lt,isIFrame:t.isIFrame})}},o=new At.AudioDecoder(n),a=new At.VideoDecoder(n);self.onmessage=function(e){const r=e.data;switch(r.cmd){case Ut:try{n.opt=Object.assign(n.opt,JSON.parse(r.opt))}catch(e){}o.sample_rate=r.sampleRate,n.init();break;case xt:n.pushBuffer(r.buffer,r.options);break;case Bt:o.decode(r.buffer,r.ts);break;case jt:a.decode(r.buffer,r.ts);break;case Wt:n.close();break;case zt:n.opt[r.key]=r.value}}},At.onRuntimeInitialized=function(){postMessage({cmd:Ut})}}));
6
+ */Vt={exports:{}},function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=Vt.exports,t=function(){for(var r,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],n=0,o=t.length,a={};n<o;n++)if((r=t[n])&&r[1]in e){for(n=0;n<r.length;n++)a[t[0][n]]=r[n];return a}return!1}(),n={change:t.fullscreenchange,error:t.fullscreenerror},o={request:function(r,n){return new Promise(function(o,a){var i=function(){this.off("change",i),o()}.bind(this);this.on("change",i);var s=(r=r||e.documentElement)[t.requestFullscreen](n);s instanceof Promise&&s.then(i).catch(a)}.bind(this))},exit:function(){return new Promise(function(r,n){if(this.isFullscreen){var o=function(){this.off("change",o),r()}.bind(this);this.on("change",o);var a=e[t.exitFullscreen]();a instanceof Promise&&a.then(o).catch(n)}else r()}.bind(this))},toggle:function(e,r){return this.isFullscreen?this.exit():this.request(e,r)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(r,t){var o=n[r];o&&e.addEventListener(o,t,!1)},off:function(r,t){var o=n[r];o&&e.removeEventListener(o,t,!1)},raw:t};t?(Object.defineProperties(o,{isFullscreen:{get:function(){return Boolean(e[t.fullscreenElement])}},element:{enumerable:!0,get:function(){return e[t.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(e[t.fullscreenEnabled])}}}),r?Vt.exports=o:window.screenfull=o):r?Vt.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}(),(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})(),Date.now||(Date.now=function(){return(new Date).getTime()}),At.postRun=function(){let e=[],r=[],t={};"VideoEncoder"in self&&(t={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(e){t.isEmitInfo||(n.opt.debug,postMessage({cmd:Dt,w:e.codedWidth,h:e.codedHeight}),t.isEmitInfo=!0,t.offscreenCanvas=new OffscreenCanvas(e.codedWidth,e.codedHeight),t.offscreenCanvasCtx=t.offscreenCanvas.getContext("2d")),t.offscreenCanvasCtx.drawImage(e,0,0,e.codedWidth,e.codedHeight);const r=t.offscreenCanvas.transferToImageBitmap();postMessage({cmd:Ot,buffer:r,delay:n.delay,ts:0},[r]),setTimeout((function(){e.close?e.close():e.destroy()}),100)},error:function(e){}}),decode:function(e,r){const o=e[0]>>4==1;if(t.hasInit){const n=new EncodedVideoChunk({data:e.slice(5),timestamp:r,type:o?Ht:Gt});t.decoder.decode(n)}else if(o&&0===e[1]){const r=15&e[0];n.setVideoCodec(r);const o=function(e){const r=e.subarray(1,4);let t="avc1.";for(let e=0;e<3;e++){let n=r[e].toString(16);n.length<2&&(n="0"+n),t+=n}return{codec:t,description:e}}(e.slice(5));t.decoder.configure(o),t.hasInit=!0}},reset(){t.hasInit=!1,t.isEmitInfo=!1,t.offscreenCanvas=null,t.offscreenCanvasCtx=null}});const n={opt:{debug:Ft.debug,useOffscreen:Ft.useOffscreen,useWCS:Ft.useWCS,videoBuffer:Ft.videoBuffer,openWebglAlignment:Ft.openWebglAlignment,videoBufferDelay:Ft.videoBufferDelay},useOffscreen:function(){return n.opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},initAudioPlanar:function(e,t){postMessage({cmd:Rt,sampleRate:t,channels:e});const n=[];let o=0;this.playAudioPlanar=function(t,a,i){let s=a;const l=[];let u=0;for(let e=0;e<2;e++){const r=At.HEAPU32[(t>>2)+e]>>2;l[e]=At.HEAPF32.subarray(r,r+s)}if(o){if(!(s>=(a=1024-o)))return o+=s,r[0]=Float32Array.of(...r[0],...l[0]),void(2===e&&(r[1]=Float32Array.of(...r[1],...l[1])));n[0]=Float32Array.of(...r[0],...l[0].subarray(0,a)),2===e&&(n[1]=Float32Array.of(...r[1],...l[1].subarray(0,a))),postMessage({cmd:Mt,buffer:n,ts:i},n.map((e=>e.buffer))),u=a,s-=a}for(o=s;o>=1024;o-=1024)n[0]=l[0].slice(u,u+=1024),2===e&&(n[1]=l[1].slice(u-1024,u)),postMessage({cmd:Mt,buffer:n,ts:i},n.map((e=>e.buffer)));o&&(r[0]=l[0].slice(u),2===e&&(r[1]=l[1].slice(u)))}},setVideoCodec:function(e){postMessage({cmd:It,code:e})},setAudioCodec:function(e){postMessage({cmd:Nt,code:e})},setVideoSize:function(e,r){postMessage({cmd:Dt,w:e,h:r});const t=e*r,o=t>>2;n.useOffscreen()?(this.offscreenCanvas=new OffscreenCanvas(e,r),this.offscreenCanvasGL=this.offscreenCanvas.getContext("webgl"),this.webglObj=((e,r)=>{var t=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),n=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n");r&&e.pixelStorei(e.UNPACK_ALIGNMENT,1);var o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,t),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS);var a=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(a,n),e.compileShader(a),e.getShaderParameter(a,e.COMPILE_STATUS);var i=e.createProgram();e.attachShader(i,o),e.attachShader(i,a),e.linkProgram(i),e.getProgramParameter(i,e.LINK_STATUS),e.useProgram(i);var s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);var l=e.getAttribLocation(i,"vertexPos");e.enableVertexAttribArray(l),e.vertexAttribPointer(l,2,e.FLOAT,!1,0,0);var u=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,u),e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.STATIC_DRAW);var c=e.getAttribLocation(i,"texturePos");function d(r,t){var n=e.createTexture();return e.bindTexture(e.TEXTURE_2D,n),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),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(e.getUniformLocation(i,r),t),n}e.enableVertexAttribArray(c),e.vertexAttribPointer(c,2,e.FLOAT,!1,0,0);var f=d("ySampler",0),p=d("uSampler",1),m=d("vSampler",2);return{render:function(r,t,n,o,a){e.viewport(0,0,r,t),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,f),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r,t,0,e.LUMINANCE,e.UNSIGNED_BYTE,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,p),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,o),e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,m),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r/2,t/2,0,e.LUMINANCE,e.UNSIGNED_BYTE,a),e.drawArrays(e.TRIANGLE_STRIP,0,4)},destroy:function(){try{e.deleteProgram(i),e.deleteBuffer(s),e.deleteBuffer(u),e.deleteTexture(f),e.deleteTexture(p),e.deleteTexture(m)}catch(e){}}}})(this.offscreenCanvasGL,n.opt.openWebglAlignment),this.draw=function(n,a,i,s){const l=At.HEAPU8.subarray(a,a+t),u=At.HEAPU8.subarray(i,i+o),c=At.HEAPU8.subarray(s,s+o);this.webglObj.render(e,r,l,u,c);const d=this.offscreenCanvas.transferToImageBitmap();postMessage({cmd:Ot,buffer:d,delay:this.delay,ts:n},[d])}):this.draw=function(e,r,n,a){const i=[Uint8Array.from(At.HEAPU8.subarray(r,r+t)),Uint8Array.from(At.HEAPU8.subarray(n,n+o)),Uint8Array.from(At.HEAPU8.subarray(a,a+o))];postMessage({cmd:Ot,output:i,delay:this.delay,ts:e},i.map((e=>e.buffer)))}},getDelay:function(e){if(!e)return-1;if(this.firstTimestamp){if(e){const r=Date.now()-this.startTimestamp,t=e-this.firstTimestamp;this.delay=r>=t?r-t:t-r}}else this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1;return this.delay},resetDelay:function(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1},init:function(){n.opt.debug;const r=e=>{n.opt.useWCS&&n.useOffscreen()&&e.type===Lt&&t.decode?t.decode(e.payload,e.ts):e.decoder.decode(e.payload,e.ts)};this.stopId=setInterval((()=>{if(e.length)if(this.dropping){let t=e.shift();for(t&&t.type===$t&&0===t.payload[1]&&r(t);!t.isIFrame&&e.length;)t=e.shift(),t.type===$t&&0===t.payload[1]&&r(t);t.isIFrame&&(this.dropping=!1,r(t))}else{let t=e[0];if(-1===this.getDelay(t.ts))e.shift(),r(t);else if(this.delay>n.opt.videoBuffer+n.opt.videoBufferDelay)this.resetDelay(),this.dropping=!0;else for(;e.length&&(t=e[0],this.getDelay(t.ts)>n.opt.videoBuffer);)e.shift(),r(t)}}),10)},close:function(){n.opt.debug,clearInterval(this.stopId),this.stopId=null,o.clear&&o.clear(),a.clear&&a.clear(),t.reset&&t.reset(),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1,this.webglObj&&(this.webglObj.destroy(),this.offscreenCanvas=null,this.offscreenCanvasGL=null,this.offscreenCanvasCtx=null),e=[],r=[],delete this.playAudioPlanar,delete this.draw},pushBuffer:function(r,t){t.type===$t?e.push({ts:t.ts,payload:r,decoder:o,type:$t}):t.type===Lt&&e.push({ts:t.ts,payload:r,decoder:a,type:Lt,isIFrame:t.isIFrame})}},o=new At.AudioDecoder(n),a=new At.VideoDecoder(n);self.onmessage=function(e){const r=e.data;switch(r.cmd){case Ut:try{n.opt=Object.assign(n.opt,JSON.parse(r.opt))}catch(e){}o.sample_rate=r.sampleRate,n.init();break;case xt:n.pushBuffer(r.buffer,r.options);break;case Bt:o.decode(r.buffer,r.ts);break;case jt:a.decode(r.buffer,r.ts);break;case Wt:n.close();break;case zt:n.opt[r.key]=r.value}}},At.onRuntimeInitialized=function(){setTimeout((()=>{postMessage({cmd:Ut})}),10)}}));