@ylink-sdk/mobile-web 0.1.9-beta.1 → 0.1.9-beta.4

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 (55) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/ylink-sdk-mobile.umd.js +70 -70
  3. package/package.json +1 -1
  4. package/dist/e30037b8/VERSION +0 -6
  5. package/dist/e30037b8/libipvp-simd.d.ts +0 -474
  6. package/dist/e30037b8/libipvp-simd.js +0 -3267
  7. package/dist/e30037b8/libipvp-simd.prod.d.ts +0 -474
  8. package/dist/e30037b8/libipvp-simd.prod.js +0 -184
  9. package/dist/e30037b8/libipvp-simd.prod.wasm +0 -0
  10. package/dist/e30037b8/libipvp-simd.wasm +0 -0
  11. package/dist/e30037b8/libipvp.d.ts +0 -474
  12. package/dist/e30037b8/libipvp.js +0 -3267
  13. package/dist/e30037b8/libipvp.prod.d.ts +0 -474
  14. package/dist/e30037b8/libipvp.prod.js +0 -184
  15. package/dist/e30037b8/libipvp.prod.wasm +0 -0
  16. package/dist/e30037b8/libipvp.wasm +0 -0
  17. package/dist/e30037b8/librtc.d.ts +0 -438
  18. package/dist/e30037b8/librtc.global.js +0 -5863
  19. package/dist/e30037b8/librtc.global.prod.js +0 -15
  20. package/dist/e30037b8/libsfu-simd.d.ts +0 -767
  21. package/dist/e30037b8/libsfu-simd.js +0 -4822
  22. package/dist/e30037b8/libsfu-simd.prod.d.ts +0 -767
  23. package/dist/e30037b8/libsfu-simd.prod.js +0 -209
  24. package/dist/e30037b8/libsfu-simd.prod.wasm +0 -0
  25. package/dist/e30037b8/libsfu-simd.wasm +0 -0
  26. package/dist/e30037b8/libsfu.d.ts +0 -767
  27. package/dist/e30037b8/libsfu.js +0 -4822
  28. package/dist/e30037b8/libsfu.prod.d.ts +0 -767
  29. package/dist/e30037b8/libsfu.prod.js +0 -209
  30. package/dist/e30037b8/libsfu.prod.wasm +0 -0
  31. package/dist/e30037b8/libsfu.wasm +0 -0
  32. package/dist/e30037b8/libsvc-simd-m1.d.ts +0 -767
  33. package/dist/e30037b8/libsvc-simd-m1.js +0 -4921
  34. package/dist/e30037b8/libsvc-simd-m1.prod.d.ts +0 -767
  35. package/dist/e30037b8/libsvc-simd-m1.prod.js +0 -209
  36. package/dist/e30037b8/libsvc-simd-m1.prod.wasm +0 -0
  37. package/dist/e30037b8/libsvc-simd-m1.wasm +0 -0
  38. package/dist/e30037b8/libsvc-simd.d.ts +0 -767
  39. package/dist/e30037b8/libsvc-simd.js +0 -4857
  40. package/dist/e30037b8/libsvc-simd.prod.d.ts +0 -767
  41. package/dist/e30037b8/libsvc-simd.prod.js +0 -209
  42. package/dist/e30037b8/libsvc-simd.prod.wasm +0 -0
  43. package/dist/e30037b8/libsvc-simd.wasm +0 -0
  44. package/dist/e30037b8/libsvc.d.ts +0 -767
  45. package/dist/e30037b8/libsvc.js +0 -4857
  46. package/dist/e30037b8/libsvc.prod.d.ts +0 -767
  47. package/dist/e30037b8/libsvc.prod.js +0 -209
  48. package/dist/e30037b8/libsvc.prod.wasm +0 -0
  49. package/dist/e30037b8/libsvc.wasm +0 -0
  50. package/dist/e30037b8/native-audio-worker.global.js +0 -1583
  51. package/dist/e30037b8/native-audio-worker.global.prod.js +0 -15
  52. package/dist/e30037b8/native-video-worker.global.js +0 -1960
  53. package/dist/e30037b8/native-video-worker.global.prod.js +0 -15
  54. package/dist/e30037b8/worklet-audio-worker.global.js +0 -900
  55. package/dist/e30037b8/worklet-audio-worker.global.prod.js +0 -15
@@ -1,15 +0,0 @@
1
- !function(){"use strict";
2
- /*! *****************************************************************************
3
- Copyright (c) Microsoft Corporation.
4
-
5
- Permission to use, copy, modify, and/or distribute this software for any
6
- purpose with or without fee is hereby granted.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
- PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */function e(e,t,n,r){return new(n||(n=Promise))((function(s,i){function o(e){try{c(r.next(e))}catch(t){i(t)}}function a(e){try{c(r.throw(e))}catch(t){i(t)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))}function t(t){return(n,r)=>{let s=-1;const i=i=>e(this,void 0,void 0,(function*(){if(i<=s)return;s=i;let e=t[i];return i===t.length&&(e=r),e?e.length>1?e(n,o):(yield e(n,o),o()):void 0})),o=()=>i(s+1);return o()}}class n{constructor(e,t){this.middleware=[],this.pipe=t||Math.random().toString(36).slice(3),this.channel=e}get valid(){return this.channel.has(this.pipe)}implement(t,n){const r=(r,s)=>e(this,void 0,void 0,(function*(){const{method:e,params:i,status:o,required:a,attached:c={}}=r.data;if(t!==e)return s();let h=!1;const l=[],d={},u=e=>{h||(h=!0,this.channel.send(Object.assign(Object.assign(Object.assign({},r.data),{params:void 0,attached:d}),e),l))},m={transfer:(...e)=>(a&&l.push(...e),m),resolve:e=>{a?u({resolve:e,status:o+1}):h=!0},reject:e=>{a?u({status:o-1,reject:e}):h=!0},set:(e,t)=>(a&&(d[e]=t),m),get:e=>c[e]};try{Date.now();yield n(m,i,r.ports)}catch(p){h||m.reject(`${p}`)}r.data.touched=!0,h||(yield s())}));this.middleware.unshift(r);return()=>{const e=this.middleware.findIndex((e=>e===r));~e&&this.middleware.splice(e,1)}}reject(e=""){this.channel.reject(this,e)}as(){return this}callback(){return(n,r)=>e(this,void 0,void 0,(function*(){const{pipe:e,status:s}=n.data;return e!==this.pipe||s?r():t(this.middleware)(n,r)}))}toString(){return`${this.pipe}`}}class r{constructor(e,t){this.sequence=0,this.pendings=new Map,this.pipe=t||Math.random().toString(36).slice(3),this.channel=e,this.accepted=s()}get ready(){return this.accepted.promise}get valid(){return this.channel.has(this.pipe)}make(t){const n=[],r={},i=t=>e(this,void 0,void 0,(function*(){try{yield this.ready}catch(e){throw e}})),o=(e,s)=>{this.channel.send({pipe:this.pipe,sequence:++this.sequence,timestamp:Date.now(),method:t,status:0,params:e,required:s,attached:r},n)},a={transfer:(...e)=>(n.push(...e),a),post:(...t)=>e(this,void 0,void 0,(function*(){yield i(),o(t)})),invoke:(...t)=>e(this,void 0,void 0,(function*(){yield i(),o(t,!0);const e=s();return this.pendings.set(this.sequence,e),e.promise})),set:(e,t)=>(r[e]=t,a),get:e=>r[e]};return a}break(e=""){this.channel.break(this,e),this.pendings.forEach((e=>e.reject("broken"))),this.pendings.clear(),this.accepted.reject("broken"),this.accepted.promise=Promise.reject("broken"),this.accepted.promise.catch(i)}callback(){return(t,n)=>e(this,void 0,void 0,(function*(){const{pipe:e,sequence:r,status:s,reject:i,resolve:o}=t.data;if(e!==this.pipe)return n();if(!s)return n();const a=this.pendings.get(r);a&&(s<0?a.reject(i):a.resolve(o),this.pendings.delete(r))}))}toString(){return`${this.pipe}`}}function s(){const e={};return e.promise=new Promise(((t,n)=>{e.resolve=t,e.reject=n})),e.promise.catch(i),e}const i=()=>{};class o{constructor(e){this.remotes=new Map,this.receivers=new Map,this.pendingReceivers=new Set;const n=e.onmessage;this.transport=e,this.transport.onmessage=e=>{const{data:r,ports:s=[]}=e;if(a(r)){if(/^mojo/.test(r)){const[,t]=r.split(":"),s=this.receivers.get(`${t}`);return s?(this.send(`accept:${s}`),this.oninvitation&&this.oninvitation(t,s),void(s.onready&&s.onready())):(this.pendingReceivers.add(t),this.oninvitation&&this.oninvitation(t),void(this.pendingReceivers.has(t)&&n&&n.call(this.transport,e)))}if(/^accept/.test(r)){const[,e]=r.split(":"),t=this.remotes.get(e);if(!t)return;return t.accepted.resolve(),void(t.onaccept&&t.onaccept())}if(/^reject/.test(r)){const[,e,t="rejected"]=r.split(":"),n=this.remotes.get(e);if(!n)return;return this.remotes.delete(e),n.accepted.reject(t),void(n.onreject&&n.onreject(t))}if(/^break/.test(r)){const[,e,t="breaked"]=r.split(":");if(this.pendingReceivers.has(e))return void this.pendingReceivers.delete(e);const n=this.receivers.get(e);if(!n)return;return this.receivers.delete(e),void(n.onbreak&&n.onbreak(t))}return n?void n.call(this.transport,e):void 0}const i={data:r,ports:s};t([...Array.from(this.remotes.values()).map((e=>e.callback())),...Array.from(this.receivers.values()).map((e=>e.callback()))])(i,(()=>{n&&n.call(this.transport,e)}))}}fork(){return new o(this.transport)}has(e){return this.remotes.has(e)||this.receivers.has(e)}close(){this.remotes.forEach((e=>e.break())),this.remotes.clear(),this.receivers.forEach((e=>e.reject())),this.receivers.clear(),this.transport.onmessage=null,this.transport=null}send(e,t){this.transport.postMessage(e,t)}reject(e,t=""){this.send(`reject:${e}:${t}`),this.receivers.delete(`${e}`)}break(e,t=""){this.remotes.has(`${e}`)&&(this.send(`break:${e}:${t}`),this.remotes.delete(`${e}`))}remote(e){const t=new r(this,e&&`${e}`);return this.remotes.set(`${t}`,t),this.send(`mojo:${t}`),t}receiver(e){e&&this.receivers.has(`${e}`);const t=new n(this,e&&`${e}`);return this.receivers.set(`${t}`,t),this.pendingReceivers.has(`${t}`)&&(this.send(`accept:${t}`),this.pendingReceivers.delete(`${t}`),t.onready&&t.onready()),t}}const a=e=>"string"==typeof e;function c(e){let t=0,n=e>>1;for(;0!==n;)n>>=1,t++;if(e!==1<<t)throw Error(`chroma plane dimensions must be power of 2 ratio to luma plane dimensions; got ${e}`);return t}var h;!function(e){e[e.kNative=0]="kNative",e[e.kRGBA=1]="kRGBA",e[e.kABGR=2]="kABGR",e[e.kI420=3]="kI420",e[e.kI420A=4]="kI420A",e[e.kI444=5]="kI444"}(h||(h={}));class l{constructor(e){this.type=h.kI420,this.width=e.width,this.height=e.height,this.strideY=e.strideY||this.width,this.strideU=e.strideU||this.chromaWidth,this.strideV=e.strideV||this.chromaWidth;var t;this.data=!(e.dataY&&e.dataU&&e.dataV)&&function(e,t=64){return new ArrayBuffer(function(e,t=64){const n=e%t;return 0===n?e:e+t-n}(e,t))}(this.strideY*(t=this.height)+(this.strideU+this.strideV)*((t+1)/2)),this.dataY=e.dataY||new Uint8ClampedArray(this.data,0,this.strideY*this.height),this.dataU=e.dataU||new Uint8ClampedArray(this.data,this.strideY*this.height,this.strideU*this.chromaHeight),this.dataV=e.dataV||new Uint8ClampedArray(this.data,this.strideY*this.height+this.strideU*this.chromaHeight,this.strideV*this.chromaHeight)}get chromaWidth(){return Math.floor((this.width+1)/2)}get chromaHeight(){return Math.floor((this.height+1)/2)}toI420(){return this}getI420(){return this}getI420A(){}getI444(){}}class d{constructor(e){this.buffer=e.buffer}get width(){return this.buffer.width}get height(){return this.buffer.height}}let u=!1;"undefined"!=typeof document&&"undefined"!=typeof __INVISIBLE_SUSPEND__&&document.addEventListener("visibilitychange",(()=>{u="hidden"===document.visibilityState}));class m{constructor(){this.frameCounts=0,this.droppedFrameCounts=0,this.pending=!1}clear(){}render(e){}onFrame(e,t=!1){this.pending||u?this.droppedFrameCounts++:(t?this.render(e):requestAnimationFrame((()=>this.render(e))),requestAnimationFrame((()=>this.pending=!1)),this.pending=!0),this.frameCounts++}}class p extends m{constructor(e){super(),this.canvas=e,this.width=e.width,this.height=e.height,this.context=this.canvas.getContext("2d")}setSize(e,t){this.canvas.width=e,this.canvas.height=t,this.width=e,this.height=t}clear(){this.context.clearRect(0,0,this.width,this.height)}render(e){const{width:t,height:n,buffer:r}=e;let s;switch(t===this.width&&n===this.height||this.setSize(t,n),this.clear(),r.type){case h.kI420:s=this.context.createImageData(t,n),function(e,t,n=255){const{width:r,height:s,chromaWidth:i,chromaHeight:o,dataY:a,dataU:h,dataV:l,strideY:d,strideU:u,strideV:m}=e,p=t.data,f=0|c(r/i),v=0|c(s/o),k=r<<2;let g=0,b=0,w=0,E=0,S=0,T=0,R=0,y=0,x=0,A=0,C=0,U=0,_=0,I=0,D=0,j=0,F=0,O=0;if(1===f&&1===v)for(R=0,y=k,O=0,j=0;j<s;j+=2){for(b=j*d|0,w=b+d|0,E=O*u|0,S=O*m|0,D=0;D<r;D+=2)x=0|h[E++],A=0|l[S++],U=(409*A|0)-57088|0,_=(100*x|0)+(208*A|0)-34816|0,I=(516*x|0)-70912|0,C=298*a[b++]|0,p[R]=C+U>>8,p[R+1]=C-_>>8,p[R+2]=C+I>>8,p[R+3]=n,R+=4,C=298*a[b++]|0,p[R]=C+U>>8,p[R+1]=C-_>>8,p[R+2]=C+I>>8,p[R+3]=n,R+=4,C=298*a[w++]|0,p[y]=C+U>>8,p[y+1]=C-_>>8,p[y+2]=C+I>>8,p[y+3]=n,y+=4,C=298*a[w++]|0,p[y]=C+U>>8,p[y+1]=C-_>>8,p[y+2]=C+I>>8,p[y+3]=n,y+=4;R+=k,y+=k,O++}else for(T=0,j=0;j<s;j++)for(F=0,O=j>>v,g=j*d|0,E=O*u|0,S=O*m|0,D=0;D<r;D++)F=D>>f,x=0|h[E+F],A=0|l[S+F],U=(409*A|0)-57088|0,_=(100*x|0)+(208*A|0)-34816|0,I=(516*x|0)-70912|0,C=298*a[g++]|0,p[T]=C+U>>8,p[T+1]=C-_>>8,p[T+2]=C+I>>8,p[T+3]=n,T+=4}(r,s);break;case h.kABGR:s=r.toImage(this.context);break;case h.kNative:s=r.image;break;default:return}this.context.putImageData(s,0,0,0,0,t,n)}}function f(e,t,n){const r=e.createShader(t);return r?(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:null):null}function v(e,t,n,r,s,i,o){const a={buffer:e.createBuffer(),location:-1,identifier:r,size:s,structure:i,count:o};switch(n){case"attribute":a.location=e.getAttribLocation(t,r);break;case"uniform":a.location=e.getUniformLocation(t,r)}return o&&(a.data=new Float32Array(o*s)),a}function k(e,t,n,r,s,i){const o={texture:e.createTexture(),textureId:s,location:e.getUniformLocation(t,r),identifier:r,unit:i};return e.activeTexture(s),e.bindTexture(e.TEXTURE_2D,o.texture),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.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.uniform1i(o.location,i),o}function g(e,t,n){if(function(e){return!Number.isNaN(parseFloat(e))&&Number.isFinite(e)}(n))t.data[e*t.size]=n;else for(let r=n.length-1;r>=0;r--)t.data[e*t.size+r]=n[r]}function b(e,t,n,r,s){e.activeTexture(t.textureId),e.bindTexture(e.TEXTURE_2D,t.texture),e.texImage2D(e.TEXTURE_2D,0,e.LUMINANCE,r,s,0,e.LUMINANCE,e.UNSIGNED_BYTE,n);e.getError()}class w extends m{constructor(e){super(),this.attributes=null,this.uniforms=null,this.textures=null,this.parameters={alpha:!0,antialias:!0,depth:!0,desynchronized:!0,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power",premultipliedAlpha:!0,preserveDrawingBuffer:!1,stencil:!0},this.canvas=e,this.width=e.width,this.height=e.height,this.gl=this.canvas.getContext("webgl"),this.gl.clearColor(0,0,0,0),this.gl.enable(this.gl.DEPTH_TEST),this.gl.depthFunc(this.gl.LEQUAL)}setSize(e,t){this.canvas.width=e,this.canvas.height=t,this.width=e,this.height=t,this.gl.viewport(0,0,e,t)}clear(){this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}grab(){if(e=this.canvas,"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)return this.canvas.transferToImageBitmap();var e}dispose(){let e;(e=this.gl.getExtension("WEBGL_lose_context"))&&e.loseContext()}render(e){const{width:t,height:n,chromaHeight:r,dataY:s,dataU:i,dataV:o,strideY:a,strideU:c,strideV:h}=e.buffer;let l,d;this.gl.isContextLost()&&(this.gl=this.canvas.getContext("webgl")),t===this.width&&n===this.height||this.setSize(t,n),this.clear(),this.program||(this.program=function(e){const t=e.createProgram(),n=f(e,e.VERTEX_SHADER,"\nprecision mediump float;\n\nattribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform vec2 uResolution;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void) {\n // convert the rectangle from pixels to 0.0 to 1.0\n vec2 zeroToOne = aVertexPosition / uResolution;\n \n // convert from 0 -> 1 to 0 -> 2\n vec2 zeroToTwo = zeroToOne * 2.0;\n \n // convert from 0 -> 2 to -1 -> +1 (clipspace)\n vec2 clipSpace = zeroToTwo - 1.0;\n\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);\n\n vTextureCoord = aTextureCoord;\n}\n"),r=f(e,e.FRAGMENT_SHADER,"\nprecision mediump float;\n\nuniform sampler2D uTextureY;\nuniform sampler2D uTextureU;\nuniform sampler2D uTextureV;\n\nvarying vec2 vTextureCoord;\n\nconst mat4 YUV2RGB = mat4( \n 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\nvoid main(void) {\n gl_FragColor = vec4(\n texture2D(uTextureY, vTextureCoord).x,\n texture2D(uTextureU, vTextureCoord).x,\n texture2D(uTextureV, vTextureCoord).x,\n 1\n ) * YUV2RGB;\n}\n");if(!t||!n||!r)return null;if(e.attachShader(t,n),e.attachShader(t,r),e.linkProgram(t),!e.getProgramParameter(t,e.LINK_STATUS))return e.getError(),e.getProgramParameter(t,e.VALIDATE_STATUS),null;return e.deleteShader(r),e.deleteShader(n),e.useProgram(t),t}(this.gl),this.attributes={position:v(this.gl,this.program,"attribute","aVertexPosition",2,"v2"),texcoord:v(this.gl,this.program,"attribute","aTextureCoord",2,"v2")},this.uniforms={resolution:v(this.gl,this.program,"uniform","uResolution",2,"2f",1)},this.textures={y:k(this.gl,this.program,0,"uTextureY",this.gl.TEXTURE0,0),u:k(this.gl,this.program,0,"uTextureU",this.gl.TEXTURE1,1),v:k(this.gl,this.program,0,"uTextureV",this.gl.TEXTURE2,2)});const u=0+t,m=0+n,p=new Float32Array([0,m,u,m,0,0,0,0,u,m,u,0]),w=t/a,E=new Float32Array([0,1,w,1,0,0,0,0,w,1,w,0]);Object.keys(this.attributes).forEach((e=>{switch(l=this.attributes[e],e){case"position":l.data=new Float32Array(p.length),g(0,l,p);break;case"texcoord":l.data=new Float32Array(E.length),g(0,l,E);break;default:return}!function(e,t){e.enableVertexAttribArray(t.location),e.bindBuffer(e.ARRAY_BUFFER,t.buffer),e.bufferData(e.ARRAY_BUFFER,t.data,e.STATIC_DRAW),e.vertexAttribPointer(t.location,t.size,e.FLOAT,!1,0,0)}(this.gl,l)})),g(0,this.uniforms.resolution,[t,n]);Object.keys(this.uniforms).forEach((e=>{l=this.uniforms[e],function(e,t){const n=t.location,r=t.data;switch(t.structure){case"2f":e.uniform2f(n,r[0],r[1]);break;case"2fv":e.uniform2fv(n,r);break;case"3f":e.uniform3f(n,r[0],r[1],r[2]);break;case"3fv":e.uniform3fv(n,r);break;case"4f":e.uniform4f(n,r[0],r[1],r[2],r[3]);break;case"4fv":e.uniform4fv(n,r)}}(this.gl,l)}));Object.keys(this.textures).forEach((e=>{switch(d=this.textures[e],e){case"y":b(this.gl,d,s,a,n);break;case"u":b(this.gl,d,i,c,r);break;case"v":b(this.gl,d,o,h,r)}})),this.gl.drawArrays(this.gl.TRIANGLES,0,p.length/2)}}const E="HEAPU8";const S=(e=>{let t;return(...n)=>(t||(t=e()),t(...n))})((()=>function(e,t){const n=indexedDB.open(e);n.onupgradeneeded=()=>n.result.createObjectStore(t);const r=T(n);return(e,n)=>r.then((r=>n(r.transaction(t,e).objectStore(t))))}("LINE-UI","key-value")));function T(e){return new Promise(((t,n)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>n(e.error)}))}var R,y,x,A,C,U,_,I,D,j,F,O,V,P,N;let M,B,L;!function(e){e[e.kAudio=1]="kAudio",e[e.kVideo=2]="kVideo",e[e.kData=3]="kData",e[e.kAnnotation=4]="kAnnotation",e[e.kMessage=5]="kMessage"}(R||(R={})),function(e){e[e.kSend=1]="kSend",e[e.kRecv=2]="kRecv",e[e.kBoth=3]="kBoth"}(y||(y={})),function(e){e[e.kInteractive=1]="kInteractive",e[e.kBroadcast=2]="kBroadcast"}(x||(x={})),function(e){e[e.kOK=0]="kOK",e[e.kError=320200]="kError",e[e.kExisted=320201]="kExisted",e[e.kNetworkError=320202]="kNetworkError",e[e.kMCFailed=320203]="kMCFailed",e[e.kMSSFailed=320204]="kMSSFailed",e[e.kMSSLost=320205]="kMSSLost",e[e.kAuthFailed=320206]="kAuthFailed",e[e.kLoadFailed=320207]="kLoadFailed",e[e.kNoImplemented=320208]="kNoImplemented"}(A||(A={})),function(e){e[e.kReconnecting=320100]="kReconnecting",e[e.kReconnectOK=320101]="kReconnectOK",e[e.kReconnectNG=320102]="kReconnectNG"}(C||(C={})),function(e){e[e.kHandshakeOK=100]="kHandshakeOK",e[e.kHandshakeNG=101]="kHandshakeNG",e[e.kConnectOK=102]="kConnectOK",e[e.kConnectNG=103]="kConnectNG"}(U||(U={})),function(e){e[e.kSignal=0]="kSignal",e[e.kData=1]="kData"}(_||(_={})),function(e){e[e.kVeryfast=0]="kVeryfast",e[e.kUltrafast=1]="kUltrafast",e[e.kUltrafastPlus=2]="kUltrafastPlus"}(I||(I={})),function(e){e[e.kVideo=2]="kVideo",e[e.kData=3]="kData",e[e.kAnnotation=4]="kAnnotation",e[e.kMessage=5]="kMessage"}(D||(D={})),function(e){e[e.kInactive=0]="kInactive",e[e.kSend=1]="kSend",e[e.kRecv=2]="kRecv",e[e.kBoth=3]="kBoth"}(j||(j={})),function(e){e[e.kNormal=0]="kNormal",e[e.kSmooth=1]="kSmooth"}(F||(F={})),function(e){e[e.kRotation_0=0]="kRotation_0",e[e.kRotation_90=90]="kRotation_90",e[e.kRotation_180=180]="kRotation_180",e[e.kRotation_270=270]="kRotation_270"}(O||(O={})),function(e){e[e.kCoopration=1]="kCoopration",e[e.kRemoteControl=2]="kRemoteControl",e[e.kSubtitleRealtime=3]="kSubtitleRealtime",e[e.kSubtitleRecord=4]="kSubtitleRecord"}(V||(V={})),function(e){e[e.kCommon=0]="kCommon",e[e.kShareStart=1]="kShareStart",e[e.kShareEnd=2]="kShareEnd",e[e.kCoopStart=3]="kCoopStart",e[e.kCoopEnd=4]="kCoopEnd",e[e.kServiceOver=5]="kServiceOver"}(P||(P={})),function(e){e[e.kStart=0]="kStart",e[e.kChanging=1]="kChanging",e[e.kEnd=2]="kEnd"}(N||(N={}));let Y,$=!1,G=2;let H=0,X=!1;const z="undefined"!=typeof worker;z&&worker.onMessage((e=>{worker.onmessage&&worker.onmessage({data:e})}));const W=new o(z?worker:self),q=W.receiver("video-engine-host");q.implement("init",((t,[n,r=!1])=>e(void 0,void 0,void 0,(function*(){let e,s;if(z){const t=e=>!e||e.endsWith("/")?e:`${e}/`,[r,i=""]=n.split("?"),o=r.substring(r.lastIndexOf("/")+1);e=require(r),s=t(i)+o.replace(/\.js$/,".wasm")}else importScripts(n),e=LIBSVC,s=n.replace(/\.js$/,".wasm");const i=z?s:yield function(e,t=S){return t("readonly",(t=>T(t.get(e))))}(s).catch((()=>null));M=yield e({wasmBinary:i}).catch((e=>{throw function(e=S){e("readwrite",(e=>(e.clear(),T(e.transaction))))}(),e})),B=function(e,t){return n=>{const{BYTES_PER_ELEMENT:r}=e[t||E],s=n*r,i=e._malloc(s);return{BYTES_PER_ELEMENT:r,pointer:i,length:n,bytes:s,tuple:()=>[i,s],view:(s=!0)=>{const o=e[t||E].subarray(i/r,i+n);return s&&void 0!==o.constructor?new o.constructor(o.buffer,o.byteOffset,n):o},free:()=>e._free(i)}}}(M),L=function(e,t){return(n,r,s=!0)=>{const i=e[t||E],{BYTES_PER_ELEMENT:o}=i,a=i.subarray(n/o,n+r);return s&&void 0!==a.constructor?new a.constructor(a.buffer,a.byteOffset,r):a}}(M),Y=new M.TimerFactory({start:(e,t)=>setInterval((()=>M.TimerFactory.Run(e)),t),stop:e=>{clearInterval(e)}}),M.VideoChannel.Init(Y,((e,t)=>{r&&console.log(t)})),t.resolve()})))),q.implement("exit",(e=>{M.VideoChannel.Exit(),Y.delete(),e.resolve()})),q.implement("debug",((e,[t])=>{G=t,e.resolve()})),q.implement("suspend",(e=>{$=!0,e.resolve()})),q.implement("resume",(e=>{$=!1,e.resolve()})),q.implement("setup",((e,[t,n=D.kVideo])=>{const r=[],s=W.remote(t),i=W.receiver();r.unshift((()=>s.break()));const o=new M.SFUTransportProxy({Connect:e=>{const[t,n]=e.desc,r=L(t,n).slice();s.make("connect").transfer(r.buffer).post(Object.assign(Object.assign({},e),{desc:r}))},Disconnect:()=>{i.valid&&s.make("disconnect").post()},Subscribe:(e,t)=>{if(!i.valid)return;const n=e.map((e=>e.desc)).map((([e,t])=>L(e,t).slice()));s.make("subscribe").transfer(...n.map((e=>e.buffer))).post(e.map(((e,t)=>Object.assign(Object.assign({},e),{desc:n[t]}))),t.map((e=>e.ccid)))},SendData:(e,t)=>{const n=e.map((([e,t])=>L(e,t).slice()));s.make("senddata").transfer(...n.map((e=>e.buffer))).post(n,t)},SendSingal:(e,t,n)=>{const r=L(e,t).slice();s.make("sendsignal").transfer(r.buffer).post(r,n)}}),a=new M.VideoChannel(n);a.SetTransport(o);const c=new M.FrameSource;a.SetSource(c);let h=!1,u=33;let m;const f=()=>{m&&m(),m=null},v=()=>{u&&(m=(()=>{const e=setInterval((()=>{b&&b.valid&&b.make("capture").invoke().then((e=>e&&R(e)))}),1e3/u);return()=>clearInterval(e)})())};c.on("onstart",(()=>{h=!0,f(),v(),b&&b.make("onstart").post()})),c.on("onstop",(()=>{h=!1,f(),b&&b.make("onstop").post()}));const k=new M.FrameSink;a.SetSink(k);const g=(e,t=!0)=>{const{width:n,height:r,strideY:s,strideU:i,strideV:o}=e,{dataY:a,dataU:c,dataV:h}=e,l=L(a,s*r),d=L(c,i*Math.floor((r+1)/2)),u=L(h,o*Math.floor((r+1)/2));return{width:n,height:r,strideY:s,strideU:i,strideV:o,dataY:t?l.slice():l,dataU:t?d.slice():d,dataV:t?u.slice():u}};let b;k.on("onframe",((e,t)=>{if($)return;const n=E.get(e);if(!n)return;const{renderer:r,loadeddata:s}=n;if(s||(n.host.make("onloadeddata").post(),n.loadeddata=!0),t.width===n.width&&t.height===n.height||(n.width=t.width,n.height=t.height,n.host.make("onframechanged").post(n.width,n.height)),r){const e=new l(g(t,!1));return void r.onFrame(new d({buffer:e}),!0)}const i=g(t);n.host.make("onframe").transfer(i.dataY.buffer,i.dataU.buffer,i.dataV.buffer).post(i)}));const E=new Map;let S;r.unshift((()=>{a.Leave(),a.delete(),o.delete(),c.delete(),k.delete(),b&&b.break(),b=null,E.forEach((e=>e.host.break())),E.clear()}));const T=[];i.implement("mode",((e,[t])=>{M.VideoChannel.EncodeMode(t),e.resolve()})),i.implement("open",((e,[t])=>{S=t,S.orient!==j.kInactive&&a.Join(t),e.resolve()})),i.implement("subscribe",((e,[t,n])=>{A||S.orient===j.kInactive?T.push((()=>a.Subscribe(t,n))):a.Subscribe(t,n),n.forEach((e=>{const t=E.get(e);t&&(t.renderer&&t.renderer.clear(),t.host.break(),E.delete(e))})),e.resolve()})),i.implement("sendstats",(e=>{e.resolve(h?a.SendStats():null)})),i.implement("recvstats",((e,[t])=>{e.resolve(a.RecvStats(t))})),i.implement("sendreport",(e=>{e.resolve(h?a.SendReport():null)})),i.implement("recvreport",((e,[t])=>{e.resolve(a.RecvReport(t))}));const R=e=>{const t=Date.now(),{width:n,height:r,data:s}=e,i=4*n,o=B(i*r);o.view().set(s);const a=M.I420Buffer.FromABGR(n,r,o.pointer,i);o.free(),c.OnFrame(a),a.delete();const h=Date.now()-t;H=.3*h+.7*H,!X&&H>120&&(X=!0,b&&b.make("onbusy").post(X)),X&&H<60&&(X=!1,b&&b.make("onbusy").post(X))};i.implement("encode",((e,[t])=>{e.resolve(),R(t)})),i.implement("setsource",((e,[t,n])=>{b&&(b.break(),b=null),t&&(b=W.remote(t)),y(n),e.resolve(h)})),i.implement("setsink",((e,[t,n,r])=>{e.resolve();let s=E.get(t);s&&(s.host.break(),E.delete(t)),n&&(s={host:W.remote(n)},E.set(t,s),r&&(s.renderer=x[r-1]))}));const y=(e=33)=>{u!==e&&(u=e,m&&(f(),v()))};i.implement("setframerate",((e,[t])=>{y(t),e.resolve()})),i.implement("setorient",((e,[t])=>{if(e.resolve(),S.orient===t)return;const n=S.orient===j.kInactive;S.orient=t,t===j.kInactive?a.Leave():n?(a.Join(S),A=!0):A?T.push((()=>a.SetOrient(t))):a.SetOrient(t)})),r.unshift((()=>f()));const x=[];i.implement("load",((e,[t,n=!0])=>{const r=n?new w(t):new p(t);e.resolve(x.push(r))})),i.implement("unload",((e,[t])=>{e.resolve();const n=x[--t];if(!n)return;n.gl&&n.dispose();const r=[...E.entries()].filter((([,e])=>e.renderer===n));if(r&&r.forEach((([e])=>E.delete(e))),x[t]=null,t===x.length-1)for(;t>=0&&!x[t--];)x.pop()}));let A=!1;i.implement("onjoin",((e,[t,n])=>{const r=B(n.length);r.view().set(n),o.onjoin(t,r.pointer,r.bytes),r.free(),T.forEach((e=>e())),T.length=0,A=!1,e.resolve()})),i.implement("onleave",((e,[t])=>{o.onleave(t),e.resolve()})),i.implement("onstatus",((e,[t,n])=>{o.onstatus(t,n),t===C.kReconnectOK?(T.forEach((e=>e())),T.length=0):t===C.kReconnectNG&&(a.Leave(),a.Join(S)),e.resolve()})),i.implement("onsubscribe",((e,[t,n,r])=>{const s=B(r.length);s.view().set(r),o.onsubscribe(t,n,s.pointer,s.bytes),s.free(),e.resolve()})),i.implement("onsubscribeupdated",((e,[t])=>{o.onsubscribeupdated(t),e.resolve()})),i.implement("onbitrate",((e,[t])=>{o.onbitrate(t),e.resolve()})),i.implement("onsendstats",((e,[t])=>{o.onsendstats(t),e.resolve()})),i.implement("onrecvstats",((e,[t])=>{o.onrecvstats(t),e.resolve()})),i.implement("onsendreport",((e,[t])=>{o.onsendreport(t),e.resolve()})),i.implement("ontimestamps",(e=>{o.ontimestamps(),e.resolve()})),i.implement("onmediasync",((e,[t])=>{o.onmediasync(t),e.resolve()})),i.implement("onsignal",((e,[t])=>{const n=B(t.length);n.view().set(t),o.onsignal(n.pointer,n.bytes),n.free(),e.resolve()})),i.implement("ondata",((e,[t,n,r])=>{const s=B(t.length);s.view().set(t),o.ondata(s.pointer,s.bytes,n,r,-1),s.free(),e.resolve()})),i.onbreak=()=>{r.forEach((e=>e())),r.length=0},e.resolve(`${i}`)})),q.implement("setup2",((e,[t,n=D.kMessage])=>{const r=[],s=W.remote(t),i=W.receiver();r.unshift((()=>s.break()));const o=new M.SFUTransportProxy({Connect:e=>{const[t,n]=e.desc,r=L(t,n).slice();s.make("connect").transfer(r.buffer).post(Object.assign(Object.assign({},e),{desc:r}))},Disconnect:()=>{i.valid&&s.make("disconnect").post()},Subscribe:(e,t)=>{if(!i.valid)return;const n=e.map((e=>e.desc)).map((([e,t])=>L(e,t).slice()));s.make("subscribe").transfer(...n.map((e=>e.buffer))).post(e.map(((e,t)=>Object.assign(Object.assign({},e),{desc:n[t]}))),t.map((e=>e.ccid)))},SendData:(e,t)=>{const n=e.map((([e,t])=>L(e,t).slice()));s.make("senddata").transfer(...n.map((e=>e.buffer))).post(n,t)},SendSingal:(e,t,n)=>{const r=L(e,t).slice();s.make("sendsignal").transfer(r.buffer).post(r,n)}}),a=new M.DataChannel(n);a.SetTransport(o),i.implement("onjoin",((e,[t,n])=>{const r=B(n.length);r.view().set(n),o.onjoin(t,r.pointer,r.bytes),r.free(),e.resolve()})),i.implement("onleave",((e,[t])=>{o.onleave(t),e.resolve()})),i.implement("onstatus",((e,[t,n])=>{o.onstatus(t,n),e.resolve()})),i.implement("onsubscribe",((e,[t,n,r])=>{const s=B(r.length);s.view().set(r),o.onsubscribe(t,n,s.pointer,s.bytes),s.free(),e.resolve()})),i.implement("onsubscribeupdated",((e,[t])=>{o.onsubscribeupdated(t),e.resolve()})),i.implement("onbitrate",((e,[t])=>{o.onbitrate(t),e.resolve()})),i.implement("onsendstats",((e,[t])=>{o.onsendstats(t),e.resolve()})),i.implement("onrecvstats",((e,[t])=>{o.onrecvstats(t),e.resolve()})),i.implement("onsendreport",((e,[t])=>{o.onsendreport(t),e.resolve()})),i.implement("ontimestamps",(e=>{o.ontimestamps(),e.resolve()})),i.implement("onmediasync",((e,[t])=>{o.onmediasync(t),e.resolve()})),i.implement("onsignal",((e,[t])=>{const n=B(t.length);n.view().set(t),o.onsignal(n.pointer,n.bytes),n.free(),e.resolve()})),i.implement("ondata",((e,[t,n,r])=>{const s=B(t.length);s.view().set(t),o.ondata(s.pointer,s.bytes,n,r,-1),s.free(),e.resolve()})),r.unshift((()=>{a.Leave(),a.delete(),o.delete()})),i.implement("open",((e,[t])=>{a.Join(t),e.resolve()})),i.implement("datastream",((e,[t=V.kRemoteControl,n])=>{const r=W.remote(n),s=a.CreateDataStream(t);s.on("ondata",((e,t,n)=>{const s=L(e,t).slice();r.make("ondata").transfer(s.buffer).post(s,n)}));const i=W.receiver();i.implement("write",((e,[t,n,r])=>{const i=B(t.length);i.view().set(t),s.Write(i.pointer,i.bytes,n,r),i.free(),e.resolve()})),i.implement("subscribe",((e,[t,n])=>{s.Subscribe(t,n),e.resolve()})),i.onbreak=()=>s.delete(),e.resolve(`${i}`)})),i.implement("subtitlestream",((e,[t=V.kSubtitleRealtime,n])=>{const r=new M.SubtitleRealtime,s=W.remote(n),i=a.CreateDataStream(t);i.on("ondata",((e,t,n)=>{r.decode([e,t],(e=>{s.make("ondata").post(e,n)}))}));const o=W.receiver();o.implement("write",((e,[t,n])=>{r.encode(t,(([e,t])=>{i.Write(e,t,n,{direct:!!n.length,merge:!1})})),e.resolve()})),o.implement("subscribe",((e,[t,n])=>{i.Subscribe(t,n),e.resolve()})),o.onbreak=()=>i.delete(),e.resolve(`${o}`)})),i.onbreak=()=>{r.forEach((e=>e())),r.length=0},e.resolve(`${i}`)}))}();