trtc-sdk-v5 5.11.2-wasm.1 → 5.11.2-wasm.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/{selfie_segmentation/selfie_segmentation_landscape.tflite → mediapipe/selfie_segmenter_landscape.tflite} +0 -0
- package/assets/mediapipe/vision.js +63 -0
- package/assets/mediapipe/vision_wasm_internal.js.gz +0 -0
- package/assets/{face_detection/vision_wasm_internal.gz → mediapipe/vision_wasm_internal.wasm.gz} +0 -0
- package/assets/mediapipe/vision_wasm_nosimd_internal.js.gz +0 -0
- package/assets/{face_detection/vision_wasm_nosimd_internal.gz → mediapipe/vision_wasm_nosimd_internal.wasm.gz} +0 -0
- package/package.json +1 -1
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/cross-room/package.json +1 -1
- package/plugins/custom-encryption/package.json +1 -1
- package/plugins/device-detector/device-detector.esm.d.ts +1 -0
- package/plugins/device-detector/device-detector.esm.js +8 -8
- package/plugins/device-detector/device-detector.umd.js +2 -2
- package/plugins/device-detector/package.json +1 -1
- package/plugins/small-stream-auto-switcher/package.json +1 -1
- package/plugins/video-decoder/package.json +1 -1
- package/plugins/video-effect/basic-beauty/basic-beauty.esm.js +1 -1
- package/plugins/video-effect/basic-beauty/basic-beauty.umd.js +1 -1
- package/plugins/video-effect/basic-beauty/package.json +1 -1
- package/plugins/video-effect/beauty/package.json +1 -1
- package/plugins/video-effect/video-mixer/package.json +1 -1
- package/plugins/video-effect/virtual-background/package.json +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.esm.js +1 -1
- package/plugins/video-effect/virtual-background/virtual-background.umd.js +1 -1
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/voice-changer/package.json +1 -1
- package/trtc.esm.js +48 -48
- package/trtc.js +1 -1
- package/assets/face_detection/vision_wasm_internal.js +0 -20
- package/assets/face_detection/vision_wasm_nosimd_internal.js +0 -20
- package/assets/selfie_segmentation/package.json +0 -27
- package/assets/selfie_segmentation/selfie_segmentation.binarypb +0 -0
- package/assets/selfie_segmentation/selfie_segmentation.tflite +0 -0
- package/assets/selfie_segmentation/selfie_segmentation_solution_simd_wasm_bin.data +0 -0
- package/assets/selfie_segmentation/selfie_segmentation_solution_simd_wasm_bin.wasm +0 -0
- package/assets/selfie_segmentation/selfie_segmentation_solution_wasm_bin.wasm +0 -0
- /package/assets/{face_detection → mediapipe}/blaze_face_short_range.tflite +0 -0
package/trtc.esm.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
var rE=Object.create;var yn=Object.defineProperty,iE=Object.defineProperties,Hp=Object.getOwnPropertyDescriptor,oE=Object.getOwnPropertyDescriptors,sE=Object.getOwnPropertyNames,Bp=Object.getOwnPropertySymbols,Wp=Object.getPrototypeOf,Gp=Object.prototype.hasOwnProperty,nE=Object.prototype.propertyIsEnumerable,aE=Reflect.get;var Wi=Math.pow,qu=(i,t,e)=>t in i?yn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,z=(i,t)=>{for(var e in t||(t={}))Gp.call(t,e)&&qu(i,e,t[e]);if(Bp)for(var e of Bp(t))nE.call(t,e)&&qu(i,e,t[e]);return i},Te=(i,t)=>iE(i,oE(t));var bn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Kr=(i,t)=>{for(var e in t)yn(i,e,{get:t[e],enumerable:!0})},cE=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of sE(t))!Gp.call(i,o)&&o!==e&&yn(i,o,{get:()=>t[o],enumerable:!(r=Hp(t,o))||r.enumerable});return i};var Gi=(i,t,e)=>(e=i!=null?rE(Wp(i)):{},cE(t||!i||!i.__esModule?yn(e,"default",{value:i,enumerable:!0}):e,i));var Z=(i,t,e,r)=>{for(var o=r>1?void 0:r?Hp(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&yn(t,e,o),o};var u=(i,t,e)=>qu(i,typeof t!="symbol"?t+"":t,e);var Bt=(i,t,e)=>aE(Wp(i),e,t);var A=(i,t,e)=>new Promise((r,o)=>{var s=l=>{try{c(e.next(l))}catch(m){o(m)}},n=l=>{try{c(e.throw(l))}catch(m){o(m)}},c=l=>l.done?r(l.value):Promise.resolve(l.value).then(s,n);c((e=e.apply(i,t)).next())});var Zi=bn((NA,Cl)=>{"use strict";var p_=Object.prototype.hasOwnProperty,Wt="~";function Zn(){}Object.create&&(Zn.prototype=Object.create(null),new Zn().__proto__||(Wt=!1));function h_(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Sh(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new h_(e,r||i,o),n=Wt?Wt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function qc(i,t){--i._eventsCount===0?i._events=new Zn:delete i._events[t]}function Ut(){this._events=new Zn,this._eventsCount=0}Ut.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)p_.call(e,r)&&t.push(Wt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Ut.prototype.listeners=function(t){var e=Wt?Wt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Ut.prototype.listenerCount=function(t){var e=Wt?Wt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Ut.prototype.emit=function(t,e,r,o,s,n){var c=Wt?Wt+t:t;if(!this._events[c])return!1;var l=this._events[c],m=arguments.length,E,g;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),m){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,o),!0;case 5:return l.fn.call(l.context,e,r,o,s),!0;case 6:return l.fn.call(l.context,e,r,o,s,n),!0}for(g=1,E=new Array(m-1);g<m;g++)E[g-1]=arguments[g];l.fn.apply(l.context,E)}else{var _=l.length,v;for(g=0;g<_;g++)switch(l[g].once&&this.removeListener(t,l[g].fn,void 0,!0),m){case 1:l[g].fn.call(l[g].context);break;case 2:l[g].fn.call(l[g].context,e);break;case 3:l[g].fn.call(l[g].context,e,r);break;case 4:l[g].fn.call(l[g].context,e,r,o);break;default:if(!E)for(v=1,E=new Array(m-1);v<m;v++)E[v-1]=arguments[v];l[g].fn.apply(l[g].context,E)}}return!0};Ut.prototype.on=function(t,e,r){return Sh(this,t,e,r,!1)};Ut.prototype.once=function(t,e,r){return Sh(this,t,e,r,!0)};Ut.prototype.removeListener=function(t,e,r,o){var s=Wt?Wt+t:t;if(!this._events[s])return this;if(!e)return qc(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&qc(this,s);else{for(var c=0,l=[],m=n.length;c<m;c++)(n[c].fn!==e||o&&!n[c].once||r&&n[c].context!==r)&&l.push(n[c]);l.length?this._events[s]=l.length===1?l[0]:l:qc(this,s)}return this};Ut.prototype.removeAllListeners=function(t){var e;return t?(e=Wt?Wt+t:t,this._events[e]&&qc(this,e)):(this._events=new Zn,this._eventsCount=0),this};Ut.prototype.off=Ut.prototype.removeListener;Ut.prototype.addListener=Ut.prototype.on;Ut.prefixed=Wt;Ut.EventEmitter=Ut;typeof Cl!="undefined"&&(Cl.exports=Ut)});var ed=bn((ny,Ph)=>{"use strict";var xh=Ph.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(xh).forEach(function(i){var t=xh[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Uh=bn(hi=>{"use strict";var Gs=function(i){return String(Number(i))===i?Number(i):i},A_=function(i,t,e,r){if(r&&!e)t[r]=Gs(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Gs(i[o+1]))},y_=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;A_(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},kh=ed(),b_=RegExp.prototype.test.bind(/^([a-z])=(.*)/);hi.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(b_).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var c=0;c<(kh[s]||[]).length;c+=1){var l=kh[s][c];if(l.reg.test(n))return y_(l,r,n)}}),t.media=e,t};var Lh=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Gs(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};hi.parseParams=function(i){return i.split(/;\s?/).reduce(Lh,{})};hi.parseFmtpConfig=hi.parseParams;hi.parsePayloads=function(i){return i.toString().split(" ").map(Number)};hi.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Gs),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};hi.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Lh,{})})};hi.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Gs(e):(r=Gs(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Fh=bn((cy,Vh)=>{"use strict";var Hl=ed(),R_=/%[sdv%]/g,v_=function(i){var t=1,e=arguments,r=e.length;return i.replace(R_,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},sa=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return v_.apply(null,o)},C_=["v","o","s","i","u","e","p","c","b","t","r","z","a"],N_=["i","c","b","a"];Vh.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||C_,r=t.innerOrder||N_,o=[];return e.forEach(function(s){Hl[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(sa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(c){o.push(sa(s,n,c))})})}),i.media.forEach(function(s){o.push(sa("m",Hl.m[0],s)),r.forEach(function(n){Hl[n].forEach(function(c){c.name in s&&s[c.name]!=null?o.push(sa(n,c,s)):c.push in s&&s[c.push]!=null&&s[c.push].forEach(function(l){o.push(sa(n,c,l))})})})}),o.join(`\r
|
|
1
|
+
var aE=Object.create;var An=Object.defineProperty,cE=Object.defineProperties,zp=Object.getOwnPropertyDescriptor,dE=Object.getOwnPropertyDescriptors,uE=Object.getOwnPropertyNames,Jp=Object.getOwnPropertySymbols,Xp=Object.getPrototypeOf,Qp=Object.prototype.hasOwnProperty,lE=Object.prototype.propertyIsEnumerable,mE=Reflect.get;var Gi=Math.pow,zu=(i,t,e)=>t in i?An(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,X=(i,t)=>{for(var e in t||(t={}))Qp.call(t,e)&&zu(i,e,t[e]);if(Jp)for(var e of Jp(t))lE.call(t,e)&&zu(i,e,t[e]);return i},Te=(i,t)=>cE(i,dE(t));var bn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),ei=(i,t)=>{for(var e in t)An(i,e,{get:t[e],enumerable:!0})},pE=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of uE(t))!Qp.call(i,o)&&o!==e&&An(i,o,{get:()=>t[o],enumerable:!(r=zp(t,o))||r.enumerable});return i};var ji=(i,t,e)=>(e=i!=null?aE(Xp(i)):{},pE(t||!i||!i.__esModule?An(e,"default",{value:i,enumerable:!0}):e,i));var Z=(i,t,e,r)=>{for(var o=r>1?void 0:r?zp(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&An(t,e,o),o};var u=(i,t,e)=>zu(i,typeof t!="symbol"?t+"":t,e);var Bt=(i,t,e)=>mE(Xp(i),e,t);var y=(i,t,e)=>new Promise((r,o)=>{var s=l=>{try{c(e.next(l))}catch(m){o(m)}},n=l=>{try{c(e.throw(l))}catch(m){o(m)}},c=l=>l.done?r(l.value):Promise.resolve(l.value).then(s,n);c((e=e.apply(i,t)).next())});var Zi=bn((Oy,Ml)=>{"use strict";var E_=Object.prototype.hasOwnProperty,Wt="~";function Kn(){}Object.create&&(Kn.prototype=Object.create(null),new Kn().__proto__||(Wt=!1));function __(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Ch(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new __(e,r||i,o),n=Wt?Wt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function zc(i,t){--i._eventsCount===0?i._events=new Kn:delete i._events[t]}function Ut(){this._events=new Kn,this._eventsCount=0}Ut.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)E_.call(e,r)&&t.push(Wt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Ut.prototype.listeners=function(t){var e=Wt?Wt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Ut.prototype.listenerCount=function(t){var e=Wt?Wt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Ut.prototype.emit=function(t,e,r,o,s,n){var c=Wt?Wt+t:t;if(!this._events[c])return!1;var l=this._events[c],m=arguments.length,f,E;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),m){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,o),!0;case 5:return l.fn.call(l.context,e,r,o,s),!0;case 6:return l.fn.call(l.context,e,r,o,s,n),!0}for(E=1,f=new Array(m-1);E<m;E++)f[E-1]=arguments[E];l.fn.apply(l.context,f)}else{var _=l.length,v;for(E=0;E<_;E++)switch(l[E].once&&this.removeListener(t,l[E].fn,void 0,!0),m){case 1:l[E].fn.call(l[E].context);break;case 2:l[E].fn.call(l[E].context,e);break;case 3:l[E].fn.call(l[E].context,e,r);break;case 4:l[E].fn.call(l[E].context,e,r,o);break;default:if(!f)for(v=1,f=new Array(m-1);v<m;v++)f[v-1]=arguments[v];l[E].fn.apply(l[E].context,f)}}return!0};Ut.prototype.on=function(t,e,r){return Ch(this,t,e,r,!1)};Ut.prototype.once=function(t,e,r){return Ch(this,t,e,r,!0)};Ut.prototype.removeListener=function(t,e,r,o){var s=Wt?Wt+t:t;if(!this._events[s])return this;if(!e)return zc(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&zc(this,s);else{for(var c=0,l=[],m=n.length;c<m;c++)(n[c].fn!==e||o&&!n[c].once||r&&n[c].context!==r)&&l.push(n[c]);l.length?this._events[s]=l.length===1?l[0]:l:zc(this,s)}return this};Ut.prototype.removeAllListeners=function(t){var e;return t?(e=Wt?Wt+t:t,this._events[e]&&zc(this,e)):(this._events=new Kn,this._eventsCount=0),this};Ut.prototype.off=Ut.prototype.removeListener;Ut.prototype.addListener=Ut.prototype.on;Ut.prefixed=Wt;Ut.EventEmitter=Ut;typeof Ml!="undefined"&&(Ml.exports=Ut)});var td=bn((uA,$h)=>{"use strict";var Fh=$h.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(Fh).forEach(function(i){var t=Fh[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Wh=bn(fi=>{"use strict";var Gs=function(i){return String(Number(i))===i?Number(i):i},v_=function(i,t,e,r){if(r&&!e)t[r]=Gs(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Gs(i[o+1]))},C_=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;v_(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},Bh=td(),N_=RegExp.prototype.test.bind(/^([a-z])=(.*)/);fi.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(N_).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var c=0;c<(Bh[s]||[]).length;c+=1){var l=Bh[s][c];if(l.reg.test(n))return C_(l,r,n)}}),t.media=e,t};var Hh=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Gs(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};fi.parseParams=function(i){return i.split(/;\s?/).reduce(Hh,{})};fi.parseFmtpConfig=fi.parseParams;fi.parsePayloads=function(i){return i.toString().split(" ").map(Number)};fi.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Gs),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};fi.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Hh,{})})};fi.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Gs(e):(r=Gs(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var jh=bn((mA,Gh)=>{"use strict";var ql=td(),D_=/%[sdv%]/g,w_=function(i){var t=1,e=arguments,r=e.length;return i.replace(D_,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},ca=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return w_.apply(null,o)},M_=["v","o","s","i","u","e","p","c","b","t","r","z","a"],O_=["i","c","b","a"];Gh.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||M_,r=t.innerOrder||O_,o=[];return e.forEach(function(s){ql[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(ca(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(c){o.push(ca(s,n,c))})})}),i.media.forEach(function(s){o.push(ca("m",ql.m[0],s)),r.forEach(function(n){ql[n].forEach(function(c){c.name in s&&s[c.name]!=null?o.push(ca(n,c,s)):c.push in s&&s[c.push]!=null&&s[c.push].forEach(function(l){o.push(ca(n,c,l))})})})}),o.join(`\r
|
|
2
2
|
`)+`\r
|
|
3
|
-
`}});var $h=bn(Hr=>{"use strict";var jo=Uh(),D_=Fh(),M_=ed();Hr.grammar=M_;Hr.write=D_;Hr.parse=jo.parse;Hr.parseParams=jo.parseParams;Hr.parseFmtpConfig=jo.parseFmtpConfig;Hr.parsePayloads=jo.parsePayloads;Hr.parseRemoteCandidates=jo.parseRemoteCandidates;Hr.parseImageAttributes=jo.parseImageAttributes;Hr.parseSimulcastStreamList=jo.parseSimulcastStreamList});var jp=(te=>(te[te.INVALID_PARAMETER=4096]="INVALID_PARAMETER",te[te.INVALID_OPERATION=4097]="INVALID_OPERATION",te[te.NOT_SUPPORTED=4098]="NOT_SUPPORTED",te[te.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",te[te.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",te[te.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",te[te.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",te[te.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",te[te.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",te[te.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",te[te.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",te[te.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",te[te.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",te[te.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",te[te.CLIENT_BANNED=16448]="CLIENT_BANNED",te[te.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",te[te.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",te[te.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",te[te.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",te[te.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",te[te.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",te[te.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",te[te.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",te[te.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",te[te.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",te[te.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",te[te.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",te[te.API_CALL_ABORTED=16461]="API_CALL_ABORTED",te[te.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",te[te.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",te[te.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",te[te.UNKNOWN=65535]="UNKNOWN",te))(jp||{}),q=jp;var dE=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},Ju=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let c=`<${dE(o)} 0x${o.toString(16)}>`,l=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(c)?"":` ${c}`}`;super(l);u(this,"code");u(this,"extraCode");u(this,"message");u(this,"originMessage");u(this,"name");u(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=l,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ue=Ju;var aA=new Date().getTime(),uE=0;var Rn=function(){return new Date().getTime()+uE},lc=function(){let i=new Date;return i.setTime(Rn()),i.toLocaleString()},Ss=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var Ur={};Kr(Ur,{bytes2ms:()=>th,calculateScaleResolutionDownNumber:()=>vc,convertObjectNumberToInt:()=>Un,copyProperties:()=>eh,deepClone:()=>Po,deepMerge:()=>ur,delay:()=>Vn,fibonacci:()=>ko,formatedTime:()=>Sc,getConstructorName:()=>vs,getContainerFromElement:()=>dh,getEnv:()=>Yp,getInternalVersion:()=>ah,getLoggerUrl:()=>oi,getMediaStreamTrackInfo:()=>Rc,getMuteStateFromFlag:()=>Ln,getNetworkType:()=>xn,getNumNetworkType:()=>Ic,getReconnectionTimeout:()=>ih,getStringByteLength:()=>uh,getTurnServer:()=>ch,getUint32Version:()=>yc,getValueType:()=>ct,getViewListFromView:()=>Ds,glog:()=>Pn,ipv4ToUint32:()=>Ns,isArray:()=>ot,isAudioWorkletSupported:()=>nh,isBoolean:()=>st,isConstructor:()=>Lo,isEmpty:()=>Cs,isFunction:()=>We,isLangChinese:()=>Sr,isMediaStreamTrack:()=>oh,isNumber:()=>Pe,isObject:()=>er,isOverseaSdkAppId:()=>ii,isPlainObject:()=>Lt,isPortrait:()=>nl,isPromise:()=>qi,isRemoteTrack:()=>sh,isRotate90Or270:()=>si,isString:()=>we,isUndefined:()=>P,loadImage:()=>Ms,ms2bytes:()=>rh,ms2samples:()=>sl,normalizeUrl:()=>Uo,performanceNow:()=>Ie,promiseAny:()=>kn,samples2ms:()=>ol,setNetworkType:()=>Kp,stringify:()=>dr,stringifyIncludeValue:()=>Ac,throttlePromise:()=>bc});var il={};Kr(il,{AUDIO_MUTE_BIT:()=>gc,AUDIO_STAT_BIT:()=>bs,AUX_STAT_BIT:()=>Dn,AUX_STREAM_MSID:()=>AE,BACKEND_ENV:()=>fc,BASE_DOC_URL:()=>kr,BASE_HOST:()=>qp,CAPABILITIES_KEYS:()=>Tc,CLASS_NAME:()=>qE,CLOUD_CONSOLE_URL:()=>hE,CROSS_ROOM_BIT:()=>IE,DATA_FREEZE_TIMING:()=>_c,DOC_URL:()=>fE,DTLS_STATE_UNKNOWN:()=>OE,ENV_NAME:()=>ei,EXCHANGE_SDP_TIMEOUT:()=>VE,IS_WORKER:()=>As,IS_WORKLET:()=>vn,KIBANA_EVENT:()=>ti,LOCAL_STREAM_PUBLISH_STATE:()=>zp,LOGGER_CMD_TYPE:()=>ji,LOGGER_DOMAIN:()=>Qu,LOGGER_DOMAIN_OVERSEA:()=>Yu,LOG_LEVEL:()=>Tr,LOG_LEVEL_NAME:()=>zE,MAIN_STREAM_MSID:()=>SE,MAX_RTT:()=>wn,MICROPHONE_COMMUNICATIONS:()=>JE,MICROPHONE_DEFAULT:()=>xo,MUTE_ALL_BIT:()=>TE,NAME:()=>N,NETWORK_TYPE:()=>wo,NOT_SUPPORTED_H264:()=>$E,PAUSED_RETRY_COUNT:()=>Oo,PEERCONNECTION_CONNECTING_TIMEOUT:()=>GE,PEER_CONNECTION_STATE:()=>xE,PEER_LEAVE_REASON:()=>Xp,RECOVER_CAPTURE_INTERVAL:()=>Rs,REMOTE_STREAM_TYPE_AUX:()=>bE,REMOTE_STREAM_TYPE_MAIN:()=>yE,RENDER_FREEZE_TIMING:()=>BE,SCHEDULE_DOMAIN:()=>ri,SCHEDULE_TIMEOUT:()=>jE,SDP_SEMANTICS_PLAN_B:()=>FE,SDP_SEMANTICS_UNIFIED_PLAN:()=>rl,SECOND_HOST:()=>mE,SIGNAL_PING_PONG_INTERVAL:()=>EE,SIGNAL_PING_TIMEOUT:()=>gE,SIGNAL_RECONNECTION_COUNT:()=>kE,SMALL_STAT_BIT:()=>el,SPEAKER_DEFAULT:()=>Mn,STORAGE_EXPIRES_TIME:()=>mc,STREAM_TYPE_BIG:()=>HE,STREAM_TYPE_SMALL:()=>WE,SUBSCRIBE_SMALL_RETRY_COUNT:()=>XE,SYNC_USER_LIST_INTERVAL:()=>LE,Scene:()=>Lr,THIRD_HOST:()=>pE,TRANSPORT_DIRECTION:()=>_E,TRTC_ERROR_ASSISTANCE:()=>Zu,TRTC_QUALITY_BAD:()=>DE,TRTC_QUALITY_DISCONNECTED:()=>wE,TRTC_QUALITY_EXCELLENT:()=>vE,TRTC_QUALITY_GOOD:()=>CE,TRTC_QUALITY_POOR:()=>NE,TRTC_QUALITY_UNKNOWN:()=>RE,TRTC_QUALITY_VERY_BAD:()=>ME,UPDATE_OFFER_TIMEOUT:()=>UE,VIDEO_MUTE_BIT:()=>Ec,VIDEO_STAT_BIT:()=>ys,audioProfileMap:()=>pc,defaultBigVideoProfile:()=>Nn,defaultSmallVideoProfile:()=>Ku,getRetryCount:()=>PE,getScriptDir:()=>lE,innerVersion:()=>zu,loggerProxy:()=>Cn,screenProfileMap:()=>hc,setLoggerProxy:()=>Mo,setRetryCount:()=>tl,setVersion:()=>Xu,version:()=>at,videoProfileMap:()=>Ir});var zu="4.15.00.1600",at="5.0.0";function Xu(i){at=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));zu=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var As=typeof importScripts!="undefined",vn=typeof registerProcessor!="undefined",lE=()=>{let i=As?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Cn="",Mo=i=>Cn=i,qp="web.sdk.qcloud.com",mE="web.sdk.tencent.cn",pE="web.sdk.cloud.tencent.cn",hE="https://console.cloud.tencent.com/trtc",kr=`https://${qp}/trtc/webrtc/v5/doc`,fE=`${kr}/zh-cn/`,Qu="https://yun.tim.qq.com",Yu="https://apisgp.my-imcloud.com",Zu="trtc_error_assistance",ji={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ei={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Tr=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(Tr||{}),gE=18e3,EE=2e3,wo={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},mc=7*24*3600*1e3,pc={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},Ir={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},Nn=Ir["480p_2"],Ku=Ir["120p_2"],hc={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},N={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture"},_E={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},fc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Lr=(e=>(e.LIVE="live",e.RTC="rtc",e))(Lr||{}),ys=1,el=2,Dn=4,bs=8,gc=64,Ec=16,TE=112,IE=128,SE="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",AE="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",yE=N.MAIN,bE=N.AUXILIARY,RE=0,vE=1,CE=2,NE=3,DE=4,ME=5,wE=6,OE="unknown",xE={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Jp=1/0;function tl(i){Jp=i}function PE(){return Jp}var kE=30,ti={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},LE=1e4,UE=1e4,VE=1e4,rl="unified-plan",FE="plan-b",$E=1028,zp=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(zp||{}),_c=500,BE=1e3,HE=N.BIG,WE=N.SMALL,GE=10*1e3,ri={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},jE=2e3,qE={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Oo=5,xo="default",Mn=xo,JE="communications",zE=Object.keys(Tr),Xp=["normal leave","timeout leave","kick","role change"],XE=10,Rs=2e3,Tc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],wn=10*1e3;var Yp=function(){return new URLSearchParams(location.search).get("trtc_env")||""},ii=i=>Number(i)<14e8,oi=function(i,t){let e;Cn?e=Cn:e=ii(i)?Yu:Qu;let r=Math.floor(Math.random()*Wi(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},On="unknown";function xn(){if(On!=="unknown")return On;let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r&&(On=Zp(r,o)),On}function Zp(i,t){if(wo[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Kp(i){On=Zp(i)}function Ic(){return wo[xn()]}function eh(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function th(i,t=48e3){return ol(i/4,t)}function ol(i,t=48e3){return i*1e3/t}function rh(i,t=48e3){return sl(i,t)*4}function sl(i,t=48e3){return i*t/1e3}var Pn=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Sr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Lt=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function ko(i,t=1,e=1){return i<=1?e:ko(i-1,e,t+e)}function ih(i){return i>8?30*1e3:ko(i)*1e3}function ct(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var We=i=>typeof i=="function",P=i=>typeof i=="undefined",we=i=>typeof i=="string",Pe=i=>typeof i=="number",st=i=>typeof i=="boolean",er=i=>ct(i)==="object",ot=i=>ct(i)==="array",oh=i=>ct(i)==="MediaStreamTrack".toLowerCase(),sh=i=>i.isRemote,qi=i=>ct(i)==="promise",Lo=i=>We(i)&&i.prototype.constructor===i,vs=i=>Lo(i)?i.prototype.constructor.name:"",nh=typeof AudioWorkletNode!="undefined";function kn(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function Ie(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Qp=i=>+i<10?`0${i}`:i,ah=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Qp(e[1])+Qp(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},QE=Object.prototype.hasOwnProperty,{toString:mA}=Object.prototype;function Cs(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Lt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(QE.call(i,t))return!1;return!0}}return!1}function Ln(i,t){return{userId:t,hasAudio:!!(i&bs),hasVideo:!!(i&ys),hasAuxiliary:!!(i&Dn),hasSmall:!!(i&el),audioMuted:!!(i&gc),videoMuted:!!(i&Ec),audioAvailable:!!(i&bs)&&!(i&gc),videoAvailable:!!(i&ys)&&!(i&Ec)}}function ch(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!P(i.username)&&!P(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",P(i.credentialType)||(t.credentialType=i.credentialType)),t}function Ns(i,t=!0){if(!we(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var ur=function(i,t,e,r){if(!(er(i)&&er(t)))return 0;let o=0,s=Object.keys(t),n;for(let c=0,l=s.length;c<l;c++)if(n=s[c],!(P(t[n])||e&&e.includes(n)))if(er(i[n])&&er(t[n]))o+=ur(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Po(t[n]),o+=1)}return o};function Po(i){if(ot(i)){let t=[];return i.forEach((e,r)=>{t[r]=Po(e)}),t}if(er(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Po(i[e])}),t}return i}var Ds=i=>{let t=[];if(ot(i))t=[...i];else if(we(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},dh=i=>we(i)?document.getElementById(i):i,YE=i=>{let t=l=>l<10?`0${l}`:`${l}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),c=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${c}`},Sc=()=>YE(new Date);function dr(i,{keysToInclude:t,keysToExclude:e}){try{if(ot(i))return`[${i.map(n=>dr(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Lt(i)||!ot(t)&&!ot(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Lt(i[n])||ot(i[n])?JSON.parse(dr(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function Ac(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),dr(i,{keysToInclude:e})}function uh(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var nl=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},Ms=i=>A(void 0,null,function*(){return new Promise((t,e)=>{let r;if(we(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new ue({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),yc=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Un=i=>(Object.keys(i).forEach(t=>{Pe(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Lt(i[t])||ot(i[t]))&&Un(i[t])}),i);function Vn(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function bc(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function Uo(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function Rc(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:c}=(t=i.getSettings)==null?void 0:t.call(i),l=i.kind===N.AUDIO?`${s}x${n}@${c}`:`${e}x${r}@${o}`,m=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${l}${m}`}catch(e){return""}}function vc(i,t){return i.width*i.height===t.width*t.height?1:nl()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function si(i){return i===90||i===270}function ni({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(l=>l.text()).then(l=>{try{s({data:JSON.parse(l)})}catch(m){s({data:l})}},n);let c=new XMLHttpRequest;c.onreadystatechange=()=>{if(c.readyState===4)if(c.status>=200&&c.status<300)try{let l=JSON.parse(c.response);s({data:l})}catch(l){s({data:c.response})}else n({status:c.status,statusText:c.statusText||"request failed!"})},c.timeout=r||5e3,c.open(e,i,!0),c.send(t)})}function al(i){return A(this,null,function*(){let t=Ie(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),c=yield(yield(yield new Response(o)).blob()).arrayBuffer();return $.debug(`compressJSON ${e.length} -> ${c.byteLength} ${Ie()-t}ms`),c}catch(r){return e}})}var ZE=Object.prototype.hasOwnProperty;var Ji=i=>typeof i=="function",lh=i=>typeof i=="undefined";var mh=i=>typeof i=="boolean";var cl=i=>i.isRemote;var dl=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function ph(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(dl(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(ZE.call(i,t))return!1;return!0}}return!1}var KE=0,e_=1,hh=2;function t_({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...c){let{retries:l=5,timeout:m=1e3}=t,E=0,g=-1,_=KE,v=(L,x)=>A(this,null,function*(){let M=n||this;try{let B=yield i.apply(M,c);E>0&&s&&s.call(this,E),E=0,L(B)}catch(B){let ee=()=>{clearTimeout(g),E=0,_=hh,x(B)},pe=()=>{_!==hh&&E<(Ji(l)?l():l)?(E++,_=e_,Ji(r)&&r.call(this,E,ee),g=window.setTimeout(()=>{g=-1,v(L,x)},Ji(m)?m(E):m)):(ee(),Ji(o)&&o.call(this,B))};Ji(e)?e.call(this,{error:B,retry:pe,reject:x,retryFuncArgs:c,retriedCount:E}):pe()}});return new Promise(v)}}var zi=t_;var ws=class{constructor(t){u(this,"userId");u(this,"remoteUserId");u(this,"id");u(this,"sdkAppId");u(this,"type");u(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=mh(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}createChild(t){return Object.setPrototypeOf(t,this)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${r?`|${r}`:""}]`),$.log(t,e,lh(this.userId)||ph(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var Bs={};Kr(Bs,{ANDROID_VERSION:()=>ml,CHROME_MAJOR_VERSION:()=>Fr,CHROME_VERSION:()=>jc,EDGE_VERSION:()=>Dc,EDG_MAJOR_VERSION:()=>pl,EDG_VERSION:()=>Mc,FIREFOX_MAJOR_VERSION:()=>Nc,FIREFOX_VERSION:()=>Cc,HUAWEI_VERSION:()=>$c,IE_VERSION:()=>n_,IOS_MAIN_VERSION:()=>Jt,IOS_VERSION:()=>Yi,IPADQQB_VERSION:()=>Vc,IS_ANDROID:()=>mt,IS_ANDROID_WEBVIEW:()=>u_,IS_ANY_SAFARI:()=>Qi,IS_CHROME:()=>Fs,IS_CHROME_OS:()=>hl,IS_CHROMIUM_BASE:()=>ai,IS_DESKTOP_IOS_CHROME:()=>Al,IS_EDG:()=>Ps,IS_EDGE:()=>Vo,IS_ELECTRON:()=>c_,IS_FIREFOX:()=>Ht,IS_HEADLESS_CHROME:()=>Tl,IS_HONOR:()=>El,IS_HUAWEI:()=>gl,IS_HUAWEIBROWSER:()=>qn,IS_IE:()=>_h,IS_IE8:()=>s_,IS_IOS:()=>lt,IS_IOS_13_OR_14:()=>Sl,IS_IOS_15_1:()=>Il,IS_IOS_CHROME:()=>Th,IS_IPAD:()=>xs,IS_IPADQQB:()=>Wn,IS_IPAD_PRO:()=>ll,IS_IPHONE:()=>Xi,IS_IPOD:()=>Eh,IS_LINUX:()=>Gn,IS_LOCAL:()=>Rr,IS_MAC:()=>br,IS_MACQQB:()=>Hn,IS_MIBROWSER:()=>jn,IS_MQQB:()=>Vs,IS_NATIVE_ANDROID:()=>o_,IS_OLD_ANDROID:()=>i_,IS_OPENHARMONY:()=>_l,IS_OPPOBROWSER:()=>zn,IS_SAFARI:()=>It,IS_SAFARI_15_1:()=>m_,IS_SAMSUNGBROWSER:()=>Jn,IS_SOGOU:()=>$n,IS_SOGOUM:()=>Fn,IS_TBS:()=>yr,IS_UCBROWSER:()=>fl,IS_VIVOBROWSER:()=>Xn,IS_WECHAT:()=>Ls,IS_WIN:()=>Fo,IS_WQQB:()=>Bn,IS_WX:()=>a_,IS_X5MQQB:()=>Us,IS_XWEB:()=>ks,MACQQB_VERSION:()=>Uc,MI_VERSION:()=>Fc,MQQB_VERSION:()=>Os,OPENHARMONY_VERSION:()=>d_,OPPO_VERSION:()=>Hc,SAFARI_VERSION:()=>ci,SAMSUNG_VERSION:()=>Bc,SOGOUM_VERSION:()=>wc,SOGOU_VERSION:()=>Oc,TBS_VERSION:()=>xc,UA_DATA_STRING:()=>Ar,USER_AGENT:()=>tr,VIVO_VERSION:()=>Wc,WECHAT_VERSION:()=>kc,WQQB_VERSION:()=>Lc,XWEB_VERSION:()=>Pc,browserInfo:()=>Vr,getBrowserInfo:()=>Ih,getChromeMajorVersion:()=>Gc,getDeviceModel:()=>Qn,getGPUInfo:()=>bl,getOSName:()=>$s,getOSNumber:()=>Yn,getOSString:()=>Bo,getOSType:()=>vl,getTerminalType:()=>Rl,getUserAgentData:()=>$o,isLocalStorageEnabled:()=>di,isMobile:()=>yl,isVersionSmallerThan:()=>l_});var tr=typeof navigator=="undefined"?"":navigator.userAgent,Ae=i=>new RegExp(i,"i").test(tr),Et=i=>{if(Ae(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=tr.match(t);if(e&&e[1])return e[1]}return""},ul=i=>{if(Ae(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=tr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},fh=/AppleWebKit\/([\d.]+)/i.exec(tr),r_=fh?parseFloat(fh[1]):NaN,xs=Ae("iPad"),ll=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Ae("Macintosh"),Xi=Ae("iPhone")&&!xs,Eh=Ae("iPod"),lt=Xi||xs||Eh||ll,mt=Ae("Android"),ml=function(){if(mt){let i=tr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),i_=mt&&Ae("webkit")&&ml<2.3,o_=mt&&ml<5&&r_<537,Ht=Ae("Firefox"),Cc=Et("Firefox"),Nc=ul("Firefox"),Vo=Ae("Edge"),Dc=Et("Edge"),Ps=Ae("Edg"),Mc=Et("Edg"),pl=ul("Edg"),Fn=Ae("SogouMobileBrowser"),wc=Et("SogouMobileBrowser"),$n=Ae("MetaSr\\s"),Oc=Et("MetaSr\\s"),yr=Ae("TBS"),xc=Et("TBS"),ks=Ae("XWEB"),Pc=Et("XWEB"),s_=Ae("MSIE\\s8\\.0"),_h=Ae("MSIE\\/\\d+"),n_=function(){if(_h){let i=/MSIE\s(\d+)\.\d/.exec(tr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(tr)&&/rv:11.0/.test(tr)&&(t=11),t}return NaN}(),Ls=Ae("(micromessenger|webbrowser)"),kc=Et("MicroMessenger"),Us=!yr&&Ae("MQQBrowser")&&Ae("COVC"),Vs=!yr&&Ae("MQQBrowser")&&!Ae("COVC"),Os=Vs||Us?Et("MQQBrowser"):"",Bn=!yr&&Ae(" QQBrowser"),Lc=Et(" QQBrowser"),Hn=!yr&&Ae("QQBrowserLite"),Uc=Et("QQBrowserLite"),Wn=!yr&&Ae("MQBHD"),Vc=Et("MQBHD"),Fo=Ae("Windows"),br=!lt&&Ae("MAC OS X"),Gn=!mt&&Ae("Linux"),hl=Ae("CrOS"),a_=Ae("MicroMessenger"),fl=Ae("UCBrowser"),c_=Ae("Electron"),jn=Ae("MiuiBrowser"),Fc=Et("MiuiBrowser"),qn=Ae("HuaweiBrowser"),gl=Ae("Huawei")||Ae("HUAWEI"),El=Ae("Honor")||Ae("HONOR"),$c=Et("HuaweiBrowser"),Jn=Ae("SamsungBrowser"),Bc=Et("SamsungBrowser"),zn=Ae("HeyTapBrowser"),Hc=Et("HeyTapBrowser"),Xn=Ae("VivoBrowser"),Wc=Et("VivoBrowser"),_l=Ae("OpenHarmony"),d_=Et("OpenHarmony"),Gc=()=>ul("Chrome"),ai=Ae("Chrome"),Fs=!Vo&&!$n&&!Fn&&!yr&&!ks&&!Ps&&!Bn&&!jn&&!qn&&!Jn&&!zn&&!Xn&&ai,Tl=Ae("HeadlessChrome"),Fr=Gc(),jc=Et("Chrome"),It=!ai&&!Vs&&!Us&&!Hn&&!Wn&&Ae("Safari"),Qi=It||lt,ci=Et("Version"),u_=/Android.*(wv|.0.0.0)/.test(tr),Yi=(()=>{if(ll)return ci;if(lt){let i=tr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function l_(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}var Jt=Number(Yi.split(".")[0]),m_=ci==="15.1",Il=Yi==="15.1",Sl=(()=>{let i=Number(Yi.split(".")[0]);return i===14||i===13})(),Th=Ae("CriOS"),Al=Th&&ci==="11.1.1",Rr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",di=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Vr=Ih();function Ih(){let i=new Map([[Ht,["Firefox",Cc]],[Ps,["Edg",Mc]],[Fs,["Chrome",jc]],[It,["Safari",ci]],[yr,["TBS",xc]],[ks,["XWEB",Pc]],[Ls&&Xi,["WeChat",kc]],[Bn,["QQ(Win)",Lc]],[Vs,["QQ(Mobile)",Os]],[Us,["QQ(Mobile X5)",Os]],[Hn,["QQ(Mac)",Uc]],[Wn,["QQ(iPad)",Vc]],[jn,["MI",Fc]],[qn,["HW",$c]],[Jn,["Samsung",Bc]],[zn,["OPPO",Hc]],[Xn,["VIVO",Wc]],[Vo,["EDGE",Dc]],[Fn,["SogouMobile",wc]],[$n,["Sogou",Oc]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Ge=null;function yl(){return Ge&&typeof Ge.mobile=="boolean"?Ge.mobile:mt||lt||Xi||xs||_l}var Ar="";function $o(){return A(this,null,function*(){if(Ge)return Ge;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Ge=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Ge&&!Ar&&(Ar=`UAData: ${Ge.platform}/${Ge.platformVersion}`,Ge.architecture&&Ge.bitness&&(Ar+=` ${Ge.architecture}/${Ge.bitness}`),Ge.mobile&&(Ar+=" mobile"),Ge.model&&(Ar+=` model: ${Ge.model.replace(/\s+/g,"/")}`),Ge.fullVersionList&&(Ar+=` ${Ge.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Ge}catch(i){return null}})}function bl(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function Qn(){return(Ge==null?void 0:Ge.model)||""}var gh=new Map([[mt,"Android"],[lt,"iOS"],[Fo,"Windows"],[br,"MacOS"],[Gn,"Linux"],[hl,"ChromeOS"]]),$s=function(){return gh.get(!0)?gh.get(!0):Ge?Ge.platform:"unknown"};function Yn(){return Fo?1:mt?2:br?3:lt?4:Gn?5:hl?6:0}var Bo=()=>{let i=$s();return i+=`/${Vr.name}/${It?Vr.version:Vr.version.split(".")[0]}`,Ge!=null&&Ge.platformVersion&&(i+=`/${Ge.platformVersion}`),Ge!=null&&Ge.architecture&&(i+=`/${Ge.architecture}`),i};function Rl(){return mt?4:Xi?2:xs?3:br?12:Fo?5:Gn?13:_l?22:1}function vl(){return mt?"Android":Xi?"iPhone":xs?"iPad":br?"Mac":Fo?"Windows":Gn?"Linux":"unknown"}var Ah=Gi(Zi(),1),f_=new Ah.default,V=f_;var ui=(ce=>(ce.ROOM_DESTROY="1",ce.JOIN_START="21",ce.JOIN_SCHEDULE_SUCCESS="22",ce.JOIN_SIGNAL_CONNECTION_START="23",ce.JOIN_SIGNAL_CONNECTION_END="24",ce.JOIN_SEND_CMD="25",ce.JOIN_RECEIVED_CMD_RES="26",ce.JOIN_SUCCESS="27",ce.JOIN_FAILED="28",ce.LEAVE_START="51",ce.LEAVE_SEND_CMD="52",ce.LEAVE_SUCCESS="53",ce.PUBLISH_START="61",ce.SEND_FIRST_VIDEO_FRAME="62",ce.PUBLISH_FAILED="63",ce.SUBSCRIBE_START="81",ce.SUBSCRIBE_SUCCESS="82",ce.SUBSCRIBE_FAILED="84",ce.UNSUBSCRIBE_SUCCESS="83",ce.LOCAL_TRACK_CAPTURE_START="101",ce.LOCAL_TRACK_CAPTURE_SUCCESS="102",ce.LOCAL_TRACK_CAPTURE_FAILED="103",ce.LOCAL_TRACK_PUBLISHED="104",ce.LOCAL_TRACK_UNPUBLISHED="105",ce.LOCAL_TRACK_REPLACED="106",ce.SWITCH_DEVICE_SUCCESS="107",ce.TRACK_MUTED="108",ce.TRACK_UNMUTED="109",ce.REMOTE_TRACK_SUBSCRIBED="110",ce.REMOTE_TRACK_UNSUBSCRIBED="111",ce.LOCAL_TRACK_RECAPTURE="112",ce.LOCAL_AUDIO_STARTED="113",ce.LOCAL_AUDIO_STOPPED="114",ce.REMOTE_AUDIO_STARTED="115",ce.REMOTE_AUDIO_STOPPED="116",ce.PLAY_TRACK_START="151",ce.PLAYER_STATE_CHANGED="152",ce.VIDEO_LOADED_DATA="153",ce.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",ce.SIGNAL_CONNECTION_STATE_CHANGED="201",ce.PEER_CONNECTION_STATE_CHANGED="202",ce.SINGLE_CONNECTION_STAT="203",ce.SPC_RECONNECTED="204",ce.HEARTBEAT_REPORT="251",ce.RECEIVED_PUBLISHED_USER_LIST="252",ce.REMOTE_PUBLISH_STATE_CHANGED="253",ce.AUDIO_LEVEL_INTERVAL="260",ce.NETWORK_QUALITY="261",ce.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",ce.QUALITY_LIMITATION_CHANGED="263",ce.LOG="264",ce.AUDIO_PROCESSOR_DEBUG="265",ce.SWITCH_ROOM_START="401",ce.SWITCH_ROOM_SUCCESS="407",ce.SWITCH_ROOM_FAILED="408",ce))(ui||{});var U=ui;var g_="%cTRTC%c%s",E_="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",__="display: inline",Jc=class Jc{constructor(){u(this,"_isEnableUploadLog",!0);u(this,"_localJoinedUser",new Map);u(this,"_queue",[]);u(this,"_timeoutId",-1);u(this,"_logLevel",1);u(this,"_logLevelToUpload",2);!As&&!vn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){V.on(U.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Tr[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),V.on(U.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),V.once(U.JOIN_FAILED,()=>{this.startUpload()}),V.on(U.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(we(r.userId)&&Pe(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return A(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:c,logs:l}=o[s];yield this.uploadLogWithRetry(JSON.stringify({timestamp:lc(),sdkAppId:String(c),userId:n,version:at,log:l.map(m=>m.log).join(`
|
|
4
|
-
`)}),c),l.forEach(m=>m.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e){return zi({retryFunction:()=>ni({url:oi(e,ji.LOG),body:t,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:({retry:r})=>{r()}})()}getPrefix(t){let e=new Date;return e.setTime(Rn()),`[${Ss(e)}] <${Tr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){P(Tr[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(we(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}log(t,e,r=!0,o,s){var l;e.unshift(this.getPrefix(t));let n={log:e.reduce((m,E)=>`${m} ${this.logChunkToString(E)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};if(V.emit(U.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n),t<this._logLevel)return;let c=((l=Tr[t])==null?void 0:l.toLowerCase())||"info";Jc.PRINT_LOG_TAG?console[c](g_,E_,__,...e):console[c](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){return new ws(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Tr[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};u(Jc,"PRINT_LOG_TAG",!(lt||mt||Tl));var Nl=Jc,$=new Nl;var T_=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},Kn=T_;var Dl=class{constructor(){u(this,"_prefix","TRTC");u(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!di())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(di())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){$.warn(t)}}getItem(t){if(!di())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){$.warn(e)}}setItem(t,e){if(di())try{let r={expiresIn:Date.now()+mc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){$.warn(r)}}deleteItem(t){if(!di())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return $.warn(e),!1}}clear(){if(di())try{localStorage.clear()}catch(t){$.warn(t)}}},Hs=new Dl;var eo={};Kr(eo,{HTTPS_API:()=>U_,IS_GET_CAPABILITIES_SUPPORTED:()=>Ql,IS_GET_SETTINGS_SUPPORTED:()=>js,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>q_,IS_INSERTABLE_STREAM_SUPPORTED:()=>ca,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>Y_,IS_RTC_RTP_SENDER_SUPPORTED:()=>aa,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>Yh,IS_SEI_SUPPORTED:()=>da,IS_SPC_SUPPORTED:()=>H_,basis:()=>z_,capabilityCheck:()=>Zl,checkSystemRequirementsInternal:()=>nd,decodeSupportStatus:()=>Wh,encodeSupportStatus:()=>Jl,getBrowserInfo:()=>od,getDisplayResolution:()=>Gh,isAddTransceiverSupported:()=>cd,isBrowserSupported:()=>zl,isCanvasCaptureStreamAPISupported:()=>Jh,isCanvasSmallStreamSupported:()=>zh,isGetReceiversSupported:()=>$_,isGetSendersSupported:()=>Qh,isGetTransceiversSupported:()=>B_,isGetUserMediaSupported:()=>jh,isMediaDevicesSupported:()=>sd,isMediaSessionSupported:()=>Kh,isMediaStreamTrackProcessorSupported:()=>Xl,isReplaceTrackSupported:()=>G_,isRequestVideoFrameCallbackSupported:()=>gi,isSIMDSupported:()=>J_,isScaleResolutionDownBySupported:()=>Xh,isScreenCaptureApiAvailable:()=>na,isSelectedCandidatePair:()=>V_,isSetParametersSupported:()=>j_,isSmallStreamSupported:()=>ad,isStopTransceiverSupported:()=>W_,isTRTCSupported:()=>k_,isUnifiedPlanDefault:()=>F_,isUsedInHttpProtocol:()=>fi,isWebAudioSupported:()=>qh,isWebCodecSupported:()=>Zh,isWebCodecsSupported:()=>Hh,isWebRTCSupported:()=>Yl,isWebTransportSupported:()=>ef});var Bl={};Kr(Bl,{AUDIO_LEVEL_SCALE:()=>mi,AudioCodecPipelineType:()=>Zc,AudioDecoderDowngradeState:()=>Ol,AudioPlayerMode:()=>Ll,AudioType:()=>Pl,BASIC_TYPE:()=>pi,BannedReason:()=>Ul,CONNECTION_CLOSED_REASON:()=>bh,ClientEvent:()=>Ml,CodecType:()=>wh,ConnectionEvent:()=>yh,ConnectionState:()=>Xc,DECODE_FAILED_ERROR_CODE:()=>$l,FacingMode:()=>Qc,LeaveReason:()=>Vl,LocalTrackEvent:()=>zc,MULTI_VIDEO_DATA_TYPE:()=>li,MediaType:()=>Dt,MediaTypeLabel:()=>I_,MonitorEventId:()=>ra,MutedFlag:()=>vh,NetworkQualityValue:()=>Dh,PlayerState:()=>Ho,ReceiveMode:()=>Mh,RemoteStreamType:()=>Br,RemoteTrackEvent:()=>Ws,RoomEvent:()=>Ki,SMALL_MODE:()=>Kc,SceneNumber:()=>wl,StreamEvent:()=>Rh,StreamType:()=>Nh,SubscribeMediaType:()=>ea,TIMER_TYPE:()=>Go,TRACK_ACTION:()=>Ch,TRACK_KIND:()=>xl,TrackEvent:()=>$r,UserRole:()=>zt,UserRoleNumber:()=>Wo,VideoCodec:()=>Fl,VideoCodecPipelineType:()=>ia,VideoContentHint:()=>oa,VideoDecoderDowngradeState:()=>ta,VideoPlayerMode:()=>Yc,VideoType:()=>kl});var yh=(x=>(x.TRACK_ADDED="track-added",x.TRACK_UPDATED="track-updated",x.TRACK_SUBSCRIBED="track-subscribed",x.STREAM_ADDED="stream-added",x.STREAM_REMOVED="stream-removed",x.STREAM_UPDATED="stream-updated",x.STREAM_PUBLISHED="stream-published",x.STREAM_SUBSCRIBED="stream-subscribed",x.STREAM_UNSUBSCRIBED="stream-unsubscribed",x.STATE_CHANGED="state-changed",x.ERROR="error",x.CONNECTION_STATE_CHANGED="connection-state-changed",x.FIREWALL_RESTRICTION="firewall-restriction",x.SEI_MESSAGE="sei-message",x.CLOSED="closed",x))(yh||{}),bh=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(bh||{}),Ml=(M=>(M.STREAM_ADDED="stream-added",M.STREAM_REMOVED="stream-removed",M.STREAM_UPDATED="stream-updated",M.STREAM_SUBSCRIBED="stream-subscribed",M.CONNECTION_STATE_CHANGED="connection-state-changed",M.PEER_JOIN="peer-join",M.PEER_LEAVE="peer-leave",M.MUTE_AUDIO="mute-audio",M.MUTE_VIDEO="mute-video",M.UNMUTE_AUDIO="unmute-audio",M.UNMUTE_VIDEO="unmute-video",M.CLIENT_BANNED="client-banned",M.NETWORK_QUALITY="network-quality",M.AUDIO_VOLUME="audio-volume",M.SEI_MESSAGE="sei-message",M.ERROR="error",M))(Ml||{}),Rh=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(Rh||{}),zc=(n=>(n.DEVICE_AUTO_RECOVERED="1",n.DEVICE_RECOVER_FAILED="5",n.DEVICE_CHANGED="2",n.ERROR="3",n.PUBLISH_STATE_CHANGED="4",n.ENCODE_FAILED="6",n))(zc||{}),Ho=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Ho||{}),Ki=(ae=>(ae.PEER_JOIN="peer-join",ae.PEER_LEAVE="peer-leave",ae.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",ae.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",ae.BANNED="banned",ae.NETWORK_QUALITY="network-quality",ae.AUDIO_VOLUME="audio-volume",ae.SEI_MESSAGE="sei-message",ae.ERROR="error",ae.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",ae.REMOTE_PUBLISHED="remote-published",ae.REMOTE_UNPUBLISHED="remote-unpublished",ae.FIREWALL_RESTRICTION="firewall-restriction",ae.HEARTBEAT_REPORT="heartbeat-report",ae.CUSTOM_MESSAGE="custom-message",ae.LAYER_DATA="layerData",ae.FIRST_VIDEO_FRAME="first-video-frame",ae.DUMP="dump",ae.AUDIO_FRAME="audio-frame",ae.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",ae))(Ki||{}),$r=(c=>(c.PLAYER_STATE_CHANGED="player-state-changed",c.MUTE="mute",c.UNMUTE="unmute",c.ERROR="error",c.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",c.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",c.FIRST_VIDEO_FRAME="first-video-frame",c))($r||{}),Ws=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(Ws||{}),vh=(c=>(c[c.VIDEO=1]="VIDEO",c[c.SMALL=2]="SMALL",c[c.AUX=4]="AUX",c[c.AUDIO=8]="AUDIO",c[c.VIDEO_MUTE=16]="VIDEO_MUTE",c[c.AUX_MUTE=32]="AUX_MUTE",c[c.AUDIO_MUTE=64]="AUDIO_MUTE",c))(vh||{}),wl=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(wl||{}),Wo=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Wo||{}),zt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(zt||{}),Xc=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Xc||{}),Ol=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Ol||{}),ta=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(ta||{}),xl=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(xl||{}),Ch=(e=>(e.ADD="add",e.REMOVE="remove",e))(Ch||{}),Dt=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(Dt||{}),I_={1:"audio",2:"auxVideo",4:"video"},Pl=(t=>(t[t.opus=111]="opus",t))(Pl||{}),kl=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(kl||{}),Nh=(e=>(e.Big="big",e.Small="small",e))(Nh||{}),Br=(e=>(e.Main="main",e.Aux="auxiliary",e))(Br||{}),li=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(li||{}),ra=(j=>(j[j.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",j[j.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",j[j.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",j[j.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",j[j.MUTE_AUDIO=32772]="MUTE_AUDIO",j[j.MUTE_VIDEO=32773]="MUTE_VIDEO",j[j.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",j[j.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",j[j.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",j[j.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",j[j.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",j[j.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",j[j.SWITCH_CAMERA=32780]="SWITCH_CAMERA",j[j.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",j[j.REPLACE_VIDEO=32782]="REPLACE_VIDEO",j[j.REPLACE_AUDIO=32783]="REPLACE_AUDIO",j[j.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",j[j.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",j[j.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",j[j.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",j[j.JOIN=32788]="JOIN",j[j.LEAVE=32789]="LEAVE",j[j.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",j[j.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",j[j.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",j[j.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",j[j.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",j[j.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",j[j.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",j[j.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",j[j.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",j[j.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",j[j.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",j[j.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",j[j.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",j[j.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",j[j.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",j[j.PUBLISH_AUX=32805]="PUBLISH_AUX",j[j.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",j[j.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",j[j.VIDEO_ENCODER=4004]="VIDEO_ENCODER",j[j.VIDEO_DECODER=4005]="VIDEO_DECODER",j))(ra||{}),Dh=(c=>(c[c.UNKNOWN=0]="UNKNOWN",c[c.EXCELLENT=1]="EXCELLENT",c[c.GOOD=2]="GOOD",c[c.POOR=3]="POOR",c[c.BAD=4]="BAD",c[c.VERY_BAD=5]="VERY_BAD",c[c.DISCONNECTED=6]="DISCONNECTED",c))(Dh||{}),Mh=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(Mh||{}),Qc=(e=>(e.user="user",e.environment="environment",e))(Qc||{}),Yc=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(Yc||{}),Ll=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(Ll||{}),Ul=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(Ul||{}),Vl=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Vl||{}),mi=1e8,ea=class{constructor(){u(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},pi=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(pi||{}),Fl=(r=>(r.H264="h264",r.H265="h265",r.VP8="vp8",r))(Fl||{}),ia=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(ia||{}),Zc=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Zc||{}),wh=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(wh||{}),$l=(_=>(_[_.SUCCESS=0]="SUCCESS",_[_.FAILED=1]="FAILED",_[_.WEBCODEC_INIT=2]="WEBCODEC_INIT",_[_.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",_[_.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",_[_.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",_[_.WASM_INIT=6]="WASM_INIT",_[_.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",_[_.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",_[_.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",_[_.TEST=10]="TEST",_[_.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",_))($l||{}),oa=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(oa||{}),Go=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(Go||{}),Kc=(e=>(e.CANVAS="canvas",e.API="api",e))(Kc||{});var $e={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},Xt={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var Oh=(i,t)=>t?`${kr}/${i}/${t}`:`${kr}/${i}/index.html`;var S_=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(Zu);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function Be(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",c="";We(Xt[t])?s=Xt[t](e):we(Xt[t])&&(s=Xt[t]);let{TRTC_ERROR_INFO:l,TRTC_ERROR_LINK:m}=S_();r?c=`${r.className}.html#${r.fnName}`:m&&m[t]&&(We(m[t])?c=m[t](e):we(m[t])&&(c=m[t]));let E=s;return Sr()&&(l&&l[t]&&(We(l[t])?n=l[t](e):we(l[t])&&(n=l[t])),n&&(o?E=`${n}
|
|
5
|
-
\u8BF7\u67E5\u770B\u6587\u6863: ${
|
|
3
|
+
`}});var qh=bn(Wr=>{"use strict";var jo=Wh(),x_=jh(),P_=td();Wr.grammar=P_;Wr.write=x_;Wr.parse=jo.parse;Wr.parseParams=jo.parseParams;Wr.parseFmtpConfig=jo.parseFmtpConfig;Wr.parsePayloads=jo.parsePayloads;Wr.parseRemoteCandidates=jo.parseRemoteCandidates;Wr.parseImageAttributes=jo.parseImageAttributes;Wr.parseSimulcastStreamList=jo.parseSimulcastStreamList});var Yp=(te=>(te[te.INVALID_PARAMETER=4096]="INVALID_PARAMETER",te[te.INVALID_OPERATION=4097]="INVALID_OPERATION",te[te.NOT_SUPPORTED=4098]="NOT_SUPPORTED",te[te.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",te[te.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",te[te.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",te[te.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",te[te.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",te[te.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",te[te.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",te[te.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",te[te.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",te[te.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",te[te.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",te[te.CLIENT_BANNED=16448]="CLIENT_BANNED",te[te.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",te[te.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",te[te.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",te[te.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",te[te.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",te[te.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",te[te.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",te[te.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",te[te.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",te[te.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",te[te.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",te[te.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",te[te.API_CALL_ABORTED=16461]="API_CALL_ABORTED",te[te.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",te[te.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",te[te.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",te[te.UNKNOWN=65535]="UNKNOWN",te))(Yp||{}),q=Yp;var hE=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},Xu=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let c=`<${hE(o)} 0x${o.toString(16)}>`,l=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(c)?"":` ${c}`}`;super(l);u(this,"code");u(this,"extraCode");u(this,"message");u(this,"originMessage");u(this,"name");u(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=l,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ue=Xu;var ly=new Date().getTime(),fE=0;var Rn=function(){return new Date().getTime()+fE},hc=function(){let i=new Date;return i.setTime(Rn()),i.toLocaleString()},Ss=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var Vr={};ei(Vr,{bytes2ms:()=>ah,calculateScaleResolutionDownNumber:()=>Nc,convertObjectNumberToInt:()=>Vn,copyProperties:()=>nh,deepClone:()=>Po,deepMerge:()=>ur,delay:()=>Fn,fibonacci:()=>ko,formatedTime:()=>bc,getConstructorName:()=>vs,getContainerFromElement:()=>fh,getEnv:()=>ih,getInternalVersion:()=>ph,getLoggerUrl:()=>si,getMediaStreamTrackInfo:()=>Cc,getMuteStateFromFlag:()=>Ln,getNetworkType:()=>xn,getNumNetworkType:()=>Ac,getReconnectionTimeout:()=>dh,getStringByteLength:()=>gh,getTurnServer:()=>hh,getUint32Version:()=>Rc,getValueType:()=>ct,getViewListFromView:()=>Ds,glog:()=>Pn,ipv4ToUint32:()=>Ns,isArray:()=>ot,isAudioWorkletSupported:()=>mh,isBoolean:()=>st,isConstructor:()=>Lo,isEmpty:()=>Cs,isFunction:()=>We,isLangChinese:()=>Sr,isMediaStreamTrack:()=>uh,isNumber:()=>ke,isObject:()=>er,isOverseaSdkAppId:()=>oi,isPlainObject:()=>Lt,isPortrait:()=>cl,isPromise:()=>Ji,isRemoteTrack:()=>lh,isRotate90Or270:()=>ni,isString:()=>Oe,isUndefined:()=>P,loadImage:()=>ws,ms2bytes:()=>ch,ms2samples:()=>al,normalizeUrl:()=>Uo,performanceNow:()=>Ie,promiseAny:()=>kn,samples2ms:()=>nl,setNetworkType:()=>sh,stringify:()=>dr,stringifyIncludeValue:()=>Un,throttlePromise:()=>vc});var sl={};ei(sl,{AUDIO_MUTE_BIT:()=>Tc,AUDIO_STAT_BIT:()=>bs,AUX_STAT_BIT:()=>Dn,AUX_STREAM_MSID:()=>CE,BACKEND_ENV:()=>_c,BASE_DOC_URL:()=>Lr,BASE_HOST:()=>Zp,CAPABILITIES_KEYS:()=>yc,CLASS_NAME:()=>YE,CLOUD_CONSOLE_URL:()=>TE,CROSS_ROOM_BIT:()=>RE,DATA_FREEZE_TIMING:()=>Sc,DOC_URL:()=>IE,DTLS_STATE_UNKNOWN:()=>UE,ENV_NAME:()=>ti,EXCHANGE_SDP_TIMEOUT:()=>WE,IS_WORKER:()=>ys,IS_WORKLET:()=>vn,KIBANA_EVENT:()=>ri,LOCAL_STREAM_PUBLISH_STATE:()=>eh,LOGGER_CMD_TYPE:()=>qi,LOGGER_DOMAIN:()=>Zu,LOGGER_DOMAIN_OVERSEA:()=>Ku,LOG_LEVEL:()=>Tr,LOG_LEVEL_NAME:()=>KE,MAIN_STREAM_MSID:()=>vE,MAX_RTT:()=>Mn,MICROPHONE_COMMUNICATIONS:()=>ZE,MICROPHONE_DEFAULT:()=>xo,MUTE_ALL_BIT:()=>bE,NAME:()=>D,NETWORK_TYPE:()=>Mo,NOT_SUPPORTED_H264:()=>jE,PAUSED_RETRY_COUNT:()=>Oo,PEERCONNECTION_CONNECTING_TIMEOUT:()=>XE,PEER_CONNECTION_STATE:()=>VE,PEER_LEAVE_REASON:()=>th,RECOVER_CAPTURE_INTERVAL:()=>Rs,REMOTE_STREAM_TYPE_AUX:()=>DE,REMOTE_STREAM_TYPE_MAIN:()=>NE,RENDER_FREEZE_TIMING:()=>qE,SCHEDULE_DOMAIN:()=>ii,SCHEDULE_TIMEOUT:()=>QE,SDP_SEMANTICS_PLAN_B:()=>GE,SDP_SEMANTICS_UNIFIED_PLAN:()=>ol,SECOND_HOST:()=>EE,SIGNAL_PING_PONG_INTERVAL:()=>yE,SIGNAL_PING_TIMEOUT:()=>SE,SIGNAL_RECONNECTION_COUNT:()=>$E,SMALL_STAT_BIT:()=>rl,SPEAKER_DEFAULT:()=>wn,STORAGE_EXPIRES_TIME:()=>fc,STREAM_TYPE_BIG:()=>JE,STREAM_TYPE_SMALL:()=>zE,SUBSCRIBE_SMALL_RETRY_COUNT:()=>e_,SYNC_USER_LIST_INTERVAL:()=>BE,Scene:()=>Ur,THIRD_HOST:()=>_E,TRANSPORT_DIRECTION:()=>AE,TRTC_ERROR_ASSISTANCE:()=>el,TRTC_QUALITY_BAD:()=>PE,TRTC_QUALITY_DISCONNECTED:()=>LE,TRTC_QUALITY_EXCELLENT:()=>ME,TRTC_QUALITY_GOOD:()=>OE,TRTC_QUALITY_POOR:()=>xE,TRTC_QUALITY_UNKNOWN:()=>wE,TRTC_QUALITY_VERY_BAD:()=>kE,UPDATE_OFFER_TIMEOUT:()=>HE,VIDEO_MUTE_BIT:()=>Ic,VIDEO_STAT_BIT:()=>As,audioProfileMap:()=>gc,defaultBigVideoProfile:()=>Nn,defaultSmallVideoProfile:()=>tl,getRetryCount:()=>FE,getScriptDir:()=>gE,innerVersion:()=>Qu,loggerProxy:()=>Cn,screenProfileMap:()=>Ec,setLoggerProxy:()=>wo,setRetryCount:()=>il,setVersion:()=>Yu,version:()=>at,videoProfileMap:()=>Ir});var Qu="4.15.00.1600",at="5.0.0";function Yu(i){at=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));Qu=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var ys=typeof importScripts!="undefined",vn=typeof registerProcessor!="undefined",gE=()=>{let i=ys?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Cn="",wo=i=>Cn=i,Zp="web.sdk.qcloud.com",EE="web.sdk.tencent.cn",_E="web.sdk.cloud.tencent.cn",TE="https://console.cloud.tencent.com/trtc",Lr=`https://${Zp}/trtc/webrtc/v5/doc`,IE=`${Lr}/zh-cn/`,Zu="https://yun.tim.qq.com",Ku="https://apisgp.my-imcloud.com",el="trtc_error_assistance",qi={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ti={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Tr=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(Tr||{}),SE=18e3,yE=2e3,Mo={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},fc=7*24*3600*1e3,gc={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},Ir={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},Nn=Ir["480p_2"],tl=Ir["120p_2"],Ec={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},D={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture"},AE={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},_c={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Ur=(e=>(e.LIVE="live",e.RTC="rtc",e))(Ur||{}),As=1,rl=2,Dn=4,bs=8,Tc=64,Ic=16,bE=112,RE=128,vE="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",CE="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",NE=D.MAIN,DE=D.AUXILIARY,wE=0,ME=1,OE=2,xE=3,PE=4,kE=5,LE=6,UE="unknown",VE={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Kp=1/0;function il(i){Kp=i}function FE(){return Kp}var $E=30,ri={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},BE=1e4,HE=1e4,WE=1e4,ol="unified-plan",GE="plan-b",jE=1028,eh=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(eh||{}),Sc=500,qE=1e3,JE=D.BIG,zE=D.SMALL,XE=10*1e3,ii={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},QE=2e3,YE={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Oo=5,xo="default",wn=xo,ZE="communications",KE=Object.keys(Tr),th=["normal leave","timeout leave","kick","role change"],e_=10,Rs=2e3,yc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Mn=10*1e3;var ih=function(){return new URLSearchParams(location.search).get("trtc_env")||""},oi=i=>Number(i)<14e8,si=function(i,t){let e;Cn?e=Cn:e=oi(i)?Ku:Zu;let r=Math.floor(Math.random()*Gi(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},On="unknown";function xn(){if(On!=="unknown")return On;let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r&&(On=oh(r,o)),On}function oh(i,t){if(Mo[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function sh(i){On=oh(i)}function Ac(){return Mo[xn()]}function nh(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function ah(i,t=48e3){return nl(i/4,t)}function nl(i,t=48e3){return i*1e3/t}function ch(i,t=48e3){return al(i,t)*4}function al(i,t=48e3){return i*t/1e3}var Pn=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Sr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Lt=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function ko(i,t=1,e=1){return i<=1?e:ko(i-1,e,t+e)}function dh(i){return i>8?30*1e3:ko(i)*1e3}function ct(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var We=i=>typeof i=="function",P=i=>typeof i=="undefined",Oe=i=>typeof i=="string",ke=i=>typeof i=="number",st=i=>typeof i=="boolean",er=i=>ct(i)==="object",ot=i=>ct(i)==="array",uh=i=>ct(i)==="MediaStreamTrack".toLowerCase(),lh=i=>i.isRemote,Ji=i=>ct(i)==="promise",Lo=i=>We(i)&&i.prototype.constructor===i,vs=i=>Lo(i)?i.prototype.constructor.name:"",mh=typeof AudioWorkletNode!="undefined";function kn(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function Ie(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var rh=i=>+i<10?`0${i}`:i,ph=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=rh(e[1])+rh(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},t_=Object.prototype.hasOwnProperty,{toString:gy}=Object.prototype;function Cs(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Lt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(t_.call(i,t))return!1;return!0}}return!1}function Ln(i,t){return{userId:t,hasAudio:!!(i&bs),hasVideo:!!(i&As),hasAuxiliary:!!(i&Dn),hasSmall:!!(i&rl),audioMuted:!!(i&Tc),videoMuted:!!(i&Ic),audioAvailable:!!(i&bs)&&!(i&Tc),videoAvailable:!!(i&As)&&!(i&Ic)}}function hh(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!P(i.username)&&!P(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",P(i.credentialType)||(t.credentialType=i.credentialType)),t}function Ns(i,t=!0){if(!Oe(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var ur=function(i,t,e,r){if(!(er(i)&&er(t)))return 0;let o=0,s=Object.keys(t),n;for(let c=0,l=s.length;c<l;c++)if(n=s[c],!(P(t[n])||e&&e.includes(n)))if(er(i[n])&&er(t[n]))o+=ur(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Po(t[n]),o+=1)}return o};function Po(i){if(ot(i)){let t=[];return i.forEach((e,r)=>{t[r]=Po(e)}),t}if(er(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Po(i[e])}),t}return i}var Ds=i=>{let t=[];if(ot(i))t=[...i];else if(Oe(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},fh=i=>Oe(i)?document.getElementById(i):i,r_=i=>{let t=l=>l<10?`0${l}`:`${l}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),c=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${c}`},bc=()=>r_(new Date);function dr(i,{keysToInclude:t,keysToExclude:e}){try{if(ot(i))return`[${i.map(n=>dr(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Lt(i)||!ot(t)&&!ot(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Lt(i[n])||ot(i[n])?JSON.parse(dr(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function Un(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),dr(i,{keysToInclude:e})}function gh(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var cl=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},ws=i=>y(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Oe(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new ue({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Rc=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Vn=i=>(Object.keys(i).forEach(t=>{ke(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Lt(i[t])||ot(i[t]))&&Vn(i[t])}),i);function Fn(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function vc(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function Uo(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function Cc(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:c}=(t=i.getSettings)==null?void 0:t.call(i),l=i.kind===D.AUDIO?`${s}x${n}@${c}`:`${e}x${r}@${o}`,m=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${l}${m}`}catch(e){return""}}function Nc(i,t){return i.width*i.height===t.width*t.height?1:cl()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function ni(i){return i===90||i===270}function ai({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(l=>l.text()).then(l=>{try{s({data:JSON.parse(l)})}catch(m){s({data:l})}},n);let c=new XMLHttpRequest;c.onreadystatechange=()=>{if(c.readyState===4)if(c.status>=200&&c.status<300)try{let l=JSON.parse(c.response);s({data:l})}catch(l){s({data:c.response})}else n({status:c.status,statusText:c.statusText||"request failed!"})},c.timeout=r||5e3,c.open(e,i,!0),c.send(t)})}function dl(i){return y(this,null,function*(){let t=Ie(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),c=yield(yield(yield new Response(o)).blob()).arrayBuffer();return $.debug(`compressJSON ${e.length} -> ${c.byteLength} ${Ie()-t}ms`),c}catch(r){return e}})}var i_=Object.prototype.hasOwnProperty;var zi=i=>typeof i=="function",Eh=i=>typeof i=="undefined";var _h=i=>typeof i=="boolean";var ul=i=>i.isRemote;var ll=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function Th(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(ll(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(i_.call(i,t))return!1;return!0}}return!1}var o_=0,s_=1,Ih=2;function n_({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...c){let{retries:l=5,timeout:m=1e3}=t,f=0,E=-1,_=o_,v=(k,M)=>y(this,null,function*(){let N=n||this;try{let B=yield i.apply(N,c);f>0&&s&&s.call(this,f),f=0,k(B)}catch(B){let ee=()=>{clearTimeout(E),f=0,_=Ih,M(B)},me=()=>{_!==Ih&&f<(zi(l)?l():l)?(f++,_=s_,zi(r)&&r.call(this,f,ee),E=window.setTimeout(()=>{E=-1,v(k,M)},zi(m)?m(f):m)):(ee(),zi(o)&&o.call(this,B))};zi(e)?e.call(this,{error:B,retry:me,reject:M,retryFuncArgs:c,retriedCount:f}):me()}});return new Promise(v)}}var Xi=n_;var Ms=class{constructor(t){u(this,"userId");u(this,"remoteUserId");u(this,"id");u(this,"sdkAppId");u(this,"type");u(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=_h(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}createChild(t){return Object.setPrototypeOf(t,this)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${r?`|${r}`:""}]`),$.log(t,e,Eh(this.userId)||Th(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var Bs={};ei(Bs,{ANDROID_VERSION:()=>hl,CHROME_MAJOR_VERSION:()=>$r,CHROME_VERSION:()=>Jc,EDGE_VERSION:()=>Mc,EDG_MAJOR_VERSION:()=>fl,EDG_VERSION:()=>Oc,FIREFOX_MAJOR_VERSION:()=>wc,FIREFOX_VERSION:()=>Dc,HUAWEI_VERSION:()=>Hc,IE_VERSION:()=>l_,IOS_MAIN_VERSION:()=>Jt,IOS_VERSION:()=>Rr,IPADQQB_VERSION:()=>$c,IS_ANDROID:()=>mt,IS_ANDROID_WEBVIEW:()=>f_,IS_ANY_SAFARI:()=>Yi,IS_CHROME:()=>Fs,IS_CHROME_OS:()=>gl,IS_CHROMIUM_BASE:()=>ci,IS_DESKTOP_IOS_CHROME:()=>vl,IS_EDG:()=>Ps,IS_EDGE:()=>Vo,IS_ELECTRON:()=>p_,IS_FIREFOX:()=>Ht,IS_HEADLESS_CHROME:()=>Sl,IS_HONOR:()=>Tl,IS_HUAWEI:()=>_l,IS_HUAWEIBROWSER:()=>Jn,IS_IE:()=>bh,IS_IE8:()=>u_,IS_IOS:()=>lt,IS_IOS_13_OR_14:()=>Rl,IS_IOS_15_1:()=>bl,IS_IOS_CHROME:()=>Rh,IS_IPAD:()=>xs,IS_IPADQQB:()=>Gn,IS_IPAD_PRO:()=>pl,IS_IPHONE:()=>Qi,IS_IPOD:()=>Ah,IS_LINUX:()=>jn,IS_LOCAL:()=>vr,IS_MAC:()=>br,IS_MACQQB:()=>Wn,IS_MIBROWSER:()=>qn,IS_MQQB:()=>Vs,IS_NATIVE_ANDROID:()=>d_,IS_OLD_ANDROID:()=>c_,IS_OPENHARMONY:()=>Il,IS_OPPOBROWSER:()=>Xn,IS_SAFARI:()=>It,IS_SAFARI_15_1:()=>g_,IS_SAMSUNGBROWSER:()=>zn,IS_SOGOU:()=>Bn,IS_SOGOUM:()=>$n,IS_TBS:()=>Ar,IS_UCBROWSER:()=>El,IS_VIVOBROWSER:()=>Qn,IS_WECHAT:()=>Ls,IS_WIN:()=>Fo,IS_WQQB:()=>Hn,IS_WX:()=>m_,IS_X5MQQB:()=>Us,IS_XWEB:()=>ks,MACQQB_VERSION:()=>Fc,MI_VERSION:()=>Bc,MQQB_VERSION:()=>Os,OPENHARMONY_VERSION:()=>h_,OPPO_VERSION:()=>Gc,SAFARI_VERSION:()=>di,SAMSUNG_VERSION:()=>Wc,SOGOUM_VERSION:()=>xc,SOGOU_VERSION:()=>Pc,TBS_VERSION:()=>kc,UA_DATA_STRING:()=>yr,USER_AGENT:()=>tr,VIVO_VERSION:()=>jc,WECHAT_VERSION:()=>Uc,WQQB_VERSION:()=>Vc,XWEB_VERSION:()=>Lc,browserInfo:()=>Fr,getBrowserInfo:()=>vh,getChromeMajorVersion:()=>qc,getDeviceModel:()=>Yn,getGPUInfo:()=>Nl,getOSName:()=>$s,getOSNumber:()=>Zn,getOSString:()=>Bo,getOSType:()=>wl,getTerminalType:()=>Dl,getUserAgentData:()=>$o,isLocalStorageEnabled:()=>ui,isMobile:()=>Cl,isVersionLargerThan:()=>Al,isVersionSmallerThan:()=>yl});var tr=typeof navigator=="undefined"?"":navigator.userAgent,ye=i=>new RegExp(i,"i").test(tr),Et=i=>{if(ye(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=tr.match(t);if(e&&e[1])return e[1]}return""},ml=i=>{if(ye(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=tr.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},Sh=/AppleWebKit\/([\d.]+)/i.exec(tr),a_=Sh?parseFloat(Sh[1]):NaN,xs=ye("iPad"),pl=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&ye("Macintosh"),Qi=ye("iPhone")&&!xs,Ah=ye("iPod"),lt=Qi||xs||Ah||pl,mt=ye("Android"),hl=function(){if(mt){let i=tr.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),c_=mt&&ye("webkit")&&hl<2.3,d_=mt&&hl<5&&a_<537,Ht=ye("Firefox"),Dc=Et("Firefox"),wc=ml("Firefox"),Vo=ye("Edge"),Mc=Et("Edge"),Ps=ye("Edg"),Oc=Et("Edg"),fl=ml("Edg"),$n=ye("SogouMobileBrowser"),xc=Et("SogouMobileBrowser"),Bn=ye("MetaSr\\s"),Pc=Et("MetaSr\\s"),Ar=ye("TBS"),kc=Et("TBS"),ks=ye("XWEB"),Lc=Et("XWEB"),u_=ye("MSIE\\s8\\.0"),bh=ye("MSIE\\/\\d+"),l_=function(){if(bh){let i=/MSIE\s(\d+)\.\d/.exec(tr),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(tr)&&/rv:11.0/.test(tr)&&(t=11),t}return NaN}(),Ls=ye("(micromessenger|webbrowser)"),Uc=Et("MicroMessenger"),Us=!Ar&&ye("MQQBrowser")&&ye("COVC"),Vs=!Ar&&ye("MQQBrowser")&&!ye("COVC"),Os=Vs||Us?Et("MQQBrowser"):"",Hn=!Ar&&ye(" QQBrowser"),Vc=Et(" QQBrowser"),Wn=!Ar&&ye("QQBrowserLite"),Fc=Et("QQBrowserLite"),Gn=!Ar&&ye("MQBHD"),$c=Et("MQBHD"),Fo=ye("Windows"),br=!lt&&ye("MAC OS X"),jn=!mt&&ye("Linux"),gl=ye("CrOS"),m_=ye("MicroMessenger"),El=ye("UCBrowser"),p_=ye("Electron"),qn=ye("MiuiBrowser"),Bc=Et("MiuiBrowser"),Jn=ye("HuaweiBrowser"),_l=ye("Huawei")||ye("HUAWEI"),Tl=ye("Honor")||ye("HONOR"),Hc=Et("HuaweiBrowser"),zn=ye("SamsungBrowser"),Wc=Et("SamsungBrowser"),Xn=ye("HeyTapBrowser"),Gc=Et("HeyTapBrowser"),Qn=ye("VivoBrowser"),jc=Et("VivoBrowser"),Il=ye("OpenHarmony"),h_=Et("OpenHarmony"),qc=()=>ml("Chrome"),ci=ye("Chrome"),Fs=!Vo&&!Bn&&!$n&&!Ar&&!ks&&!Ps&&!Hn&&!qn&&!Jn&&!zn&&!Xn&&!Qn&&ci,Sl=ye("HeadlessChrome"),$r=qc(),Jc=Et("Chrome"),It=!ci&&!Vs&&!Us&&!Wn&&!Gn&&ye("Safari"),Yi=It||lt,di=Et("Version"),f_=/Android.*(wv|.0.0.0)/.test(tr),Rr=(()=>{if(pl)return di;if(lt){let i=tr.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function yl(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function Al(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,c=o[s]||0;if(n>c)return!0;if(n<c)return!1}return e}var Jt=Number(Rr.split(".")[0]),g_=di==="15.1",bl=Rr==="15.1",Rl=(()=>{let i=Number(Rr.split(".")[0]);return i===14||i===13})(),Rh=ye("CriOS"),vl=Rh&&di==="11.1.1",vr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",ui=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Fr=vh();function vh(){let i=new Map([[Ht,["Firefox",Dc]],[Ps,["Edg",Oc]],[Fs,["Chrome",Jc]],[It,["Safari",di]],[Ar,["TBS",kc]],[ks,["XWEB",Lc]],[Ls&&Qi,["WeChat",Uc]],[Hn,["QQ(Win)",Vc]],[Vs,["QQ(Mobile)",Os]],[Us,["QQ(Mobile X5)",Os]],[Wn,["QQ(Mac)",Fc]],[Gn,["QQ(iPad)",$c]],[qn,["MI",Bc]],[Jn,["HW",Hc]],[zn,["Samsung",Wc]],[Xn,["OPPO",Gc]],[Qn,["VIVO",jc]],[Vo,["EDGE",Mc]],[$n,["SogouMobile",xc]],[Bn,["Sogou",Pc]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Ge=null;function Cl(){return Ge&&typeof Ge.mobile=="boolean"?Ge.mobile:mt||lt||Qi||xs||Il}var yr="";function $o(){return y(this,null,function*(){if(Ge)return Ge;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Ge=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Ge&&!yr&&(yr=`UAData: ${Ge.platform}/${Ge.platformVersion}`,Ge.architecture&&Ge.bitness&&(yr+=` ${Ge.architecture}/${Ge.bitness}`),Ge.mobile&&(yr+=" mobile"),Ge.model&&(yr+=` model: ${Ge.model.replace(/\s+/g,"/")}`),Ge.fullVersionList&&(yr+=` ${Ge.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Ge}catch(i){return null}})}function Nl(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function Yn(){return(Ge==null?void 0:Ge.model)||""}var yh=new Map([[mt,"Android"],[lt,"iOS"],[Fo,"Windows"],[br,"MacOS"],[jn,"Linux"],[gl,"ChromeOS"]]),$s=function(){return yh.get(!0)?yh.get(!0):Ge?Ge.platform:"unknown"};function Zn(){return Fo?1:mt?2:br?3:lt?4:jn?5:gl?6:0}var Bo=()=>{let i=$s();return i+=`/${Fr.name}/${It?Fr.version:Fr.version.split(".")[0]}`,Ge!=null&&Ge.platformVersion&&(i+=`/${Ge.platformVersion}`),Ge!=null&&Ge.architecture&&(i+=`/${Ge.architecture}`),i};function Dl(){return mt?4:Qi?2:xs?3:br?12:Fo?5:jn?13:Il?22:1}function wl(){return mt?"Android":Qi?"iPhone":xs?"iPad":br?"Mac":Fo?"Windows":jn?"Linux":"unknown"}var Nh=ji(Zi(),1),T_=new Nh.default,V=T_;var li=(ce=>(ce.ROOM_DESTROY="1",ce.JOIN_START="21",ce.JOIN_SCHEDULE_SUCCESS="22",ce.JOIN_SIGNAL_CONNECTION_START="23",ce.JOIN_SIGNAL_CONNECTION_END="24",ce.JOIN_SEND_CMD="25",ce.JOIN_RECEIVED_CMD_RES="26",ce.JOIN_SUCCESS="27",ce.JOIN_FAILED="28",ce.LEAVE_START="51",ce.LEAVE_SEND_CMD="52",ce.LEAVE_SUCCESS="53",ce.PUBLISH_START="61",ce.SEND_FIRST_VIDEO_FRAME="62",ce.PUBLISH_FAILED="63",ce.SUBSCRIBE_START="81",ce.SUBSCRIBE_SUCCESS="82",ce.SUBSCRIBE_FAILED="84",ce.UNSUBSCRIBE_SUCCESS="83",ce.LOCAL_TRACK_CAPTURE_START="101",ce.LOCAL_TRACK_CAPTURE_SUCCESS="102",ce.LOCAL_TRACK_CAPTURE_FAILED="103",ce.LOCAL_TRACK_PUBLISHED="104",ce.LOCAL_TRACK_UNPUBLISHED="105",ce.LOCAL_TRACK_REPLACED="106",ce.SWITCH_DEVICE_SUCCESS="107",ce.TRACK_MUTED="108",ce.TRACK_UNMUTED="109",ce.REMOTE_TRACK_SUBSCRIBED="110",ce.REMOTE_TRACK_UNSUBSCRIBED="111",ce.LOCAL_TRACK_RECAPTURE="112",ce.LOCAL_AUDIO_STARTED="113",ce.LOCAL_AUDIO_STOPPED="114",ce.REMOTE_AUDIO_STARTED="115",ce.REMOTE_AUDIO_STOPPED="116",ce.PLAY_TRACK_START="151",ce.PLAYER_STATE_CHANGED="152",ce.VIDEO_LOADED_DATA="153",ce.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",ce.SIGNAL_CONNECTION_STATE_CHANGED="201",ce.PEER_CONNECTION_STATE_CHANGED="202",ce.SINGLE_CONNECTION_STAT="203",ce.SPC_RECONNECTED="204",ce.HEARTBEAT_REPORT="251",ce.RECEIVED_PUBLISHED_USER_LIST="252",ce.REMOTE_PUBLISH_STATE_CHANGED="253",ce.AUDIO_LEVEL_INTERVAL="260",ce.NETWORK_QUALITY="261",ce.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",ce.QUALITY_LIMITATION_CHANGED="263",ce.LOG="264",ce.AUDIO_PROCESSOR_DEBUG="265",ce.SWITCH_ROOM_START="401",ce.SWITCH_ROOM_SUCCESS="407",ce.SWITCH_ROOM_FAILED="408",ce))(li||{});var U=li;var I_="%cTRTC%c%s",S_="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",y_="display: inline",Xc=class Xc{constructor(){u(this,"_isEnableUploadLog",!0);u(this,"_localJoinedUser",new Map);u(this,"_queue",[]);u(this,"_timeoutId",-1);u(this,"_logLevel",1);u(this,"_logLevelToUpload",2);!ys&&!vn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){V.on(U.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Tr[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),V.on(U.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),V.once(U.JOIN_FAILED,()=>{this.startUpload()}),V.on(U.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Oe(r.userId)&&ke(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return y(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:n,sdkAppId:c,logs:l}=o[s];yield this.uploadLogWithRetry(JSON.stringify({timestamp:hc(),sdkAppId:String(c),userId:n,version:at,log:l.map(m=>m.log).join(`
|
|
4
|
+
`)}),c),l.forEach(m=>m.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e){return Xi({retryFunction:()=>ai({url:si(e,qi.LOG),body:t,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:({retry:r})=>{r()}})()}getPrefix(t){let e=new Date;return e.setTime(Rn()),`[${Ss(e)}] <${Tr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){P(Tr[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Oe(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}log(t,e,r=!0,o,s){var l;e.unshift(this.getPrefix(t));let n={log:e.reduce((m,f)=>`${m} ${this.logChunkToString(f)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};if(V.emit(U.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n),t<this._logLevel)return;let c=((l=Tr[t])==null?void 0:l.toLowerCase())||"info";Xc.PRINT_LOG_TAG?console[c](I_,S_,y_,...e):console[c](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){return new Ms(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Tr[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};u(Xc,"PRINT_LOG_TAG",!(lt||mt||Sl));var Ol=Xc,$=new Ol;var A_=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},ea=A_;var xl=class{constructor(){u(this,"_prefix","TRTC");u(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!ui())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(ui())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){$.warn(t)}}getItem(t){if(!ui())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){$.warn(e)}}setItem(t,e){if(ui())try{let r={expiresIn:Date.now()+fc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){$.warn(r)}}deleteItem(t){if(!ui())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return $.warn(e),!1}}clear(){if(ui())try{localStorage.clear()}catch(t){$.warn(t)}}},Hs=new xl;var eo={};ei(eo,{HTTPS_API:()=>H_,IS_GET_CAPABILITIES_SUPPORTED:()=>tm,IS_GET_SETTINGS_SUPPORTED:()=>js,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>Y_,IS_INSERTABLE_STREAM_SUPPORTED:()=>la,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>tT,IS_RTC_RTP_SENDER_SUPPORTED:()=>ua,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>of,IS_SEI_SUPPORTED:()=>ma,IS_SPC_SUPPORTED:()=>J_,basis:()=>K_,capabilityCheck:()=>im,checkSystemRequirementsInternal:()=>cd,decodeSupportStatus:()=>Xh,encodeSupportStatus:()=>Yl,getBrowserInfo:()=>nd,getDisplayResolution:()=>Qh,isAddTransceiverSupported:()=>ud,isBrowserSupported:()=>Zl,isCanvasCaptureStreamAPISupported:()=>Kh,isCanvasSmallStreamSupported:()=>ef,isGetReceiversSupported:()=>j_,isGetSendersSupported:()=>rf,isGetTransceiversSupported:()=>q_,isGetUserMediaSupported:()=>Yh,isMediaDevicesSupported:()=>ad,isMediaSessionSupported:()=>nf,isMediaStreamTrackProcessorSupported:()=>em,isReplaceTrackSupported:()=>X_,isRequestVideoFrameCallbackSupported:()=>Ei,isSIMDSupported:()=>Z_,isScaleResolutionDownBySupported:()=>tf,isScreenCaptureApiAvailable:()=>da,isSelectedCandidatePair:()=>W_,isSetParametersSupported:()=>Q_,isSmallStreamSupported:()=>dd,isStopTransceiverSupported:()=>z_,isTRTCSupported:()=>F_,isUnifiedPlanDefault:()=>G_,isUsedInHttpProtocol:()=>gi,isWebAudioSupported:()=>Zh,isWebCodecSupported:()=>sf,isWebCodecsSupported:()=>Kl,isWebRTCSupported:()=>rm,isWebTransportSupported:()=>af});var jl={};ei(jl,{AUDIO_LEVEL_SCALE:()=>pi,AudioCodecPipelineType:()=>Kc,AudioDecoderDowngradeState:()=>Ll,AudioPlayerMode:()=>$l,AudioType:()=>Vl,BASIC_TYPE:()=>hi,BannedReason:()=>Bl,CONNECTION_CLOSED_REASON:()=>wh,ClientEvent:()=>Pl,CodecType:()=>Uh,ConnectionEvent:()=>Dh,ConnectionState:()=>Yc,DECODE_FAILED_ERROR_CODE:()=>Gl,FacingMode:()=>Zc,FrameWorkType:()=>Qc,LeaveReason:()=>Hl,LocalTrackEvent:()=>ra,MULTI_VIDEO_DATA_TYPE:()=>mi,MediaType:()=>Dt,MediaTypeLabel:()=>b_,MonitorEventId:()=>oa,MutedFlag:()=>Oh,NetworkQualityValue:()=>kh,PlayerState:()=>Ho,ReceiveMode:()=>Lh,RemoteStreamType:()=>Hr,RemoteTrackEvent:()=>Ws,RoomEvent:()=>Ki,SMALL_MODE:()=>ed,SceneNumber:()=>kl,StreamEvent:()=>Mh,StreamType:()=>Ph,SubscribeMediaType:()=>ta,TIMER_TYPE:()=>Go,TRACK_ACTION:()=>xh,TRACK_KIND:()=>Ul,TrackEvent:()=>Br,UserRole:()=>zt,UserRoleNumber:()=>Wo,VideoCodec:()=>Wl,VideoCodecPipelineType:()=>na,VideoContentHint:()=>aa,VideoDecoderDowngradeState:()=>ia,VideoPlayerMode:()=>sa,VideoType:()=>Fl});var Qc=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(Qc||{}),Dh=(M=>(M.TRACK_ADDED="track-added",M.TRACK_UPDATED="track-updated",M.TRACK_SUBSCRIBED="track-subscribed",M.STREAM_ADDED="stream-added",M.STREAM_REMOVED="stream-removed",M.STREAM_UPDATED="stream-updated",M.STREAM_PUBLISHED="stream-published",M.STREAM_SUBSCRIBED="stream-subscribed",M.STREAM_UNSUBSCRIBED="stream-unsubscribed",M.STATE_CHANGED="state-changed",M.ERROR="error",M.CONNECTION_STATE_CHANGED="connection-state-changed",M.FIREWALL_RESTRICTION="firewall-restriction",M.SEI_MESSAGE="sei-message",M.CLOSED="closed",M))(Dh||{}),wh=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(wh||{}),Pl=(N=>(N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_SUBSCRIBED="stream-subscribed",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.PEER_JOIN="peer-join",N.PEER_LEAVE="peer-leave",N.MUTE_AUDIO="mute-audio",N.MUTE_VIDEO="mute-video",N.UNMUTE_AUDIO="unmute-audio",N.UNMUTE_VIDEO="unmute-video",N.CLIENT_BANNED="client-banned",N.NETWORK_QUALITY="network-quality",N.AUDIO_VOLUME="audio-volume",N.SEI_MESSAGE="sei-message",N.ERROR="error",N))(Pl||{}),Mh=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(Mh||{}),ra=(c=>(c.DEVICE_AUTO_RECOVERED="1",c.DEVICE_RECOVER_FAILED="5",c.DEVICE_CHANGED="2",c.ERROR="3",c.PUBLISH_STATE_CHANGED="4",c.ENCODE_FAILED="6",c.TRACK_ENDED="7",c))(ra||{}),Ho=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Ho||{}),Ki=(oe=>(oe.PEER_JOIN="peer-join",oe.PEER_LEAVE="peer-leave",oe.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",oe.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",oe.BANNED="banned",oe.NETWORK_QUALITY="network-quality",oe.AUDIO_VOLUME="audio-volume",oe.SEI_MESSAGE="sei-message",oe.ERROR="error",oe.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",oe.REMOTE_PUBLISHED="remote-published",oe.REMOTE_UNPUBLISHED="remote-unpublished",oe.FIREWALL_RESTRICTION="firewall-restriction",oe.HEARTBEAT_REPORT="heartbeat-report",oe.CUSTOM_MESSAGE="custom-message",oe.LAYER_DATA="layerData",oe.FIRST_VIDEO_FRAME="first-video-frame",oe.DUMP="dump",oe.AUDIO_FRAME="audio-frame",oe.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",oe))(Ki||{}),Br=(c=>(c.PLAYER_STATE_CHANGED="player-state-changed",c.MUTE="mute",c.UNMUTE="unmute",c.ERROR="error",c.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",c.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",c.FIRST_VIDEO_FRAME="first-video-frame",c))(Br||{}),Ws=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(Ws||{}),Oh=(c=>(c[c.VIDEO=1]="VIDEO",c[c.SMALL=2]="SMALL",c[c.AUX=4]="AUX",c[c.AUDIO=8]="AUDIO",c[c.VIDEO_MUTE=16]="VIDEO_MUTE",c[c.AUX_MUTE=32]="AUX_MUTE",c[c.AUDIO_MUTE=64]="AUDIO_MUTE",c))(Oh||{}),kl=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(kl||{}),Wo=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Wo||{}),zt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(zt||{}),Yc=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Yc||{}),Ll=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Ll||{}),ia=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(ia||{}),Ul=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Ul||{}),xh=(e=>(e.ADD="add",e.REMOVE="remove",e))(xh||{}),Dt=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(Dt||{}),b_={1:"audio",2:"auxVideo",4:"video"},Vl=(t=>(t[t.opus=111]="opus",t))(Vl||{}),Fl=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(Fl||{}),Ph=(e=>(e.Big="big",e.Small="small",e))(Ph||{}),Hr=(e=>(e.Main="main",e.Aux="auxiliary",e))(Hr||{}),mi=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(mi||{}),oa=(j=>(j[j.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",j[j.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",j[j.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",j[j.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",j[j.MUTE_AUDIO=32772]="MUTE_AUDIO",j[j.MUTE_VIDEO=32773]="MUTE_VIDEO",j[j.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",j[j.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",j[j.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",j[j.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",j[j.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",j[j.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",j[j.SWITCH_CAMERA=32780]="SWITCH_CAMERA",j[j.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",j[j.REPLACE_VIDEO=32782]="REPLACE_VIDEO",j[j.REPLACE_AUDIO=32783]="REPLACE_AUDIO",j[j.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",j[j.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",j[j.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",j[j.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",j[j.JOIN=32788]="JOIN",j[j.LEAVE=32789]="LEAVE",j[j.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",j[j.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",j[j.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",j[j.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",j[j.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",j[j.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",j[j.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",j[j.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",j[j.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",j[j.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",j[j.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",j[j.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",j[j.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",j[j.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",j[j.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",j[j.PUBLISH_AUX=32805]="PUBLISH_AUX",j[j.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",j[j.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",j[j.VIDEO_ENCODER=4004]="VIDEO_ENCODER",j[j.VIDEO_DECODER=4005]="VIDEO_DECODER",j))(oa||{}),kh=(c=>(c[c.UNKNOWN=0]="UNKNOWN",c[c.EXCELLENT=1]="EXCELLENT",c[c.GOOD=2]="GOOD",c[c.POOR=3]="POOR",c[c.BAD=4]="BAD",c[c.VERY_BAD=5]="VERY_BAD",c[c.DISCONNECTED=6]="DISCONNECTED",c))(kh||{}),Lh=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(Lh||{}),Zc=(e=>(e.user="user",e.environment="environment",e))(Zc||{}),sa=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(sa||{}),$l=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))($l||{}),Bl=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(Bl||{}),Hl=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Hl||{}),pi=1e8,ta=class{constructor(){u(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},hi=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(hi||{}),Wl=(r=>(r.H264="h264",r.H265="h265",r.VP8="vp8",r))(Wl||{}),na=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(na||{}),Kc=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Kc||{}),Uh=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Uh||{}),Gl=(_=>(_[_.SUCCESS=0]="SUCCESS",_[_.FAILED=1]="FAILED",_[_.WEBCODEC_INIT=2]="WEBCODEC_INIT",_[_.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",_[_.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",_[_.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",_[_.WASM_INIT=6]="WASM_INIT",_[_.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",_[_.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",_[_.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",_[_.TEST=10]="TEST",_[_.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",_))(Gl||{}),aa=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(aa||{}),Go=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(Go||{}),ed=(e=>(e.CANVAS="canvas",e.API="api",e))(ed||{});var $e={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},Xt={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var Vh=(i,t)=>t?`${Lr}/${i}/${t}`:`${Lr}/${i}/index.html`;var R_=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(el);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function Be(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",c="";We(Xt[t])?s=Xt[t](e):Oe(Xt[t])&&(s=Xt[t]);let{TRTC_ERROR_INFO:l,TRTC_ERROR_LINK:m}=R_();r?c=`${r.className}.html#${r.fnName}`:m&&m[t]&&(We(m[t])?c=m[t](e):Oe(m[t])&&(c=m[t]));let f=s;return Sr()&&(l&&l[t]&&(We(l[t])?n=l[t](e):Oe(l[t])&&(n=l[t])),n&&(o?f=`${n}
|
|
5
|
+
\u8BF7\u67E5\u770B\u6587\u6863: ${Vh("zh-cn",c)}
|
|
6
6
|
|
|
7
|
-
`:
|
|
7
|
+
`:f=`${n}
|
|
8
8
|
|
|
9
|
-
`,
|
|
10
|
-
Refer to: ${
|
|
11
|
-
`),E}var ql=Gi($h(),1);var w_=1,O_=0,td=class{constructor(t=!0){u(this,"countMap",new Map);u(this,"distributionMap",new Map);u(this,"version");u(this,"log",$.createLogger({id:"kv"}));t&&(V.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===N.AUDIO?501700:511700,cost:r})}),V.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===N.AUDIO?501700:511700,error:r})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:yc(this.version||at),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,r])=>({uint32_key:e,uint32_count:r})),stats_distribution:[...this.distributionMap.entries()].map(([e,r])=>({uint32_key:e,distribution_items:[...r.entries()].map(([o,s])=>({uint32_item_key:o,uint32_item_value:s}))}))};return this.countMap.clear(),this.distributionMap.clear(),t}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1,max:s=5e3}){var l;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((l=this.distributionMap)==null?void 0:l.get(t))||new Map,c=0;if(Pe(r))c=Math.floor(e/r);else for(let m=r.length-1;m>0;m--)if(e>r[m]){c=m;break}n.set(c,(n.get(c)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:w_,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=q.UNKNOWN;e&&(Pe(e)?r=e:(!P(e.extraCode)||!P(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:O_,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},rd=(X=>(X[X.enterRoom=500700]="enterRoom",X[X.exitRoom=500701]="exitRoom",X[X.switchRole=500702]="switchRole",X[X.destroy=500703]="destroy",X[X.startLocalAudio=500704]="startLocalAudio",X[X.updateLocalAudio=500705]="updateLocalAudio",X[X.stopLocalAudio=500706]="stopLocalAudio",X[X.startLocalVideo=500707]="startLocalVideo",X[X.updateLocalVideo=500708]="updateLocalVideo",X[X.stopLocalVideo=500709]="stopLocalVideo",X[X.startScreenShare=500710]="startScreenShare",X[X.updateScreenShare=500711]="updateScreenShare",X[X.stopScreenShare=500712]="stopScreenShare",X[X.startRemoteVideo=500713]="startRemoteVideo",X[X.updateRemoteVideo=500714]="updateRemoteVideo",X[X.stopRemoteVideo=500715]="stopRemoteVideo",X[X.muteRemoteAudio=500716]="muteRemoteAudio",X[X.setRemoteAudioVolume=500717]="setRemoteAudioVolume",X[X.use=500718]="use",X[X.switchRoom=500719]="switchRoom",X[X.sendSEIMessage=5e5]="sendSEIMessage",X[X.sendCustomMessage=500001]="sendCustomMessage",X))(rd||{}),Wl=(_=>(_[_.AudioMixer=550700]="AudioMixer",_[_.AIDenoiser=551700]="AIDenoiser",_[_.VirtualBackground=570700]="VirtualBackground",_[_.Beauty=571700]="Beauty",_[_.Watermark=572700]="Watermark",_[_.BasicBeauty=574700]="BasicBeauty",_[_.CDNStreaming=590700]="CDNStreaming",_[_.DeviceDetector=591700]="DeviceDetector",_[_.Debug=592700]="Debug",_[_.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",_[_.VideoMixer=594700]="VideoMixer",_[_.AudioProcessor=595700]="AudioProcessor",_))(Wl||{}),Gl=(_=>(_[_.AudioMixer=550701]="AudioMixer",_[_.AIDenoiser=551701]="AIDenoiser",_[_.VirtualBackground=570701]="VirtualBackground",_[_.Beauty=571701]="Beauty",_[_.Watermark=572701]="Watermark",_[_.BasicBeauty=574701]="BasicBeauty",_[_.CDNStreaming=590701]="CDNStreaming",_[_.DeviceDetector=591701]="DeviceDetector",_[_.Debug=592701]="Debug",_[_.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",_[_.VideoMixer=594701]="VideoMixer",_[_.AudioProcessor=595701]="AudioProcessor",_))(Gl||{}),jl=(_=>(_[_.AudioMixer=550702]="AudioMixer",_[_.AIDenoiser=551702]="AIDenoiser",_[_.VirtualBackground=570702]="VirtualBackground",_[_.Beauty=571702]="Beauty",_[_.Watermark=572702]="Watermark",_[_.BasicBeauty=574702]="BasicBeauty",_[_.CDNStreaming=590702]="CDNStreaming",_[_.DeviceDetector=591702]="DeviceDetector",_[_.Debug=592702]="Debug",_[_.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",_[_.VideoMixer=594702]="VideoMixer",_[_.AudioProcessor=595702]="AudioProcessor",_))(jl||{});var x_=new td(!0),qo=new td(!1);var Q=x_;var ke={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},P_=new Map([[Ht,["Firefox",Cc]],[Ps,["Edg",Mc]],[Fs,["Chrome",jc]],[It,["Safari",ci]],[yr,["TBS",xc]],[ks,["XWEB",Pc]],[Ls&&Xi,["WeChat",kc]],[Bn,["QQ(Win)",Lc]],[Vs,["QQ(Mobile)",Os]],[Us,["QQ(Mobile X5)",Os]],[Hn,["QQ(Mac)",Uc]],[Wn,["QQ(iPad)",Vc]],[jn,["MI",Fc]],[qn,["HW",$c]],[Jn,["Samsung",Bc]],[zn,["OPPO",Hc]],[Xn,["VIVO",Wc]],[Vo,["EDGE",Dc]],[Fn,["SogouMobile",wc]],[$n,["Sogou",Oc]]]);function od(){let i=P_.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var zl=function(){return!(fl||Vo||Ps&&pl<80||Ht&&Nc<56)},Hh=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},sd=function(){if(!navigator.mediaDevices)return fi()||$.error(Xt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Bh=!1;function fi(){return location.protocol==="http:"&&!Rr?(Bh||$.error(Be({key:$e.NOT_SUPPORTED_HTTP})),Bh=!0,!0):!1}var Xl=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},Jl=function(){return A(this,null,function*(){if(ke.detail.isH264EncodeSupported&&ke.detail.isVp8EncodeSupported)return{isH264EncodeSupported:ke.detail.isH264EncodeSupported,isVp8EncodeSupported:ke.detail.isVp8EncodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection,o=document.createElement(N.CANVAS);o.getContext("2d");let s=o.captureStream(0);return r.addTrack(s.getVideoTracks()[0],s),i=yield r.createOffer(),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),ke.detail.isH264EncodeSupported=t,ke.detail.isVp8EncodeSupported=e,{isH264EncodeSupported:ke.detail.isH264EncodeSupported,isVp8EncodeSupported:ke.detail.isVp8EncodeSupported}}catch(r){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}})},Wh=function(){return A(this,null,function*(){if(ke.detail.isH264DecodeSupported&&ke.detail.isVp8DecodeSupported)return{isH264DecodeSupported:ke.detail.isH264DecodeSupported,isVp8DecodeSupported:ke.detail.isVp8DecodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection;return cd()?(r.addTransceiver(N.VIDEO,{direction:"recvonly"}),i=yield r.createOffer()):i=yield r.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e}}catch(r){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}})},nd=bc(()=>A(void 0,null,function*(){if(ke.result&&ke.detail.isH264EncodeSupported&&ke.detail.isVp8EncodeSupported&&ke.detail.isH264DecodeSupported&&ke.detail.isVp8DecodeSupported)return ke;let i=Date.now(),t=zl(),e=Yl(),r=Hh(),o=sd(),[{isH264EncodeSupported:s,isVp8EncodeSupported:n},{isH264DecodeSupported:c,isVp8DecodeSupported:l}]=yield Promise.all([Jl(),Wh()]);if(!s||!n){let m=yield Jl();$.warn(`detect encode again h264:${s} vp8:${n} result: ${JSON.stringify(m)}`),s=m.isH264EncodeSupported,n=m.isVp8EncodeSupported}if(s&&c&&mt&&ai&&!ks&&!yr){let{encode:m,decode:E}=yield L_();s=m,c=E}return ke.result=t&&e&&o&&(s||n)&&(c||l),ke.detail.isBrowserSupported=t,ke.detail.isWebRTCSupported=e,ke.detail.isWebCodecsSupported=r,ke.detail.isMediaDevicesSupported=o,ke.detail.isScreenShareSupported=na(),ke.detail.isSmallStreamSupported=ad(),ke.detail.isH264EncodeSupported=s,ke.detail.isVp8EncodeSupported=n,ke.detail.isH264DecodeSupported=c,ke.detail.isVp8DecodeSupported=l,ke.result||$.error(`${navigator.userAgent} ${Ac(ke.detail,!1)}`),X_(),Q.addNumber({key:523800,value:Date.now()-i}),ke})),k_=function(){return ke.result},na=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},id=null;function L_(){return A(this,null,function*(){return id||(id=new Promise(i=>A(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=320,r.height=240;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),n=-1,c=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(c),m.close(),E.close(),l.getTracks().forEach(x=>x.stop())},c=setTimeout(()=>{e(),i(t)},2*1e3);let l=r.captureStream(),m=new RTCPeerConnection({}),E=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",x=>E.addIceCandidate(x.candidate)),E.addEventListener("icecandidate",x=>m.addIceCandidate(x.candidate)),m.addTrack(l.getVideoTracks()[0],l);let g=yield m.createOffer();yield m.setLocalDescription(g),yield E.setRemoteDescription(g);let _=yield E.createAnswer(),v=ql.default.parse(_.sdp),L=v.media[0].rtp.findIndex(x=>x.codec==="H264");v.media[0].rtp=[v.media[0].rtp[L]],v.media[0].fmtp=v.media[0].fmtp.filter(x=>x.payload===v.media[0].rtp[0].payload),v.media[0].rtcpFb&&(v.media[0].rtcpFb=v.media[0].rtcpFb.filter(x=>x.payload===v.media[0].rtp[0].payload)),_.sdp=ql.default.write(v),yield E.setLocalDescription(_),yield m.setRemoteDescription(_),n=setInterval(()=>A(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[x,M]=yield Promise.all([m.getSenders()[0].getStats(),E.getReceivers()[0].getStats()]);t.encode||x.forEach(B=>{B.type==="outbound-rtp"&&B.mediaType===N.VIDEO&&B.bytesSent>0&&(t.encode=!0)}),t.decode||M.forEach(B=>{B.type==="inbound-rtp"&&B.mediaType===N.VIDEO&&B.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),$.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&$.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Ar}`),i)),id)})}var U_=(i,t,e)=>{location.protocol==="http:"&&!Rr&&(i[t]=()=>{throw new ue({code:q.INVALID_OPERATION,message:Xt.NOT_SUPPORTED_HTTP})})},V_=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(st(i.selected)&&!i.selected):!1};function Gh(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function jh(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function qh(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function Jh(){return"captureStream"in HTMLCanvasElement.prototype}function zh(){return Ls||lt||Fr&&Fr<63?!1:!!(zl()&&Jh())}function Xh(){return!(Fr<74||Vo||Jt<11||Nc<46)}function ad(){return zh()||Xh()}var F_=function(){if(P(window.RTCRtpTransceiver)||!cd()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:rl}),i.addTransceiver(N.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function $_(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function Qh(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function B_(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function cd(){return Jt===11&&!Al?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var H_=!(!cd()||ai&&Fr<86);function W_(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var aa="RTCRtpSender"in window;function G_(){return aa&&"replaceTrack"in window.RTCRtpSender.prototype}function j_(){return aa&&"setParameters"in window.RTCRtpSender.prototype&&Qh()}var q_="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,js=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Ql=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,ca=aa&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Gc()>=86,Yh="RTCRtpScriptTransform"in window,da=aa&&(ca||Yh),Yl=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Zh(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return P(window.AudioDecoder)||(i.AudioDecoder=!0),P(window.AudioEncoder)||(i.AudioEncoder=!0),P(window.VideoDecoder)||(i.VideoDecoder=!0),P(window.VideoEncoder)||(i.VideoEncoder=!0),P(window.ImageDecoder)||(i.ImageDecoder=!0),i}function Kh(){return"mediaSession"in navigator&&!P(navigator.mediaSession.setActionHandler)}function ef(){return!P(window.WebTransport)}function J_(){return typeof WebAssembly=="undefined"?!1: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]))}function z_(){let i={browser:`${Vr.name}/${Vr.version}`,os:$s(),displayResolution:Gh(),isScreenShareSupported:na(),isWebRTCSupported:Yl(),isGetUserMediaSupported:jh(),isWebAudioSupported:qh(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Zh(),isMediaSessionSupported:Kh(),isWebTransportSupported:ef()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var tf="checkResult";function X_(){Hs.setItem(tf,{ua:navigator.userAgent,checkResult:ke})}function Zl(){fi();let i=Hs.getItem(tf);i&&i.ua===navigator.userAgent&&i.checkResult&&Q_(i.checkResult.detail,ke.detail)&&(ke=i.checkResult),nd()}function Q_(i,t){return er(i)?Object.keys(t).every(e=>e in i):!1}function gi(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var Y_="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;var of=Gi(Zi(),1);var rf=Symbol("instance"),My=Symbol("abortCtrl"),dd=Symbol("cacheResult"),ua=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,pa.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},la=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function Z_(i){return typeof i=="object"&&i&&"then"in i}var ma=new Map;function Qe(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let l=ma.get(r)||[];ma.has(r)||ma.set(r,l),l.push({from:i,to:t,action:n})}let c=s.value;s.value=function(...l){let m=this;if(e.context&&(m=de.get(typeof e.context=="function"?e.context.call(this,...l):e.context)),m.state===t)return e.sync?m[dd]:Promise.resolve(m[dd]);m.state instanceof ua&&m.state.action==e.abortAction&&m.state.abort(m);let E=null;Array.isArray(i)?i.length==0?m.state instanceof ua&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(E=new la(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(E=new la(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=M=>{if(e.fail&&e.fail.call(this,M),e.sync){if(e.ignoreError)return M;throw M}else return e.ignoreError?Promise.resolve(M):Promise.reject(M)};if(E)return g(E);let _=m.state,v=new ua(_,t,n);pa.call(m,v);let L=M=>{var B;return m[dd]=M,v.aborted||(pa.call(m,t),(B=e.success)===null||B===void 0||B.call(this,m[dd])),M},x=M=>(pa.call(m,_,M),g(M));try{let M=c.apply(this,l);return Z_(M)?M.then(L).catch(x):e.sync?L(M):Promise.resolve(L(M))}catch(M){return x(new la(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${M}`,M instanceof Error?M:new Error(String(M))))}}}}var K_=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function pa(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(de.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var de=class i extends of.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[rf];o?this.name=o.name+"-"+o.count++:r[rf]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=ma.get(t)||[],r=new Set,o=[],s=[],n=new Set,c=Object.getPrototypeOf(t);ma.has(c)&&(c.stateDiagram.forEach(m=>r.add(m)),c.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:E,action:g})=>{typeof m=="string"?o.push({from:m,to:E,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:E,action:g})}):s.push({to:E,action:g})}),o.forEach(({from:m,to:E,action:g})=>{n.add(m),n.add(E),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${E} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:E})=>{r.add(`${E}ing --> ${m} : ${E} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${E}ing : ${E}`)})});let l=[...r];return Object.defineProperties(t,{stateDiagram:{value:l},allStates:{value:n}}),l}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){K_(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){pa.call(this,t)}};de.STATECHANGED="stateChanged";de.UPDATEAFSM="updateAFSM";de.INIT="[*]";de.ON="on";de.OFF="off";de.instances=new Map;de.instances2=new WeakMap;var em=typeof window!="undefined",sf=em&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},eT=em&&window.cancelIdleCallback||function(i){clearTimeout(i)},nf=em&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),_t=class _t{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=z({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=z({delay:1e4,count:0},r):t==="raf"?r=z({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=z({delay:2e3,count:0,backgroundTask:!0},r);let o=Te(z({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,_t.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){_t.sharedWorker||(_t.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
|
9
|
+
`,f+=s)),o&&(f+=`
|
|
10
|
+
Refer to: ${Vh("en",c)}
|
|
11
|
+
`),f}var Ql=ji(qh(),1);var k_=1,L_=0,rd=class{constructor(t=!0){u(this,"countMap",new Map);u(this,"distributionMap",new Map);u(this,"version");u(this,"log",$.createLogger({id:"kv"}));t&&(V.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===D.AUDIO?501700:511700,cost:r})}),V.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===D.AUDIO?501700:511700,error:r})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:Rc(this.version||at),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,r])=>({uint32_key:e,uint32_count:r})),stats_distribution:[...this.distributionMap.entries()].map(([e,r])=>({uint32_key:e,distribution_items:[...r.entries()].map(([o,s])=>({uint32_item_key:o,uint32_item_value:s}))}))};return this.countMap.clear(),this.distributionMap.clear(),t}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1,max:s=5e3}){var l;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((l=this.distributionMap)==null?void 0:l.get(t))||new Map,c=0;if(ke(r))c=Math.floor(e/r);else for(let m=r.length-1;m>0;m--)if(e>r[m]){c=m;break}n.set(c,(n.get(c)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:k_,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=q.UNKNOWN;e&&(ke(e)?r=e:(!P(e.extraCode)||!P(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:L_,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},id=(J=>(J[J.enterRoom=500700]="enterRoom",J[J.exitRoom=500701]="exitRoom",J[J.switchRole=500702]="switchRole",J[J.destroy=500703]="destroy",J[J.startLocalAudio=500704]="startLocalAudio",J[J.updateLocalAudio=500705]="updateLocalAudio",J[J.stopLocalAudio=500706]="stopLocalAudio",J[J.startLocalVideo=500707]="startLocalVideo",J[J.updateLocalVideo=500708]="updateLocalVideo",J[J.stopLocalVideo=500709]="stopLocalVideo",J[J.startScreenShare=500710]="startScreenShare",J[J.updateScreenShare=500711]="updateScreenShare",J[J.stopScreenShare=500712]="stopScreenShare",J[J.startRemoteVideo=500713]="startRemoteVideo",J[J.updateRemoteVideo=500714]="updateRemoteVideo",J[J.stopRemoteVideo=500715]="stopRemoteVideo",J[J.muteRemoteAudio=500716]="muteRemoteAudio",J[J.setRemoteAudioVolume=500717]="setRemoteAudioVolume",J[J.use=500718]="use",J[J.switchRoom=500719]="switchRoom",J[J.sendSEIMessage=5e5]="sendSEIMessage",J[J.sendCustomMessage=500001]="sendCustomMessage",J))(id||{}),Jl=(_=>(_[_.AudioMixer=550700]="AudioMixer",_[_.AIDenoiser=551700]="AIDenoiser",_[_.VirtualBackground=570700]="VirtualBackground",_[_.Beauty=571700]="Beauty",_[_.Watermark=572700]="Watermark",_[_.BasicBeauty=574700]="BasicBeauty",_[_.CDNStreaming=590700]="CDNStreaming",_[_.DeviceDetector=591700]="DeviceDetector",_[_.Debug=592700]="Debug",_[_.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",_[_.VideoMixer=594700]="VideoMixer",_[_.AudioProcessor=595700]="AudioProcessor",_))(Jl||{}),zl=(_=>(_[_.AudioMixer=550701]="AudioMixer",_[_.AIDenoiser=551701]="AIDenoiser",_[_.VirtualBackground=570701]="VirtualBackground",_[_.Beauty=571701]="Beauty",_[_.Watermark=572701]="Watermark",_[_.BasicBeauty=574701]="BasicBeauty",_[_.CDNStreaming=590701]="CDNStreaming",_[_.DeviceDetector=591701]="DeviceDetector",_[_.Debug=592701]="Debug",_[_.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",_[_.VideoMixer=594701]="VideoMixer",_[_.AudioProcessor=595701]="AudioProcessor",_))(zl||{}),Xl=(_=>(_[_.AudioMixer=550702]="AudioMixer",_[_.AIDenoiser=551702]="AIDenoiser",_[_.VirtualBackground=570702]="VirtualBackground",_[_.Beauty=571702]="Beauty",_[_.Watermark=572702]="Watermark",_[_.BasicBeauty=574702]="BasicBeauty",_[_.CDNStreaming=590702]="CDNStreaming",_[_.DeviceDetector=591702]="DeviceDetector",_[_.Debug=592702]="Debug",_[_.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",_[_.VideoMixer=594702]="VideoMixer",_[_.AudioProcessor=595702]="AudioProcessor",_))(Xl||{});var U_=new rd(!0),qo=new rd(!1);var Q=U_;var Ce={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},V_=new Map([[Ht,["Firefox",Dc]],[Ps,["Edg",Oc]],[Fs,["Chrome",Jc]],[It,["Safari",di]],[Ar,["TBS",kc]],[ks,["XWEB",Lc]],[Ls&&Qi,["WeChat",Uc]],[Hn,["QQ(Win)",Vc]],[Vs,["QQ(Mobile)",Os]],[Us,["QQ(Mobile X5)",Os]],[Wn,["QQ(Mac)",Fc]],[Gn,["QQ(iPad)",$c]],[qn,["MI",Bc]],[Jn,["HW",Hc]],[zn,["Samsung",Wc]],[Xn,["OPPO",Gc]],[Qn,["VIVO",jc]],[Vo,["EDGE",Mc]],[$n,["SogouMobile",xc]],[Bn,["Sogou",Pc]]]);function nd(){let i=V_.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var Zl=function(){return!(El||Vo||Ps&&fl<80||Ht&&wc<56)},Kl=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},ad=function(){if(!navigator.mediaDevices)return gi()||$.error(Xt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Jh=!1;function gi(){return location.protocol==="http:"&&!vr?(Jh||$.error(Be({key:$e.NOT_SUPPORTED_HTTP})),Jh=!0,!0):!1}var em=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},Yl=function(){return y(this,null,function*(){if(Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Ce.detail.isH264EncodeSupported,isVp8EncodeSupported:Ce.detail.isVp8EncodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection,o=document.createElement(D.CANVAS);o.getContext("2d");let s=o.captureStream(0);return r.addTrack(s.getVideoTracks()[0],s),i=yield r.createOffer(),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),Ce.detail.isH264EncodeSupported=t,Ce.detail.isVp8EncodeSupported=e,{isH264EncodeSupported:Ce.detail.isH264EncodeSupported,isVp8EncodeSupported:Ce.detail.isVp8EncodeSupported}}catch(r){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}})},Xh=function(){return y(this,null,function*(){if(Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Ce.detail.isH264DecodeSupported,isVp8DecodeSupported:Ce.detail.isVp8DecodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection;return ud()?(r.addTransceiver(D.VIDEO,{direction:"recvonly"}),i=yield r.createOffer()):i=yield r.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e}}catch(r){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}})},cd=vc(i=>y(void 0,null,function*(){let t=Date.now(),e=rm(),r=ad(),o=Kl();if(Ce.detail.isWebRTCSupported=e,Ce.detail.isMediaDevicesSupported=r,Ce.detail.isWebCodecsSupported=o,Ce.detail.isScreenShareSupported=da(),Ce.detail.isSmallStreamSupported=dd(),i===37)return Object.assign(Ce.detail,yield B_()),Ce.detail.isBrowserSupported=o,Ce.result=r&&o,Ce.result||$.error(`${navigator.userAgent} ${Un(Ce.detail,!1)}`),zh(i),Q.addNumber({key:523800,value:Date.now()-t}),Ce;if(Ce.result&&Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported&&Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported)return Ce;let s=Zl(),[{isH264EncodeSupported:n,isVp8EncodeSupported:c},{isH264DecodeSupported:l,isVp8DecodeSupported:m}]=yield Promise.all([Yl(),Xh()]);if(!n||!c){let f=yield Yl();$.warn(`detect encode again h264:${n} vp8:${c} result: ${JSON.stringify(f)}`),n=f.isH264EncodeSupported,c=f.isVp8EncodeSupported}if(n&&l&&mt&&ci&&!ks&&!Ar){let{encode:f,decode:E}=yield $_();n=f,l=E}return Ce.result=s&&e&&r&&(n||c)&&(l||m),Ce.detail.isBrowserSupported=s,Ce.detail.isWebRTCSupported=e,Ce.detail.isH264EncodeSupported=n,Ce.detail.isVp8EncodeSupported=c,Ce.detail.isH264DecodeSupported=l,Ce.detail.isVp8DecodeSupported=m,Ce.result||$.error(`${navigator.userAgent} ${Un(Ce.detail,!1)}`),zh(),Q.addNumber({key:523800,value:Date.now()-t}),Ce})),F_=function(){return Ce.result},da=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},od=null;function $_(){return y(this,null,function*(){return od||(od=new Promise(i=>y(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=320,r.height=240;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),n=-1,c=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(c),m.close(),f.close(),l.getTracks().forEach(M=>M.stop())},c=setTimeout(()=>{e(),i(t)},2*1e3);let l=r.captureStream(),m=new RTCPeerConnection({}),f=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",M=>f.addIceCandidate(M.candidate)),f.addEventListener("icecandidate",M=>m.addIceCandidate(M.candidate)),m.addTrack(l.getVideoTracks()[0],l);let E=yield m.createOffer();yield m.setLocalDescription(E),yield f.setRemoteDescription(E);let _=yield f.createAnswer(),v=Ql.default.parse(_.sdp),k=v.media[0].rtp.findIndex(M=>M.codec==="H264");v.media[0].rtp=[v.media[0].rtp[k]],v.media[0].fmtp=v.media[0].fmtp.filter(M=>M.payload===v.media[0].rtp[0].payload),v.media[0].rtcpFb&&(v.media[0].rtcpFb=v.media[0].rtcpFb.filter(M=>M.payload===v.media[0].rtp[0].payload)),_.sdp=Ql.default.write(v),yield f.setLocalDescription(_),yield m.setRemoteDescription(_),n=setInterval(()=>y(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[M,N]=yield Promise.all([m.getSenders()[0].getStats(),f.getReceivers()[0].getStats()]);t.encode||M.forEach(B=>{B.type==="outbound-rtp"&&B.mediaType===D.VIDEO&&B.bytesSent>0&&(t.encode=!0)}),t.decode||N.forEach(B=>{B.type==="inbound-rtp"&&B.mediaType===D.VIDEO&&B.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),$.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&$.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${yr}`),i)),od)})}var sd=null;function B_(){return y(this,null,function*(){return sd||(sd=new Promise(i=>y(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!Kl()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,c=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let l=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E"}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(l.map(f=>y(this,null,function*(){let E={type:f.type,encodeSupported:!1,decodeSupported:!1},_;try{_=yield new Promise((v,k)=>y(this,null,function*(){let M=new VideoEncoder({output:B=>{v(B),E.encodeSupported=!0},error:B=>{k(B)}});M.configure(f.encodeConfig),c();let N=new VideoFrame(e,{timestamp:0});M.encode(N,{keyFrame:!0}),N.close(),yield M.flush(),M.close()}))}catch(v){return $.warn(`${f.type} encoder error:`,v),E}try{yield new Promise((v,k)=>y(this,null,function*(){let M=new VideoDecoder({output:N=>{E.decodeSupported=!0,v(0),N.close()},error:k});M.configure(f.decodeConfig),M.decode(_),yield M.flush(),M.close()}))}catch(v){$.warn(`${f.type} decoder error:`,v)}return E})))).forEach(f=>{f.type==="h264"?(t.isH264EncodeSupported=f.encodeSupported,t.isH264DecodeSupported=f.decodeSupported):f.type==="vp8"&&(t.isVp8EncodeSupported=f.encodeSupported,t.isVp8DecodeSupported=f.decodeSupported)}),s(),i(t)}catch(n){s(),$.warn("detectWebCodecsSupported failed:",n),i(t)}})),sd)})}var H_=(i,t,e)=>{location.protocol==="http:"&&!vr&&(i[t]=()=>{throw new ue({code:q.INVALID_OPERATION,message:Xt.NOT_SUPPORTED_HTTP})})},W_=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(st(i.selected)&&!i.selected):!1};function Qh(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function Yh(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function Zh(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function Kh(){return"captureStream"in HTMLCanvasElement.prototype}function ef(){return Ls||lt||$r&&$r<63?!1:!!(Zl()&&Kh())}function tf(){return!($r<74||Vo||Jt<11||wc<46)}function dd(){return ef()||tf()}var G_=function(){if(P(window.RTCRtpTransceiver)||!ud()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:ol}),i.addTransceiver(D.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function j_(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function rf(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function q_(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function ud(){return Jt===11&&!vl?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var J_=!(!ud()||ci&&$r<86);function z_(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var ua="RTCRtpSender"in window;function X_(){return ua&&"replaceTrack"in window.RTCRtpSender.prototype}function Q_(){return ua&&"setParameters"in window.RTCRtpSender.prototype&&rf()}var Y_="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,js=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,tm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,la=ua&&"createEncodedStreams"in window.RTCRtpSender.prototype&&qc()>=86,of="RTCRtpScriptTransform"in window,ma=ua&&(la||of),rm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function sf(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return P(window.AudioDecoder)||(i.AudioDecoder=!0),P(window.AudioEncoder)||(i.AudioEncoder=!0),P(window.VideoDecoder)||(i.VideoDecoder=!0),P(window.VideoEncoder)||(i.VideoEncoder=!0),P(window.ImageDecoder)||(i.ImageDecoder=!0),i}function nf(){return"mediaSession"in navigator&&!P(navigator.mediaSession.setActionHandler)}function af(){return!P(window.WebTransport)}function Z_(){return typeof WebAssembly=="undefined"?!1: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]))}function K_(){let i={browser:`${Fr.name}/${Fr.version}`,os:$s(),displayResolution:Qh(),isScreenShareSupported:da(),isWebRTCSupported:rm(),isGetUserMediaSupported:Yh(),isWebAudioSupported:Zh(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:sf(),isMediaSessionSupported:nf(),isWebTransportSupported:af()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var cf="checkResult";function zh(i=30){Hs.setItem(cf+i,{ua:navigator.userAgent,checkResult:Ce})}function im(i){gi();let t=Hs.getItem(cf+i);t&&t.ua===navigator.userAgent&&t.checkResult&&eT(t.checkResult.detail,Ce.detail)&&(Ce=t.checkResult),cd(i)}function eT(i,t){return er(i)?Object.keys(t).every(e=>e in i):!1}function Ei(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var tT="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;var uf=ji(Zi(),1);var df=Symbol("instance"),kA=Symbol("abortCtrl"),ld=Symbol("cacheResult"),pa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,ga.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},ha=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function rT(i){return typeof i=="object"&&i&&"then"in i}var fa=new Map;function Qe(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let l=fa.get(r)||[];fa.has(r)||fa.set(r,l),l.push({from:i,to:t,action:n})}let c=s.value;s.value=function(...l){let m=this;if(e.context&&(m=de.get(typeof e.context=="function"?e.context.call(this,...l):e.context)),m.state===t)return e.sync?m[ld]:Promise.resolve(m[ld]);m.state instanceof pa&&m.state.action==e.abortAction&&m.state.abort(m);let f=null;Array.isArray(i)?i.length==0?m.state instanceof pa&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(f=new ha(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(f=new ha(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let E=N=>{if(e.fail&&e.fail.call(this,N),e.sync){if(e.ignoreError)return N;throw N}else return e.ignoreError?Promise.resolve(N):Promise.reject(N)};if(f)return E(f);let _=m.state,v=new pa(_,t,n);ga.call(m,v);let k=N=>{var B;return m[ld]=N,v.aborted||(ga.call(m,t),(B=e.success)===null||B===void 0||B.call(this,m[ld])),N},M=N=>(ga.call(m,_,N),E(N));try{let N=c.apply(this,l);return rT(N)?N.then(k).catch(M):e.sync?k(N):Promise.resolve(k(N))}catch(N){return M(new ha(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${N}`,N instanceof Error?N:new Error(String(N))))}}}}var iT=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function ga(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(de.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var de=class i extends uf.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[df];o?this.name=o.name+"-"+o.count++:r[df]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=fa.get(t)||[],r=new Set,o=[],s=[],n=new Set,c=Object.getPrototypeOf(t);fa.has(c)&&(c.stateDiagram.forEach(m=>r.add(m)),c.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:f,action:E})=>{typeof m=="string"?o.push({from:m,to:f,action:E}):m.length?m.forEach(_=>{o.push({from:_,to:f,action:E})}):s.push({to:f,action:E})}),o.forEach(({from:m,to:f,action:E})=>{n.add(m),n.add(f),n.add(E+"ing"),r.add(`${m} --> ${E}ing : ${E}`),r.add(`${E}ing --> ${f} : ${E} \u{1F7E2}`),r.add(`${E}ing --> ${m} : ${E} \u{1F534}`)}),s.forEach(({to:m,action:f})=>{r.add(`${f}ing --> ${m} : ${f} \u{1F7E2}`),n.forEach(E=>{E!==m&&r.add(`${E} --> ${f}ing : ${f}`)})});let l=[...r];return Object.defineProperties(t,{stateDiagram:{value:l},allStates:{value:n}}),l}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){iT(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){ga.call(this,t)}};de.STATECHANGED="stateChanged";de.UPDATEAFSM="updateAFSM";de.INIT="[*]";de.ON="on";de.OFF="off";de.instances=new Map;de.instances2=new WeakMap;var sm=typeof window!="undefined",lf=sm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},oT=sm&&window.cancelIdleCallback||function(i){clearTimeout(i)},mf=sm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),_t=class _t{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=X({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=X({delay:1e4,count:0},r):t==="raf"?r=X({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=X({delay:2e3,count:0,backgroundTask:!0},r);let o=Te(X({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,_t.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){_t.sharedWorker||(_t.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
|
12
12
|
const timers = new Map();
|
|
13
13
|
self.onmessage = function(e) {
|
|
14
14
|
const { taskId, delay, type } = e.data;
|
|
@@ -21,14 +21,14 @@ Refer to: ${Oh("en",c)}
|
|
|
21
21
|
timers.delete(taskId);
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
-
`],{type:"application/javascript"}))),_t.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=_t.workerTasks.get(e.data.taskId);o&&(_t.isBreakLoop(o)?((r=_t.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),_t.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),_t.workerTasks.set(t.taskID,t),_t.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!_t.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=Ie(),r,o=()=>{if(r=Ie()-e,r>=t.delay&&(e=Ie()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!_t.isBreakLoop(t))return t.ricID=
|
|
25
|
-
${r.stack}`)),this.sendRequest(oi(this._configs.sdkAppId,ji.LOG),o)}sendRequest(t,e){setTimeout(()=>ni({url:t,body:JSON.stringify(e),priority:"low"}).catch(()=>{}),2e3)}},je=new tm;var Jo=new WeakMap;function zo({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let c=zi({retryFunction:n.value,settings:i,onError({error:l,retry:m,reject:E,retryFuncArgs:g}){var _;t?t.call(this,l,()=>{var v;(v=Jo.get(o))!=null&&v.has(s)?m():E(l)},E,g):(_=Jo.get(o))!=null&&_.has(s)?m():E(l)},onRetrying(l,m){var E;Ji(e)&&e.call(this,l,m),(E=Jo.get(o))!=null&&E.has(s)&&(Jo.get(o).get(s).stopRetry=m)},onRetryFailed:r});return n.value=function(...l){let m=Jo.get(o);return m?m.set(s,{args:l}):Jo.set(o,new Map([[s,{args:l}]])),c.apply(this,l).finally(()=>{var E;return(E=Jo.get(o))==null?void 0:E.delete(s)})},n}}var Gr=class extends de{constructor(e,r){super(e.id,`${r}-player`);this.kind=r;u(this,"id");u(this,"element",null);u(this,"track");u(this,"url");u(this,"attr");u(this,"mode");u(this,"muted");u(this,"_log");u(this,"_pausedRetryCount");u(this,"_isElementPlayingFired",!1);u(this,"_interval");u(this,"_delayDestroyTimeoutId",0);u(this,"_playSuccessResolve");u(this,"_isReplayByRecreateMediaStreamCalled",!1);u(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Oo,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&((e=this.element)==null?void 0:e.paused)===!1}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return A(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=Be({key:$e.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ue({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!Qi?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(N.ENDED),this._interval>0&&vt.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():Il?this.replay():this.play().catch(()=>{})}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return Vt(this.element,this.element).add(N.PLAYING,e).add(N.ENDED,e).add(N.PAUSE,e).add(N.ERROR,e).add(N.LOADEDDATA,e).add(N.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Wr==null||Wr.create(e,e).add(N.ENDED,r).add(N.MUTE,r).add(N.UNMUTE,r),e.readyState===N.ENDED&&this.handleTrackEvent({type:N.ENDED}),e.muted&&this.handleTrackEvent({type:N.MUTE})}}bindAutoPlayEvent(){V.on(U.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&ht(e)}unbindEvents(){this.element&&ht(this.element),this.unbindTrackEvents(),V.off(U.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case N.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(N.PLAYING),this._interval&&(vt.clearTask(this._interval),this._interval=-1);break;case N.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(N.ENDED);break;case N.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(N.PAUSE),lt&&(this._interval=vt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case N.ERROR:if(this.element&&this.element.error){this.handlePaused(N.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),je.uploadEvent({log:`stat-${this.kind}-${ti.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),El||gl?this.emit(et.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case N.LOADEDDATA:this.kind===N.VIDEO&&this.emit(et.LOADED_DATA);break;case N.LOADEDMETADATA:this.kind===N.VIDEO&&this.emit(et.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Q.addSuccessEvent({key:this.kind===N.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Q.addFailedEvent({key:this.kind===N.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(et.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{Vn(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,n,c;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((c=this.element)==null?void 0:c.error)}),Vn(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return A(this,null,function*(){switch(e.type){case N.ENDED:this.handleStopped(N.ENDED);break;case N.MUTE:this.handlePaused(N.MUTE);break;case N.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.resume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(N.UNMUTE));break}})}handlePlaying(e){var r;this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this._log.debug("handlePaused",e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this._log.debug("handleStopped",e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};Z([zo({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Gr.prototype,"doReplayByRecreateMediaStream",1),Z([Qe([],"PLAYING",{sync:!0})],Gr.prototype,"handlePlaying",1),Z([Qe("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],Gr.prototype,"handlePaused",1),Z([Qe([],"STOPPED",{sync:!0})],Gr.prototype,"handleStopped",1);var Ei="trtc_autoplay",rm=`${Ei}_mask`,qs=`${Ei}_wrapper`,af=`${Ei}_header`,im=`${Ei}_content`,ud=`${Ei}_action_wrapper`,om=`${Ei}_question`,sm=`${Ei}_collapse`,ld=`${Ei}_action_confirm`,cf=`${Ei}_detail`,df="#2473E8",am="dialog",rT=`${am}-show`,iT=`${am}-1`,oT=`${am}-2`,uf=!1,cm=()=>!!document.querySelector(`.${qs}`),mf=`${kr}/${Sr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,lf=`<br><a href='${mf}' target='_blank'>${Sr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,sT=`${Sr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${lf}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${lf}`}`,nm=class{constructor(){u(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");u(this,"_dialogNode",null);u(this,"_bodyPosition","");u(this,"_showDetail",!1);u(this,"_isCollapseClicked",!1);u(this,"_isQuestionClicked",!1);if(Sr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!uf){let t=document.createElement("style");t.innerHTML=`.${rm}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${rm} div:not(.${ud}){display:block !important;}.${qs}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${qs} a{color:${df};}.${af}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${im}{margin:8px 0;}.${ud}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${sm}{margin-right:auto;cursor:pointer}.${om}{height:100%;line-height:16px;cursor:pointer;}.${ld}{margin-left:8px;color:#fff;background:${df};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${ld}:hover{opacity:0.9;}.${sm},.${ld},.${im},.${om}{font-size:14px;}@media screen and (max-width:750px){.${qs}{width:80vw;}}`,document.head.appendChild(t),uf=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${rm}"><div class='${qs}'><div class='${af}'>${location.host}</div><div class='${im}'>${this.content}</div><div class='${cf}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${sT}</div><div class='${ud}'></div></div></div>`.trim();let e=document.createElement("button");e.className=ld,e.innerText=Sr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=om,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
|
24
|
+
`],{type:"application/javascript"}))),_t.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=_t.workerTasks.get(e.data.taskId);o&&(_t.isBreakLoop(o)?((r=_t.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),_t.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),_t.workerTasks.set(t.taskID,t),_t.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!_t.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=Ie(),r,o=()=>{if(r=Ie()-e,r>=t.delay&&(e=Ie()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!_t.isBreakLoop(t))return t.ricID=lf(o,{timeout:t.delay})};return t.ricID=lf(o,{timeout:t.delay})}static raf(t){let e=Ie(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=Ie()-e,e=Ie(),t.callback(),t.loopCount+=1,_t.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=Ie()-e,r>=t.delay&&(e=Ie()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!_t.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let n=Ie()-e;n>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-n)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:n}=this.taskMap.get(t);return e&&clearInterval(e),r&&clearTimeout(r),o&&mf&&mf(o),s&&oT(s),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.hasTask(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};u(_t,"taskMap",new Map),u(_t,"currentTaskID",1),u(_t,"sharedWorker",null),u(_t,"workerTasks",new Map);var om=_t,vt=om;var jA={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:D.SEI_MESSAGE,ERROR:"error"};var et={LOADED_DATA:D.LOADEDDATA,LOADED_META_DATA:D.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"};var Gr={};ei(Gr,{create:()=>Vt,remove:()=>ht});var Ea=new WeakMap;function Vt(i,t){Ea.has(i)||Ea.set(i,[]);let e=Ea.get(i),o={add:(s,n)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,n)),t.addEventListener(s,n)):(e.push(t.off.bind(t,s,n)),t.on(s,n)),o)};return o}function ht(i){let t=Ea.get(i);t&&(t.forEach(e=>e()),Ea.delete(i))}var nm=class{constructor(){u(this,"_roomIdMap",new Map);u(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:at,env:ti.QCLOUD,browserVersion:Fr.name+Fr.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){vr||!$.isAbleToUpload||this._configs.env===ti.QCLOUD&&this.uploadEventToKibana(Te(X({},t),{result:"success"}))}logFailedEvent(t){if(vr||!$.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,n={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||q.UNKNOWN};this._configs.env===ti.QCLOUD&&this.uploadEventToKibana(Te(X({},n),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:hc(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:at,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
|
|
25
|
+
${r.stack}`)),this.sendRequest(si(this._configs.sdkAppId,qi.LOG),o)}sendRequest(t,e){setTimeout(()=>ai({url:t,body:JSON.stringify(e),priority:"low"}).catch(()=>{}),2e3)}},je=new nm;var Jo=new WeakMap;function zo({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let c=Xi({retryFunction:n.value,settings:i,onError({error:l,retry:m,reject:f,retryFuncArgs:E}){var _;t?t.call(this,l,()=>{var v;(v=Jo.get(o))!=null&&v.has(s)?m():f(l)},f,E):(_=Jo.get(o))!=null&&_.has(s)?m():f(l)},onRetrying(l,m){var f;zi(e)&&e.call(this,l,m),(f=Jo.get(o))!=null&&f.has(s)&&(Jo.get(o).get(s).stopRetry=m)},onRetryFailed:r});return n.value=function(...l){let m=Jo.get(o);return m?m.set(s,{args:l}):Jo.set(o,new Map([[s,{args:l}]])),c.apply(this,l).finally(()=>{var f;return(f=Jo.get(o))==null?void 0:f.delete(s)})},n}}var jr=class extends de{constructor(e,r){super(e.id,`${r}-player`);this.kind=r;u(this,"id");u(this,"element",null);u(this,"track");u(this,"url");u(this,"attr");u(this,"mode");u(this,"muted");u(this,"_log");u(this,"_pausedRetryCount");u(this,"_isElementPlayingFired",!1);u(this,"_interval");u(this,"_delayDestroyTimeoutId",0);u(this,"_playSuccessResolve");u(this,"_isReplayByRecreateMediaStreamCalled",!1);u(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Oo,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&((e=this.element)==null?void 0:e.paused)===!1}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return y(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=Be({key:$e.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ue({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!Yi?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(D.ENDED),this._interval>0&&vt.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():bl?this.replay():this.play().catch(()=>{})}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return Vt(this.element,this.element).add(D.PLAYING,e).add(D.ENDED,e).add(D.PAUSE,e).add(D.ERROR,e).add(D.LOADEDDATA,e).add(D.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Gr==null||Gr.create(e,e).add(D.ENDED,r).add(D.MUTE,r).add(D.UNMUTE,r),e.readyState===D.ENDED&&this.handleTrackEvent({type:D.ENDED}),e.muted&&this.handleTrackEvent({type:D.MUTE})}}bindAutoPlayEvent(){V.on(U.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&ht(e)}unbindEvents(){this.element&&ht(this.element),this.unbindTrackEvents(),V.off(U.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case D.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(D.PLAYING),this._interval&&(vt.clearTask(this._interval),this._interval=-1);break;case D.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(D.ENDED);break;case D.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(D.PAUSE),lt&&(this._interval=vt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case D.ERROR:if(this.element&&this.element.error){this.handlePaused(D.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),je.uploadEvent({log:`stat-${this.kind}-${ri.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),Tl||_l?this.emit(et.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case D.LOADEDDATA:this.kind===D.VIDEO&&this.emit(et.LOADED_DATA);break;case D.LOADEDMETADATA:this.kind===D.VIDEO&&this.emit(et.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Q.addSuccessEvent({key:this.kind===D.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),je.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Q.addFailedEvent({key:this.kind===D.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(et.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{Fn(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,n,c;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((c=this.element)==null?void 0:c.error)}),Fn(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return y(this,null,function*(){switch(e.type){case D.ENDED:this.handleStopped(D.ENDED);break;case D.MUTE:this.handlePaused(D.MUTE);break;case D.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.resume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(D.UNMUTE));break}})}handlePlaying(e){var r;this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this._log.debug("handlePaused",e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this._log.debug("handleStopped",e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};Z([zo({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],jr.prototype,"doReplayByRecreateMediaStream",1),Z([Qe([],"PLAYING",{sync:!0})],jr.prototype,"handlePlaying",1),Z([Qe("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],jr.prototype,"handlePaused",1),Z([Qe([],"STOPPED",{sync:!0})],jr.prototype,"handleStopped",1);var _i="trtc_autoplay",am=`${_i}_mask`,qs=`${_i}_wrapper`,pf=`${_i}_header`,cm=`${_i}_content`,md=`${_i}_action_wrapper`,dm=`${_i}_question`,um=`${_i}_collapse`,pd=`${_i}_action_confirm`,hf=`${_i}_detail`,ff="#2473E8",mm="dialog",nT=`${mm}-show`,aT=`${mm}-1`,cT=`${mm}-2`,gf=!1,pm=()=>!!document.querySelector(`.${qs}`),_f=`${Lr}/${Sr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,Ef=`<br><a href='${_f}' target='_blank'>${Sr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,dT=`${Sr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${Ef}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${Ef}`}`,lm=class{constructor(){u(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");u(this,"_dialogNode",null);u(this,"_bodyPosition","");u(this,"_showDetail",!1);u(this,"_isCollapseClicked",!1);u(this,"_isQuestionClicked",!1);if(Sr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!gf){let t=document.createElement("style");t.innerHTML=`.${am}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${am} div:not(.${md}){display:block !important;}.${qs}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${qs} a{color:${ff};}.${pf}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${cm}{margin:8px 0;}.${md}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${um}{margin-right:auto;cursor:pointer}.${dm}{height:100%;line-height:16px;cursor:pointer;}.${pd}{margin-left:8px;color:#fff;background:${ff};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${pd}:hover{opacity:0.9;}.${um},.${pd},.${cm},.${dm}{font-size:14px;}@media screen and (max-width:750px){.${qs}{width:80vw;}}`,document.head.appendChild(t),gf=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${am}"><div class='${qs}'><div class='${pf}'>${location.host}</div><div class='${cm}'>${this.content}</div><div class='${hf}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${dT}</div><div class='${md}'></div></div></div>`.trim();let e=document.createElement("button");e.className=pd,e.innerText=Sr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=dm,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
|
26
26
|
<svg class="icon" width="18" height="18" p-id="2030" t="1639646523624" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
|
27
27
|
<path d="m464 784.35c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z" p-id="2031"/>
|
|
28
28
|
<path d="m512 960c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448-200.96 448-448 448zm0-831.71c-211.58 0-383.71 172.13-383.71 383.71 0 211.55 172.13 383.71 383.71 383.71 211.55 0 383.71-172.16 383.71-383.71 0-211.58-172.16-383.71-383.71-383.71z" p-id="2032"/>
|
|
29
29
|
<path d="m512 673.7c-17.665 0-32.001-14.336-32.001-31.999v-54.112c0-52.353 40-92.352 75.328-127.65 25.887-25.92 52.672-52.672 52.672-74.017 0-53.343-43.072-96.735-95.999-96.735-53.823 0-95.999 41.536-95.999 94.559 0 17.665-14.336 31.999-32.001 31.999s-32.001-14.336-32.001-31.999c0-87.424 71.775-158.56 160-158.56s160 72.095 160 160.74c0 47.904-36.32 84.192-71.424 119.3-27.84 27.776-56.576 56.512-56.576 82.336v54.112c0 17.665-14.336 32.032-32.001 32.032z" p-id="2033"/>
|
|
30
30
|
</svg>
|
|
31
|
-
`,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=sm,o.innerText=`${Sr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${ud}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){cm()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${qs}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",$.info("show autoplay dialog"),je.uploadEvent({log:rT}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){$.warn("confirm clicked, try resume stream"),V.emit(U.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${cf}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||je.uploadEvent({log:iT}),this._isCollapseClicked=!0}onQuestionClick(){window.open(mf,"_blank"),this._isQuestionClicked||je.uploadEvent({log:oT}),this._isQuestionClicked=!0}},pf=nm;var rr=class extends Gr{constructor(e){super(e,N.VIDEO);u(this,"stat",{});u(this,"_calculateTimeout",-1);u(this,"viewMirror",!1);u(this,"objectFit");u(this,"container");u(this,"canvas");this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,P(e.viewMirror)||(this.viewMirror=e.viewMirror),P(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(N.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};background-color: black;`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(N.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(N.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var r;super.handleTrackEvent(e),e.type===N.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0)}handleElementEvent(e){var o,s;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===N.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(o=this.container)==null?void 0:o.id}`),this.container&&this.container!==document.getElementById(this.container.id)&&(this._pausedRetryCount=Oo,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!cm()&&(this._log.info(`[${Oo-this._pausedRetryCount+1}/${Oo}] ${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let n=this.element.style.transform;r===N.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=n.replace("scaleX(-1)",""):r===N.LEAVE_PICTURE_IN_PICTURE&&!n.includes("scaleX")&&(this.element.style.transform=`${n} scaleX(-1)`)}}setCanvas(e,r=1){var o,s,n,c;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(n=this.container)==null||n.appendChild(e)):this.element&&((c=this.container)==null||c.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}setPoster(e){this.element&&(this.element.poster=e)}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(gi()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var c;return(c=this.element)==null?void 0:c.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function _i(i,t){return A(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),$.info("worklet addModule success")}catch(e){throw $.info(`worklet addModule catch error. ${e.message}`),e}})}var fa;typeof AudioContext!="undefined"?fa=AudioContext:typeof webkitAudioContext!="undefined"?fa=webkitAudioContext:typeof mozAudioContext!="undefined"&&(fa=mozAudioContext);var vr,hf=-1;ff();function ff(){try{if(vr)return;vr=new fa({sampleRate:48e3}),vr.onstatechange=()=>{$.info(`context state: ${vr.state}${vr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),Js()},clearTimeout(hf)}catch(i){$.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof fa}`),hf=setTimeout(ff,1e3)}}var Js=()=>{vr.state==="suspended"?(zs(),document.addEventListener("click",Js)):vr.state==="interrupted"?zs():(document.removeEventListener("visibilitychange",Js),document.removeEventListener("click",Js))},dm=0,um=-1;function zs(){return new Promise((i,t)=>{if(vr.state==="running")return i();Date.now()-dm<1e3?(clearTimeout(um),um=setTimeout(()=>{dm=Date.now(),vr.resume().then(i,t)},1e3)):(clearTimeout(um),dm=Date.now(),vr.resume().then(i,t))}).catch(i=>{$.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",Js)})}document.addEventListener("click",Js);var ze=i=>vr;var ft=class{constructor(t){this.name=t;u(this,"node");u(this,"node2");u(this,"pre",new Set);u(this,"next",new Set);u(this,"context");u(this,"connectedNodes",new Set);u(this,"nextInputChannelMap",new Map);u(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){$.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),Q.addSuccessEvent({key:502701})}catch(o){$.error(o),Q.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),Q.addSuccessEvent({key:502702})}catch(e){$.error(e),Q.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},md=class extends ft{constructor(e=256){super();this.fftSize=e;u(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,n=`M${o},${s}`;for(let c=0;c<e.length;c++)s=e[c]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},ga=class{constructor(){u(this,"source",new ft);u(this,"gain",new ft);u(this,"destination",new ft)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(ze().createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.replaceNode(Ea(t))}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},Xs=class extends ga{constructor(e){super();this.context=e;u(this,"aec",new ft("aec"));u(this,"mixNode",new ft("mixNode"));u(this,"silentNode",new ft("silentNode"));u(this,"denoiser",new ft("denoiser"));u(this,"voiceChanger",new ft("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},pd=class{constructor(){u(this,"audioContext",ze("audio-mixer"));u(this,"destination",this.audioContext.createMediaStreamDestination());u(this,"inputs",new Set);u(this,"mixWeight",0);this.destination.channelCount=1}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},gf=new WeakMap;function Ea(i){let t=gf.get(i);if(t)return t;let e=ze();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return gf.set(i,t),t}var ir=class ir{constructor(t){u(this,"_volume",0);u(this,"_volumeDb",0);u(this,"_log");u(this,"_scriptProcessorNode",null);u(this,"_audioWorkletNode",null);u(this,"_interval",200);u(this,"ready",this.preload());let{log:e}=t;this._log=e,V.on(U.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-ir.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!ir.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';ir.workletReady=_i(ir.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return ir.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(ir.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{ir.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),je.logFailedEvent({userId:this._log.userId,eventType:ti.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=ze("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{ir.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,V.off(U.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};u(ir,"lastMessageTime",0),u(ir,"audioContext",ze("volume-meter")),u(ir,"workletReady");var hd=ir,fd=class extends ft{constructor(e){super();u(this,"_volumeMeter");this._volumeMeter=new hd(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return A(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}},gd=hd;var If=Gi(Zi(),1);var _f=i=>t=>t.deviceId===i;var _a=class{constructor(t,e="Input"){u(this,"kind");u(this,"type");u(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&Qs(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(_f(o.deviceId))){let s=`${this.kind}${this.type}Added`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(_f(o.deviceId))){let s=`${this.kind}${this.type}Removed`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},lm=class extends If.EventEmitter{constructor(){super();u(this,"audioInputs",new _a(N.AUDIO));u(this,"videoInputs",new _a(N.VIDEO));u(this,"audioOutputs",new _a(N.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||vt.run("interval",()=>{this.update()},{delay:1e4}))}init(){Ed().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return A(this,arguments,function*(e=0){let r=yield Ed(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}},St=vn||As?null:new lm;function Qs(i){return i.deviceId===i.groupId&&i.groupId===""}function Ed(){return A(this,arguments,function*(i=0){if(fi()||!sd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{Qs(r)&&(r.kind===N.AUDIO_INPUT?e.audio=!0:r.kind===N.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e),e.audio&&zs()}catch(o){$.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&mm.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Qt(i=!1){return St.update(i?1:0).then(t=>t.audioInputs.devices)}function or(i=!1){return St.update(i?2:0).then(t=>t.videoInputs.devices)}var Tf=!1;function Sf(){return A(this,null,function*(){try{Tf||(Tf=!0,$.info(`speakers:${(yield to()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function to(i=!1){return A(this,null,function*(){return(lt||It)&&(i=!1),St.update(i?1:0).then(t=>t.audioOutputs.devices)})}var mm=new Set;function Af(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${N.VIDEO_INPUT}`;return!!mm.has(r)}function yf(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${N.AUDIO_INPUT}`;return!!mm.has(r)}function pm(i,t){return A(this,null,function*(){let r=(yield Qt()).find(o=>o.deviceId===xo);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function bf(s){return A(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===N.AUDIO&&i===xo?yield pm(e,r):!0})}var _d,hm=class extends ga{constructor(e){super();this.log=e;u(this,"volumeMeter");u(this,"volumeDestination");u(this,"analyser",new md);this.volumeMeter=new fd({log:this.log}),this.volumeDestination=new ft,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},Td=class i extends Gr{constructor(e){super(e,N.AUDIO);u(this,"_outputDeviceId");u(this,"_volume",1);u(this,"_destination",ze("player").createMediaStreamDestination());u(this,"pipeline");u(this,"volumeMeterMode","worklet");this.mode=0,this.pipeline=new hm(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Yi==="15.2"||Yi==="15.3"||Yi==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=_d||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.element=o,Pe(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===_d&&(_d=void 0),this.bindElementEvents()}play(e){return A(this,null,function*(){if(this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?this.pipeline.volumeMeter.init():this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(ze("player").createAnalyser()),Sf(),Bt(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setSinkId(e){return A(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}},Id=class extends Td{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(et.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}setVolume(t){this._volume=t,this.element&&(this.element.volume=t)}},Sd=class extends Td{constructor(e){super(e);u(this,"_sourceElement");u(this,"_output",new ft);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(ze("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1?this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element"):lt||(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ht(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&Qi&&(_d=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Xo=class extends de{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Sd:rr}){var c;super();u(this,"id",Kn());u(this,"userId","");u(this,"isRemote");u(this,"mediaType");u(this,"room");u(this,"user");u(this,"_log");u(this,"_inputTrack");u(this,"_outputTrack");u(this,"isPlayCalled");u(this,"container",null);u(this,"player");u(this,"subVideoPlayerMap");u(this,"muted",!1);u(this,"abortCtrl");u(this,"objectFit","cover");u(this,"mirror");u(this,"rotation");u(this,"isScreen",!1);u(this,"manager");u(this,"trackSettings");u(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=$.createLogger({id:`${this.kind[0]}t`,userId:(c=s||this.room)==null?void 0:c.userId,remoteUserId:this instanceof Ti?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Ti}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(et.PLAYER_STATE_CHANGED,l=>{V.emit(U.PLAYER_STATE_CHANGED,z({track:this},l)),this.emit("player-state-changed",l)}),this.kind===N.VIDEO&&(this.player.on(et.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(et.LOADED_DATA),V.emit(U.VIDEO_LOADED_DATA,{track:this})}),this.player.on(et.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(et.LOADED_META_DATA)}),this.player.on(et.MEDIA_TRACK_CHANGED,l=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(E=>E.setTrack(l))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(et.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||$}get kind(){return this.mediaType===1?N.AUDIO:N.VIDEO}get strMediaType(){return this.mediaType===4?N.VIDEO:this.mediaType===2?N.SCREEN:N.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return A(this,null,function*(){let o=ot(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!P(r.muted)&&this.setPlayerMute(r.muted),r&&!P(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof rr&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),ot(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!P(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===N.VIDEO)&&this.setPlayerMute(!0),r&&!P(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof rr&&(this.player.setObjectFit(this.objectFit),r&&!P(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof rr&&this.player.setContainer(o)),V.emit(U.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),ot(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==N.VIDEO||P(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(st(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return A(this,null,function*(){if(!this._outputTrack||this.kind===N.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var c;e.find(l=>n===l)||(s.stop(),(c=this.subVideoPlayerMap)==null||c.delete(n))});for(let[s,n]of e.entries()){let c=this.subVideoPlayerMap.get(n);c?r&&(P(r.objectFit)||c.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new rr({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(cl(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return A(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),V.emit(e?U.TRACK_MUTED:U.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){Vt(e,e).add(N.MUTE,this.onTrackMuted).add(N.UNMUTE,this.onTrackUnmuted).add(N.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===N.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ht(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(cl(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new pf;else{let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};document.addEventListener("click",r,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof rr?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,c,l;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((c=this.player.element)==null?void 0:c.videoWidth)||0,s=(r==null?void 0:r.height)||((l=this.player.element)==null?void 0:l.videoHeight)||0;e===et.LOADED_META_DATA&&!o&&!s||(e===et.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,si(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};Z([Qe([],de.INIT,{sync:!0})],Xo.prototype,"close",1);var nT=Object.prototype.hasOwnProperty,{toString:nv}=Object.prototype;function aT(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Lt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(nT.call(i,t))return!1;return!0}}return!1}var Ta=aT;var cT=function(i){return A(this,null,function*(){let t=uT(i);$.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Qt(),$.info(`microphones: ${dr(e.map(s=>Te(z({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield or(),$.info(`cameras: ${dr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return Ql&&s.getTracks().forEach(n=>{$.info(`${n.kind} capabilities: ${dr(n.getCapabilities(),{keysToInclude:Tc})}`)}),t.audio&&zs(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=Be({key:$e.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=Be({key:$e.MICROPHONE_NOT_FOUND}))),new ue({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},dT=zi({retryFunction:cT,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!It||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&Rf(r[0].microphoneId,!1),r[0].cameraId&&Rf(r[0].cameraId,!0)},onRetrying:i=>{$.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{je.logFailedEvent({eventType:ti.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{je.logSuccessEvent({eventType:ti.GET_USER_MEDIA_RETRY}),je.uploadEvent({log:`stat-${ti.GET_USER_MEDIA_RETRY}-success-${i}`})}});function Rf(i,t){return A(this,null,function*(){let r=(t?yield or():yield Qt()).find(o=>o.deviceId===i);r&&We(r.getCapabilities)&&$.warn(dr(r.getCapabilities(),{keysToInclude:Tc}))})}function uT(i){return{audio:lT(i),video:mT(i)}}function lT(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!Ta(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(Pe(i.channelCount)&&(t.channelCount=i.channelCount),st(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),st(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),st(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),Ta(t)?!0:t)}function mT(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!Ta(e)?e:(i.width&&(e.width={ideal:i.width},t&&!Ht&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!Ht&&(e.height.max=i.height)),Ht&&br&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),Ta(e)?!0:e)}var vf=dT;function ro(i){return Oe((t,e)=>function(...r){return A(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function Cf(i){return Oe((t,e)=>function(...r){return A(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Oe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var Nf=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&$.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{$.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var pT=0,Ad=class{constructor(){u(this,"log",$.createLogger({id:`fq${++pT}`}));u(this,"isRunning",!1);u(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,n;let r=z({},t),o=new Promise((c,l)=>{r.resolve=c,r.reject=l});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},Df=new WeakMap,Mf=new WeakMap;function yd(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=Df.get(this)||new Ad;return Df.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function bd(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let c=Mf.get(this)||new Map,l=c.get(s(n))||new Ad;return c.set(s(n),l),Mf.set(this,c),l.push({fn:o,args:n,context:this})},r}}function Rd(i,t){return Oe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),c=Ie();return qi(n)?n.then(l=>(t?Q.addSuccessEvent({key:s,cost:Ie()-c}):Q.addSuccessEvent({key:s}),l)).catch(l=>{throw Q.addFailedEvent({key:s,error:l}),l}):(Q.addSuccessEvent({key:s}),n)}catch(n){throw Q.addFailedEvent({key:s,error:n}),n}})}var Qo=class Qo extends Xo{constructor(e,r){super({mediaType:e,PlayerClass:r});u(this,"isRemote",!1);u(this,"deviceId");u(this,"groupId","");u(this,"label","");u(this,"sourceTrack");u(this,"_isRecapturing",!1);u(this,"_lastRecaptureTime",0);u(this,"_onMuteTimeoutId",-1);u(this,"_encodeCheckTimeoutId",-1);u(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){Vt(e,e).add(N.MUTE,this.onTrackMuted).add(N.UNMUTE,this.onTrackUnmuted).add(N.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===N.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ht(e)}setStateToReady(){}capture(e){return A(this,null,function*(){var r;try{let o=Ie();V.emit(U.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.mediaTrack)==null||r.stop(),s=yield vf(e));let n=s.getTracks()[0];return this.sourceTrack=n,yield this.setInputMediaStreamTrack(n),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),V.emit(U.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Ie()-o}),s}catch(o){throw V.emit(U.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}publish(e,r){return this.room=e,this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),r}unpublish(){this.room&&this.room.localTracks.delete(this),V.emit(U.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return A(this,null,function*(){if(this.mediaTrack&&js){let{deviceId:e,groupId:r}=this.mediaTrack.getSettings(),{label:o}=this.mediaTrack;(yield bf({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Ed().then(n=>{let c=n.find(l=>l.deviceId===e);c&&this.emit("2",c)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.mediaTrack||this.kind===N.AUDIO&&!yf(this.mediaTrack)||this.kind===N.VIDEO&&!Af(this.mediaTrack)||this._isRecapturing||e&&br&&It)}onTrackMuted(){if(super.onTrackMuted(),Nf(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Rs){setTimeout(()=>this.onTrackMuted(),Rs);return}this._onMuteTimeoutId=setTimeout(()=>A(this,null,function*(){var e;if((e=this.mediaTrack)!=null&&e.muted){if((lt||mt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return A(this,null,function*(){if(Bt(Qo.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<Rs){setTimeout(()=>this.onTrackEnded(),Rs);return}this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return A(this,null,function*(){var o;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),(o=this._inputTrack)==null||o.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if(e==="user"||e==="environment")r.facingMode=e;else{let s;(this.kind==="audio"?yield Qt():yield or()).find(c=>c.deviceId===e)&&(s=e),r.deviceId=s}return this.capture(r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),V.emit(U.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),V.emit(U.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return A(this,null,function*(){let e=this instanceof Cr;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Ia.get(r)||0)+1;if(Ia.set(r,o),o>=3){let s=e?(yield or()).find(n=>!Ia.has(n.deviceId)):(yield Qt()).find(n=>!Ia.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Z([Qe(de.INIT,"ready",{ignoreError:!0,sync:!0})],Qo.prototype,"setStateToReady",1),Z([yd()],Qo.prototype,"capture",1),Z([Qe("ready","publish",{ignoreError:!0,success(){var r,o;this.room.localTracks.add(this),V.emit(U.LOCAL_TRACK_PUBLISHED,{track:this}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),!((((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var n,c;if(!((((c=(n=this.room)==null?void 0:n.networkQuality)==null?void 0:c.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let l=this.kind===N.AUDIO,m=this.stat.bytesSent>0;Q[m?"addSuccessEvent":"addFailedEvent"]({key:l?503700:513702}),m||(Q.addEnum({key:l?503701:513703,value:Yn()}),je.uploadEvent({log:`stat-encode-failed-${this.kind}-${Qn()||Bo()}`,userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}},5e3))},fail(e){let r="error";if(e.cause instanceof RTCError){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),Rd(521714,!1)],Qo.prototype,"publish",1),Z([Oe(e=>function(){return A(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),Qe([],"ready",{sync:!0})],Qo.prototype,"unpublish",1);var Ti=Qo,Ia=new Map;V.on(U.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Ia.delete(i.track.deviceId)});var jr=class i extends Ti{constructor(e){super(1,Id);u(this,"mediaType",1);u(this,"volume",0);u(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});u(this,"playerMuted",!0);u(this,"pipeline");u(this,"earMonitorGainNode",new ft);u(this,"_output",new ft);u(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});u(this,"mixedAudioReferenceMap",new Map);this.manager=e,this.pipeline=new Xs(e),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeter),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}get dbVolume(){return gd.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}setInputMediaStreamTrack(e){return A(this,null,function*(){let r=this.trackSettings||{};Q.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),Q.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),Q.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield Bt(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s=!0}){return super.capture({video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r})}switchDevice(e){return A(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e)if(e===xo){if(yield pm(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),V.emit(U.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){St&&!St.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&St.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current microphone is lost: ${JSON.stringify(e)}`),nt(this.userId,{eventId:2003,param1:6,streamType:1});let r=yield Qt();r[0]?this.recapture(r[0].deviceId):St.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)}update3A(s){return A(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let c=n.getConstraints(),l=!1;!P(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,c.echoCancellation=e,l=!0),!P(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,c.noiseSuppression=r,l=!0),!P(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,c.autoGainControl=o,l=!0),l&&(Ht||It?yield n.applyConstraints(c).catch(m=>this._log.warn("update3A failed: ",m)):this.deviceId&&(yield this.recapture(this.deviceId)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&Q.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),lt&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(ze().createGain()),this._output.setNode(ze().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(It||lt))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Fr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}Q.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=Ea(e),s=new ft,n=ze().createGain();n.gain.value=1;let c=new ft;s.pipeTo(c).pipeTo(this.pipeline.mixNode),s.setNode(o),c.setNode(n),this.mixedAudioReferenceMap.set(r,[s,c])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o,s){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e),this.enableTrackAEC(!1)}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0))}removeAudioProcessor(e,r,o,s){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),St.off("audioInputAdded",this.handleMicrophoneAdded,this),St.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Bt(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Qt()).find(s=>s.deviceId!==e);if(o)yield Bt(i.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}};var Yo=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let n=t;n<=e;n++){let c=this.dataView.getInt8(n);switch(c){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),c==0?o++:o=0,r.push(c);break;default:o=0,r.push(c);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var vd=class{constructor(){u(this,"_seiMessageList",[]);u(this,"_smallSeiMessageList",[]);u(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let c=0;c<r;c++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Yo(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),c=n.reduce((_,v)=>_+v.dataView.byteLength,0),l=new ArrayBuffer(c+t.data.byteLength),m=new DataView(l),E=new DataView(t.data),g=0;for(let _=0;_<n.length;_++)for(let v=0;v<n[_].dataView.byteLength;v++)m.setInt8(g++,n[_].dataView.getInt8(v));for(let _=0;_<t.data.byteLength;_++)m.setInt8(g++,E.getInt8(_));return t.data=l,n.length}return 0}};var Zo=class Zo extends Ti{constructor(e,r=4){super(r,rr);u(this,"profile",z({},Nn));u(this,"avoidCropping",!1);u(this,"_scaleResolutionDownBy");u(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0});u(this,"small");u(this,"isNeedToSetBandwidth");u(this,"muteImage");u(this,"manager");u(this,"_seiCodec",new vd);this.manager=e;let o=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(Te(z({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!js||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return A(this,null,function*(){var r,o,s;if(we(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e}),this.muteImage=e,Bt(Zo.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Bt(Zo.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){return super.capture({audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:n,customSource:s})}setProfile(e){let r=this.fallbackProfile(e);r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(r):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(Te(z({},this.profile),{width:1920,height:1080})))}applyProfile(){return A(this,null,function*(){var c;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Jt===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(c=this.sourceTrack||this.mediaTrack)==null?void 0:c.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:l=0,height:m=0}=(this.sourceTrack||this.mediaTrack).getSettings(),E=l*m;if(n&&E&&o&&E===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:N.VIDEO,videoType:N.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return js&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:vc(this.settings,this.profile)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return A(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e))return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.mediaTrack.stop(),yield this.capture(r),V.emit(U.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=z({},e);return e.width*e.height<=160*120&&mt&&ai&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Sl&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),!r&&this.avoidCropping&&(ai||Ht)&&!yl()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){St&&!St.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&St.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current camera is lost: ${JSON.stringify(e)}`),nt(this.userId,{eventId:2003,param1:7,streamType:2});let r=yield or();r[0]?this.recapture(r[0].deviceId):St.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return A(this,null,function*(){this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return P(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){St.off("videoInputAdded",this.handleCameraAdded,this),St.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Bt(Zo.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield or()).find(s=>s.deviceId!==e);if(o)yield Bt(Zo.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||P(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Z([ro(function(e){this.setContentHint(e.contentHint||"motion")})],Zo.prototype,"capture",1);var Cr=Zo;var Cd=Kn();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Cd,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var gT=function(i){return A(this,null,function*(){let t=null,e=TT(i);$.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Fs&&Fr<74||It||Ht)&&$.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){$.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield ET(o,i.captureElement))}if(i.audio){let s=_T(i);$.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function ET(i,t){return A(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&We(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Cd))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){$.warn(`cropTo target failed ${r}`)}})}function _T(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return P(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function TT(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:It?{max:i.width}:{ideal:i.width,max:i.width},height:It?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var xf=gT;var io=class extends Cr{constructor(e){super(e,2);u(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});u(this,"objectFit","contain");u(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Cd===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(E){return A(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:c,captureElement:l,preferDisplaySurface:m}){try{let g;return c||n?(g=new MediaStream,c&&g.addTrack(c),n&&g.addTrack(n)):g=yield xf({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:l,preferDisplaySurface:m}),yield this.setInputMediaStreamTrack(g.getVideoTracks()[0]),g}catch(g){throw this.log.error(`getDisplayMedia error observed ${g}`),g instanceof ue?g:new ue({code:q.INITIALIZE_FAILED,name:g.name,message:g.message})}})}switchDevice(e){return A(this,null,function*(){throw new Error("Method not implemented.")})}};Z([ro(function(e){this.setContentHint(e.contentHint||"detail")})],io.prototype,"capture",1);var Ko=class extends jr{constructor(t){super(t),this._log.id=`s-${this._log.id}`}addAudioProcessor(t,e,r,o){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(o),this.enableTrackAEC(!1)}removeAudioProcessor(t,e,r,o){this.pipeline.aec.node===o&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var IT='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',gm;function Sa(i,t=48e3,e=1,r){return A(this,null,function*(){let o=ze("dump");gm||(gm=_i(o,URL.createObjectURL(new Blob([IT],{type:"application/javascript"})))),yield gm;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((c,l)=>c.connect(n,0,l)),new ReadableStream({start(c){n.port.onmessage=l=>{c.enqueue(l.data)}},cancel(){i.forEach(c=>c.disconnect(n)),n.port.close()}})})}var Nd=class extends pd{constructor(e){super();this.room=e;u(this,"_localAudioTrack");u(this,"_localScreenAudioTrack");u(this,"log",$.createLogger({id:"am"}));u(this,"denoiser");u(this,"voiceChanger");u(this,"mixChangedDebounce");u(this,"audioProcessor");u(this,"encodePipeline",[]);u(this,"decodePipeline",[]);u(this,"getPCMAbortCtrlMap",new Map);u(this,"audioFrameEventConfigMap",new Map);u(this,"audioReferenceMap",new Map);u(this,"isLocalAudioNeedAudioProcess",!1);u(this,"isScreenAudioNeedAudioProcess",!1);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var E,g;if(!this._localAudioTrack)return;let r=[],o=[];(E=this._localAudioPipline)!=null&&E.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(g=this._localAudioPipline)!=null&&g.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,n=[],c=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),l=()=>{for(let _=0;_<o.length;_++){let v=URL.createObjectURL(new Blob(n[_])),L=document.createElement("a");L.href=v,L.download=`${o[_]}.pcm`,L.style.display="none",document.body.appendChild(L),L.click(),URL.revokeObjectURL(v),L.remove()}clearTimeout(c),s.abort("download")},m=Sa(r).then(_=>_.pipeTo(new WritableStream({write(v){v.forEach((L,x)=>n[x]=n[x]?n[x].concat(L[0]):[L[0]])}}),s).catch(v=>l));return{then:m.then.bind(m),download:l}}getPCM(e,r){var B,ee,pe;if(P(WritableStream)){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:c}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let l=Math.floor(s*.04),m=new Float32Array(l),E=new Float32Array(l),g,_,v=0,L=new AbortController,x=r===""?(B=this._localAudioTrack)==null?void 0:B.mediaTrack:(pe=(ee=this.room)==null?void 0:ee.remotePublishedUserMap.get(r))==null?void 0:pe.remoteAudioTrack.mediaTrack;if(!x){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let M=ze().createMediaStreamSource(new MediaStream([x]));return Sa([M],s,n,c).then(ae=>ae.pipeTo(new WritableStream({write(Xe){Xe[0][0]&&(v+Xe[0][0].length>l?(m.set(Xe[0][0].subarray(0,l-v),v),g=Xe[0][0].subarray(l-v),Xe[0][1]&&(E.set(Xe[0][1].subarray(0,l-v),v),_=Xe[0][1].subarray(l-v)),v+=l-v):(g&&(m.set(g,v),v+=g.length,g=void 0),_&&(E.set(_,v),_=void 0),m.set(Xe[0][0],v),Xe[0][1]&&E.set(Xe[0][1],v),v+=Xe[0][0].length),v>=l&&(v=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?m:[m,E]}),m=new Float32Array(l),E=new Float32Array(l)))}}),L).catch(Xe=>this.log.warn(`stop getPCM reason:${Xe}`))),L}get hasScreenAudioTrack(){return!P(this._localScreenAudioTrack)}get hasAudioTrack(){return!P(this._localAudioTrack)}changeInput(e){if(e instanceof Ko)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((r,o)=>{e.mixAudioReference(r,o)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof jr)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((r,o)=>{e.mixAudioReference(r,o)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof Ii)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof Ko?delete this._localScreenAudioTrack:e instanceof jr?delete this._localAudioTrack:e instanceof Ii}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor=[e,r,o,s],this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&(this._localAudioTrack.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((c,l)=>{var m;(m=this._localAudioTrack)==null||m.mixAudioReference(c,l)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((c,l)=>{var m;(m=this._localScreenAudioTrack)==null||m.mixAudioReference(c,l)}))}removeDenoiser(e){var r;delete this.denoiser,(r=this._localAudioTrack)==null||r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r,o,s){var n;delete this.audioProcessor,(n=this._localAudioTrack)==null||n.removeAudioProcessor(e,r,o,s)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var c;(c=this.room)==null||c.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(c=>{var l;(l=this.room)==null||l.emit("audio-frame",c)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){V.on("113",this.handleLocalTrackStarted,this),V.on("114",this.handleLocalTrackStopped,this),V.on("115",this.handleRemoteTrackStarted,this),V.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){V.off("113",this.handleLocalTrackStarted),V.off("114",this.handleLocalTrackStopped),V.off("115",this.handleRemoteTrackStarted),V.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||P(s))return;this.setAudioReferenceVolume(o,s)}}};function Pf(i=30,t=2){return Oe((e,r)=>function(...o){return new Promise((s,n)=>{let c=setTimeout(()=>{let l=new ue({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});$.warn(l),t===2?n(l):t===1&&s()},i*1e3);e.apply(this,o).then(s,n).finally(()=>{clearTimeout(c)})})})}var tp={};Kr(tp,{Events:()=>dt,Inspect:()=>lr,LastSink:()=>es,Sink:()=>fe,Subscribe:()=>ts,TimeoutError:()=>Aa,audit:()=>tI,bindCallback:()=>$T,bindNodeCallback:()=>BT,buffer:()=>DT,bufferCount:()=>NT,bufferTime:()=>II,call:()=>kf,catchError:()=>Ym,combineLatest:()=>Uf,concat:()=>yT,concatMap:()=>mI,concatMapTo:()=>pI,count:()=>GT,create:()=>xe,debounce:()=>rI,debounceTime:()=>iI,defer:()=>Vf,delay:()=>SI,deliver:()=>_e,dispose:()=>Dd,elementAt:()=>oI,empty:()=>Ra,every:()=>dI,exhaustMap:()=>gI,exhaustMapTo:()=>EI,filter:()=>sr,find:()=>sI,findIndex:()=>nI,first:()=>aI,fromAnimationFrame:()=>VT,fromArray:()=>OT,fromEvent:()=>Ce,fromEventPattern:()=>xT,fromFetch:()=>PT,fromIterable:()=>kT,fromPromise:()=>Bf,fromReadableStream:()=>UT,fromReader:()=>LT,groupBy:()=>_I,identity:()=>ST,ignoreElements:()=>zT,iif:()=>RT,inspect:()=>Lf,interval:()=>ym,last:()=>cI,map:()=>so,mapTo:()=>lI,max:()=>jT,merge:()=>Sm,mergeMap:()=>hI,mergeMapTo:()=>fI,min:()=>qT,never:()=>HT,nothing:()=>He,of:()=>wT,pairwise:()=>uI,pipe:()=>be,race:()=>Am,range:()=>FT,reduce:()=>bm,retry:()=>bI,scan:()=>Qm,share:()=>Si,shareReplay:()=>bT,skip:()=>QT,skipUntil:()=>YT,skipWhile:()=>Pd,startWith:()=>ya,subject:()=>At,subscribe:()=>Le,sum:()=>JT,switchMap:()=>no,switchMapTo:()=>Ai,take:()=>Nr,takeLast:()=>XT,takeUntil:()=>Ye,takeWhile:()=>Hf,tap:()=>va,throttle:()=>KT,throwError:()=>WT,timeInterval:()=>TI,timeout:()=>ep,timer:()=>ba,toPromise:()=>AI,toReadableStream:()=>yI,withLatestFrom:()=>CT,zip:()=>vT});function He(...i){}var kf=i=>i(),ST=i=>i;function Dd(){this.dispose()}var Lf=()=>typeof __FASTRX_DEVTOOLS__!="undefined",AT=1,lr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new Em(t,this,this.streamId++);return dt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},es=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=He,this.error=He,this.next=He,this.dispose=He,this.subscribe=He,this.doDefer()}subscribe(t){return t instanceof lr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(kf),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},fe=class extends es{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},ts=class extends es{constructor(t,e=He,r=He,o=He){if(super(),this._next=e,this._error=r,this._complete=o,this.then=He,t instanceof lr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{dt.defer(s,0)}),dt.create(s),dt.pipe(s),this.sourceId=s.id,this.subscribe(t),dt.subscribe({id:s.id,end:!0}),e==He?this._next=n=>dt.next(s,0,n):this.next=n=>{dt.next(s,0,n),e(n)},o==He?this._complete=()=>dt.complete(s,0):this.complete=()=>{this.dispose(),dt.complete(s,0),o()},r==He?this._error=n=>dt.complete(s,0,n):this.error=n=>{this.dispose(),dt.complete(s,0,n),r()}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function be(i,...t){return t.reduce((e,r)=>r(e),i)}function xe(i,t,e){if(Lf()){let r=Object.defineProperties(Object.setPrototypeOf(i,lr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});dt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof lr&&dt.addSource(r,s)}return r}return i}function _e(i,t){return function(...e){return r=>{if(r instanceof lr){let o=xe(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,dt.pipe(o),o}else return o=>r(new i(o,...e))}}}function oo(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var Em=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{dt.defer(this.source,this.id)})}next(t){dt.next(this.source,this.id,t),this.sink.next(t)}complete(){dt.complete(this.source,this.id),this.sink.complete()}error(t){dt.complete(this.source,this.id,t),this.sink.error(t)}},dt={addSource(i,t){oo("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){oo("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){oo("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){oo("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){oo("defer",{id:i.id,streamId:t})},pipe(i){oo("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){oo("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=AT++),oo("create",{name:i.toString(),id:i.id})}},Aa=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var Md=class extends es{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function Si(){return i=>{let t=new Md(i);if(i instanceof lr){let e=xe(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,dt.pipe(e),e}return xe(t.add.bind(t),"share",arguments)}}function Sm(...i){return xe(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function Am(...i){return xe(t=>{let e=new Map;i.forEach(r=>{let o=new fe(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function yT(...i){return xe(t=>{let e=0,r=i.length,o=new fe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function bT(i){return t=>{let e=new Md(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},xe(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function RT(i,t,e){return xe(r=>i()?t(r):e(r),"iif",arguments)}function Uf(...i){return xe(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},c=(l,m)=>{let E=new fe(t);E.next=g=>{--r===0?(E.next=_=>{s[m]=_,t.next(s)},E.next(g)):s[m]=g},E.complete=n,E.subscribe(l)};i.forEach(c)},"combineLatest",arguments)}function vT(...i){return xe(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(c,l)=>{let m=new fe(t),E=[];o[l]=E,m.next=g=>{E.push(g),o.every(_=>_.length)&&t.next(o.map(_=>_.shift()))},m.complete=s,m.subscribe(c)};i.forEach(n)},"zip",arguments)}function ya(...i){return t=>xe((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var _m=class extends fe{constructor(t,...e){super(t);let r=new fe(this.sink);r.next=o=>this.buffer=o,r.complete=He,r.subscribe(Uf(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},CT=_e(_m,"withLatestFrom"),Tm=class extends fe{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},NT=_e(Tm,"bufferCount"),Im=class extends fe{constructor(t,e){super(t),this.buffer=[];let r=new fe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=He,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},DT=_e(Im,"buffer");var MT=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function c(E){try{m(r.next(E))}catch(g){n(g)}}function l(E){try{m(r.throw(E))}catch(g){n(g)}}function m(E){E.done?s(E.value):o(E.value).then(c,l)}m((r=r.apply(i,t||[])).next())})};function At(i){let t=arguments,e=Si()(xe(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=He,e.complete=He,e.error=He,e}function Vf(i){return xe(t=>t.subscribe(i()),"defer",arguments)}var Ff=i=>t=>{setTimeout(()=>i(t))},$f=i=>Ff(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function wT(...i){return xe($f(i),"of",arguments)}function OT(i){return xe($f(i),"fromArray",arguments)}function ym(i){return xe(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function ba(i,t){return xe(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>{clearTimeout(o)};e.defer(s)},"timer",arguments)}function wd(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function xT(i,t){return xe(wd(i,t),"fromEventPattern",arguments)}function Ce(i,t){if("on"in i&&"off"in i)return xe(wd(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return xe(wd(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return xe(wd(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function Bf(i){return xe(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function PT(i,t){return xe(Vf(()=>Bf(fetch(i,t))),"fromFetch",arguments)}function kT(i){return xe(Ff(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function LT(i){let t=e=>MT(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return xe(e=>{t(e)},"fromReader",arguments)}function UT(i){return xe(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function VT(){return xe(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function FT(i,t){return xe((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function $T(i,t,...e){return xe(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function BT(i,t,...e){return xe(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function HT(){return xe(()=>{},"never",arguments)}function WT(i){return xe(t=>t.error(i),"throwError",arguments)}function Ra(){return xe(i=>i.complete(),"empty",arguments)}var rs=class extends fe{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},bm=_e(rs,"reduce"),GT=i=>_e(rs,"count")((t,e)=>i(e)?t+1:t,0),jT=()=>_e(rs,"max")(Math.max),qT=()=>_e(rs,"min")(Math.min),JT=()=>_e(rs,"sum")((i,t)=>i+t,0);var Rm=class extends fe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},sr=_e(Rm,"filter"),vm=class extends fe{next(t){}},zT=_e(vm,"ignoreElements"),Cm=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Nr=_e(Cm,"take"),Nm=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>t.complete(),r.complete=Dd,r.subscribe(e)}},Ye=_e(Nm,"takeUntil"),Dm=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},Hf=_e(Dm,"takeWhile"),XT=i=>bm((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),Mm=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},QT=_e(Mm,"skip"),wm=class extends fe{constructor(t,e){super(t),t.next=He;let r=new fe(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=Dd,r.subscribe(e)}},YT=_e(wm,"skipUntil"),Om=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Pd=_e(Om,"skipWhile"),ZT={leading:!0,trailing:!1},xm=class extends fe{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},Od=class extends fe{constructor(t,e,r=ZT){super(t),this.durationSelector=e,this.config=r,this._throttle=new xm(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=He,this._throttle.complete(),super.complete()}},KT=_e(Od,"throttle"),eI={leading:!1,trailing:!0},tI=i=>_e(Od,"audit")(i,eI),Pm=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},xd=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Pm(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},rI=_e(xd,"debounce"),iI=i=>_e(xd,"debounceTime")(t=>ba(i)),km=class extends fe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},oI=_e(km,"elementAt"),sI=i=>t=>Nr(1)(Pd(e=>!i(e))(t)),Lm=class extends fe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},nI=_e(Lm,"findIndex"),Um=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},aI=_e(Um,"first"),Vm=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},cI=_e(Vm,"last"),Fm=class extends fe{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},dI=_e(Fm,"every");var $m=class extends fe{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},Qm=_e($m,"scan"),Bm=class extends fe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},uI=_e(Bm,"pairwise"),kd=class extends fe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},so=_e(kd,"map"),lI=i=>_e(kd,"mapTo")(t=>i),Ys=class extends fe{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},Zs=class extends fe{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},Ld=class extends Ys{},Ud=class extends Zs{next(t){this.subInner(t,Ld),this.next=e=>{this.currentSink.dispose(),this.subInner(e,Ld)}}},no=_e(Ud,"switchMap");function Bd(i){return(t,e)=>i(()=>t,e)}var Ai=Bd(_e(Ud,"switchMapTo")),Hm=class extends Ys{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Vd=class extends Zs{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),Hm),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},mI=_e(Vd,"concatMap"),pI=Bd(_e(Vd,"concatMapTo")),Wm=class extends Ys{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Fd=class extends Zs{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,Wm),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},hI=_e(Fd,"mergeMap"),fI=Bd(_e(Fd,"mergeMapTo")),Gm=class extends Ys{dispose(){this.context.resetNext(),super.dispose()}},$d=class extends Zs{next(t){this.next=He,this.subInner(t,Gm)}},gI=_e($d,"exhaustMap"),EI=Bd(_e($d,"exhaustMapTo")),jm=class extends fe{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=At(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},_I=_e(jm,"groupBy"),qm=class extends fe{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},TI=_e(qm,"timeInterval"),Jm=class extends fe{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},II=_e(Jm,"bufferTime"),zm=class extends fe{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},SI=_e(zm,"delay"),Xm=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},Ym=_e(Xm,"catchError");var AI=()=>i=>new Promise((t,e)=>{let r;new ts(i,o=>r=o,e,()=>t(r))}),yI=()=>i=>{let t;return new ReadableStream({start(e){t=new ts(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=He,t=He,e=He)=>r=>new ts(r,i,t,e),Zm=class extends fe{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},va=_e(Zm,"tap"),Km=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Aa(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},ep=_e(Km,"timeout"),bI=(i=1/0)=>t=>{if(t instanceof lr){let e=xe(r=>{let o=i,s=new fe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,dt.pipe(e),e}else return e=>{let r=i,o=new fe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var qr=class qr extends Xo{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;u(this,"tinyId");u(this,"isRemote",!0);u(this,"jitterBufferDelay",0);u(this,"availableState");u(this,"remotePublishState");u(this,"_triggerCheckDecodeSubject",At(Ce(this,qr.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new de(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new de(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),be(Sm(Ce(this,de.STATECHANGED),Ce(this.remotePublishState,de.STATECHANGED)),so(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(l=>{this.availableState.state!==(l?de.ON:de.OFF)&&(this.availableState.state=l?de.ON:de.OFF),this.updatePlayingState(l)}));let s=be(Ce(this.player,et.ERROR),sr(l=>l.code===MediaError.MEDIA_ERR_DECODE)),n=be(ba(5e3),sr(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===N.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),c=be(Am(s,n),Ye(Ce(this,de.INIT)));be(this._triggerCheckDecodeSubject,sr(()=>!this.ignoreDecodeError),Ai(c),Le(l=>{this.reportDecodeResult(!1,l)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===qr.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===de.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){let o=this.kind===N.AUDIO;Q[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),e||(Q.addEnum({key:o?504701:514703,value:Yn()}),je.uploadEvent({log:`stat-decode-failed-${this.kind}-${Qn()||Bo()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===N.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?de.ON:de.OFF}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};u(qr,"STATE_SUBSCRIBE","subscribe"),Z([Pf(5,1)],qr.prototype,"waitHasMediaTrack",1),Z([Qe(de.INIT,qr.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),V.emit(U.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),Rd(521716,!1)],qr.prototype,"subscribe",1),Z([Qe(qr.STATE_SUBSCRIBE,de.INIT,{sync:!0,success(){this.log.info("unsubscribed"),V.emit(U.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],qr.prototype,"unsubscribe",1);var Ks=qr;var Ii=class extends Ks{constructor(e,r){super(e,r,1);u(this,"volume",0);u(this,"mediaType",1);u(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return gd.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}decodeFrame(e){if(!this.manager)return e;let r=e;for(let o of this.manager.decodePipeline)if(o&&(r=o({frame:r,track:this}),!r))return;return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var vI=[-1,-1,1,-1,-1,1,1,1],CI=[0,0,1,0,0,1,1,1];var Gt=class extends de{constructor(e,r){super();this.context=e;u(this,"name");u(this,"input");u(this,"output");u(this,"texture");u(this,"ctx2d",null);u(this,"fbo");u(this,"width",0);u(this,"height",0);u(this,"x",0);u(this,"y",0);u(this,"program");u(this,"vertexShader");u(this,"fragmentShader");u(this,"totalFrames",0);u(this,"dropFrames",0);u(this,"matchInputSize",!0);u(this,"texCoordBuffer");u(this,"positionBuffer");u(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});u(this,"cost",0);u(this,"_canvas",null);u(this,"_image");u(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Ft){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Jt!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(CI),this.positionBuffer=this.createBuffer(vI),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.PACK_ALIGNMENT,1),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof Tt&&this.render(e)||this.context instanceof Ft&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof Tt){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,n){return this.ctx2d&&e?(e instanceof ImageData?this.ctx2d.putImageData(e,r,o):(this.ctx2d.drawImage(e,r,o,s,n),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close()),!0):!1}getInfo(){var g;let{totalFrames:e,x:r,y:o,width:s,height:n,name:c,cost:l}=this,m=Date.now(),E=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:m,fps:E,name:c,cost:l},z({parent:(g=this.input)==null?void 0:g.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};Z([Qe(de.INIT,"connected",{sync:!0})],Gt.prototype,"connect",1),Z([Qe("connected",de.INIT,{ignoreError:!0,sync:!0})],Gt.prototype,"disconnect",1),Z([Qe([],"closed",{sync:!0})],Gt.prototype,"close",1);var Gf=be(ym(250),so(()=>performance.now()),Si()),jf=i=>t=>{let e=0,r=performance.now();be(Gf,so(o=>(o-r)/i>>0),sr(o=>o!=e?(e=o,!0):!1))(t)},Hd=i=>t=>{let e=performance.now();be(Gf,Pd(r=>r-e<i),Nr(1))(t)};var DI=[0,1,1,1,0,0,1,0],is=class extends Gt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));u(this,"_intervalId",0);u(this,"_sequence",0);u(this,"checkGLError",!1);u(this,"checkVisibilityChange");e instanceof Ft?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(DI)}start(e){this.log.info(`${this.name} start render ${e} fps`),vt.clearTask(this._intervalId),this._intervalId=vt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(vt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof Tt){let o=this.context.ctx.getError();o&&this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){if(this._intervalId&&(vt.clearTask(this._intervalId),this._intervalId=0,e===1)){this.log.info(`${this.name} use requestVideoFrameCallback`);let r=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",r))};document.addEventListener("visibilitychange",r)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),vt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),vt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},en=class extends is{constructor(e,r){super(e,r);u(this,"_videoTrack");u(this,"_muteOb");u(this,"_closedOb",Ce(this,"closed"));u(this,"_subscription");u(this,"_canvasContainer");Number(ci)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=Ce(this._videoTrack,"mute"),be(Ce(this._videoTrack,"ended"),Ye(this._closedOb),Le(()=>{this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=be(this._muteOb,Ye(this._closedOb),Ai(Hd(5e3)),sr(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},Wd=class extends en{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var Gd=class extends en{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var Ca=class extends Gt{constructor(e,r){super(e,z({name:"imageSource"},r));u(this,"_lastImage");u(this,"_totalFrames",0);u(this,"_autoResize",!1);u(this,"_canvasRendered");u(this,"_videoCallbackId",0);u(this,"waitingFirstFrame",!0);u(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Jt===16&&(this._canvasRendered=At(),be(this._canvasRendered,ya(this._image),no(o=>o instanceof HTMLCanvasElement?Ce(o,"rendered"):Ra()),Ye(Ce(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),gi()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var c;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!1}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(c=this._lastImage)==null||c.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let l=this.context.ctx;l.texSubImage2D(l.TEXTURE_2D,0,0,0,l.RGBA,l.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let l=this.context.ctx;l.texImage2D(l.TEXTURE_2D,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,n)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Na=class extends Ca{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",be(Ce(this._player,et.PLAYER_STATE_CHANGED),Ye(Ce(this,"closed")),sr(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},yi=class extends Na{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new rr({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}};var wI=`
|
|
31
|
+
`,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=um,o.innerText=`${Sr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${md}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){pm()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${qs}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",$.info("show autoplay dialog"),je.uploadEvent({log:nT}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){$.warn("confirm clicked, try resume stream"),V.emit(U.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${hf}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||je.uploadEvent({log:aT}),this._isCollapseClicked=!0}onQuestionClick(){window.open(_f,"_blank"),this._isQuestionClicked||je.uploadEvent({log:cT}),this._isQuestionClicked=!0}},Tf=lm;var rr=class extends jr{constructor(e){super(e,D.VIDEO);u(this,"stat",{});u(this,"_calculateTimeout",-1);u(this,"viewMirror",!1);u(this,"objectFit");u(this,"container");u(this,"canvas");this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,P(e.viewMirror)||(this.viewMirror=e.viewMirror),P(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(D.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};background-color: black;`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(D.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(D.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var r;super.handleTrackEvent(e),e.type===D.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0)}handleElementEvent(e){var o,s;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===D.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(o=this.container)==null?void 0:o.id}`),this.container&&this.container!==document.getElementById(this.container.id)&&(this._pausedRetryCount=Oo,this._log.info(`view container ${(s=this.container)==null?void 0:s.id} is recreated`)),this._pausedRetryCount>0&&!pm()&&(this._log.info(`[${Oo-this._pausedRetryCount+1}/${Oo}] ${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let n=this.element.style.transform;r===D.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=n.replace("scaleX(-1)",""):r===D.LEAVE_PICTURE_IN_PICTURE&&!n.includes("scaleX")&&(this.element.style.transform=`${n} scaleX(-1)`)}}setCanvas(e,r=1){var o,s,n,c;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(n=this.container)==null||n.appendChild(e)):this.element&&((c=this.container)==null||c.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}setPoster(e){this.element&&(this.element.poster=e)}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(Ei()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var c;return(c=this.element)==null?void 0:c.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Ti(i,t){return y(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),$.info("worklet addModule success")}catch(e){throw $.info(`worklet addModule catch error. ${e.message}`),e}})}var _a;typeof AudioContext!="undefined"?_a=AudioContext:typeof webkitAudioContext!="undefined"?_a=webkitAudioContext:typeof mozAudioContext!="undefined"&&(_a=mozAudioContext);var Cr,If=-1;Sf();function Sf(){try{if(Cr)return;Cr=new _a({sampleRate:48e3}),Cr.onstatechange=()=>{$.info(`context state: ${Cr.state}${Cr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),Js()},clearTimeout(If)}catch(i){$.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof _a}`),If=setTimeout(Sf,1e3)}}var Js=()=>{Cr.state==="suspended"?(zs(),document.addEventListener("click",Js)):Cr.state==="interrupted"?zs():(document.removeEventListener("visibilitychange",Js),document.removeEventListener("click",Js))},hm=0,fm=-1;function zs(){return new Promise((i,t)=>{if(Cr.state==="running")return i();Date.now()-hm<1e3?(clearTimeout(fm),fm=setTimeout(()=>{hm=Date.now(),Cr.resume().then(i,t)},1e3)):(clearTimeout(fm),hm=Date.now(),Cr.resume().then(i,t))}).catch(i=>{$.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",Js)})}document.addEventListener("click",Js);var ze=i=>Cr;var ft=class{constructor(t){this.name=t;u(this,"node");u(this,"node2");u(this,"pre",new Set);u(this,"next",new Set);u(this,"context");u(this,"connectedNodes",new Set);u(this,"nextInputChannelMap",new Map);u(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){$.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),Q.addSuccessEvent({key:502701})}catch(o){$.error(o),Q.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),Q.addSuccessEvent({key:502702})}catch(e){$.error(e),Q.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},hd=class extends ft{constructor(e=256){super();this.fftSize=e;u(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,n=`M${o},${s}`;for(let c=0;c<e.length;c++)s=e[c]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},Ta=class{constructor(){u(this,"source",new ft);u(this,"gain",new ft);u(this,"destination",new ft)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(ze().createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.replaceNode(Ia(t))}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},Xs=class extends Ta{constructor(e){super();this.context=e;u(this,"aec",new ft("aec"));u(this,"mixNode",new ft("mixNode"));u(this,"silentNode",new ft("silentNode"));u(this,"denoiser",new ft("denoiser"));u(this,"voiceChanger",new ft("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},fd=class{constructor(){u(this,"audioContext",ze("audio-mixer"));u(this,"destination",this.audioContext.createMediaStreamDestination());u(this,"inputs",new Set);u(this,"mixWeight",0);this.destination.channelCount=1}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},yf=new WeakMap;function Ia(i){let t=yf.get(i);if(t)return t;let e=ze();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return yf.set(i,t),t}var ir=class ir{constructor(t){u(this,"_volume",0);u(this,"_volumeDb",0);u(this,"_log");u(this,"_scriptProcessorNode",null);u(this,"_audioWorkletNode",null);u(this,"_interval",200);u(this,"ready",this.preload());let{log:e}=t;this._log=e,V.on(U.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-ir.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!ir.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';ir.workletReady=Ti(ir.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return ir.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(ir.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{ir.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),je.logFailedEvent({userId:this._log.userId,eventType:ri.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=ze("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{ir.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,V.off(U.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};u(ir,"lastMessageTime",0),u(ir,"audioContext",ze("volume-meter")),u(ir,"workletReady");var gd=ir,Ed=class extends ft{constructor(e){super();u(this,"_volumeMeter");this._volumeMeter=new gd(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return y(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}},_d=gd;var vf=ji(Zi(),1);var bf=i=>t=>t.deviceId===i;var Sa=class{constructor(t,e="Input"){u(this,"kind");u(this,"type");u(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&Qs(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(bf(o.deviceId))){let s=`${this.kind}${this.type}Added`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(bf(o.deviceId))){let s=`${this.kind}${this.type}Removed`;$.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},gm=class extends vf.EventEmitter{constructor(){super();u(this,"audioInputs",new Sa(D.AUDIO));u(this,"videoInputs",new Sa(D.VIDEO));u(this,"audioOutputs",new Sa(D.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||vt.run("interval",()=>{this.update()},{delay:1e4}))}init(){Td().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return y(this,arguments,function*(e=0){let r=yield Td(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}},St=vn||ys?null:new gm;function Qs(i){return i.deviceId===i.groupId&&i.groupId===""}function Td(){return y(this,arguments,function*(i=0){if(gi()||!ad())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{Qs(r)&&(r.kind===D.AUDIO_INPUT?e.audio=!0:r.kind===D.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e),e.audio&&zs()}catch(o){$.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&Em.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Qt(i=!1){return St.update(i?1:0).then(t=>t.audioInputs.devices)}function or(i=!1){return St.update(i?2:0).then(t=>t.videoInputs.devices)}var Rf=!1;function Cf(){return y(this,null,function*(){try{Rf||(Rf=!0,$.info(`speakers:${(yield to()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function to(i=!1){return y(this,null,function*(){return(lt||It)&&(i=!1),St.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Em=new Set;function Nf(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.VIDEO_INPUT}`;return!!Em.has(r)}function Df(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.AUDIO_INPUT}`;return!!Em.has(r)}function _m(i,t){return y(this,null,function*(){let r=(yield Qt()).find(o=>o.deviceId===xo);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function wf(s){return y(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===D.AUDIO&&i===xo?yield _m(e,r):!0})}var Id,Tm=class extends Ta{constructor(e){super();this.log=e;u(this,"volumeMeter");u(this,"volumeDestination");u(this,"analyser",new hd);this.volumeMeter=new Ed({log:this.log}),this.volumeDestination=new ft,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},Sd=class i extends jr{constructor(e){super(e,D.AUDIO);u(this,"_outputDeviceId");u(this,"_volume",1);u(this,"_destination",ze("player").createMediaStreamDestination());u(this,"pipeline");u(this,"volumeMeterMode","worklet");this.mode=0,this.pipeline=new Tm(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Rr==="15.2"||Rr==="15.3"||Rr==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Id||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.element=o,ke(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Id&&(Id=void 0),this.bindElementEvents()}play(e){return y(this,null,function*(){if(this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?this.pipeline.volumeMeter.init():this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(ze("player").createAnalyser()),Cf(),Bt(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setSinkId(e){return y(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}},yd=class extends Sd{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(et.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}setVolume(t){this._volume=t,this.element&&(this.element.volume=t)}},Ad=class extends Sd{constructor(e){super(e);u(this,"_sourceElement");u(this,"_output",new ft);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(ze("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1?this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element"):lt||(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),ht(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&Yi&&(Id=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Xo=class extends de{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Ad:rr}){var c;super();u(this,"id",ea());u(this,"userId","");u(this,"isRemote");u(this,"mediaType");u(this,"room");u(this,"user");u(this,"_log");u(this,"_inputTrack");u(this,"_outputTrack");u(this,"isPlayCalled");u(this,"container",null);u(this,"player");u(this,"subVideoPlayerMap");u(this,"muted",!1);u(this,"abortCtrl");u(this,"objectFit","cover");u(this,"mirror");u(this,"rotation");u(this,"isScreen",!1);u(this,"manager");u(this,"trackSettings");u(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=$.createLogger({id:`${this.kind[0]}t`,userId:(c=s||this.room)==null?void 0:c.userId,remoteUserId:this instanceof Ii?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Ii}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(et.PLAYER_STATE_CHANGED,l=>{V.emit(U.PLAYER_STATE_CHANGED,X({track:this},l)),this.emit("player-state-changed",l)}),this.kind===D.VIDEO&&(this.player.on(et.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(et.LOADED_DATA),V.emit(U.VIDEO_LOADED_DATA,{track:this})}),this.player.on(et.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(et.LOADED_META_DATA)}),this.player.on(et.MEDIA_TRACK_CHANGED,l=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(f=>f.setTrack(l))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(et.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||$}get kind(){return this.mediaType===1?D.AUDIO:D.VIDEO}get strMediaType(){return this.mediaType===4?D.VIDEO:this.mediaType===2?D.SCREEN:D.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return y(this,null,function*(){let o=ot(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!P(r.muted)&&this.setPlayerMute(r.muted),r&&!P(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof rr&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),ot(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!P(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===D.VIDEO)&&this.setPlayerMute(!0),r&&!P(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof rr&&(this.player.setObjectFit(this.objectFit),r&&!P(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof rr&&this.player.setContainer(o)),V.emit(U.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),ot(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==D.VIDEO||P(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(st(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return y(this,null,function*(){if(!this._outputTrack||this.kind===D.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var c;e.find(l=>n===l)||(s.stop(),(c=this.subVideoPlayerMap)==null||c.delete(n))});for(let[s,n]of e.entries()){let c=this.subVideoPlayerMap.get(n);c?r&&(P(r.objectFit)||c.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new rr({id:this.userId||this.id,track:this.playerMediaTrack,container:n,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(ul(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return y(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),V.emit(e?U.TRACK_MUTED:U.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){Vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ht(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(ul(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new Tf;else{let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};document.addEventListener("click",r,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof rr?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,c,l;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((c=this.player.element)==null?void 0:c.videoWidth)||0,s=(r==null?void 0:r.height)||((l=this.player.element)==null?void 0:l.videoHeight)||0;e===et.LOADED_META_DATA&&!o&&!s||(e===et.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,ni(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};Z([Qe([],de.INIT,{sync:!0})],Xo.prototype,"close",1);var uT=Object.prototype.hasOwnProperty,{toString:lv}=Object.prototype;function lT(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Lt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(uT.call(i,t))return!1;return!0}}return!1}var ya=lT;var mT=function(i){return y(this,null,function*(){let t=hT(i);$.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Qt(),$.info(`microphones: ${dr(e.map(s=>Te(X({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield or(),$.info(`cameras: ${dr(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return tm&&s.getTracks().forEach(n=>{$.info(`${n.kind} capabilities: ${dr(n.getCapabilities(),{keysToInclude:yc})}`)}),t.audio&&zs(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=Be({key:$e.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=Be({key:$e.MICROPHONE_NOT_FOUND}))),new ue({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},pT=Xi({retryFunction:mT,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!It||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&Mf(r[0].microphoneId,!1),r[0].cameraId&&Mf(r[0].cameraId,!0)},onRetrying:i=>{$.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{je.logFailedEvent({eventType:ri.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{je.logSuccessEvent({eventType:ri.GET_USER_MEDIA_RETRY}),je.uploadEvent({log:`stat-${ri.GET_USER_MEDIA_RETRY}-success-${i}`})}});function Mf(i,t){return y(this,null,function*(){let r=(t?yield or():yield Qt()).find(o=>o.deviceId===i);r&&We(r.getCapabilities)&&$.warn(dr(r.getCapabilities(),{keysToInclude:yc}))})}function hT(i){return{audio:fT(i),video:gT(i)}}function fT(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!ya(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(ke(i.channelCount)&&(t.channelCount=i.channelCount),st(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),st(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),st(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),ya(t)?!0:t)}function gT(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!ya(e)?e:(i.width&&(e.width={ideal:i.width},t&&!Ht&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!Ht&&(e.height.max=i.height)),Ht&&br&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),ya(e)?!0:e)}var Of=pT;function ro(i){return xe((t,e)=>function(...r){return y(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function xf(i){return xe((t,e)=>function(...r){return y(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function xe(i){return function(t,e,r){return r.value=i(r.value,e),r}}var Pf=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&$.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{$.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var ET=0,bd=class{constructor(){u(this,"log",$.createLogger({id:`fq${++ET}`}));u(this,"isRunning",!1);u(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,n;let r=X({},t),o=new Promise((c,l)=>{r.resolve=c,r.reject=l});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},kf=new WeakMap,Lf=new WeakMap;function Rd(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=kf.get(this)||new bd;return kf.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function vd(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let c=Lf.get(this)||new Map,l=c.get(s(n))||new bd;return c.set(s(n),l),Lf.set(this,c),l.push({fn:o,args:n,context:this})},r}}function Cd(i,t){return xe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),c=Ie();return Ji(n)?n.then(l=>(t?Q.addSuccessEvent({key:s,cost:Ie()-c}):Q.addSuccessEvent({key:s}),l)).catch(l=>{throw Q.addFailedEvent({key:s,error:l}),l}):(Q.addSuccessEvent({key:s}),n)}catch(n){throw Q.addFailedEvent({key:s,error:n}),n}})}var Qo=class Qo extends Xo{constructor(e,r){super({mediaType:e,PlayerClass:r});u(this,"isRemote",!1);u(this,"deviceId");u(this,"groupId","");u(this,"label","");u(this,"sourceTrack");u(this,"_isRecapturing",!1);u(this,"_lastRecaptureTime",0);u(this,"_onMuteTimeoutId",-1);u(this,"_encodeCheckTimeoutId",-1);u(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){Vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){ht(e)}setStateToReady(){}capture(e){return y(this,null,function*(){var r;try{let o=Ie();V.emit(U.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.mediaTrack)==null||r.stop(),s=yield Of(e));let n=s.getTracks()[0];return this.sourceTrack=n,yield this.setInputMediaStreamTrack(n),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),V.emit(U.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Ie()-o}),s}catch(o){throw V.emit(U.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}publish(e,r){return this.room=e,this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),r}unpublish(){this.room&&this.room.localTracks.delete(this),V.emit(U.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return y(this,null,function*(){if(this.mediaTrack&&js){let{deviceId:e,groupId:r}=this.mediaTrack.getSettings(),{label:o}=this.mediaTrack;(yield wf({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Td().then(n=>{let c=n.find(l=>l.deviceId===e);c&&this.emit("2",c)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.mediaTrack||this.kind===D.AUDIO&&!Df(this.mediaTrack)||this.kind===D.VIDEO&&!Nf(this.mediaTrack)||this._isRecapturing||e&&br&&It)}onTrackMuted(){if(super.onTrackMuted(),Pf(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Rs){setTimeout(()=>this.onTrackMuted(),Rs);return}this._onMuteTimeoutId=setTimeout(()=>y(this,null,function*(){var e;if((e=this.mediaTrack)!=null&&e.muted){if((lt||mt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return y(this,null,function*(){if(Bt(Qo.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<Rs){setTimeout(()=>this.onTrackEnded(),Rs);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return y(this,null,function*(){var o;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),(o=this._inputTrack)==null||o.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if(e==="user"||e==="environment")r.facingMode=e;else{let s;(this.kind==="audio"?yield Qt():yield or()).find(c=>c.deviceId===e)&&(s=e),r.deviceId=s}return this.capture(r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),V.emit(U.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),V.emit(U.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return y(this,null,function*(){let e=this instanceof Nr;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Aa.get(r)||0)+1;if(Aa.set(r,o),o>=3){let s=e?(yield or()).find(n=>!Aa.has(n.deviceId)):(yield Qt()).find(n=>!Aa.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Z([Qe(de.INIT,"ready",{ignoreError:!0,sync:!0})],Qo.prototype,"setStateToReady",1),Z([Rd()],Qo.prototype,"capture",1),Z([Qe("ready","publish",{ignoreError:!0,success(){var r,o;this.room.localTracks.add(this),V.emit(U.LOCAL_TRACK_PUBLISHED,{track:this}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),!((((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var n,c;if(!((((c=(n=this.room)==null?void 0:n.networkQuality)==null?void 0:c.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let l=this.kind===D.AUDIO,m=this.stat.bytesSent>0;Q[m?"addSuccessEvent":"addFailedEvent"]({key:l?503700:513702}),m||(Q.addEnum({key:l?503701:513703,value:Zn()}),je.uploadEvent({log:`stat-encode-failed-${this.kind}-${Yn()||Bo()}`,userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}},5e3))},fail(e){let r="error";if(e.cause instanceof RTCError){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),Cd(521714,!1)],Qo.prototype,"publish",1),Z([xe(e=>function(){return y(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),Qe([],"ready",{sync:!0})],Qo.prototype,"unpublish",1);var Ii=Qo,Aa=new Map;V.on(U.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Aa.delete(i.track.deviceId)});var qr=class i extends Ii{constructor(e){super(1,yd);u(this,"mediaType",1);u(this,"volume",0);u(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});u(this,"playerMuted",!0);u(this,"pipeline");u(this,"earMonitorGainNode",new ft);u(this,"_output",new ft);u(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});u(this,"mixedAudioReferenceMap",new Map);this.manager=e,this.pipeline=new Xs(e),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeter),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}get dbVolume(){return _d.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}setInputMediaStreamTrack(e){return y(this,null,function*(){let r=this.trackSettings||{};Q.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),Q.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),Q.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield Bt(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s=!0}){return super.capture({video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r})}switchDevice(e){return y(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e)if(e===xo){if(yield _m(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),V.emit(U.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){St&&!St.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&St.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current microphone is lost: ${JSON.stringify(e)}`),nt(this.userId,{eventId:2003,param1:6,streamType:1});let r=yield Qt();r[0]?this.recapture(r[0].deviceId):St.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)}update3A(s){return y(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let c=n.getConstraints(),l=!1;!P(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,c.echoCancellation=e,l=!0),!P(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,c.noiseSuppression=r,l=!0),!P(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,c.autoGainControl=o,l=!0),l&&(Ht||It?yield n.applyConstraints(c).catch(m=>this._log.warn("update3A failed: ",m)):this.deviceId&&(yield this.recapture(this.deviceId)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&Q.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),lt&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(ze().createGain()),this._output.setNode(ze().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(It||lt))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if($r<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}Q.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=Ia(e),s=new ft,n=ze().createGain();n.gain.value=1;let c=new ft;s.pipeTo(c).pipeTo(this.pipeline.mixNode),s.setNode(o),c.setNode(n),this.mixedAudioReferenceMap.set(r,[s,c])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o,s){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e),this.enableTrackAEC(!1)}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0))}removeAudioProcessor(e,r,o,s){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),St.off("audioInputAdded",this.handleMicrophoneAdded,this),St.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Bt(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Qt()).find(s=>s.deviceId!==e);if(o)yield Bt(i.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}};var Yo=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let n=t;n<=e;n++){let c=this.dataView.getInt8(n);switch(c){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),c==0?o++:o=0,r.push(c);break;default:o=0,r.push(c);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var Nd=class{constructor(){u(this,"_seiMessageList",[]);u(this,"_smallSeiMessageList",[]);u(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let c=0;c<r;c++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Yo(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),c=n.reduce((_,v)=>_+v.dataView.byteLength,0),l=new ArrayBuffer(c+t.data.byteLength),m=new DataView(l),f=new DataView(t.data),E=0;for(let _=0;_<n.length;_++)for(let v=0;v<n[_].dataView.byteLength;v++)m.setInt8(E++,n[_].dataView.getInt8(v));for(let _=0;_<t.data.byteLength;_++)m.setInt8(E++,f.getInt8(_));return t.data=l,n.length}return 0}};var Zo=class Zo extends Ii{constructor(e,r=4){super(r,rr);u(this,"profile",X({},Nn));u(this,"avoidCropping",!1);u(this,"_scaleResolutionDownBy");u(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0});u(this,"small");u(this,"isNeedToSetBandwidth");u(this,"muteImage");u(this,"manager");u(this,"_seiCodec",new Nd);this.manager=e;let o=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(Te(X({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!js||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return y(this,null,function*(){var r,o,s;if(Oe(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e}),this.muteImage=e,Bt(Zo.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Bt(Zo.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){return super.capture({audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:n,customSource:s})}setProfile(e){let r=this.fallbackProfile(e);r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(r):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(Te(X({},this.profile),{width:1920,height:1080})))}applyProfile(){return y(this,null,function*(){var c;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Jt===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(c=this.sourceTrack||this.mediaTrack)==null?void 0:c.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1})),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth){this.isNeedToSetBandwidth=!1;let{width:l=0,height:m=0}=(this.sourceTrack||this.mediaTrack).getSettings(),f=l*m;if(n&&f&&o&&f===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:D.VIDEO,videoType:D.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return js&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:Nc(this.settings,this.profile)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return y(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e))return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.mediaTrack.stop(),yield this.capture(r),V.emit(U.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=X({},e);return e.width*e.height<=160*120&&mt&&ci&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Rl&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),yl(Rr,"14.3")&&Al(Rr,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(ci||Ht)&&!Cl()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){St&&!St.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&St.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return y(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current camera is lost: ${JSON.stringify(e)}`),nt(this.userId,{eventId:2003,param1:7,streamType:2});let r=yield or();r[0]?this.recapture(r[0].deviceId):St.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return y(this,null,function*(){this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return P(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){St.off("videoInputAdded",this.handleCameraAdded,this),St.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return y(this,null,function*(){try{yield Bt(Zo.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield or()).find(s=>s.deviceId!==e);if(o)yield Bt(Zo.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}setRotation(e){this.manager&&(this.isScreen||P(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Z([ro(function(e){this.setContentHint(e.contentHint||"motion")})],Zo.prototype,"capture",1);var Nr=Zo;var Dd=ea();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Dd,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var IT=function(i){return y(this,null,function*(){let t=null,e=AT(i);$.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Fs&&$r<74||It||Ht)&&$.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){$.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield ST(o,i.captureElement))}if(i.audio){let s=yT(i);$.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function ST(i,t){return y(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&We(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Dd))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){$.warn(`cropTo target failed ${r}`)}})}function yT(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return P(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function AT(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:It?{max:i.width}:{ideal:i.width,max:i.width},height:It?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var Ff=IT;var io=class extends Nr{constructor(e){super(e,2);u(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});u(this,"objectFit","contain");u(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Dd===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(f){return y(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:c,captureElement:l,preferDisplaySurface:m}){try{let E;return c||n?(E=new MediaStream,c&&E.addTrack(c),n&&E.addTrack(n)):E=yield Ff({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:l,preferDisplaySurface:m}),yield this.setInputMediaStreamTrack(E.getVideoTracks()[0]),E}catch(E){throw this.log.error(`getDisplayMedia error observed ${E}`),E instanceof ue?E:new ue({code:q.INITIALIZE_FAILED,name:E.name,message:E.message})}})}switchDevice(e){return y(this,null,function*(){throw new Error("Method not implemented.")})}};Z([ro(function(e){this.setContentHint(e.contentHint||"detail")})],io.prototype,"capture",1);var Ko=class extends qr{constructor(t){super(t),this._log.id=`s-${this._log.id}`}addAudioProcessor(t,e,r,o){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(o),this.enableTrackAEC(!1)}removeAudioProcessor(t,e,r,o){this.pipeline.aec.node===o&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var bT='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',Sm;function ba(i,t=48e3,e=1,r){return y(this,null,function*(){let o=ze("dump");Sm||(Sm=Ti(o,URL.createObjectURL(new Blob([bT],{type:"application/javascript"})))),yield Sm;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((c,l)=>c.connect(n,0,l)),new ReadableStream({start(c){n.port.onmessage=l=>{c.enqueue(l.data)}},cancel(){i.forEach(c=>c.disconnect(n)),n.port.close()}})})}var wd=class extends fd{constructor(e){super();this.room=e;u(this,"_localAudioTrack");u(this,"_localScreenAudioTrack");u(this,"log",$.createLogger({id:"am"}));u(this,"denoiser");u(this,"voiceChanger");u(this,"mixChangedDebounce");u(this,"audioProcessor");u(this,"encodePipeline",[]);u(this,"decodePipeline",[]);u(this,"getPCMAbortCtrlMap",new Map);u(this,"audioFrameEventConfigMap",new Map);u(this,"audioReferenceMap",new Map);u(this,"isLocalAudioNeedAudioProcess",!1);u(this,"isScreenAudioNeedAudioProcess",!1);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.installEvent()}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var f,E;if(!this._localAudioTrack)return;let r=[],o=[];(f=this._localAudioPipline)!=null&&f.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(E=this._localAudioPipline)!=null&&E.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,n=[],c=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),l=()=>{for(let _=0;_<o.length;_++){let v=URL.createObjectURL(new Blob(n[_])),k=document.createElement("a");k.href=v,k.download=`${o[_]}.pcm`,k.style.display="none",document.body.appendChild(k),k.click(),URL.revokeObjectURL(v),k.remove()}clearTimeout(c),s.abort("download")},m=ba(r).then(_=>_.pipeTo(new WritableStream({write(v){v.forEach((k,M)=>n[M]=n[M]?n[M].concat(k[0]):[k[0]])}}),s).catch(v=>l));return{then:m.then.bind(m),download:l}}getPCM(e,r){var B,ee,me;if(P(WritableStream)){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:c}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let l=Math.floor(s*.04),m=new Float32Array(l),f=new Float32Array(l),E,_,v=0,k=new AbortController,M=r===""?(B=this._localAudioTrack)==null?void 0:B.mediaTrack:(me=(ee=this.room)==null?void 0:ee.remotePublishedUserMap.get(r))==null?void 0:me.remoteAudioTrack.mediaTrack;if(!M){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let N=ze().createMediaStreamSource(new MediaStream([M]));return ba([N],s,n,c).then(oe=>oe.pipeTo(new WritableStream({write(Xe){Xe[0][0]&&(v+Xe[0][0].length>l?(m.set(Xe[0][0].subarray(0,l-v),v),E=Xe[0][0].subarray(l-v),Xe[0][1]&&(f.set(Xe[0][1].subarray(0,l-v),v),_=Xe[0][1].subarray(l-v)),v+=l-v):(E&&(m.set(E,v),v+=E.length,E=void 0),_&&(f.set(_,v),_=void 0),m.set(Xe[0][0],v),Xe[0][1]&&f.set(Xe[0][1],v),v+=Xe[0][0].length),v>=l&&(v=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?m:[m,f]}),m=new Float32Array(l),f=new Float32Array(l)))}}),k).catch(Xe=>this.log.warn(`stop getPCM reason:${Xe}`))),k}get hasScreenAudioTrack(){return!P(this._localScreenAudioTrack)}get hasAudioTrack(){return!P(this._localAudioTrack)}changeInput(e){if(e instanceof Ko)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((r,o)=>{e.mixAudioReference(r,o)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof qr)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&this.audioProcessor&&(e.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((r,o)=>{e.mixAudioReference(r,o)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof Si)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof Ko?delete this._localScreenAudioTrack:e instanceof qr?delete this._localAudioTrack:e instanceof Si}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor=[e,r,o,s],this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&(this._localAudioTrack.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((c,l)=>{var m;(m=this._localAudioTrack)==null||m.mixAudioReference(c,l)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(...this.audioProcessor),this.audioReferenceMap.forEach((c,l)=>{var m;(m=this._localScreenAudioTrack)==null||m.mixAudioReference(c,l)}))}removeDenoiser(e){var r;delete this.denoiser,(r=this._localAudioTrack)==null||r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r,o,s){var n;delete this.audioProcessor,(n=this._localAudioTrack)==null||n.removeAudioProcessor(e,r,o,s)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var c;(c=this.room)==null||c.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(c=>{var l;(l=this.room)==null||l.emit("audio-frame",c)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){V.on("113",this.handleLocalTrackStarted,this),V.on("114",this.handleLocalTrackStopped,this),V.on("115",this.handleRemoteTrackStarted,this),V.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){V.off("113",this.handleLocalTrackStarted),V.off("114",this.handleLocalTrackStopped),V.off("115",this.handleRemoteTrackStarted),V.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||P(s))return;this.setAudioReferenceVolume(o,s)}}};function $f(i=30,t=2){return xe((e,r)=>function(...o){return new Promise((s,n)=>{let c=setTimeout(()=>{let l=new ue({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});$.warn(l),t===2?n(l):t===1&&s()},i*1e3);e.apply(this,o).then(s,n).finally(()=>{clearTimeout(c)})})})}var np={};ei(np,{Events:()=>dt,Inspect:()=>lr,LastSink:()=>es,Sink:()=>fe,Subscribe:()=>ts,TimeoutError:()=>Ra,audit:()=>sI,bindCallback:()=>GT,bindNodeCallback:()=>jT,buffer:()=>xT,bufferCount:()=>OT,bufferTime:()=>bI,call:()=>Bf,catchError:()=>rp,combineLatest:()=>Wf,concat:()=>CT,concatMap:()=>gI,concatMapTo:()=>EI,count:()=>zT,create:()=>Pe,debounce:()=>nI,debounceTime:()=>aI,defer:()=>Gf,delay:()=>RI,deliver:()=>_e,dispose:()=>Md,elementAt:()=>cI,empty:()=>Na,every:()=>pI,exhaustMap:()=>II,exhaustMapTo:()=>SI,filter:()=>sr,find:()=>dI,findIndex:()=>uI,first:()=>lI,fromAnimationFrame:()=>HT,fromArray:()=>LT,fromEvent:()=>Ne,fromEventPattern:()=>UT,fromFetch:()=>VT,fromIterable:()=>FT,fromPromise:()=>Jf,fromReadableStream:()=>BT,fromReader:()=>$T,groupBy:()=>yI,identity:()=>RT,ignoreElements:()=>ZT,iif:()=>DT,inspect:()=>Hf,interval:()=>Nm,last:()=>mI,map:()=>so,mapTo:()=>fI,max:()=>XT,merge:()=>vm,mergeMap:()=>_I,mergeMapTo:()=>TI,min:()=>QT,never:()=>qT,nothing:()=>He,of:()=>kT,pairwise:()=>hI,pipe:()=>be,race:()=>Cm,range:()=>WT,reduce:()=>Dm,retry:()=>NI,scan:()=>tp,share:()=>yi,shareReplay:()=>NT,skip:()=>eI,skipUntil:()=>tI,skipWhile:()=>Ld,startWith:()=>va,subject:()=>yt,subscribe:()=>Le,sum:()=>YT,switchMap:()=>no,switchMapTo:()=>Ai,take:()=>Dr,takeLast:()=>KT,takeUntil:()=>Ye,takeWhile:()=>zf,tap:()=>Da,throttle:()=>iI,throwError:()=>JT,timeInterval:()=>AI,timeout:()=>sp,timer:()=>Ca,toPromise:()=>vI,toReadableStream:()=>CI,withLatestFrom:()=>MT,zip:()=>wT});function He(...i){}var Bf=i=>i(),RT=i=>i;function Md(){this.dispose()}var Hf=()=>typeof __FASTRX_DEVTOOLS__!="undefined",vT=1,lr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new ym(t,this,this.streamId++);return dt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},es=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=He,this.error=He,this.next=He,this.dispose=He,this.subscribe=He,this.doDefer()}subscribe(t){return t instanceof lr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(Bf),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},fe=class extends es{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},ts=class extends es{constructor(t,e=He,r=He,o=He){if(super(),this._next=e,this._error=r,this._complete=o,this.then=He,t instanceof lr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{dt.defer(s,0)}),dt.create(s),dt.pipe(s),this.sourceId=s.id,this.subscribe(t),dt.subscribe({id:s.id,end:!0}),e==He?this._next=n=>dt.next(s,0,n):this.next=n=>{dt.next(s,0,n),e(n)},o==He?this._complete=()=>dt.complete(s,0):this.complete=()=>{this.dispose(),dt.complete(s,0),o()},r==He?this._error=n=>dt.complete(s,0,n):this.error=n=>{this.dispose(),dt.complete(s,0,n),r()}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function be(i,...t){return t.reduce((e,r)=>r(e),i)}function Pe(i,t,e){if(Hf()){let r=Object.defineProperties(Object.setPrototypeOf(i,lr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});dt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof lr&&dt.addSource(r,s)}return r}return i}function _e(i,t){return function(...e){return r=>{if(r instanceof lr){let o=Pe(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,dt.pipe(o),o}else return o=>r(new i(o,...e))}}}function oo(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var ym=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{dt.defer(this.source,this.id)})}next(t){dt.next(this.source,this.id,t),this.sink.next(t)}complete(){dt.complete(this.source,this.id),this.sink.complete()}error(t){dt.complete(this.source,this.id,t),this.sink.error(t)}},dt={addSource(i,t){oo("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){oo("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){oo("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){oo("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){oo("defer",{id:i.id,streamId:t})},pipe(i){oo("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){oo("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=vT++),oo("create",{name:i.toString(),id:i.id})}},Ra=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var Od=class extends es{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function yi(){return i=>{let t=new Od(i);if(i instanceof lr){let e=Pe(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,dt.pipe(e),e}return Pe(t.add.bind(t),"share",arguments)}}function vm(...i){return Pe(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function Cm(...i){return Pe(t=>{let e=new Map;i.forEach(r=>{let o=new fe(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function CT(...i){return Pe(t=>{let e=0,r=i.length,o=new fe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function NT(i){return t=>{let e=new Od(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},Pe(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function DT(i,t,e){return Pe(r=>i()?t(r):e(r),"iif",arguments)}function Wf(...i){return Pe(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},c=(l,m)=>{let f=new fe(t);f.next=E=>{--r===0?(f.next=_=>{s[m]=_,t.next(s)},f.next(E)):s[m]=E},f.complete=n,f.subscribe(l)};i.forEach(c)},"combineLatest",arguments)}function wT(...i){return Pe(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(c,l)=>{let m=new fe(t),f=[];o[l]=f,m.next=E=>{f.push(E),o.every(_=>_.length)&&t.next(o.map(_=>_.shift()))},m.complete=s,m.subscribe(c)};i.forEach(n)},"zip",arguments)}function va(...i){return t=>Pe((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var Am=class extends fe{constructor(t,...e){super(t);let r=new fe(this.sink);r.next=o=>this.buffer=o,r.complete=He,r.subscribe(Wf(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},MT=_e(Am,"withLatestFrom"),bm=class extends fe{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},OT=_e(bm,"bufferCount"),Rm=class extends fe{constructor(t,e){super(t),this.buffer=[];let r=new fe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=He,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},xT=_e(Rm,"buffer");var PT=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function c(f){try{m(r.next(f))}catch(E){n(E)}}function l(f){try{m(r.throw(f))}catch(E){n(E)}}function m(f){f.done?s(f.value):o(f.value).then(c,l)}m((r=r.apply(i,t||[])).next())})};function yt(i){let t=arguments,e=yi()(Pe(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=He,e.complete=He,e.error=He,e}function Gf(i){return Pe(t=>t.subscribe(i()),"defer",arguments)}var jf=i=>t=>{setTimeout(()=>i(t))},qf=i=>jf(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function kT(...i){return Pe(qf(i),"of",arguments)}function LT(i){return Pe(qf(i),"fromArray",arguments)}function Nm(i){return Pe(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function Ca(i,t){return Pe(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>{clearTimeout(o)};e.defer(s)},"timer",arguments)}function xd(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function UT(i,t){return Pe(xd(i,t),"fromEventPattern",arguments)}function Ne(i,t){if("on"in i&&"off"in i)return Pe(xd(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return Pe(xd(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return Pe(xd(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function Jf(i){return Pe(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function VT(i,t){return Pe(Gf(()=>Jf(fetch(i,t))),"fromFetch",arguments)}function FT(i){return Pe(jf(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function $T(i){let t=e=>PT(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return Pe(e=>{t(e)},"fromReader",arguments)}function BT(i){return Pe(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function HT(){return Pe(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function WT(i,t){return Pe((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function GT(i,t,...e){return Pe(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function jT(i,t,...e){return Pe(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function qT(){return Pe(()=>{},"never",arguments)}function JT(i){return Pe(t=>t.error(i),"throwError",arguments)}function Na(){return Pe(i=>i.complete(),"empty",arguments)}var rs=class extends fe{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},Dm=_e(rs,"reduce"),zT=i=>_e(rs,"count")((t,e)=>i(e)?t+1:t,0),XT=()=>_e(rs,"max")(Math.max),QT=()=>_e(rs,"min")(Math.min),YT=()=>_e(rs,"sum")((i,t)=>i+t,0);var wm=class extends fe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},sr=_e(wm,"filter"),Mm=class extends fe{next(t){}},ZT=_e(Mm,"ignoreElements"),Om=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Dr=_e(Om,"take"),xm=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>t.complete(),r.complete=Md,r.subscribe(e)}},Ye=_e(xm,"takeUntil"),Pm=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},zf=_e(Pm,"takeWhile"),KT=i=>Dm((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),km=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},eI=_e(km,"skip"),Lm=class extends fe{constructor(t,e){super(t),t.next=He;let r=new fe(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=Md,r.subscribe(e)}},tI=_e(Lm,"skipUntil"),Um=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Ld=_e(Um,"skipWhile"),rI={leading:!0,trailing:!1},Vm=class extends fe{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},Pd=class extends fe{constructor(t,e,r=rI){super(t),this.durationSelector=e,this.config=r,this._throttle=new Vm(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=He,this._throttle.complete(),super.complete()}},iI=_e(Pd,"throttle"),oI={leading:!1,trailing:!0},sI=i=>_e(Pd,"audit")(i,oI),Fm=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},kd=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Fm(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},nI=_e(kd,"debounce"),aI=i=>_e(kd,"debounceTime")(t=>Ca(i)),$m=class extends fe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},cI=_e($m,"elementAt"),dI=i=>t=>Dr(1)(Ld(e=>!i(e))(t)),Bm=class extends fe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},uI=_e(Bm,"findIndex"),Hm=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},lI=_e(Hm,"first"),Wm=class extends fe{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},mI=_e(Wm,"last"),Gm=class extends fe{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},pI=_e(Gm,"every");var jm=class extends fe{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},tp=_e(jm,"scan"),qm=class extends fe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},hI=_e(qm,"pairwise"),Ud=class extends fe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},so=_e(Ud,"map"),fI=i=>_e(Ud,"mapTo")(t=>i),Ys=class extends fe{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},Zs=class extends fe{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},Vd=class extends Ys{},Fd=class extends Zs{next(t){this.subInner(t,Vd),this.next=e=>{this.currentSink.dispose(),this.subInner(e,Vd)}}},no=_e(Fd,"switchMap");function Wd(i){return(t,e)=>i(()=>t,e)}var Ai=Wd(_e(Fd,"switchMapTo")),Jm=class extends Ys{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},$d=class extends Zs{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),Jm),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},gI=_e($d,"concatMap"),EI=Wd(_e($d,"concatMapTo")),zm=class extends Ys{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Bd=class extends Zs{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,zm),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},_I=_e(Bd,"mergeMap"),TI=Wd(_e(Bd,"mergeMapTo")),Xm=class extends Ys{dispose(){this.context.resetNext(),super.dispose()}},Hd=class extends Zs{next(t){this.next=He,this.subInner(t,Xm)}},II=_e(Hd,"exhaustMap"),SI=Wd(_e(Hd,"exhaustMapTo")),Qm=class extends fe{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=yt(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},yI=_e(Qm,"groupBy"),Ym=class extends fe{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},AI=_e(Ym,"timeInterval"),Zm=class extends fe{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},bI=_e(Zm,"bufferTime"),Km=class extends fe{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},RI=_e(Km,"delay"),ep=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},rp=_e(ep,"catchError");var vI=()=>i=>new Promise((t,e)=>{let r;new ts(i,o=>r=o,e,()=>t(r))}),CI=()=>i=>{let t;return new ReadableStream({start(e){t=new ts(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=He,t=He,e=He)=>r=>new ts(r,i,t,e),ip=class extends fe{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},Da=_e(ip,"tap"),op=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Ra(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},sp=_e(op,"timeout"),NI=(i=1/0)=>t=>{if(t instanceof lr){let e=Pe(r=>{let o=i,s=new fe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,dt.pipe(e),e}else return e=>{let r=i,o=new fe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var Jr=class Jr extends Xo{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;u(this,"tinyId");u(this,"isRemote",!0);u(this,"jitterBufferDelay",0);u(this,"availableState");u(this,"remotePublishState");u(this,"_triggerCheckDecodeSubject",yt(Ne(this,Jr.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new de(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new de(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),be(vm(Ne(this,de.STATECHANGED),Ne(this.remotePublishState,de.STATECHANGED)),so(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(l=>{this.availableState.state!==(l?de.ON:de.OFF)&&(this.availableState.state=l?de.ON:de.OFF),this.updatePlayingState(l)}));let s=be(Ne(this.player,et.ERROR),sr(l=>l.code===MediaError.MEDIA_ERR_DECODE)),n=be(Ca(5e3),sr(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===D.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),c=be(Cm(s,n),Ye(Ne(this,de.INIT)));be(this._triggerCheckDecodeSubject,sr(()=>!this.ignoreDecodeError),Ai(c),Le(l=>{this.reportDecodeResult(!1,l)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===Jr.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===de.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){let o=this.kind===D.AUDIO;Q[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),e||(Q.addEnum({key:o?504701:514703,value:Zn()}),je.uploadEvent({log:`stat-decode-failed-${this.kind}-${Yn()||Bo()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===D.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?de.ON:de.OFF}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};u(Jr,"STATE_SUBSCRIBE","subscribe"),Z([$f(5,1)],Jr.prototype,"waitHasMediaTrack",1),Z([Qe(de.INIT,Jr.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),V.emit(U.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),Cd(521716,!1)],Jr.prototype,"subscribe",1),Z([Qe(Jr.STATE_SUBSCRIBE,de.INIT,{sync:!0,success(){this.log.info("unsubscribed"),V.emit(U.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],Jr.prototype,"unsubscribe",1);var Ks=Jr;var Si=class extends Ks{constructor(e,r){super(e,r,1);u(this,"volume",0);u(this,"mediaType",1);u(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return _d.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}decodeFrame(e){if(!this.manager)return e;let r=e;for(let o of this.manager.decodePipeline)if(o&&(r=o({frame:r,track:this}),!r))return;return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var wI=[-1,-1,1,-1,-1,1,1,1],MI=[0,0,1,0,0,1,1,1];var Gt=class extends de{constructor(e,r){super();this.context=e;u(this,"name");u(this,"input");u(this,"output");u(this,"texture");u(this,"ctx2d",null);u(this,"fbo");u(this,"width",0);u(this,"height",0);u(this,"x",0);u(this,"y",0);u(this,"program");u(this,"vertexShader");u(this,"fragmentShader");u(this,"totalFrames",0);u(this,"dropFrames",0);u(this,"matchInputSize",!0);u(this,"texCoordBuffer");u(this,"positionBuffer");u(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});u(this,"cost",0);u(this,"_canvas",null);u(this,"_image");u(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Ft){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Jt!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(MI),this.positionBuffer=this.createBuffer(wI),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.PACK_ALIGNMENT,1),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof Tt&&this.render(e)||this.context instanceof Ft&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof Tt){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,n){return this.ctx2d&&e?(e instanceof ImageData?this.ctx2d.putImageData(e,r,o):(this.ctx2d.drawImage(e,r,o,s,n),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close()),this.emit("render"),!0):!1}getInfo(){var E;let{totalFrames:e,x:r,y:o,width:s,height:n,name:c,cost:l}=this,m=Date.now(),f=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:m,fps:f,name:c,cost:l},X({parent:(E=this.input)==null?void 0:E.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};Z([Qe(de.INIT,"connected",{sync:!0})],Gt.prototype,"connect",1),Z([Qe("connected",de.INIT,{ignoreError:!0,sync:!0})],Gt.prototype,"disconnect",1),Z([Qe([],"closed",{sync:!0})],Gt.prototype,"close",1);var Qf=be(Nm(250),so(()=>performance.now()),yi()),Yf=i=>t=>{let e=0,r=performance.now();be(Qf,so(o=>(o-r)/i>>0),sr(o=>o!=e?(e=o,!0):!1))(t)},Gd=i=>t=>{let e=performance.now();be(Qf,Ld(r=>r-e<i),Dr(1))(t)};var xI=[0,1,1,1,0,0,1,0],is=class extends Gt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));u(this,"_intervalId",0);u(this,"_sequence",0);u(this,"checkGLError",!1);u(this,"checkVisibilityChange");e instanceof Ft?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(xI)}start(e){this.log.info(`${this.name} start render ${e} fps`),vt.clearTask(this._intervalId),this._intervalId=vt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(vt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof Tt){let o=this.context.ctx.getError();o&&this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),this.emit("render"),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){if(this._intervalId&&(vt.clearTask(this._intervalId),this._intervalId=0,e===1)){this.log.info(`${this.name} use requestVideoFrameCallback`);let r=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",r))};document.addEventListener("visibilitychange",r)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),vt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),vt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},en=class extends is{constructor(e,r){super(e,r);u(this,"_videoTrack");u(this,"_muteOb");u(this,"_closedOb",Ne(this,"closed"));u(this,"_subscription");u(this,"_canvasContainer");Number(di)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=Ne(this._videoTrack,"mute"),be(Ne(this._videoTrack,"ended"),Ye(this._closedOb),Le(()=>{this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=be(this._muteOb,Ye(this._closedOb),Ai(Gd(5e3)),sr(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},jd=class extends en{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var qd=class extends en{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var wa=class extends Gt{constructor(e,r){super(e,X({name:"imageSource"},r));u(this,"_lastImage");u(this,"_totalFrames",0);u(this,"_autoResize",!1);u(this,"_canvasRendered");u(this,"_videoCallbackId",0);u(this,"waitingFirstFrame",!0);u(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Jt===16&&(this._canvasRendered=yt(),be(this._canvasRendered,va(this._image),no(o=>o instanceof HTMLCanvasElement?Ne(o,"rendered"):Na()),Ye(Ne(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),Ei()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var c;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!1}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(c=this._lastImage)==null||c.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let l=this.context.ctx;l.texSubImage2D(l.TEXTURE_2D,0,0,0,l.RGBA,l.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let l=this.context.ctx;l.texImage2D(l.TEXTURE_2D,0,l.RGBA,l.RGBA,l.UNSIGNED_BYTE,n)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Ma=class extends wa{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",be(Ne(this._player,et.PLAYER_STATE_CHANGED),Ye(Ne(this,"closed")),sr(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},bi=class extends Ma{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new rr({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}};var kI=`
|
|
32
32
|
// \u9876\u70B9\u7740\u8272\u5668
|
|
33
33
|
attribute vec4 a_position;
|
|
34
34
|
attribute vec2 a_texCoord;
|
|
@@ -38,7 +38,7 @@ void main() {
|
|
|
38
38
|
gl_Position = a_position;
|
|
39
39
|
v_texCoord = a_texCoord;
|
|
40
40
|
}
|
|
41
|
-
`,
|
|
41
|
+
`,LI=`
|
|
42
42
|
// \u7247\u5143\u7740\u8272\u5668
|
|
43
43
|
precision mediump float;
|
|
44
44
|
varying vec2 v_texCoord;
|
|
@@ -46,66 +46,66 @@ uniform sampler2D u_texture;
|
|
|
46
46
|
|
|
47
47
|
void main() {
|
|
48
48
|
gl_FragColor = texture2D(u_texture, v_texCoord);
|
|
49
|
-
} `;var os=class extends de{constructor(e){super();u(this,"frameRate");u(this,"_canvas");u(this,"log");u(this,"hasAlpha",!1);u(this,"name");u(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new yi(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new en(this,e)}createVideoImageSource(e,r){return new Ca(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Na(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};u(os,"_ids",0);var xI={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},tn=class tn extends os{constructor(){super(...arguments);u(this,"defaultProgam");u(this,"defaultVShader");u(this,"defaultFShader");u(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${os._ids++}`),this.ctx=this._canvas.getContext("webgl2",xI),!this.ctx)throw new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,wI),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,OI),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,Q.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};u(tn,"UNAVAILABLE","unavailable"),Z([Qe(de.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),Q.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),Q.addSuccessEvent({key:512700})}})],tn.prototype,"create",1),Z([Qe("created",de.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(tn.UNAVAILABLE,e),this.removeAllListeners()}})],tn.prototype,"destroy",1);var Tt=tn,Ft=class extends os{constructor(){super(...arguments);u(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${os._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,Q.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),Q.addSuccessEvent({key:512703})}};Z([Qe(de.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),Q.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),Q.addSuccessEvent({key:512701})}})],Ft.prototype,"create",1),Z([Qe("created",de.INIT,{ignoreError:!0,sync:!0})],Ft.prototype,"destroy",1);function PI(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var ao=class extends Ks{constructor(e,r,o=4){super(e,r,o);u(this,"mediaType",4);u(this,"source");u(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}play(e,r){return(st(r==null?void 0:r.canvasRender)?r.canvasRender:Jt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Ft({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new is(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),gi()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=PI(r);if(!Pe(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(c=>c.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(c=>c.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},jd=class extends ao{constructor(e,r){super(e,r,2);u(this,"mediaType",2);u(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var rn=new Map;V.on(U.JOIN_SUCCESS,({room:i})=>{nt(i.userId,{eventId:32788})});V.on(U.LEAVE_START,({room:i})=>{nt(i.userId,{eventId:32789})});V.on(U.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),nt(i.room.userId,{eventId:t})}});V.on(U.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),nt(i.room.userId,{eventId:t})}});V.on(U.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===N.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(U.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===N.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(U.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});V.on(U.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});V.on(U.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===N.VIDEO?32780:32781})});V.on(U.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===N.VIDEO?32782:32783})});V.on(U.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&nt(i.userId,{eventId:r})});V.on(U.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&nt(i.userId,{eventId:s,remoteUserId:r})});V.on(U.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let c=o?1:0;s||(c=o?3:2);let l=r==="h264"?0:2,m={eventId:4004,param1:c,param2:l,streamType:n||2};e&&(m.remoteUserId=e,m.eventId=4005),nt(t,m),Q.addEnum({key:e?514701:513701,value:c}),Q.addEnum({key:e?514700:513700,value:l})});V.on(U.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===N.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),nt(i.userId,e)}});function nt(i,t){let e=Te(z({},t),{timestamp:Rn()});rn.has(i)?rn.get(i).push(e):rn.set(i,[e])}function qf(i){if(rn.has(i)){let t=rn.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return rn.delete(i),t}return[]}function Jf(...i){return Oe((t,e)=>function(...r){return kI.call(this,i,r,e,this._name),t.apply(this,r)})}function kI(i,t,e,r){try{if(ot(i))for(let o=0;o<i.length;o++)qd.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else qd.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw $.error(o),o}}function qd({rule:i,value:t,key:e,fnName:r,className:o}){if(P(t)){if(i.required)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(P(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let c=!1;for(let l=0;l<i.type.length;l++)i.type[l]===null&&t===null&&(c=!0),We(i.type[l])&&t instanceof i.type[l]&&(c=!0),we(i.type[l])&&ct(t)===i.type[l].toLowerCase()&&(c=!0);if(!c)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(l=>Lo(l)?vs(l):we(l)?l:ct(l))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!P(i.type)&&ct(t)!==i.type)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let c=Pe(t)&&(t===0||Number.isNaN(t)),l=we(t)&&t.trim()==="";if(c||l)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&Pe(t)&&t<0)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!P(i.min)&&Pe(t)&&t<i.min)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!P(i.max)&&Pe(t)&&t>i.max)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(we(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(We(i.instanceOf)&&!(t instanceof i.instanceOf))throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Lt(s)&&er(t)&&Object.keys(s).forEach(c=>{qd.call(this,{rule:s[c],value:t&&t[c],key:`${e}.${c}`,fnName:r,className:o})});let{arrayItem:n}=i;Lt(n)&&ot(t)&&t.forEach((c,l)=>{qd.call(this,{rule:n,value:c,key:`${e}[${l}]`,fnName:r,className:o})}),We(i.validate)&&i.validate.call(this,t,e,r,o,this)}var LI=Gi(Zi(),1);var UI=Object.create,Yd=Object.defineProperty,VI=Object.defineProperties,Yf=Object.getOwnPropertyDescriptor,FI=Object.getOwnPropertyDescriptors,Zf=Object.getOwnPropertyNames,zf=Object.getOwnPropertySymbols,$I=Object.getPrototypeOf,Kf=Object.prototype.hasOwnProperty,BI=Object.prototype.propertyIsEnumerable,op=(i,t,e)=>t in i?Yd(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,zd=(i,t)=>{for(var e in t||(t={}))Kf.call(t,e)&&op(i,e,t[e]);if(zf)for(var e of zf(t))BI.call(t,e)&&op(i,e,t[e]);return i},Xd=(i,t)=>VI(i,FI(t)),HI=(i,t)=>function(){return t||(0,i[Zf(i)[0]])((t={exports:{}}).exports,t),t.exports},WI=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Zf(t))Kf.call(i,o)||o===e||Yd(i,o,{get:()=>t[o],enumerable:!(r=Yf(t,o))||r.enumerable});return i},GI=(i,t,e)=>(e=i!=null?UI($I(i)):{},WI(!t&&i&&i.__esModule?e:Yd(e,"default",{value:i,enumerable:!0}),i)),bi=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?Yf(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&Yd(t,e,s),s},Dr=(i,t,e)=>op(i,typeof t!="symbol"?t+"":t,e),jI=HI({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(m,E,g){this.fn=m,this.context=E,this.once=g||!1}function n(m,E,g,_,v){if(typeof g!="function")throw new TypeError("The listener must be a function");var L=new s(g,_||m,v),x=r?r+E:E;return m._events[x]?m._events[x].fn?m._events[x]=[m._events[x],L]:m._events[x].push(L):(m._events[x]=L,m._eventsCount++),m}function c(m,E){--m._eventsCount==0?m._events=new o:delete m._events[E]}function l(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),l.prototype.eventNames=function(){var m,E,g=[];if(this._eventsCount===0)return g;for(E in m=this._events)e.call(m,E)&&g.push(r?E.slice(1):E);return Object.getOwnPropertySymbols?g.concat(Object.getOwnPropertySymbols(m)):g},l.prototype.listeners=function(m){var E=r?r+m:m,g=this._events[E];if(!g)return[];if(g.fn)return[g.fn];for(var _=0,v=g.length,L=new Array(v);_<v;_++)L[_]=g[_].fn;return L},l.prototype.listenerCount=function(m){var E=r?r+m:m,g=this._events[E];return g?g.fn?1:g.length:0},l.prototype.emit=function(m,E,g,_,v,L){var x=r?r+m:m;if(!this._events[x])return!1;var M,B,ee=this._events[x],pe=arguments.length;if(ee.fn){switch(ee.once&&this.removeListener(m,ee.fn,void 0,!0),pe){case 1:return ee.fn.call(ee.context),!0;case 2:return ee.fn.call(ee.context,E),!0;case 3:return ee.fn.call(ee.context,E,g),!0;case 4:return ee.fn.call(ee.context,E,g,_),!0;case 5:return ee.fn.call(ee.context,E,g,_,v),!0;case 6:return ee.fn.call(ee.context,E,g,_,v,L),!0}for(B=1,M=new Array(pe-1);B<pe;B++)M[B-1]=arguments[B];ee.fn.apply(ee.context,M)}else{var ae,Xe=ee.length;for(B=0;B<Xe;B++)switch(ee[B].once&&this.removeListener(m,ee[B].fn,void 0,!0),pe){case 1:ee[B].fn.call(ee[B].context);break;case 2:ee[B].fn.call(ee[B].context,E);break;case 3:ee[B].fn.call(ee[B].context,E,g);break;case 4:ee[B].fn.call(ee[B].context,E,g,_);break;default:if(!M)for(ae=1,M=new Array(pe-1);ae<pe;ae++)M[ae-1]=arguments[ae];ee[B].fn.apply(ee[B].context,M)}}return!0},l.prototype.on=function(m,E,g){return n(this,m,E,g,!1)},l.prototype.once=function(m,E,g){return n(this,m,E,g,!0)},l.prototype.removeListener=function(m,E,g,_){var v=r?r+m:m;if(!this._events[v])return this;if(!E)return c(this,v),this;var L=this._events[v];if(L.fn)L.fn!==E||_&&!L.once||g&&L.context!==g||c(this,v);else{for(var x=0,M=[],B=L.length;x<B;x++)(L[x].fn!==E||_&&!L[x].once||g&&L[x].context!==g)&&M.push(L[x]);M.length?this._events[v]=M.length===1?M[0]:M:c(this,v)}return this},l.prototype.removeAllListeners=function(m){var E;return m?(E=r?r+m:m,this._events[E]&&c(this,E)):(this._events=new o,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=r,l.EventEmitter=l,t!==void 0&&(t.exports=l)}}),qI=GI(jI(),1),Xf=Symbol("instance"),aO=Symbol("abortCtrl"),Jd=Symbol("cacheResult"),ip=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,wa.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Qd=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function JI(i){return typeof i=="object"&&i&&"then"in i}var Ma=new Map;function co(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let l=Ma.get(r)||[];Ma.has(r)||Ma.set(r,l),l.push({from:i,to:t,action:n})}let c=s.value;s.value=function(...l){let m=this;if(e.context&&(m=jt.get(typeof e.context=="function"?e.context.call(this,...l):e.context)),m.state===t)return e.sync?m[Jd]:Promise.resolve(m[Jd]);m.state instanceof ip&&m.state.action==e.abortAction&&m.state.abort(m);let E=null;Array.isArray(i)?i.length==0?m.state instanceof ip&&m.state.abort(m):typeof m.state=="string"&&i.includes(m.state)||(E=new Qd(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(E=new Qd(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let g=M=>{if(e.fail&&e.fail.call(this,M),e.sync){if(e.ignoreError)return M;throw M}return e.ignoreError?Promise.resolve(M):Promise.reject(M)};if(E)return g(E);let _=m.state,v=new ip(_,t,n);wa.call(m,v);let L=M=>{var B;return m[Jd]=M,v.aborted||(wa.call(m,t),(B=e.success)===null||B===void 0||B.call(this,m[Jd])),M},x=M=>(wa.call(m,_,M),g(M));try{let M=c.apply(this,l);return JI(M)?M.then(L).catch(x):e.sync?L(M):Promise.resolve(L(M))}catch(M){return x(new Qd(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${M}`,M instanceof Error?M:new Error(String(M))))}}}}function zI(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new Qd(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var XI=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function wa(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(jt.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var jt=class mr extends qI.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=mr.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[Xf];o?this.name=o.name+"-"+o.count++:r[Xf]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Ma.get(t)||[],r=new Set,o=[],s=[],n=new Set,c=Object.getPrototypeOf(t);Ma.has(c)&&(c.stateDiagram.forEach(m=>r.add(m)),c.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:E,action:g})=>{typeof m=="string"?o.push({from:m,to:E,action:g}):m.length?m.forEach(_=>{o.push({from:_,to:E,action:g})}):s.push({to:E,action:g})}),o.forEach(({from:m,to:E,action:g})=>{n.add(m),n.add(E),n.add(g+"ing"),r.add(`${m} --> ${g}ing : ${g}`),r.add(`${g}ing --> ${E} : ${g} \u{1F7E2}`),r.add(`${g}ing --> ${m} : ${g} \u{1F534}`)}),s.forEach(({to:m,action:E})=>{r.add(`${E}ing --> ${m} : ${E} \u{1F7E2}`),n.forEach(g=>{g!==m&&r.add(`${g} --> ${E}ing : ${E}`)})});let l=[...r];return Object.defineProperties(t,{stateDiagram:{value:l},allStates:{value:n}}),l}static get(t){let e;return typeof t=="string"?(e=mr.instances.get(t),e||mr.instances.set(t,e=new mr(t,void 0,Object.create(mr.prototype)))):(e=mr.instances2.get(t),e||mr.instances2.set(t,e=new mr(t.constructor.name,void 0,Object.create(mr.prototype)))),e}static getState(t){var e;return(e=mr.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){XI(mr.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){wa.call(this,t)}};jt.STATECHANGED="stateChanged",jt.UPDATEAFSM="updateAFSM",jt.INIT="[*]",jt.ON="on",jt.OFF="off",jt.instances=new Map,jt.instances2=new WeakMap;var on=class extends jt{constructor(){super(...arguments),Dr(this,"decoder"),Dr(this,"config")}initialize(){return A(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(Xd(zd({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function QI(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),n=0,c=0,l={wasmBinary:o,postRun:()=>{i=new l.VideoDecoder({videoInfo(m,E){n=m,c=E,console.log("video info",m,E)},yuvData(m,E){let g=n*c,_=g>>2,v=l.HEAPU32[m>>2],L=l.HEAPU32[1+(m>>2)],x=l.HEAPU32[2+(m>>2)],M=l.HEAPU8.subarray(v,v+g),B=l.HEAPU8.subarray(L,L+_),ee=l.HEAPU8.subarray(x,x+_),pe=new Uint8Array(g+_+_);pe.set(M),pe.set(B,g),pe.set(ee,g+_);let ae=new VideoFrame(pe,{codedWidth:n,codedHeight:c,format:"I420",timestamp:E});e?(s==null||s.drawImage(ae,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:ae},[ae])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(l)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}bi([co([jt.INIT,"closed"],"initialized")],on.prototype,"initialize",1),bi([co("initialized","configured",{sync:!0})],on.prototype,"configure",1),bi([zI("configured")],on.prototype,"decode",1),bi([co([],jt.INIT,{sync:!0})],on.prototype,"reset",1),bi([co([],"closed",{ignoreError:!0,sync:!0})],on.prototype,"close",1);var Da=class extends jt{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,Dr(this,"worker"),Dr(this,"decoder"),Dr(this,"config"),Dr(this,"module",{}),Dr(this,"width",0),Dr(this,"height",0)}initialize(i){return A(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(QI.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=c=>{if(c.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(c.data.type==="yuvData"){let{videoFrame:l}=c.data;this.emit("videoFrame",l)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],c=this.module.HEAPU8.subarray(o,o+e),l=this.module.HEAPU8.subarray(s,s+r),m=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:c,u:l,v:m,timestamp:t});let E=new Uint8Array(e+r+r);E.set(c),E.set(l,e),E.set(m,e+r),this.emit("videoFrame",new VideoFrame(E,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};bi([co([jt.INIT,"closed"],"initialized")],Da.prototype,"initialize",1),bi([co("initialized","configured",{sync:!0})],Da.prototype,"configure",1),bi([co([],jt.INIT,{sync:!0})],Da.prototype,"reset",1),bi([co([],"closed",{sync:!0})],Da.prototype,"close",1);var YI=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((a,d)=>{e=a,r=d});var s,n,c,l=Object.assign({},o),m="./this.program",E=typeof window=="object",g=typeof importScripts=="function",_=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(E||g)&&(g?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),i&&(_=i),_=_.indexOf("blob:")!==0?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=a=>{var d=new XMLHttpRequest;return d.open("GET",a,!1),d.send(null),d.responseText},g&&(c=a=>{var d=new XMLHttpRequest;return d.open("GET",a,!1),d.responseType="arraybuffer",d.send(null),new Uint8Array(d.response)}),n=(a,d,p)=>{var h=new XMLHttpRequest;h.open("GET",a,!0),h.responseType="arraybuffer",h.onload=()=>{h.status==200||h.status==0&&h.response?d(h.response):p()},h.onerror=p,h.send(null)});var v,L=o.print||console.log.bind(console),x=o.printErr||console.error.bind(console);Object.assign(o,l),l=null,o.arguments&&o.arguments,o.thisProgram&&(m=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(v=o.wasmBinary);var M,B;o.noExitRuntime,typeof WebAssembly!="object"&&wr("no native wasm support detected");var ee,pe,ae,Xe,X,Ue,_o,ln,mn,pn=!1,Mr=[],us=[],Di=[],nr=0,te=null,Xr=null;function ls(a){nr++,o.monitorRunDependencies&&o.monitorRunDependencies(nr)}function To(a){if(nr--,o.monitorRunDependencies&&o.monitorRunDependencies(nr),nr==0&&(te!==null&&(clearInterval(te),te=null),Xr)){var d=Xr;Xr=null,d()}}function wr(a){o.onAbort&&o.onAbort(a),x(a="Aborted("+a+")"),pn=!0,a+=". Build with -sASSERTIONS for more info.";var d=new WebAssembly.RuntimeError(a);throw r(d),d}var Qr,hn,Ee,Ze;function Ot(a){return a.startsWith("data:application/octet-stream;base64,")}function j(a){if(a==Qr&&v)return new Uint8Array(v);if(c)return c(a);throw"both async and sync fetching of the wasm failed"}function Or(a,d,p){return function(h){return v||!E&&!g||typeof fetch!="function"?Promise.resolve().then(()=>j(h)):fetch(h,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+h+"'";return I.arrayBuffer()}).catch(()=>j(h))}(a).then(h=>WebAssembly.instantiate(h,d)).then(h=>h).then(p,h=>{x("failed to asynchronously prepare wasm: "+h),wr(h)})}Ot(Qr="videodec.wasm")||(hn=Qr,Qr=o.locateFile?o.locateFile(hn,_):_+hn);var Mi=a=>{for(;a.length>0;)a.shift()(o)};function wi(a){this.excPtr=a,this.ptr=a-24,this.set_type=function(d){Ue[this.ptr+4>>2]=d},this.get_type=function(){return Ue[this.ptr+4>>2]},this.set_destructor=function(d){Ue[this.ptr+8>>2]=d},this.get_destructor=function(){return Ue[this.ptr+8>>2]},this.set_caught=function(d){d=d?1:0,ee[this.ptr+12|0]=d},this.get_caught=function(){return ee[this.ptr+12|0]!=0},this.set_rethrown=function(d){d=d?1:0,ee[this.ptr+13|0]=d},this.get_rethrown=function(){return ee[this.ptr+13|0]!=0},this.init=function(d,p){this.set_adjusted_ptr(0),this.set_type(d),this.set_destructor(p)},this.set_adjusted_ptr=function(d){Ue[this.ptr+16>>2]=d},this.get_adjusted_ptr=function(){return Ue[this.ptr+16>>2]},this.get_exception_ptr=function(){if(An(this.get_type()))return Ue[this.excPtr>>2];var d=this.get_adjusted_ptr();return d!==0?d:this.excPtr}}var me={isAbs:a=>a.charAt(0)==="/",splitPath:a=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1),normalizeArray:(a,d)=>{for(var p=0,h=a.length-1;h>=0;h--){var I=a[h];I==="."?a.splice(h,1):I===".."?(a.splice(h,1),p++):p&&(a.splice(h,1),p--)}if(d)for(;p;p--)a.unshift("..");return a},normalize:a=>{var d=me.isAbs(a),p=a.substr(-1)==="/";return(a=me.normalizeArray(a.split("/").filter(h=>!!h),!d).join("/"))||d||(a="."),a&&p&&(a+="/"),(d?"/":"")+a},dirname:a=>{var d=me.splitPath(a),p=d[0],h=d[1];return p||h?(h&&(h=h.substr(0,h.length-1)),p+h):"."},basename:a=>{if(a==="/")return"/";var d=(a=(a=me.normalize(a)).replace(/\/$/,"")).lastIndexOf("/");return d===-1?a:a.substr(d+1)},join:function(){var a=Array.prototype.slice.call(arguments);return me.normalize(a.join("/"))},join2:(a,d)=>me.normalize(a+"/"+d)},fn=a=>(fn=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return d=>crypto.getRandomValues(d);wr("initRandomDevice")})())(a),qt={resolve:function(){for(var a="",d=!1,p=arguments.length-1;p>=-1&&!d;p--){var h=p>=0?arguments[p]:f.cwd();if(typeof h!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!h)return"";a=h+"/"+a,d=me.isAbs(h)}return(d?"/":"")+(a=me.normalizeArray(a.split("/").filter(I=>!!I),!d).join("/"))||"."},relative:(a,d)=>{function p(O){for(var Y=0;Y<O.length&&O[Y]==="";Y++);for(var oe=O.length-1;oe>=0&&O[oe]==="";oe--);return Y>oe?[]:O.slice(Y,oe-Y+1)}a=qt.resolve(a).substr(1),d=qt.resolve(d).substr(1);for(var h=p(a.split("/")),I=p(d.split("/")),y=Math.min(h.length,I.length),b=y,R=0;R<y;R++)if(h[R]!==I[R]){b=R;break}var k=[];for(R=b;R<h.length;R++)k.push("..");return(k=k.concat(I.slice(b))).join("/")}},Oi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,xt=(a,d,p)=>{for(var h=d+p,I=d;a[I]&&!(I>=h);)++I;if(I-d>16&&a.buffer&&Oi)return Oi.decode(a.subarray(d,I));for(var y="";d<I;){var b=a[d++];if(128&b){var R=63&a[d++];if((224&b)!=192){var k=63&a[d++];if((b=(240&b)==224?(15&b)<<12|R<<6|k:(7&b)<<18|R<<12|k<<6|63&a[d++])<65536)y+=String.fromCharCode(b);else{var O=b-65536;y+=String.fromCharCode(55296|O>>10,56320|1023&O)}}else y+=String.fromCharCode((31&b)<<6|R)}else y+=String.fromCharCode(b)}return y},gn=[],Io=a=>{for(var d=0,p=0;p<a.length;++p){var h=a.charCodeAt(p);h<=127?d++:h<=2047?d+=2:h>=55296&&h<=57343?(d+=4,++p):d+=3}return d},So=(a,d,p,h)=>{if(!(h>0))return 0;for(var I=p,y=p+h-1,b=0;b<a.length;++b){var R=a.charCodeAt(b);if(R>=55296&&R<=57343&&(R=65536+((1023&R)<<10)|1023&a.charCodeAt(++b)),R<=127){if(p>=y)break;d[p++]=R}else if(R<=2047){if(p+1>=y)break;d[p++]=192|R>>6,d[p++]=128|63&R}else if(R<=65535){if(p+2>=y)break;d[p++]=224|R>>12,d[p++]=128|R>>6&63,d[p++]=128|63&R}else{if(p+3>=y)break;d[p++]=240|R>>18,d[p++]=128|R>>12&63,d[p++]=128|R>>6&63,d[p++]=128|63&R}}return d[p]=0,p-I};function ms(a,d,p){var h=p>0?p:Io(a)+1,I=new Array(h),y=So(a,I,0,I.length);return d&&(I.length=y),I}var ce={ttys:[],init:function(){},shutdown:function(){},register:function(a,d){ce.ttys[a]={input:[],output:[],ops:d},f.registerDevice(a,ce.stream_ops)},stream_ops:{open:function(a){var d=ce.ttys[a.node.rdev];if(!d)throw new f.ErrnoError(43);a.tty=d,a.seekable=!1},close:function(a){a.tty.ops.fsync(a.tty)},fsync:function(a){a.tty.ops.fsync(a.tty)},read:function(a,d,p,h,I){if(!a.tty||!a.tty.ops.get_char)throw new f.ErrnoError(60);for(var y=0,b=0;b<h;b++){var R;try{R=a.tty.ops.get_char(a.tty)}catch(k){throw new f.ErrnoError(29)}if(R===void 0&&y===0)throw new f.ErrnoError(6);if(R==null)break;y++,d[p+b]=R}return y&&(a.node.timestamp=Date.now()),y},write:function(a,d,p,h,I){if(!a.tty||!a.tty.ops.put_char)throw new f.ErrnoError(60);try{for(var y=0;y<h;y++)a.tty.ops.put_char(a.tty,d[p+y])}catch(b){throw new f.ErrnoError(29)}return h&&(a.node.timestamp=Date.now()),y}},default_tty_ops:{get_char:function(a){return(()=>{if(!gn.length){var d=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(d=window.prompt("Input: "))!==null&&(d+=`
|
|
49
|
+
} `;var os=class extends de{constructor(e){super();u(this,"frameRate");u(this,"_canvas");u(this,"log");u(this,"hasAlpha",!1);u(this,"name");u(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new bi(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new en(this,e)}createVideoImageSource(e,r){return new wa(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Ma(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};u(os,"_ids",0);var UI={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},tn=class tn extends os{constructor(){super(...arguments);u(this,"defaultProgam");u(this,"defaultVShader");u(this,"defaultFShader");u(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${os._ids++}`),this.ctx=this._canvas.getContext("webgl2",UI),!this.ctx)throw new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,kI),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,LI),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,Q.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};u(tn,"UNAVAILABLE","unavailable"),Z([Qe(de.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),Q.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),Q.addSuccessEvent({key:512700})}})],tn.prototype,"create",1),Z([Qe("created",de.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(tn.UNAVAILABLE,e),this.removeAllListeners()}})],tn.prototype,"destroy",1);var Tt=tn,Ft=class extends os{constructor(){super(...arguments);u(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${os._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,Q.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),Q.addSuccessEvent({key:512703})}};Z([Qe(de.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),Q.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),Q.addSuccessEvent({key:512701})}})],Ft.prototype,"create",1),Z([Qe("created",de.INIT,{ignoreError:!0,sync:!0})],Ft.prototype,"destroy",1);function VI(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var ao=class extends Ks{constructor(e,r,o=4){super(e,r,o);u(this,"mediaType",4);u(this,"source");u(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}play(e,r){return(st(r==null?void 0:r.canvasRender)?r.canvasRender:Jt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Ft({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new is(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Ei()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=VI(r);if(!ke(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(c=>c.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(c=>c.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},Jd=class extends ao{constructor(e,r){super(e,r,2);u(this,"mediaType",2);u(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var rn=new Map;V.on(U.JOIN_SUCCESS,({room:i})=>{nt(i.userId,{eventId:32788})});V.on(U.LEAVE_START,({room:i})=>{nt(i.userId,{eventId:32789})});V.on(U.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),nt(i.room.userId,{eventId:t})}});V.on(U.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),nt(i.room.userId,{eventId:t})}});V.on(U.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(U.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?nt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):nt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});V.on(U.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});V.on(U.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&nt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&nt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&nt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});V.on(U.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===D.VIDEO?32780:32781})});V.on(U.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&nt(i.room.userId,{eventId:i.kind===D.VIDEO?32782:32783})});V.on(U.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&nt(i.userId,{eventId:r})});V.on(U.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&nt(i.userId,{eventId:s,remoteUserId:r})});V.on(U.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let c=o?1:0;s||(c=o?3:2);let l=r==="h264"?0:2,m={eventId:4004,param1:c,param2:l,streamType:n||2};e&&(m.remoteUserId=e,m.eventId=4005),nt(t,m),Q.addEnum({key:e?514701:513701,value:c}),Q.addEnum({key:e?514700:513700,value:l})});V.on(U.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===D.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),nt(i.userId,e)}});function nt(i,t){let e=Te(X({},t),{timestamp:Rn()});rn.has(i)?rn.get(i).push(e):rn.set(i,[e])}function Zf(i){if(rn.has(i)){let t=rn.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return rn.delete(i),t}return[]}function Kf(...i){return xe((t,e)=>function(...r){return FI.call(this,i,r,e,this._name),t.apply(this,r)})}function FI(i,t,e,r){try{if(ot(i))for(let o=0;o<i.length;o++)zd.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else zd.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw $.error(o),o}}function zd({rule:i,value:t,key:e,fnName:r,className:o}){if(P(t)){if(i.required)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(P(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let c=!1;for(let l=0;l<i.type.length;l++)i.type[l]===null&&t===null&&(c=!0),We(i.type[l])&&t instanceof i.type[l]&&(c=!0),Oe(i.type[l])&&ct(t)===i.type[l].toLowerCase()&&(c=!0);if(!c)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(l=>Lo(l)?vs(l):Oe(l)?l:ct(l))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!P(i.type)&&ct(t)!==i.type)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let c=ke(t)&&(t===0||Number.isNaN(t)),l=Oe(t)&&t.trim()==="";if(c||l)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&ke(t)&&t<0)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!P(i.min)&&ke(t)&&t<i.min)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!P(i.max)&&ke(t)&&t>i.max)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(Oe(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(We(i.instanceOf)&&!(t instanceof i.instanceOf))throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Lt(s)&&er(t)&&Object.keys(s).forEach(c=>{zd.call(this,{rule:s[c],value:t&&t[c],key:`${e}.${c}`,fnName:r,className:o})});let{arrayItem:n}=i;Lt(n)&&ot(t)&&t.forEach((c,l)=>{zd.call(this,{rule:n,value:c,key:`${e}[${l}]`,fnName:r,className:o})}),We(i.validate)&&i.validate.call(this,t,e,r,o,this)}var $I=ji(Zi(),1);var BI=Object.create,Kd=Object.defineProperty,HI=Object.defineProperties,ig=Object.getOwnPropertyDescriptor,WI=Object.getOwnPropertyDescriptors,og=Object.getOwnPropertyNames,eg=Object.getOwnPropertySymbols,GI=Object.getPrototypeOf,sg=Object.prototype.hasOwnProperty,jI=Object.prototype.propertyIsEnumerable,dp=(i,t,e)=>t in i?Kd(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Qd=(i,t)=>{for(var e in t||(t={}))sg.call(t,e)&&dp(i,e,t[e]);if(eg)for(var e of eg(t))jI.call(t,e)&&dp(i,e,t[e]);return i},Yd=(i,t)=>HI(i,WI(t)),qI=(i,t)=>function(){return t||(0,i[og(i)[0]])((t={exports:{}}).exports,t),t.exports},JI=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of og(t))sg.call(i,o)||o===e||Kd(i,o,{get:()=>t[o],enumerable:!(r=ig(t,o))||r.enumerable});return i},zI=(i,t,e)=>(e=i!=null?BI(GI(i)):{},JI(!t&&i&&i.__esModule?e:Kd(e,"default",{value:i,enumerable:!0}),i)),Ri=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?ig(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&Kd(t,e,s),s},wr=(i,t,e)=>dp(i,typeof t!="symbol"?t+"":t,e),XI=qI({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(m,f,E){this.fn=m,this.context=f,this.once=E||!1}function n(m,f,E,_,v){if(typeof E!="function")throw new TypeError("The listener must be a function");var k=new s(E,_||m,v),M=r?r+f:f;return m._events[M]?m._events[M].fn?m._events[M]=[m._events[M],k]:m._events[M].push(k):(m._events[M]=k,m._eventsCount++),m}function c(m,f){--m._eventsCount==0?m._events=new o:delete m._events[f]}function l(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),l.prototype.eventNames=function(){var m,f,E=[];if(this._eventsCount===0)return E;for(f in m=this._events)e.call(m,f)&&E.push(r?f.slice(1):f);return Object.getOwnPropertySymbols?E.concat(Object.getOwnPropertySymbols(m)):E},l.prototype.listeners=function(m){var f=r?r+m:m,E=this._events[f];if(!E)return[];if(E.fn)return[E.fn];for(var _=0,v=E.length,k=new Array(v);_<v;_++)k[_]=E[_].fn;return k},l.prototype.listenerCount=function(m){var f=r?r+m:m,E=this._events[f];return E?E.fn?1:E.length:0},l.prototype.emit=function(m,f,E,_,v,k){var M=r?r+m:m;if(!this._events[M])return!1;var N,B,ee=this._events[M],me=arguments.length;if(ee.fn){switch(ee.once&&this.removeListener(m,ee.fn,void 0,!0),me){case 1:return ee.fn.call(ee.context),!0;case 2:return ee.fn.call(ee.context,f),!0;case 3:return ee.fn.call(ee.context,f,E),!0;case 4:return ee.fn.call(ee.context,f,E,_),!0;case 5:return ee.fn.call(ee.context,f,E,_,v),!0;case 6:return ee.fn.call(ee.context,f,E,_,v,k),!0}for(B=1,N=new Array(me-1);B<me;B++)N[B-1]=arguments[B];ee.fn.apply(ee.context,N)}else{var oe,Xe=ee.length;for(B=0;B<Xe;B++)switch(ee[B].once&&this.removeListener(m,ee[B].fn,void 0,!0),me){case 1:ee[B].fn.call(ee[B].context);break;case 2:ee[B].fn.call(ee[B].context,f);break;case 3:ee[B].fn.call(ee[B].context,f,E);break;case 4:ee[B].fn.call(ee[B].context,f,E,_);break;default:if(!N)for(oe=1,N=new Array(me-1);oe<me;oe++)N[oe-1]=arguments[oe];ee[B].fn.apply(ee[B].context,N)}}return!0},l.prototype.on=function(m,f,E){return n(this,m,f,E,!1)},l.prototype.once=function(m,f,E){return n(this,m,f,E,!0)},l.prototype.removeListener=function(m,f,E,_){var v=r?r+m:m;if(!this._events[v])return this;if(!f)return c(this,v),this;var k=this._events[v];if(k.fn)k.fn!==f||_&&!k.once||E&&k.context!==E||c(this,v);else{for(var M=0,N=[],B=k.length;M<B;M++)(k[M].fn!==f||_&&!k[M].once||E&&k[M].context!==E)&&N.push(k[M]);N.length?this._events[v]=N.length===1?N[0]:N:c(this,v)}return this},l.prototype.removeAllListeners=function(m){var f;return m?(f=r?r+m:m,this._events[f]&&c(this,f)):(this._events=new o,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=r,l.EventEmitter=l,t!==void 0&&(t.exports=l)}}),QI=zI(XI(),1),tg=Symbol("instance"),pO=Symbol("abortCtrl"),Xd=Symbol("cacheResult"),cp=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,Pa.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Zd=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function YI(i){return typeof i=="object"&&i&&"then"in i}var xa=new Map;function co(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let l=xa.get(r)||[];xa.has(r)||xa.set(r,l),l.push({from:i,to:t,action:n})}let c=s.value;s.value=function(...l){let m=this;if(e.context&&(m=jt.get(typeof e.context=="function"?e.context.call(this,...l):e.context)),m.state===t)return e.sync?m[Xd]:Promise.resolve(m[Xd]);m.state instanceof cp&&m.state.action==e.abortAction&&m.state.abort(m);let f=null;Array.isArray(i)?i.length==0?m.state instanceof cp&&m.state.abort(m):typeof m.state=="string"&&i.includes(m.state)||(f=new Zd(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(f=new Zd(m._state,`${m.name} ${n} to ${t} failed: current state ${m._state} not from ${i}`));let E=N=>{if(e.fail&&e.fail.call(this,N),e.sync){if(e.ignoreError)return N;throw N}return e.ignoreError?Promise.resolve(N):Promise.reject(N)};if(f)return E(f);let _=m.state,v=new cp(_,t,n);Pa.call(m,v);let k=N=>{var B;return m[Xd]=N,v.aborted||(Pa.call(m,t),(B=e.success)===null||B===void 0||B.call(this,m[Xd])),N},M=N=>(Pa.call(m,_,N),E(N));try{let N=c.apply(this,l);return YI(N)?N.then(k).catch(M):e.sync?k(N):Promise.resolve(k(N))}catch(N){return M(new Zd(m._state,`${m.name} ${n} from ${i} to ${t} failed: ${N}`,N instanceof Error?N:new Error(String(N))))}}}}function ZI(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new Zd(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var KI=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function Pa(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(jt.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var jt=class mr extends QI.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=mr.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[tg];o?this.name=o.name+"-"+o.count++:r[tg]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=xa.get(t)||[],r=new Set,o=[],s=[],n=new Set,c=Object.getPrototypeOf(t);xa.has(c)&&(c.stateDiagram.forEach(m=>r.add(m)),c.allStates.forEach(m=>n.add(m))),e.forEach(({from:m,to:f,action:E})=>{typeof m=="string"?o.push({from:m,to:f,action:E}):m.length?m.forEach(_=>{o.push({from:_,to:f,action:E})}):s.push({to:f,action:E})}),o.forEach(({from:m,to:f,action:E})=>{n.add(m),n.add(f),n.add(E+"ing"),r.add(`${m} --> ${E}ing : ${E}`),r.add(`${E}ing --> ${f} : ${E} \u{1F7E2}`),r.add(`${E}ing --> ${m} : ${E} \u{1F534}`)}),s.forEach(({to:m,action:f})=>{r.add(`${f}ing --> ${m} : ${f} \u{1F7E2}`),n.forEach(E=>{E!==m&&r.add(`${E} --> ${f}ing : ${f}`)})});let l=[...r];return Object.defineProperties(t,{stateDiagram:{value:l},allStates:{value:n}}),l}static get(t){let e;return typeof t=="string"?(e=mr.instances.get(t),e||mr.instances.set(t,e=new mr(t,void 0,Object.create(mr.prototype)))):(e=mr.instances2.get(t),e||mr.instances2.set(t,e=new mr(t.constructor.name,void 0,Object.create(mr.prototype)))),e}static getState(t){var e;return(e=mr.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){KI(mr.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Pa.call(this,t)}};jt.STATECHANGED="stateChanged",jt.UPDATEAFSM="updateAFSM",jt.INIT="[*]",jt.ON="on",jt.OFF="off",jt.instances=new Map,jt.instances2=new WeakMap;var on=class extends jt{constructor(){super(...arguments),wr(this,"decoder"),wr(this,"config")}initialize(){return y(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(Yd(Qd({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function eS(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),n=0,c=0,l={wasmBinary:o,postRun:()=>{i=new l.VideoDecoder({videoInfo(m,f){n=m,c=f,console.log("video info",m,f)},yuvData(m,f){let E=n*c,_=E>>2,v=l.HEAPU32[m>>2],k=l.HEAPU32[1+(m>>2)],M=l.HEAPU32[2+(m>>2)],N=l.HEAPU8.subarray(v,v+E),B=l.HEAPU8.subarray(k,k+_),ee=l.HEAPU8.subarray(M,M+_),me=new Uint8Array(E+_+_);me.set(N),me.set(B,E),me.set(ee,E+_);let oe=new VideoFrame(me,{codedWidth:n,codedHeight:c,format:"I420",timestamp:f});e?(s==null||s.drawImage(oe,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:oe},[oe])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(l)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}Ri([co([jt.INIT,"closed"],"initialized")],on.prototype,"initialize",1),Ri([co("initialized","configured",{sync:!0})],on.prototype,"configure",1),Ri([ZI("configured")],on.prototype,"decode",1),Ri([co([],jt.INIT,{sync:!0})],on.prototype,"reset",1),Ri([co([],"closed",{ignoreError:!0,sync:!0})],on.prototype,"close",1);var Oa=class extends jt{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,wr(this,"worker"),wr(this,"decoder"),wr(this,"config"),wr(this,"module",{}),wr(this,"width",0),wr(this,"height",0)}initialize(i){return y(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(eS.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=c=>{if(c.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(c.data.type==="yuvData"){let{videoFrame:l}=c.data;this.emit("videoFrame",l)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],c=this.module.HEAPU8.subarray(o,o+e),l=this.module.HEAPU8.subarray(s,s+r),m=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:c,u:l,v:m,timestamp:t});let f=new Uint8Array(e+r+r);f.set(c),f.set(l,e),f.set(m,e+r),this.emit("videoFrame",new VideoFrame(f,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ri([co([jt.INIT,"closed"],"initialized")],Oa.prototype,"initialize",1),Ri([co("initialized","configured",{sync:!0})],Oa.prototype,"configure",1),Ri([co([],jt.INIT,{sync:!0})],Oa.prototype,"reset",1),Ri([co([],"closed",{sync:!0})],Oa.prototype,"close",1);var tS=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((a,d)=>{e=a,r=d});var s,n,c,l=Object.assign({},o),m="./this.program",f=typeof window=="object",E=typeof importScripts=="function",_=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(f||E)&&(E?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),i&&(_=i),_=_.indexOf("blob:")!==0?_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=a=>{var d=new XMLHttpRequest;return d.open("GET",a,!1),d.send(null),d.responseText},E&&(c=a=>{var d=new XMLHttpRequest;return d.open("GET",a,!1),d.responseType="arraybuffer",d.send(null),new Uint8Array(d.response)}),n=(a,d,p)=>{var h=new XMLHttpRequest;h.open("GET",a,!0),h.responseType="arraybuffer",h.onload=()=>{h.status==200||h.status==0&&h.response?d(h.response):p()},h.onerror=p,h.send(null)});var v,k=o.print||console.log.bind(console),M=o.printErr||console.error.bind(console);Object.assign(o,l),l=null,o.arguments&&o.arguments,o.thisProgram&&(m=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(v=o.wasmBinary);var N,B;o.noExitRuntime,typeof WebAssembly!="object"&&Or("no native wasm support detected");var ee,me,oe,Xe,J,Ue,_o,ln,mn,pn=!1,Mr=[],us=[],wi=[],nr=0,te=null,Qr=null;function ls(a){nr++,o.monitorRunDependencies&&o.monitorRunDependencies(nr)}function To(a){if(nr--,o.monitorRunDependencies&&o.monitorRunDependencies(nr),nr==0&&(te!==null&&(clearInterval(te),te=null),Qr)){var d=Qr;Qr=null,d()}}function Or(a){o.onAbort&&o.onAbort(a),M(a="Aborted("+a+")"),pn=!0,a+=". Build with -sASSERTIONS for more info.";var d=new WebAssembly.RuntimeError(a);throw r(d),d}var Yr,hn,Ee,Ze;function Ot(a){return a.startsWith("data:application/octet-stream;base64,")}function j(a){if(a==Yr&&v)return new Uint8Array(v);if(c)return c(a);throw"both async and sync fetching of the wasm failed"}function xr(a,d,p){return function(h){return v||!f&&!E||typeof fetch!="function"?Promise.resolve().then(()=>j(h)):fetch(h,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+h+"'";return I.arrayBuffer()}).catch(()=>j(h))}(a).then(h=>WebAssembly.instantiate(h,d)).then(h=>h).then(p,h=>{M("failed to asynchronously prepare wasm: "+h),Or(h)})}Ot(Yr="videodec.wasm")||(hn=Yr,Yr=o.locateFile?o.locateFile(hn,_):_+hn);var Mi=a=>{for(;a.length>0;)a.shift()(o)};function Oi(a){this.excPtr=a,this.ptr=a-24,this.set_type=function(d){Ue[this.ptr+4>>2]=d},this.get_type=function(){return Ue[this.ptr+4>>2]},this.set_destructor=function(d){Ue[this.ptr+8>>2]=d},this.get_destructor=function(){return Ue[this.ptr+8>>2]},this.set_caught=function(d){d=d?1:0,ee[this.ptr+12|0]=d},this.get_caught=function(){return ee[this.ptr+12|0]!=0},this.set_rethrown=function(d){d=d?1:0,ee[this.ptr+13|0]=d},this.get_rethrown=function(){return ee[this.ptr+13|0]!=0},this.init=function(d,p){this.set_adjusted_ptr(0),this.set_type(d),this.set_destructor(p)},this.set_adjusted_ptr=function(d){Ue[this.ptr+16>>2]=d},this.get_adjusted_ptr=function(){return Ue[this.ptr+16>>2]},this.get_exception_ptr=function(){if(yn(this.get_type()))return Ue[this.excPtr>>2];var d=this.get_adjusted_ptr();return d!==0?d:this.excPtr}}var pe={isAbs:a=>a.charAt(0)==="/",splitPath:a=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1),normalizeArray:(a,d)=>{for(var p=0,h=a.length-1;h>=0;h--){var I=a[h];I==="."?a.splice(h,1):I===".."?(a.splice(h,1),p++):p&&(a.splice(h,1),p--)}if(d)for(;p;p--)a.unshift("..");return a},normalize:a=>{var d=pe.isAbs(a),p=a.substr(-1)==="/";return(a=pe.normalizeArray(a.split("/").filter(h=>!!h),!d).join("/"))||d||(a="."),a&&p&&(a+="/"),(d?"/":"")+a},dirname:a=>{var d=pe.splitPath(a),p=d[0],h=d[1];return p||h?(h&&(h=h.substr(0,h.length-1)),p+h):"."},basename:a=>{if(a==="/")return"/";var d=(a=(a=pe.normalize(a)).replace(/\/$/,"")).lastIndexOf("/");return d===-1?a:a.substr(d+1)},join:function(){var a=Array.prototype.slice.call(arguments);return pe.normalize(a.join("/"))},join2:(a,d)=>pe.normalize(a+"/"+d)},fn=a=>(fn=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return d=>crypto.getRandomValues(d);Or("initRandomDevice")})())(a),qt={resolve:function(){for(var a="",d=!1,p=arguments.length-1;p>=-1&&!d;p--){var h=p>=0?arguments[p]:g.cwd();if(typeof h!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!h)return"";a=h+"/"+a,d=pe.isAbs(h)}return(d?"/":"")+(a=pe.normalizeArray(a.split("/").filter(I=>!!I),!d).join("/"))||"."},relative:(a,d)=>{function p(x){for(var Y=0;Y<x.length&&x[Y]==="";Y++);for(var se=x.length-1;se>=0&&x[se]==="";se--);return Y>se?[]:x.slice(Y,se-Y+1)}a=qt.resolve(a).substr(1),d=qt.resolve(d).substr(1);for(var h=p(a.split("/")),I=p(d.split("/")),A=Math.min(h.length,I.length),b=A,R=0;R<A;R++)if(h[R]!==I[R]){b=R;break}var L=[];for(R=b;R<h.length;R++)L.push("..");return(L=L.concat(I.slice(b))).join("/")}},xi=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,xt=(a,d,p)=>{for(var h=d+p,I=d;a[I]&&!(I>=h);)++I;if(I-d>16&&a.buffer&&xi)return xi.decode(a.subarray(d,I));for(var A="";d<I;){var b=a[d++];if(128&b){var R=63&a[d++];if((224&b)!=192){var L=63&a[d++];if((b=(240&b)==224?(15&b)<<12|R<<6|L:(7&b)<<18|R<<12|L<<6|63&a[d++])<65536)A+=String.fromCharCode(b);else{var x=b-65536;A+=String.fromCharCode(55296|x>>10,56320|1023&x)}}else A+=String.fromCharCode((31&b)<<6|R)}else A+=String.fromCharCode(b)}return A},gn=[],Io=a=>{for(var d=0,p=0;p<a.length;++p){var h=a.charCodeAt(p);h<=127?d++:h<=2047?d+=2:h>=55296&&h<=57343?(d+=4,++p):d+=3}return d},So=(a,d,p,h)=>{if(!(h>0))return 0;for(var I=p,A=p+h-1,b=0;b<a.length;++b){var R=a.charCodeAt(b);if(R>=55296&&R<=57343&&(R=65536+((1023&R)<<10)|1023&a.charCodeAt(++b)),R<=127){if(p>=A)break;d[p++]=R}else if(R<=2047){if(p+1>=A)break;d[p++]=192|R>>6,d[p++]=128|63&R}else if(R<=65535){if(p+2>=A)break;d[p++]=224|R>>12,d[p++]=128|R>>6&63,d[p++]=128|63&R}else{if(p+3>=A)break;d[p++]=240|R>>18,d[p++]=128|R>>12&63,d[p++]=128|R>>6&63,d[p++]=128|63&R}}return d[p]=0,p-I};function ms(a,d,p){var h=p>0?p:Io(a)+1,I=new Array(h),A=So(a,I,0,I.length);return d&&(I.length=A),I}var ce={ttys:[],init:function(){},shutdown:function(){},register:function(a,d){ce.ttys[a]={input:[],output:[],ops:d},g.registerDevice(a,ce.stream_ops)},stream_ops:{open:function(a){var d=ce.ttys[a.node.rdev];if(!d)throw new g.ErrnoError(43);a.tty=d,a.seekable=!1},close:function(a){a.tty.ops.fsync(a.tty)},fsync:function(a){a.tty.ops.fsync(a.tty)},read:function(a,d,p,h,I){if(!a.tty||!a.tty.ops.get_char)throw new g.ErrnoError(60);for(var A=0,b=0;b<h;b++){var R;try{R=a.tty.ops.get_char(a.tty)}catch(L){throw new g.ErrnoError(29)}if(R===void 0&&A===0)throw new g.ErrnoError(6);if(R==null)break;A++,d[p+b]=R}return A&&(a.node.timestamp=Date.now()),A},write:function(a,d,p,h,I){if(!a.tty||!a.tty.ops.put_char)throw new g.ErrnoError(60);try{for(var A=0;A<h;A++)a.tty.ops.put_char(a.tty,d[p+A])}catch(b){throw new g.ErrnoError(29)}return h&&(a.node.timestamp=Date.now()),A}},default_tty_ops:{get_char:function(a){return(()=>{if(!gn.length){var d=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(d=window.prompt("Input: "))!==null&&(d+=`
|
|
50
50
|
`):typeof readline=="function"&&(d=readline())!==null&&(d+=`
|
|
51
|
-
`),!d)return null;gn=ms(d,!0)}return gn.shift()})()},put_char:function(a,d){d===null||d===10?(L(xt(a.output,0)),a.output=[]):d!=0&&a.output.push(d)},fsync:function(a){a.output&&a.output.length>0&&(L(xt(a.output,0)),a.output=[])},ioctl_tcgets:function(a){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(a,d,p){return 0},ioctl_tiocgwinsz:function(a){return[24,80]}},default_tty1_ops:{put_char:function(a,d){d===null||d===10?(x(xt(a.output,0)),a.output=[]):d!=0&&a.output.push(d)},fsync:function(a){a.output&&a.output.length>0&&(x(xt(a.output,0)),a.output=[])}}},En=a=>{wr()},ye={ops_table:null,mount:a=>ye.createNode(null,"/",16895,0),createNode(a,d,p,h){if(f.isBlkdev(p)||f.isFIFO(p))throw new f.ErrnoError(63);ye.ops_table||(ye.ops_table={dir:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,lookup:ye.node_ops.lookup,mknod:ye.node_ops.mknod,rename:ye.node_ops.rename,unlink:ye.node_ops.unlink,rmdir:ye.node_ops.rmdir,readdir:ye.node_ops.readdir,symlink:ye.node_ops.symlink},stream:{llseek:ye.stream_ops.llseek}},file:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:{llseek:ye.stream_ops.llseek,read:ye.stream_ops.read,write:ye.stream_ops.write,allocate:ye.stream_ops.allocate,mmap:ye.stream_ops.mmap,msync:ye.stream_ops.msync}},link:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr,readlink:ye.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ye.node_ops.getattr,setattr:ye.node_ops.setattr},stream:f.chrdev_stream_ops}});var I=f.createNode(a,d,p,h);return f.isDir(I.mode)?(I.node_ops=ye.ops_table.dir.node,I.stream_ops=ye.ops_table.dir.stream,I.contents={}):f.isFile(I.mode)?(I.node_ops=ye.ops_table.file.node,I.stream_ops=ye.ops_table.file.stream,I.usedBytes=0,I.contents=null):f.isLink(I.mode)?(I.node_ops=ye.ops_table.link.node,I.stream_ops=ye.ops_table.link.stream):f.isChrdev(I.mode)&&(I.node_ops=ye.ops_table.chrdev.node,I.stream_ops=ye.ops_table.chrdev.stream),I.timestamp=Date.now(),a&&(a.contents[d]=I,a.timestamp=I.timestamp),I},getFileDataAsTypedArray:a=>a.contents?a.contents.subarray?a.contents.subarray(0,a.usedBytes):new Uint8Array(a.contents):new Uint8Array(0),expandFileStorage(a,d){var p=a.contents?a.contents.length:0;if(!(p>=d)){d=Math.max(d,p*(p<1048576?2:1.125)>>>0),p!=0&&(d=Math.max(d,256));var h=a.contents;a.contents=new Uint8Array(d),a.usedBytes>0&&a.contents.set(h.subarray(0,a.usedBytes),0)}},resizeFileStorage(a,d){if(a.usedBytes!=d)if(d==0)a.contents=null,a.usedBytes=0;else{var p=a.contents;a.contents=new Uint8Array(d),p&&a.contents.set(p.subarray(0,Math.min(d,a.usedBytes))),a.usedBytes=d}},node_ops:{getattr(a){var d={};return d.dev=f.isChrdev(a.mode)?a.id:1,d.ino=a.id,d.mode=a.mode,d.nlink=1,d.uid=0,d.gid=0,d.rdev=a.rdev,f.isDir(a.mode)?d.size=4096:f.isFile(a.mode)?d.size=a.usedBytes:f.isLink(a.mode)?d.size=a.link.length:d.size=0,d.atime=new Date(a.timestamp),d.mtime=new Date(a.timestamp),d.ctime=new Date(a.timestamp),d.blksize=4096,d.blocks=Math.ceil(d.size/d.blksize),d},setattr(a,d){d.mode!==void 0&&(a.mode=d.mode),d.timestamp!==void 0&&(a.timestamp=d.timestamp),d.size!==void 0&&ye.resizeFileStorage(a,d.size)},lookup(a,d){throw f.genericErrors[44]},mknod:(a,d,p,h)=>ye.createNode(a,d,p,h),rename(a,d,p){if(f.isDir(a.mode)){var h;try{h=f.lookupNode(d,p)}catch(y){}if(h)for(var I in h.contents)throw new f.ErrnoError(55)}delete a.parent.contents[a.name],a.parent.timestamp=Date.now(),a.name=p,d.contents[p]=a,d.timestamp=a.parent.timestamp,a.parent=d},unlink(a,d){delete a.contents[d],a.timestamp=Date.now()},rmdir(a,d){var p=f.lookupNode(a,d);for(var h in p.contents)throw new f.ErrnoError(55);delete a.contents[d],a.timestamp=Date.now()},readdir(a){var d=[".",".."];for(var p in a.contents)a.contents.hasOwnProperty(p)&&d.push(p);return d},symlink(a,d,p){var h=ye.createNode(a,d,41471,0);return h.link=p,h},readlink(a){if(!f.isLink(a.mode))throw new f.ErrnoError(28);return a.link}},stream_ops:{read(a,d,p,h,I){var y=a.node.contents;if(I>=a.node.usedBytes)return 0;var b=Math.min(a.node.usedBytes-I,h);if(b>8&&y.subarray)d.set(y.subarray(I,I+b),p);else for(var R=0;R<b;R++)d[p+R]=y[I+R];return b},write(a,d,p,h,I,y){if(!h)return 0;var b=a.node;if(b.timestamp=Date.now(),d.subarray&&(!b.contents||b.contents.subarray)){if(y)return b.contents=d.subarray(p,p+h),b.usedBytes=h,h;if(b.usedBytes===0&&I===0)return b.contents=d.slice(p,p+h),b.usedBytes=h,h;if(I+h<=b.usedBytes)return b.contents.set(d.subarray(p,p+h),I),h}if(ye.expandFileStorage(b,I+h),b.contents.subarray&&d.subarray)b.contents.set(d.subarray(p,p+h),I);else for(var R=0;R<h;R++)b.contents[I+R]=d[p+R];return b.usedBytes=Math.max(b.usedBytes,I+h),h},llseek(a,d,p){var h=d;if(p===1?h+=a.position:p===2&&f.isFile(a.node.mode)&&(h+=a.node.usedBytes),h<0)throw new f.ErrnoError(28);return h},allocate(a,d,p){ye.expandFileStorage(a.node,d+p),a.node.usedBytes=Math.max(a.node.usedBytes,d+p)},mmap(a,d,p,h,I){if(!f.isFile(a.node.mode))throw new f.ErrnoError(43);var y,b,R=a.node.contents;if(2&I||R.buffer!==ee.buffer){if((p>0||p+d<R.length)&&(R=R.subarray?R.subarray(p,p+d):Array.prototype.slice.call(R,p,p+d)),b=!0,!(y=En()))throw new f.ErrnoError(48);ee.set(R,y)}else b=!1,y=R.byteOffset;return{ptr:y,allocated:b}},msync:(a,d,p,h,I)=>(ye.stream_ops.write(a,d,0,h,p,!1),0)}},ku=(a,d,p,h)=>{var I=h?"":`al ${a}`;n(a,y=>{var b;b=`Loading data file "${a}" failed (no arrayBuffer).`,y||wr(b),d(new Uint8Array(y)),I&&To()},y=>{if(!p)throw`Loading data file "${a}" failed.`;p()}),I&&ls()},Lu=o.preloadPlugins||[];function Yr(a,d){var p=0;return a&&(p|=365),d&&(p|=146),p}var f={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(a,d={})=>{if(!(a=qt.resolve(a)))return{path:"",node:null};if((d=Object.assign({follow_mount:!0,recurse_count:0},d)).recurse_count>8)throw new f.ErrnoError(32);for(var p=a.split("/").filter(O=>!!O),h=f.root,I="/",y=0;y<p.length;y++){var b=y===p.length-1;if(b&&d.parent)break;if(h=f.lookupNode(h,p[y]),I=me.join2(I,p[y]),f.isMountpoint(h)&&(!b||b&&d.follow_mount)&&(h=h.mounted.root),!b||d.follow)for(var R=0;f.isLink(h.mode);){var k=f.readlink(I);if(I=qt.resolve(me.dirname(I),k),h=f.lookupPath(I,{recurse_count:d.recurse_count+1}).node,R++>40)throw new f.ErrnoError(32)}}return{path:I,node:h}},getPath:a=>{for(var d;;){if(f.isRoot(a)){var p=a.mount.mountpoint;return d?p[p.length-1]!=="/"?`${p}/${d}`:p+d:p}d=d?`${a.name}/${d}`:a.name,a=a.parent}},hashName:(a,d)=>{for(var p=0,h=0;h<d.length;h++)p=(p<<5)-p+d.charCodeAt(h)|0;return(a+p>>>0)%f.nameTable.length},hashAddNode:a=>{var d=f.hashName(a.parent.id,a.name);a.name_next=f.nameTable[d],f.nameTable[d]=a},hashRemoveNode:a=>{var d=f.hashName(a.parent.id,a.name);if(f.nameTable[d]===a)f.nameTable[d]=a.name_next;else for(var p=f.nameTable[d];p;){if(p.name_next===a){p.name_next=a.name_next;break}p=p.name_next}},lookupNode:(a,d)=>{var p=f.mayLookup(a);if(p)throw new f.ErrnoError(p,a);for(var h=f.hashName(a.id,d),I=f.nameTable[h];I;I=I.name_next){var y=I.name;if(I.parent.id===a.id&&y===d)return I}return f.lookup(a,d)},createNode:(a,d,p,h)=>{var I=new f.FSNode(a,d,p,h);return f.hashAddNode(I),I},destroyNode:a=>{f.hashRemoveNode(a)},isRoot:a=>a===a.parent,isMountpoint:a=>!!a.mounted,isFile:a=>(61440&a)==32768,isDir:a=>(61440&a)==16384,isLink:a=>(61440&a)==40960,isChrdev:a=>(61440&a)==8192,isBlkdev:a=>(61440&a)==24576,isFIFO:a=>(61440&a)==4096,isSocket:a=>!(49152&~a),flagsToPermissionString:a=>{var d=["r","w","rw"][3&a];return 512&a&&(d+="w"),d},nodePermissions:(a,d)=>f.ignorePermissions||(!d.includes("r")||292&a.mode)&&(!d.includes("w")||146&a.mode)&&(!d.includes("x")||73&a.mode)?0:2,mayLookup:a=>{var d=f.nodePermissions(a,"x");return d||(a.node_ops.lookup?0:2)},mayCreate:(a,d)=>{try{return f.lookupNode(a,d),20}catch(p){}return f.nodePermissions(a,"wx")},mayDelete:(a,d,p)=>{var h;try{h=f.lookupNode(a,d)}catch(y){return y.errno}var I=f.nodePermissions(a,"wx");if(I)return I;if(p){if(!f.isDir(h.mode))return 54;if(f.isRoot(h)||f.getPath(h)===f.cwd())return 10}else if(f.isDir(h.mode))return 31;return 0},mayOpen:(a,d)=>a?f.isLink(a.mode)?32:f.isDir(a.mode)&&(f.flagsToPermissionString(d)!=="r"||512&d)?31:f.nodePermissions(a,f.flagsToPermissionString(d)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var a=0;a<=f.MAX_OPEN_FDS;a++)if(!f.streams[a])return a;throw new f.ErrnoError(33)},getStreamChecked:a=>{var d=f.getStream(a);if(!d)throw new f.ErrnoError(8);return d},getStream:a=>f.streams[a],createStream:(a,d=-1)=>(f.FSStream||(f.FSStream=function(){this.shared={}},f.FSStream.prototype={},Object.defineProperties(f.FSStream.prototype,{object:{get(){return this.node},set(p){this.node=p}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(p){this.shared.flags=p}},position:{get(){return this.shared.position},set(p){this.shared.position=p}}})),a=Object.assign(new f.FSStream,a),d==-1&&(d=f.nextfd()),a.fd=d,f.streams[d]=a,a),closeStream:a=>{f.streams[a]=null},chrdev_stream_ops:{open:a=>{var d=f.getDevice(a.node.rdev);a.stream_ops=d.stream_ops,a.stream_ops.open&&a.stream_ops.open(a)},llseek:()=>{throw new f.ErrnoError(70)}},major:a=>a>>8,minor:a=>255&a,makedev:(a,d)=>a<<8|d,registerDevice:(a,d)=>{f.devices[a]={stream_ops:d}},getDevice:a=>f.devices[a],getMounts:a=>{for(var d=[],p=[a];p.length;){var h=p.pop();d.push(h),p.push.apply(p,h.mounts)}return d},syncfs:(a,d)=>{typeof a=="function"&&(d=a,a=!1),f.syncFSRequests++,f.syncFSRequests>1&&x(`warning: ${f.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var p=f.getMounts(f.root.mount),h=0;function I(b){return f.syncFSRequests--,d(b)}function y(b){if(b)return y.errored?void 0:(y.errored=!0,I(b));++h>=p.length&&I(null)}p.forEach(b=>{if(!b.type.syncfs)return y(null);b.type.syncfs(b,a,y)})},mount:(a,d,p)=>{var h,I=p==="/",y=!p;if(I&&f.root)throw new f.ErrnoError(10);if(!I&&!y){var b=f.lookupPath(p,{follow_mount:!1});if(p=b.path,h=b.node,f.isMountpoint(h))throw new f.ErrnoError(10);if(!f.isDir(h.mode))throw new f.ErrnoError(54)}var R={type:a,opts:d,mountpoint:p,mounts:[]},k=a.mount(R);return k.mount=R,R.root=k,I?f.root=k:h&&(h.mounted=R,h.mount&&h.mount.mounts.push(R)),k},unmount:a=>{var d=f.lookupPath(a,{follow_mount:!1});if(!f.isMountpoint(d.node))throw new f.ErrnoError(28);var p=d.node,h=p.mounted,I=f.getMounts(h);Object.keys(f.nameTable).forEach(b=>{for(var R=f.nameTable[b];R;){var k=R.name_next;I.includes(R.mount)&&f.destroyNode(R),R=k}}),p.mounted=null;var y=p.mount.mounts.indexOf(h);p.mount.mounts.splice(y,1)},lookup:(a,d)=>a.node_ops.lookup(a,d),mknod:(a,d,p)=>{var h=f.lookupPath(a,{parent:!0}).node,I=me.basename(a);if(!I||I==="."||I==="..")throw new f.ErrnoError(28);var y=f.mayCreate(h,I);if(y)throw new f.ErrnoError(y);if(!h.node_ops.mknod)throw new f.ErrnoError(63);return h.node_ops.mknod(h,I,d,p)},create:(a,d)=>(d=d!==void 0?d:438,d&=4095,d|=32768,f.mknod(a,d,0)),mkdir:(a,d)=>(d=d!==void 0?d:511,d&=1023,d|=16384,f.mknod(a,d,0)),mkdirTree:(a,d)=>{for(var p=a.split("/"),h="",I=0;I<p.length;++I)if(p[I]){h+="/"+p[I];try{f.mkdir(h,d)}catch(y){if(y.errno!=20)throw y}}},mkdev:(a,d,p)=>(p===void 0&&(p=d,d=438),d|=8192,f.mknod(a,d,p)),symlink:(a,d)=>{if(!qt.resolve(a))throw new f.ErrnoError(44);var p=f.lookupPath(d,{parent:!0}).node;if(!p)throw new f.ErrnoError(44);var h=me.basename(d),I=f.mayCreate(p,h);if(I)throw new f.ErrnoError(I);if(!p.node_ops.symlink)throw new f.ErrnoError(63);return p.node_ops.symlink(p,h,a)},rename:(a,d)=>{var p,h,I=me.dirname(a),y=me.dirname(d),b=me.basename(a),R=me.basename(d);if(p=f.lookupPath(a,{parent:!0}).node,h=f.lookupPath(d,{parent:!0}).node,!p||!h)throw new f.ErrnoError(44);if(p.mount!==h.mount)throw new f.ErrnoError(75);var k,O=f.lookupNode(p,b),Y=qt.relative(a,y);if(Y.charAt(0)!==".")throw new f.ErrnoError(28);if((Y=qt.relative(d,I)).charAt(0)!==".")throw new f.ErrnoError(55);try{k=f.lookupNode(h,R)}catch(ie){}if(O!==k){var oe=f.isDir(O.mode),se=f.mayDelete(p,b,oe);if(se)throw new f.ErrnoError(se);if(se=k?f.mayDelete(h,R,oe):f.mayCreate(h,R))throw new f.ErrnoError(se);if(!p.node_ops.rename)throw new f.ErrnoError(63);if(f.isMountpoint(O)||k&&f.isMountpoint(k))throw new f.ErrnoError(10);if(h!==p&&(se=f.nodePermissions(p,"w")))throw new f.ErrnoError(se);f.hashRemoveNode(O);try{p.node_ops.rename(O,h,R)}catch(ie){throw ie}finally{f.hashAddNode(O)}}},rmdir:a=>{var d=f.lookupPath(a,{parent:!0}).node,p=me.basename(a),h=f.lookupNode(d,p),I=f.mayDelete(d,p,!0);if(I)throw new f.ErrnoError(I);if(!d.node_ops.rmdir)throw new f.ErrnoError(63);if(f.isMountpoint(h))throw new f.ErrnoError(10);d.node_ops.rmdir(d,p),f.destroyNode(h)},readdir:a=>{var d=f.lookupPath(a,{follow:!0}).node;if(!d.node_ops.readdir)throw new f.ErrnoError(54);return d.node_ops.readdir(d)},unlink:a=>{var d=f.lookupPath(a,{parent:!0}).node;if(!d)throw new f.ErrnoError(44);var p=me.basename(a),h=f.lookupNode(d,p),I=f.mayDelete(d,p,!1);if(I)throw new f.ErrnoError(I);if(!d.node_ops.unlink)throw new f.ErrnoError(63);if(f.isMountpoint(h))throw new f.ErrnoError(10);d.node_ops.unlink(d,p),f.destroyNode(h)},readlink:a=>{var d=f.lookupPath(a).node;if(!d)throw new f.ErrnoError(44);if(!d.node_ops.readlink)throw new f.ErrnoError(28);return qt.resolve(f.getPath(d.parent),d.node_ops.readlink(d))},stat:(a,d)=>{var p=f.lookupPath(a,{follow:!d}).node;if(!p)throw new f.ErrnoError(44);if(!p.node_ops.getattr)throw new f.ErrnoError(63);return p.node_ops.getattr(p)},lstat:a=>f.stat(a,!0),chmod:(a,d,p)=>{var h;if(typeof a=="string"?h=f.lookupPath(a,{follow:!p}).node:h=a,!h.node_ops.setattr)throw new f.ErrnoError(63);h.node_ops.setattr(h,{mode:4095&d|-4096&h.mode,timestamp:Date.now()})},lchmod:(a,d)=>{f.chmod(a,d,!0)},fchmod:(a,d)=>{var p=f.getStreamChecked(a);f.chmod(p.node,d)},chown:(a,d,p,h)=>{var I;if(typeof a=="string"?I=f.lookupPath(a,{follow:!h}).node:I=a,!I.node_ops.setattr)throw new f.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(a,d,p)=>{f.chown(a,d,p,!0)},fchown:(a,d,p)=>{var h=f.getStreamChecked(a);f.chown(h.node,d,p)},truncate:(a,d)=>{if(d<0)throw new f.ErrnoError(28);var p;if(typeof a=="string"?p=f.lookupPath(a,{follow:!0}).node:p=a,!p.node_ops.setattr)throw new f.ErrnoError(63);if(f.isDir(p.mode))throw new f.ErrnoError(31);if(!f.isFile(p.mode))throw new f.ErrnoError(28);var h=f.nodePermissions(p,"w");if(h)throw new f.ErrnoError(h);p.node_ops.setattr(p,{size:d,timestamp:Date.now()})},ftruncate:(a,d)=>{var p=f.getStreamChecked(a);if(!(2097155&p.flags))throw new f.ErrnoError(28);f.truncate(p.node,d)},utime:(a,d,p)=>{var h=f.lookupPath(a,{follow:!0}).node;h.node_ops.setattr(h,{timestamp:Math.max(d,p)})},open:(a,d,p)=>{if(a==="")throw new f.ErrnoError(44);var h;if(p=p===void 0?438:p,p=64&(d=typeof d=="string"?function(R){var k={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[R];if(k===void 0)throw new Error(`Unknown file open mode: ${R}`);return k}(d):d)?4095&p|32768:0,typeof a=="object")h=a;else{a=me.normalize(a);try{h=f.lookupPath(a,{follow:!(131072&d)}).node}catch(R){}}var I=!1;if(64&d)if(h){if(128&d)throw new f.ErrnoError(20)}else h=f.mknod(a,p,0),I=!0;if(!h)throw new f.ErrnoError(44);if(f.isChrdev(h.mode)&&(d&=-513),65536&d&&!f.isDir(h.mode))throw new f.ErrnoError(54);if(!I){var y=f.mayOpen(h,d);if(y)throw new f.ErrnoError(y)}512&d&&!I&&f.truncate(h,0),d&=-131713;var b=f.createStream({node:h,path:f.getPath(h),flags:d,seekable:!0,position:0,stream_ops:h.stream_ops,ungotten:[],error:!1});return b.stream_ops.open&&b.stream_ops.open(b),!o.logReadFiles||1&d||(f.readFiles||(f.readFiles={}),a in f.readFiles||(f.readFiles[a]=1)),b},close:a=>{if(f.isClosed(a))throw new f.ErrnoError(8);a.getdents&&(a.getdents=null);try{a.stream_ops.close&&a.stream_ops.close(a)}catch(d){throw d}finally{f.closeStream(a.fd)}a.fd=null},isClosed:a=>a.fd===null,llseek:(a,d,p)=>{if(f.isClosed(a))throw new f.ErrnoError(8);if(!a.seekable||!a.stream_ops.llseek)throw new f.ErrnoError(70);if(p!=0&&p!=1&&p!=2)throw new f.ErrnoError(28);return a.position=a.stream_ops.llseek(a,d,p),a.ungotten=[],a.position},read:(a,d,p,h,I)=>{if(h<0||I<0)throw new f.ErrnoError(28);if(f.isClosed(a))throw new f.ErrnoError(8);if((2097155&a.flags)==1)throw new f.ErrnoError(8);if(f.isDir(a.node.mode))throw new f.ErrnoError(31);if(!a.stream_ops.read)throw new f.ErrnoError(28);var y=I!==void 0;if(y){if(!a.seekable)throw new f.ErrnoError(70)}else I=a.position;var b=a.stream_ops.read(a,d,p,h,I);return y||(a.position+=b),b},write:(a,d,p,h,I,y)=>{if(h<0||I<0)throw new f.ErrnoError(28);if(f.isClosed(a))throw new f.ErrnoError(8);if(!(2097155&a.flags))throw new f.ErrnoError(8);if(f.isDir(a.node.mode))throw new f.ErrnoError(31);if(!a.stream_ops.write)throw new f.ErrnoError(28);a.seekable&&1024&a.flags&&f.llseek(a,0,2);var b=I!==void 0;if(b){if(!a.seekable)throw new f.ErrnoError(70)}else I=a.position;var R=a.stream_ops.write(a,d,p,h,I,y);return b||(a.position+=R),R},allocate:(a,d,p)=>{if(f.isClosed(a))throw new f.ErrnoError(8);if(d<0||p<=0)throw new f.ErrnoError(28);if(!(2097155&a.flags))throw new f.ErrnoError(8);if(!f.isFile(a.node.mode)&&!f.isDir(a.node.mode))throw new f.ErrnoError(43);if(!a.stream_ops.allocate)throw new f.ErrnoError(138);a.stream_ops.allocate(a,d,p)},mmap:(a,d,p,h,I)=>{if(2&h&&!(2&I)&&(2097155&a.flags)!=2)throw new f.ErrnoError(2);if((2097155&a.flags)==1)throw new f.ErrnoError(2);if(!a.stream_ops.mmap)throw new f.ErrnoError(43);return a.stream_ops.mmap(a,d,p,h,I)},msync:(a,d,p,h,I)=>a.stream_ops.msync?a.stream_ops.msync(a,d,p,h,I):0,munmap:a=>0,ioctl:(a,d,p)=>{if(!a.stream_ops.ioctl)throw new f.ErrnoError(59);return a.stream_ops.ioctl(a,d,p)},readFile:(a,d={})=>{if(d.flags=d.flags||0,d.encoding=d.encoding||"binary",d.encoding!=="utf8"&&d.encoding!=="binary")throw new Error(`Invalid encoding type "${d.encoding}"`);var p,h=f.open(a,d.flags),I=f.stat(a).size,y=new Uint8Array(I);return f.read(h,y,0,I,0),d.encoding==="utf8"?p=xt(y,0):d.encoding==="binary"&&(p=y),f.close(h),p},writeFile:(a,d,p={})=>{p.flags=p.flags||577;var h=f.open(a,p.flags,p.mode);if(typeof d=="string"){var I=new Uint8Array(Io(d)+1),y=So(d,I,0,I.length);f.write(h,I,0,y,void 0,p.canOwn)}else{if(!ArrayBuffer.isView(d))throw new Error("Unsupported data type");f.write(h,d,0,d.byteLength,void 0,p.canOwn)}f.close(h)},cwd:()=>f.currentPath,chdir:a=>{var d=f.lookupPath(a,{follow:!0});if(d.node===null)throw new f.ErrnoError(44);if(!f.isDir(d.node.mode))throw new f.ErrnoError(54);var p=f.nodePermissions(d.node,"x");if(p)throw new f.ErrnoError(p);f.currentPath=d.path},createDefaultDirectories:()=>{f.mkdir("/tmp"),f.mkdir("/home"),f.mkdir("/home/web_user")},createDefaultDevices:()=>{f.mkdir("/dev"),f.registerDevice(f.makedev(1,3),{read:()=>0,write:(h,I,y,b,R)=>b}),f.mkdev("/dev/null",f.makedev(1,3)),ce.register(f.makedev(5,0),ce.default_tty_ops),ce.register(f.makedev(6,0),ce.default_tty1_ops),f.mkdev("/dev/tty",f.makedev(5,0)),f.mkdev("/dev/tty1",f.makedev(6,0));var a=new Uint8Array(1024),d=0,p=()=>(d===0&&(d=fn(a).byteLength),a[--d]);f.createDevice("/dev","random",p),f.createDevice("/dev","urandom",p),f.mkdir("/dev/shm"),f.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{f.mkdir("/proc");var a=f.mkdir("/proc/self");f.mkdir("/proc/self/fd"),f.mount({mount:()=>{var d=f.createNode(a,"fd",16895,73);return d.node_ops={lookup:(p,h)=>{var I=+h,y=f.getStreamChecked(I),b={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>y.path}};return b.parent=b,b}},d}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?f.createDevice("/dev","stdin",o.stdin):f.symlink("/dev/tty","/dev/stdin"),o.stdout?f.createDevice("/dev","stdout",null,o.stdout):f.symlink("/dev/tty","/dev/stdout"),o.stderr?f.createDevice("/dev","stderr",null,o.stderr):f.symlink("/dev/tty1","/dev/stderr"),f.open("/dev/stdin",0),f.open("/dev/stdout",1),f.open("/dev/stderr",1)},ensureErrnoError:()=>{f.ErrnoError||(f.ErrnoError=function(a,d){this.name="ErrnoError",this.node=d,this.setErrno=function(p){this.errno=p},this.setErrno(a),this.message="FS error"},f.ErrnoError.prototype=new Error,f.ErrnoError.prototype.constructor=f.ErrnoError,[44].forEach(a=>{f.genericErrors[a]=new f.ErrnoError(a),f.genericErrors[a].stack="<generic error, no stack>"}))},staticInit:()=>{f.ensureErrnoError(),f.nameTable=new Array(4096),f.mount(ye,{},"/"),f.createDefaultDirectories(),f.createDefaultDevices(),f.createSpecialDirectories(),f.filesystems={MEMFS:ye}},init:(a,d,p)=>{f.init.initialized=!0,f.ensureErrnoError(),o.stdin=a||o.stdin,o.stdout=d||o.stdout,o.stderr=p||o.stderr,f.createStandardStreams()},quit:()=>{f.init.initialized=!1;for(var a=0;a<f.streams.length;a++){var d=f.streams[a];d&&f.close(d)}},findObject:(a,d)=>{var p=f.analyzePath(a,d);return p.exists?p.object:null},analyzePath:(a,d)=>{try{a=(h=f.lookupPath(a,{follow:!d})).path}catch(I){}var p={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var h=f.lookupPath(a,{parent:!0});p.parentExists=!0,p.parentPath=h.path,p.parentObject=h.node,p.name=me.basename(a),h=f.lookupPath(a,{follow:!d}),p.exists=!0,p.path=h.path,p.object=h.node,p.name=h.node.name,p.isRoot=h.path==="/"}catch(I){p.error=I.errno}return p},createPath:(a,d,p,h)=>{a=typeof a=="string"?a:f.getPath(a);for(var I=d.split("/").reverse();I.length;){var y=I.pop();if(y){var b=me.join2(a,y);try{f.mkdir(b)}catch(R){}a=b}}return b},createFile:(a,d,p,h,I)=>{var y=me.join2(typeof a=="string"?a:f.getPath(a),d),b=Yr(h,I);return f.create(y,b)},createDataFile:(a,d,p,h,I,y)=>{var b=d;a&&(a=typeof a=="string"?a:f.getPath(a),b=d?me.join2(a,d):a);var R=Yr(h,I),k=f.create(b,R);if(p){if(typeof p=="string"){for(var O=new Array(p.length),Y=0,oe=p.length;Y<oe;++Y)O[Y]=p.charCodeAt(Y);p=O}f.chmod(k,146|R);var se=f.open(k,577);f.write(se,p,0,p.length,0,y),f.close(se),f.chmod(k,R)}return k},createDevice:(a,d,p,h)=>{var I=me.join2(typeof a=="string"?a:f.getPath(a),d),y=Yr(!!p,!!h);f.createDevice.major||(f.createDevice.major=64);var b=f.makedev(f.createDevice.major++,0);return f.registerDevice(b,{open:R=>{R.seekable=!1},close:R=>{h&&h.buffer&&h.buffer.length&&h(10)},read:(R,k,O,Y,oe)=>{for(var se=0,ie=0;ie<Y;ie++){var ve;try{ve=p()}catch(Fe){throw new f.ErrnoError(29)}if(ve===void 0&&se===0)throw new f.ErrnoError(6);if(ve==null)break;se++,k[O+ie]=ve}return se&&(R.node.timestamp=Date.now()),se},write:(R,k,O,Y,oe)=>{for(var se=0;se<Y;se++)try{h(k[O+se])}catch(ie){throw new f.ErrnoError(29)}return Y&&(R.node.timestamp=Date.now()),se}}),f.mkdev(I,y,b)},forceLoadFile:a=>{if(a.isDevice||a.isFolder||a.link||a.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{a.contents=ms(s(a.url),!0),a.usedBytes=a.contents.length}catch(d){throw new f.ErrnoError(29)}},createLazyFile:(a,d,p,h,I)=>{function y(){this.lengthKnown=!1,this.chunks=[]}if(y.prototype.get=function(oe){if(!(oe>this.length-1||oe<0)){var se=oe%this.chunkSize,ie=oe/this.chunkSize|0;return this.getter(ie)[se]}},y.prototype.setDataGetter=function(oe){this.getter=oe},y.prototype.cacheLength=function(){var oe=new XMLHttpRequest;if(oe.open("HEAD",p,!1),oe.send(null),!(oe.status>=200&&oe.status<300||oe.status===304))throw new Error("Couldn't load "+p+". Status: "+oe.status);var se,ie=Number(oe.getResponseHeader("Content-length")),ve=(se=oe.getResponseHeader("Accept-Ranges"))&&se==="bytes",Fe=(se=oe.getResponseHeader("Content-Encoding"))&&se==="gzip",Me=1048576;ve||(Me=ie);var it=this;it.setDataGetter(Ke=>{var gt=Ke*Me,Hi=(Ke+1)*Me-1;if(Hi=Math.min(Hi,ie-1),it.chunks[Ke]===void 0&&(it.chunks[Ke]=((cr,Do)=>{if(cr>Do)throw new Error("invalid range ("+cr+", "+Do+") or no bytes requested!");if(Do>ie-1)throw new Error("only "+ie+" bytes available! programmer error!");var ut=new XMLHttpRequest;if(ut.open("GET",p,!1),ie!==Me&&ut.setRequestHeader("Range","bytes="+cr+"-"+Do),ut.responseType="arraybuffer",ut.overrideMimeType&&ut.overrideMimeType("text/plain; charset=x-user-defined"),ut.send(null),!(ut.status>=200&&ut.status<300||ut.status===304))throw new Error("Couldn't load "+p+". Status: "+ut.status);return ut.response!==void 0?new Uint8Array(ut.response||[]):ms(ut.responseText||"",!0)})(gt,Hi)),it.chunks[Ke]===void 0)throw new Error("doXHR failed!");return it.chunks[Ke]}),!Fe&&ie||(Me=ie=1,ie=this.getter(0).length,Me=ie,L("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ie,this._chunkSize=Me,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!g)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var b=new y;Object.defineProperties(b,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var R={isDevice:!1,contents:b}}else R={isDevice:!1,url:p};var k=f.createFile(a,d,R,h,I);R.contents?k.contents=R.contents:R.url&&(k.contents=null,k.url=R.url),Object.defineProperties(k,{usedBytes:{get:function(){return this.contents.length}}});var O={};function Y(oe,se,ie,ve,Fe){var Me=oe.node.contents;if(Fe>=Me.length)return 0;var it=Math.min(Me.length-Fe,ve);if(Me.slice)for(var Ke=0;Ke<it;Ke++)se[ie+Ke]=Me[Fe+Ke];else for(Ke=0;Ke<it;Ke++)se[ie+Ke]=Me.get(Fe+Ke);return it}return Object.keys(k.stream_ops).forEach(oe=>{var se=k.stream_ops[oe];O[oe]=function(){return f.forceLoadFile(k),se.apply(null,arguments)}}),O.read=(oe,se,ie,ve,Fe)=>(f.forceLoadFile(k),Y(oe,se,ie,ve,Fe)),O.mmap=(oe,se,ie,ve,Fe)=>{f.forceLoadFile(k);var Me=En();if(!Me)throw new f.ErrnoError(48);return Y(oe,ee,Me,se,ie),{ptr:Me,allocated:!0}},k.stream_ops=O,k}},xi=(a,d)=>a?xt(pe,a,d):"",w={DEFAULT_POLLMASK:5,calculateAt:function(a,d,p){if(me.isAbs(d))return d;var h;if(a===-100?h=f.cwd():h=w.getStreamFromFD(a).path,d.length==0){if(!p)throw new f.ErrnoError(44);return h}return me.join2(h,d)},doStat:function(a,d,p){try{var h=a(d)}catch(R){if(R&&R.node&&me.normalize(d)!==me.normalize(f.getPath(R.node)))return-54;throw R}X[p>>2]=h.dev,X[p+4>>2]=h.mode,Ue[p+8>>2]=h.nlink,X[p+12>>2]=h.uid,X[p+16>>2]=h.gid,X[p+20>>2]=h.rdev,Ze=[h.size>>>0,(Ee=h.size,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[p+24>>2]=Ze[0],X[p+28>>2]=Ze[1],X[p+32>>2]=4096,X[p+36>>2]=h.blocks;var I=h.atime.getTime(),y=h.mtime.getTime(),b=h.ctime.getTime();return Ze=[Math.floor(I/1e3)>>>0,(Ee=Math.floor(I/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[p+40>>2]=Ze[0],X[p+44>>2]=Ze[1],Ue[p+48>>2]=I%1e3*1e3,Ze=[Math.floor(y/1e3)>>>0,(Ee=Math.floor(y/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[p+56>>2]=Ze[0],X[p+60>>2]=Ze[1],Ue[p+64>>2]=y%1e3*1e3,Ze=[Math.floor(b/1e3)>>>0,(Ee=Math.floor(b/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[p+72>>2]=Ze[0],X[p+76>>2]=Ze[1],Ue[p+80>>2]=b%1e3*1e3,Ze=[h.ino>>>0,(Ee=h.ino,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[p+88>>2]=Ze[0],X[p+92>>2]=Ze[1],0},doMsync:function(a,d,p,h,I){if(!f.isFile(d.node.mode))throw new f.ErrnoError(43);if(2&h)return 0;var y=pe.slice(a,a+p);f.msync(d,y,I,p,h)},varargs:void 0,get:()=>(w.varargs+=4,X[w.varargs-4>>2]),getStr:a=>xi(a),getStreamFromFD:function(a){return f.getStreamChecked(a)}};function Zr(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${a}`)}}var Ga=void 0;function bt(a){for(var d="",p=a;pe[p];)d+=Ga[pe[p++]];return d}var Pi={},ar={},ps={},ki=void 0;function Ve(a){throw new ki(a)}var ja=void 0;function Yt(a){throw new ja(a)}function xr(a,d,p){function h(R){var k=p(R);k.length!==a.length&&Yt("Mismatched type converter count");for(var O=0;O<a.length;++O)Zt(a[O],k[O])}a.forEach(function(R){ps[R]=d});var I=new Array(d.length),y=[],b=0;d.forEach((R,k)=>{ar.hasOwnProperty(R)?I[k]=ar[R]:(y.push(R),Pi.hasOwnProperty(R)||(Pi[R]=[]),Pi[R].push(()=>{I[k]=ar[R],++b===y.length&&h(I)}))}),y.length===0&&h(I)}function Zt(a,d,p={}){if(!("argPackAdvance"in d))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(h,I,y={}){var b=I.name;if(h||Ve(`type "${b}" must have a positive integer typeid pointer`),ar.hasOwnProperty(h)){if(y.ignoreDuplicateRegistrations)return;Ve(`Cannot register type '${b}' twice`)}if(ar[h]=I,delete ps[h],Pi.hasOwnProperty(h)){var R=Pi[h];delete Pi[h],R.forEach(k=>k())}}(a,d,p)}function qa(a){if(!(this instanceof fr)||!(a instanceof fr))return!1;for(var d=this.$$.ptrType.registeredClass,p=this.$$.ptr,h=a.$$.ptrType.registeredClass,I=a.$$.ptr;d.baseClass;)p=d.upcast(p),d=d.baseClass;for(;h.baseClass;)I=h.upcast(I),h=h.baseClass;return d===h&&p===I}function _n(a){Ve(a.$$.ptrType.registeredClass.name+" instance already deleted")}var Ao=!1;function Ja(a){}function za(a){a.count.value-=1,a.count.value===0&&function(d){d.smartPtr?d.smartPtrType.rawDestructor(d.smartPtr):d.ptrType.registeredClass.rawDestructor(d.ptr)}(a)}function Xa(a,d,p){if(d===p)return a;if(p.baseClass===void 0)return null;var h=Xa(a,d,p.baseClass);return h===null?null:p.downcast(h)}var yo={};function Uu(){return Object.keys(Ro).length}function Vu(){var a=[];for(var d in Ro)Ro.hasOwnProperty(d)&&a.push(Ro[d]);return a}var bo=[];function Kt(){for(;bo.length;){var a=bo.pop();a.$$.deleteScheduled=!1,a.delete()}}var Pr=void 0;function Qa(a){Pr=a,bo.length&&Pr&&Pr(Kt)}var Ro={};function Li(a,d){return d=function(p,h){for(h===void 0&&Ve("ptr should not be undefined");p.baseClass;)h=p.upcast(h),p=p.baseClass;return h}(a,d),Ro[d]}function vo(a,d){return d.ptrType&&d.ptr||Yt("makeClassHandle requires ptr and ptrType"),!!d.smartPtrType!=!!d.smartPtr&&Yt("Both smartPtrType and smartPtr must be specified"),d.count={value:1},Ui(Object.create(a,{$$:{value:d}}))}function Ya(a){var d=this.getPointee(a);if(!d)return this.destructor(a),null;var p=Li(this.registeredClass,d);if(p!==void 0){if(p.$$.count.value===0)return p.$$.ptr=d,p.$$.smartPtr=a,p.clone();var h=p.clone();return this.destructor(a),h}function I(){return this.isSmartPointer?vo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:d,smartPtrType:this,smartPtr:a}):vo(this.registeredClass.instancePrototype,{ptrType:this,ptr:a})}var y,b=this.registeredClass.getActualType(d),R=yo[b];if(!R)return I.call(this);y=this.isConst?R.constPointerType:R.pointerType;var k=Xa(d,this.registeredClass,y.registeredClass);return k===null?I.call(this):this.isSmartPointer?vo(y.registeredClass.instancePrototype,{ptrType:y,ptr:k,smartPtrType:this,smartPtr:a}):vo(y.registeredClass.instancePrototype,{ptrType:y,ptr:k})}var Ui=function(a){return typeof FinalizationRegistry=="undefined"?(Ui=d=>d,a):(Ao=new FinalizationRegistry(d=>{za(d.$$)}),Ja=d=>Ao.unregister(d),(Ui=d=>{var p=d.$$;if(p.smartPtr){var h={$$:p};Ao.register(d,h,d)}return d})(a))};function Za(){if(this.$$.ptr||_n(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var a,d=Ui(Object.create(Object.getPrototypeOf(this),{$$:{value:(a=this.$$,{count:a.count,deleteScheduled:a.deleteScheduled,preservePointerOnDelete:a.preservePointerOnDelete,ptr:a.ptr,ptrType:a.ptrType,smartPtr:a.smartPtr,smartPtrType:a.smartPtrType})}}));return d.$$.count.value+=1,d.$$.deleteScheduled=!1,d}function Fu(){this.$$.ptr||_n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ve("Object already scheduled for deletion"),Ja(this),za(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ka(){return!this.$$.ptr}function ec(){return this.$$.ptr||_n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ve("Object already scheduled for deletion"),bo.push(this),bo.length===1&&Pr&&Pr(Kt),this.$$.deleteScheduled=!0,this}function fr(){}function Pt(a){if(a===void 0)return"_unknown";var d=(a=a.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return d>=48&&d<=57?`_${a}`:a}function hs(a,d){return a=Pt(a),{[a]:function(){return d.apply(this,arguments)}}[a]}function tc(a,d,p){if(a[d].overloadTable===void 0){var h=a[d];a[d]=function(){return a[d].overloadTable.hasOwnProperty(arguments.length)||Ve(`Function '${p}' called with an invalid number of arguments (${arguments.length}) - expects one of (${a[d].overloadTable})!`),a[d].overloadTable[arguments.length].apply(this,arguments)},a[d].overloadTable=[],a[d].overloadTable[h.argCount]=h}}function fs(a,d,p,h,I,y,b,R){this.name=a,this.constructor=d,this.instancePrototype=p,this.rawDestructor=h,this.baseClass=I,this.getActualType=y,this.upcast=b,this.downcast=R,this.pureVirtualFunctions=[]}function Co(a,d,p){for(;d!==p;)d.upcast||Ve(`Expected null or instance of ${p.name}, got an instance of ${d.name}`),a=d.upcast(a),d=d.baseClass;return a}function $u(a,d){if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),0;d.$$||Ve(`Cannot pass "${Ts(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`);var p=d.$$.ptrType.registeredClass;return Co(d.$$.ptr,p,this.registeredClass)}function Bu(a,d){var p;if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),this.isSmartPointer?(p=this.rawConstructor(),a!==null&&a.push(this.rawDestructor,p),p):0;d.$$||Ve(`Cannot pass "${Ts(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&d.$$.ptrType.isConst&&Ve(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);var h=d.$$.ptrType.registeredClass;if(p=Co(d.$$.ptr,h,this.registeredClass),this.isSmartPointer)switch(d.$$.smartPtr===void 0&&Ve("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:d.$$.smartPtrType===this?p=d.$$.smartPtr:Ve(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:p=d.$$.smartPtr;break;case 2:if(d.$$.smartPtrType===this)p=d.$$.smartPtr;else{var I=d.clone();p=this.rawShare(p,$i.toHandle(function(){I.delete()})),a!==null&&a.push(this.rawDestructor,p)}break;default:Ve("Unsupporting sharing policy")}return p}function rc(a,d){if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),0;d.$$||Ve(`Cannot pass "${Ts(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`),d.$$.ptrType.isConst&&Ve(`Cannot convert argument of type ${d.$$.ptrType.name} to parameter type ${this.name}`);var p=d.$$.ptrType.registeredClass;return Co(d.$$.ptr,p,this.registeredClass)}function No(a){return this.fromWireType(X[a>>2])}function Hu(a){return this.rawGetPointee&&(a=this.rawGetPointee(a)),a}function ic(a){this.rawDestructor&&this.rawDestructor(a)}function Wu(a){a!==null&&a.delete()}function gr(a,d,p,h,I,y,b,R,k,O,Y){this.name=a,this.registeredClass=d,this.isReference=p,this.isConst=h,this.isSmartPointer=I,this.pointeeType=y,this.sharingPolicy=b,this.rawGetPointee=R,this.rawConstructor=k,this.rawShare=O,this.rawDestructor=Y,I||d.baseClass!==void 0?this.toWireType=Bu:h?(this.toWireType=$u,this.destructorFunction=null):(this.toWireType=rc,this.destructorFunction=null)}var gs=[],oc=a=>{var d=gs[a];return d||(a>=gs.length&&(gs.length=a+1),gs[a]=d=mn.get(a)),d},Gu=(a,d,p)=>a.includes("j")?((h,I,y)=>{var b=o["dynCall_"+h];return y&&y.length?b.apply(null,[I].concat(y)):b.call(null,I)})(a,d,p):oc(d).apply(null,p);function Vi(a,d){var p,h,I,y=(a=bt(a)).includes("j")?(p=a,h=d,I=[],function(){return I.length=0,Object.assign(I,arguments),Gu(p,h,I)}):oc(d);return typeof y!="function"&&Ve(`unknown function pointer with signature ${a}: ${d}`),y}var sc=void 0;function Es(a){var d=_r(a),p=bt(d);return Rt(d),p}function _s(a,d){var p=[],h={};throw d.forEach(function I(y){h[y]||ar[y]||(ps[y]?ps[y].forEach(I):(p.push(y),h[y]=!0))}),new sc(`${a}: `+p.map(Es).join([", "]))}function Tn(a,d){for(var p=[],h=0;h<a;h++)p.push(Ue[d+4*h>>2]);return p}function nc(a){for(;a.length;){var d=a.pop();a.pop()(d)}}function In(a,d){if(!(a instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof a} which is not a function`);var p=hs(a.name||"unknownFunctionName",function(){});p.prototype=a.prototype;var h=new p,I=a.apply(h,d);return I instanceof Object?I:h}function Fi(a,d,p,h,I,y){var b=d.length;b<2&&Ve("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var R=d[1]!==null&&p!==null,k=!1,O=1;O<d.length;++O)if(d[O]!==null&&d[O].destructorFunction===void 0){k=!0;break}var Y=d[0].name!=="void",oe="",se="";for(O=0;O<b-2;++O)oe+=(O!==0?", ":"")+"arg"+O,se+=(O!==0?", ":"")+"arg"+O+"Wired";var ie=`
|
|
52
|
-
return function ${Pt(a)}(${
|
|
51
|
+
`),!d)return null;gn=ms(d,!0)}return gn.shift()})()},put_char:function(a,d){d===null||d===10?(k(xt(a.output,0)),a.output=[]):d!=0&&a.output.push(d)},fsync:function(a){a.output&&a.output.length>0&&(k(xt(a.output,0)),a.output=[])},ioctl_tcgets:function(a){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(a,d,p){return 0},ioctl_tiocgwinsz:function(a){return[24,80]}},default_tty1_ops:{put_char:function(a,d){d===null||d===10?(M(xt(a.output,0)),a.output=[]):d!=0&&a.output.push(d)},fsync:function(a){a.output&&a.output.length>0&&(M(xt(a.output,0)),a.output=[])}}},En=a=>{Or()},Ae={ops_table:null,mount:a=>Ae.createNode(null,"/",16895,0),createNode(a,d,p,h){if(g.isBlkdev(p)||g.isFIFO(p))throw new g.ErrnoError(63);Ae.ops_table||(Ae.ops_table={dir:{node:{getattr:Ae.node_ops.getattr,setattr:Ae.node_ops.setattr,lookup:Ae.node_ops.lookup,mknod:Ae.node_ops.mknod,rename:Ae.node_ops.rename,unlink:Ae.node_ops.unlink,rmdir:Ae.node_ops.rmdir,readdir:Ae.node_ops.readdir,symlink:Ae.node_ops.symlink},stream:{llseek:Ae.stream_ops.llseek}},file:{node:{getattr:Ae.node_ops.getattr,setattr:Ae.node_ops.setattr},stream:{llseek:Ae.stream_ops.llseek,read:Ae.stream_ops.read,write:Ae.stream_ops.write,allocate:Ae.stream_ops.allocate,mmap:Ae.stream_ops.mmap,msync:Ae.stream_ops.msync}},link:{node:{getattr:Ae.node_ops.getattr,setattr:Ae.node_ops.setattr,readlink:Ae.node_ops.readlink},stream:{}},chrdev:{node:{getattr:Ae.node_ops.getattr,setattr:Ae.node_ops.setattr},stream:g.chrdev_stream_ops}});var I=g.createNode(a,d,p,h);return g.isDir(I.mode)?(I.node_ops=Ae.ops_table.dir.node,I.stream_ops=Ae.ops_table.dir.stream,I.contents={}):g.isFile(I.mode)?(I.node_ops=Ae.ops_table.file.node,I.stream_ops=Ae.ops_table.file.stream,I.usedBytes=0,I.contents=null):g.isLink(I.mode)?(I.node_ops=Ae.ops_table.link.node,I.stream_ops=Ae.ops_table.link.stream):g.isChrdev(I.mode)&&(I.node_ops=Ae.ops_table.chrdev.node,I.stream_ops=Ae.ops_table.chrdev.stream),I.timestamp=Date.now(),a&&(a.contents[d]=I,a.timestamp=I.timestamp),I},getFileDataAsTypedArray:a=>a.contents?a.contents.subarray?a.contents.subarray(0,a.usedBytes):new Uint8Array(a.contents):new Uint8Array(0),expandFileStorage(a,d){var p=a.contents?a.contents.length:0;if(!(p>=d)){d=Math.max(d,p*(p<1048576?2:1.125)>>>0),p!=0&&(d=Math.max(d,256));var h=a.contents;a.contents=new Uint8Array(d),a.usedBytes>0&&a.contents.set(h.subarray(0,a.usedBytes),0)}},resizeFileStorage(a,d){if(a.usedBytes!=d)if(d==0)a.contents=null,a.usedBytes=0;else{var p=a.contents;a.contents=new Uint8Array(d),p&&a.contents.set(p.subarray(0,Math.min(d,a.usedBytes))),a.usedBytes=d}},node_ops:{getattr(a){var d={};return d.dev=g.isChrdev(a.mode)?a.id:1,d.ino=a.id,d.mode=a.mode,d.nlink=1,d.uid=0,d.gid=0,d.rdev=a.rdev,g.isDir(a.mode)?d.size=4096:g.isFile(a.mode)?d.size=a.usedBytes:g.isLink(a.mode)?d.size=a.link.length:d.size=0,d.atime=new Date(a.timestamp),d.mtime=new Date(a.timestamp),d.ctime=new Date(a.timestamp),d.blksize=4096,d.blocks=Math.ceil(d.size/d.blksize),d},setattr(a,d){d.mode!==void 0&&(a.mode=d.mode),d.timestamp!==void 0&&(a.timestamp=d.timestamp),d.size!==void 0&&Ae.resizeFileStorage(a,d.size)},lookup(a,d){throw g.genericErrors[44]},mknod:(a,d,p,h)=>Ae.createNode(a,d,p,h),rename(a,d,p){if(g.isDir(a.mode)){var h;try{h=g.lookupNode(d,p)}catch(A){}if(h)for(var I in h.contents)throw new g.ErrnoError(55)}delete a.parent.contents[a.name],a.parent.timestamp=Date.now(),a.name=p,d.contents[p]=a,d.timestamp=a.parent.timestamp,a.parent=d},unlink(a,d){delete a.contents[d],a.timestamp=Date.now()},rmdir(a,d){var p=g.lookupNode(a,d);for(var h in p.contents)throw new g.ErrnoError(55);delete a.contents[d],a.timestamp=Date.now()},readdir(a){var d=[".",".."];for(var p in a.contents)a.contents.hasOwnProperty(p)&&d.push(p);return d},symlink(a,d,p){var h=Ae.createNode(a,d,41471,0);return h.link=p,h},readlink(a){if(!g.isLink(a.mode))throw new g.ErrnoError(28);return a.link}},stream_ops:{read(a,d,p,h,I){var A=a.node.contents;if(I>=a.node.usedBytes)return 0;var b=Math.min(a.node.usedBytes-I,h);if(b>8&&A.subarray)d.set(A.subarray(I,I+b),p);else for(var R=0;R<b;R++)d[p+R]=A[I+R];return b},write(a,d,p,h,I,A){if(!h)return 0;var b=a.node;if(b.timestamp=Date.now(),d.subarray&&(!b.contents||b.contents.subarray)){if(A)return b.contents=d.subarray(p,p+h),b.usedBytes=h,h;if(b.usedBytes===0&&I===0)return b.contents=d.slice(p,p+h),b.usedBytes=h,h;if(I+h<=b.usedBytes)return b.contents.set(d.subarray(p,p+h),I),h}if(Ae.expandFileStorage(b,I+h),b.contents.subarray&&d.subarray)b.contents.set(d.subarray(p,p+h),I);else for(var R=0;R<h;R++)b.contents[I+R]=d[p+R];return b.usedBytes=Math.max(b.usedBytes,I+h),h},llseek(a,d,p){var h=d;if(p===1?h+=a.position:p===2&&g.isFile(a.node.mode)&&(h+=a.node.usedBytes),h<0)throw new g.ErrnoError(28);return h},allocate(a,d,p){Ae.expandFileStorage(a.node,d+p),a.node.usedBytes=Math.max(a.node.usedBytes,d+p)},mmap(a,d,p,h,I){if(!g.isFile(a.node.mode))throw new g.ErrnoError(43);var A,b,R=a.node.contents;if(2&I||R.buffer!==ee.buffer){if((p>0||p+d<R.length)&&(R=R.subarray?R.subarray(p,p+d):Array.prototype.slice.call(R,p,p+d)),b=!0,!(A=En()))throw new g.ErrnoError(48);ee.set(R,A)}else b=!1,A=R.byteOffset;return{ptr:A,allocated:b}},msync:(a,d,p,h,I)=>(Ae.stream_ops.write(a,d,0,h,p,!1),0)}},Uu=(a,d,p,h)=>{var I=h?"":`al ${a}`;n(a,A=>{var b;b=`Loading data file "${a}" failed (no arrayBuffer).`,A||Or(b),d(new Uint8Array(A)),I&&To()},A=>{if(!p)throw`Loading data file "${a}" failed.`;p()}),I&&ls()},Vu=o.preloadPlugins||[];function Zr(a,d){var p=0;return a&&(p|=365),d&&(p|=146),p}var g={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(a,d={})=>{if(!(a=qt.resolve(a)))return{path:"",node:null};if((d=Object.assign({follow_mount:!0,recurse_count:0},d)).recurse_count>8)throw new g.ErrnoError(32);for(var p=a.split("/").filter(x=>!!x),h=g.root,I="/",A=0;A<p.length;A++){var b=A===p.length-1;if(b&&d.parent)break;if(h=g.lookupNode(h,p[A]),I=pe.join2(I,p[A]),g.isMountpoint(h)&&(!b||b&&d.follow_mount)&&(h=h.mounted.root),!b||d.follow)for(var R=0;g.isLink(h.mode);){var L=g.readlink(I);if(I=qt.resolve(pe.dirname(I),L),h=g.lookupPath(I,{recurse_count:d.recurse_count+1}).node,R++>40)throw new g.ErrnoError(32)}}return{path:I,node:h}},getPath:a=>{for(var d;;){if(g.isRoot(a)){var p=a.mount.mountpoint;return d?p[p.length-1]!=="/"?`${p}/${d}`:p+d:p}d=d?`${a.name}/${d}`:a.name,a=a.parent}},hashName:(a,d)=>{for(var p=0,h=0;h<d.length;h++)p=(p<<5)-p+d.charCodeAt(h)|0;return(a+p>>>0)%g.nameTable.length},hashAddNode:a=>{var d=g.hashName(a.parent.id,a.name);a.name_next=g.nameTable[d],g.nameTable[d]=a},hashRemoveNode:a=>{var d=g.hashName(a.parent.id,a.name);if(g.nameTable[d]===a)g.nameTable[d]=a.name_next;else for(var p=g.nameTable[d];p;){if(p.name_next===a){p.name_next=a.name_next;break}p=p.name_next}},lookupNode:(a,d)=>{var p=g.mayLookup(a);if(p)throw new g.ErrnoError(p,a);for(var h=g.hashName(a.id,d),I=g.nameTable[h];I;I=I.name_next){var A=I.name;if(I.parent.id===a.id&&A===d)return I}return g.lookup(a,d)},createNode:(a,d,p,h)=>{var I=new g.FSNode(a,d,p,h);return g.hashAddNode(I),I},destroyNode:a=>{g.hashRemoveNode(a)},isRoot:a=>a===a.parent,isMountpoint:a=>!!a.mounted,isFile:a=>(61440&a)==32768,isDir:a=>(61440&a)==16384,isLink:a=>(61440&a)==40960,isChrdev:a=>(61440&a)==8192,isBlkdev:a=>(61440&a)==24576,isFIFO:a=>(61440&a)==4096,isSocket:a=>!(49152&~a),flagsToPermissionString:a=>{var d=["r","w","rw"][3&a];return 512&a&&(d+="w"),d},nodePermissions:(a,d)=>g.ignorePermissions||(!d.includes("r")||292&a.mode)&&(!d.includes("w")||146&a.mode)&&(!d.includes("x")||73&a.mode)?0:2,mayLookup:a=>{var d=g.nodePermissions(a,"x");return d||(a.node_ops.lookup?0:2)},mayCreate:(a,d)=>{try{return g.lookupNode(a,d),20}catch(p){}return g.nodePermissions(a,"wx")},mayDelete:(a,d,p)=>{var h;try{h=g.lookupNode(a,d)}catch(A){return A.errno}var I=g.nodePermissions(a,"wx");if(I)return I;if(p){if(!g.isDir(h.mode))return 54;if(g.isRoot(h)||g.getPath(h)===g.cwd())return 10}else if(g.isDir(h.mode))return 31;return 0},mayOpen:(a,d)=>a?g.isLink(a.mode)?32:g.isDir(a.mode)&&(g.flagsToPermissionString(d)!=="r"||512&d)?31:g.nodePermissions(a,g.flagsToPermissionString(d)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var a=0;a<=g.MAX_OPEN_FDS;a++)if(!g.streams[a])return a;throw new g.ErrnoError(33)},getStreamChecked:a=>{var d=g.getStream(a);if(!d)throw new g.ErrnoError(8);return d},getStream:a=>g.streams[a],createStream:(a,d=-1)=>(g.FSStream||(g.FSStream=function(){this.shared={}},g.FSStream.prototype={},Object.defineProperties(g.FSStream.prototype,{object:{get(){return this.node},set(p){this.node=p}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(p){this.shared.flags=p}},position:{get(){return this.shared.position},set(p){this.shared.position=p}}})),a=Object.assign(new g.FSStream,a),d==-1&&(d=g.nextfd()),a.fd=d,g.streams[d]=a,a),closeStream:a=>{g.streams[a]=null},chrdev_stream_ops:{open:a=>{var d=g.getDevice(a.node.rdev);a.stream_ops=d.stream_ops,a.stream_ops.open&&a.stream_ops.open(a)},llseek:()=>{throw new g.ErrnoError(70)}},major:a=>a>>8,minor:a=>255&a,makedev:(a,d)=>a<<8|d,registerDevice:(a,d)=>{g.devices[a]={stream_ops:d}},getDevice:a=>g.devices[a],getMounts:a=>{for(var d=[],p=[a];p.length;){var h=p.pop();d.push(h),p.push.apply(p,h.mounts)}return d},syncfs:(a,d)=>{typeof a=="function"&&(d=a,a=!1),g.syncFSRequests++,g.syncFSRequests>1&&M(`warning: ${g.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var p=g.getMounts(g.root.mount),h=0;function I(b){return g.syncFSRequests--,d(b)}function A(b){if(b)return A.errored?void 0:(A.errored=!0,I(b));++h>=p.length&&I(null)}p.forEach(b=>{if(!b.type.syncfs)return A(null);b.type.syncfs(b,a,A)})},mount:(a,d,p)=>{var h,I=p==="/",A=!p;if(I&&g.root)throw new g.ErrnoError(10);if(!I&&!A){var b=g.lookupPath(p,{follow_mount:!1});if(p=b.path,h=b.node,g.isMountpoint(h))throw new g.ErrnoError(10);if(!g.isDir(h.mode))throw new g.ErrnoError(54)}var R={type:a,opts:d,mountpoint:p,mounts:[]},L=a.mount(R);return L.mount=R,R.root=L,I?g.root=L:h&&(h.mounted=R,h.mount&&h.mount.mounts.push(R)),L},unmount:a=>{var d=g.lookupPath(a,{follow_mount:!1});if(!g.isMountpoint(d.node))throw new g.ErrnoError(28);var p=d.node,h=p.mounted,I=g.getMounts(h);Object.keys(g.nameTable).forEach(b=>{for(var R=g.nameTable[b];R;){var L=R.name_next;I.includes(R.mount)&&g.destroyNode(R),R=L}}),p.mounted=null;var A=p.mount.mounts.indexOf(h);p.mount.mounts.splice(A,1)},lookup:(a,d)=>a.node_ops.lookup(a,d),mknod:(a,d,p)=>{var h=g.lookupPath(a,{parent:!0}).node,I=pe.basename(a);if(!I||I==="."||I==="..")throw new g.ErrnoError(28);var A=g.mayCreate(h,I);if(A)throw new g.ErrnoError(A);if(!h.node_ops.mknod)throw new g.ErrnoError(63);return h.node_ops.mknod(h,I,d,p)},create:(a,d)=>(d=d!==void 0?d:438,d&=4095,d|=32768,g.mknod(a,d,0)),mkdir:(a,d)=>(d=d!==void 0?d:511,d&=1023,d|=16384,g.mknod(a,d,0)),mkdirTree:(a,d)=>{for(var p=a.split("/"),h="",I=0;I<p.length;++I)if(p[I]){h+="/"+p[I];try{g.mkdir(h,d)}catch(A){if(A.errno!=20)throw A}}},mkdev:(a,d,p)=>(p===void 0&&(p=d,d=438),d|=8192,g.mknod(a,d,p)),symlink:(a,d)=>{if(!qt.resolve(a))throw new g.ErrnoError(44);var p=g.lookupPath(d,{parent:!0}).node;if(!p)throw new g.ErrnoError(44);var h=pe.basename(d),I=g.mayCreate(p,h);if(I)throw new g.ErrnoError(I);if(!p.node_ops.symlink)throw new g.ErrnoError(63);return p.node_ops.symlink(p,h,a)},rename:(a,d)=>{var p,h,I=pe.dirname(a),A=pe.dirname(d),b=pe.basename(a),R=pe.basename(d);if(p=g.lookupPath(a,{parent:!0}).node,h=g.lookupPath(d,{parent:!0}).node,!p||!h)throw new g.ErrnoError(44);if(p.mount!==h.mount)throw new g.ErrnoError(75);var L,x=g.lookupNode(p,b),Y=qt.relative(a,A);if(Y.charAt(0)!==".")throw new g.ErrnoError(28);if((Y=qt.relative(d,I)).charAt(0)!==".")throw new g.ErrnoError(55);try{L=g.lookupNode(h,R)}catch(ie){}if(x!==L){var se=g.isDir(x.mode),ne=g.mayDelete(p,b,se);if(ne)throw new g.ErrnoError(ne);if(ne=L?g.mayDelete(h,R,se):g.mayCreate(h,R))throw new g.ErrnoError(ne);if(!p.node_ops.rename)throw new g.ErrnoError(63);if(g.isMountpoint(x)||L&&g.isMountpoint(L))throw new g.ErrnoError(10);if(h!==p&&(ne=g.nodePermissions(p,"w")))throw new g.ErrnoError(ne);g.hashRemoveNode(x);try{p.node_ops.rename(x,h,R)}catch(ie){throw ie}finally{g.hashAddNode(x)}}},rmdir:a=>{var d=g.lookupPath(a,{parent:!0}).node,p=pe.basename(a),h=g.lookupNode(d,p),I=g.mayDelete(d,p,!0);if(I)throw new g.ErrnoError(I);if(!d.node_ops.rmdir)throw new g.ErrnoError(63);if(g.isMountpoint(h))throw new g.ErrnoError(10);d.node_ops.rmdir(d,p),g.destroyNode(h)},readdir:a=>{var d=g.lookupPath(a,{follow:!0}).node;if(!d.node_ops.readdir)throw new g.ErrnoError(54);return d.node_ops.readdir(d)},unlink:a=>{var d=g.lookupPath(a,{parent:!0}).node;if(!d)throw new g.ErrnoError(44);var p=pe.basename(a),h=g.lookupNode(d,p),I=g.mayDelete(d,p,!1);if(I)throw new g.ErrnoError(I);if(!d.node_ops.unlink)throw new g.ErrnoError(63);if(g.isMountpoint(h))throw new g.ErrnoError(10);d.node_ops.unlink(d,p),g.destroyNode(h)},readlink:a=>{var d=g.lookupPath(a).node;if(!d)throw new g.ErrnoError(44);if(!d.node_ops.readlink)throw new g.ErrnoError(28);return qt.resolve(g.getPath(d.parent),d.node_ops.readlink(d))},stat:(a,d)=>{var p=g.lookupPath(a,{follow:!d}).node;if(!p)throw new g.ErrnoError(44);if(!p.node_ops.getattr)throw new g.ErrnoError(63);return p.node_ops.getattr(p)},lstat:a=>g.stat(a,!0),chmod:(a,d,p)=>{var h;if(typeof a=="string"?h=g.lookupPath(a,{follow:!p}).node:h=a,!h.node_ops.setattr)throw new g.ErrnoError(63);h.node_ops.setattr(h,{mode:4095&d|-4096&h.mode,timestamp:Date.now()})},lchmod:(a,d)=>{g.chmod(a,d,!0)},fchmod:(a,d)=>{var p=g.getStreamChecked(a);g.chmod(p.node,d)},chown:(a,d,p,h)=>{var I;if(typeof a=="string"?I=g.lookupPath(a,{follow:!h}).node:I=a,!I.node_ops.setattr)throw new g.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(a,d,p)=>{g.chown(a,d,p,!0)},fchown:(a,d,p)=>{var h=g.getStreamChecked(a);g.chown(h.node,d,p)},truncate:(a,d)=>{if(d<0)throw new g.ErrnoError(28);var p;if(typeof a=="string"?p=g.lookupPath(a,{follow:!0}).node:p=a,!p.node_ops.setattr)throw new g.ErrnoError(63);if(g.isDir(p.mode))throw new g.ErrnoError(31);if(!g.isFile(p.mode))throw new g.ErrnoError(28);var h=g.nodePermissions(p,"w");if(h)throw new g.ErrnoError(h);p.node_ops.setattr(p,{size:d,timestamp:Date.now()})},ftruncate:(a,d)=>{var p=g.getStreamChecked(a);if(!(2097155&p.flags))throw new g.ErrnoError(28);g.truncate(p.node,d)},utime:(a,d,p)=>{var h=g.lookupPath(a,{follow:!0}).node;h.node_ops.setattr(h,{timestamp:Math.max(d,p)})},open:(a,d,p)=>{if(a==="")throw new g.ErrnoError(44);var h;if(p=p===void 0?438:p,p=64&(d=typeof d=="string"?function(R){var L={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[R];if(L===void 0)throw new Error(`Unknown file open mode: ${R}`);return L}(d):d)?4095&p|32768:0,typeof a=="object")h=a;else{a=pe.normalize(a);try{h=g.lookupPath(a,{follow:!(131072&d)}).node}catch(R){}}var I=!1;if(64&d)if(h){if(128&d)throw new g.ErrnoError(20)}else h=g.mknod(a,p,0),I=!0;if(!h)throw new g.ErrnoError(44);if(g.isChrdev(h.mode)&&(d&=-513),65536&d&&!g.isDir(h.mode))throw new g.ErrnoError(54);if(!I){var A=g.mayOpen(h,d);if(A)throw new g.ErrnoError(A)}512&d&&!I&&g.truncate(h,0),d&=-131713;var b=g.createStream({node:h,path:g.getPath(h),flags:d,seekable:!0,position:0,stream_ops:h.stream_ops,ungotten:[],error:!1});return b.stream_ops.open&&b.stream_ops.open(b),!o.logReadFiles||1&d||(g.readFiles||(g.readFiles={}),a in g.readFiles||(g.readFiles[a]=1)),b},close:a=>{if(g.isClosed(a))throw new g.ErrnoError(8);a.getdents&&(a.getdents=null);try{a.stream_ops.close&&a.stream_ops.close(a)}catch(d){throw d}finally{g.closeStream(a.fd)}a.fd=null},isClosed:a=>a.fd===null,llseek:(a,d,p)=>{if(g.isClosed(a))throw new g.ErrnoError(8);if(!a.seekable||!a.stream_ops.llseek)throw new g.ErrnoError(70);if(p!=0&&p!=1&&p!=2)throw new g.ErrnoError(28);return a.position=a.stream_ops.llseek(a,d,p),a.ungotten=[],a.position},read:(a,d,p,h,I)=>{if(h<0||I<0)throw new g.ErrnoError(28);if(g.isClosed(a))throw new g.ErrnoError(8);if((2097155&a.flags)==1)throw new g.ErrnoError(8);if(g.isDir(a.node.mode))throw new g.ErrnoError(31);if(!a.stream_ops.read)throw new g.ErrnoError(28);var A=I!==void 0;if(A){if(!a.seekable)throw new g.ErrnoError(70)}else I=a.position;var b=a.stream_ops.read(a,d,p,h,I);return A||(a.position+=b),b},write:(a,d,p,h,I,A)=>{if(h<0||I<0)throw new g.ErrnoError(28);if(g.isClosed(a))throw new g.ErrnoError(8);if(!(2097155&a.flags))throw new g.ErrnoError(8);if(g.isDir(a.node.mode))throw new g.ErrnoError(31);if(!a.stream_ops.write)throw new g.ErrnoError(28);a.seekable&&1024&a.flags&&g.llseek(a,0,2);var b=I!==void 0;if(b){if(!a.seekable)throw new g.ErrnoError(70)}else I=a.position;var R=a.stream_ops.write(a,d,p,h,I,A);return b||(a.position+=R),R},allocate:(a,d,p)=>{if(g.isClosed(a))throw new g.ErrnoError(8);if(d<0||p<=0)throw new g.ErrnoError(28);if(!(2097155&a.flags))throw new g.ErrnoError(8);if(!g.isFile(a.node.mode)&&!g.isDir(a.node.mode))throw new g.ErrnoError(43);if(!a.stream_ops.allocate)throw new g.ErrnoError(138);a.stream_ops.allocate(a,d,p)},mmap:(a,d,p,h,I)=>{if(2&h&&!(2&I)&&(2097155&a.flags)!=2)throw new g.ErrnoError(2);if((2097155&a.flags)==1)throw new g.ErrnoError(2);if(!a.stream_ops.mmap)throw new g.ErrnoError(43);return a.stream_ops.mmap(a,d,p,h,I)},msync:(a,d,p,h,I)=>a.stream_ops.msync?a.stream_ops.msync(a,d,p,h,I):0,munmap:a=>0,ioctl:(a,d,p)=>{if(!a.stream_ops.ioctl)throw new g.ErrnoError(59);return a.stream_ops.ioctl(a,d,p)},readFile:(a,d={})=>{if(d.flags=d.flags||0,d.encoding=d.encoding||"binary",d.encoding!=="utf8"&&d.encoding!=="binary")throw new Error(`Invalid encoding type "${d.encoding}"`);var p,h=g.open(a,d.flags),I=g.stat(a).size,A=new Uint8Array(I);return g.read(h,A,0,I,0),d.encoding==="utf8"?p=xt(A,0):d.encoding==="binary"&&(p=A),g.close(h),p},writeFile:(a,d,p={})=>{p.flags=p.flags||577;var h=g.open(a,p.flags,p.mode);if(typeof d=="string"){var I=new Uint8Array(Io(d)+1),A=So(d,I,0,I.length);g.write(h,I,0,A,void 0,p.canOwn)}else{if(!ArrayBuffer.isView(d))throw new Error("Unsupported data type");g.write(h,d,0,d.byteLength,void 0,p.canOwn)}g.close(h)},cwd:()=>g.currentPath,chdir:a=>{var d=g.lookupPath(a,{follow:!0});if(d.node===null)throw new g.ErrnoError(44);if(!g.isDir(d.node.mode))throw new g.ErrnoError(54);var p=g.nodePermissions(d.node,"x");if(p)throw new g.ErrnoError(p);g.currentPath=d.path},createDefaultDirectories:()=>{g.mkdir("/tmp"),g.mkdir("/home"),g.mkdir("/home/web_user")},createDefaultDevices:()=>{g.mkdir("/dev"),g.registerDevice(g.makedev(1,3),{read:()=>0,write:(h,I,A,b,R)=>b}),g.mkdev("/dev/null",g.makedev(1,3)),ce.register(g.makedev(5,0),ce.default_tty_ops),ce.register(g.makedev(6,0),ce.default_tty1_ops),g.mkdev("/dev/tty",g.makedev(5,0)),g.mkdev("/dev/tty1",g.makedev(6,0));var a=new Uint8Array(1024),d=0,p=()=>(d===0&&(d=fn(a).byteLength),a[--d]);g.createDevice("/dev","random",p),g.createDevice("/dev","urandom",p),g.mkdir("/dev/shm"),g.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{g.mkdir("/proc");var a=g.mkdir("/proc/self");g.mkdir("/proc/self/fd"),g.mount({mount:()=>{var d=g.createNode(a,"fd",16895,73);return d.node_ops={lookup:(p,h)=>{var I=+h,A=g.getStreamChecked(I),b={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>A.path}};return b.parent=b,b}},d}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?g.createDevice("/dev","stdin",o.stdin):g.symlink("/dev/tty","/dev/stdin"),o.stdout?g.createDevice("/dev","stdout",null,o.stdout):g.symlink("/dev/tty","/dev/stdout"),o.stderr?g.createDevice("/dev","stderr",null,o.stderr):g.symlink("/dev/tty1","/dev/stderr"),g.open("/dev/stdin",0),g.open("/dev/stdout",1),g.open("/dev/stderr",1)},ensureErrnoError:()=>{g.ErrnoError||(g.ErrnoError=function(a,d){this.name="ErrnoError",this.node=d,this.setErrno=function(p){this.errno=p},this.setErrno(a),this.message="FS error"},g.ErrnoError.prototype=new Error,g.ErrnoError.prototype.constructor=g.ErrnoError,[44].forEach(a=>{g.genericErrors[a]=new g.ErrnoError(a),g.genericErrors[a].stack="<generic error, no stack>"}))},staticInit:()=>{g.ensureErrnoError(),g.nameTable=new Array(4096),g.mount(Ae,{},"/"),g.createDefaultDirectories(),g.createDefaultDevices(),g.createSpecialDirectories(),g.filesystems={MEMFS:Ae}},init:(a,d,p)=>{g.init.initialized=!0,g.ensureErrnoError(),o.stdin=a||o.stdin,o.stdout=d||o.stdout,o.stderr=p||o.stderr,g.createStandardStreams()},quit:()=>{g.init.initialized=!1;for(var a=0;a<g.streams.length;a++){var d=g.streams[a];d&&g.close(d)}},findObject:(a,d)=>{var p=g.analyzePath(a,d);return p.exists?p.object:null},analyzePath:(a,d)=>{try{a=(h=g.lookupPath(a,{follow:!d})).path}catch(I){}var p={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var h=g.lookupPath(a,{parent:!0});p.parentExists=!0,p.parentPath=h.path,p.parentObject=h.node,p.name=pe.basename(a),h=g.lookupPath(a,{follow:!d}),p.exists=!0,p.path=h.path,p.object=h.node,p.name=h.node.name,p.isRoot=h.path==="/"}catch(I){p.error=I.errno}return p},createPath:(a,d,p,h)=>{a=typeof a=="string"?a:g.getPath(a);for(var I=d.split("/").reverse();I.length;){var A=I.pop();if(A){var b=pe.join2(a,A);try{g.mkdir(b)}catch(R){}a=b}}return b},createFile:(a,d,p,h,I)=>{var A=pe.join2(typeof a=="string"?a:g.getPath(a),d),b=Zr(h,I);return g.create(A,b)},createDataFile:(a,d,p,h,I,A)=>{var b=d;a&&(a=typeof a=="string"?a:g.getPath(a),b=d?pe.join2(a,d):a);var R=Zr(h,I),L=g.create(b,R);if(p){if(typeof p=="string"){for(var x=new Array(p.length),Y=0,se=p.length;Y<se;++Y)x[Y]=p.charCodeAt(Y);p=x}g.chmod(L,146|R);var ne=g.open(L,577);g.write(ne,p,0,p.length,0,A),g.close(ne),g.chmod(L,R)}return L},createDevice:(a,d,p,h)=>{var I=pe.join2(typeof a=="string"?a:g.getPath(a),d),A=Zr(!!p,!!h);g.createDevice.major||(g.createDevice.major=64);var b=g.makedev(g.createDevice.major++,0);return g.registerDevice(b,{open:R=>{R.seekable=!1},close:R=>{h&&h.buffer&&h.buffer.length&&h(10)},read:(R,L,x,Y,se)=>{for(var ne=0,ie=0;ie<Y;ie++){var ve;try{ve=p()}catch(Fe){throw new g.ErrnoError(29)}if(ve===void 0&&ne===0)throw new g.ErrnoError(6);if(ve==null)break;ne++,L[x+ie]=ve}return ne&&(R.node.timestamp=Date.now()),ne},write:(R,L,x,Y,se)=>{for(var ne=0;ne<Y;ne++)try{h(L[x+ne])}catch(ie){throw new g.ErrnoError(29)}return Y&&(R.node.timestamp=Date.now()),ne}}),g.mkdev(I,A,b)},forceLoadFile:a=>{if(a.isDevice||a.isFolder||a.link||a.contents)return!0;if(typeof XMLHttpRequest!="undefined")throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{a.contents=ms(s(a.url),!0),a.usedBytes=a.contents.length}catch(d){throw new g.ErrnoError(29)}},createLazyFile:(a,d,p,h,I)=>{function A(){this.lengthKnown=!1,this.chunks=[]}if(A.prototype.get=function(se){if(!(se>this.length-1||se<0)){var ne=se%this.chunkSize,ie=se/this.chunkSize|0;return this.getter(ie)[ne]}},A.prototype.setDataGetter=function(se){this.getter=se},A.prototype.cacheLength=function(){var se=new XMLHttpRequest;if(se.open("HEAD",p,!1),se.send(null),!(se.status>=200&&se.status<300||se.status===304))throw new Error("Couldn't load "+p+". Status: "+se.status);var ne,ie=Number(se.getResponseHeader("Content-length")),ve=(ne=se.getResponseHeader("Accept-Ranges"))&&ne==="bytes",Fe=(ne=se.getResponseHeader("Content-Encoding"))&&ne==="gzip",Me=1048576;ve||(Me=ie);var it=this;it.setDataGetter(Ke=>{var gt=Ke*Me,Wi=(Ke+1)*Me-1;if(Wi=Math.min(Wi,ie-1),it.chunks[Ke]===void 0&&(it.chunks[Ke]=((cr,Do)=>{if(cr>Do)throw new Error("invalid range ("+cr+", "+Do+") or no bytes requested!");if(Do>ie-1)throw new Error("only "+ie+" bytes available! programmer error!");var ut=new XMLHttpRequest;if(ut.open("GET",p,!1),ie!==Me&&ut.setRequestHeader("Range","bytes="+cr+"-"+Do),ut.responseType="arraybuffer",ut.overrideMimeType&&ut.overrideMimeType("text/plain; charset=x-user-defined"),ut.send(null),!(ut.status>=200&&ut.status<300||ut.status===304))throw new Error("Couldn't load "+p+". Status: "+ut.status);return ut.response!==void 0?new Uint8Array(ut.response||[]):ms(ut.responseText||"",!0)})(gt,Wi)),it.chunks[Ke]===void 0)throw new Error("doXHR failed!");return it.chunks[Ke]}),!Fe&&ie||(Me=ie=1,ie=this.getter(0).length,Me=ie,k("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ie,this._chunkSize=Me,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!E)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var b=new A;Object.defineProperties(b,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var R={isDevice:!1,contents:b}}else R={isDevice:!1,url:p};var L=g.createFile(a,d,R,h,I);R.contents?L.contents=R.contents:R.url&&(L.contents=null,L.url=R.url),Object.defineProperties(L,{usedBytes:{get:function(){return this.contents.length}}});var x={};function Y(se,ne,ie,ve,Fe){var Me=se.node.contents;if(Fe>=Me.length)return 0;var it=Math.min(Me.length-Fe,ve);if(Me.slice)for(var Ke=0;Ke<it;Ke++)ne[ie+Ke]=Me[Fe+Ke];else for(Ke=0;Ke<it;Ke++)ne[ie+Ke]=Me.get(Fe+Ke);return it}return Object.keys(L.stream_ops).forEach(se=>{var ne=L.stream_ops[se];x[se]=function(){return g.forceLoadFile(L),ne.apply(null,arguments)}}),x.read=(se,ne,ie,ve,Fe)=>(g.forceLoadFile(L),Y(se,ne,ie,ve,Fe)),x.mmap=(se,ne,ie,ve,Fe)=>{g.forceLoadFile(L);var Me=En();if(!Me)throw new g.ErrnoError(48);return Y(se,ee,Me,ne,ie),{ptr:Me,allocated:!0}},L.stream_ops=x,L}},Pi=(a,d)=>a?xt(me,a,d):"",O={DEFAULT_POLLMASK:5,calculateAt:function(a,d,p){if(pe.isAbs(d))return d;var h;if(a===-100?h=g.cwd():h=O.getStreamFromFD(a).path,d.length==0){if(!p)throw new g.ErrnoError(44);return h}return pe.join2(h,d)},doStat:function(a,d,p){try{var h=a(d)}catch(R){if(R&&R.node&&pe.normalize(d)!==pe.normalize(g.getPath(R.node)))return-54;throw R}J[p>>2]=h.dev,J[p+4>>2]=h.mode,Ue[p+8>>2]=h.nlink,J[p+12>>2]=h.uid,J[p+16>>2]=h.gid,J[p+20>>2]=h.rdev,Ze=[h.size>>>0,(Ee=h.size,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[p+24>>2]=Ze[0],J[p+28>>2]=Ze[1],J[p+32>>2]=4096,J[p+36>>2]=h.blocks;var I=h.atime.getTime(),A=h.mtime.getTime(),b=h.ctime.getTime();return Ze=[Math.floor(I/1e3)>>>0,(Ee=Math.floor(I/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[p+40>>2]=Ze[0],J[p+44>>2]=Ze[1],Ue[p+48>>2]=I%1e3*1e3,Ze=[Math.floor(A/1e3)>>>0,(Ee=Math.floor(A/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[p+56>>2]=Ze[0],J[p+60>>2]=Ze[1],Ue[p+64>>2]=A%1e3*1e3,Ze=[Math.floor(b/1e3)>>>0,(Ee=Math.floor(b/1e3),+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[p+72>>2]=Ze[0],J[p+76>>2]=Ze[1],Ue[p+80>>2]=b%1e3*1e3,Ze=[h.ino>>>0,(Ee=h.ino,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[p+88>>2]=Ze[0],J[p+92>>2]=Ze[1],0},doMsync:function(a,d,p,h,I){if(!g.isFile(d.node.mode))throw new g.ErrnoError(43);if(2&h)return 0;var A=me.slice(a,a+p);g.msync(d,A,I,p,h)},varargs:void 0,get:()=>(O.varargs+=4,J[O.varargs-4>>2]),getStr:a=>Pi(a),getStreamFromFD:function(a){return g.getStreamChecked(a)}};function Kr(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${a}`)}}var Ja=void 0;function bt(a){for(var d="",p=a;me[p];)d+=Ja[me[p++]];return d}var ki={},ar={},ps={},Li=void 0;function Ve(a){throw new Li(a)}var za=void 0;function Yt(a){throw new za(a)}function Pr(a,d,p){function h(R){var L=p(R);L.length!==a.length&&Yt("Mismatched type converter count");for(var x=0;x<a.length;++x)Zt(a[x],L[x])}a.forEach(function(R){ps[R]=d});var I=new Array(d.length),A=[],b=0;d.forEach((R,L)=>{ar.hasOwnProperty(R)?I[L]=ar[R]:(A.push(R),ki.hasOwnProperty(R)||(ki[R]=[]),ki[R].push(()=>{I[L]=ar[R],++b===A.length&&h(I)}))}),A.length===0&&h(I)}function Zt(a,d,p={}){if(!("argPackAdvance"in d))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(h,I,A={}){var b=I.name;if(h||Ve(`type "${b}" must have a positive integer typeid pointer`),ar.hasOwnProperty(h)){if(A.ignoreDuplicateRegistrations)return;Ve(`Cannot register type '${b}' twice`)}if(ar[h]=I,delete ps[h],ki.hasOwnProperty(h)){var R=ki[h];delete ki[h],R.forEach(L=>L())}}(a,d,p)}function Xa(a){if(!(this instanceof fr)||!(a instanceof fr))return!1;for(var d=this.$$.ptrType.registeredClass,p=this.$$.ptr,h=a.$$.ptrType.registeredClass,I=a.$$.ptr;d.baseClass;)p=d.upcast(p),d=d.baseClass;for(;h.baseClass;)I=h.upcast(I),h=h.baseClass;return d===h&&p===I}function _n(a){Ve(a.$$.ptrType.registeredClass.name+" instance already deleted")}var yo=!1;function Qa(a){}function Ya(a){a.count.value-=1,a.count.value===0&&function(d){d.smartPtr?d.smartPtrType.rawDestructor(d.smartPtr):d.ptrType.registeredClass.rawDestructor(d.ptr)}(a)}function Za(a,d,p){if(d===p)return a;if(p.baseClass===void 0)return null;var h=Za(a,d,p.baseClass);return h===null?null:p.downcast(h)}var Ao={};function Fu(){return Object.keys(Ro).length}function $u(){var a=[];for(var d in Ro)Ro.hasOwnProperty(d)&&a.push(Ro[d]);return a}var bo=[];function Kt(){for(;bo.length;){var a=bo.pop();a.$$.deleteScheduled=!1,a.delete()}}var kr=void 0;function Ka(a){kr=a,bo.length&&kr&&kr(Kt)}var Ro={};function Ui(a,d){return d=function(p,h){for(h===void 0&&Ve("ptr should not be undefined");p.baseClass;)h=p.upcast(h),p=p.baseClass;return h}(a,d),Ro[d]}function vo(a,d){return d.ptrType&&d.ptr||Yt("makeClassHandle requires ptr and ptrType"),!!d.smartPtrType!=!!d.smartPtr&&Yt("Both smartPtrType and smartPtr must be specified"),d.count={value:1},Vi(Object.create(a,{$$:{value:d}}))}function ec(a){var d=this.getPointee(a);if(!d)return this.destructor(a),null;var p=Ui(this.registeredClass,d);if(p!==void 0){if(p.$$.count.value===0)return p.$$.ptr=d,p.$$.smartPtr=a,p.clone();var h=p.clone();return this.destructor(a),h}function I(){return this.isSmartPointer?vo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:d,smartPtrType:this,smartPtr:a}):vo(this.registeredClass.instancePrototype,{ptrType:this,ptr:a})}var A,b=this.registeredClass.getActualType(d),R=Ao[b];if(!R)return I.call(this);A=this.isConst?R.constPointerType:R.pointerType;var L=Za(d,this.registeredClass,A.registeredClass);return L===null?I.call(this):this.isSmartPointer?vo(A.registeredClass.instancePrototype,{ptrType:A,ptr:L,smartPtrType:this,smartPtr:a}):vo(A.registeredClass.instancePrototype,{ptrType:A,ptr:L})}var Vi=function(a){return typeof FinalizationRegistry=="undefined"?(Vi=d=>d,a):(yo=new FinalizationRegistry(d=>{Ya(d.$$)}),Qa=d=>yo.unregister(d),(Vi=d=>{var p=d.$$;if(p.smartPtr){var h={$$:p};yo.register(d,h,d)}return d})(a))};function tc(){if(this.$$.ptr||_n(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var a,d=Vi(Object.create(Object.getPrototypeOf(this),{$$:{value:(a=this.$$,{count:a.count,deleteScheduled:a.deleteScheduled,preservePointerOnDelete:a.preservePointerOnDelete,ptr:a.ptr,ptrType:a.ptrType,smartPtr:a.smartPtr,smartPtrType:a.smartPtrType})}}));return d.$$.count.value+=1,d.$$.deleteScheduled=!1,d}function Bu(){this.$$.ptr||_n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ve("Object already scheduled for deletion"),Qa(this),Ya(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function rc(){return!this.$$.ptr}function ic(){return this.$$.ptr||_n(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ve("Object already scheduled for deletion"),bo.push(this),bo.length===1&&kr&&kr(Kt),this.$$.deleteScheduled=!0,this}function fr(){}function Pt(a){if(a===void 0)return"_unknown";var d=(a=a.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return d>=48&&d<=57?`_${a}`:a}function hs(a,d){return a=Pt(a),{[a]:function(){return d.apply(this,arguments)}}[a]}function oc(a,d,p){if(a[d].overloadTable===void 0){var h=a[d];a[d]=function(){return a[d].overloadTable.hasOwnProperty(arguments.length)||Ve(`Function '${p}' called with an invalid number of arguments (${arguments.length}) - expects one of (${a[d].overloadTable})!`),a[d].overloadTable[arguments.length].apply(this,arguments)},a[d].overloadTable=[],a[d].overloadTable[h.argCount]=h}}function fs(a,d,p,h,I,A,b,R){this.name=a,this.constructor=d,this.instancePrototype=p,this.rawDestructor=h,this.baseClass=I,this.getActualType=A,this.upcast=b,this.downcast=R,this.pureVirtualFunctions=[]}function Co(a,d,p){for(;d!==p;)d.upcast||Ve(`Expected null or instance of ${p.name}, got an instance of ${d.name}`),a=d.upcast(a),d=d.baseClass;return a}function Hu(a,d){if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),0;d.$$||Ve(`Cannot pass "${Ts(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`);var p=d.$$.ptrType.registeredClass;return Co(d.$$.ptr,p,this.registeredClass)}function Wu(a,d){var p;if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),this.isSmartPointer?(p=this.rawConstructor(),a!==null&&a.push(this.rawDestructor,p),p):0;d.$$||Ve(`Cannot pass "${Ts(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&d.$$.ptrType.isConst&&Ve(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);var h=d.$$.ptrType.registeredClass;if(p=Co(d.$$.ptr,h,this.registeredClass),this.isSmartPointer)switch(d.$$.smartPtr===void 0&&Ve("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:d.$$.smartPtrType===this?p=d.$$.smartPtr:Ve(`Cannot convert argument of type ${d.$$.smartPtrType?d.$$.smartPtrType.name:d.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:p=d.$$.smartPtr;break;case 2:if(d.$$.smartPtrType===this)p=d.$$.smartPtr;else{var I=d.clone();p=this.rawShare(p,Bi.toHandle(function(){I.delete()})),a!==null&&a.push(this.rawDestructor,p)}break;default:Ve("Unsupporting sharing policy")}return p}function sc(a,d){if(d===null)return this.isReference&&Ve(`null is not a valid ${this.name}`),0;d.$$||Ve(`Cannot pass "${Ts(d)}" as a ${this.name}`),d.$$.ptr||Ve(`Cannot pass deleted object as a pointer of type ${this.name}`),d.$$.ptrType.isConst&&Ve(`Cannot convert argument of type ${d.$$.ptrType.name} to parameter type ${this.name}`);var p=d.$$.ptrType.registeredClass;return Co(d.$$.ptr,p,this.registeredClass)}function No(a){return this.fromWireType(J[a>>2])}function Gu(a){return this.rawGetPointee&&(a=this.rawGetPointee(a)),a}function nc(a){this.rawDestructor&&this.rawDestructor(a)}function ju(a){a!==null&&a.delete()}function gr(a,d,p,h,I,A,b,R,L,x,Y){this.name=a,this.registeredClass=d,this.isReference=p,this.isConst=h,this.isSmartPointer=I,this.pointeeType=A,this.sharingPolicy=b,this.rawGetPointee=R,this.rawConstructor=L,this.rawShare=x,this.rawDestructor=Y,I||d.baseClass!==void 0?this.toWireType=Wu:h?(this.toWireType=Hu,this.destructorFunction=null):(this.toWireType=sc,this.destructorFunction=null)}var gs=[],ac=a=>{var d=gs[a];return d||(a>=gs.length&&(gs.length=a+1),gs[a]=d=mn.get(a)),d},qu=(a,d,p)=>a.includes("j")?((h,I,A)=>{var b=o["dynCall_"+h];return A&&A.length?b.apply(null,[I].concat(A)):b.call(null,I)})(a,d,p):ac(d).apply(null,p);function Fi(a,d){var p,h,I,A=(a=bt(a)).includes("j")?(p=a,h=d,I=[],function(){return I.length=0,Object.assign(I,arguments),qu(p,h,I)}):ac(d);return typeof A!="function"&&Ve(`unknown function pointer with signature ${a}: ${d}`),A}var cc=void 0;function Es(a){var d=_r(a),p=bt(d);return Rt(d),p}function _s(a,d){var p=[],h={};throw d.forEach(function I(A){h[A]||ar[A]||(ps[A]?ps[A].forEach(I):(p.push(A),h[A]=!0))}),new cc(`${a}: `+p.map(Es).join([", "]))}function Tn(a,d){for(var p=[],h=0;h<a;h++)p.push(Ue[d+4*h>>2]);return p}function dc(a){for(;a.length;){var d=a.pop();a.pop()(d)}}function In(a,d){if(!(a instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof a} which is not a function`);var p=hs(a.name||"unknownFunctionName",function(){});p.prototype=a.prototype;var h=new p,I=a.apply(h,d);return I instanceof Object?I:h}function $i(a,d,p,h,I,A){var b=d.length;b<2&&Ve("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var R=d[1]!==null&&p!==null,L=!1,x=1;x<d.length;++x)if(d[x]!==null&&d[x].destructorFunction===void 0){L=!0;break}var Y=d[0].name!=="void",se="",ne="";for(x=0;x<b-2;++x)se+=(x!==0?", ":"")+"arg"+x,ne+=(x!==0?", ":"")+"arg"+x+"Wired";var ie=`
|
|
52
|
+
return function ${Pt(a)}(${se}) {
|
|
53
53
|
if (arguments.length !== ${b-2}) {
|
|
54
54
|
throwBindingError('function ${a} called with ${arguments.length} arguments, expected ${b-2} args!');
|
|
55
|
-
}`;
|
|
56
|
-
`);var ve=
|
|
57
|
-
`),
|
|
58
|
-
`,Fe.push("argType"+
|
|
59
|
-
`,
|
|
60
|
-
`;else for(
|
|
61
|
-
`,Fe.push(it+"_dtor"),Me.push(d[
|
|
55
|
+
}`;L&&(ie+=`var destructors = [];
|
|
56
|
+
`);var ve=L?"destructors":"null",Fe=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Me=[Ve,h,I,dc,d[0],d[1]];for(R&&(ie+="var thisWired = classParam.toWireType("+ve+`, this);
|
|
57
|
+
`),x=0;x<b-2;++x)ie+="var arg"+x+"Wired = argType"+x+".toWireType("+ve+", arg"+x+"); // "+d[x+2].name+`
|
|
58
|
+
`,Fe.push("argType"+x),Me.push(d[x+2]);if(R&&(ne="thisWired"+(ne.length>0?", ":"")+ne),ie+=(Y||A?"var rv = ":"")+"invoker(fn"+(ne.length>0?", ":"")+ne+`);
|
|
59
|
+
`,L)ie+=`runDestructors(destructors);
|
|
60
|
+
`;else for(x=R?1:2;x<d.length;++x){var it=x===1?"thisWired":"arg"+(x-2)+"Wired";d[x].destructorFunction!==null&&(ie+=it+"_dtor("+it+"); // "+d[x].name+`
|
|
61
|
+
`,Fe.push(it+"_dtor"),Me.push(d[x].destructorFunction))}return Y&&(ie+=`var ret = retType.fromWireType(rv);
|
|
62
62
|
return ret;
|
|
63
63
|
`),ie+=`}
|
|
64
|
-
`,Fe.push(ie),In(Function,Fe).apply(null,Me)}function
|
|
65
|
-
`+d.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Re.prototype),
|
|
66
|
-
`,
|
|
67
|
-
`,
|
|
68
|
-
`,
|
|
64
|
+
`,Fe.push(ie),In(Function,Fe).apply(null,Me)}function uc(){this.allocated=[void 0],this.freelist=[]}var kt=new uc;function lc(a){a>=kt.reserved&&--kt.get(a).refcount==0&&kt.free(a)}function Er(){for(var a=0,d=kt.reserved;d<kt.allocated.length;++d)kt.allocated[d]!==void 0&&++a;return a}var Bi={toValue:a=>(a||Ve("Cannot use deleted val. handle = "+a),kt.get(a).value),toHandle:a=>{switch(a){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return kt.allocate({refcount:1,value:a})}}};function Ts(a){if(a===null)return"null";var d=typeof a;return d==="object"||d==="array"||d==="function"?a.toString():""+a}function mc(a,d){switch(d){case 2:return function(p){return this.fromWireType(_o[p>>2])};case 3:return function(p){return this.fromWireType(ln[p>>3])};default:throw new TypeError("Unknown float type: "+a)}}function pc(a,d,p){switch(d){case 0:return p?function(h){return ee[h]}:function(h){return me[h]};case 1:return p?function(h){return oe[h>>1]}:function(h){return Xe[h>>1]};case 2:return p?function(h){return J[h>>2]}:function(h){return Ue[h>>2]};default:throw new TypeError("Unknown integer type: "+a)}}var S=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,T=(a,d)=>{for(var p=a,h=p>>1,I=h+d/2;!(h>=I)&&Xe[h];)++h;if((p=h<<1)-a>32&&S)return S.decode(me.subarray(a,p));for(var A="",b=0;!(b>=d/2);++b){var R=oe[a+2*b>>1];if(R==0)break;A+=String.fromCharCode(R)}return A},C=(a,d,p)=>{if(p===void 0&&(p=2147483647),p<2)return 0;for(var h=d,I=(p-=2)<2*a.length?p/2:a.length,A=0;A<I;++A){var b=a.charCodeAt(A);oe[d>>1]=b,d+=2}return oe[d>>1]=0,d-h},w=a=>2*a.length,F=(a,d)=>{for(var p=0,h="";!(p>=d/4);){var I=J[a+4*p>>2];if(I==0)break;if(++p,I>=65536){var A=I-65536;h+=String.fromCharCode(55296|A>>10,56320|1023&A)}else h+=String.fromCharCode(I)}return h},H=(a,d,p)=>{if(p===void 0&&(p=2147483647),p<4)return 0;for(var h=d,I=h+p-4,A=0;A<a.length;++A){var b=a.charCodeAt(A);if(b>=55296&&b<=57343&&(b=65536+((1023&b)<<10)|1023&a.charCodeAt(++A)),J[d>>2]=b,(d+=4)+4>I)break}return J[d>>2]=0,d-h},G=a=>{for(var d=0,p=0;p<a.length;++p){var h=a.charCodeAt(p);h>=55296&&h<=57343&&++p,d+=4}return d},z={},K=[],W=[],he={},De=()=>{if(!De.strings){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:m||"./this.program"};for(var d in he)he[d]===void 0?delete a[d]:a[d]=he[d];var p=[];for(var d in a)p.push(`${d}=${a[d]}`);De.strings=p}return De.strings},Re,ge,we,rt=function(a,d,p,h){a||(a=this),this.parent=a,this.mount=a.mount,this.mounted=null,this.id=g.nextInode++,this.name=d,this.mode=p,this.node_ops={},this.stream_ops={},this.rdev=h},qe=365,pt=146;Object.defineProperties(rt.prototype,{read:{get:function(){return(this.mode&qe)===qe},set:function(a){a?this.mode|=qe:this.mode&=-366}},write:{get:function(){return(this.mode&pt)===pt},set:function(a){a?this.mode|=pt:this.mode&=-147}},isFolder:{get:function(){return g.isDir(this.mode)}},isDevice:{get:function(){return g.isChrdev(this.mode)}}}),g.FSNode=rt,g.createPreloadedFile=function(a,d,p,h,I,A,b,R,L,x){var Y=d?qt.resolve(pe.join2(a,d)):a;function se(ne){function ie(ve){x&&x(),R||g.createDataFile(a,d,ve,h,I,L),A&&A(),To()}(function(ve,Fe,Me,it){typeof Browser!="undefined"&&Browser.init();var Ke=!1;return Vu.forEach(function(gt){Ke||gt.canHandle(Fe)&&(gt.handle(ve,Fe,Me,it),Ke=!0)}),Ke})(ne,Y,ie,()=>{b&&b(),To()})||ie(ne)}ls(),typeof p=="string"?Uu(p,ne=>se(ne),b):se(p)},g.staticInit(),function(){for(var a=new Array(256),d=0;d<256;++d)a[d]=String.fromCharCode(d);Ja=a}(),Li=o.BindingError=class extends Error{constructor(a){super(a),this.name="BindingError"}},za=o.InternalError=class extends Error{constructor(a){super(a),this.name="InternalError"}},fr.prototype.isAliasOf=Xa,fr.prototype.clone=tc,fr.prototype.delete=Bu,fr.prototype.isDeleted=rc,fr.prototype.deleteLater=ic,o.getInheritedInstanceCount=Fu,o.getLiveInheritedInstances=$u,o.flushPendingDeletes=Kt,o.setDelayFunction=Ka,gr.prototype.getPointee=Gu,gr.prototype.destructor=nc,gr.prototype.argPackAdvance=8,gr.prototype.readValueFromPointer=No,gr.prototype.deleteObject=ju,gr.prototype.fromWireType=ec,cc=o.UnboundTypeError=(Re=Error,(we=hs(ge="UnboundTypeError",function(a){this.name=ge,this.message=a;var d=new Error(a).stack;d!==void 0&&(this.stack=this.toString()+`
|
|
65
|
+
`+d.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(Re.prototype),we.prototype.constructor=we,we.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},we),Object.assign(uc.prototype,{get(a){return this.allocated[a]},has(a){return this.allocated[a]!==void 0},allocate(a){var d=this.freelist.pop()||this.allocated.length;return this.allocated[d]=a,d},free(a){this.allocated[a]=void 0,this.freelist.push(a)}}),kt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),kt.reserved=kt.allocated.length,o.count_emval_handles=Er;var Je,Nt={p:function(a,d,p){throw new Oi(a).init(d,p),a},C:function(a,d,p){O.varargs=p;try{var h=O.getStreamFromFD(a);switch(d){case 0:return(I=O.get())<0?-28:g.createStream(h,I).fd;case 1:case 2:case 6:case 7:return 0;case 3:return h.flags;case 4:var I=O.get();return h.flags|=I,0;case 5:return I=O.get(),oe[I+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return A=28,J[Sn()>>2]=A,-1}}catch(b){if(g===void 0||b.name!=="ErrnoError")throw b;return-b.errno}var A},w:function(a,d,p,h){O.varargs=h;try{d=O.getStr(d),d=O.calculateAt(a,d);var I=h?O.get():0;return g.open(d,p,I).fd}catch(A){if(g===void 0||A.name!=="ErrnoError")throw A;return-A.errno}},t:function(a,d,p,h,I){},n:function(a,d,p,h,I){var A=Kr(p);Zt(a,{name:d=bt(d),fromWireType:function(b){return!!b},toWireType:function(b,R){return R?h:I},argPackAdvance:8,readValueFromPointer:function(b){var R;if(p===1)R=ee;else if(p===2)R=oe;else{if(p!==4)throw new TypeError("Unknown boolean type size: "+d);R=J}return this.fromWireType(R[b>>A])},destructorFunction:null})},r:function(a,d,p,h,I,A,b,R,L,x,Y,se,ne){Y=bt(Y),A=Fi(I,A),R&&(R=Fi(b,R)),x&&(x=Fi(L,x)),ne=Fi(se,ne);var ie=Pt(Y);(function(ve,Fe,Me){o.hasOwnProperty(ve)?((Me===void 0||o[ve].overloadTable!==void 0&&o[ve].overloadTable[Me]!==void 0)&&Ve(`Cannot register public name '${ve}' twice`),oc(o,ve,ve),o.hasOwnProperty(Me)&&Ve(`Cannot register multiple overloads of a function with the same number of arguments (${Me})!`),o[ve].overloadTable[Me]=Fe):(o[ve]=Fe,Me!==void 0&&(o[ve].numArguments=Me))})(ie,function(){_s(`Cannot construct ${Y} due to unbound types`,[h])}),Pr([a,d,p],h?[h]:[],function(ve){var Fe,Me;ve=ve[0],Me=h?(Fe=ve.registeredClass).instancePrototype:fr.prototype;var it=hs(ie,function(){if(Object.getPrototypeOf(this)!==Ke)throw new Li("Use 'new' to construct "+Y);if(gt.constructor_body===void 0)throw new Li(Y+" has no accessible constructor");var ut=gt.constructor_body[arguments.length];if(ut===void 0)throw new Li(`Tried to invoke ctor of ${Y} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(gt.constructor_body).toString()}) parameters instead!`);return ut.apply(this,arguments)}),Ke=Object.create(Me,{constructor:{value:it}});it.prototype=Ke;var gt=new fs(Y,it,Ke,ne,Fe,A,R,x);gt.baseClass&&(gt.baseClass.__derivedClasses===void 0&&(gt.baseClass.__derivedClasses=[]),gt.baseClass.__derivedClasses.push(gt));var Wi=new gr(Y,gt,!0,!1,!1),cr=new gr(Y+"*",gt,!1,!1,!1),Do=new gr(Y+" const*",gt,!1,!0,!1);return Ao[a]={pointerType:cr,constPointerType:Do},function(ut,qp,Ju){o.hasOwnProperty(ut)||Yt("Replacing nonexistant public symbol"),o[ut].overloadTable!==void 0&&Ju!==void 0?o[ut].overloadTable[Ju]=qp:(o[ut]=qp,o[ut].argCount=Ju)}(ie,it),[Wi,cr,Do]})},q:function(a,d,p,h,I,A){var b=Tn(d,p);I=Fi(h,I),Pr([],[a],function(R){var L=`constructor ${(R=R[0]).name}`;if(R.registeredClass.constructor_body===void 0&&(R.registeredClass.constructor_body=[]),R.registeredClass.constructor_body[d-1]!==void 0)throw new Li(`Cannot register multiple constructors with identical number of parameters (${d-1}) for class '${R.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return R.registeredClass.constructor_body[d-1]=()=>{_s(`Cannot construct ${R.name} due to unbound types`,b)},Pr([],b,function(x){return x.splice(1,0,null),R.registeredClass.constructor_body[d-1]=$i(L,x,null,I,A),[]}),[]})},d:function(a,d,p,h,I,A,b,R,L){var x=Tn(p,h);d=bt(d),A=Fi(I,A),Pr([],[a],function(Y){var se=`${(Y=Y[0]).name}.${d}`;function ne(){_s(`Cannot call ${se} due to unbound types`,x)}d.startsWith("@@")&&(d=Symbol[d.substring(2)]),R&&Y.registeredClass.pureVirtualFunctions.push(d);var ie=Y.registeredClass.instancePrototype,ve=ie[d];return ve===void 0||ve.overloadTable===void 0&&ve.className!==Y.name&&ve.argCount===p-2?(ne.argCount=p-2,ne.className=Y.name,ie[d]=ne):(oc(ie,d,se),ie[d].overloadTable[p-2]=ne),Pr([],x,function(Fe){var Me=$i(se,Fe,Y,A,b,L);return ie[d].overloadTable===void 0?(Me.argCount=p-2,ie[d]=Me):ie[d].overloadTable[p-2]=Me,[]}),[]})},D:function(a,d){Zt(a,{name:d=bt(d),fromWireType:function(p){var h=Bi.toValue(p);return lc(p),h},toWireType:function(p,h){return Bi.toHandle(h)},argPackAdvance:8,readValueFromPointer:No,destructorFunction:null})},k:function(a,d,p){var h=Kr(p);Zt(a,{name:d=bt(d),fromWireType:function(I){return I},toWireType:function(I,A){return A},argPackAdvance:8,readValueFromPointer:mc(d,h),destructorFunction:null})},c:function(a,d,p,h,I){d=bt(d),I===-1&&(I=4294967295);var A=Kr(p),b=x=>x;if(h===0){var R=32-8*p;b=x=>x<<R>>>R}var L=d.includes("unsigned");Zt(a,{name:d,fromWireType:b,toWireType:L?function(x,Y){return this.name,Y>>>0}:function(x,Y){return this.name,Y},argPackAdvance:8,readValueFromPointer:pc(d,A,h!==0),destructorFunction:null})},b:function(a,d,p){var h=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][d];function I(A){var b=Ue,R=b[A>>=2],L=b[A+1];return new h(b.buffer,L,R)}Zt(a,{name:p=bt(p),fromWireType:I,argPackAdvance:8,readValueFromPointer:I},{ignoreDuplicateRegistrations:!0})},j:function(a,d){var p=(d=bt(d))==="std::string";Zt(a,{name:d,fromWireType:function(h){var I,A=Ue[h>>2],b=h+4;if(p)for(var R=b,L=0;L<=A;++L){var x=b+L;if(L==A||me[x]==0){var Y=Pi(R,x-R);I===void 0?I=Y:(I+="\0",I+=Y),R=x+1}}else{var se=new Array(A);for(L=0;L<A;++L)se[L]=String.fromCharCode(me[b+L]);I=se.join("")}return Rt(h),I},toWireType:function(h,I){var A;I instanceof ArrayBuffer&&(I=new Uint8Array(I));var b=typeof I=="string";b||I instanceof Uint8Array||I instanceof Uint8ClampedArray||I instanceof Int8Array||Ve("Cannot pass non-string to std::string"),A=p&&b?Io(I):I.length;var R=Hi(4+A+1),L=R+4;if(Ue[R>>2]=A,p&&b)So(I,me,L,A+1);else if(b)for(var x=0;x<A;++x){var Y=I.charCodeAt(x);Y>255&&(Rt(L),Ve("String has UTF-16 code units that do not fit in 8 bits")),me[L+x]=Y}else for(x=0;x<A;++x)me[L+x]=I[x];return h!==null&&h.push(Rt,R),R},argPackAdvance:8,readValueFromPointer:No,destructorFunction:function(h){Rt(h)}})},f:function(a,d,p){var h,I,A,b,R;p=bt(p),d===2?(h=T,I=C,b=w,A=()=>Xe,R=1):d===4&&(h=F,I=H,b=G,A=()=>Ue,R=2),Zt(a,{name:p,fromWireType:function(L){for(var x,Y=Ue[L>>2],se=A(),ne=L+4,ie=0;ie<=Y;++ie){var ve=L+4+ie*d;if(ie==Y||se[ve>>R]==0){var Fe=h(ne,ve-ne);x===void 0?x=Fe:(x+="\0",x+=Fe),ne=ve+d}}return Rt(L),x},toWireType:function(L,x){typeof x!="string"&&Ve(`Cannot pass non-string to C++ string type ${p}`);var Y=b(x),se=Hi(4+Y+d);return Ue[se>>2]=Y>>R,I(x,se+4,Y+d),L!==null&&L.push(Rt,se),se},argPackAdvance:8,readValueFromPointer:No,destructorFunction:function(L){Rt(L)}})},o:function(a,d){Zt(a,{isVoid:!0,name:d=bt(d),argPackAdvance:0,fromWireType:function(){},toWireType:function(p,h){}})},g:function(a,d,p,h){var I,A;(a=K[a])(d=Bi.toValue(d),p=(A=z[I=p])===void 0?bt(I):A,null,h)},m:lc,l:function(a,d){var p=function(Fe,Me){for(var it,Ke,gt,Wi=new Array(Fe),cr=0;cr<Fe;++cr)Wi[cr]=(it=Ue[Me+4*cr>>2],Ke="parameter "+cr,gt=void 0,(gt=ar[it])===void 0&&Ve(Ke+" has unknown type "+Es(it)),gt);return Wi}(a,d),h=p[0],I=h.name+"_$"+p.slice(1).map(function(Fe){return Fe.name}).join("_")+"$",A=W[I];if(A!==void 0)return A;for(var b=["retType"],R=[h],L="",x=0;x<a-1;++x)L+=(x!==0?", ":"")+"arg"+x,b.push("argType"+x),R.push(p[1+x]);var Y="return function "+Pt("methodCaller_"+I)+`(handle, name, destructors, args) {
|
|
66
|
+
`,se=0;for(x=0;x<a-1;++x)Y+=" var arg"+x+" = argType"+x+".readValueFromPointer(args"+(se?"+"+se:"")+`);
|
|
67
|
+
`,se+=p[x+1].argPackAdvance;for(Y+=" var rv = handle[name]("+L+`);
|
|
68
|
+
`,x=0;x<a-1;++x)p[x+1].deleteObject&&(Y+=" argType"+x+".deleteObject(arg"+x+`);
|
|
69
69
|
`);h.isVoid||(Y+=` return retType.toWireType(destructors, rv);
|
|
70
70
|
`),Y+=`};
|
|
71
|
-
`,b.push(Y);var se,ie,ve=In(Function,b).apply(null,R);return se=ve,ie=K.length,K.push(se),y=ie,W[I]=y,y},a:()=>{wr("")},e:function(){return Date.now()},v:()=>pe.length,A:(a,d,p)=>pe.copyWithin(a,d,d+p),u:a=>{pe.length,wr("OOM")},y:(a,d)=>{var p=0;return Ne().forEach(function(h,I){var y=d+p;Ue[a+4*I>>2]=y,((b,R)=>{for(var k=0;k<b.length;++k)ee[0|R++]=b.charCodeAt(k);ee[0|R]=0})(h,y),p+=h.length+1}),0},z:(a,d)=>{var p=Ne();Ue[a>>2]=p.length;var h=0;return p.forEach(function(I){h+=I.length+1}),Ue[d>>2]=h,0},i:function(a){try{var d=w.getStreamFromFD(a);return f.close(d),0}catch(p){if(f===void 0||p.name!=="ErrnoError")throw p;return p.errno}},x:function(a,d){try{var p=w.getStreamFromFD(a),h=p.tty?2:f.isDir(p.mode)?3:f.isLink(p.mode)?7:4;return ee[d|0]=h,ae[d+2>>1]=0,Ze=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[d+8>>2]=Ze[0],X[d+12>>2]=Ze[1],Ze=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[d+16>>2]=Ze[0],X[d+20>>2]=Ze[1],0}catch(I){if(f===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(a,d,p,h){try{var I=((y,b,R,k)=>{for(var O=0,Y=0;Y<R;Y++){var oe=Ue[b>>2],se=Ue[b+4>>2];b+=8;var ie=f.read(y,ee,oe,se,k);if(ie<0)return-1;if(O+=ie,ie<se)break;k!==void 0&&(k+=ie)}return O})(w.getStreamFromFD(a),d,p);return Ue[h>>2]=I,0}catch(y){if(f===void 0||y.name!=="ErrnoError")throw y;return y.errno}},s:function(a,d,p,h,I){var y,b,R=(b=p)+2097152>>>0<4194305-!!(y=d)?(y>>>0)+4294967296*b:NaN;try{if(isNaN(R))return 61;var k=w.getStreamFromFD(a);return f.llseek(k,R,h),Ze=[k.position>>>0,(Ee=k.position,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],X[I>>2]=Ze[0],X[I+4>>2]=Ze[1],k.getdents&&R===0&&h===0&&(k.getdents=null),0}catch(O){if(f===void 0||O.name!=="ErrnoError")throw O;return O.errno}},h:function(a,d,p,h){try{var I=((y,b,R,k)=>{for(var O=0,Y=0;Y<R;Y++){var oe=Ue[b>>2],se=Ue[b+4>>2];b+=8;var ie=f.write(y,ee,oe,se,k);if(ie<0)return-1;O+=ie,k!==void 0&&(k+=ie)}return O})(w.getStreamFromFD(a),d,p);return Ue[h>>2]=I,0}catch(y){if(f===void 0||y.name!=="ErrnoError")throw y;return y.errno}}},Bi=(function(){var a,d,p,h,I={a:Nt};function y(b,R){var k,O,Y=b.exports;return M=(B=Y).E,k=M.buffer,o.HEAP8=ee=new Int8Array(k),o.HEAP16=ae=new Int16Array(k),o.HEAP32=X=new Int32Array(k),o.HEAPU8=pe=new Uint8Array(k),o.HEAPU16=Xe=new Uint16Array(k),o.HEAPU32=Ue=new Uint32Array(k),o.HEAPF32=_o=new Float32Array(k),o.HEAPF64=ln=new Float64Array(k),mn=B.H,O=B.F,us.unshift(O),To(),Y}if(ls(),o.instantiateWasm)try{return o.instantiateWasm(I,y)}catch(b){x("Module.instantiateWasm callback failed with error: "+b),r(b)}(a=v,d=Qr,p=I,h=function(b){y(b.instance)},a||typeof WebAssembly.instantiateStreaming!="function"||Ot(d)||typeof fetch!="function"?Or(d,p,h):fetch(d,{credentials:"same-origin"}).then(b=>WebAssembly.instantiateStreaming(b,p).then(h,function(R){return x("wasm streaming compile failed: "+R),x("falling back to ArrayBuffer instantiation"),Or(d,p,h)}))).catch(r)}(),a=>(Bi=B.G)(a)),Rt=a=>(Rt=B.I)(a),Sn=()=>(Sn=B.J)(),_r=a=>(_r=B.K)(a),An=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=B.L)(),a=>(An=B.M)(a));o.dynCall_jiji=(a,d,p,h,I)=>(o.dynCall_jiji=B.N)(a,d,p,h,I),o._ff_h264_cabac_tables=67061;function Is(){function a(){Je||(Je=!0,o.calledRun=!0,pn||(o.noFSInit||f.init.initialized||f.init(),f.ignorePermissions=!1,ce.init(),Mi(us),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)d=o.postRun.shift(),Di.unshift(d);var d;Mi(Di)}()))}nr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)d=o.preRun.shift(),Mr.unshift(d);var d;Mi(Mr)}(),nr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),a()},1)):a()))}if(Xr=function a(){Je||Is(),Je||(Xr=a)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Is(),t.ready}})(),ZI=YI,KI=class extends Da{constructor(i){super(ZI,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},cO=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((S,T)=>{e=S,r=T});var s,n=Object.assign({},o),c=typeof window=="object",l=typeof importScripts=="function",m=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(c||l)&&(l?m=self.location.href:typeof document!="undefined"&&document.currentScript&&(m=document.currentScript.src),i&&(m=i),m=m.indexOf("blob:")!==0?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",l&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var E,g=o.print||console.log.bind(console),_=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(E=o.wasmBinary);var v,L;o.noExitRuntime,typeof WebAssembly!="object"&&nr("no native wasm support detected");var x,M,B,ee,pe,ae,Xe,X,Ue,_o=!1,ln=[],mn=[],pn=[],Mr=0,us=null,Di=null;function nr(S){o.onAbort&&o.onAbort(S),_(S="Aborted("+S+")"),_o=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var te,Xr;function ls(S){return S.startsWith("data:application/octet-stream;base64,")}function To(S){if(S==te&&E)return new Uint8Array(E);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function wr(S,T,C){return function(D){return E||!c&&!l||typeof fetch!="function"?Promise.resolve().then(()=>To(D)):fetch(D,{credentials:"same-origin"}).then(F=>{if(!F.ok)throw"failed to load wasm binary file at '"+D+"'";return F.arrayBuffer()}).catch(()=>To(D))}(S).then(D=>WebAssembly.instantiate(D,T)).then(D=>D).then(C,D=>{_("failed to asynchronously prepare wasm: "+D),nr(D)})}ls(te="videodec_simd.wasm")||(Xr=te,te=o.locateFile?o.locateFile(Xr,m):m+Xr);var Qr=S=>{for(;S.length>0;)S.shift()(o)};function hn(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){ae[this.ptr+4>>2]=T},this.get_type=function(){return ae[this.ptr+4>>2]},this.set_destructor=function(T){ae[this.ptr+8>>2]=T},this.get_destructor=function(){return ae[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,x[this.ptr+12|0]=T},this.get_caught=function(){return x[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,x[this.ptr+13|0]=T},this.get_rethrown=function(){return x[this.ptr+13|0]!=0},this.init=function(T,C){this.set_adjusted_ptr(0),this.set_type(T),this.set_destructor(C)},this.set_adjusted_ptr=function(T){ae[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return ae[this.ptr+16>>2]},this.get_exception_ptr=function(){if(dc(this.get_type()))return ae[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Ee(S){switch(S){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${S}`)}}var Ze=void 0;function Ot(S){for(var T="",C=S;M[C];)T+=Ze[M[C++]];return T}var j={},Or={},Mi={},wi=void 0;function me(S){throw new wi(S)}var fn=void 0;function qt(S){throw new fn(S)}function Oi(S,T,C){function D(J){var K=C(J);K.length!==S.length&&qt("Mismatched type converter count");for(var W=0;W<S.length;++W)xt(S[W],K[W])}S.forEach(function(J){Mi[J]=T});var F=new Array(T.length),H=[],G=0;T.forEach((J,K)=>{Or.hasOwnProperty(J)?F[K]=Or[J]:(H.push(J),j.hasOwnProperty(J)||(j[J]=[]),j[J].push(()=>{F[K]=Or[J],++G===H.length&&D(F)}))}),H.length===0&&D(F)}function xt(S,T,C={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(D,F,H={}){var G=F.name;if(D||me(`type "${G}" must have a positive integer typeid pointer`),Or.hasOwnProperty(D)){if(H.ignoreDuplicateRegistrations)return;me(`Cannot register type '${G}' twice`)}if(Or[D]=F,delete Mi[D],j.hasOwnProperty(D)){var J=j[D];delete j[D],J.forEach(K=>K())}}(S,T,C)}function gn(S){if(!(this instanceof Yt)||!(S instanceof Yt))return!1;for(var T=this.$$.ptrType.registeredClass,C=this.$$.ptr,D=S.$$.ptrType.registeredClass,F=S.$$.ptr;T.baseClass;)C=T.upcast(C),T=T.baseClass;for(;D.baseClass;)F=D.upcast(F),D=D.baseClass;return T===D&&C===F}function Io(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var So=!1;function ms(S){}function ce(S){S.count.value-=1,S.count.value===0&&function(T){T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)}(S)}function En(S,T,C){if(T===C)return S;if(C.baseClass===void 0)return null;var D=En(S,T,C.baseClass);return D===null?null:C.downcast(D)}var ye={};function ku(){return Object.keys(Zr).length}function Lu(){var S=[];for(var T in Zr)Zr.hasOwnProperty(T)&&S.push(Zr[T]);return S}var Yr=[];function f(){for(;Yr.length;){var S=Yr.pop();S.$$.deleteScheduled=!1,S.delete()}}var xi=void 0;function w(S){xi=S,Yr.length&&xi&&xi(f)}var Zr={};function Ga(S,T){return T=function(C,D){for(D===void 0&&me("ptr should not be undefined");C.baseClass;)D=C.upcast(D),C=C.baseClass;return D}(S,T),Zr[T]}function bt(S,T){return T.ptrType&&T.ptr||qt("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&qt("Both smartPtrType and smartPtr must be specified"),T.count={value:1},ar(Object.create(S,{$$:{value:T}}))}function Pi(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var C=Ga(this.registeredClass,T);if(C!==void 0){if(C.$$.count.value===0)return C.$$.ptr=T,C.$$.smartPtr=S,C.clone();var D=C.clone();return this.destructor(S),D}function F(){return this.isSmartPointer?bt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):bt(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var H,G=this.registeredClass.getActualType(T),J=ye[G];if(!J)return F.call(this);H=this.isConst?J.constPointerType:J.pointerType;var K=En(T,this.registeredClass,H.registeredClass);return K===null?F.call(this):this.isSmartPointer?bt(H.registeredClass.instancePrototype,{ptrType:H,ptr:K,smartPtrType:this,smartPtr:S}):bt(H.registeredClass.instancePrototype,{ptrType:H,ptr:K})}var ar=function(S){return typeof FinalizationRegistry=="undefined"?(ar=T=>T,S):(So=new FinalizationRegistry(T=>{ce(T.$$)}),ms=T=>So.unregister(T),(ar=T=>{var C=T.$$;if(C.smartPtr){var D={$$:C};So.register(T,D,T)}return T})(S))};function ps(){if(this.$$.ptr||Io(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=ar(Object.create(Object.getPrototypeOf(this),{$$:{value:(S=this.$$,{count:S.count,deleteScheduled:S.deleteScheduled,preservePointerOnDelete:S.preservePointerOnDelete,ptr:S.ptr,ptrType:S.ptrType,smartPtr:S.smartPtr,smartPtrType:S.smartPtrType})}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T}function ki(){this.$$.ptr||Io(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),ms(this),ce(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ve(){return!this.$$.ptr}function ja(){return this.$$.ptr||Io(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Yr.push(this),Yr.length===1&&xi&&xi(f),this.$$.deleteScheduled=!0,this}function Yt(){}function xr(S){if(S===void 0)return"_unknown";var T=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return T>=48&&T<=57?`_${S}`:S}function Zt(S,T){return S=xr(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function qa(S,T,C){if(S[T].overloadTable===void 0){var D=S[T];S[T]=function(){return S[T].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${C}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[T].overloadTable})!`),S[T].overloadTable[arguments.length].apply(this,arguments)},S[T].overloadTable=[],S[T].overloadTable[D.argCount]=D}}function _n(S,T,C,D,F,H,G,J){this.name=S,this.constructor=T,this.instancePrototype=C,this.rawDestructor=D,this.baseClass=F,this.getActualType=H,this.upcast=G,this.downcast=J,this.pureVirtualFunctions=[]}function Ao(S,T,C){for(;T!==C;)T.upcast||me(`Expected null or instance of ${C.name}, got an instance of ${T.name}`),S=T.upcast(S),T=T.baseClass;return S}function Ja(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Co(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var C=T.$$.ptrType.registeredClass;return Ao(T.$$.ptr,C,this.registeredClass)}function za(S,T){var C;if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(C=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,C),C):0;T.$$||me(`Cannot pass "${Co(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);var D=T.$$.ptrType.registeredClass;if(C=Ao(T.$$.ptr,D,this.registeredClass),this.isSmartPointer)switch(T.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:T.$$.smartPtrType===this?C=T.$$.smartPtr:me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:C=T.$$.smartPtr;break;case 2:if(T.$$.smartPtrType===this)C=T.$$.smartPtr;else{var F=T.clone();C=this.rawShare(C,fs.toHandle(function(){F.delete()})),S!==null&&S.push(this.rawDestructor,C)}break;default:me("Unsupporting sharing policy")}return C}function Xa(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Co(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.ptrType.name} to parameter type ${this.name}`);var C=T.$$.ptrType.registeredClass;return Ao(T.$$.ptr,C,this.registeredClass)}function yo(S){return this.fromWireType(pe[S>>2])}function Uu(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function Vu(S){this.rawDestructor&&this.rawDestructor(S)}function bo(S){S!==null&&S.delete()}function Kt(S,T,C,D,F,H,G,J,K,W,he){this.name=S,this.registeredClass=T,this.isReference=C,this.isConst=D,this.isSmartPointer=F,this.pointeeType=H,this.sharingPolicy=G,this.rawGetPointee=J,this.rawConstructor=K,this.rawShare=W,this.rawDestructor=he,F||T.baseClass!==void 0?this.toWireType=za:D?(this.toWireType=Ja,this.destructorFunction=null):(this.toWireType=Xa,this.destructorFunction=null)}var Pr=[],Qa=S=>{var T=Pr[S];return T||(S>=Pr.length&&(Pr.length=S+1),Pr[S]=T=Ue.get(S)),T},Ro=(S,T,C)=>S.includes("j")?((D,F,H)=>{var G=o["dynCall_"+D];return H&&H.length?G.apply(null,[F].concat(H)):G.call(null,F)})(S,T,C):Qa(T).apply(null,C);function Li(S,T){var C,D,F,H=(S=Ot(S)).includes("j")?(C=S,D=T,F=[],function(){return F.length=0,Object.assign(F,arguments),Ro(C,D,F)}):Qa(T);return typeof H!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),H}var vo=void 0;function Ya(S){var T=Ts(S),C=Ot(T);return Er(T),C}function Ui(S,T){var C=[],D={};throw T.forEach(function F(H){D[H]||Or[H]||(Mi[H]?Mi[H].forEach(F):(C.push(H),D[H]=!0))}),new vo(`${S}: `+C.map(Ya).join([", "]))}function Za(S,T){for(var C=[],D=0;D<S;D++)C.push(ae[T+4*D>>2]);return C}function Fu(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function Ka(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var C=Zt(S.name||"unknownFunctionName",function(){});C.prototype=S.prototype;var D=new C,F=S.apply(D,T);return F instanceof Object?F:D}function ec(S,T,C,D,F,H){var G=T.length;G<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var J=T[1]!==null&&C!==null,K=!1,W=1;W<T.length;++W)if(T[W]!==null&&T[W].destructorFunction===void 0){K=!0;break}var he=T[0].name!=="void",Ne="",Re="";for(W=0;W<G-2;++W)Ne+=(W!==0?", ":"")+"arg"+W,Re+=(W!==0?", ":"")+"arg"+W+"Wired";var ge=`
|
|
72
|
-
return function ${
|
|
71
|
+
`,b.push(Y);var ne,ie,ve=In(Function,b).apply(null,R);return ne=ve,ie=K.length,K.push(ne),A=ie,W[I]=A,A},a:()=>{Or("")},e:function(){return Date.now()},v:()=>me.length,A:(a,d,p)=>me.copyWithin(a,d,d+p),u:a=>{me.length,Or("OOM")},y:(a,d)=>{var p=0;return De().forEach(function(h,I){var A=d+p;Ue[a+4*I>>2]=A,((b,R)=>{for(var L=0;L<b.length;++L)ee[0|R++]=b.charCodeAt(L);ee[0|R]=0})(h,A),p+=h.length+1}),0},z:(a,d)=>{var p=De();Ue[a>>2]=p.length;var h=0;return p.forEach(function(I){h+=I.length+1}),Ue[d>>2]=h,0},i:function(a){try{var d=O.getStreamFromFD(a);return g.close(d),0}catch(p){if(g===void 0||p.name!=="ErrnoError")throw p;return p.errno}},x:function(a,d){try{var p=O.getStreamFromFD(a),h=p.tty?2:g.isDir(p.mode)?3:g.isLink(p.mode)?7:4;return ee[d|0]=h,oe[d+2>>1]=0,Ze=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[d+8>>2]=Ze[0],J[d+12>>2]=Ze[1],Ze=[0,(Ee=0,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[d+16>>2]=Ze[0],J[d+20>>2]=Ze[1],0}catch(I){if(g===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(a,d,p,h){try{var I=((A,b,R,L)=>{for(var x=0,Y=0;Y<R;Y++){var se=Ue[b>>2],ne=Ue[b+4>>2];b+=8;var ie=g.read(A,ee,se,ne,L);if(ie<0)return-1;if(x+=ie,ie<ne)break;L!==void 0&&(L+=ie)}return x})(O.getStreamFromFD(a),d,p);return Ue[h>>2]=I,0}catch(A){if(g===void 0||A.name!=="ErrnoError")throw A;return A.errno}},s:function(a,d,p,h,I){var A,b,R=(b=p)+2097152>>>0<4194305-!!(A=d)?(A>>>0)+4294967296*b:NaN;try{if(isNaN(R))return 61;var L=O.getStreamFromFD(a);return g.llseek(L,R,h),Ze=[L.position>>>0,(Ee=L.position,+Math.abs(Ee)>=1?Ee>0?+Math.floor(Ee/4294967296)>>>0:~~+Math.ceil((Ee-+(~~Ee>>>0))/4294967296)>>>0:0)],J[I>>2]=Ze[0],J[I+4>>2]=Ze[1],L.getdents&&R===0&&h===0&&(L.getdents=null),0}catch(x){if(g===void 0||x.name!=="ErrnoError")throw x;return x.errno}},h:function(a,d,p,h){try{var I=((A,b,R,L)=>{for(var x=0,Y=0;Y<R;Y++){var se=Ue[b>>2],ne=Ue[b+4>>2];b+=8;var ie=g.write(A,ee,se,ne,L);if(ie<0)return-1;x+=ie,L!==void 0&&(L+=ie)}return x})(O.getStreamFromFD(a),d,p);return Ue[h>>2]=I,0}catch(A){if(g===void 0||A.name!=="ErrnoError")throw A;return A.errno}}},Hi=(function(){var a,d,p,h,I={a:Nt};function A(b,R){var L,x,Y=b.exports;return N=(B=Y).E,L=N.buffer,o.HEAP8=ee=new Int8Array(L),o.HEAP16=oe=new Int16Array(L),o.HEAP32=J=new Int32Array(L),o.HEAPU8=me=new Uint8Array(L),o.HEAPU16=Xe=new Uint16Array(L),o.HEAPU32=Ue=new Uint32Array(L),o.HEAPF32=_o=new Float32Array(L),o.HEAPF64=ln=new Float64Array(L),mn=B.H,x=B.F,us.unshift(x),To(),Y}if(ls(),o.instantiateWasm)try{return o.instantiateWasm(I,A)}catch(b){M("Module.instantiateWasm callback failed with error: "+b),r(b)}(a=v,d=Yr,p=I,h=function(b){A(b.instance)},a||typeof WebAssembly.instantiateStreaming!="function"||Ot(d)||typeof fetch!="function"?xr(d,p,h):fetch(d,{credentials:"same-origin"}).then(b=>WebAssembly.instantiateStreaming(b,p).then(h,function(R){return M("wasm streaming compile failed: "+R),M("falling back to ArrayBuffer instantiation"),xr(d,p,h)}))).catch(r)}(),a=>(Hi=B.G)(a)),Rt=a=>(Rt=B.I)(a),Sn=()=>(Sn=B.J)(),_r=a=>(_r=B.K)(a),yn=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=B.L)(),a=>(yn=B.M)(a));o.dynCall_jiji=(a,d,p,h,I)=>(o.dynCall_jiji=B.N)(a,d,p,h,I),o._ff_h264_cabac_tables=67061;function Is(){function a(){Je||(Je=!0,o.calledRun=!0,pn||(o.noFSInit||g.init.initialized||g.init(),g.ignorePermissions=!1,ce.init(),Mi(us),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)d=o.postRun.shift(),wi.unshift(d);var d;Mi(wi)}()))}nr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)d=o.preRun.shift(),Mr.unshift(d);var d;Mi(Mr)}(),nr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),a()},1)):a()))}if(Qr=function a(){Je||Is(),Je||(Qr=a)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Is(),t.ready}})(),rS=tS,iS=class extends Oa{constructor(i){super(rS,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},hO=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((S,T)=>{e=S,r=T});var s,n=Object.assign({},o),c=typeof window=="object",l=typeof importScripts=="function",m=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(c||l)&&(l?m=self.location.href:typeof document!="undefined"&&document.currentScript&&(m=document.currentScript.src),i&&(m=i),m=m.indexOf("blob:")!==0?m.substr(0,m.replace(/[?#].*/,"").lastIndexOf("/")+1):"",l&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var f,E=o.print||console.log.bind(console),_=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(f=o.wasmBinary);var v,k;o.noExitRuntime,typeof WebAssembly!="object"&&nr("no native wasm support detected");var M,N,B,ee,me,oe,Xe,J,Ue,_o=!1,ln=[],mn=[],pn=[],Mr=0,us=null,wi=null;function nr(S){o.onAbort&&o.onAbort(S),_(S="Aborted("+S+")"),_o=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var te,Qr;function ls(S){return S.startsWith("data:application/octet-stream;base64,")}function To(S){if(S==te&&f)return new Uint8Array(f);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Or(S,T,C){return function(w){return f||!c&&!l||typeof fetch!="function"?Promise.resolve().then(()=>To(w)):fetch(w,{credentials:"same-origin"}).then(F=>{if(!F.ok)throw"failed to load wasm binary file at '"+w+"'";return F.arrayBuffer()}).catch(()=>To(w))}(S).then(w=>WebAssembly.instantiate(w,T)).then(w=>w).then(C,w=>{_("failed to asynchronously prepare wasm: "+w),nr(w)})}ls(te="videodec_simd.wasm")||(Qr=te,te=o.locateFile?o.locateFile(Qr,m):m+Qr);var Yr=S=>{for(;S.length>0;)S.shift()(o)};function hn(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){oe[this.ptr+4>>2]=T},this.get_type=function(){return oe[this.ptr+4>>2]},this.set_destructor=function(T){oe[this.ptr+8>>2]=T},this.get_destructor=function(){return oe[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,M[this.ptr+12|0]=T},this.get_caught=function(){return M[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,M[this.ptr+13|0]=T},this.get_rethrown=function(){return M[this.ptr+13|0]!=0},this.init=function(T,C){this.set_adjusted_ptr(0),this.set_type(T),this.set_destructor(C)},this.set_adjusted_ptr=function(T){oe[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return oe[this.ptr+16>>2]},this.get_exception_ptr=function(){if(mc(this.get_type()))return oe[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Ee(S){switch(S){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${S}`)}}var Ze=void 0;function Ot(S){for(var T="",C=S;N[C];)T+=Ze[N[C++]];return T}var j={},xr={},Mi={},Oi=void 0;function pe(S){throw new Oi(S)}var fn=void 0;function qt(S){throw new fn(S)}function xi(S,T,C){function w(z){var K=C(z);K.length!==S.length&&qt("Mismatched type converter count");for(var W=0;W<S.length;++W)xt(S[W],K[W])}S.forEach(function(z){Mi[z]=T});var F=new Array(T.length),H=[],G=0;T.forEach((z,K)=>{xr.hasOwnProperty(z)?F[K]=xr[z]:(H.push(z),j.hasOwnProperty(z)||(j[z]=[]),j[z].push(()=>{F[K]=xr[z],++G===H.length&&w(F)}))}),H.length===0&&w(F)}function xt(S,T,C={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(w,F,H={}){var G=F.name;if(w||pe(`type "${G}" must have a positive integer typeid pointer`),xr.hasOwnProperty(w)){if(H.ignoreDuplicateRegistrations)return;pe(`Cannot register type '${G}' twice`)}if(xr[w]=F,delete Mi[w],j.hasOwnProperty(w)){var z=j[w];delete j[w],z.forEach(K=>K())}}(S,T,C)}function gn(S){if(!(this instanceof Yt)||!(S instanceof Yt))return!1;for(var T=this.$$.ptrType.registeredClass,C=this.$$.ptr,w=S.$$.ptrType.registeredClass,F=S.$$.ptr;T.baseClass;)C=T.upcast(C),T=T.baseClass;for(;w.baseClass;)F=w.upcast(F),w=w.baseClass;return T===w&&C===F}function Io(S){pe(S.$$.ptrType.registeredClass.name+" instance already deleted")}var So=!1;function ms(S){}function ce(S){S.count.value-=1,S.count.value===0&&function(T){T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)}(S)}function En(S,T,C){if(T===C)return S;if(C.baseClass===void 0)return null;var w=En(S,T,C.baseClass);return w===null?null:C.downcast(w)}var Ae={};function Uu(){return Object.keys(Kr).length}function Vu(){var S=[];for(var T in Kr)Kr.hasOwnProperty(T)&&S.push(Kr[T]);return S}var Zr=[];function g(){for(;Zr.length;){var S=Zr.pop();S.$$.deleteScheduled=!1,S.delete()}}var Pi=void 0;function O(S){Pi=S,Zr.length&&Pi&&Pi(g)}var Kr={};function Ja(S,T){return T=function(C,w){for(w===void 0&&pe("ptr should not be undefined");C.baseClass;)w=C.upcast(w),C=C.baseClass;return w}(S,T),Kr[T]}function bt(S,T){return T.ptrType&&T.ptr||qt("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&qt("Both smartPtrType and smartPtr must be specified"),T.count={value:1},ar(Object.create(S,{$$:{value:T}}))}function ki(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var C=Ja(this.registeredClass,T);if(C!==void 0){if(C.$$.count.value===0)return C.$$.ptr=T,C.$$.smartPtr=S,C.clone();var w=C.clone();return this.destructor(S),w}function F(){return this.isSmartPointer?bt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):bt(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var H,G=this.registeredClass.getActualType(T),z=Ae[G];if(!z)return F.call(this);H=this.isConst?z.constPointerType:z.pointerType;var K=En(T,this.registeredClass,H.registeredClass);return K===null?F.call(this):this.isSmartPointer?bt(H.registeredClass.instancePrototype,{ptrType:H,ptr:K,smartPtrType:this,smartPtr:S}):bt(H.registeredClass.instancePrototype,{ptrType:H,ptr:K})}var ar=function(S){return typeof FinalizationRegistry=="undefined"?(ar=T=>T,S):(So=new FinalizationRegistry(T=>{ce(T.$$)}),ms=T=>So.unregister(T),(ar=T=>{var C=T.$$;if(C.smartPtr){var w={$$:C};So.register(T,w,T)}return T})(S))};function ps(){if(this.$$.ptr||Io(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=ar(Object.create(Object.getPrototypeOf(this),{$$:{value:(S=this.$$,{count:S.count,deleteScheduled:S.deleteScheduled,preservePointerOnDelete:S.preservePointerOnDelete,ptr:S.ptr,ptrType:S.ptrType,smartPtr:S.smartPtr,smartPtrType:S.smartPtrType})}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T}function Li(){this.$$.ptr||Io(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pe("Object already scheduled for deletion"),ms(this),ce(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ve(){return!this.$$.ptr}function za(){return this.$$.ptr||Io(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pe("Object already scheduled for deletion"),Zr.push(this),Zr.length===1&&Pi&&Pi(g),this.$$.deleteScheduled=!0,this}function Yt(){}function Pr(S){if(S===void 0)return"_unknown";var T=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return T>=48&&T<=57?`_${S}`:S}function Zt(S,T){return S=Pr(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function Xa(S,T,C){if(S[T].overloadTable===void 0){var w=S[T];S[T]=function(){return S[T].overloadTable.hasOwnProperty(arguments.length)||pe(`Function '${C}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[T].overloadTable})!`),S[T].overloadTable[arguments.length].apply(this,arguments)},S[T].overloadTable=[],S[T].overloadTable[w.argCount]=w}}function _n(S,T,C,w,F,H,G,z){this.name=S,this.constructor=T,this.instancePrototype=C,this.rawDestructor=w,this.baseClass=F,this.getActualType=H,this.upcast=G,this.downcast=z,this.pureVirtualFunctions=[]}function yo(S,T,C){for(;T!==C;)T.upcast||pe(`Expected null or instance of ${C.name}, got an instance of ${T.name}`),S=T.upcast(S),T=T.baseClass;return S}function Qa(S,T){if(T===null)return this.isReference&&pe(`null is not a valid ${this.name}`),0;T.$$||pe(`Cannot pass "${Co(T)}" as a ${this.name}`),T.$$.ptr||pe(`Cannot pass deleted object as a pointer of type ${this.name}`);var C=T.$$.ptrType.registeredClass;return yo(T.$$.ptr,C,this.registeredClass)}function Ya(S,T){var C;if(T===null)return this.isReference&&pe(`null is not a valid ${this.name}`),this.isSmartPointer?(C=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,C),C):0;T.$$||pe(`Cannot pass "${Co(T)}" as a ${this.name}`),T.$$.ptr||pe(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&T.$$.ptrType.isConst&&pe(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);var w=T.$$.ptrType.registeredClass;if(C=yo(T.$$.ptr,w,this.registeredClass),this.isSmartPointer)switch(T.$$.smartPtr===void 0&&pe("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:T.$$.smartPtrType===this?C=T.$$.smartPtr:pe(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:C=T.$$.smartPtr;break;case 2:if(T.$$.smartPtrType===this)C=T.$$.smartPtr;else{var F=T.clone();C=this.rawShare(C,fs.toHandle(function(){F.delete()})),S!==null&&S.push(this.rawDestructor,C)}break;default:pe("Unsupporting sharing policy")}return C}function Za(S,T){if(T===null)return this.isReference&&pe(`null is not a valid ${this.name}`),0;T.$$||pe(`Cannot pass "${Co(T)}" as a ${this.name}`),T.$$.ptr||pe(`Cannot pass deleted object as a pointer of type ${this.name}`),T.$$.ptrType.isConst&&pe(`Cannot convert argument of type ${T.$$.ptrType.name} to parameter type ${this.name}`);var C=T.$$.ptrType.registeredClass;return yo(T.$$.ptr,C,this.registeredClass)}function Ao(S){return this.fromWireType(me[S>>2])}function Fu(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function $u(S){this.rawDestructor&&this.rawDestructor(S)}function bo(S){S!==null&&S.delete()}function Kt(S,T,C,w,F,H,G,z,K,W,he){this.name=S,this.registeredClass=T,this.isReference=C,this.isConst=w,this.isSmartPointer=F,this.pointeeType=H,this.sharingPolicy=G,this.rawGetPointee=z,this.rawConstructor=K,this.rawShare=W,this.rawDestructor=he,F||T.baseClass!==void 0?this.toWireType=Ya:w?(this.toWireType=Qa,this.destructorFunction=null):(this.toWireType=Za,this.destructorFunction=null)}var kr=[],Ka=S=>{var T=kr[S];return T||(S>=kr.length&&(kr.length=S+1),kr[S]=T=Ue.get(S)),T},Ro=(S,T,C)=>S.includes("j")?((w,F,H)=>{var G=o["dynCall_"+w];return H&&H.length?G.apply(null,[F].concat(H)):G.call(null,F)})(S,T,C):Ka(T).apply(null,C);function Ui(S,T){var C,w,F,H=(S=Ot(S)).includes("j")?(C=S,w=T,F=[],function(){return F.length=0,Object.assign(F,arguments),Ro(C,w,F)}):Ka(T);return typeof H!="function"&&pe(`unknown function pointer with signature ${S}: ${T}`),H}var vo=void 0;function ec(S){var T=Ts(S),C=Ot(T);return Er(T),C}function Vi(S,T){var C=[],w={};throw T.forEach(function F(H){w[H]||xr[H]||(Mi[H]?Mi[H].forEach(F):(C.push(H),w[H]=!0))}),new vo(`${S}: `+C.map(ec).join([", "]))}function tc(S,T){for(var C=[],w=0;w<S;w++)C.push(oe[T+4*w>>2]);return C}function Bu(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function rc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var C=Zt(S.name||"unknownFunctionName",function(){});C.prototype=S.prototype;var w=new C,F=S.apply(w,T);return F instanceof Object?F:w}function ic(S,T,C,w,F,H){var G=T.length;G<2&&pe("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var z=T[1]!==null&&C!==null,K=!1,W=1;W<T.length;++W)if(T[W]!==null&&T[W].destructorFunction===void 0){K=!0;break}var he=T[0].name!=="void",De="",Re="";for(W=0;W<G-2;++W)De+=(W!==0?", ":"")+"arg"+W,Re+=(W!==0?", ":"")+"arg"+W+"Wired";var ge=`
|
|
72
|
+
return function ${Pr(S)}(${De}) {
|
|
73
73
|
if (arguments.length !== ${G-2}) {
|
|
74
74
|
throwBindingError('function ${S} called with ${arguments.length} arguments, expected ${G-2} args!');
|
|
75
75
|
}`;K&&(ge+=`var destructors = [];
|
|
76
|
-
`);var
|
|
77
|
-
`),W=0;W<G-2;++W)ge+="var arg"+W+"Wired = argType"+W+".toWireType("+
|
|
78
|
-
`,rt.push("argType"+W),qe.push(T[W+2]);if(
|
|
76
|
+
`);var we=K?"destructors":"null",rt=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],qe=[pe,w,F,Bu,T[0],T[1]];for(z&&(ge+="var thisWired = classParam.toWireType("+we+`, this);
|
|
77
|
+
`),W=0;W<G-2;++W)ge+="var arg"+W+"Wired = argType"+W+".toWireType("+we+", arg"+W+"); // "+T[W+2].name+`
|
|
78
|
+
`,rt.push("argType"+W),qe.push(T[W+2]);if(z&&(Re="thisWired"+(Re.length>0?", ":"")+Re),ge+=(he||H?"var rv = ":"")+"invoker(fn"+(Re.length>0?", ":"")+Re+`);
|
|
79
79
|
`,K)ge+=`runDestructors(destructors);
|
|
80
|
-
`;else for(W=
|
|
80
|
+
`;else for(W=z?1:2;W<T.length;++W){var pt=W===1?"thisWired":"arg"+(W-2)+"Wired";T[W].destructorFunction!==null&&(ge+=pt+"_dtor("+pt+"); // "+T[W].name+`
|
|
81
81
|
`,rt.push(pt+"_dtor"),qe.push(T[W].destructorFunction))}return he&&(ge+=`var ret = retType.fromWireType(rv);
|
|
82
82
|
return ret;
|
|
83
83
|
`),ge+=`}
|
|
84
|
-
`,rt.push(ge),
|
|
85
|
-
`+T.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(
|
|
86
|
-
`,
|
|
87
|
-
`,
|
|
84
|
+
`,rt.push(ge),rc(Function,rt).apply(null,qe)}function fr(){this.allocated=[void 0],this.freelist=[]}var Pt=new fr;function hs(S){S>=Pt.reserved&&--Pt.get(S).refcount==0&&Pt.free(S)}function oc(){for(var S=0,T=Pt.reserved;T<Pt.allocated.length;++T)Pt.allocated[T]!==void 0&&++S;return S}var fs={toValue:S=>(S||pe("Cannot use deleted val. handle = "+S),Pt.get(S).value),toHandle:S=>{switch(S){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Pt.allocate({refcount:1,value:S})}}};function Co(S){if(S===null)return"null";var T=typeof S;return T==="object"||T==="array"||T==="function"?S.toString():""+S}function Hu(S,T){switch(T){case 2:return function(C){return this.fromWireType(Xe[C>>2])};case 3:return function(C){return this.fromWireType(J[C>>3])};default:throw new TypeError("Unknown float type: "+S)}}function Wu(S,T,C){switch(T){case 0:return C?function(w){return M[w]}:function(w){return N[w]};case 1:return C?function(w){return B[w>>1]}:function(w){return ee[w>>1]};case 2:return C?function(w){return me[w>>2]}:function(w){return oe[w>>2]};default:throw new TypeError("Unknown integer type: "+S)}}var sc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,No=(S,T,C)=>{for(var w=T+C,F=T;S[F]&&!(F>=w);)++F;if(F-T>16&&S.buffer&&sc)return sc.decode(S.subarray(T,F));for(var H="";T<F;){var G=S[T++];if(128&G){var z=63&S[T++];if((224&G)!=192){var K=63&S[T++];if((G=(240&G)==224?(15&G)<<12|z<<6|K:(7&G)<<18|z<<12|K<<6|63&S[T++])<65536)H+=String.fromCharCode(G);else{var W=G-65536;H+=String.fromCharCode(55296|W>>10,56320|1023&W)}}else H+=String.fromCharCode((31&G)<<6|z)}else H+=String.fromCharCode(G)}return H},Gu=(S,T)=>S?No(N,S,T):"",nc=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,ju=(S,T)=>{for(var C=S,w=C>>1,F=w+T/2;!(w>=F)&&ee[w];)++w;if((C=w<<1)-S>32&&nc)return nc.decode(N.subarray(S,C));for(var H="",G=0;!(G>=T/2);++G){var z=B[S+2*G>>1];if(z==0)break;H+=String.fromCharCode(z)}return H},gr=(S,T,C)=>{if(C===void 0&&(C=2147483647),C<2)return 0;for(var w=T,F=(C-=2)<2*S.length?C/2:S.length,H=0;H<F;++H){var G=S.charCodeAt(H);B[T>>1]=G,T+=2}return B[T>>1]=0,T-w},gs=S=>2*S.length,ac=(S,T)=>{for(var C=0,w="";!(C>=T/4);){var F=me[S+4*C>>2];if(F==0)break;if(++C,F>=65536){var H=F-65536;w+=String.fromCharCode(55296|H>>10,56320|1023&H)}else w+=String.fromCharCode(F)}return w},qu=(S,T,C)=>{if(C===void 0&&(C=2147483647),C<4)return 0;for(var w=T,F=w+C-4,H=0;H<S.length;++H){var G=S.charCodeAt(H);if(G>=55296&&G<=57343&&(G=65536+((1023&G)<<10)|1023&S.charCodeAt(++H)),me[T>>2]=G,(T+=4)+4>F)break}return me[T>>2]=0,T-w},Fi=S=>{for(var T=0,C=0;C<S.length;++C){var w=S.charCodeAt(C);w>=55296&&w<=57343&&++C,T+=4}return T},cc={},Es=[],_s=[],Tn;Tn=()=>performance.now();var dc,In,$i,uc=[null,[],[]];(function(){for(var S=new Array(256),T=0;T<256;++T)S[T]=String.fromCharCode(T);Ze=S})(),Oi=o.BindingError=class extends Error{constructor(S){super(S),this.name="BindingError"}},fn=o.InternalError=class extends Error{constructor(S){super(S),this.name="InternalError"}},Yt.prototype.isAliasOf=gn,Yt.prototype.clone=ps,Yt.prototype.delete=Li,Yt.prototype.isDeleted=Ve,Yt.prototype.deleteLater=za,o.getInheritedInstanceCount=Uu,o.getLiveInheritedInstances=Vu,o.flushPendingDeletes=g,o.setDelayFunction=O,Kt.prototype.getPointee=Fu,Kt.prototype.destructor=$u,Kt.prototype.argPackAdvance=8,Kt.prototype.readValueFromPointer=Ao,Kt.prototype.deleteObject=bo,Kt.prototype.fromWireType=ki,vo=o.UnboundTypeError=(dc=Error,($i=Zt(In="UnboundTypeError",function(S){this.name=In,this.message=S;var T=new Error(S).stack;T!==void 0&&(this.stack=this.toString()+`
|
|
85
|
+
`+T.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(dc.prototype),$i.prototype.constructor=$i,$i.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},$i),Object.assign(fr.prototype,{get(S){return this.allocated[S]},has(S){return this.allocated[S]!==void 0},allocate(S){var T=this.freelist.pop()||this.allocated.length;return this.allocated[T]=S,T},free(S){this.allocated[S]=void 0,this.freelist.push(S)}}),Pt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Pt.reserved=Pt.allocated.length,o.count_emval_handles=oc;var kt,lc={o:function(S,T,C){throw new hn(S).init(T,C),S},r:function(S,T,C,w,F){},m:function(S,T,C,w,F){var H=Ee(C);xt(S,{name:T=Ot(T),fromWireType:function(G){return!!G},toWireType:function(G,z){return z?w:F},argPackAdvance:8,readValueFromPointer:function(G){var z;if(C===1)z=M;else if(C===2)z=B;else{if(C!==4)throw new TypeError("Unknown boolean type size: "+T);z=me}return this.fromWireType(z[G>>H])},destructorFunction:null})},q:function(S,T,C,w,F,H,G,z,K,W,he,De,Re){he=Ot(he),H=Ui(F,H),z&&(z=Ui(G,z)),W&&(W=Ui(K,W)),Re=Ui(De,Re);var ge=Pr(he);(function(we,rt,qe){o.hasOwnProperty(we)?((qe===void 0||o[we].overloadTable!==void 0&&o[we].overloadTable[qe]!==void 0)&&pe(`Cannot register public name '${we}' twice`),Xa(o,we,we),o.hasOwnProperty(qe)&&pe(`Cannot register multiple overloads of a function with the same number of arguments (${qe})!`),o[we].overloadTable[qe]=rt):(o[we]=rt,qe!==void 0&&(o[we].numArguments=qe))})(ge,function(){Vi(`Cannot construct ${he} due to unbound types`,[w])}),xi([S,T,C],w?[w]:[],function(we){var rt,qe;we=we[0],qe=w?(rt=we.registeredClass).instancePrototype:Yt.prototype;var pt=Zt(ge,function(){if(Object.getPrototypeOf(this)!==Je)throw new Oi("Use 'new' to construct "+he);if(Nt.constructor_body===void 0)throw new Oi(he+" has no accessible constructor");var _r=Nt.constructor_body[arguments.length];if(_r===void 0)throw new Oi(`Tried to invoke ctor of ${he} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Nt.constructor_body).toString()}) parameters instead!`);return _r.apply(this,arguments)}),Je=Object.create(qe,{constructor:{value:pt}});pt.prototype=Je;var Nt=new _n(he,pt,Je,Re,rt,H,z,W);Nt.baseClass&&(Nt.baseClass.__derivedClasses===void 0&&(Nt.baseClass.__derivedClasses=[]),Nt.baseClass.__derivedClasses.push(Nt));var Hi=new Kt(he,Nt,!0,!1,!1),Rt=new Kt(he+"*",Nt,!1,!1,!1),Sn=new Kt(he+" const*",Nt,!1,!0,!1);return Ae[S]={pointerType:Rt,constPointerType:Sn},function(_r,yn,Is){o.hasOwnProperty(_r)||qt("Replacing nonexistant public symbol"),o[_r].overloadTable!==void 0&&Is!==void 0?o[_r].overloadTable[Is]=yn:(o[_r]=yn,o[_r].argCount=Is)}(ge,pt),[Hi,Rt,Sn]})},p:function(S,T,C,w,F,H){var G=tc(T,C);F=Ui(w,F),xi([],[S],function(z){var K=`constructor ${(z=z[0]).name}`;if(z.registeredClass.constructor_body===void 0&&(z.registeredClass.constructor_body=[]),z.registeredClass.constructor_body[T-1]!==void 0)throw new Oi(`Cannot register multiple constructors with identical number of parameters (${T-1}) for class '${z.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return z.registeredClass.constructor_body[T-1]=()=>{Vi(`Cannot construct ${z.name} due to unbound types`,G)},xi([],G,function(W){return W.splice(1,0,null),z.registeredClass.constructor_body[T-1]=ic(K,W,null,F,H),[]}),[]})},d:function(S,T,C,w,F,H,G,z,K){var W=tc(C,w);T=Ot(T),H=Ui(F,H),xi([],[S],function(he){var De=`${(he=he[0]).name}.${T}`;function Re(){Vi(`Cannot call ${De} due to unbound types`,W)}T.startsWith("@@")&&(T=Symbol[T.substring(2)]),z&&he.registeredClass.pureVirtualFunctions.push(T);var ge=he.registeredClass.instancePrototype,we=ge[T];return we===void 0||we.overloadTable===void 0&&we.className!==he.name&&we.argCount===C-2?(Re.argCount=C-2,Re.className=he.name,ge[T]=Re):(Xa(ge,T,De),ge[T].overloadTable[C-2]=Re),xi([],W,function(rt){var qe=ic(De,rt,he,H,G,K);return ge[T].overloadTable===void 0?(qe.argCount=C-2,ge[T]=qe):ge[T].overloadTable[C-2]=qe,[]}),[]})},u:function(S,T){xt(S,{name:T=Ot(T),fromWireType:function(C){var w=fs.toValue(C);return hs(C),w},toWireType:function(C,w){return fs.toHandle(w)},argPackAdvance:8,readValueFromPointer:Ao,destructorFunction:null})},k:function(S,T,C){var w=Ee(C);xt(S,{name:T=Ot(T),fromWireType:function(F){return F},toWireType:function(F,H){return H},argPackAdvance:8,readValueFromPointer:Hu(T,w),destructorFunction:null})},b:function(S,T,C,w,F){T=Ot(T),F===-1&&(F=4294967295);var H=Ee(C),G=W=>W;if(w===0){var z=32-8*C;G=W=>W<<z>>>z}var K=T.includes("unsigned");xt(S,{name:T,fromWireType:G,toWireType:K?function(W,he){return this.name,he>>>0}:function(W,he){return this.name,he},argPackAdvance:8,readValueFromPointer:Wu(T,H,w!==0),destructorFunction:null})},a:function(S,T,C){var w=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][T];function F(H){var G=oe,z=G[H>>=2],K=G[H+1];return new w(G.buffer,K,z)}xt(S,{name:C=Ot(C),fromWireType:F,argPackAdvance:8,readValueFromPointer:F},{ignoreDuplicateRegistrations:!0})},j:function(S,T){var C=(T=Ot(T))==="std::string";xt(S,{name:T,fromWireType:function(w){var F,H=oe[w>>2],G=w+4;if(C)for(var z=G,K=0;K<=H;++K){var W=G+K;if(K==H||N[W]==0){var he=Gu(z,W-z);F===void 0?F=he:(F+="\0",F+=he),z=W+1}}else{var De=new Array(H);for(K=0;K<H;++K)De[K]=String.fromCharCode(N[G+K]);F=De.join("")}return Er(w),F},toWireType:function(w,F){var H;F instanceof ArrayBuffer&&(F=new Uint8Array(F));var G=typeof F=="string";G||F instanceof Uint8Array||F instanceof Uint8ClampedArray||F instanceof Int8Array||pe("Cannot pass non-string to std::string"),H=C&&G?(De=>{for(var Re=0,ge=0;ge<De.length;++ge){var we=De.charCodeAt(ge);we<=127?Re++:we<=2047?Re+=2:we>=55296&&we<=57343?(Re+=4,++ge):Re+=3}return Re})(F):F.length;var z=Bi(4+H+1),K=z+4;if(oe[z>>2]=H,C&&G)((De,Re,ge,we)=>{if(!(we>0))return 0;for(var rt=ge,qe=ge+we-1,pt=0;pt<De.length;++pt){var Je=De.charCodeAt(pt);if(Je>=55296&&Je<=57343&&(Je=65536+((1023&Je)<<10)|1023&De.charCodeAt(++pt)),Je<=127){if(ge>=qe)break;Re[ge++]=Je}else if(Je<=2047){if(ge+1>=qe)break;Re[ge++]=192|Je>>6,Re[ge++]=128|63&Je}else if(Je<=65535){if(ge+2>=qe)break;Re[ge++]=224|Je>>12,Re[ge++]=128|Je>>6&63,Re[ge++]=128|63&Je}else{if(ge+3>=qe)break;Re[ge++]=240|Je>>18,Re[ge++]=128|Je>>12&63,Re[ge++]=128|Je>>6&63,Re[ge++]=128|63&Je}}Re[ge]=0})(F,N,K,H+1);else if(G)for(var W=0;W<H;++W){var he=F.charCodeAt(W);he>255&&(Er(K),pe("String has UTF-16 code units that do not fit in 8 bits")),N[K+W]=he}else for(W=0;W<H;++W)N[K+W]=F[W];return w!==null&&w.push(Er,z),z},argPackAdvance:8,readValueFromPointer:Ao,destructorFunction:function(w){Er(w)}})},g:function(S,T,C){var w,F,H,G,z;C=Ot(C),T===2?(w=ju,F=gr,G=gs,H=()=>ee,z=1):T===4&&(w=ac,F=qu,G=Fi,H=()=>oe,z=2),xt(S,{name:C,fromWireType:function(K){for(var W,he=oe[K>>2],De=H(),Re=K+4,ge=0;ge<=he;++ge){var we=K+4+ge*T;if(ge==he||De[we>>z]==0){var rt=w(Re,we-Re);W===void 0?W=rt:(W+="\0",W+=rt),Re=we+T}}return Er(K),W},toWireType:function(K,W){typeof W!="string"&&pe(`Cannot pass non-string to C++ string type ${C}`);var he=G(W),De=Bi(4+he+T);return oe[De>>2]=he>>z,F(W,De+4,he+T),K!==null&&K.push(Er,De),De},argPackAdvance:8,readValueFromPointer:Ao,destructorFunction:function(K){Er(K)}})},n:function(S,T){xt(S,{isVoid:!0,name:T=Ot(T),argPackAdvance:0,fromWireType:function(){},toWireType:function(C,w){}})},e:function(S,T,C,w){var F,H;(S=Es[S])(T=fs.toValue(T),C=(H=cc[F=C])===void 0?Ot(F):H,null,w)},l:hs,h:function(S,T){var C=function(rt,qe){for(var pt,Je,Nt,Hi=new Array(rt),Rt=0;Rt<rt;++Rt)Hi[Rt]=(pt=oe[qe+4*Rt>>2],Je="parameter "+Rt,Nt=void 0,(Nt=xr[pt])===void 0&&pe(Je+" has unknown type "+ec(pt)),Nt);return Hi}(S,T),w=C[0],F=w.name+"_$"+C.slice(1).map(function(rt){return rt.name}).join("_")+"$",H=_s[F];if(H!==void 0)return H;for(var G=["retType"],z=[w],K="",W=0;W<S-1;++W)K+=(W!==0?", ":"")+"arg"+W,G.push("argType"+W),z.push(C[1+W]);var he="return function "+Pr("methodCaller_"+F)+`(handle, name, destructors, args) {
|
|
86
|
+
`,De=0;for(W=0;W<S-1;++W)he+=" var arg"+W+" = argType"+W+".readValueFromPointer(args"+(De?"+"+De:"")+`);
|
|
87
|
+
`,De+=C[W+1].argPackAdvance;for(he+=" var rv = handle[name]("+K+`);
|
|
88
88
|
`,W=0;W<S-1;++W)C[W+1].deleteObject&&(he+=" argType"+W+".deleteObject(arg"+W+`);
|
|
89
|
-
`);
|
|
89
|
+
`);w.isVoid||(he+=` return retType.toWireType(destructors, rv);
|
|
90
90
|
`),he+=`};
|
|
91
|
-
`,G.push(he);var Re,ge,
|
|
92
|
-
CPU core: ${navigator.hardwareConcurrency}, GPU: ${bl()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),$.info(t),$.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),$o().then(r=>{r&&$.info(Ar)})}};var pr={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var le={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},hr=(w=>(w[w.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",w[w.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",w[w.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",w[w.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",w[w.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",w[w.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",w[w.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",w[w.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",w[w.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",w[w.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",w[w.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",w[w.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",w[w.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",w[w.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",w[w.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",w[w.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",w[w.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",w[w.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",w[w.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",w[w.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",w[w.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",w[w.INVALID_OPERATION=5100]="INVALID_OPERATION",w[w.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",w[w.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",w[w.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",w[w.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",w[w.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",w[w.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",w[w.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",w[w.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",w[w.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",w[w.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",w[w.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",w[w.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",w[w.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",w[w.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",w[w.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",w[w.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",w[w.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",w[w.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",w[w.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",w[w.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",w[w.DEVICE_ERROR=5300]="DEVICE_ERROR",w[w.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",w[w.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",w[w.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",w[w.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",w[w.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",w[w.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",w[w.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",w[w.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",w[w.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",w[w.SERVER_ERROR=5400]="SERVER_ERROR",w[w.NEED_TO_BUY=5401]="NEED_TO_BUY",w[w.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",w[w.OPERATION_FAILED=5500]="OPERATION_FAILED",w[w.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",w[w.REJOIN_FAILED=5502]="REJOIN_FAILED",w[w.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",w[w.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",w[w.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",w[w.OPERATION_ABORT=5998]="OPERATION_ABORT",w[w.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",w))(hr||{});function ag({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=hr[i];try{o=ng[s]}catch(n){o=ng.UNKNOWN_ERROR}return We(o)?r=o(t):we(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var ng=Te(z({},Xt),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone or screen share is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function ss(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var ap=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:c}){var m;let l;o?l=o:l=ag({code:e===le.SERVER_ERROR?e:r||e,params:z({fnName:n,error:c},s)});super(l);u(this,"name","RtcError");u(this,"code");u(this,"extraCode");u(this,"functionName");u(this,"message");u(this,"handler");u(this,"originError");this.name=hr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=c,this.message=l,this.extraCode===5302&&((m=this.originError)!=null&&m.message.includes("system"))&&(this.handler=()=>{let E={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},g={startLocalVideo:"webcam",startLocalAudio:"microphone"},_=document.createElement("a");Fo?_.href=`ms-settings:privacy-${g[this.functionName]}`:br&&(_.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${E[this.functionName]}`),_.href.length>0&&_.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof ue){let{stack:n}=e,c={code:le.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:c.code=le.INVALID_PARAMETER,c.message=e.message;break;case q.INVALID_OPERATION:c.code=le.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:c.code=le.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(c.extraCode=e.message.includes(Xt.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:c.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:c.code=le.SERVER_ERROR,c.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:c.code=le.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:c.code=5300,e.name&&(c.extraCode=iS(e.name));break;case q.UNKNOWN:break;default:c.code=le.OPERATION_FAILED}s=new i(c),n&&(s.stack+=n.substr(n.indexOf(`
|
|
93
|
-
`)))}else{if(e instanceof i)return e;s=new i({code:le.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function iS(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var ne=ap;function uo(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Oa(i){return i===pr.QOS_PREFERENCE_CLEAR?"detail":i===pr.QOS_PREFERENCE_SMOOTH?"motion":""}function sn(i,t){let e=t?Ku:Nn;return dl(i)?z(z({},e),i):Ir[i]?Ir[i]:e}var cg={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},dg={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},nn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(we(i)&&!document.getElementById(i))throw new ne({code:le.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},ug={name:"userId",required:!0,type:"string"},lg={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[pr.AUDIO_PROFILE_STANDARD,pr.AUDIO_PROFILE_STANDARD_STEREO,pr.AUDIO_PROFILE_HIGH,pr.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function an(i,t){if(!i)throw new ne({code:le.INVALID_OPERATION,extraCode:5101,fnName:t})}function mg(i,t,e){if(!i)throw new ne({code:le.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function pg(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new ne({code:le.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function hg(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new ne({code:le.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var F0={type:"number",notLessThanZero:!0},oS=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function fg(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!ad()){$.warn("small stream is not supported"),delete i.option.small;return}let t=sn(i.option.profile),e=sn(i.option.small,!0);if(!oS(t,e)){$.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var sS={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new ne({code:le.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(we(i.roomId))throw new ne({code:le.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});pg(i.roomId,e,t)}else if(i.strRoomId)hg(i.strRoomId,e,t);else throw new ne({code:le.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:nn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:cg},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&fi())throw new ne({code:le.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&fg(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Te(z({},nn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:cg},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&fg(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:lg},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&fi())throw new ne({code:le.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:lg}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:nn,publish:{type:"boolean"},option:dg},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(fi())throw new ne({code:le.ENV_NOT_SUPPORTED,extraCode:5201});if(!na())throw new ne({code:le.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:nn,publish:{type:"boolean"},option:dg}},muteRemoteAudio:[ug,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[ug,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:nn,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){an(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(mg(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new ne({code:le.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Te(z({},nn),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){an(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(mg(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new ne({code:le.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&P(i.streamType))throw new ne({code:le.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){an(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!da)throw new ne({code:le.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new ne({code:le.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new ne({code:le.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new ne({code:le.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});an(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new ne({code:le.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new ne({code:le.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new ne({code:le.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(an(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new ne({code:le.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(an(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new ne({code:le.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new ne({code:le.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)pg(i.roomId,e,t);else if(i.strRoomId)hg(i.strRoomId,e,t);else throw new ne({code:le.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},yt={TRTC:sS};var $t=class extends Error{};function nS(i,t){let e=Po(i);for(let r=0;r<t.length;r++)ur(e[r],t[r]);return e}function aS(i){this._resolve=Promise.resolve(i)}function cS(i){this._reject=Promise.reject(i)}var lo=class lo{constructor(t,e){this.instance=t;this.group=e;u(this,"started",!1);u(this,"ops",[]);u(this,"startSame",()=>!0);u(this,"mergeUpdate",nS);let r=lo.instances.get(t);r?r.set(e,this):lo.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=lo.instances.get(t);return r&&r.get(e)||new lo(t,e)}static gets(t,e){let r=lo.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=c=>{var l;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(l=this.currentOp)==null||l.action(),c},s=c=>{var l,m;throw this.ops.shift(),t===0&&((l=this.currentOp)==null?void 0:l.type)===2&&this.ops.shift().reject(new $t("start failed")),(m=this.currentOp)==null||m.action(),c},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:aS,reject:cS};try{switch(this.state){case 1:if(t===0)throw new $t("already started");break;case 4:if(t===2)throw new $t("not started");break;default:return this.cacheOp(n)}}catch(c){return Promise.reject(c)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new $t("already start");break;case 3:switch(t.type){case 2:throw new $t("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new $t("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new $t("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new $t("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new $t("start not allowed after update");case 0:throw new $t("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new $t("keep start")),new $t("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};u(lo,"instances",new WeakMap);var Ri=lo;var Kd=new WeakMap,eu=(i,t)=>{if(t instanceof $t){let{stack:e}=t;t=new ne({code:le.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
|
|
94
|
-
`)))}throw t};function mo(i,t){return
|
|
95
|
-
`));function as(i){st(i)&&i!==
|
|
91
|
+
`,G.push(he);var Re,ge,we=rc(Function,G).apply(null,z);return Re=we,ge=Es.length,Es.push(Re),H=ge,_s[F]=H,H},f:()=>{nr("")},c:Tn,t:(S,T,C)=>N.copyWithin(S,T,T+C),s:S=>{N.length,nr("OOM")},i:(S,T,C,w)=>{for(var F,H,G,z=0,K=0;K<C;K++){var W=oe[T>>2],he=oe[T+4>>2];T+=8;for(var De=0;De<he;De++)F=S,H=N[W+De],G=void 0,G=uc[F],H===0||H===10?((F===1?E:_)(No(G,0)),G.length=0):G.push(H);z+=he}return oe[w>>2]=z,0}},Er=(function(){var S,T,C,w,F={a:lc};function H(G,z){var K,W,he=G.exports;return v=(k=he).v,K=v.buffer,o.HEAP8=M=new Int8Array(K),o.HEAP16=B=new Int16Array(K),o.HEAP32=me=new Int32Array(K),o.HEAPU8=N=new Uint8Array(K),o.HEAPU16=ee=new Uint16Array(K),o.HEAPU32=oe=new Uint32Array(K),o.HEAPF32=Xe=new Float32Array(K),o.HEAPF64=J=new Float64Array(K),Ue=k.z,W=k.w,mn.unshift(W),function(){if(Mr--,o.monitorRunDependencies&&o.monitorRunDependencies(Mr),Mr==0&&(us!==null&&(clearInterval(us),us=null),wi)){var De=wi;wi=null,De()}}(),he}if(Mr++,o.monitorRunDependencies&&o.monitorRunDependencies(Mr),o.instantiateWasm)try{return o.instantiateWasm(F,H)}catch(G){_("Module.instantiateWasm callback failed with error: "+G),r(G)}(S=f,T=te,C=F,w=function(G){H(G.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||ls(T)||typeof fetch!="function"?Or(T,C,w):fetch(T,{credentials:"same-origin"}).then(G=>WebAssembly.instantiateStreaming(G,C).then(w,function(z){return _("wasm streaming compile failed: "+z),_("falling back to ArrayBuffer instantiation"),Or(T,C,w)}))).catch(r)}(),S=>(Er=k.x)(S)),Bi=S=>(Bi=k.y)(S),Ts=S=>(Ts=k.A)(S),mc=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=k.B)(),S=>(mc=k.C)(S));o.dynCall_jiji=(S,T,C,w,F)=>(o.dynCall_jiji=k.D)(S,T,C,w,F);function pc(){function S(){kt||(kt=!0,o.calledRun=!0,_o||(Yr(mn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)T=o.postRun.shift(),pn.unshift(T);var T;Yr(pn)}()))}Mr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),ln.unshift(T);var T;Yr(ln)}(),Mr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(wi=function S(){kt||pc(),kt||(wi=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return pc(),t.ready}})();var oS="web.sdk.qcloud.com",sS=`https://${oS}/trtc/webrtc/v5/doc`,fO=`${sS}/zh-cn/`,ng=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(ng||{});var ag={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},gO=ag["480p_2"],EO=ag["120p_2"],eu={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture"},_O=eu.MAIN,TO=eu.AUXILIARY,IO=eu.BIG,SO=eu.SMALL;var yO=Object.keys(ng);var AO=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{};function rg(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:bO}=Object.prototype,cg=class dg{constructor(t){this.core=t,wr(this,"contextMap",new Map),wr(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return dg.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return new iS(Yd(Qd({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new on;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let c=this.core.room.videoManager.createDecodeContext(Yd(Qd({},t),{createDecoder:this.createDecoder}));return e(c.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,c),c.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=rg()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t);r&&this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),r&&this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),t.inputFrameCount&&this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100})}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(Yd(Qd({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getRenderFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),s=0;r&&r.freezeTimeline.forEach(({startTime:c,endTime:l})=>{c>e.startPerformanceTime&&(s+=l===0?rg()-c:l-c)});let n=0;return o&&o.durationItemList.forEach(c=>{c.startTime>e.startPerformanceTime&&(n+=c.getDuration())}),{renderFreezeTotal:s,dataFreezeTotal:n}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};wr(cg,"Name","TRTCVideoDecoder");var up=cg;var Vg=ji(Zi());function lp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return xe((r,o)=>{let s=new WeakMap;return V.on(U.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let c=s.get(this);if(c||(c={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,c)),c.timestamp===0?c.timestamp=Date.now():Date.now()-c.timestamp>1e3&&(c.timestamp=Date.now(),c.callCountInSecond=0,c.totalSizeInSecond=0),e&&(c.totalSizeInSecond+=e(...n)),c.timestamp!==0&&Date.now()-c.timestamp<1e3&&(c.callCountInSecond>=i||c.totalSizeInSecond>t))throw new ue({code:q.INVALID_OPERATION,message:Be({key:$e.CALL_FREQUENCY_LIMIT,data:{isTimes:c.callCountInSecond>=i,isSize:c.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});c.callCountInSecond++,r.call(this,...n)}})}var nS="2025-07-11 16:32:30",ug=!0,lg=function(){var i;if(ug){ug=!1,$.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Lr}/en/index.html`),console.info(`* Changelog: ${Lr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),$.info("TRTC Web SDK Version:",at),vr||$.debug("Build Time:",nS);let t=`UA: ${navigator.userAgent}
|
|
92
|
+
CPU core: ${navigator.hardwareConcurrency}, GPU: ${Nl()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),$.info(t),$.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),$o().then(r=>{r&&$.info(yr)})}};var pr={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var le={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},hr=(O=>(O[O.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",O[O.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",O[O.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",O[O.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",O[O.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",O[O.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",O[O.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",O[O.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",O[O.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",O[O.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",O[O.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",O[O.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",O[O.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",O[O.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",O[O.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",O[O.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",O[O.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",O[O.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",O[O.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",O[O.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",O[O.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",O[O.INVALID_OPERATION=5100]="INVALID_OPERATION",O[O.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",O[O.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",O[O.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",O[O.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",O[O.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",O[O.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",O[O.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",O[O.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",O[O.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",O[O.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",O[O.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",O[O.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",O[O.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",O[O.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",O[O.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",O[O.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",O[O.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",O[O.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",O[O.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",O[O.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",O[O.DEVICE_ERROR=5300]="DEVICE_ERROR",O[O.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",O[O.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",O[O.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",O[O.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",O[O.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",O[O.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",O[O.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",O[O.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",O[O.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",O[O.SERVER_ERROR=5400]="SERVER_ERROR",O[O.NEED_TO_BUY=5401]="NEED_TO_BUY",O[O.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",O[O.OPERATION_FAILED=5500]="OPERATION_FAILED",O[O.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",O[O.REJOIN_FAILED=5502]="REJOIN_FAILED",O[O.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",O[O.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",O[O.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",O[O.OPERATION_ABORT=5998]="OPERATION_ABORT",O[O.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",O))(hr||{});function pg({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=hr[i];try{o=mg[s]}catch(n){o=mg.UNKNOWN_ERROR}return We(o)?r=o(t):Oe(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var mg=Te(X({},Xt),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ct(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone or screen share is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=ss(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function ss(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var mp=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:c}){var m;let l;o?l=o:l=pg({code:e===le.SERVER_ERROR?e:r||e,params:X({fnName:n,error:c},s)});super(l);u(this,"name","RtcError");u(this,"code");u(this,"extraCode");u(this,"functionName");u(this,"message");u(this,"handler");u(this,"originError");this.name=hr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=c,this.message=l,this.extraCode===5302&&((m=this.originError)!=null&&m.message.includes("system"))&&(this.handler=()=>{let f={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},E={startLocalVideo:"webcam",startLocalAudio:"microphone"},_=document.createElement("a");Fo?_.href=`ms-settings:privacy-${E[this.functionName]}`:br&&(_.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${f[this.functionName]}`),_.href.length>0&&_.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof ue){let{stack:n}=e,c={code:le.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:c.code=le.INVALID_PARAMETER,c.message=e.message;break;case q.INVALID_OPERATION:c.code=le.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:c.code=le.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(c.extraCode=e.message.includes(Xt.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:c.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:c.code=le.SERVER_ERROR,c.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:c.code=le.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:c.code=5300,e.name&&(c.extraCode=aS(e.name));break;case q.UNKNOWN:break;default:c.code=le.OPERATION_FAILED}s=new i(c),n&&(s.stack+=n.substr(n.indexOf(`
|
|
93
|
+
`)))}else{if(e instanceof i)return e;s=new i({code:le.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function aS(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var ae=mp;function uo(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function ka(i){return i===pr.QOS_PREFERENCE_CLEAR?"detail":i===pr.QOS_PREFERENCE_SMOOTH?"motion":""}function sn(i,t){let e=t?tl:Nn;return ll(i)?X(X({},e),i):Ir[i]?Ir[i]:e}var hg={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},fg={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},nn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Oe(i)&&!document.getElementById(i))throw new ae({code:le.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},gg={name:"userId",required:!0,type:"string"},Eg={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[pr.AUDIO_PROFILE_STANDARD,pr.AUDIO_PROFILE_STANDARD_STEREO,pr.AUDIO_PROFILE_HIGH,pr.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function an(i,t){if(!i)throw new ae({code:le.INVALID_OPERATION,extraCode:5101,fnName:t})}function _g(i,t,e){if(!i)throw new ae({code:le.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function Tg(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new ae({code:le.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function Ig(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new ae({code:le.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var j0={type:"number",notLessThanZero:!0},cS=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function Sg(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!dd()){$.warn("small stream is not supported"),delete i.option.small;return}let t=sn(i.option.profile),e=sn(i.option.small,!0);if(!cS(t,e)){$.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var dS={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new ae({code:le.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(Oe(i.roomId))throw new ae({code:le.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});Tg(i.roomId,e,t)}else if(i.strRoomId)Ig(i.strRoomId,e,t);else throw new ae({code:le.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:nn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:hg},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&gi())throw new ae({code:le.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&Sg(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:Te(X({},nn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:hg},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&Sg(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:Eg},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&gi())throw new ae({code:le.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:Eg}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:nn,publish:{type:"boolean"},option:fg},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(gi())throw new ae({code:le.ENV_NOT_SUPPORTED,extraCode:5201});if(!da())throw new ae({code:le.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:nn,publish:{type:"boolean"},option:fg}},muteRemoteAudio:[gg,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[gg,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:nn,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){an(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(_g(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new ae({code:le.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:Te(X({},nn),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){an(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(_g(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new ae({code:le.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&P(i.streamType))throw new ae({code:le.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){an(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!ma)throw new ae({code:le.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new ae({code:le.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new ae({code:le.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new ae({code:le.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});an(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new ae({code:le.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new ae({code:le.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new ae({code:le.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(an(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new ae({code:le.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(an(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new ae({code:le.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new ae({code:le.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)Tg(i.roomId,e,t);else if(i.strRoomId)Ig(i.strRoomId,e,t);else throw new ae({code:le.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},At={TRTC:dS};var $t=class extends Error{};function uS(i,t){let e=Po(i);for(let r=0;r<t.length;r++)ur(e[r],t[r]);return e}function lS(i){this._resolve=Promise.resolve(i)}function mS(i){this._reject=Promise.reject(i)}var lo=class lo{constructor(t,e){this.instance=t;this.group=e;u(this,"started",!1);u(this,"ops",[]);u(this,"startSame",()=>!0);u(this,"mergeUpdate",uS);let r=lo.instances.get(t);r?r.set(e,this):lo.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=lo.instances.get(t);return r&&r.get(e)||new lo(t,e)}static gets(t,e){let r=lo.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=c=>{var l;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(l=this.currentOp)==null||l.action(),c},s=c=>{var l,m;throw this.ops.shift(),t===0&&((l=this.currentOp)==null?void 0:l.type)===2&&this.ops.shift().reject(new $t("start failed")),(m=this.currentOp)==null||m.action(),c},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:lS,reject:mS};try{switch(this.state){case 1:if(t===0)throw new $t("already started");break;case 4:if(t===2)throw new $t("not started");break;default:return this.cacheOp(n)}}catch(c){return Promise.reject(c)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new $t("already start");break;case 3:switch(t.type){case 2:throw new $t("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new $t("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new $t("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new $t("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new $t("start not allowed after update");case 0:throw new $t("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new $t("keep start")),new $t("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};u(lo,"instances",new WeakMap);var vi=lo;var tu=new WeakMap,ru=(i,t)=>{if(t instanceof $t){let{stack:e}=t;t=new ae({code:le.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
|
|
94
|
+
`)))}throw t};function mo(i,t){return xe((e,r)=>function(...o){let s=vi.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(ru.bind(null,r))):e.apply(this,o)})}function ns(i,t){let{merge:e,debounce:r}=t||{};return xe((o,s)=>function(...n){let c=vi.get(this,typeof i=="string"?i:i.call(this,...n));if(!c)return o.apply(this,n);if(e&&(c.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,n)){let{delay:l,getKey:m}=r;return new Promise((f,E)=>{var k,M;let _=(k=tu.get(this))==null?void 0:k.get(m(...n));if(_){let{timeoutId:N,resolve:B}=_;clearTimeout(N),B()}let v=setTimeout(()=>{if(c.state===3||c.state===4)return f();c.action(2,o.bind(this),n).catch(ru.bind(null,s)).then(f,E)},l);tu.has(this)?(M=tu.get(this))==null||M.set(m(...n),{timeoutId:v,resolve:f}):tu.set(this,new Map([[m(...n),{timeoutId:v,resolve:f}]]))})}return c.action(2,o.bind(this),n).catch(ru.bind(null,s))})}function po(i){return xe((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(vi.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=vi.get(this,o);return s?s.action(3,t.bind(this),r).catch(ru.bind(null,e)):t.apply(this,r)})}var re={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame"},yg=new Set([re.ERROR,re.AUTOPLAY_FAILED,re.KICKED_OUT,re.REMOTE_USER_ENTER,re.REMOTE_USER_EXIT,re.REMOTE_AUDIO_AVAILABLE,re.REMOTE_AUDIO_UNAVAILABLE,re.REMOTE_VIDEO_AVAILABLE,re.REMOTE_VIDEO_UNAVAILABLE,re.CONNECTION_STATE_CHANGED,re.PUBLISH_STATE_CHANGED,re.SCREEN_SHARE_STOPPED,re.DEVICE_CHANGED,re.FIRST_VIDEO_FRAME]);var hp={};ei(hp,{bytes2ms:()=>ah,calculateScaleResolutionDownNumber:()=>Nc,convertObjectNumberToInt:()=>Vn,copyProperties:()=>nh,deepClone:()=>Po,deepMerge:()=>ur,delay:()=>Fn,fibonacci:()=>ko,formatedTime:()=>bc,getConstructorName:()=>vs,getContainerFromElement:()=>fh,getEnv:()=>ih,getInternalVersion:()=>ph,getLoggerUrl:()=>si,getMediaStreamTrackInfo:()=>Cc,getMuteStateFromFlag:()=>Ln,getNetworkType:()=>xn,getNumNetworkType:()=>Ac,getReconnectionTimeout:()=>dh,getStringByteLength:()=>gh,getTurnServer:()=>hh,getUint32Version:()=>Rc,getValueType:()=>ct,getViewListFromView:()=>Ds,glog:()=>Pn,ipv4ToUint32:()=>Ns,isArray:()=>ot,isAudioWorkletSupported:()=>mh,isBoolean:()=>st,isConstructor:()=>Lo,isEmpty:()=>Cs,isFunction:()=>We,isLangChinese:()=>Sr,isMediaStreamTrack:()=>uh,isNumber:()=>ke,isObject:()=>er,isOverseaSdkAppId:()=>oi,isPlainObject:()=>Lt,isPortrait:()=>cl,isPromise:()=>Ji,isRemoteTrack:()=>lh,isRotate90Or270:()=>ni,isString:()=>Oe,isUndefined:()=>P,loadImage:()=>ws,ms2bytes:()=>ch,ms2samples:()=>al,normalizeUrl:()=>Uo,performanceNow:()=>Ie,promiseAny:()=>kn,samples2ms:()=>nl,setNetworkType:()=>sh,stringify:()=>dr,stringifyIncludeValue:()=>Un,throttlePromise:()=>vc});var Ep={};ei(Ep,{ScheduleRequestType:()=>bg,getAbilityConfig:()=>hS,getScheduleDomain:()=>su,isNeedToSchedule:()=>iu,scheduleProxy:()=>zr,sendScheduleRequest:()=>gp,setIsNeedToSchedule:()=>as,setScheduleProxy:()=>ou});var fp=null,iu=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(ii).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
|
|
95
|
+
`));function as(i){st(i)&&i!==iu&&(iu=i,$.info(`setIsNeedToSchedule ${i}`))}V.on("28",()=>as(!0));V.on("63",()=>as(!0));V.on("84",()=>as(!0));V.on("201",i=>{i.state==="RECONNECTING"&&as(!0)});V.on("202",i=>{i.state==="RECONNECTING"&&as(!0)});function pS(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=ho(i,"config",D.MAIN),n=ho(i,"config",D.BACKUP);for(let c of o)if(c.startTime>=e&&(c.name===s||c.name===n)&&c.transferSize>0){let l=c.name===s?D.MAIN:D.BACKUP,m=Math.round(c.duration),f=Math.round(c.domainLookupStart-c.startTime),E=c.redirectStart>0?Math.round(c.redirectEnd-c.redirectStart):0,_=c.fetchStart>0?Math.round(c.domainLookupStart-c.fetchStart):0,v=Math.round(c.domainLookupEnd-c.domainLookupStart),k=Math.round(c.requestStart-c.secureConnectionStart),M=Math.round(c.secureConnectionStart-c.connectStart),N=Math.round(c.responseStart-c.requestStart),B=Math.round(c.responseEnd-c.responseStart),ee=[v,k,M,N,B];je.uploadEvent({log:`stat-schedule-net:${m}(${f}(${E}->${_})->${ee.join("->")}) ${l}`,userId:t}),r=Te(X({},r),{totalCost:m,local:f,dns:v,tcp:M,tls:k,request:N,response:B});break}}catch(o){$.error("getScheduleDetailCost error",o)}return r}function gp(m){return y(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:c,latencyLevel:l}){if(!iu&&fp)return{isCached:!0,result:fp};let f={delta:0,count:[1,1],msg:[],detail:[]};try{let E=new FormData;E.append("userId",String(i)),E.append("sdkAppId",String(t)),E.append("isStrGroupId",String(e)),E.append("groupId",String(r)),E.append("sdkVersion",s),E.append("userSig",String(o));let _=yield $o();_!=null&&_.model&&E.append("model",String(_==null?void 0:_.model)),c&&E.append("role",String(c)),l&&E.append("latencyLevel",String(l)),n&&E.append("frameWorkType",String(n));let v=Ie(),k=yield gS(E,f,t);k.config&&(k.config.loggerDomain&&wo(k.config.loggerDomain),st(k.config.scheduleCache)&&as(!k.config.scheduleCache)),f.delta=Ie()-v;let M=pS(Number(t),i,v);return fp=k,{isCached:!1,result:k,detailCost:M}}catch(E){let _=ot(E)?E[0]:E,v=ke(_.code)?_.code:0,k=`schedule failed${_.message?`: ${_.message}`:""}`,M=new ue({code:q.SCHEDULE_FAILED,extraCode:v,message:Be({key:$e.JOIN_ROOM_FAILED,data:{error:k,code:v}})});throw $.error(k,v),M}})}var zr={main:"",backup:""};function ou(i){ot(i)?(zr.main=i[0],zr.backup=i[1]):zr.main=i}var bg=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(bg||{});function ho(i,t,e=D.MAIN,r=!1){return`https://${zr[e]||su(i,e,r)}/api/v1/${t}`}function hS(i,t,e){let r=ho(i,t),o=ho(i,t,D.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(l=>l.json()),c=fetch(`${o}?${s}`).then(l=>l.json());return kn([n,c])}function su(i,t=D.MAIN,e=!1){let r;return oi(i)?e?r=t===D.MAIN?ii.MAIN_OVERSEA_BACKUP:ii.BACKUP_OVERSEA:r=t===D.MAIN?ii.MAIN_OVERSEA:ii.BACKUP_OVERSEA:r=t===D.MAIN?ii.MAIN:ii.BACKUP,r}function fS(i,t,e){return new Promise((r,o)=>{ai({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var Ag=(i,t)=>Xi({retryFunction:fS,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function gS(i,t,e){return new Promise((r,o)=>{let s=null;kn([Ag(n=>t.count[0]=n+1,({error:n,retry:c,retriedCount:l,retryFuncArgs:m})=>{t.msg[0]=n.message,s||(l>=1&&(m[0]=ho(e,"config",D.MAIN,!0)),c())})(ho(e,"config",D.MAIN),i,{get timeout(){return ko(2+t.count[0])*1e3}}),Ag(n=>t.count[1]=n+1,({error:n,retry:c,retriedCount:l,retryFuncArgs:m})=>{t.msg[1]=n.message,s||(l>=2&&(m[0]=ho(e,"config",D.BACKUP,!0)),c())})(ho(e,"config",D.BACKUP),i,{get timeout(){return ko(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var ES=i=>i.startsWith("data:application/octet-stream;base64,"),_S=i=>i.startsWith("file://"),La=class{constructor(){u(this,"_log");this._log=$.createLogger({id:"fd"})}download(t,e){return y(this,null,function*(){let{type:r="blob"}=e||{};t=Uo(t);try{let o=Ie(),s;if(We(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let n=Ie()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${n}ms`),Q.addSuccessEvent({key:522700,cost:Ie()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),Q.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return y(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok){let s=new Error(`network response was not ok: ${r.status}`);throw s.status=r.status,s}let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{if(s.status===200||s.status===0&&s.response)r({data:s.response});else{let n=new Error(`XHR failed, status: ${s.status}`);n.status=s.status,o(n)}},s.onerror=o,s.send(null)})}loadWasm(t,e){return y(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=Ie(),o=null,s=null;if(We(WebAssembly.instantiateStreaming)&&!ES(t)&&!_S(t)&&We(fetch))try{let n=fetch(t);o=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){s=n}if(!o)try{let n=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(n,e)).instance}catch(n){s=n}if(o){let n=Ie()-r;return this._log.info(`loadedWasm ${t}, cost: ${n}ms`),Q.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),Q.addFailedEvent({key:522701,error:s}),s})}loadScript(t){this._log.info(`loadScript ${t}`);let e=Ie();return new Promise((r,o)=>{let s=document.createElement("script");s.type="text/javascript",s.onload=()=>{this._log.info(`loadedScript ${t}, cost: ${Ie()-e}ms`),Q.addSuccessEvent({key:522702,cost:Ie()-e,split:1e3}),r(s)},s.onerror=n=>{this._log.error(`failed to loadScript ${t}, error: ${n}`),Q.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};Z([zo({settings:{timeout:0,retries:3},onError(t,e,r){var o;(t==null?void 0:t.status)===404||(o=t==null?void 0:t.message)!=null&&o.includes("404")?(this._log.warn("download 404, stop retry"),r(t)):e()},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],La.prototype,"download",1),Z([zo({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],La.prototype,"loadScript",1);var _p=new La;function Rg({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,room:t,assetsPath:r,fileDownloader:_p,innerEmitter:V,constants:sl,environment:Bs,utils:hp,eventLogger:je,log:this.room.getLogger(),loggerManager:$,errorModule:e,kvStatManager:Q,rtcDectection:eo,trtc:this,rx:np,enums:jl,schedule:Ep,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>y(this,null,function*(){try{window.VisionTaskRegistry||(yield _p.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}catch(n){throw new Error(`Virtual background assets not found. Please redeploy the assets of the npm package. ${n}`)}}),clearStarted:(o,s)=>{let n=o.getAlias(),c=vi.instances.get(this);if(c)if(s){let l=c.get(n+s);if(!l)return;l.started=!1}else c.forEach((l,m)=>{m.startsWith(n)&&(l.started=!1)})},startGetPCM:ba,createAudioNode:Ia}}var vg=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=Be({key:$e.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return $.warn(`${s}
|
|
96
96
|
|
|
97
|
-
${o.stack}`),!1}},i};var cn=new WeakMap;function Ag(i){let t=cn.get(i);t&&(t.forEach(e=>clearTimeout(e)),cn.delete(i))}function yg(i,t){return Oe((e,r)=>function(...o){let s=cn.get(this);s||(s=new Map,cn.set(this,s));let n=t(...o),c=s.get(n);if(!c||c<=0){e.apply(this,o);let l=setTimeout(()=>{var m;(m=cn.get(this))==null||m.delete(n)},i);s.set(n,l)}else{clearTimeout(c);let l=window.setTimeout(()=>{var m;e.apply(this,o),(m=cn.get(this))==null||m.delete(n)},i);s.set(n,l)}})}var Rg="trtc-sdk-v5",vg="5.11.2-wasm.1";function Mt(...i){return Oe((t,e)=>function(...r){try{su.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function pp(...i){return Oe((t,e)=>function(...r){try{su.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function su(i,t,e,r){if(ot(i))for(let o=0;o<i.length;o++)ou.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else ou.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function ou({rule:i,value:t,key:e,fnName:r,className:o}){function s(l){return{code:le.INVALID_PARAMETER,extraCode:l,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(P(t)){if(i.required)throw new ne(s(5001));if(P(i.defaultValue)){We(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let l=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(l=!0),We(i.type[m])&&t instanceof i.type[m]&&(l=!0),we(i.type[m])&&ct(t)===i.type[m].toLowerCase()&&(l=!0);if(!l)throw new ne({code:le.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>Lo(m)?vs(m):we(m)?m:ct(m))},value:t}})}else if(!P(i.type)&&ct(t)!==i.type)throw new ne(s(5002));if(i.allowEmpty===!1){let l=Pe(t)&&(t===0||Number.isNaN(t)),m=we(t)&&t.trim()==="";if(l||m)throw new ne(s(5003))}if(i.notLessThanZero&&Pe(t)&&t<0)throw new ne(s(5006));if(!P(i.min)&&Pe(t)&&t<i.min)throw new ne(s(5007));if(!P(i.max)&&Pe(t)&&t>i.max)throw new ne(s(5008));if(we(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new ne(s(5004))}else if(We(i.instanceOf)&&!(t instanceof i.instanceOf))throw new ne(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new ne(s(5005));let{properties:n}=i;Lt(n)&&er(t)&&Object.keys(n).forEach(l=>{ou.call(this,{rule:n[l],value:t&&t[l],key:`${l}`,fnName:r,className:o})});let{arrayItem:c}=i;Lt(c)&&ot(t)&&t.forEach((l,m)=>{ou.call(this,{rule:c,value:l,key:`${e}[${m}]`,fnName:r,className:o})}),We(i.validate)&&i.validate.call(this,t,e,r,o,this)}function tt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return Oe((n,c)=>function(...l){var v,L,x;function m(M,B,ee){if(ee&&ee.includes(M))return"hided";if(e){let pe=e(...l);if(l[pe.argIndex]===B)return pe.value}if(B===l||M in l)return B;try{return B instanceof HTMLElement?`id: ${B.id} type:${ct(B)}`:B instanceof MediaStreamTrack?Rc(B):(JSON.stringify(B),B)}catch(pe){return`type:${ct(B)}`}}let E=this._log||$;if(o!=null&&o(...l))return n.apply(this,l);l.length>0?E.info(`${c}() ${JSON.stringify(l,(M,B)=>m(M,B,["userSig","privateMapKey"]))}`):E.info(`${c}()`);let g=r?r(...l):rd[c],_=(s==null?void 0:s(...l))||!1;try{let M=n.apply(this,l),B=Ie();if(qi(M)){let ee=`${c.includes("Plugin")?`${((L=(v=l[0]).getName)==null?void 0:L.call(v))||""} `:" "}`;return M.then(pe=>(E.info(`${c}() success ${ee}${t.call(this,...l)}`),Q.addSuccessEvent({key:g,cost:Ie()-B}),pe)).catch(pe=>{var X;pe=ne.convertFrom.call(this,pe,c,l.length===1?l[0]:l);let ae=pe.extraCode||pe.code,Xe=(X=pe.message)!=null&&X.includes(ae)?"":` code:${ae}`;throw _||E.error(`${c}() failed ${ee}${t.call(this,...l)} ${pe}${Xe} params: ${JSON.stringify(l,m)}`),Q.addFailedEvent({key:g,error:pe}),pe})}return Q.addSuccessEvent({key:g}),M}catch(M){M=ne.convertFrom.call(this,M,c);let B=M.extraCode||M.code,ee=(x=M.message)!=null&&x.includes(B)?"":` code:${B}`;throw _||E.error(`${c}() failed ${M}${ee} params: ${JSON.stringify(l,m)}`),Q.addFailedEvent({key:g,error:M}),M}})}var nu=i=>Oe((t,e)=>function(r,o){return A(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new ne({code:le.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(We(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new ne({code:le.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return su.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var au=0,hp,vi=class vi{constructor(t){this.core=t;u(this,"log");u(this,"customAudioReferenceMap",new Map);u(this,"audioRefId",0);u(this,"audioContext",ze());u(this,"localAudioWorkletNode");u(this,"screenAudioWorkletNode");u(this,"mixNode");u(this,"silentNode");au=au+1,this.log=t.log.createChild({id:`${this.getAlias()}${au}`}),this.log.info(`created id=${this.getAlias()}${au}`)}static getStartValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack&&!t.room.audioManager.hasScreenAudioTrack)throw new ne({code:le.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return hp||(hp=this.doPreload(t)),hp}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield _i(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return vi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return vi.getStartValidateRule(this.core);case"update":return vi.updateValidateRule;case"stop":return vi.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core,{sdkAppId:r,userId:o,assetsPath:s=this.core.assetsPath,audioReference:n,processLevel:c,enableDump:l,isLocalAudioNeedAudioProcess:m=!0,isScreenAudioNeedAudioProcess:E=!0}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=m,this.core.room.audioManager.isScreenAudioNeedAudioProcess=E,!s)throw new ne({code:le.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${s}/audioProcessor-wasm.js`),!this.localAudioWorkletNode||!this.screenAudioWorkletNode){let g=String(Date.now()).slice(0,-3),{auth:_,sign:v,status:L,message:x}=yield gS(Te(z({},t),{timestamp:g}));if(!_)throw this.log.info(`audioProcessor: ${o} auth result: ${_}. Message: ${x}`),new ne({code:le.INVALID_PARAMETER,message:x});this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,g,v,L,e),this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,g,v,L,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),this.localAudioWorkletNode.port.postMessage({type:"enable"}),this.screenAudioWorkletNode.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode),P(n)||n.forEach(g=>{this.customAudioReferenceMap.set(g,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:g,refId:`o-${this.audioRefId++}`})}),P(c)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:c}}),P(l)||this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:l}})})}update(t){return A(this,null,function*(){if(!this.localAudioWorkletNode||!this.screenAudioWorkletNode)return;let{audioReference:e,enableDump:r,processLevel:o}=t;P(e)||(this.customAudioReferenceMap.forEach((s,n)=>{this.customAudioReferenceMap.delete(n),this.core.room.audioManager.updateAudioReference({type:"remove",refId:s})}),e.forEach(s=>{this.customAudioReferenceMap.set(s,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s,refId:`o-${this.audioRefId++}`})})),P(o)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),P(r)||(this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:r}}),this.screenAudioWorkletNode.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return A(this,null,function*(){if(!this.localAudioWorkletNode||!this.mixNode||!this.silentNode||!this.screenAudioWorkletNode)return;let{room:t}=this.core;this.localAudioWorkletNode.port.postMessage({type:"disable"}),this.screenAudioWorkletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null)}initWorkletNode(t,e,r,o,s,n,c,l){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:c}}),t.port.onmessage=m=>{var g;let{data:E}=m;switch(E.type){case"cost":let _=(E==null?void 0:E.value)>10?"info":"debug";this.log[_](`[${e}] avg cost: ${E.value} max: ${E==null?void 0:E.max}(${Ss(new Date(E==null?void 0:E.maxCostTimestamp))}) hist: ${(g=E==null?void 0:E.hist)==null?void 0:g.join(" ")}`);return;case"log":this.log[E.logLevel](`[${e}] ${E.value}`);return;case"dump":V.emit("265",{room:l,data:E.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}};u(vi,"updateValidateRule",{type:"object"}),u(vi,"stopValidateRule",{type:"object"}),u(vi,"Name","AudioProcessor");var cu=vi;function fS(i,t=N.MAIN){return`https://${Jr[t]||iu(i,t)}/api/v1/audioAiAuth`}function gS(o){return A(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${fS(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}×tamp=${r}`,c=yield fetch(n),{data:{errCode:l,errMsg:m,sign:E,status:g}}=yield c.json();if(g==="1")return{auth:!0,sign:E,status:g,message:m};let _=ii(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",v="Init RTCAudioProcessor failed.",L="";switch(l){case 1:L="Please check your params.";break;case 2:L=`You need to buy packages. Refer to: ${_}`;break;case 3:L="Server is invalid. Please contact our engineer. ";break;case 4:L=`Your packages is not active. Refer to: ${_}`;break;case 5:L=`Your packages is expired. Refer to: ${_}`;break;case 6:L="Your version is not supported.";break}return{auth:!1,status:g,message:m?`${v} Reason: ${m}. ${L}`:`${v}, ${L}`}})}var du=0,fp=class{constructor(t,e){u(this,"player");u(this,"publisher");u(this,"mixInput");this.mixInput=new Xs(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(P(t.volume)||(this.volume=t.volume),P(t.loop)||(this.loop=t.loop),P(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return(t=this.publisher)==null||t.play(),(e=this.player)==null?void 0:e.play()}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function dn(i,t){if(t&&typeof t!="function")throw new ne({code:le.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var zr=class zr{constructor(t){this.core=t;u(this,"log");u(this,"mixedMusicMap",new Map);u(this,"cacheMusicMap",new Map);du=du+1,this.log=t.log.createChild({id:`${this.getAlias()}${du}`}),this.log.info(`created id=${this.getAlias()}${du}`)}getName(){return zr.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return zr.startValidateRule;case"update":return zr.updateValidateRule;case"stop":return zr.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new fp(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),Q.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return A(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),P(r)||n.setOperation(r),P(o)||n.seek(o),this.kvUpload(t)})}stop(e){return A(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:c,onTimeUpdate:l,onDurationChange:m,onEnded:E}=t;e&&Q.addCount({key:502711}),r&&Q.addCount({key:502703}),o&&Q.addCount({key:502704}),s&&Q.addCount({key:502705}),n&&Q.addCount({key:502706}),c&&Q.addCount({key:502707}),typeof l!="function"&&Q.addCount({key:502709}),typeof E!="function"&&Q.addCount({key:502710}),typeof m!="function"&&Q.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId:e}),this.stop({id:e})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};u(zr,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],n=o.split(".").pop(),c=s.indexOf(n)>=0,l=o.startsWith("blob"),m=o.startsWith("data");if(!(c||l||m))throw new ne({code:le.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new ne({code:le.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});dn("onTimeUpdate",t.onTimeUpdate),dn("onEnded",t.onEnded),dn("onDurationChange",t.onDurationChange)}}),u(zr,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){dn("onTimeUpdate",t.onTimeUpdate),dn("onEnded",t.onEnded),dn("onDurationChange",t.onDurationChange)}}),u(zr,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),u(zr,"Name","AudioMixer");var uu=zr;var lu=0,gp,Ci=class Ci{constructor(t){this.core=t;u(this,"log");u(this,"audioContext",ze("denoiser"));u(this,"workletNode");lu=lu+1,this.log=t.log.createChild({id:`${this.getAlias()}${lu}`}),this.log.info(`created id=${this.getAlias()}${lu}`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new ne({code:le.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return gp||(gp=this.doPreload(t)),gp}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield _i(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Ci.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return Ci.startValidateRule(this.core);case"update":return Ci.updateValidateRule;case"stop":return Ci.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new ne({code:le.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${o}/denoiser-wasm.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:c,status:l,message:m}=yield _S(r,Te(z({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${m}`),new ne({code:le.INVALID_PARAMETER,message:m});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:s,sign:c,status:l}}),this.workletNode.port.onmessage=E=>{var _;let{data:g}=E;if(g.type==="cost"){let v=(g==null?void 0:g.max)>20?"warn":(g==null?void 0:g.max)>10?"info":"debug";this.log[v](`avg cost: ${g.value} max: ${g==null?void 0:g.max}(${Ss(new Date(g==null?void 0:g.maxCostTimestamp))}) hist: ${(_=g==null?void 0:g.hist)==null?void 0:_.join(" ")}`)}else g.type==="log"&&this.log[g.logLevel](`${g.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return A(this,null,function*(){})}stop(){return A(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};u(Ci,"updateValidateRule",{type:"object"}),u(Ci,"stopValidateRule",{type:"object"}),u(Ci,"Name","AIDenoiser");var mu=Ci;function _S(s,n){return A(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:c,errMsg:l,sign:m,status:E}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(E==="1")return{auth:!0,sign:m,status:E,message:l};let g=ii(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",_="Init RTCAIDenoiser failed.",v="";switch(c){case 1:v="Please check your params.";break;case 2:v=`You need to buy packages. Refer to: ${g}`;break;case 3:v="Server is invalid. Please contact our engineer. ";break;case 4:v=`Your packages is not active. Refer to: ${g}`;break;case 5:v=`Your packages is expired. Refer to: ${g}`;break;case 6:v="Your version is not supported.";break}return{auth:!1,status:E,message:l?`${_} Reason: ${l}. ${v}`:`${_}, ${v}`}}catch(c){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${c}`}}})}var Ng=Gi(Zi(),1);var Ep=class extends Ng.EventEmitter{constructor(){super();u(this,"observer");u(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return A(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!mt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){je.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&$.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){je.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},TS=new Ep,_p=TS;function IS([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let c=0;c<r;c++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Yo(new DataView(new Uint8Array(s).buffer),!0)}function SS(i){return i.type==="empty"||i.data.byteLength===0}function AS(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function yS(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function Tp({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-yS(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(IS),s=o.reduce((E,g)=>E+g.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),c=new DataView(n),l=new DataView(i.data),m=0;for(let E=0;E<o.length;E++)for(let g=0;g<o[E].dataView.byteLength;g++)c.setInt8(m++,o[E].dataView.getInt8(g));for(let E=0;E<i.data.byteLength;E++)c.setInt8(m++,l.getInt8(E));return i.data=n,i}function Ip({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(SS(i)||!AS(e))return i;let r=[],o=0,s=-1,n=-1;for(let c=0;c<i.data.byteLength;c++){let l=e.getUint8(c);if(l===0)o++;else if(l===1){if(o===2||o===3){let m=c-o;if(s===-1?s=m:n===-1&&(n=m,r.push(new Yo(new DataView(e.buffer.slice(s,n)))),s=m,n=-1),!(e.getUint8(c+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var Sp=0,Pa=class Pa{constructor(t){this.core=t;u(this,"log");u(this,"_seiMessageList",[]);u(this,"_smallSeiMessageList",[]);u(this,"_subStreamSeiMessageList",[]);Sp++,this.log=t.log.createChild({id:`${this.getAlias()}${Sp}`}),this.log.info(`[sei] created id=${this.getAlias()}${Sp}`),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return Tp({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return Ip({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(re.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:ca?this.encode:Tp,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:ca?this.decode:Ip,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return Pa.Name}getAlias(){return"sei"}getGroup(){return"sei"}};u(Pa,"autoStart",!0),u(Pa,"Name","SEI");var pu=Pa;function Ap({frame:i,onDump:t}){return t==null||t(),i}function yp({frame:i,onDump:t}){return t==null||t(),i}var Dg={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
|
|
97
|
+
${o.stack}`),!1}},i};var cn=new WeakMap;function Cg(i){let t=cn.get(i);t&&(t.forEach(e=>clearTimeout(e)),cn.delete(i))}function Ng(i,t){return xe((e,r)=>function(...o){let s=cn.get(this);s||(s=new Map,cn.set(this,s));let n=t(...o),c=s.get(n);if(!c||c<=0){e.apply(this,o);let l=setTimeout(()=>{var m;(m=cn.get(this))==null||m.delete(n)},i);s.set(n,l)}else{clearTimeout(c);let l=window.setTimeout(()=>{var m;e.apply(this,o),(m=cn.get(this))==null||m.delete(n)},i);s.set(n,l)}})}var wg="trtc-sdk-v5",Mg="5.11.2-wasm.3";function wt(...i){return xe((t,e)=>function(...r){try{au.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function Tp(...i){return xe((t,e)=>function(...r){try{au.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function au(i,t,e,r){if(ot(i))for(let o=0;o<i.length;o++)nu.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else nu.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function nu({rule:i,value:t,key:e,fnName:r,className:o}){function s(l){return{code:le.INVALID_PARAMETER,extraCode:l,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(P(t)){if(i.required)throw new ae(s(5001));if(P(i.defaultValue)){We(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let l=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(l=!0),We(i.type[m])&&t instanceof i.type[m]&&(l=!0),Oe(i.type[m])&&ct(t)===i.type[m].toLowerCase()&&(l=!0);if(!l)throw new ae({code:le.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>Lo(m)?vs(m):Oe(m)?m:ct(m))},value:t}})}else if(!P(i.type)&&ct(t)!==i.type)throw new ae(s(5002));if(i.allowEmpty===!1){let l=ke(t)&&(t===0||Number.isNaN(t)),m=Oe(t)&&t.trim()==="";if(l||m)throw new ae(s(5003))}if(i.notLessThanZero&&ke(t)&&t<0)throw new ae(s(5006));if(!P(i.min)&&ke(t)&&t<i.min)throw new ae(s(5007));if(!P(i.max)&&ke(t)&&t>i.max)throw new ae(s(5008));if(Oe(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new ae(s(5004))}else if(We(i.instanceOf)&&!(t instanceof i.instanceOf))throw new ae(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new ae(s(5005));let{properties:n}=i;Lt(n)&&er(t)&&Object.keys(n).forEach(l=>{nu.call(this,{rule:n[l],value:t&&t[l],key:`${l}`,fnName:r,className:o})});let{arrayItem:c}=i;Lt(c)&&ot(t)&&t.forEach((l,m)=>{nu.call(this,{rule:c,value:l,key:`${e}[${m}]`,fnName:r,className:o})}),We(i.validate)&&i.validate.call(this,t,e,r,o,this)}function tt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return xe((n,c)=>function(...l){var v,k,M;function m(N,B,ee){if(ee&&ee.includes(N))return"hided";if(e){let me=e(...l);if(l[me.argIndex]===B)return me.value}if(B===l||N in l)return B;try{return B instanceof HTMLElement?`id: ${B.id} type:${ct(B)}`:B instanceof MediaStreamTrack?Cc(B):(JSON.stringify(B),B)}catch(me){return`type:${ct(B)}`}}let f=this._log||$;if(o!=null&&o(...l))return n.apply(this,l);l.length>0?f.info(`${c}() ${JSON.stringify(l,(N,B)=>m(N,B,["userSig","privateMapKey"]))}`):f.info(`${c}()`);let E=r?r(...l):id[c],_=(s==null?void 0:s(...l))||!1;try{let N=n.apply(this,l),B=Ie();if(Ji(N)){let ee=`${c.includes("Plugin")?`${((k=(v=l[0]).getName)==null?void 0:k.call(v))||""} `:" "}`;return N.then(me=>(f.info(`${c}() success ${ee}${t.call(this,...l)}`),Q.addSuccessEvent({key:E,cost:Ie()-B}),me)).catch(me=>{var J;me=ae.convertFrom.call(this,me,c,l.length===1?l[0]:l);let oe=me.extraCode||me.code,Xe=(J=me.message)!=null&&J.includes(oe)?"":` code:${oe}`;throw _||f.error(`${c}() failed ${ee}${t.call(this,...l)} ${me}${Xe} params: ${JSON.stringify(l,m)}`),Q.addFailedEvent({key:E,error:me}),me})}return Q.addSuccessEvent({key:E}),N}catch(N){N=ae.convertFrom.call(this,N,c);let B=N.extraCode||N.code,ee=(M=N.message)!=null&&M.includes(B)?"":` code:${B}`;throw _||f.error(`${c}() failed ${N}${ee} params: ${JSON.stringify(l,m)}`),Q.addFailedEvent({key:E,error:N}),N}})}var cu=i=>xe((t,e)=>function(r,o){return y(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new ae({code:le.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(We(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new ae({code:le.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return au.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var du=0,Ip,Ci=class Ci{constructor(t){this.core=t;u(this,"log");u(this,"customAudioReferenceMap",new Map);u(this,"audioRefId",0);u(this,"audioContext",ze());u(this,"localAudioWorkletNode");u(this,"screenAudioWorkletNode");u(this,"mixNode");u(this,"silentNode");du=du+1,this.log=t.log.createChild({id:`${this.getAlias()}${du}`}),this.log.info(`created id=${this.getAlias()}${du}`)}static getStartValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack&&!t.room.audioManager.hasScreenAudioTrack)throw new ae({code:le.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return Ip||(Ip=this.doPreload(t)),Ip}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Ti(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Ci.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Ci.getStartValidateRule(this.core);case"update":return Ci.updateValidateRule;case"stop":return Ci.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e}=this.core,{sdkAppId:r,userId:o,assetsPath:s=this.core.assetsPath,audioReference:n,processLevel:c,enableDump:l,isLocalAudioNeedAudioProcess:m=!0,isScreenAudioNeedAudioProcess:f=!0}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=m,this.core.room.audioManager.isScreenAudioNeedAudioProcess=f,!s)throw new ae({code:le.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${s}/audioProcessor-wasm.js`),!this.localAudioWorkletNode||!this.screenAudioWorkletNode){let E=String(Date.now()).slice(0,-3),{auth:_,sign:v,status:k,message:M}=yield IS(Te(X({},t),{timestamp:E}));if(!_)throw this.log.info(`audioProcessor: ${o} auth result: ${_}. Message: ${M}`),new ae({code:le.INVALID_PARAMETER,message:M});this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,E,v,k,e),this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,E,v,k,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),this.localAudioWorkletNode.port.postMessage({type:"enable"}),this.screenAudioWorkletNode.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode),P(n)||n.forEach(E=>{this.customAudioReferenceMap.set(E,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:E,refId:`o-${this.audioRefId++}`})}),P(c)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:c}}),P(l)||this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:l}})})}update(t){return y(this,null,function*(){if(!this.localAudioWorkletNode||!this.screenAudioWorkletNode)return;let{audioReference:e,enableDump:r,processLevel:o}=t;P(e)||(this.customAudioReferenceMap.forEach((s,n)=>{this.customAudioReferenceMap.delete(n),this.core.room.audioManager.updateAudioReference({type:"remove",refId:s})}),e.forEach(s=>{this.customAudioReferenceMap.set(s,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s,refId:`o-${this.audioRefId++}`})})),P(o)||this.localAudioWorkletNode.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),P(r)||(this.localAudioWorkletNode.port.postMessage({type:"dump",data:{enable:r}}),this.screenAudioWorkletNode.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return y(this,null,function*(){if(!this.localAudioWorkletNode||!this.mixNode||!this.silentNode||!this.screenAudioWorkletNode)return;let{room:t}=this.core;this.localAudioWorkletNode.port.postMessage({type:"disable"}),this.screenAudioWorkletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.mixNode,this.silentNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null)}initWorkletNode(t,e,r,o,s,n,c,l){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:c}}),t.port.onmessage=m=>{var E;let{data:f}=m;switch(f.type){case"cost":let _=(f==null?void 0:f.value)>10?"info":"debug";this.log[_](`[${e}] avg cost: ${f.value} max: ${f==null?void 0:f.max}(${Ss(new Date(f==null?void 0:f.maxCostTimestamp))}) hist: ${(E=f==null?void 0:f.hist)==null?void 0:E.join(" ")}`);return;case"log":this.log[f.logLevel](`[${e}] ${f.value}`);return;case"dump":V.emit("265",{room:l,data:f.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}};u(Ci,"updateValidateRule",{type:"object"}),u(Ci,"stopValidateRule",{type:"object"}),u(Ci,"Name","AudioProcessor");var uu=Ci;function TS(i,t=D.MAIN){return`https://${zr[t]||su(i,t)}/api/v1/audioAiAuth`}function IS(o){return y(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${TS(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}×tamp=${r}`,c=yield fetch(n),{data:{errCode:l,errMsg:m,sign:f,status:E}}=yield c.json();if(E==="1")return{auth:!0,sign:f,status:E,message:m};let _=oi(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",v="Init RTCAudioProcessor failed.",k="";switch(l){case 1:k="Please check your params.";break;case 2:k=`You need to buy packages. Refer to: ${_}`;break;case 3:k="Server is invalid. Please contact our engineer. ";break;case 4:k=`Your packages is not active. Refer to: ${_}`;break;case 5:k=`Your packages is expired. Refer to: ${_}`;break;case 6:k="Your version is not supported.";break}return{auth:!1,status:E,message:m?`${v} Reason: ${m}. ${k}`:`${v}, ${k}`}})}var lu=0,Sp=class{constructor(t,e){u(this,"player");u(this,"publisher");u(this,"mixInput");this.mixInput=new Xs(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(P(t.volume)||(this.volume=t.volume),P(t.loop)||(this.loop=t.loop),P(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return(t=this.publisher)==null||t.play(),(e=this.player)==null?void 0:e.play()}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function dn(i,t){if(t&&typeof t!="function")throw new ae({code:le.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var Xr=class Xr{constructor(t){this.core=t;u(this,"log");u(this,"mixedMusicMap",new Map);u(this,"cacheMusicMap",new Map);lu=lu+1,this.log=t.log.createChild({id:`${this.getAlias()}${lu}`}),this.log.info(`created id=${this.getAlias()}${lu}`)}getName(){return Xr.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return Xr.startValidateRule;case"update":return Xr.updateValidateRule;case"stop":return Xr.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e}=this.core;this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new Sp(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),Q.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return y(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),P(r)||n.setOperation(r),P(o)||n.seek(o),this.kvUpload(t)})}stop(e){return y(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:c,onTimeUpdate:l,onDurationChange:m,onEnded:f}=t;e&&Q.addCount({key:502711}),r&&Q.addCount({key:502703}),o&&Q.addCount({key:502704}),s&&Q.addCount({key:502705}),n&&Q.addCount({key:502706}),c&&Q.addCount({key:502707}),typeof l!="function"&&Q.addCount({key:502709}),typeof f!="function"&&Q.addCount({key:502710}),typeof m!="function"&&Q.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId:e}),this.stop({id:e})})}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};u(Xr,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],n=o.split(".").pop(),c=s.indexOf(n)>=0,l=o.startsWith("blob"),m=o.startsWith("data");if(!(c||l||m))throw new ae({code:le.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new ae({code:le.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});dn("onTimeUpdate",t.onTimeUpdate),dn("onEnded",t.onEnded),dn("onDurationChange",t.onDurationChange)}}),u(Xr,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){dn("onTimeUpdate",t.onTimeUpdate),dn("onEnded",t.onEnded),dn("onDurationChange",t.onDurationChange)}}),u(Xr,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),u(Xr,"Name","AudioMixer");var mu=Xr;var pu=0,yp,Ni=class Ni{constructor(t){this.core=t;u(this,"log");u(this,"audioContext",ze("denoiser"));u(this,"workletNode");pu=pu+1,this.log=t.log.createChild({id:`${this.getAlias()}${pu}`}),this.log.info(`created id=${this.getAlias()}${pu}`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new ae({code:le.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return yp||(yp=this.doPreload(t)),yp}doPreload(t){return y(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Ti(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Ni.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return Ni.startValidateRule(this.core);case"update":return Ni.updateValidateRule;case"stop":return Ni.stopValidateRule}}start(t){return y(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new ae({code:le.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(yield this.preload(`${o}/denoiser-wasm.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:c,status:l,message:m}=yield yS(r,Te(X({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${m}`),new ae({code:le.INVALID_PARAMETER,message:m});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:s,sign:c,status:l}}),this.workletNode.port.onmessage=f=>{var _;let{data:E}=f;if(E.type==="cost"){let v=(E==null?void 0:E.max)>20?"warn":(E==null?void 0:E.max)>10?"info":"debug";this.log[v](`avg cost: ${E.value} max: ${E==null?void 0:E.max}(${Ss(new Date(E==null?void 0:E.maxCostTimestamp))}) hist: ${(_=E==null?void 0:E.hist)==null?void 0:_.join(" ")}`)}else E.type==="log"&&this.log[E.logLevel](`${E.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return y(this,null,function*(){})}stop(){return y(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};u(Ni,"updateValidateRule",{type:"object"}),u(Ni,"stopValidateRule",{type:"object"}),u(Ni,"Name","AIDenoiser");var hu=Ni;function yS(s,n){return y(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:c,errMsg:l,sign:m,status:f}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(f==="1")return{auth:!0,sign:m,status:f,message:l};let E=oi(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",_="Init RTCAIDenoiser failed.",v="";switch(c){case 1:v="Please check your params.";break;case 2:v=`You need to buy packages. Refer to: ${E}`;break;case 3:v="Server is invalid. Please contact our engineer. ";break;case 4:v=`Your packages is not active. Refer to: ${E}`;break;case 5:v=`Your packages is expired. Refer to: ${E}`;break;case 6:v="Your version is not supported.";break}return{auth:!1,status:f,message:l?`${_} Reason: ${l}. ${v}`:`${_}, ${v}`}}catch(c){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${c}`}}})}var xg=ji(Zi(),1);var Ap=class extends xg.EventEmitter{constructor(){super();u(this,"observer");u(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return y(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!mt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){je.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&$.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){je.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},AS=new Ap,bp=AS;function bS([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let c=0;c<r;c++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Yo(new DataView(new Uint8Array(s).buffer),!0)}function RS(i){return i.type==="empty"||i.data.byteLength===0}function vS(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function CS(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function Rp({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-CS(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(bS),s=o.reduce((f,E)=>f+E.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),c=new DataView(n),l=new DataView(i.data),m=0;for(let f=0;f<o.length;f++)for(let E=0;E<o[f].dataView.byteLength;E++)c.setInt8(m++,o[f].dataView.getInt8(E));for(let f=0;f<i.data.byteLength;f++)c.setInt8(m++,l.getInt8(f));return i.data=n,i}function vp({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(RS(i)||!vS(e))return i;let r=[],o=0,s=-1,n=-1;for(let c=0;c<i.data.byteLength;c++){let l=e.getUint8(c);if(l===0)o++;else if(l===1){if(o===2||o===3){let m=c-o;if(s===-1?s=m:n===-1&&(n=m,r.push(new Yo(new DataView(e.buffer.slice(s,n)))),s=m,n=-1),!(e.getUint8(c+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var Cp=0,Ua=class Ua{constructor(t){this.core=t;u(this,"log");u(this,"_seiMessageList",[]);u(this,"_smallSeiMessageList",[]);u(this,"_subStreamSeiMessageList",[]);Cp++,this.log=t.log.createChild({id:`${this.getAlias()}${Cp}`}),this.log.info(`[sei] created id=${this.getAlias()}${Cp}`),this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return Rp({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return vp({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(re.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:la?this.encode:Rp,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:la?this.decode:vp,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return Ua.Name}getAlias(){return"sei"}getGroup(){return"sei"}};u(Ua,"autoStart",!0),u(Ua,"Name","SEI");var fu=Ua;function Np({frame:i,onDump:t}){return t==null||t(),i}function Dp({frame:i,onDump:t}){return t==null||t(),i}var Pg={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
|
|
98
98
|
1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
|
|
99
99
|
2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},"main stream - video player is paused":{tips:`The remote stream video playback is paused, which usually has two possibilities:
|
|
100
100
|
1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
|
|
101
|
-
2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{Dg[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var gk=Object.keys(Dg);var bS=0,hu,ka=class ka{constructor(t){this.core=t;u(this,"_core");u(this,"log");u(this,"dumpLocalVideoMap",{});u(this,"dumpRemoteVideoMap",{});u(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++bS}`}),this.log.info("created")}getName(){return ka.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return A(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(e){return A(this,arguments,function*({forceOpen:t}){P(t)&&(t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor()))})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return A(this,null,function*(){var t;if(!this.dialog)try{if(hu)yield hu;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${Rg}@${at}/assets/debug-dialog.js`;hu=this._core.fileDownloader.loadScript(e),yield hu}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):Ap,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):yp,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return Ap({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return yp({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};u(ka,"Name","Debug"),u(ka,"autoStart",!0);var fu=ka;var Mg=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},gu=class{constructor(t,e,r){u(this,"trackDoneOB");u(this,"startOB");u(this,"stopOB");u(this,"inputFrameCount",0);u(this,"decodedFrameCount",0);u(this,"type","auto");u(this,"config");u(this,"decoder");u(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=Ce(e,de.INIT),this.stopOB=At(),this.startOB=At(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=At(),c=l=>{let m=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),be(m,Ye(this.stopOB),Le(()=>{},E=>{e.log.error(E),o.addFailedEvent({key:Mg(this.type),error:E}),l>4?this.startOB.error(E):this.startOB.next(l+1)})),be(m,Nr(1),Ym(Ra))};be(this.startOB,ya(0),no(c),Ye(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},l=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:Mg(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return Si()(e=>A(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},RS={type:"object"},La=class La{constructor(t){this.core=t;u(this,"log");u(this,"contextMap",new Map);u(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return La.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return La.Name}getValidateRule(t){return RS}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new gu(this.core,r,t);return be(o.trackDoneOB,Nr(1),Le(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new gu(this.core,t.track,t))}}};u(La,"Name","TRTCAudioDecoder");var Ua=La;var Eu=class{constructor(){u(this,"log");this.log=$.createLogger({id:"exp"})}call(t,e){return A(this,null,function*(){return We(this[t])?this[t](e):Promise.reject(new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return A(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:c}=t,{audioManager:l}=e.room,{getPCMAbortCtrlMap:m,audioFrameEventConfigMap:E}=l;if(E.set(o,{enable:r,sampleRate:s,channelCount:n,port:c}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isAvailable){if(m.get(g.userId))return;let _=l.getPCM(v=>{e.emit(re.AUDIO_FRAME,v)},g.userId);m.set(g.userId,_)}});else{if(m.get(o))return;let g=l.getPCM(_=>{e.emit(re.AUDIO_FRAME,_)},o);m.set(o,g)}else if(o==="*")e.room.remotePublishedUserMap.forEach(g=>{if(g.remoteAudioTrack.isSubscribed){let{userId:_}=g,v=m.get(_);v==null||v.abort("disable"),m.delete(_)}});else{let g=m.get(o);g==null||g.abort("disable"),m.delete(o)}})}};Z([Jf({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],Eu.prototype,"enableAudioFrameEvent",1);var wg=new Eu;var Og=0,Va=new Set,Ct=null;Xu(vg);Hs.checkStorage();Zl();var vS={RtcError:ne,ErrorCode:le,ErrorCodeDictionary:hr},Se=class Se extends xg.EventEmitter{constructor(e,r){super();u(this,"_room");u(this,"_eventListened",new Set);u(this,"_localVideoTrack",null);u(this,"_localAudioTrack",null);u(this,"_localScreenTrack",null);u(this,"_localScreenAudioTrack",null);u(this,"_localVideoConfig",null);u(this,"_localScreenConfig",null);u(this,"_localAudioConfig",null);u(this,"_remoteVideoConfigMap",new Map);u(this,"_remoteAudioConfigMap",new Map);u(this,"_remoteAudioVolumeMap",new Map);u(this,"_remoteAudioMuteMap",new Map);u(this,"_mediaTrackMap",new WeakMap);u(this,"_log",$.createLogger({id:`t${++Og}`}));u(this,"_plugins",new Map);u(this,"_networkQuality",null);u(this,"_speakerId");u(this,"enterRoomParams");this._room=new e(z({logger:this._log,frameWorkType:Se.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(uu,r.assetsPath),this._use(cu,r.assetsPath),this._use(mu,r.assetsPath),this._use(Ua,r.assetsPath),this._use(fu),r.enableSEI&&da&&this._use(pu),this._room.on("audio-volume",o=>{!o.find(s=>s.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(this._localAudioTrack.getAudioLevel()*100),floatVolume:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(s=>{var c;let n=s.userId===""?this._localAudioTrack:(c=this.room.remotePublishedUserMap.get(s.userId))==null?void 0:c.remoteAudioTrack;n&&(s.volume=n.dbVolume)}),this.emit(re.AUDIO_VOLUME,{result:o.sort((s,n)=>n.volume-s.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new ne({code:le.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),Sg(this,"trtc")}static create(e){}static _create(e,r){sg();let o=new Se(e,r||{});return Va.add(o),o}get room(){return this._room}_listenEvents(){Vt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(re.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(re.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(re.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(re.ERROR,ne.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(re.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=Te(z({},e),{uplinkRTT:Math.min(e.uplinkRTT,wn),downlinkRTT:Math.min(e.downlinkRTT,wn)});this.emit(re.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{Vt(o,o).add("player-state-changed",s=>{let n=Te(z({},s),{userId:e.userId});o.kind===N.VIDEO&&(n.streamType=uo(o.streamType)),this.emit(o.kind===N.AUDIO?re.AUDIO_PLAY_STATE_CHANGED:re.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(re.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{ht(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:c,videoAvailable:l}=r;c||this._remoteAudioConfigMap.delete(o),l||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==l&&(l?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(l?re.REMOTE_VIDEO_AVAILABLE:re.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==c&&(c?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(c?re.REMOTE_AUDIO_AVAILABLE:re.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?re.REMOTE_VIDEO_AVAILABLE:re.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(re.SEI_MESSAGE,Te(z({},e),{streamType:uo(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(re.ERROR,new ne({code:le.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,c,l,m,E,g;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((c=this._networkQuality)==null?void 0:c.downlinkRTT)||0,wn),upLoss:((l=this._networkQuality)==null?void 0:l.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((E=e.msg_up_stream_info.msg_audio_status)==null?void 0:E.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((g=e.msg_up_stream_info.msg_audio_status)==null?void 0:g.uint32_audio_level)||0)/mi},video:e.msg_up_stream_info.msg_video_status.filter(_=>r[_.uint32_video_stream_type]).map(_=>({bitrate:(_.uint32_video_codec_bitrate||0)/1e3,width:_.uint32_video_width,height:_.uint32_video_height,frameRate:_.uint32_video_enc_fps,videoType:r[_.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(_=>({userId:_.msg_user_info.str_identifier,audio:{bitrate:(_.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(_.msg_audio_status.uint32_audio_level||0)/mi,point2pointDelay:(_.msg_audio_status.uint32_audio_p2p_delay||0)+(_.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:_.msg_audio_status.uint32_audio_cache_ms||0},video:_.msg_video_status.map(v=>({bitrate:(v.uint32_video_codec_bitrate||0)/1e3,width:v.uint32_video_width,height:v.uint32_video_height,frameRate:v.uint32_video_dec_fps,videoType:r[v.uint32_video_stream_type],point2pointDelay:(v.uint32_video_p2p_delay||0)+(v.uint32_video_cache_ms||0),jitterBufferDelay:v.uint32_video_cache_ms||0}))}))};this.emit(re.STATISTICS,o)}).add("custom-message",e=>{this.emit(re.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(re.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(re.FIRST_VIDEO_FRAME,Te(z({},e),{streamType:uo(e.streamType)}))}).add("audio-frame",e=>{this.emit(re.AUDIO_FRAME,e)}),Vt(this,St).add("audioInputAdded",e=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>A(this,null,function*(){if(this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Ct&&Ct.deviceId===Mn){let r=(yield to()).find(o=>o.deviceId===Mn);r&&Ct.groupId!==r.groupId&&(Ct=r,this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>A(this,null,function*(){this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield to())[0];if(!r||!Ct||Ct.groupId===r.groupId)return;let o=Ct.deviceId===e.deviceId,s=Ct.deviceId===Mn&&Ct.deviceId===r.deviceId;(o||s)&&(Ct=r,this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}))}use(e){let r,o;"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,this._use(r,o)}_use(e,r){if(this._plugins.get(e.Name)){this._log.warn("duplicate install plugin",e.Name);return}let s=new e(Ig.call(this,{TRTC:Se,room:this._room,errorModule:vS,assetsPath:r}));this._plugins.set(e.Name,s),e.autoStart&&this.startPlugin(e.Name)}enterRoom(e){return A(this,null,function*(){var l,m;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!we(e.proxy)&&e.proxy.turnServer&&((m=(l=this._room).setTurnServer)==null||m.call(l,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,st(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let c={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(c,r,Se.frameWorkType),this._checkTrackToPublish(),_p.start()})}exitRoom(){return A(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return A(this,null,function*(){if(this.room.isSwitchRoomSupported())yield this._room.switchRoom(e);else{yield this.exitRoom();let r=z(z({},this.enterRoomParams),e);yield this.enterRoom(r)}})}switchRole(e,r){return A(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){ht(this),this.removeAllListeners(),this._room.destroy(),Va.delete(this),Va.size===0&&_p.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),V.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return A(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,n=new jr(this._room.audioManager),c={},l={muted:!0};s&&(P(s.microphoneId)?P(s.audioTrack)||(c.customSource=s.audioTrack):c.deviceId=s.microphoneId,s&&Pe(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),P(s.profile)||(we(s.profile)?pc[s.profile]&&n.setProfile(pc[s.profile]):n.setProfile(s.profile)),Pe(s.earMonitorVolume)&&(l.muted=!(s.earMonitorVolume>0),l.volume=s.earMonitorVolume),P(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),P(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),P(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl)),n.on("5",m=>{this.emit(re.ERROR,new ne({code:le.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),n.on("2",m=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),n.on("4",m=>{let E;m.error&&(E=ne.convertFrom(m.error)),this.emit(re.PUBLISH_STATE_CHANGED,Te(z({},m),{error:E}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(c),P(o)||n.setMute(o),Vt(n,n).add("player-state-changed",m=>{this.emit(re.AUDIO_PLAY_STATE_CHANGED,Te(z({},m),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=Te(z({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:l,track:n}),V.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return A(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):P(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),P(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),P(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!P(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),P(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),ur(this._localAudioConfig,e)})}stopLocalAudio(){return A(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),V.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),ht(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return A(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var g;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:c}=e,l=new Cr(this._room.videoManager),m={},E={};st(c==null?void 0:c.avoidCropping)&&(l.avoidCropping=c.avoidCropping),c&&(c.cameraId?m.deviceId=c.cameraId:P(c.useFrontCamera)?P(c.videoTrack)||(m.customSource=c.videoTrack):m.facingMode=c.useFrontCamera?N.FACING_MODE_USER:N.FACING_MODE_ENVIRONMENT,P(c.retryWhenExactFailed)||(m.retryWhenExactFailed=c.retryWhenExactFailed),c.qosPreference&&(m.contentHint=Oa(c.qosPreference)),P(c.profile)||(we(c.profile)?Ir[c.profile]&&l.setProfile(Ir[c.profile]):l.setProfile(c.profile)),P(c.fillMode)||(E.objectFit=c.fillMode),P(c.mirror)||(E.mirror=c.mirror),P(c.small)||(P(c.smallMode)||(this._room.smallMode=c.smallMode),st(c.small)&&c.small===!1?l.stopSmall():l.updateSmallConfig(sn(c.small,!0))),P(c.rotation)||l.setRotation(c.rotation)),l.once("first-video-frame",_=>{this.emit(re.FIRST_VIDEO_FRAME,Te(z({},_),{streamType:uo(_.streamType)}))}),l.on("5",_=>{this.emit(re.ERROR,new ne({code:le.DEVICE_ERROR,extraCode:5308,messageParams:{error:_}}))}),l.on("2",_=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"active",device:_})}),l.on("4",_=>{let v;_.error&&(v=ne.convertFrom(_.error)),this.emit(re.PUBLISH_STATE_CHANGED,Te(z({},_),{error:v}))}),this._listenOutputTrackChanged(l),s?yield l.capture(m):(g=l.manager)==null||g.changeInput(l),P(n)||(yield l.setMute(n)),Vt(l,l).add("player-state-changed",_=>{this.emit(re.VIDEO_PLAY_STATE_CHANGED,Te(z({},_),{userId:"",streamType:"main"}))}),o&&this._room.isJoined&&this._room.publish(l).catch(()=>{}),this._localVideoTrack=l,this._localVideoConfig=Te(z({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:E,track:l})})}updateLocalVideo(e){return A(this,null,function*(){var m,E,g;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:c}=e,l={};if(this._localVideoConfig.capture)n!==!1?c!=null&&c.cameraId?yield this._localVideoTrack.switchDevice(c==null?void 0:c.cameraId):P(c==null?void 0:c.useFrontCamera)?P(c==null?void 0:c.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(c==null?void 0:c.videoTrack)):yield this._localVideoTrack.switchDevice(c!=null&&c.useFrontCamera?N.FACING_MODE_USER:N.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let _={};_.deviceId=(c==null?void 0:c.cameraId)||((m=this._localVideoConfig.option)==null?void 0:m.cameraId),_.facingMode=c!=null&&c.useFrontCamera||(E=this._localVideoConfig.option)!=null&&E.useFrontCamera?N.FACING_MODE_USER:N.FACING_MODE_ENVIRONMENT,_.customSource=(c==null?void 0:c.videoTrack)||((g=this._localVideoConfig.option)==null?void 0:g.videoTrack),yield this._localVideoTrack.capture(_)}c&&(P(c.profile)||(we(c.profile)?Ir[c.profile]&&this._localVideoTrack.setProfile(Ir[c.profile]):this._localVideoTrack.setProfile(c.profile),(!c.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(c.cameraId))&&P(c.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),P(c.fillMode)||(l.objectFit=c.fillMode),P(c.mirror)||(l.mirror=c.mirror),P(c.rotation)||this._localVideoTrack.setRotation(c.rotation),c.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Oa(c.qosPreference)),P(c.small)||(st(c.small)&&!c.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(sn(c.small,!0)))),this._room.isJoined&&P(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),P(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:l,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),ur(this._localVideoConfig,e)})}stopLocalVideo(){return A(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),ht(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return A(this,arguments,function*(e={publish:!0,view:null}){if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,option:s}=e,n=new io(this._room.videoManager);n.on("4",g=>{let _;g.error&&(_=ne.convertFrom(g.error)),this.emit(re.PUBLISH_STATE_CHANGED,Te(z({},g),{error:_}))}),n.once("first-video-frame",g=>{this.emit(re.FIRST_VIDEO_FRAME,Te(z({},g),{streamType:uo(g.streamType)}))}),this._listenOutputTrackChanged(n),e.streamType==="main"&&(n.mediaType=4);let c=null,l={},m={};s&&(P(s.profile)||(we(s.profile)?hc[s.profile]&&n.setProfile(hc[s.profile]):n.setProfile(s.profile)),s.systemAudio&&(l.systemAudio=!0,l.echoCancellation=s.echoCancellation,l.noiseSuppression=s.noiseSuppression,l.autoGainControl=s.autoGainControl),P(s.fillMode)||(m.objectFit=s.fillMode),s.videoTrack&&(l.videoTrack=s.videoTrack),s.audioTrack&&(l.audioTrack=s.audioTrack),s.captureElement&&(l.captureElement=s.captureElement),s.preferDisplaySurface&&(l.preferDisplaySurface=s.preferDisplaySurface),s.qosPreference&&(l.contentHint=Oa(s.qosPreference)));let E=yield n.capture(l);if(n.mediaTrack.addEventListener(N.ENDED,()=>{this._stopScreenShare(),this.emit(re.SCREEN_SHARE_STOPPED)}),E.getAudioTracks()[0]&&(c=new Ko(this._room.audioManager),yield c.setInputMediaStreamTrack(E.getAudioTracks()[0]),this._speakerId&&c.setAudioOutput(this._speakerId)),Vt(n,n).add("player-state-changed",g=>{this.emit(re.VIDEO_PLAY_STATE_CHANGED,Te(z({},g),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let g=[n];c&&(g.push(c),this._checkScreenAudioEchoCancellation(n,c)),this._room.publish(...g).catch(()=>{})}this._localScreenTrack=n,this._localScreenAudioTrack=c,this._localScreenConfig=Te(z({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:n})})}updateScreenShare(e){return A(this,null,function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,option:s}=e,n={};if(s&&(P(s.fillMode)||(n.objectFit=s.fillMode),s.qosPreference)){let c=Oa(s.qosPreference);this._localScreenTrack.setContentHint(c)}this._room.isJoined&&!P(o)&&(o&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch(()=>{})),this._localScreenConfig.publish&&!o&&(this._room.unpublish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch(()=>{}))),yield this._updateVideoPlayOption({view:r,playOption:n,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),ur(this._localScreenConfig,e)})}stopScreenShare(){return A(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return A(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,c=`${o}_${s}`;if(this._remoteVideoConfigMap.has(c)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let l=this._room.remotePublishedUserMap.get(o);if(!l)return;let m={},E=s==="main"?l.remoteVideoTrack:l.remoteAuxiliaryTrack;this._listenOutputTrackChanged(E),n&&(P(n.fillMode)||(m.objectFit=n.fillMode),P(n.mirror)||(m.mirror=n.mirror),P(n.poster)||(m.poster=n.poster),m.canvasRender=n.canvasRender,s==="main"&&!P(n.small)&&(!l.remoteVideoTrack.isSubscribing&&!l.remoteVideoTrack.isSubscribed&&l.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,E.user))),yield this._room.subscribe(E),yield this._enableVideoDecodeFallback(E,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:E}),this._emitTrackEvent(E),this._remoteVideoConfigMap.set(c,{config:e}),n&&!P(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:E,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return A(this,null,function*(){var M,B;let{view:r,userId:o,streamType:s,option:n}=e,c=`${o}_${s}`,l=this._remoteVideoConfigMap.get(c);if(!l||!this._room.remotePublishedUserMap.has(o))return;let m={};n&&(P(n.fillMode)||(m.objectFit=n.fillMode),P(n.mirror)||(m.mirror=n.mirror));let E=null,g=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(g!=null&&g.muteState.hasVideo)&&(E=g.remoteVideoTrack),s==="sub"&&(g!=null&&g.muteState.hasAuxiliary)&&(E=g.remoteAuxiliaryTrack),!E)return;let{config:_}=l;s==="main"&&n&&!P(n.small)&&this._room.changeType(n.small,E.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:E,prevConfig:_}),ur(_,e);let v=P(n==null?void 0:n.receiveWhenViewVisible)?(M=_.option)==null?void 0:M.receiveWhenViewVisible:n.receiveWhenViewVisible,L=P(r)?_.view:r,x=P(n==null?void 0:n.viewRoot)?(B=_.option)==null?void 0:B.viewRoot:n.viewRoot;this._observeView({remoteTrack:E,view:L,receiveWhenViewVisible:v,viewRoot:x})})}stopRemoteVideo(e){return A(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return A(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:c,remoteAuxiliaryTrack:l}=s;e.streamType==="main"&&(c.stop(),n.hasVideo&&o.push(c)),e.streamType==="sub"&&(l.stop(),n.hasAuxiliary&&o.push(l))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return A(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return A(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return A(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return A(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(re.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{gg.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===Se.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(Se.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(we(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let c=this._room.remotePublishedUserMap.get(r);c&&(o=c.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let c=this._room.remotePublishedUserMap.get(r);c&&(n=o==="main"?c.remoteVideoTrack:c.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return A(this,null,function*(){(yield to()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Ct=o)}),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return A(this,null,function*(){let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},n=o.remoteAudioTrack;this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let c=this._remoteAudioVolumeMap.get(r),l=Pe(c)?c:100;s.volume=l,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),be(Ce(n,"decode-failed"),Ye(Ce(n,de.INIT)),Le(()=>{this.startPlugin(Ua.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),V.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(c){throw this._remoteAudioConfigMap.delete(r),c}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return A(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),V.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;be(Ce(e,"decode-failed"),Ye(Ce(e,de.INIT)),va(()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),Ai(Ce(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(re.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Te(z({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return A(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),P(e)&&s&&s.view&&!Cs(r)){let c=Ds(s.view);c.length>0&&(yield o.play(c,r))}if(!P(e)){let c=Ds(e);c.length>0?yield o.play(c,r):o.stop()}})}_updateAudioPlayOption(s){return A(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(P(e.muted)||r.setPlayerMute(e.muted),P(e.volume)||r.setAudioVolume(e.volume/100),r instanceof jr&&r.mediaTrack){let n=e.muted===!1&&!P(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof Ii){let n=e.muted?0:e.volume;if(P(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(re.TRACK,{userId:o,streamType:uo(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(P(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${uo(e.streamType)}`);if(!n)return;let c=n.observer||void 0;if(r===null||ot(r)&&r.length===0||!o){c==null||c.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=n.visibleViewMap||new Map,E=-1;(!c||c.root!==s)&&(c==null||c.disconnect(),m.clear(),c=new IntersectionObserver(_=>{_.forEach(v=>{m.set(v.target,v.isIntersecting),e.log.info(`view ${v.target.id} is${v.isIntersecting?"":" not"} visible`)}),clearTimeout(E),E=window.setTimeout(()=>{[...m.values()].find(L=>L)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let g=new Set(Ds(r));m.forEach((_,v)=>{g.has(v)||(c.unobserve(v),m.delete(v))}),g.forEach(_=>{m.set(_,!0),c.observe(_)}),c.takeRecords().forEach(_=>{m.set(_.target,_.isIntersecting)}),n.visibleViewMap=m,n.observer=c}_exitRoom(){return A(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch()}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch()}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),this._remoteAudioVolumeMap.clear(),Ag(this),this._room.remotePublishedUserMap.forEach(e=>{ht(e.remoteAudioTrack),ht(e.remoteVideoTrack),ht(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return A(this,null,function*(){var e,r;if(this._localScreenTrack){if(this._room.isJoined){let o=[this._localScreenTrack];this._localScreenAudioTrack&&o.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...o).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((r=this._localScreenAudioTrack.trackSettings)==null?void 0:r.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),ht(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return A(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(c){this._log.warn("start audioProcessor plugin failed: ",c)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Ct||Qs(Ct))&&(this._initActiveSpeaker(),V.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return A(this,null,function*(){if(Ct&&!Qs(Ct))this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:Ct});else{let e=yield to();e[0]&&!Qs(e[0])?(Ct=e[0],this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):V.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:Te(z({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),Q.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),Q.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return A(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),wg.call(e,z({trtcInstance:this},r))})}static setLogLevel(e,r){$.setLogLevel(e),P(r)||(r?$.enableUploadLog():$.disableUploadLog())}static isSupported(){return nd()}static getCameraList(e=!0){return or(e)}static getMicrophoneList(e=!0){return Qt(e)}static getSpeakerList(e=!0){return to(e)}static setCurrentSpeaker(e){return A(this,null,function*(){if(mt&&(e===pr.SPEAKER||e===pr.HEADSET)){let o=yield Se.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;Va.forEach(n=>A(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield to()).forEach(o=>{o.deviceId===e&&(Va.forEach(s=>{s._setCurrentSpeaker(e),s.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Ct=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:c,max:l}){switch(c&&(qo.version=c),e){case"count":qo.addCount({key:r,useUV:n});break;case"enum":qo.addEnum({key:r,value:o,useUV:n});break;case"number":qo.addNumber({key:r,value:o,split:s,max:l});break}}};u(Se,"_loggerManager",$),u(Se,"EVENT",re),u(Se,"ERROR_CODE",le),u(Se,"TYPE",pr),u(Se,"frameWorkType",30),Z([tt({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],Se.prototype,"use",1),Z([Mt(yt.TRTC.enterRoom),mo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Oe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),tt()],Se.prototype,"enterRoom",1),Z([tt()],Se.prototype,"exitRoom",1),Z([Mt(yt.TRTC.switchRoom),tt(),yd()],Se.prototype,"switchRoom",1),Z([Mt(yt.TRTC.switchRole),ns("room",{merge:(e,r)=>r}),tt()],Se.prototype,"switchRole",1),Z([tt()],Se.prototype,"destroy",1),Z([Mt(yt.TRTC.startLocalAudio),mo("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),tt()],Se.prototype,"startLocalAudio",1),Z([Mt(yt.TRTC.updateLocalAudio),ns("audio",{debounce:{delay:200,getKey:()=>`${Og}-localAudio`,isNeedToDebounce:e=>{var r;return!P((r=e.option)==null?void 0:r.captureVolume)}}}),tt()],Se.prototype,"updateLocalAudio",1),Z([po("audio"),tt()],Se.prototype,"stopLocalAudio",1),Z([Mt(yt.TRTC.startLocalVideo),mo("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),tt()],Se.prototype,"startLocalVideo",1),Z([Mt(yt.TRTC.updateLocalVideo),ns("video"),tt()],Se.prototype,"updateLocalVideo",1),Z([po("video"),tt()],Se.prototype,"stopLocalVideo",1),Z([Mt(yt.TRTC.startScreenShare),mo("screen",()=>!0),tt()],Se.prototype,"startScreenShare",1),Z([Mt(yt.TRTC.updateScreenShare),ns("screen"),tt()],Se.prototype,"updateScreenShare",1),Z([tt()],Se.prototype,"stopScreenShare",1),Z([Mt(yt.TRTC.startRemoteVideo),mo(e=>`v${e.userId}${e.streamType}`,()=>!0),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"startRemoteVideo",1),Z([Mt(yt.TRTC.updateRemoteVideo),ns(e=>`v${e.userId}${e.streamType}`),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"updateRemoteVideo",1),Z([Mt(yt.TRTC.stopRemoteVideo),Oe(e=>function(r){return A(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"stopRemoteVideo",1),Z([po(e=>`v${e.userId}${e.streamType}`)],Se.prototype,"_stopRemoteVideo",1),Z([Mt(...yt.TRTC.muteRemoteAudio),tt({getRemoteId:e=>e})],Se.prototype,"muteRemoteAudio",1),Z([pp(...yt.TRTC.setRemoteAudioVolume),yg(200,e=>e),tt({getRemoteId:e=>e})],Se.prototype,"setRemoteAudioVolume",1),Z([nu("start"),ro(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),mo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Wl[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],Se.prototype,"startPlugin",1),Z([nu("update"),ns((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Gl[e.getName()]})],Se.prototype,"updatePlugin",1),Z([nu("stop"),po((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>jl[e.getName()]})],Se.prototype,"stopPlugin",1),Z([pp(...yt.TRTC.enableAudioVolumeEvaluation)],Se.prototype,"enableAudioVolumeEvaluation",1),Z([tt()],Se.prototype,"getVideoSnapshot",1),Z([tt()],Se.prototype,"_setCurrentSpeaker",1),Z([mo(e=>`a${e.userId}`,()=>!0)],Se.prototype,"_startRemoteAudio",1),Z([Oe(e=>function(r){return A(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(Te(z({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),po(e=>`a${e.userId}`)],Se.prototype,"_stopRemoteAudio",1),Z([po("room")],Se.prototype,"_exitRoom",1),Z([po("screen")],Se.prototype,"_stopScreenShare",1),Z([Mt(...yt.TRTC.sendSEIMessage),np({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],Se.prototype,"sendSEIMessage",1),Z([Mt(yt.TRTC.sendCustomMessage),np({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],Se.prototype,"sendCustomMessage",1),Z([Mt(yt.TRTC.create)],Se,"_create",1);var bp=Se,un=bp;var _u=class{constructor(t,e){u(this,"_flag");u(this,"terminalType");u(this,"userId");u(this,"tinyId");u(this,"role");u(this,"remoteAudioTrack");u(this,"remoteVideoTrack");u(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Ii(t,this),this.remoteVideoTrack=new ao(t,this),this.remoteAuxiliaryTrack=new jd(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return Ln(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var Rp=class{constructor(){u(this,"_set",new Set);V.on(U.LEAVE_SUCCESS,this.delete,this),V.on(U.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function CS(){return A(this,null,function*(){let i,t;try{let g=yield Qt();i=g&&g.length}catch(g){}try{let g=yield or();t=g&&g.length}catch(g){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n}=this.checkSystemResult.detail,c=eo.basis(),l={webRTC:c.isWebRTCSupported,getUserMedia:c.isGetUserMediaSupported,webSocket:c.isWebSocketsSupported,screenShare:c.isScreenShareSupported,webAudio:c.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n},m={browser:c.browser,os:c.os,trtc:l,devices:e},E={isWebCodecSupported:c.isWebCodecSupported,isMediaSessionSupported:c.isMediaSessionSupported,isWebTransportSupported:c.isWebTransportSupported};je.uploadEvent({log:`trtcstats-${JSON.stringify(m)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(m)}`),je.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(E)}`,userId:this.userId})})}function Pg(){return Oe(i=>{let t=new Rp;return function(e,r,o){return A(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new ue({code:q.INVALID_OPERATION,message:Be({key:$e.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new ue({code:q.INVALID_OPERATION,message:Be({key:$e.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),V.emit(U.JOIN_START,{room:this,roomId:s,params:e});let n=Ur.getEnv();n||(n=ei.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(fc.OLD_CLOUD_LADDER)?n=ei.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(fc.WEBRTC)&&(n=ei.WEBRTC))),je.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),eo.checkSystemRequirementsInternal().then(c=>{this.checkSystemResult=c,CS.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Ur.getEnv()&&(yield this.schedule(e,o));let c=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Ur.performanceNow(),V.emit(U.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&je.uploadEvent({log:`stat-conv-${Number(Rr)}-${location.hostname}`,userId:this.userId}),c}catch(c){throw t.delete({room:this,roomId:s}),V.emit(U.JOIN_FAILED,{room:this,error:c}),c}})}})}var kg=()=>Oe(i=>function(...t){return A(this,null,function*(){V.emit(U.LEAVE_START,{room:this}),yield i.call(this,...t),V.emit(U.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function Lg(){return Oe(i=>function(...t){return A(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;V.emit("61",{room:this});let e=i.apply(this,t);return t.forEach(r=>r.publish(this,e)),e})})}function Ug(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function Vg(){return Oe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function NS({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return qi(r)?r.catch(o=>$.error(`${i.name}() error observed ${o}`)):r}catch(r){$.error(`${i.name}() error observed ${r}`)}}}var Tu=class{constructor(t){u(this,"_frameWorkType");u(this,"_component");u(this,"_language");u(this,"connectionType");u(this,"_room");u(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});u(this,"_keyPrefix");u(this,"_log");u(this,"_intervalId");u(this,"_firstPublishedUserList");u(this,"_networkQuality");u(this,"_basicInfo");u(this,"_pathJoinRoom");u(this,"_pathLeaveRoom");u(this,"_pathMainVideoMap");u(this,"_pathMainAudioMap");u(this,"_pathAuxiliaryMap");u(this,"_remoteStreamStatMap");u(this,"_localStreamStat");u(this,"_eventMap",new Map);u(this,"_captureCostSum",0);u(this,"_captureCostCount",0);u(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=$.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&We(this[e])&&(this[e]=NS({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:at,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,$o().then(t=>{this._basicInfo.string_os_version=Bo(),t?this._basicInfo.string_device_name=t.mobile?t.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),V.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(U.JOIN_START,this.handleJoinStart).addEvent(U.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(U.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(U.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(U.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(U.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(U.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(U.JOIN_FAILED,this.handleJoinFailed).addEvent(U.LEAVE_START,this.handleLeaveStart).addEvent(U.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(U.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(U.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(U.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(U.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(U.PUBLISH_START,this.handlePublishStart).addEvent(U.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(U.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(U.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(U.PLAY_TRACK_START,this.handlePlayStart).addEvent(U.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(U.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===N.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(U.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(U.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(U.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(U.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(U.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(U.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(U.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,n=r.hasAudio||r.hasVideo||r.hasSmall,c=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&c&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(U.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>V.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),vt.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(P(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),P(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),P(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:n,tls:c,request:l,response:m}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=c,this._pathJoinRoom.int32_schedule_request=l,this._pathJoinRoom.int32_schedule_response=m}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof ue?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0&&(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0?this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time:this._log.warn("pathJoinRoom endTime is 0"),this.report())}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof ue?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:Te(z({},DS),{msg_user_info:new Fa({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:n,role:c}=e,l=new Fa({userId:s,tinyId:n,role:c==="anchor"?20:21}),m=Date.now(),E=`${s}_${r}`,g=this._remoteStreamStatMap.get(E);g&&g.subscribeStartTime===0&&(g.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(E)&&this._pathMainVideoMap.set(E,{statsToReport:{msg_user_info:l,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(E)&&this._pathMainAudioMap.set(E,{statsToReport:{msg_user_info:l,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(E)&&this._pathAuxiliaryMap.set(E,{sendSubscribeCMDTime:m})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let c=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=c,Q.addNumber({key:516820,value:c})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:n})=>{let c=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(c)c.totalRTT+=e,c.totalLoss+=r,s&&(c.totalVideoDelay=(c.totalVideoDelay||0)+s,c.videoDelayCount=(c.videoDelayCount||0)+1),n&&(c.totalAudioDelay=(c.totalAudioDelay||0)+n,c.audioDelayCount=(c.audioDelayCount||0)+1),c.count++;else{let l,m,E,g;s&&(m=s,E=1),n&&(l=n,g=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:l,totalVideoDelay:m,audioDelayCount:g,videoDelayCount:E})}}))}handleHeartbeatStats(t){if(this.hitTest(t.room)){let{msg_device_info:e,msg_up_stream_info:r,msg_down_stream_info:o}=t.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:s,uint32_video_enc_fps:n,uint32_video_width:c,uint32_video_height:l}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=c,this._localStreamStat.totalVideoHeight+=l,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/mi*100)>0&&(this._localStreamStat.totalAudioLevel+=s/mi,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:c,msg_video_status:l}=s,m=n.str_identifier,E=this._room.remotePublishedUserMap.get(m);if(l.forEach(g=>{let _=g.uint32_video_stream_type===2,v=g.uint32_video_stream_type===7,L=`${m}_${_?"main":"auxiliary"}`,x=this._remoteStreamStatMap.get(L);if(x&&(_&&(E!=null&&E.remoteVideoTrack.isSubscribed)||v&&(E!=null&&E.remoteAuxiliaryTrack))){x.totalVideoFPS+=g.uint32_video_receive_fps,x.totalVideoBitrate+=g.uint32_video_codec_bitrate,x.videoCount++,x.statsToReport.uint32_video_width===0&&(x.statsToReport.uint32_video_width=g.uint32_video_width),x.statsToReport.uint32_video_height===0&&(x.statsToReport.uint32_video_height=g.uint32_video_height);let M=_?E.remoteVideoTrack:E.remoteAuxiliaryTrack;M.stat.jitterBufferDelay&&(x.videoJitterBufferDelay=M.stat.jitterBufferDelay),M.stat.framesReceived&&(x.statsToReport.uint32_video_consume_render_rate=Math.floor(M.stat.framesDecoded/M.stat.framesReceived*Wi(10,6)))}}),!Cs(c)){let g=`${m}_main`,_=this._remoteStreamStatMap.get(g);this._remoteStreamStatMap.has(g)&&_&&E!=null&&E.remoteAudioTrack.isSubscribed&&(_.totalAudioBitrate+=c.uint32_audio_codec_bitrate,_.audioCount++,E.remoteAudioTrack.stat.jitterBufferDelay&&(_.audioJitterBufferDelay=E.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(c.uint32_audio_level/mi*100)>0&&(_.totalAudioLevel+=c.uint32_audio_level/mi,_.audioLevelCount++))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0))}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof ue?e.getExtraCode()||e.getCode():q.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ys)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&bs)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Dn)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:E,count:g,audioDelayCount:_,videoDelayCount:v,totalAudioDelay:L,totalVideoDelay:x}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(E/g),_&&L&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(L/_),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),v&&x&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(x/v))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,N.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,N.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,cs));let{badCaseDetector:n}=this._room,{dataFreeze:c,count:l}=n.getDataFreezeDuration(e),{renderFreeze:m}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=l,t.statsToReport.uint32_video_block_time=Math.min(c,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_play_time),n.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>cs&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+cs)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>cs&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+cs)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>cs&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+cs)}getReportData(){this._basicInfo.uint32_networkType=Ic();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Fa({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Ns(this._signalInfo.relayIp),uint32_client_ip:Ns(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Wi(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:Ns(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return Un(t),t}report(){return A(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return A(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=yield al(t),o=r instanceof ArrayBuffer,s=`${oi(e,ji.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let c=[this.uploadKVStat(Q),this.uploadKVStat(qo)];n||c.push(ni({url:s,body:r,priority:"low"})),yield Promise.all(c)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return A(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=Te(z({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=yield al(e),o=`${oi(+this._room.sdkAppId,ji.KV_STAT)}&gzip=${+(r instanceof ArrayBuffer)}`,s=!1;navigator.sendBeacon&&(s=navigator.sendBeacon(o,r)),s||ni({url:o,body:r})})}};Z([zo({settings:{timeout:500,retries:3}})],Tu.prototype,"upload",1);var cs=5e3,DS={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Fa=class{constructor(t){u(this,"str_identifier");u(this,"str_tinyid");u(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},Fg=Tu;var vp=class{constructor(){u(this,"_startTime");u(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=Ie())}stop(){this._endTime===0&&(this._endTime=Ie())}getDuration(){return this._endTime===0?Ie()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},Iu=vp;var Cp=class{constructor(t){u(this,"_room",null);u(this,"_durationMap");u(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(U.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(U.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(U.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,N.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,N.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,N.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,N.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,N.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,N.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new Iu,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===N.AUDIO?[s]:[],video:e===N.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},$g=Cp;var Np=class{constructor(t){u(this,"_room");u(this,"_renderFreezeMap",new Map);u(this,"_isVideoPlayingEventFiredMap",new Map);u(this,"_dataFreezeMap",new Map);u(this,"_monitorFreezeData",new Map);u(this,"_eventMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(U.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(U.PLAY_TRACK_START,this.onPlayTrackStart).set(U.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(U.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(U.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==N.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===N.MUTE?this.onVideoTrackMuted(t):r===N.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(U.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),n=new Iu;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let c=this.durationItemList[this.durationItemList.length-1];return c&&c.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){this.hitTest(t)&&e.msg_down_stream_info.forEach(r=>{let o=this._room.remotePublishedUserMap.get(r.msg_user_info.str_identifier);if(!o)return;let{userId:s,muteState:n}=o;r.msg_video_status.forEach(c=>{c.uint32_video_stream_type===2&&n.hasVideo&&!n.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:c.uint32_video_dec_fps,type:"main"}),c.uint32_video_stream_type===7&&n.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:c.uint32_video_dec_fps,type:"auxiliary"})})})}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let n=s.getDuration();n>_c?this._monitorFreezeData.set(t,{userId:e,type:r,duration:n}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return A(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,n=this._renderFreezeMap.get(s);if(e<=2){let c=Ie();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:c,endTime:0}),n.isFreeze=!0),n||this._renderFreezeMap.set(s,{userId:t,type:r,isFreeze:!0,freezeTimeline:[{startTime:c,endTime:0}],renderFreezeTotal:0})}else if(n&&n.isFreeze){n.isFreeze=!1;let c=n.freezeTimeline.pop();if(c){c.endTime=Ie();let l=c.endTime-c.startTime;n.freezeTimeline.push(c),n.renderFreezeTotal+=Math.min(5e3,l)}}})}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==N.VIDEO||!t.isRemotePublished)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<_c&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e=this._renderFreezeMap.get(t),r=0,o=0;if(e)if(!e.isFreeze)r=e.renderFreezeTotal;else{let s=Ie(),n=e.freezeTimeline[e.freezeTimeline.length-1],c=s-n.startTime;r=e.renderFreezeTotal+Math.min(c,5e3),o=e.freezeTimeline.length}return{renderFreeze:r,count:o}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},Bg=Np;var Wg=Gi(Zi(),1);var MS=[1,0,0,0,1,1,0,1],Su=class extends Gt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});u(this,"mirror",!1);u(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof Tt)try{this.setTexBuffer(MS)}catch(n){e.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let c=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),c}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}};var Dp=class{constructor(t,e){this.node=t;this.layout=e;u(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}},$a=class extends Gt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,matchInputSize:!1,logger:r});u(this,"inputs",[])}addInput(e,r){if(this.inputs[r.zIndex])throw new Error("input already exists");let o=new Dp(e,r);this.inputs[r.zIndex]=o}changeInputLayout(e,r){let o=this.inputs.findIndex(s=>s?s.node===e:!1);o<0||Object.entries(r).forEach(([s,n])=>{P(n)||(this.inputs[o].layout[s]=n)})}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof Tt&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex(r=>(r==null?void 0:r.node)===e)]=void 0}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>(n==null?void 0:n.node.requestFrame(e))||s,!1)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.reduce((o,s)=>(s==null?void 0:s.node.requestFrame(e))||o,!1)&&this.ctx2d){this.ctx2d.fillStyle="black",this.ctx2d.fillRect(0,0,this.width,this.height);for(let o=0;o<this.inputs.length;o++){let s=this.inputs[o];s&&this.draw2d(s.node.image,s.x,s.y,s.width,s.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:c}=this,l=Date.now(),m=(e-this.lastInfo.totalFrames)/((l-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:l,fps:m,name:c},z({parent:this.inputs.filter(E=>E).map(E=>E.node.getInfo())},this.lastInfo)}close(){super.close(),this.inputs.forEach(e=>{var r,o;if(e&&((r=e.node)==null||r.disconnect(),e.positionBuffer&&this.context instanceof Tt))try{(o=this.context.ctx)==null||o.deleteBuffer(e.positionBuffer)}catch(s){}})}};var Au=class{constructor(t,e,r,o=4/3){this.vbMode=t;this.faceDetector=e;this.logger=r;u(this,"animationState");u(this,"originalAspect");u(this,"totalOffsetX",0);u(this,"totalOffsetY",0);u(this,"defaultScaleRatio",.1);u(this,"isRecovering",!1);u(this,"boundaryY",280);u(this,"lastActionTime",0);u(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetector),this.originalAspect=o||4/3}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?Q.addSuccessEvent({key:s.key}):Q.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetector||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20;try{let s=this.faceDetector.detectForVideo(t,Date.now());if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,c=n.originX,l=n.originY,m=n.width,E=n.height;this.vbMode===1?this.dualStageCropping(r,o,c,l,m,E):this.vbMode===2&&this.movingPortrait(r,o,c,l,m,E)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,c=.4){let l=t+r/2,m=e+o/2,E,g,{min:_,offset:v}=this.calculateBoundary(l,s,t,r),{min:L,offset:x}=this.calculateBoundary(m,n,e,o);return E=2*_+r,g=2*L+o,E/g>this.originalAspect?(E=g*this.originalAspect,v=l-E/2):(g=E/this.originalAspect,x=m-g/2),r/s>c&&(v=0,x=0,E=s,g=n),v=Math.max(0,Math.min(v,s-E)),x=Math.max(0,Math.min(x,n-g)),{sx:v,sy:x,cropWidth:E,cropHeight:g,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let c={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=c,this.animationState.target=c;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=z({},t),this.animationState.target=z({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),Pe(this.animationState.current.scaleOffsetX)&&Pe(this.animationState.target.scaleOffsetX)&&Pe(this.animationState.current.scaleOffsetY)&&Pe(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let c=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=c}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(Wi(t.sx-e.sx,2)+Wi(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,c=.3){if(this.isRecovering)return;let l=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(l,t,e),s*n/l.cropWidth/l.cropHeight>c&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var l,m,E,g,_,v,L,x,M,B,ee,pe;let c={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(m=(l=this.animationState.current)==null?void 0:l.scaleRatio)!=null?m:1,scaleOffsetX:(g=(E=this.animationState.current)==null?void 0:E.scaleOffsetX)!=null?g:0,scaleOffsetY:(v=(_=this.animationState.current)==null?void 0:_.scaleOffsetY)!=null?v:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(x=(L=this.animationState.target)==null?void 0:L.scaleRatio)!=null?x:1,scaleOffsetX:(B=(M=this.animationState.target)==null?void 0:M.scaleOffsetX)!=null?B:0,scaleOffsetY:(pe=(ee=this.animationState.target)==null?void 0:ee.scaleOffsetY)!=null?pe:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(c)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var wS=`#version 300 es
|
|
101
|
+
2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{Pg[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var Ak=Object.keys(Pg);var NS=0,gu,Va=class Va{constructor(t){this.core=t;u(this,"_core");u(this,"log");u(this,"dumpLocalVideoMap",{});u(this,"dumpRemoteVideoMap",{});u(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++NS}`}),this.log.info("created")}getName(){return Va.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return y(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(e){return y(this,arguments,function*({forceOpen:t}){P(t)&&(t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor()))})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return y(this,null,function*(){var t;if(!this.dialog)try{if(gu)yield gu;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${wg}@${at}/assets/debug-dialog.js`;gu=this._core.fileDownloader.loadScript(e),yield gu}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):Np,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Dp,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return Np({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return Dp({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};u(Va,"Name","Debug"),u(Va,"autoStart",!0);var Eu=Va;var kg=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},_u=class{constructor(t,e,r){u(this,"trackDoneOB");u(this,"startOB");u(this,"stopOB");u(this,"inputFrameCount",0);u(this,"decodedFrameCount",0);u(this,"type","auto");u(this,"config");u(this,"decoder");u(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=Ne(e,de.INIT),this.stopOB=yt(),this.startOB=yt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=yt(),c=l=>{let m=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),be(m,Ye(this.stopOB),Le(()=>{},f=>{e.log.error(f),o.addFailedEvent({key:kg(this.type),error:f}),l>4?this.startOB.error(f):this.startOB.next(l+1)})),be(m,Dr(1),rp(Na))};be(this.startOB,va(0),no(c),Ye(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},l=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:kg(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return yi()(e=>y(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},DS={type:"object"},Fa=class Fa{constructor(t){this.core=t;u(this,"log");u(this,"contextMap",new Map);u(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return Fa.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return Fa.Name}getValidateRule(t){return DS}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new _u(this.core,r,t);return be(o.trackDoneOB,Dr(1),Le(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new _u(this.core,t.track,t))}}};u(Fa,"Name","TRTCAudioDecoder");var $a=Fa;var Tu=class{constructor(){u(this,"log");this.log=$.createLogger({id:"exp"})}call(t,e){return y(this,null,function*(){return We(this[t])?this[t](e):Promise.reject(new ue({code:q.INVALID_PARAMETER,message:Be({key:$e.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return y(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:c}=t,{audioManager:l}=e.room,{getPCMAbortCtrlMap:m,audioFrameEventConfigMap:f}=l;if(f.set(o,{enable:r,sampleRate:s,channelCount:n,port:c}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(E=>{if(E.remoteAudioTrack.isAvailable){if(m.get(E.userId))return;let _=l.getPCM(v=>{e.emit(re.AUDIO_FRAME,v)},E.userId);m.set(E.userId,_)}});else{if(m.get(o))return;let E=l.getPCM(_=>{e.emit(re.AUDIO_FRAME,_)},o);m.set(o,E)}else if(o==="*")e.room.remotePublishedUserMap.forEach(E=>{if(E.remoteAudioTrack.isSubscribed){let{userId:_}=E,v=m.get(_);v==null||v.abort("disable"),m.delete(_)}});else{let E=m.get(o);E==null||E.abort("disable"),m.delete(o)}})}};Z([Kf({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],Tu.prototype,"enableAudioFrameEvent",1);var Lg=new Tu;var Ug=0,Ba=new Set,Ct=null;Yu(Mg);Hs.checkStorage();var wS={RtcError:ae,ErrorCode:le,ErrorCodeDictionary:hr},Se=class Se extends Vg.EventEmitter{constructor(e,r){super();u(this,"_room");u(this,"_eventListened",new Set);u(this,"_localVideoTrack",null);u(this,"_localAudioTrack",null);u(this,"_localScreenTrack",null);u(this,"_localScreenAudioTrack",null);u(this,"_localVideoConfig",null);u(this,"_localScreenConfig",null);u(this,"_localAudioConfig",null);u(this,"_remoteVideoConfigMap",new Map);u(this,"_remoteAudioConfigMap",new Map);u(this,"_remoteAudioVolumeMap",new Map);u(this,"_remoteAudioMuteMap",new Map);u(this,"_mediaTrackMap",new WeakMap);u(this,"_log",$.createLogger({id:`t${++Ug}`}));u(this,"_plugins",new Map);u(this,"_networkQuality",null);u(this,"_speakerId");u(this,"enterRoomParams");this._room=new e(X({logger:this._log,frameWorkType:Se.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(mu,r.assetsPath),this._use(uu,r.assetsPath),this._use(hu,r.assetsPath),this._use($a,r.assetsPath),this._use(Eu),r.enableSEI&&ma&&this._use(fu),this._room.on("audio-volume",o=>{!o.find(s=>s.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(this._localAudioTrack.getAudioLevel()*100),floatVolume:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(s=>{var c;let n=s.userId===""?this._localAudioTrack:(c=this.room.remotePublishedUserMap.get(s.userId))==null?void 0:c.remoteAudioTrack;n&&(s.volume=n.dbVolume)}),this.emit(re.AUDIO_VOLUME,{result:o.sort((s,n)=>n.volume-s.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new ae({code:le.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),vg(this,"trtc")}static create(e){}static _create(e,r){lg();let o=new Se(e,r||{});return Ba.add(o),o}get room(){return this._room}_listenEvents(){Vt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(re.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(re.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)}).add("banned",e=>{this._exitRoom().finally(()=>{this.emit(re.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(re.ERROR,ae.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(re.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=Te(X({},e),{uplinkRTT:Math.min(e.uplinkRTT,Mn),downlinkRTT:Math.min(e.downlinkRTT,Mn)});this.emit(re.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{Vt(o,o).add("player-state-changed",s=>{let n=Te(X({},s),{userId:e.userId});o.kind===D.VIDEO&&(n.streamType=uo(o.streamType)),this.emit(o.kind===D.AUDIO?re.AUDIO_PLAY_STATE_CHANGED:re.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(re.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{ht(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:c,videoAvailable:l}=r;c||this._remoteAudioConfigMap.delete(o),l||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==l&&(l?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(l?re.REMOTE_VIDEO_AVAILABLE:re.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==c&&(c?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(c?re.REMOTE_AUDIO_AVAILABLE:re.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?re.REMOTE_VIDEO_AVAILABLE:re.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(re.SEI_MESSAGE,Te(X({},e),{streamType:uo(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(re.ERROR,new ae({code:le.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,c,l,m,f,E;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((c=this._networkQuality)==null?void 0:c.downlinkRTT)||0,Mn),upLoss:((l=this._networkQuality)==null?void 0:l.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((f=e.msg_up_stream_info.msg_audio_status)==null?void 0:f.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((E=e.msg_up_stream_info.msg_audio_status)==null?void 0:E.uint32_audio_level)||0)/pi},video:e.msg_up_stream_info.msg_video_status.filter(_=>r[_.uint32_video_stream_type]).map(_=>({bitrate:(_.uint32_video_codec_bitrate||0)/1e3,width:_.uint32_video_width,height:_.uint32_video_height,frameRate:_.uint32_video_enc_fps,videoType:r[_.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(_=>({userId:_.msg_user_info.str_identifier,audio:{bitrate:(_.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(_.msg_audio_status.uint32_audio_level||0)/pi,point2pointDelay:(_.msg_audio_status.uint32_audio_p2p_delay||0)+(_.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:_.msg_audio_status.uint32_audio_cache_ms||0},video:_.msg_video_status.map(v=>({bitrate:(v.uint32_video_codec_bitrate||0)/1e3,width:v.uint32_video_width,height:v.uint32_video_height,frameRate:v.uint32_video_dec_fps,videoType:r[v.uint32_video_stream_type],point2pointDelay:(v.uint32_video_p2p_delay||0)+(v.uint32_video_cache_ms||0),jitterBufferDelay:v.uint32_video_cache_ms||0}))}))};this.emit(re.STATISTICS,o)}).add("custom-message",e=>{this.emit(re.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(re.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(re.FIRST_VIDEO_FRAME,Te(X({},e),{streamType:uo(e.streamType)}))}).add("audio-frame",e=>{this.emit(re.AUDIO_FRAME,e)}),Vt(this,St).add("audioInputAdded",e=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>y(this,null,function*(){if(this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Ct&&Ct.deviceId===wn){let r=(yield to()).find(o=>o.deviceId===wn);r&&Ct.groupId!==r.groupId&&(Ct=r,this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>y(this,null,function*(){this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield to())[0];if(!r||!Ct||Ct.groupId===r.groupId)return;let o=Ct.deviceId===e.deviceId,s=Ct.deviceId===wn&&Ct.deviceId===r.deviceId;(o||s)&&(Ct=r,this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}))}use(e){let r,o;"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,this._use(r,o)}_use(e,r){if(this._plugins.get(e.Name)){this._log.warn("duplicate install plugin",e.Name);return}let s=new e(Rg.call(this,{TRTC:Se,room:this._room,errorModule:wS,assetsPath:r}));this._plugins.set(e.Name,s),e.autoStart&&this.startPlugin(e.Name)}enterRoom(e){return y(this,null,function*(){var l,m;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Oe(e.proxy)&&e.proxy.turnServer&&((m=(l=this._room).setTurnServer)==null||m.call(l,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,st(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let c={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(c,r,Se.frameWorkType),this._checkTrackToPublish(),bp.start()})}exitRoom(){return y(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return y(this,null,function*(){if(this.room.isSwitchRoomSupported())yield this._room.switchRoom(e);else{yield this.exitRoom();let r=X(X({},this.enterRoomParams),e);yield this.enterRoom(r)}})}switchRole(e,r){return y(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){ht(this),this.removeAllListeners(),this._room.destroy(),Ba.delete(this),Ba.size===0&&bp.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),V.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return y(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,n=new qr(this._room.audioManager),c={},l={muted:!0};s&&(P(s.microphoneId)?P(s.audioTrack)||(c.customSource=s.audioTrack):c.deviceId=s.microphoneId,s&&ke(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),P(s.profile)||(Oe(s.profile)?gc[s.profile]&&n.setProfile(gc[s.profile]):n.setProfile(s.profile)),ke(s.earMonitorVolume)&&(l.muted=!(s.earMonitorVolume>0),l.volume=s.earMonitorVolume),P(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),P(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),P(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl)),n.on("5",m=>{this.emit(re.ERROR,new ae({code:le.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),n.on("2",m=>{this.emit(re.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),n.on("4",m=>{let f;m.error&&(f=ae.convertFrom(m.error)),this.emit(re.PUBLISH_STATE_CHANGED,Te(X({},m),{error:f}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(c),P(o)||n.setMute(o),Vt(n,n).add("player-state-changed",m=>{this.emit(re.AUDIO_PLAY_STATE_CHANGED,Te(X({},m),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=Te(X({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:l,track:n}),V.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return y(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):P(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),P(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),P(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!P(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),P(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),ur(this._localAudioConfig,e)})}stopLocalAudio(){return y(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),V.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),ht(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return y(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var E;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:c}=e,l=new Nr(this._room.videoManager),m={},f={};st(c==null?void 0:c.avoidCropping)&&(l.avoidCropping=c.avoidCropping),c&&(c.cameraId?m.deviceId=c.cameraId:P(c.useFrontCamera)?P(c.videoTrack)||(m.customSource=c.videoTrack):m.facingMode=c.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT,P(c.retryWhenExactFailed)||(m.retryWhenExactFailed=c.retryWhenExactFailed),c.qosPreference&&(m.contentHint=ka(c.qosPreference)),P(c.profile)||(Oe(c.profile)?Ir[c.profile]&&l.setProfile(Ir[c.profile]):l.setProfile(c.profile)),P(c.fillMode)||(f.objectFit=c.fillMode),P(c.mirror)||(f.mirror=c.mirror),P(c.small)||(P(c.smallMode)||(this._room.smallMode=c.smallMode),st(c.small)&&c.small===!1?l.stopSmall():l.updateSmallConfig(sn(c.small,!0))),P(c.rotation)||l.setRotation(c.rotation)),l.once("first-video-frame",_=>{this.emit(re.FIRST_VIDEO_FRAME,Te(X({},_),{streamType:uo(_.streamType)}))}),l.on("5",_=>{this.emit(re.ERROR,new ae({code:le.DEVICE_ERROR,extraCode:5308,messageParams:{error:_}}))}),l.on("2",_=>{this.emit(re.DEVICE_CHANGED,{type:"camera",action:"active",device:_})}),l.on("4",_=>{let v;_.error&&(v=ae.convertFrom(_.error)),this.emit(re.PUBLISH_STATE_CHANGED,Te(X({},_),{error:v}))}),this._listenOutputTrackChanged(l),s?yield l.capture(m):(E=l.manager)==null||E.changeInput(l),P(n)||(yield l.setMute(n)),Vt(l,l).add("player-state-changed",_=>{this.emit(re.VIDEO_PLAY_STATE_CHANGED,Te(X({},_),{userId:"",streamType:"main"}))}),o&&this._room.isJoined&&this._room.publish(l).catch(()=>{}),this._localVideoTrack=l,this._localVideoConfig=Te(X({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:f,track:l})})}updateLocalVideo(e){return y(this,null,function*(){var m,f,E;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:c}=e,l={};if(this._localVideoConfig.capture)n!==!1?c!=null&&c.cameraId?yield this._localVideoTrack.switchDevice(c==null?void 0:c.cameraId):P(c==null?void 0:c.useFrontCamera)?P(c==null?void 0:c.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(c==null?void 0:c.videoTrack)):yield this._localVideoTrack.switchDevice(c!=null&&c.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let _={};_.deviceId=(c==null?void 0:c.cameraId)||((m=this._localVideoConfig.option)==null?void 0:m.cameraId),_.facingMode=c!=null&&c.useFrontCamera||(f=this._localVideoConfig.option)!=null&&f.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT,_.customSource=(c==null?void 0:c.videoTrack)||((E=this._localVideoConfig.option)==null?void 0:E.videoTrack),yield this._localVideoTrack.capture(_)}c&&(P(c.profile)||(Oe(c.profile)?Ir[c.profile]&&this._localVideoTrack.setProfile(Ir[c.profile]):this._localVideoTrack.setProfile(c.profile),(!c.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(c.cameraId))&&P(c.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),P(c.fillMode)||(l.objectFit=c.fillMode),P(c.mirror)||(l.mirror=c.mirror),P(c.rotation)||this._localVideoTrack.setRotation(c.rotation),c.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(ka(c.qosPreference)),P(c.small)||(st(c.small)&&!c.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(sn(c.small,!0)))),this._room.isJoined&&P(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),P(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:l,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),ur(this._localVideoConfig,e)})}stopLocalVideo(){return y(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),ht(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return y(this,arguments,function*(e={publish:!0,view:null}){if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,option:s}=e,n=new io(this._room.videoManager);n.on("4",E=>{let _;E.error&&(_=ae.convertFrom(E.error)),this.emit(re.PUBLISH_STATE_CHANGED,Te(X({},E),{error:_}))}),n.once("first-video-frame",E=>{this.emit(re.FIRST_VIDEO_FRAME,Te(X({},E),{streamType:uo(E.streamType)}))}),this._listenOutputTrackChanged(n),e.streamType==="main"&&(n.mediaType=4);let c=null,l={},m={};s&&(P(s.profile)||(Oe(s.profile)?Ec[s.profile]&&n.setProfile(Ec[s.profile]):n.setProfile(s.profile)),s.systemAudio&&(l.systemAudio=!0,l.echoCancellation=s.echoCancellation,l.noiseSuppression=s.noiseSuppression,l.autoGainControl=s.autoGainControl),P(s.fillMode)||(m.objectFit=s.fillMode),s.videoTrack&&(l.videoTrack=s.videoTrack),s.audioTrack&&(l.audioTrack=s.audioTrack),s.captureElement&&(l.captureElement=s.captureElement),s.preferDisplaySurface&&(l.preferDisplaySurface=s.preferDisplaySurface),s.qosPreference&&(l.contentHint=ka(s.qosPreference)));let f=yield n.capture(l);if(n.mediaTrack.addEventListener(D.ENDED,()=>{this._stopScreenShare(),this.emit(re.SCREEN_SHARE_STOPPED)}),f.getAudioTracks()[0]&&(c=new Ko(this._room.audioManager),yield c.setInputMediaStreamTrack(f.getAudioTracks()[0]),this._speakerId&&c.setAudioOutput(this._speakerId)),Vt(n,n).add("player-state-changed",E=>{this.emit(re.VIDEO_PLAY_STATE_CHANGED,Te(X({},E),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let E=[n];c&&(E.push(c),this._checkScreenAudioEchoCancellation(n,c)),this._room.publish(...E).catch(()=>{})}this._localScreenTrack=n,this._localScreenAudioTrack=c,this._localScreenConfig=Te(X({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:n})})}updateScreenShare(e){return y(this,null,function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,option:s}=e,n={};if(s&&(P(s.fillMode)||(n.objectFit=s.fillMode),s.qosPreference)){let c=ka(s.qosPreference);this._localScreenTrack.setContentHint(c)}this._room.isJoined&&!P(o)&&(o&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch(()=>{})),this._localScreenConfig.publish&&!o&&(this._room.unpublish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch(()=>{}))),yield this._updateVideoPlayOption({view:r,playOption:n,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),ur(this._localScreenConfig,e)})}stopScreenShare(){return y(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return y(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,c=`${o}_${s}`;if(this._remoteVideoConfigMap.has(c)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let l=this._room.remotePublishedUserMap.get(o);if(!l)return;let m={},f=s==="main"?l.remoteVideoTrack:l.remoteAuxiliaryTrack;this._listenOutputTrackChanged(f),n&&(P(n.fillMode)||(m.objectFit=n.fillMode),P(n.mirror)||(m.mirror=n.mirror),P(n.poster)||(m.poster=n.poster),m.canvasRender=n.canvasRender,s==="main"&&!P(n.small)&&(!l.remoteVideoTrack.isSubscribing&&!l.remoteVideoTrack.isSubscribed&&l.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,f.user))),yield this._room.subscribe(f),yield this._enableVideoDecodeFallback(f,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:f}),this._emitTrackEvent(f),this._remoteVideoConfigMap.set(c,{config:e}),n&&!P(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:f,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return y(this,null,function*(){var N,B;let{view:r,userId:o,streamType:s,option:n}=e,c=`${o}_${s}`,l=this._remoteVideoConfigMap.get(c);if(!l||!this._room.remotePublishedUserMap.has(o))return;let m={};n&&(P(n.fillMode)||(m.objectFit=n.fillMode),P(n.mirror)||(m.mirror=n.mirror));let f=null,E=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(E!=null&&E.muteState.hasVideo)&&(f=E.remoteVideoTrack),s==="sub"&&(E!=null&&E.muteState.hasAuxiliary)&&(f=E.remoteAuxiliaryTrack),!f)return;let{config:_}=l;s==="main"&&n&&!P(n.small)&&this._room.changeType(n.small,f.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:f,prevConfig:_}),ur(_,e);let v=P(n==null?void 0:n.receiveWhenViewVisible)?(N=_.option)==null?void 0:N.receiveWhenViewVisible:n.receiveWhenViewVisible,k=P(r)?_.view:r,M=P(n==null?void 0:n.viewRoot)?(B=_.option)==null?void 0:B.viewRoot:n.viewRoot;this._observeView({remoteTrack:f,view:k,receiveWhenViewVisible:v,viewRoot:M})})}stopRemoteVideo(e){return y(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return y(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:c,remoteAuxiliaryTrack:l}=s;e.streamType==="main"&&(c.stop(),n.hasVideo&&o.push(c)),e.streamType==="sub"&&(l.stop(),n.hasAuxiliary&&o.push(l))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return y(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return y(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return y(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return y(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(re.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{yg.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===Se.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(Se.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(Oe(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let c=this._room.remotePublishedUserMap.get(r);c&&(o=c.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let c=this._room.remotePublishedUserMap.get(r);c&&(n=o==="main"?c.remoteVideoTrack:c.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return y(this,null,function*(){(yield to()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Ct=o)}),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return y(this,null,function*(){let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},n=o.remoteAudioTrack;this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let c=this._remoteAudioVolumeMap.get(r),l=ke(c)?c:100;s.volume=l,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),be(Ne(n,"decode-failed"),Ye(Ne(n,de.INIT)),Le(()=>{this.startPlugin($a.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),V.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(c){throw this._remoteAudioConfigMap.delete(r),c}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return y(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`),V.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;be(Ne(e,"decode-failed"),Ye(Ne(e,de.INIT)),Da(()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),Ai(Ne(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(re.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,Te(X({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return y(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),P(e)&&s&&s.view&&!Cs(r)){let c=Ds(s.view);c.length>0&&(yield o.play(c,r))}if(!P(e)){let c=Ds(e);c.length>0?yield o.play(c,r):o.stop()}})}_updateAudioPlayOption(s){return y(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(P(e.muted)||r.setPlayerMute(e.muted),P(e.volume)||r.setAudioVolume(e.volume/100),r instanceof qr&&r.mediaTrack){let n=e.muted===!1&&!P(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof Si){let n=e.muted?0:e.volume;if(P(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(re.TRACK,{userId:o,streamType:uo(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(P(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${uo(e.streamType)}`);if(!n)return;let c=n.observer||void 0;if(r===null||ot(r)&&r.length===0||!o){c==null||c.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=n.visibleViewMap||new Map,f=-1;(!c||c.root!==s)&&(c==null||c.disconnect(),m.clear(),c=new IntersectionObserver(_=>{_.forEach(v=>{m.set(v.target,v.isIntersecting),e.log.info(`view ${v.target.id} is${v.isIntersecting?"":" not"} visible`)}),clearTimeout(f),f=window.setTimeout(()=>{[...m.values()].find(k=>k)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let E=new Set(Ds(r));m.forEach((_,v)=>{E.has(v)||(c.unobserve(v),m.delete(v))}),E.forEach(_=>{m.set(_,!0),c.observe(_)}),c.takeRecords().forEach(_=>{m.set(_.target,_.isIntersecting)}),n.visibleViewMap=m,n.observer=c}_exitRoom(){return y(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch()}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch()}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),this._remoteAudioVolumeMap.clear(),Cg(this),this._room.remotePublishedUserMap.forEach(e=>{ht(e.remoteAudioTrack),ht(e.remoteVideoTrack),ht(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return y(this,null,function*(){var e,r;if(this._localScreenTrack){if(this._room.isJoined){let o=[this._localScreenTrack];this._localScreenAudioTrack&&o.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...o).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((r=this._localScreenAudioTrack.trackSettings)==null?void 0:r.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),ht(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return y(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(c){this._log.warn("start audioProcessor plugin failed: ",c)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Ct||Qs(Ct))&&(this._initActiveSpeaker(),V.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return y(this,null,function*(){if(Ct&&!Qs(Ct))this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:Ct});else{let e=yield to();e[0]&&!Qs(e[0])?(Ct=e[0],this.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):V.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:Te(X({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),Q.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),Q.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return y(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),Lg.call(e,X({trtcInstance:this},r))})}static setLogLevel(e,r){$.setLogLevel(e),P(r)||(r?$.enableUploadLog():$.disableUploadLog())}static isSupported(){return cd(Se.frameWorkType)}static getCameraList(e=!0){return or(e)}static getMicrophoneList(e=!0){return Qt(e)}static getSpeakerList(e=!0){return to(e)}static setCurrentSpeaker(e){return y(this,null,function*(){if(mt&&(e===pr.SPEAKER||e===pr.HEADSET)){let o=yield Se.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;Ba.forEach(n=>y(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield to()).forEach(o=>{o.deviceId===e&&(Ba.forEach(s=>{s._setCurrentSpeaker(e),s.emit(re.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Ct=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:c,max:l}){switch(c&&(qo.version=c),e){case"count":qo.addCount({key:r,useUV:n});break;case"enum":qo.addEnum({key:r,value:o,useUV:n});break;case"number":qo.addNumber({key:r,value:o,split:s,max:l});break}}};u(Se,"_loggerManager",$),u(Se,"EVENT",re),u(Se,"ERROR_CODE",le),u(Se,"TYPE",pr),u(Se,"frameWorkType",30),Z([tt({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],Se.prototype,"use",1),Z([wt(At.TRTC.enterRoom),mo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),xe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),tt()],Se.prototype,"enterRoom",1),Z([tt()],Se.prototype,"exitRoom",1),Z([wt(At.TRTC.switchRoom),tt(),Rd()],Se.prototype,"switchRoom",1),Z([wt(At.TRTC.switchRole),ns("room",{merge:(e,r)=>r}),tt()],Se.prototype,"switchRole",1),Z([tt()],Se.prototype,"destroy",1),Z([wt(At.TRTC.startLocalAudio),mo("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),tt()],Se.prototype,"startLocalAudio",1),Z([wt(At.TRTC.updateLocalAudio),ns("audio",{debounce:{delay:200,getKey:()=>`${Ug}-localAudio`,isNeedToDebounce:e=>{var r;return!P((r=e.option)==null?void 0:r.captureVolume)}}}),tt()],Se.prototype,"updateLocalAudio",1),Z([po("audio"),tt()],Se.prototype,"stopLocalAudio",1),Z([wt(At.TRTC.startLocalVideo),mo("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),tt()],Se.prototype,"startLocalVideo",1),Z([wt(At.TRTC.updateLocalVideo),ns("video"),tt()],Se.prototype,"updateLocalVideo",1),Z([po("video"),tt()],Se.prototype,"stopLocalVideo",1),Z([wt(At.TRTC.startScreenShare),mo("screen",()=>!0),tt()],Se.prototype,"startScreenShare",1),Z([wt(At.TRTC.updateScreenShare),ns("screen"),tt()],Se.prototype,"updateScreenShare",1),Z([tt()],Se.prototype,"stopScreenShare",1),Z([wt(At.TRTC.startRemoteVideo),mo(e=>`v${e.userId}${e.streamType}`,()=>!0),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"startRemoteVideo",1),Z([wt(At.TRTC.updateRemoteVideo),ns(e=>`v${e.userId}${e.streamType}`),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"updateRemoteVideo",1),Z([wt(At.TRTC.stopRemoteVideo),xe(e=>function(r){return y(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),tt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],Se.prototype,"stopRemoteVideo",1),Z([po(e=>`v${e.userId}${e.streamType}`)],Se.prototype,"_stopRemoteVideo",1),Z([wt(...At.TRTC.muteRemoteAudio),tt({getRemoteId:e=>e})],Se.prototype,"muteRemoteAudio",1),Z([Tp(...At.TRTC.setRemoteAudioVolume),Ng(200,e=>e),tt({getRemoteId:e=>e})],Se.prototype,"setRemoteAudioVolume",1),Z([cu("start"),ro(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),mo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Jl[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],Se.prototype,"startPlugin",1),Z([cu("update"),ns((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>zl[e.getName()]})],Se.prototype,"updatePlugin",1),Z([cu("stop"),po((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),tt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Xl[e.getName()]})],Se.prototype,"stopPlugin",1),Z([Tp(...At.TRTC.enableAudioVolumeEvaluation)],Se.prototype,"enableAudioVolumeEvaluation",1),Z([tt()],Se.prototype,"getVideoSnapshot",1),Z([tt()],Se.prototype,"_setCurrentSpeaker",1),Z([mo(e=>`a${e.userId}`,()=>!0)],Se.prototype,"_startRemoteAudio",1),Z([xe(e=>function(r){return y(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(Te(X({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),po(e=>`a${e.userId}`)],Se.prototype,"_stopRemoteAudio",1),Z([po("room")],Se.prototype,"_exitRoom",1),Z([po("screen")],Se.prototype,"_stopScreenShare",1),Z([wt(...At.TRTC.sendSEIMessage),lp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],Se.prototype,"sendSEIMessage",1),Z([wt(At.TRTC.sendCustomMessage),lp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],Se.prototype,"sendCustomMessage",1),Z([wt(At.TRTC.create)],Se,"_create",1);var wp=Se,un=wp;var Iu=class{constructor(t,e){u(this,"_flag");u(this,"terminalType");u(this,"userId");u(this,"tinyId");u(this,"role");u(this,"remoteAudioTrack");u(this,"remoteVideoTrack");u(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Si(t,this),this.remoteVideoTrack=new ao(t,this),this.remoteAuxiliaryTrack=new Jd(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return Ln(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var Mp=class{constructor(){u(this,"_set",new Set);V.on(U.LEAVE_SUCCESS,this.delete,this),V.on(U.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function MS(){return y(this,null,function*(){let i,t;try{let E=yield Qt();i=E&&E.length}catch(E){}try{let E=yield or();t=E&&E.length}catch(E){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n}=this.checkSystemResult.detail,c=eo.basis(),l={webRTC:c.isWebRTCSupported,getUserMedia:c.isGetUserMediaSupported,webSocket:c.isWebSocketsSupported,screenShare:c.isScreenShareSupported,webAudio:c.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n},m={browser:c.browser,os:c.os,trtc:l,devices:e},f={isWebCodecSupported:c.isWebCodecSupported,isMediaSessionSupported:c.isMediaSessionSupported,isWebTransportSupported:c.isWebTransportSupported};je.uploadEvent({log:`trtcstats-${JSON.stringify(m)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(m)}`),je.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(f)}`,userId:this.userId})})}function Fg(){return xe(i=>{let t=new Mp;return function(e,r,o){return y(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new ue({code:q.INVALID_OPERATION,message:Be({key:$e.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new ue({code:q.INVALID_OPERATION,message:Be({key:$e.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),V.emit(U.JOIN_START,{room:this,roomId:s,params:e});let n=Vr.getEnv();n||(n=ti.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(_c.OLD_CLOUD_LADDER)?n=ti.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(_c.WEBRTC)&&(n=ti.WEBRTC))),je.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),eo.checkSystemRequirementsInternal(o).then(c=>{this.checkSystemResult=c,MS.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Vr.getEnv()&&(yield this.schedule(e,o));let c=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Vr.performanceNow(),V.emit(U.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&je.uploadEvent({log:`stat-conv-${Number(vr)}-${location.hostname}`,userId:this.userId}),c}catch(c){throw t.delete({room:this,roomId:s}),V.emit(U.JOIN_FAILED,{room:this,error:c}),c}})}})}var $g=()=>xe(i=>function(...t){return y(this,null,function*(){V.emit(U.LEAVE_START,{room:this}),yield i.call(this,...t),V.emit(U.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function Bg(){return xe(i=>function(...t){return y(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;V.emit("61",{room:this});let e=i.apply(this,t);return t.forEach(r=>r.publish(this,e)),e})})}function Hg(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function Wg(){return xe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function OS({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return Ji(r)?r.catch(o=>$.error(`${i.name}() error observed ${o}`)):r}catch(r){$.error(`${i.name}() error observed ${r}`)}}}var Su=class{constructor(t){u(this,"_frameWorkType");u(this,"_component");u(this,"_language");u(this,"connectionType");u(this,"_room");u(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});u(this,"_keyPrefix");u(this,"_log");u(this,"_intervalId");u(this,"_firstPublishedUserList");u(this,"_networkQuality");u(this,"_basicInfo");u(this,"_pathJoinRoom");u(this,"_pathLeaveRoom");u(this,"_pathMainVideoMap");u(this,"_pathMainAudioMap");u(this,"_pathAuxiliaryMap");u(this,"_remoteStreamStatMap");u(this,"_localStreamStat");u(this,"_eventMap",new Map);u(this,"_captureCostSum",0);u(this,"_captureCostCount",0);u(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=$.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&We(this[e])&&(this[e]=OS({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:at,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,$o().then(t=>{this._basicInfo.string_os_version=Bo(),t?this._basicInfo.string_device_name=t.mobile?t.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),V.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(U.JOIN_START,this.handleJoinStart).addEvent(U.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(U.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(U.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(U.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(U.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(U.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(U.JOIN_FAILED,this.handleJoinFailed).addEvent(U.LEAVE_START,this.handleLeaveStart).addEvent(U.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(U.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(U.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(U.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(U.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(U.PUBLISH_START,this.handlePublishStart).addEvent(U.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(U.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(U.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(U.PLAY_TRACK_START,this.handlePlayStart).addEvent(U.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(U.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===D.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(U.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(U.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(U.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(U.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(U.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(U.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(U.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,n=r.hasAudio||r.hasVideo||r.hasSmall,c=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&c&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(U.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>V.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),vt.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(P(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),P(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),P(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:n,tls:c,request:l,response:m}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=c,this._pathJoinRoom.int32_schedule_request=l,this._pathJoinRoom.int32_schedule_response=m}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof ue?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0&&(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0?this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time:this._log.warn("pathJoinRoom endTime is 0"),this.report())}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof ue?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:Te(X({},xS),{msg_user_info:new Ha({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:n,role:c}=e,l=new Ha({userId:s,tinyId:n,role:c==="anchor"?20:21}),m=Date.now(),f=`${s}_${r}`,E=this._remoteStreamStatMap.get(f);E&&E.subscribeStartTime===0&&(E.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(f)&&this._pathMainVideoMap.set(f,{statsToReport:{msg_user_info:l,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(f)&&this._pathMainAudioMap.set(f,{statsToReport:{msg_user_info:l,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(f)&&this._pathAuxiliaryMap.set(f,{sendSubscribeCMDTime:m})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let c=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=c,Q.addNumber({key:516820,value:c})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:n})=>{let c=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(c)c.totalRTT+=e,c.totalLoss+=r,s&&(c.totalVideoDelay=(c.totalVideoDelay||0)+s,c.videoDelayCount=(c.videoDelayCount||0)+1),n&&(c.totalAudioDelay=(c.totalAudioDelay||0)+n,c.audioDelayCount=(c.audioDelayCount||0)+1),c.count++;else{let l,m,f,E;s&&(m=s,f=1),n&&(l=n,E=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:l,totalVideoDelay:m,audioDelayCount:E,videoDelayCount:f})}}))}handleHeartbeatStats(t){if(this.hitTest(t.room)){let{msg_device_info:e,msg_up_stream_info:r,msg_down_stream_info:o}=t.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:s,uint32_video_enc_fps:n,uint32_video_width:c,uint32_video_height:l}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=n,this._localStreamStat.totalVideoWidth+=c,this._localStreamStat.totalVideoHeight+=l,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/pi*100)>0&&(this._localStreamStat.totalAudioLevel+=s/pi,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:n,msg_audio_status:c,msg_video_status:l}=s,m=n.str_identifier,f=this._room.remotePublishedUserMap.get(m);if(l.forEach(E=>{let _=E.uint32_video_stream_type===2,v=E.uint32_video_stream_type===7,k=`${m}_${_?"main":"auxiliary"}`,M=this._remoteStreamStatMap.get(k);if(M&&(_&&(f!=null&&f.remoteVideoTrack.isSubscribed)||v&&(f!=null&&f.remoteAuxiliaryTrack))){M.totalVideoFPS+=E.uint32_video_receive_fps,M.totalVideoBitrate+=E.uint32_video_codec_bitrate,M.videoCount++,M.statsToReport.uint32_video_width===0&&(M.statsToReport.uint32_video_width=E.uint32_video_width),M.statsToReport.uint32_video_height===0&&(M.statsToReport.uint32_video_height=E.uint32_video_height);let N=_?f.remoteVideoTrack:f.remoteAuxiliaryTrack;N.stat.jitterBufferDelay&&(M.videoJitterBufferDelay=N.stat.jitterBufferDelay),N.stat.framesReceived&&(M.statsToReport.uint32_video_consume_render_rate=Math.floor(N.stat.framesDecoded/N.stat.framesReceived*Gi(10,6)))}}),!Cs(c)){let E=`${m}_main`,_=this._remoteStreamStatMap.get(E);this._remoteStreamStatMap.has(E)&&_&&f!=null&&f.remoteAudioTrack.isSubscribed&&(_.totalAudioBitrate+=c.uint32_audio_codec_bitrate,_.audioCount++,f.remoteAudioTrack.stat.jitterBufferDelay&&(_.audioJitterBufferDelay=f.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(c.uint32_audio_level/pi*100)>0&&(_.totalAudioLevel+=c.uint32_audio_level/pi,_.audioLevelCount++))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0))}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof ue?e.getExtraCode()||e.getCode():q.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&As)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&bs)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Dn)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:f,count:E,audioDelayCount:_,videoDelayCount:v,totalAudioDelay:k,totalVideoDelay:M}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(f/E),_&&k&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(k/_),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),v&&M&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(M/v))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,D.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,D.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,cs));let{badCaseDetector:n}=this._room,{dataFreeze:c,count:l}=n.getDataFreezeDuration(e),{renderFreeze:m}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=l,t.statsToReport.uint32_video_block_time=Math.min(c,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_play_time),n.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>cs&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+cs)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>cs&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+cs)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>cs&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+cs)}getReportData(){this._basicInfo.uint32_networkType=Ac();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Ha({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Ns(this._signalInfo.relayIp),uint32_client_ip:Ns(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Gi(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:Ns(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return Vn(t),t}report(){return y(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return y(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=yield dl(t),o=r instanceof ArrayBuffer,s=`${si(e,qi.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let c=[this.uploadKVStat(Q),this.uploadKVStat(qo)];n||c.push(ai({url:s,body:r,priority:"low"})),yield Promise.all(c)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return y(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=Te(X({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=yield dl(e),o=`${si(+this._room.sdkAppId,qi.KV_STAT)}&gzip=${+(r instanceof ArrayBuffer)}`,s=!1;navigator.sendBeacon&&(s=navigator.sendBeacon(o,r)),s||ai({url:o,body:r})})}};Z([zo({settings:{timeout:500,retries:3}})],Su.prototype,"upload",1);var cs=5e3,xS={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Ha=class{constructor(t){u(this,"str_identifier");u(this,"str_tinyid");u(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},Gg=Su;var Op=class{constructor(){u(this,"_startTime");u(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=Ie())}stop(){this._endTime===0&&(this._endTime=Ie())}getDuration(){return this._endTime===0?Ie()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},yu=Op;var xp=class{constructor(t){u(this,"_room",null);u(this,"_durationMap");u(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(U.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(U.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(U.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,D.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,D.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,D.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,D.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new yu,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===D.AUDIO?[s]:[],video:e===D.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},jg=xp;var Pp=class{constructor(t){u(this,"_room");u(this,"_renderFreezeMap",new Map);u(this,"_isVideoPlayingEventFiredMap",new Map);u(this,"_dataFreezeMap",new Map);u(this,"_monitorFreezeData",new Map);u(this,"_eventMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(U.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(U.PLAY_TRACK_START,this.onPlayTrackStart).set(U.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(U.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(U.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==D.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===D.MUTE?this.onVideoTrackMuted(t):r===D.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(U.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>V.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>V.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),n=new yu;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let c=this.durationItemList[this.durationItemList.length-1];return c&&c.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){this.hitTest(t)&&e.msg_down_stream_info.forEach(r=>{let o=this._room.remotePublishedUserMap.get(r.msg_user_info.str_identifier);if(!o)return;let{userId:s,muteState:n}=o;r.msg_video_status.forEach(c=>{c.uint32_video_stream_type===2&&n.hasVideo&&!n.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:c.uint32_video_dec_fps,type:"main"}),c.uint32_video_stream_type===7&&n.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:c.uint32_video_dec_fps,type:"auxiliary"})})})}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let n=s.getDuration();n>Sc?this._monitorFreezeData.set(t,{userId:e,type:r,duration:n}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return y(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,n=this._renderFreezeMap.get(s);if(e<=2){let c=Ie();n&&!n.isFreeze&&(n.freezeTimeline.push({startTime:c,endTime:0}),n.isFreeze=!0),n||this._renderFreezeMap.set(s,{userId:t,type:r,isFreeze:!0,freezeTimeline:[{startTime:c,endTime:0}],renderFreezeTotal:0})}else if(n&&n.isFreeze){n.isFreeze=!1;let c=n.freezeTimeline.pop();if(c){c.endTime=Ie();let l=c.endTime-c.startTime;n.freezeTimeline.push(c),n.renderFreezeTotal+=Math.min(5e3,l)}}})}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==D.VIDEO||!t.isRemotePublished)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<Sc&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e=this._renderFreezeMap.get(t),r=0,o=0;if(e)if(!e.isFreeze)r=e.renderFreezeTotal;else{let s=Ie(),n=e.freezeTimeline[e.freezeTimeline.length-1],c=s-n.startTime;r=e.renderFreezeTotal+Math.min(c,5e3),o=e.freezeTimeline.length}return{renderFreeze:r,count:o}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},qg=Pp;var zg=ji(Zi(),1);var PS=[1,0,0,0,1,1,0,1],Au=class extends Gt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});u(this,"mirror",!1);u(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof Tt)try{this.setTexBuffer(PS)}catch(n){e.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let c=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),c}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}};var kp=class{constructor(t,e){this.node=t;this.layout=e;u(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}},Wa=class extends Gt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,matchInputSize:!1,logger:r});u(this,"inputs",[])}addInput(e,r){if(this.inputs[r.zIndex])throw new Error("input already exists");let o=new kp(e,r);this.inputs[r.zIndex]=o}changeInputLayout(e,r){let o=this.inputs.findIndex(s=>s?s.node===e:!1);o<0||Object.entries(r).forEach(([s,n])=>{P(n)||(this.inputs[o].layout[s]=n)})}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof Tt&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex(r=>(r==null?void 0:r.node)===e)]=void 0}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>(n==null?void 0:n.node.requestFrame(e))||s,!1)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.reduce((o,s)=>(s==null?void 0:s.node.requestFrame(e))||o,!1)&&this.ctx2d){this.ctx2d.fillStyle="black",this.ctx2d.fillRect(0,0,this.width,this.height);for(let o=0;o<this.inputs.length;o++){let s=this.inputs[o];s&&this.draw2d(s.node.image,s.x,s.y,s.width,s.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:c}=this,l=Date.now(),m=(e-this.lastInfo.totalFrames)/((l-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:l,fps:m,name:c},X({parent:this.inputs.filter(f=>f).map(f=>f.node.getInfo())},this.lastInfo)}close(){super.close(),this.inputs.forEach(e=>{var r,o;if(e&&((r=e.node)==null||r.disconnect(),e.positionBuffer&&this.context instanceof Tt))try{(o=this.context.ctx)==null||o.deleteBuffer(e.positionBuffer)}catch(s){}})}};var bu=class{constructor(t,e,r,o,s=4/3){this.vbMode=t;this.faceDetectorHash=e;this.visionTaskRegistry=r;this.logger=o;u(this,"animationState");u(this,"originalAspect");u(this,"totalOffsetX",0);u(this,"totalOffsetY",0);u(this,"defaultScaleRatio",.1);u(this,"isRecovering",!1);u(this,"boundaryY",280);u(this,"lastActionTime",0);u(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=s||4/3}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?Q.addSuccessEvent({key:s.key}):Q.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,c=n.originX,l=n.originY,m=n.width,f=n.height;this.vbMode===1?this.dualStageCropping(r,o,c,l,m,f):this.vbMode===2&&this.movingPortrait(r,o,c,l,m,f)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,c=.4){let l=t+r/2,m=e+o/2,f,E,{min:_,offset:v}=this.calculateBoundary(l,s,t,r),{min:k,offset:M}=this.calculateBoundary(m,n,e,o);return f=2*_+r,E=2*k+o,f/E>this.originalAspect?(f=E*this.originalAspect,v=l-f/2):(E=f/this.originalAspect,M=m-E/2),r/s>c&&(v=0,M=0,f=s,E=n),v=Math.max(0,Math.min(v,s-f)),M=Math.max(0,Math.min(M,n-E)),{sx:v,sy:M,cropWidth:f,cropHeight:E,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let c={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=c,this.animationState.target=c;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=X({},t),this.animationState.target=X({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),ke(this.animationState.current.scaleOffsetX)&&ke(this.animationState.target.scaleOffsetX)&&ke(this.animationState.current.scaleOffsetY)&&ke(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let c=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=c}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(Gi(t.sx-e.sx,2)+Gi(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,c=.3){if(this.isRecovering)return;let l=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(l,t,e),s*n/l.cropWidth/l.cropHeight>c&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var l,m,f,E,_,v,k,M,N,B,ee,me;let c={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(m=(l=this.animationState.current)==null?void 0:l.scaleRatio)!=null?m:1,scaleOffsetX:(E=(f=this.animationState.current)==null?void 0:f.scaleOffsetX)!=null?E:0,scaleOffsetY:(v=(_=this.animationState.current)==null?void 0:_.scaleOffsetY)!=null?v:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(M=(k=this.animationState.target)==null?void 0:k.scaleRatio)!=null?M:1,scaleOffsetX:(B=(N=this.animationState.target)==null?void 0:N.scaleOffsetX)!=null?B:0,scaleOffsetY:(me=(ee=this.animationState.target)==null?void 0:ee.scaleOffsetY)!=null?me:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(c)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var kS=`#version 300 es
|
|
102
102
|
in vec2 a_position;
|
|
103
103
|
in vec2 a_texCoord;
|
|
104
104
|
out vec2 v_texCoord;
|
|
105
105
|
void main() {
|
|
106
106
|
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
|
|
107
107
|
v_texCoord = a_texCoord;
|
|
108
|
-
}`,
|
|
108
|
+
}`,LS=`#version 300 es
|
|
109
109
|
precision highp float;
|
|
110
110
|
uniform sampler2D u_texture;
|
|
111
111
|
uniform sampler2D mask;
|
|
@@ -114,7 +114,7 @@ in vec2 v_texCoord;
|
|
|
114
114
|
out vec4 outColor;
|
|
115
115
|
void main() {
|
|
116
116
|
outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
|
|
117
|
-
}`,
|
|
117
|
+
}`,Ru=class extends bi{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:r.width,height:r.height,logger:e.log});u(this,"_bgTexture");u(this,"_waterMarkTexture");u(this,"_lastMaskTexture");u(this,"_lastMaskFbo");u(this,"_textureValid",!1);u(this,"_selfieTextureValid",!1);u(this,"_selfieSegmentationHash");u(this,"wasm");u(this,"_prePrograme");u(this,"_segmentationMask");u(this,"_weixin",!1);u(this,"_centerFace");u(this,"_textureMatrixLocation");u(this,"_offsetMatrixLocation");u(this,"_enableFaceCentering",!1);u(this,"_mat4");u(this,"_onAbort");u(this,"_visionTaskRegistry");this.init(r).catch(o=>{e.log.error(o),e.destroy(new ue({code:q.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`}))})}init(e){return y(this,null,function*(){var n;let r=e.Wasm,o=this.context.ctx;if(e.mat4&&(this._mat4=e.mat4),this._enableFaceCentering=(n=e.enableFaceCentering)!=null?n:!1,this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="green"?3:0,this._onAbort=e.onAbort,e.waterMark){let{x:c,y:l,width:m,height:f}=e.waterMark;this.wasm.setWaterMark(c,l,m,f)}if(e.beautyParams){let{beauty:c,brightness:l,ruddy:m}=e.beautyParams;this.wasm.setBeauty(c,l,m,e==null?void 0:e.width,e==null?void 0:e.height)}this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image));let s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=o.getUniformLocation(this.program,"u_textureMatrix"),o.uniformMatrix4fv(this._textureMatrixLocation,!1,s),this._offsetMatrixLocation=o.getUniformLocation(this.program,"u_offsetMatrix"),o.uniformMatrix4fv(this._offsetMatrixLocation,!1,s),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let c=this.context.createShader(o.FRAGMENT_SHADER,LS),l=this.context.createShader(o.VERTEX_SHADER,kS);this._prePrograme=this.context.createProgram(l,c),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}yield this.initVisionTasks(e)})}initVisionTasks(e){return y(this,null,function*(){if(e.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._visionTaskRegistry.video=this.image,this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._enableFaceCentering){this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let r=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);this._centerFace=new bu(this.wasm.vbMode,r,this._visionTaskRegistry,this.context.log)}}})}onPredict(e){let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),this.bindMaskTexture(e),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),r.drawArrays(r.TRIANGLE_STRIP,0,4)}bindMaskTexture(e){let r=this.context.ctx;if(!e.confidenceMasks)return;let o=e.confidenceMasks[0].getAsWebGLTexture();r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,o),e.close()}onFirstFrame(){this.waitingFirstFrame=!1;let e=this.context.ctx;this.useTexture(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.image)}render(e){let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:s,videoHeight:n}=o;if(ni(this.wasm.rotation)&&([s,n]=[n,s]),s===0||n===0||!this.available)return!1;o.width=s,o.height=n;let c=!1;if(this.totalFrames)this.useTexture(),c=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;c=this._textureValid,this._textureValid=!0}this.width!==s||this.height!==n||!c?(this.resize(s,n),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin&&(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(this.bindMaskTexture(this._segmentationMask),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)),r.drawArrays(r.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,n):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,n,0));try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let l=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.onPredict(l)}}catch(l){this._onAbort&&this._onAbort(l)}return this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let e=this.context.ctx;this._centerFace.aspectRatio=e.canvas.width/e.canvas.height,this._centerFace.actionCentering(this.image);let{current:r,offset:o}=this._centerFace;if(r&&(this.wasm.vbMode===1&&this.drawImage(r.sx,r.sy,r.cropWidth,r.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let s=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:c=0,scaleOffsetY:l=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+c,l,0]),this._mat4.scale(s,s,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,s)}}drawImage(e,r,o,s){let n=this.context.ctx;if(!this._mat4)return;let{width:c,height:l}=n.canvas,m=this._mat4.create();this._mat4.fromTranslation(m,[e/c,1-(r+s)/l,0]),this._mat4.scale(m,m,[o/c,s/l,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,m)}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),(r=this.wasm)==null||r.close()}};var vu=class extends Gt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
|
|
118
118
|
precision highp float;
|
|
119
119
|
uniform sampler2D ySampler;
|
|
120
120
|
uniform sampler2D uSampler;
|
|
@@ -139,4 +139,4 @@ void main() {
|
|
|
139
139
|
void main() {
|
|
140
140
|
gl_Position = vertexPos;
|
|
141
141
|
textureCoord = texturePos;
|
|
142
|
-
}`});u(this,"yTextureRef");u(this,"uTextureRef");u(this,"vTextureRef");u(this,"Y");u(this,"U");u(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var Ni=[i=>{i.codec="avc1.42e01f"},i=>{delete i.hardwareAcceleration}],Hg=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")};function xS(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var PS=0,Ru=class{constructor(t){u(this,"id",PS++);u(this,"trackDoneOB");u(this,"startOB");u(this,"stopOB");u(this,"decoder");u(this,"videoContext");u(this,"gop",0);u(this,"gop_helper",0);u(this,"waitFirstKeyFrame",!0);u(this,"startTimestamp",0);u(this,"startTime",0);u(this,"startPerformanceTime",0);u(this,"inputFrameCount",0);u(this,"decodedFrameCount",0);u(this,"decodeFrameCount",0);u(this,"downgradeLevel",0);u(this,"lastDowngradeTime",0);u(this,"lastFrameDiff",0);u(this,"lastDecodeFrameTimestamp",0);u(this,"config");u(this,"gop_before_configure",[]);u(this,"videoElement");u(this,"type","wasm");u(this,"goodType");u(this,"renderer","2d");u(this,"wasmOption");u(this,"createDecoder");u(this,"_decodeSink");u(this,"isReported",!1);u(this,"track");u(this,"stateChangeOB");u(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=At(),this.track=e,this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=Ce(e.availableState,de.OFF),this.stopOB=At(),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),be(this.stateChangeOB,Qm((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),Ye(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=be(this.pipe(this.track),Ye(this.stopOB),Si());be(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),Q.addFailedEvent({key:Hg(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED");else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),Q.addSuccessEvent({key:Hg(this.type,this.renderer)}),Q.addSuccessEvent({key:514704})})),be(e,Nr(1),Le(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!Xl()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var c,l;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!xS(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((c=this.decoder)==null?void 0:c.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(m=>this.decode(m,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=Ie();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}(this.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(l=t.getMetadata)==null?void 0:l.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>A(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var c;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(c=this.videoContext)==null||c.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":for(let l=0;l<=Ni.length;l++){let{supported:m}=yield VideoDecoder.isConfigSupported(this.config);if(m)break;if(l===Ni.length){e.error(3);return}Ni[l](this.config)}r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let c=0;if(r.on("videoFrame",l=>{this.decodedFrameCount++,c++,(c<=10||c%500===0)&&t.log.debug(`frame ${c} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${l.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(l.timestamp)),e.next(l)}),r.on("error",l=>{t.log.error(l),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new Tt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(Tt.UNAVAILABLE,m=>{t.log.error(m),e.error(7)});let l=new bu(this.videoContext);r.on("videoCodecInfo",m=>l.resize(m.width,m.height)),r.on("videoFrame",m=>{({y:l.Y,u:l.U,v:l.V}=m),this.downgradeLevel===1?this.decodedFrameCount%2===0&&l.render(this.decodedFrameCount):l.render(this.decodedFrameCount)}),t.source=l,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let l=new MediaStreamTrackGenerator({kind:"video"}),m=l.writable.getWriter();t.setInputMediaStreamTrack(l),r.on("videoFrame",E=>m.write(E))}else{this.videoContext=new Ft({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let l=this.videoContext.createVideoImageSource();r.on("videoFrame",E=>{try{l.image=E,l.update()}catch(g){delete this.goodType,t.log.error(g),e.error(11)}});let m=new is(this.videoContext,{name:"remotePlayer",logger:t.log});l.connect(m),t.source=l,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(c){t.log.error(c),e.error(n==="webCodecs"?2:6)}})}};var Ba=class extends Wg.EventEmitter{constructor(e){super();this.room=e;u(this,"videoContext");u(this,"_glVideoContext");u(this,"_2dVideoContext");u(this,"destination");u(this,"smallVideoContext");u(this,"smallDestination");u(this,"smallTrackSource");u(this,"smallImageSource");u(this,"_isMirror",!1);u(this,"_rotation",0);u(this,"cameraTrack");u(this,"cameraNode");u(this,"transformNode");u(this,"mixNode");u(this,"screenTrack");u(this,"screenNode");u(this,"selfModel",!1);u(this,"blurRadius",3);u(this,"arTrack");u(this,"_enableFaceCentering",!1);u(this,"Wasm");u(this,"waterMarkNode");u(this,"_waterMarkOption");u(this,"watermarkImageList",[]);u(this,"_beautyParams");u(this,"isUsingArTrack",!1);u(this,"_isMixScreen",!1);u(this,"_mixScreenOption",{});u(this,"_virtualBackground");u(this,"_virtualBackgroundAbortCallback");u(this,"virtualBackgroundInstance");u(this,"_bgAssetPath");u(this,"log",$.createLogger({id:"vm"}));u(this,"_faceDetector");u(this,"_mat4");u(this,"_checkId",0);u(this,"_use2d",!1);u(this,"_autoSwitchRenderMode",!0);u(this,"_selfieSegmentation");u(this,"encodePipeline",[]);u(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Ft({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return si(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Ft({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new Tt({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on(Tt.UNAVAILABLE,e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}enablePrintDetail(e=2e3){this._checkId=vt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),vt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Qi||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?Q.addFailedEvent({key:o,error:r}):Q.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new Tt({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}initVirtualBackground(e,r,o){return this._selfieSegmentation=e,this._faceDetector=r,this._mat4=o,this._selfieSegmentation.changeModel()}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Gd(this.smallVideoContext,e,this.log),this.smallVideoContext.on(Tt.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;Qi&&n.setCanvas(e);let c=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),c=this.arTrack),this._selfieSegmentation&&e&&!this._use2d&&(this._selfieSegmentation._glName||this._selfieSegmentation.setCanvas(e)),this.log.info(`set main output ${c?c.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(c)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return A(this,null,function*(){var s;if(!this.cameraTrack)return;if(!this.initialTrack)return this.updateWithoutCamera();if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log})),Jt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof yi?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof yi?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():this.destination=new Wd(this.videoContext,{name:"mainDestination",logger:this.log});let{width:n,height:c}=this.cameraResolution,l=yield this.getWatermarkImage(n,c);this._waterMarkOption={x:0,y:0,width:l.width,height:l.height,image:l},this.cameraNode=new yu(this.videoContext,{input:this.initialTrack,width:n,height:c,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,selfieSegmentation:this._selfieSegmentation,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,faceDetector:this._faceDetector,mat4:this._mat4}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new Su(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),si(this._rotation)&&this.transformNode.resize(r.height,r.width),this.log.info(`start ${this._isMirror?"mirror":""}${this._isRotate?`, rotate ${this.rotation}`:""}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new $a(this.videoContext,this.log),this.mixNode.resize(r.width,r.height),n.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:l,height:m}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(l,m),l&&m&&this.waterMarkNode.resize(l,m)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),this.changeMixLayout(this._mixScreenOption),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext._canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}updateWithoutCamera(){return A(this,null,function*(){var o;if(!this._isMixScreen)return;if(!this.screenTrack||!this.screenTrack.mediaTrack){this.clearLastFrame();return}if(this.checkOrCreateVideoContext(),!this._use2d)return;this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}));let{settings:e,profile:r}=this.screenTrack;return this.videoContext.frameRate=((o=this.cameraTrack)==null?void 0:o.profile.frameRate)||r.frameRate,this.mixNode&&this.mixNode.close(),this.mixNode=new $a(this.videoContext,this.log),this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.shouldUpdate=!0,this.screenNode.resize(e.width,e.height),this.screenNode.connect(this.mixNode,{zIndex:0}),this.changeMixLayout(this._mixScreenOption),this.mixNode.connect(this.destination),this.log.info("mix without camera"),this._setMainOutput(this.videoContext._canvas)})}changeInput(e){var r,o,s,n;if(e instanceof io)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof Cr)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof ao){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let c=e.mediaTrack;return e.setOutputMediaStreamTrack(c)}this.log.warn("change unknown input",(n=e.mediaTrack)==null?void 0:n.label)}removeInput(e){var r;e instanceof io?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof Cr?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof ao&&e.source&&e.source.context.destroy()}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return A(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return A(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new ue({code:q.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,c)=>n.zIndex-c.zIndex),this.watermarkImageList.forEach(({image:n,x:c,y:l,width:m,height:E})=>{s.drawImage(n,c,l,m,E)}),Ms(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return A(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return A(this,null,function*(){this._beautyParams=void 0,this.update()})}setVideoMixer(e){this._isMixScreen=!0,this._mixScreenOption=e,this.update()}updateVideoMixer(e){this.changeMixLayout(e),ur(this._mixScreenOption,e)}changeMixLayout(e){if(!this._isMixScreen||!this.mixNode)return;let{camera:r,screen:o,container:s}=e;if(this.cameraNode&&r){let{width:n,height:c}=this.cameraNode,{x:l,y:m,width:E,height:g}=r;E&&!g?g=E*c/n:!E&&g&&(E=g*n/c),this.mixNode.changeInputLayout(this.cameraNode,{x:l,y:m,width:E,height:g})}if(this.screenNode&&o){let{width:n,height:c}=this.screenNode,{x:l,y:m,width:E,height:g}=o;E&&!g?g=E*c/n:!E&&g&&(E=g*n/c),this.mixNode.changeInputLayout(this.screenNode,{x:l,y:m,width:E,height:g})}s&&this.mixNode.resize(s.width,s.height)}deleteVideoMixer(){var e;this._isMixScreen=!1,this._mixScreenOption={},(e=this.screenNode)==null||e.close(),delete this.screenNode,this.update(),this.log.info("delete screenMixer")}setWatermark(e){return A(this,null,function*(){let r;try{r=yield Ms((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new ue({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:c=r.height,type:l="watermark",zIndex:m=2}=e;this.watermarkImageList.some(g=>g.type===l)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==l),this.pushWaterMarkImageList({x:o,y:s,width:n,height:c,image:r,zIndex:m,type:l,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:n,height:c,image:r,zIndex:m,type:l,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,_)=>g==="imageUrl"?void 0:_))})}deleteWatermark(e="watermark"){return A(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return A(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return A(this,null,function*(){var r;if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield Ms(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new ue({code:q.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return A(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new Ru(e)}clear(){var e;(e=this.videoContext)==null||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};Z([Cf(function(e){this.log.error("update failed",e)})],Ba.prototype,"update",1);var kS=0;var vu=class extends de{constructor(e){super("room");u(this,"seq",++kS);u(this,"sdkAppId");u(this,"userId");u(this,"userSig");u(this,"privateMapKey");u(this,"latencyLevel");u(this,"tinyId");u(this,"scene");u(this,"roomId");u(this,"useStringRoomId");u(this,"role","anchor");u(this,"joinParams",null);u(this,"localTracks",new Set);u(this,"enableAutoPlayDialog",!0);u(this,"autoReceiveAudio",!0);u(this,"autoReceiveVideo",!0);u(this,"proxy_ws");u(this,"proxy_wt");u(this,"proxy_unified");u(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0}});u(this,"keyPointManager");u(this,"audioManager");u(this,"videoManager");u(this,"callDurationCalculator");u(this,"badCaseDetector");u(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});u(this,"videoDecodeFallbackType");u(this,"smallMode","canvas");u(this,"_isUsingCachedSchedule",!1);u(this,"_log",$.createLogger({id:`r${this.seq}`}));u(this,"_joinedTimestamp",0);u(this,"_sdkType");u(this,"heartbeatReport");u(this,"quality");u(this,"enableSEI");u(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,st(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),st(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),st(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new Fg({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new $g({room:this}),this.badCaseDetector=new Bg({room:this}),this.audioManager=new Nd(this),this.videoManager=new Ba(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return A(this,null,function*(){return this.publish(e)})}removeTrack(e){return A(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return A(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(we(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Lt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:c}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=c,c?(ru([c,c]),Mo(`https://${c}`)):(s&&Mo(s),n&&ru(n))}V.once(U.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:Jr.main,sched_back_domain:Jr.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return A(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return A(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return A(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new ue({code:q.INVALID_OPERATION,message:Be({key:$e.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Xt.INVALID_DESTROY),new ue({code:q.INVALID_OPERATION,message:Be({key:$e.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,V.emit(U.ROOM_DESTROY,{room:this})}schedule(e,r){return A(this,null,function*(){var s,n,c,l;let o=Ie();try{let{isCached:m,result:E,detailCost:g}=yield lp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:at,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=m,this._log.info(`schedule cache:${+m} ${dr(E,{keysToExclude:["username","credential"]})}`),m&&V.once(U.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=z(z({},this.scheduleResult),E),Pe((s=E.config)==null?void 0:s.retryCount)&&tl(E.config.retryCount),we((n=E.config)==null?void 0:n.loggerDomain)&&Mo(E.config.loggerDomain),this.videoDecodeFallbackType=((c=E.config)==null?void 0:c.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((l=E.config)==null?void 0:l.smallMode)||this.smallMode,V.emit(U.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:g}),Q.addSuccessEvent({key:521700,cost:Ie()-o})}catch(m){throw Q.addFailedEvent({key:521700,error:m}),m}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function Gg(i,t=!1){let e=Object.defineProperties(At(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=He,i.onmessageerror=He,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var Mp=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=He,e(r)}},kF=_e(Mp,"takeUntilComplete");var wt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},jg="__INLINE__WORKER__",qg="__INLINE__WASM__",{debug:Jg}=console;wt.debug||(console.debug=()=>{});var LS=!jg.startsWith("__"),US=!qg.startsWith("__");function Cu(){let i=Uo(`${wt.assetsPath?`${wt.assetsPath}/`:""}worker.js`);return LS?URL.createObjectURL(new Blob([atob(jg)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var Ha;function Nu(){return A(this,null,function*(){let i=wt.assetsPath?`${wt.assetsPath}/`:"";return Ha||(US?Ha=new TextEncoder().encode(atob(qg)).buffer:Ha=yield fetch(Uo(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),Ha)})}var wp=class{constructor(){u(this,"playPort");u(this,"playPortSent",!1);u(this,"worklet");u(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return A(this,null,function*(){let t=ze("player"),e=Cu();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),$.info("global audio player worklet addModule success",e)}catch(r){throw $.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Nu(),flag:wt},numberOfInputs:2}),$.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return A(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},Du=new wp;var Op=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),WF=Op?Promise.resolve().then(function(){return BS}):Promise.resolve().then(function(){return JS});var GF=Op?Promise.resolve().then(function(){return WS}):Promise.resolve().then(function(){return XS});var VS=Op?Promise.resolve().then(function(){return jS}):Promise.resolve().then(function(){return YS});function xp(...i){return A(this,null,function*(){return(yield VS).default(...i)})}var FS=i=>A(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),$S=(...t)=>A(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(c=>{e[n].accept[c]=s.extensions||[]}):e[n].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(FS));return i[0].multiple?o:o[0]}),BS={__proto__:null,default:$S};function Mu(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return Mu=function(e){this.s=e,this.n=e.next},Mu.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new Mu(i)}var zg=(o,s,...n)=>A(void 0,[o,s,...n],function*(i,t,e=i.name,r){let c=[],l=[];var m,E=!1,g=!1;try{for(var _,v=function(L){var x,M,B,ee=2;for(typeof Symbol!="undefined"&&(M=Symbol.asyncIterator,B=Symbol.iterator);ee--;){if(M&&(x=L[M])!=null)return x.call(L);if(B&&(x=L[B])!=null)return new Mu(x.call(L));M="@@asyncIterator",B="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());E=!(_=yield v.next()).done;E=!1){let L=_.value,x=`${e}/${L.name}`;L.kind==="file"?l.push(L.getFile().then(M=>(M.directoryHandle=i,M.handle=L,Object.defineProperty(M,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>x})))):L.kind!=="directory"||!t||r&&r(L)||c.push(zg(L,t,x,r))}}catch(L){g=!0,m=L}finally{try{E&&v.return!=null&&(yield v.return())}finally{if(g)throw m}}return[...(yield Promise.all(c)).flat(),...yield Promise.all(l)]}),HS=(...t)=>A(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return zg(e,i.recursive,void 0,i.skipDirectory)}),WS={__proto__:null,default:HS},GS=(s,...n)=>A(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let c=[],l=null;if(i instanceof Blob&&i.type?l=i.type:i.headers&&i.headers.get("content-type")&&(l=i.headers.get("content-type")),t.forEach((g,_)=>{c[_]={description:g.description||"Files",accept:{}},g.mimeTypes?(_===0&&l&&g.mimeTypes.push(l),g.mimeTypes.map(v=>{c[_].accept[v]=g.extensions||[]})):l?c[_].accept[l]=g.extensions||[]:c[_].accept["*/*"]=g.extensions||[]}),e)try{yield e.getFile()}catch(g){if(e=null,r)throw g}let m=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:c,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(m);let E=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(E),m):"body"in i?(yield i.body.pipeTo(E),m):(yield E.write(yield i),yield E.close(),m)}),jS={__proto__:null,default:GS},qS=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=m=>{typeof c=="function"&&c(),e(m)},c=i[0].legacySetup&&i[0].legacySetup(n,()=>c(r),o),l=()=>{window.removeEventListener("focus",l),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",l)}),o.addEventListener("change",()=>{window.removeEventListener("focus",l),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),JS={__proto__:null,default:qS},zS=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=c=>{typeof n=="function"&&n(),e(c)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let c=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(c=c.filter(l=>l.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):c=c.filter(l=>l.webkitRelativePath.split("/").length===2),s(c)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),XS={__proto__:null,default:zS},QS=(e,...r)=>A(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(l,m){return A(this,null,function*(){let E=l.getReader(),g=new ReadableStream({start:L=>function x(){return A(this,null,function*(){return E.read().then(({done:M,value:B})=>{if(!M)return L.enqueue(B),x();L.close()})})}()}),_=new Response(g),v=yield _.blob();return E.releaseLock(),new Blob([v],{type:m})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof c=="function"&&c()},c=t.legacySetup&&t.legacySetup(n,()=>c(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),YS={__proto__:null,default:QS};var Pp=class{constructor(t){this.name=t;u(this,"ready");u(this,"worker");u(this,"ports");u(this,"ids",1);u(this,"transactions",new Map);u(this,"log");u(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){return A(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Cu(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>A(this,null,function*(){r.onmessage=({data:{id:n,type:c,payload:l}})=>{var m;if(n)(m=this.transactions.get(n))==null||m(l),this.transactions.delete(n);else switch(c){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",l),s(l);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(l.value){let E=typeof l.old=="string"?l.old:`${l.old.action}ing`,g=typeof l.value=="string"?l.value:`${l.value.action}ing`;console.log(Sc(),l.group,l.name,E,"\u{1F449}",g)}break;case"log":console.log(l);break;case"glog":window.dispatchEvent(new CustomEvent(c,{detail:l}));break}},r.postMessage({wasm:yield Nu(),flag:wt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},kp=class{constructor(t,e,r){this.worker=t;u(this,"channel",new MessageChannel);u(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Lp=class i extends Pp{constructor(){super("main");u(this,"switchValue",new Map);u(this,"extendChannel");u(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return A(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Bt(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},fo=new Lp,ds,ZS=-1;function Xg(i){return console.log(i),ds.push(i.slice()),ds.length>1e3&&ds.shift(),i}function Qg(i){return A(this,null,function*(){switch(ZS){case 0:this.edpl.willDecodeAudio=Xg;break;case 2:this.edpl.didEncodeAudio=Xg;break}yield fo.create(),V.emit(U.JOIN_SEND_CMD,{room:this});let t=new kp(fo,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:n,payload:c}=s;this.onWorkerEvent(n,c)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(V.emit(U.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new ue({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:Be({key:$e.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Up},useWt:{set:KS},enableDebug:{set(i){console.debug=i?Jg:()=>{},fo.setSwitchValue("enableDebug",i)}},useV2:{set:Vp},dump:{value(){if(ds||(console.warn("dump audio will be activated at next time join room"),ds=[]),!ds.length){console.warn("no audio data to dump,try it later");return}let i=[];return ds.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),xp(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;fo.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,fo.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return xp(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:wt.useHardDecoder="prefer-hardware";break;case!1:wt.useHardDecoder="prefer-software";break;default:wt.useHardDecoder="no-preference"}}}});function Up(i){return A(this,null,function*(){fo.setSwitchValue("useAINS",i)})}function Vp(i){return A(this,null,function*(){fo.setSwitchValue("useV2",i)})}function KS(i){return A(this,null,function*(){fo.setSwitchValue("useWt",i)})}function Yg(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function Zg(i){return A(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),be(Gg(r.port2),Ye(Ce(i,de.INIT)),Le(s=>{let{data:n,packetsReceived:c}=s;i.stat.packetsReceived=c,i.stat.framesReceived++,e++;let l=n[4]&31;if(e<=10){let E=Array.from(n.slice(0,10)).map(g=>g.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${l}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${E}`)}let m;switch(l){case 5:case 7:m="key";break;default:m="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:m,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var wu=[];function eE(i){var l;let t=At();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=wu.length;m++)if(!wu[m]){wu[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(l=this.session)==null||l.postMessage({cmd:"pushAudio",payload:z({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(Te(z({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,n,c=m=>{let E=s.getAudioTracks()[0];E&&(n.disconnect(),s.removeTrack(E)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),n=ze("player").createMediaStreamSource(s),n.connect(Du.worklet,0,this.index)};be(Ce(i,"output-media-track-changed"),Ye(Ce(i,"ready")),Le(c,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),wu[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),be(t,va(m=>i.volume=m),Ai(Hd(1e3)),Le(()=>{i.volume=0})),c(i.outMediaTrack)}var b$=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Fp=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;u(this,"track");u(this,"label");u(this,"insertKeyFrame",!0);u(this,"encoder");u(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return A(this,null,function*(){yield this.recreate(r),e.signal.addEventListener("abort",()=>{this.encoder.close()});let o=0;return t.pipeThrough(new TransformStream({transform:(s,n)=>{this.encoder.state==="configured"&&(this.tsMap.set(o,Date.now()),this.encode(s),o++,n.enqueue(s))}}),e)})}encode(t){this.encoder.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return A(this,null,function*(){yield this.recreate(r);let o=0;t.pipeTo(new WritableStream({write:s=>{this.encoder.state==="configured"&&(o<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,o,Date.now(),s.timestamp,s.displayWidth,s.displayHeight),(s.displayWidth!==this.config.width||s.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",s.displayWidth,s.displayHeight,this.config.width,this.config.height),this.configure({width:s.displayWidth,height:s.displayHeight})),this.tsMap.set(o,Date.now()),this.encode(s),o<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,o),o++,s.close())}}),e).catch(s=>{var n;this.localTrack.log.warn(s),(n=this.encoder)==null||n.close()})})}recreate(t,e=0){return A(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e===0&&V.emit(U.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,this.track.enabled===!1)return;let c=null;if(this.localTrack.enableEncodeFrame){c=new Uint8Array(s.byteLength),s.copyTo(c);let l=this.localTrack.encodeFrame({data:c.buffer},this.type===3);c=new Uint8Array(l.data)}c?(this.localTrack.stat.bytesSent+=c.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:c,duration:s.duration},timestamp:n},[c.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),setTimeout(()=>this.recreate(t,e+1),100)}});return this.encoder=o,yield this.configure({},r===0?e:0),o})}configure(t,e=0){return A(this,null,function*(){var r;if(Object.assign(this.config,t),e===0)for(let o=0;o<=Ni.length;o++){let{supported:s}=yield VideoDecoder.isConfigSupported(this.config);if(s)break;if(o===Ni.length)return;Ni[o](this.config)}else e<=Ni.length&&Ni[e-1](this.config);(r=this.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Ou(i,t){return A(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.640028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:wt.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let n=new Fp(i,t.type,o,s.port2);return s.port2.onmessage=c=>{if(c.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:l}=c.data;Pn({configureBr:[c.data.bitrate,l]}),n.configure({bitrate:l})}},this._log.info("start push",r,t),n})}function tE(i){return A(this,null,function*(){var E;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((E=i.manager)!=null&&E.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let c=yield Ou.call(this,i,r);this._log.info("VideoEncoder created",r);let l,m=g=>A(this,null,function*(){if(l==null||l.abort("track changed"),!g)return;l=new AbortController;let{width:_,height:v,displaySurface:L}=g.getSettings();_&&(c.config.width=_),v&&(c.config.height=v);let x=tr.match(/Chrome\/(\d+)/);(x==null?void 0:x[1])==="114"&&L==="browser"&&delete c.config.hardwareAcceleration,this._log.info("push",e,"track:",g.readyState,g.getSettings());let M;if(typeof MediaStreamTrackProcessor!="undefined")M=new MediaStreamTrackProcessor({track:g}).readable;else{let ee;M=new ReadableStream({pull(pe){return A(this,null,function*(){if(gi())return new Promise(ae=>{var Xe;(Xe=i.player.element)==null||Xe.requestVideoFrameCallback((X,Ue)=>{let _o=new VideoFrame(i.player.element);pe.enqueue(_o),ae()})})})}})}let B="small"in i&&i.small;return B?(this.smallEncoder||(this.smallEncoder=yield Ou.call(this,i,{profile:B,type:3,trackType:o})),this.smallEncoder.track=g,this.smallEncoder.label="small",M=yield this.smallEncoder.trans(M,l,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),c.track=g,c.label=e,c.start(M,l,this)});return be(Ce(i,"output-media-track-changed"),Ye(Ce(i,"ready")),Le(m,console.error,()=>{var g;this._log.info("stop push",e,r),l.abort("unpublish"),c.close(),(g=this.smallEncoder)==null||g.close()})),m(i.outMediaTrack)})}var go=class go extends de{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;u(this,"enableInBackground",!1);u(this,"interval",400);e.on("joined",()=>{this.emit(go.INTERVALCHANGED,this.interval)}),be(Ce(this,go.INTERVALCHANGED),no(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):be(jf(s),so(()=>[]))),Le(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==de.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(go.INTERVALCHANGED,this.interval)}stop(){}};u(go,"INTERVALCHANGED","intervalChanged"),Z([Qe([de.INIT,de.OFF],de.ON)],go.prototype,"start",1),Z([Qe([],de.OFF)],go.prototype,"stop",1);var xu=go;var Eo=class Eo extends vu{constructor(e){super(e);u(this,"index",0);u(this,"session");u(this,"tinyid");u(this,"roomid");u(this,"openid");u(this,"socketid");u(this,"relayip");u(this,"clientip");u(this,"remotePublishedUserMap",new Map);u(this,"bussinessInfo");u(this,"token");u(this,"audioVolumeEvalution",new xu(this));u(this,"enableAIVoice",Up);u(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:Rl(),uint32_device_type:0,str_os_verion:vl(),uint32_link_type:1,str_client_version:at,uint32_net_type:wo[Ur.getNetworkType()],ua:navigator.userAgent,version:""}});u(this,"joinAbortController",new AbortController);u(this,"smallAbortCtrl");u(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Vp(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return A(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=c=>{n.port2.close(),o(c.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=c=>{c.data?o.next(c.data):o.complete()},s.port2.onmessageerror=c=>o.error(c),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return A(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return A(this,null,function*(){var l,m,E;let s=Ur.getEnv(),n=od(),c={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(l=this.proxy_wt)==null?void 0:l.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.replace("wss://",""),proxy_cloud:(E=this.scheduleResult.iceServers)!=null&&E.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:$s(),browserInfo:od(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:at,browserVersion:n.browserName+n.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield Qg.call(this,c),console.log(this),Du.playAudio(g=>this.postMessage({cmd:"setAudioWorkletPort"},[g])),this.checkDestroy()})}leave(){return A(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish())})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return A(this,null,function*(){let e=Ye(Ce(this,"left"));be(r=>A(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,Le(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(Te(z({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case U.RECEIVED_PUBLISHED_USER_LIST:V.emit(e,z({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new _u(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let g=r,_=this.remotePublishedUserMap.get(g);_&&(_.remoteVideoTrack.close(),_.remoteAuxiliaryTrack.close(),_.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(g),this.emit("remote-unpublished",_))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:g,muteState:_,flag:v}=r,L=this.remotePublishedUserMap.get(_.userId);if(!L){this.emit("remote-publish-state-changed",r);return}L.flag=v}V.emit(U.REMOTE_PUBLISH_STATE_CHANGED,z({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"network-quality":this.quality=z({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:c,downlinkInfo:l,msg_down_stream_info:m}=r,E={str_sdk_version:at,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:wo[xn()]},msg_event_msg:qf(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:c,msg_down_stream_info:m};V.emit(U.HEARTBEAT_REPORT,{room:this,report:E}),this.emit("heartbeat-report",E),V.emit(U.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:l}),delete r.downlinkInfo;break;case"signal-connection-state-changed":V.emit(U.SIGNAL_CONNECTION_STATE_CHANGED,z({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(...e){return A(this,null,function*(){let r=e.reduce((c,l)=>l.mediaType|c,0),o=this.sendMessage("publish",r).then(c=>c.err!==0?Promise.reject(c.err):c),s=0,n=c=>A(this,null,function*(){switch(yield o,c.muted&&(s|=c.mediaType),Vt(c,c).add("mute",()=>{this.postMessage("mute",{mediaType:c.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:c.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),c.mediaType){case 1:eE.call(this,c);break;default:yield tE.call(this,c)}});yield Promise.all(e.map(n)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return A(this,null,function*(){e.forEach(ht)})}subscribe(...e){return A(this,null,function*(){let r=e.reduce((g,_)=>_.mediaType|g,0),{userId:o,tinyId:s,streamType:n}=e[0],c=this.remotePublishedUserMap.get(o),l=z({},c.subscribeState),m=Object.assign(new ea,l);m.mediaType|=r,V.emit(U.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:c,subscribeState:m});let E=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(g=>m.mediaType&g).map(g=>({mediaType:g,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",E),yield Promise.all(e.filter(g=>!g.isSubscribed).map(g=>{switch(g.mediaType){case 1:return Yg.call(this,g);default:return Zg.call(this,g)}})),V.emit(U.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:c})})}unsubscribe(...e){return A(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let c of e)c.unsubscribe();V.emit(U.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return A(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Ou.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(c=>s&c).map(c=>({mediaType:c,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Z([ro(Eo.prototype.afterJoin),Qe(["left",de.INIT],"joined"),Pg()],Eo.prototype,"join",1),Z([Qe("joined","left",{ignoreError:!0}),kg()],Eo.prototype,"leave",1),Z([bd((...e)=>0),Lg()],Eo.prototype,"publish",1),Z([bd((...e)=>0),Ug()],Eo.prototype,"unpublish",1),Z([bd((...e)=>e[0].userId),Vg()],Eo.prototype,"subscribe",1);var Pu=Eo;un.frameWorkType=37;un.create=function(i){let t=un._create.call(this,Pu,i);return t._use(sp,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(wt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",at,"created",wt),t};Object.assign(un.prototype,{_setCurrentSpeaker(i){let t=ze("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return A(this,null,function*(){return this.startPlugin(sp.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{be(Ce(i,"decode-downgrade-state-changed"),sr(o=>o.state==="STARTED"),Nr(1),ep(1e4),Ye(Ce(i,de.INIT)),Le(e,r))})})}});var XB=un;export{XB as default};
|
|
142
|
+
}`});u(this,"yTextureRef");u(this,"uTextureRef");u(this,"vTextureRef");u(this,"Y");u(this,"U");u(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var Di=[i=>{i.codec="avc1.42e01f"},i=>{delete i.hardwareAcceleration}],Jg=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")};function US(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var VS=0,Cu=class{constructor(t){u(this,"id",VS++);u(this,"trackDoneOB");u(this,"startOB");u(this,"stopOB");u(this,"decoder");u(this,"videoContext");u(this,"gop",0);u(this,"gop_helper",0);u(this,"waitFirstKeyFrame",!0);u(this,"startTimestamp",0);u(this,"startTime",0);u(this,"startPerformanceTime",0);u(this,"inputFrameCount",0);u(this,"decodedFrameCount",0);u(this,"decodeFrameCount",0);u(this,"downgradeLevel",0);u(this,"lastDowngradeTime",0);u(this,"lastFrameDiff",0);u(this,"lastDecodeFrameTimestamp",0);u(this,"config");u(this,"gop_before_configure",[]);u(this,"videoElement");u(this,"type","wasm");u(this,"goodType");u(this,"renderer","2d");u(this,"wasmOption");u(this,"createDecoder");u(this,"_decodeSink");u(this,"isReported",!1);u(this,"track");u(this,"stateChangeOB");u(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=yt(),this.track=e,this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=Ne(e.availableState,de.OFF),this.stopOB=yt(),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),be(this.stateChangeOB,tp((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),Ye(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=be(this.pipe(this.track),Ye(this.stopOB),yi());be(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),Q.addFailedEvent({key:Jg(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),Q.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),Q.addSuccessEvent({key:Jg(this.type,this.renderer)}),Q.addSuccessEvent({key:514704})})),be(e,Dr(1),Le(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!em()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var c,l;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!US(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((c=this.decoder)==null?void 0:c.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(m=>this.decode(m,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=Ie();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}(this.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(l=t.getMetadata)==null?void 0:l.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>y(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var c;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(c=this.videoContext)==null||c.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":for(let l=0;l<=Di.length;l++){let{supported:m}=yield VideoDecoder.isConfigSupported(this.config);if(m)break;if(l===Di.length){e.error(3);return}Di[l](this.config)}r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let c=0;if(r.on("videoFrame",l=>{this.decodedFrameCount++,c++,(c<=10||c%500===0)&&t.log.debug(`frame ${c} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${l.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(l.timestamp)),e.next(l)}),r.on("error",l=>{t.log.error(l),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new Tt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(Tt.UNAVAILABLE,m=>{t.log.error(m),e.error(7)});let l=new vu(this.videoContext);r.on("videoCodecInfo",m=>l.resize(m.width,m.height)),r.on("videoFrame",m=>{({y:l.Y,u:l.U,v:l.V}=m),this.downgradeLevel===1?this.decodedFrameCount%2===0&&l.render(this.decodedFrameCount):l.render(this.decodedFrameCount)}),t.source=l,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let l=new MediaStreamTrackGenerator({kind:"video"}),m=l.writable.getWriter();t.setInputMediaStreamTrack(l),r.on("videoFrame",f=>m.write(f))}else{this.videoContext=new Ft({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let l=this.videoContext.createVideoImageSource();r.on("videoFrame",f=>{try{l.image=f,l.update()}catch(E){delete this.goodType,t.log.error(E),e.error(11)}});let m=new is(this.videoContext,{name:"remotePlayer",logger:t.log});l.connect(m),t.source=l,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(c){t.log.error(c),e.error(n==="webCodecs"?2:6)}})}};var Ga=class extends zg.EventEmitter{constructor(e){super();this.room=e;u(this,"videoContext");u(this,"_glVideoContext");u(this,"_2dVideoContext");u(this,"destination");u(this,"smallVideoContext");u(this,"smallDestination");u(this,"smallTrackSource");u(this,"smallImageSource");u(this,"_isMirror",!1);u(this,"_rotation",0);u(this,"cameraTrack");u(this,"cameraNode");u(this,"transformNode");u(this,"mixNode");u(this,"screenTrack");u(this,"screenNode");u(this,"selfModel",!1);u(this,"blurRadius",3);u(this,"arTrack");u(this,"_enableFaceCentering",!1);u(this,"onAbort");u(this,"Wasm");u(this,"waterMarkNode");u(this,"_waterMarkOption");u(this,"watermarkImageList",[]);u(this,"_beautyParams");u(this,"isUsingArTrack",!1);u(this,"_isMixScreen",!1);u(this,"_mixScreenOption",{});u(this,"_virtualBackground");u(this,"_virtualBackgroundAbortCallback");u(this,"virtualBackgroundInstance");u(this,"_bgAssetPath");u(this,"log",$.createLogger({id:"vm"}));u(this,"_mat4");u(this,"_checkId",0);u(this,"_use2d",!1);u(this,"_autoSwitchRenderMode",!0);u(this,"encodePipeline",[]);u(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Ft({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return ni(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Ft({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new Tt({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on(Tt.UNAVAILABLE,e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}initVirtualBackground(e,r){this.onAbort=e,this._mat4=r}enablePrintDetail(e=2e3){this._checkId=vt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),vt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Yi||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?Q.addFailedEvent({key:o,error:r}):Q.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new Tt({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new qd(this.smallVideoContext,e,this.log),this.smallVideoContext.on(Tt.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;Yi&&n.setCanvas(e);let c=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),c=this.arTrack),this.log.info(`set main output ${c?c.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(c)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return y(this,null,function*(){var s;if(!this.cameraTrack)return;if(!this.initialTrack)return this.updateWithoutCamera();if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on("render",()=>{var n;(n=this.cameraTrack)==null||n.player.emit("render")})),Jt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof bi?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof bi?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new jd(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on("render",()=>{var m;(m=this.cameraTrack)==null||m.player.emit("render")}));let{width:n,height:c}=this.cameraResolution,l=yield this.getWatermarkImage(n,c);this._waterMarkOption={x:0,y:0,width:l.width,height:l.height,image:l},this.cameraNode=new Ru(this.videoContext,{input:this.initialTrack,width:n,height:c,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,onAbort:this.onAbort,mat4:this._mat4}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new Au(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),ni(this._rotation)&&this.transformNode.resize(r.height,r.width),this.log.info(`start ${this._isMirror?"mirror":""}${this._isRotate?`, rotate ${this.rotation}`:""}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new Wa(this.videoContext,this.log),this.mixNode.resize(r.width,r.height),n.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption)this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y;else if(this.waterMarkNode){let{width:l,height:m}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(l,m),l&&m&&this.waterMarkNode.resize(l,m)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),this.changeMixLayout(this._mixScreenOption),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext._canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}updateWithoutCamera(){return y(this,null,function*(){var o;if(!this._isMixScreen)return;if(!this.screenTrack||!this.screenTrack.mediaTrack){this.clearLastFrame();return}if(this.checkOrCreateVideoContext(),!this._use2d)return;this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on("render",()=>{}));let{settings:e,profile:r}=this.screenTrack;return this.videoContext.frameRate=((o=this.cameraTrack)==null?void 0:o.profile.frameRate)||r.frameRate,this.mixNode&&this.mixNode.close(),this.mixNode=new Wa(this.videoContext,this.log),this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.shouldUpdate=!0,this.screenNode.resize(e.width,e.height),this.screenNode.connect(this.mixNode,{zIndex:0}),this.changeMixLayout(this._mixScreenOption),this.mixNode.connect(this.destination),this.log.info("mix without camera"),this._setMainOutput(this.videoContext._canvas)})}changeInput(e){var r,o,s,n;if(e instanceof io)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof Nr)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof ao){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let c=e.mediaTrack;return e.setOutputMediaStreamTrack(c)}this.log.warn("change unknown input",(n=e.mediaTrack)==null?void 0:n.label)}removeInput(e){var r;e instanceof io?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof Nr?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof ao&&e.source&&e.source.context.destroy()}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return y(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return y(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new ue({code:q.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,c)=>n.zIndex-c.zIndex),this.watermarkImageList.forEach(({image:n,x:c,y:l,width:m,height:f})=>{s.drawImage(n,c,l,m,f)}),ws(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return y(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return y(this,null,function*(){this._beautyParams=void 0,this.update()})}setVideoMixer(e){this._isMixScreen=!0,this._mixScreenOption=e,this.update()}updateVideoMixer(e){this.changeMixLayout(e),ur(this._mixScreenOption,e)}changeMixLayout(e){if(!this._isMixScreen||!this.mixNode)return;let{camera:r,screen:o,container:s}=e;if(this.cameraNode&&r){let{width:n,height:c}=this.cameraNode,{x:l,y:m,width:f,height:E}=r;f&&!E?E=f*c/n:!f&&E&&(f=E*n/c),this.mixNode.changeInputLayout(this.cameraNode,{x:l,y:m,width:f,height:E})}if(this.screenNode&&o){let{width:n,height:c}=this.screenNode,{x:l,y:m,width:f,height:E}=o;f&&!E?E=f*c/n:!f&&E&&(f=E*n/c),this.mixNode.changeInputLayout(this.screenNode,{x:l,y:m,width:f,height:E})}s&&this.mixNode.resize(s.width,s.height)}deleteVideoMixer(){var e;this._isMixScreen=!1,this._mixScreenOption={},(e=this.screenNode)==null||e.close(),delete this.screenNode,this.update(),this.log.info("delete screenMixer")}setWatermark(e){return y(this,null,function*(){let r;try{r=yield ws((e==null?void 0:e.imageElement)||e.imageUrl)}catch(E){throw new ue({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:c=r.height,type:l="watermark",zIndex:m=2}=e;this.watermarkImageList.some(E=>E.type===l)?(this.watermarkImageList=this.watermarkImageList.filter(E=>E.type!==l),this.pushWaterMarkImageList({x:o,y:s,width:n,height:c,image:r,zIndex:m,type:l,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:n,height:c,image:r,zIndex:m,type:l,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(E,_)=>E==="imageUrl"?void 0:_))})}deleteWatermark(e="watermark"){return y(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return y(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return y(this,null,function*(){var r;if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield ws(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new ue({code:q.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return y(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new Cu(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};Z([xf(function(e){this.log.error("update failed",e)})],Ga.prototype,"update",1);var FS=0;var Nu=class extends de{constructor(e){super("room");u(this,"seq",++FS);u(this,"sdkAppId");u(this,"userId");u(this,"userSig");u(this,"privateMapKey");u(this,"latencyLevel");u(this,"tinyId");u(this,"scene");u(this,"roomId");u(this,"useStringRoomId");u(this,"role","anchor");u(this,"joinParams",null);u(this,"localTracks",new Set);u(this,"enableAutoPlayDialog",!0);u(this,"autoReceiveAudio",!0);u(this,"autoReceiveVideo",!0);u(this,"proxy_ws");u(this,"proxy_wt");u(this,"proxy_unified");u(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0}});u(this,"keyPointManager");u(this,"audioManager");u(this,"videoManager");u(this,"callDurationCalculator");u(this,"badCaseDetector");u(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});u(this,"videoDecodeFallbackType");u(this,"smallMode","canvas");u(this,"_isUsingCachedSchedule",!1);u(this,"_log",$.createLogger({id:`r${this.seq}`}));u(this,"_joinedTimestamp",0);u(this,"_sdkType");u(this,"heartbeatReport");u(this,"quality");u(this,"enableSEI");u(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,st(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),st(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),st(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new Gg({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new jg({room:this}),this.badCaseDetector=new qg({room:this}),this.audioManager=new wd(this),this.videoManager=new Ga(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return y(this,null,function*(){return this.publish(e)})}removeTrack(e){return y(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return y(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Oe(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Lt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:c}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=c,c?(ou([c,c]),wo(`https://${c}`)):(s&&wo(s),n&&ou(n))}V.once(U.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:zr.main,sched_back_domain:zr.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return y(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return y(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return y(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new ue({code:q.INVALID_OPERATION,message:Be({key:$e.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Xt.INVALID_DESTROY),new ue({code:q.INVALID_OPERATION,message:Be({key:$e.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,V.emit(U.ROOM_DESTROY,{room:this})}schedule(e,r){return y(this,null,function*(){var s,n,c,l;let o=Ie();try{let{isCached:m,result:f,detailCost:E}=yield gp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:at,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=m,this._log.info(`schedule cache:${+m} ${dr(f,{keysToExclude:["username","credential"]})}`),m&&V.once(U.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=X(X({},this.scheduleResult),f),ke((s=f.config)==null?void 0:s.retryCount)&&il(f.config.retryCount),Oe((n=f.config)==null?void 0:n.loggerDomain)&&wo(f.config.loggerDomain),this.videoDecodeFallbackType=((c=f.config)==null?void 0:c.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((l=f.config)==null?void 0:l.smallMode)||this.smallMode,V.emit(U.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:E}),Q.addSuccessEvent({key:521700,cost:Ie()-o})}catch(m){throw Q.addFailedEvent({key:521700,error:m}),m}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function Xg(i,t=!1){let e=Object.defineProperties(yt(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=He,i.onmessageerror=He,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var Lp=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=He,e(r)}},WF=_e(Lp,"takeUntilComplete");var Mt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},Qg="__INLINE__WORKER__",Yg="__INLINE__WASM__",{debug:Zg}=console;Mt.debug||(console.debug=()=>{});var $S=!Qg.startsWith("__"),BS=!Yg.startsWith("__");function Du(){let i=Uo(`${Mt.assetsPath?`${Mt.assetsPath}/`:""}worker.js`);return $S?URL.createObjectURL(new Blob([atob(Qg)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var ja;function wu(){return y(this,null,function*(){let i=Mt.assetsPath?`${Mt.assetsPath}/`:"";return ja||(BS?ja=new TextEncoder().encode(atob(Yg)).buffer:ja=yield fetch(Uo(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),ja)})}var Up=class{constructor(){u(this,"playPort");u(this,"playPortSent",!1);u(this,"worklet");u(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return y(this,null,function*(){let t=ze("player"),e=Du();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),$.info("global audio player worklet addModule success",e)}catch(r){throw $.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield wu(),flag:Mt},numberOfInputs:2}),$.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return y(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},Mu=new Up;var Vp=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),YF=Vp?Promise.resolve().then(function(){return jS}):Promise.resolve().then(function(){return YS});var ZF=Vp?Promise.resolve().then(function(){return JS}):Promise.resolve().then(function(){return KS});var HS=Vp?Promise.resolve().then(function(){return XS}):Promise.resolve().then(function(){return ty});function Fp(...i){return y(this,null,function*(){return(yield HS).default(...i)})}var WS=i=>y(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),GS=(...t)=>y(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(c=>{e[n].accept[c]=s.extensions||[]}):e[n].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(WS));return i[0].multiple?o:o[0]}),jS={__proto__:null,default:GS};function Ou(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return Ou=function(e){this.s=e,this.n=e.next},Ou.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new Ou(i)}var Kg=(o,s,...n)=>y(void 0,[o,s,...n],function*(i,t,e=i.name,r){let c=[],l=[];var m,f=!1,E=!1;try{for(var _,v=function(k){var M,N,B,ee=2;for(typeof Symbol!="undefined"&&(N=Symbol.asyncIterator,B=Symbol.iterator);ee--;){if(N&&(M=k[N])!=null)return M.call(k);if(B&&(M=k[B])!=null)return new Ou(M.call(k));N="@@asyncIterator",B="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());f=!(_=yield v.next()).done;f=!1){let k=_.value,M=`${e}/${k.name}`;k.kind==="file"?l.push(k.getFile().then(N=>(N.directoryHandle=i,N.handle=k,Object.defineProperty(N,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>M})))):k.kind!=="directory"||!t||r&&r(k)||c.push(Kg(k,t,M,r))}}catch(k){E=!0,m=k}finally{try{f&&v.return!=null&&(yield v.return())}finally{if(E)throw m}}return[...(yield Promise.all(c)).flat(),...yield Promise.all(l)]}),qS=(...t)=>y(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return Kg(e,i.recursive,void 0,i.skipDirectory)}),JS={__proto__:null,default:qS},zS=(s,...n)=>y(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let c=[],l=null;if(i instanceof Blob&&i.type?l=i.type:i.headers&&i.headers.get("content-type")&&(l=i.headers.get("content-type")),t.forEach((E,_)=>{c[_]={description:E.description||"Files",accept:{}},E.mimeTypes?(_===0&&l&&E.mimeTypes.push(l),E.mimeTypes.map(v=>{c[_].accept[v]=E.extensions||[]})):l?c[_].accept[l]=E.extensions||[]:c[_].accept["*/*"]=E.extensions||[]}),e)try{yield e.getFile()}catch(E){if(e=null,r)throw E}let m=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:c,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(m);let f=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(f),m):"body"in i?(yield i.body.pipeTo(f),m):(yield f.write(yield i),yield f.close(),m)}),XS={__proto__:null,default:zS},QS=(...t)=>y(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=m=>{typeof c=="function"&&c(),e(m)},c=i[0].legacySetup&&i[0].legacySetup(n,()=>c(r),o),l=()=>{window.removeEventListener("focus",l),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",l)}),o.addEventListener("change",()=>{window.removeEventListener("focus",l),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),YS={__proto__:null,default:QS},ZS=(...t)=>y(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=c=>{typeof n=="function"&&n(),e(c)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let c=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(c=c.filter(l=>l.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):c=c.filter(l=>l.webkitRelativePath.split("/").length===2),s(c)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),KS={__proto__:null,default:ZS},ey=(e,...r)=>y(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(l,m){return y(this,null,function*(){let f=l.getReader(),E=new ReadableStream({start:k=>function M(){return y(this,null,function*(){return f.read().then(({done:N,value:B})=>{if(!N)return k.enqueue(B),M();k.close()})})}()}),_=new Response(E),v=yield _.blob();return f.releaseLock(),new Blob([v],{type:m})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof c=="function"&&c()},c=t.legacySetup&&t.legacySetup(n,()=>c(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),ty={__proto__:null,default:ey};var $p=class{constructor(t){this.name=t;u(this,"ready");u(this,"worker");u(this,"ports");u(this,"ids",1);u(this,"transactions",new Map);u(this,"log");u(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){return y(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Du(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>y(this,null,function*(){r.onmessage=({data:{id:n,type:c,payload:l}})=>{var m;if(n)(m=this.transactions.get(n))==null||m(l),this.transactions.delete(n);else switch(c){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",l),s(l);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(l.value){let f=typeof l.old=="string"?l.old:`${l.old.action}ing`,E=typeof l.value=="string"?l.value:`${l.value.action}ing`;console.log(bc(),l.group,l.name,f,"\u{1F449}",E)}break;case"log":console.log(l);break;case"glog":window.dispatchEvent(new CustomEvent(c,{detail:l}));break}},r.postMessage({wasm:yield wu(),flag:Mt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Bp=class{constructor(t,e,r){this.worker=t;u(this,"channel",new MessageChannel);u(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Hp=class i extends $p{constructor(){super("main");u(this,"switchValue",new Map);u(this,"extendChannel");u(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return y(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Bt(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},fo=new Hp,ds,ry=-1;function eE(i){return console.log(i),ds.push(i.slice()),ds.length>1e3&&ds.shift(),i}function tE(i){return y(this,null,function*(){switch(ry){case 0:this.edpl.willDecodeAudio=eE;break;case 2:this.edpl.didEncodeAudio=eE;break}yield fo.create(),V.emit(U.JOIN_SEND_CMD,{room:this});let t=new Bp(fo,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:n,payload:c}=s;this.onWorkerEvent(n,c)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(V.emit(U.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new ue({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:Be({key:$e.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Wp},useWt:{set:iy},enableDebug:{set(i){console.debug=i?Zg:()=>{},fo.setSwitchValue("enableDebug",i)}},useV2:{set:Gp},dump:{value(){if(ds||(console.warn("dump audio will be activated at next time join room"),ds=[]),!ds.length){console.warn("no audio data to dump,try it later");return}let i=[];return ds.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Fp(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;fo.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,fo.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Fp(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Mt.useHardDecoder="prefer-hardware";break;case!1:Mt.useHardDecoder="prefer-software";break;default:Mt.useHardDecoder="no-preference"}}}});function Wp(i){return y(this,null,function*(){fo.setSwitchValue("useAINS",i)})}function Gp(i){return y(this,null,function*(){fo.setSwitchValue("useV2",i)})}function iy(i){return y(this,null,function*(){fo.setSwitchValue("useWt",i)})}function rE(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function iE(i){return y(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),be(Xg(r.port2),Ye(Ne(i,de.INIT)),Le(s=>{let{data:n,packetsReceived:c}=s;i.stat.packetsReceived=c,i.stat.framesReceived++,e++;let l=n[4]&31;if(e<=10){let f=Array.from(n.slice(0,10)).map(E=>E.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${l}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${f}`)}let m;switch(l){case 5:case 7:m="key";break;default:m="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:m,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var xu=[];function sE(i){var l;let t=yt();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=xu.length;m++)if(!xu[m]){xu[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(l=this.session)==null||l.postMessage({cmd:"pushAudio",payload:X({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(Te(X({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,n,c=m=>{let f=s.getAudioTracks()[0];f&&(n.disconnect(),s.removeTrack(f)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),n=ze("player").createMediaStreamSource(s),n.connect(Mu.worklet,0,this.index)};be(Ne(i,"output-media-track-changed"),Ye(Ne(i,"ready")),Le(c,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),xu[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),be(t,Da(m=>i.volume=m),Ai(Gd(1e3)),Le(()=>{i.volume=0})),c(i.outMediaTrack)}var O$=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var jp=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;u(this,"track");u(this,"label");u(this,"insertKeyFrame",!0);u(this,"encoder");u(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return y(this,null,function*(){yield this.recreate(r),e.signal.addEventListener("abort",()=>{this.encoder.close()});let o=0;return t.pipeThrough(new TransformStream({transform:(s,n)=>{this.encoder.state==="configured"&&(this.tsMap.set(o,Date.now()),this.encode(s),o++,n.enqueue(s))}}),e)})}encode(t){this.encoder.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return y(this,null,function*(){yield this.recreate(r);let o=0;t.pipeTo(new WritableStream({write:s=>{this.encoder.state==="configured"&&(o<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,o,Date.now(),s.timestamp,s.displayWidth,s.displayHeight),(s.displayWidth!==this.config.width||s.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",s.displayWidth,s.displayHeight,this.config.width,this.config.height),this.configure({width:s.displayWidth,height:s.displayHeight})),this.tsMap.set(o,Date.now()),this.encode(s),o<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,o),o++,s.close())}}),e).catch(s=>{var n;this.localTrack.log.warn(s),(n=this.encoder)==null||n.close()})})}recreate(t,e=0){return y(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e===0&&V.emit(U.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,this.track.enabled===!1)return;let c=null;if(this.localTrack.enableEncodeFrame){c=new Uint8Array(s.byteLength),s.copyTo(c);let l=this.localTrack.encodeFrame({data:c.buffer},this.type===3);c=new Uint8Array(l.data)}c?(this.localTrack.stat.bytesSent+=c.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:c,duration:s.duration},timestamp:n},[c.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),setTimeout(()=>this.recreate(t,e+1),100)}});return this.encoder=o,yield this.configure({},r===0?e:0),o})}configure(t,e=0){return y(this,null,function*(){var r;if(Object.assign(this.config,t),e===0)for(let o=0;o<=Di.length;o++){let{supported:s}=yield VideoDecoder.isConfigSupported(this.config);if(s)break;if(o===Di.length)return;Di[o](this.config)}else e<=Di.length&&Di[e-1](this.config);(r=this.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Pu(i,t){return y(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.640028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Mt.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let n=new jp(i,t.type,o,s.port2);return s.port2.onmessage=c=>{if(c.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:l}=c.data;Pn({configureBr:[c.data.bitrate,l]}),n.configure({bitrate:l})}},this._log.info("start push",r,t),n})}function nE(i){return y(this,null,function*(){var f;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((f=i.manager)!=null&&f.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let c=yield Pu.call(this,i,r);this._log.info("VideoEncoder created",r);let l,m=E=>y(this,null,function*(){if(l==null||l.abort("track changed"),!E)return;l=new AbortController;let{width:_,height:v,displaySurface:k}=E.getSettings();_&&(c.config.width=_),v&&(c.config.height=v);let M=tr.match(/Chrome\/(\d+)/);(M==null?void 0:M[1])==="114"&&k==="browser"&&delete c.config.hardwareAcceleration,this._log.info("push",e,"track:",E.readyState,E.getSettings());let N;if(typeof MediaStreamTrackProcessor!="undefined"&&!(E instanceof CanvasCaptureMediaStreamTrack))N=new MediaStreamTrackProcessor({track:E}).readable;else{let ee;N=new ReadableStream({pull(me){return y(this,null,function*(){if(Ei())return new Promise(oe=>{var Xe;i.player.mode===0?(Xe=i.player.element)==null||Xe.requestVideoFrameCallback((J,Ue)=>{let _o=new VideoFrame(i.player.element);me.enqueue(_o),oe()}):i.player.on("render",()=>{let J=new VideoFrame(i.player.canvas);me.enqueue(J),oe()})})})}})}let B="small"in i&&i.small;return B?(this.smallEncoder||(this.smallEncoder=yield Pu.call(this,i,{profile:B,type:3,trackType:o})),this.smallEncoder.track=E,this.smallEncoder.label="small",N=yield this.smallEncoder.trans(N,l,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),c.track=E,c.label=e,c.start(N,l,this)});return be(Ne(i,"output-media-track-changed"),Ye(Ne(i,"ready")),Le(m,console.error,()=>{var E;this._log.info("stop push",e,r),l.abort("unpublish"),c.close(),(E=this.smallEncoder)==null||E.close()})),m(i.outMediaTrack)})}var go=class go extends de{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;u(this,"enableInBackground",!1);u(this,"interval",400);e.on("joined",()=>{this.emit(go.INTERVALCHANGED,this.interval)}),be(Ne(this,go.INTERVALCHANGED),no(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):be(Yf(s),so(()=>[]))),Le(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==de.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(go.INTERVALCHANGED,this.interval)}stop(){}};u(go,"INTERVALCHANGED","intervalChanged"),Z([Qe([de.INIT,de.OFF],de.ON)],go.prototype,"start",1),Z([Qe([],de.OFF)],go.prototype,"stop",1);var ku=go;var Eo=class Eo extends Nu{constructor(e){super(e);u(this,"index",0);u(this,"session");u(this,"tinyid");u(this,"roomid");u(this,"openid");u(this,"socketid");u(this,"relayip");u(this,"clientip");u(this,"remotePublishedUserMap",new Map);u(this,"bussinessInfo");u(this,"token");u(this,"audioVolumeEvalution",new ku(this));u(this,"enableAIVoice",Wp);u(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:Dl(),uint32_device_type:0,str_os_verion:wl(),uint32_link_type:1,str_client_version:at,uint32_net_type:Mo[Vr.getNetworkType()],ua:navigator.userAgent,version:""}});u(this,"joinAbortController",new AbortController);u(this,"smallAbortCtrl");u(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Gp(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return y(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=c=>{n.port2.close(),o(c.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=c=>{c.data?o.next(c.data):o.complete()},s.port2.onmessageerror=c=>o.error(c),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return y(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return y(this,null,function*(){var l,m,f;let s=Vr.getEnv(),n=nd(),c={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(l=this.proxy_wt)==null?void 0:l.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.replace("wss://",""),proxy_cloud:(f=this.scheduleResult.iceServers)!=null&&f.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:$s(),browserInfo:nd(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:at,browserVersion:n.browserName+n.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield tE.call(this,c),console.log(this),Mu.playAudio(E=>this.postMessage({cmd:"setAudioWorkletPort"},[E])),this.checkDestroy()})}leave(){return y(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish())})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return y(this,null,function*(){let e=Ye(Ne(this,"left"));be(r=>y(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,Le(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(Te(X({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case U.RECEIVED_PUBLISHED_USER_LIST:V.emit(e,X({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new Iu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let E=r,_=this.remotePublishedUserMap.get(E);_&&(_.remoteVideoTrack.close(),_.remoteAuxiliaryTrack.close(),_.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(E),this.emit("remote-unpublished",_))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:E,muteState:_,flag:v}=r,k=this.remotePublishedUserMap.get(_.userId);if(!k){this.emit("remote-publish-state-changed",r);return}k.flag=v}V.emit(U.REMOTE_PUBLISH_STATE_CHANGED,X({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"network-quality":this.quality=X({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:c,downlinkInfo:l,msg_down_stream_info:m}=r,f={str_sdk_version:at,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:Mo[xn()]},msg_event_msg:Zf(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:c,msg_down_stream_info:m};V.emit(U.HEARTBEAT_REPORT,{room:this,report:f}),this.emit("heartbeat-report",f),V.emit(U.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:l}),delete r.downlinkInfo;break;case"signal-connection-state-changed":V.emit(U.SIGNAL_CONNECTION_STATE_CHANGED,X({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(...e){return y(this,null,function*(){let r=e.reduce((c,l)=>l.mediaType|c,0),o=this.sendMessage("publish",r).then(c=>c.err!==0?Promise.reject(c.err):c),s=0,n=c=>y(this,null,function*(){switch(yield o,c.muted&&(s|=c.mediaType),Vt(c,c).add("mute",()=>{this.postMessage("mute",{mediaType:c.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:c.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),c.mediaType){case 1:sE.call(this,c);break;default:yield nE.call(this,c)}});yield Promise.all(e.map(n)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return y(this,null,function*(){e.forEach(ht)})}subscribe(...e){return y(this,null,function*(){let r=e.reduce((E,_)=>_.mediaType|E,0),{userId:o,tinyId:s,streamType:n}=e[0],c=this.remotePublishedUserMap.get(o),l=X({},c.subscribeState),m=Object.assign(new ta,l);m.mediaType|=r,V.emit(U.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:c,subscribeState:m});let f=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(E=>m.mediaType&E).map(E=>({mediaType:E,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",f),yield Promise.all(e.filter(E=>!E.isSubscribed).map(E=>{switch(E.mediaType){case 1:return rE.call(this,E);default:return iE.call(this,E)}})),V.emit(U.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:c})})}unsubscribe(...e){return y(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let c of e)c.unsubscribe();V.emit(U.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return y(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Pu.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(c=>s&c).map(c=>({mediaType:c,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Z([ro(Eo.prototype.afterJoin),Qe(["left",de.INIT],"joined"),Fg()],Eo.prototype,"join",1),Z([Qe("joined","left",{ignoreError:!0}),$g()],Eo.prototype,"leave",1),Z([vd((...e)=>0),Bg()],Eo.prototype,"publish",1),Z([vd((...e)=>0),Hg()],Eo.prototype,"unpublish",1),Z([vd((...e)=>e[0].userId),Wg()],Eo.prototype,"subscribe",1);var Lu=Eo;un.frameWorkType=37;un.create=function(i){let t=un._create.call(this,Lu,i);return t._use(up,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Mt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",at,"created",Mt),t};Object.assign(un.prototype,{_setCurrentSpeaker(i){let t=ze("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return y(this,null,function*(){return this.startPlugin(up.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{be(Ne(i,"decode-downgrade-state-changed"),sr(o=>o.state==="STARTED"),Dr(1),sp(1e4),Ye(Ne(i,de.INIT)),Le(e,r))})})}});im(37);var iH=un;export{iH as default};
|