quickvo-player 0.0.5 → 0.0.6
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/dist/index.js +1402 -1247
- package/dist/index.umd.cjs +4 -3
- package/package.json +2 -2
package/dist/index.umd.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
(function(T,k){typeof exports=="object"&&typeof module<"u"?k(exports):typeof define=="function"&&define.amd?define(["exports"],k):(T=typeof globalThis<"u"?globalThis:T||self,k(T["quickvo-player"]={}))})(this,function(exports){"use strict";var U=Object.defineProperty;var D=T=>{throw TypeError(T)};var W=(T,k,f)=>k in T?U(T,k,{enumerable:!0,configurable:!0,writable:!0,value:f}):T[k]=f;var b=(T,k,f)=>W(T,typeof k!="symbol"?k+"":k,f),B=(T,k,f)=>k.has(T)||D("Cannot "+f);var S=(T,k,f)=>(B(T,k,"read from private field"),f?f.call(T):k.get(T)),P=(T,k,f)=>k.has(T)?D("Cannot add the same private member more than once"):k instanceof WeakSet?k.add(T):k.set(T,f),C=(T,k,f,n)=>(B(T,k,"write to private field"),n?n.call(T,f):k.set(T,f),f);var T,k;const L='(function(){"use strict";const U=new TextDecoder("utf-8"),H=(e,s)=>{const a=e.getUint8(s),t=a>>7&1,n=a>>5&3,r=a&31;return{forbidden_zero_bit:t,nal_ref_idc:n,nal_unit_type:r}},b=(e,s)=>e.getUint8(s),P=(e,s,a)=>{const t=new Uint8Array(e.buffer.slice(s,s+a));return U?.decode(t)||""},T=(e,s,a)=>{let t=s,n,r=0;switch(a){case 0:n=e.getFloat64(t,!1),r=8;break;case 1:n=!!e.getUint8(t),r=1;break;case 2:{n="";const o=e.getUint16(t,!1);t=t+2;const c=new Int8Array(e.buffer,t,o).filter(d=>d!==0);n=(U?.decode(c)||"").trim(),r=2+o}break;case 3:for(n={};t<e.byteLength;){const o=e.getUint16(t,!1);if(o===0)break;t=t+2;const c=P(e,t,o);t=t+o;const g=b(e,t);if(g===6)break;t=t+1;const d=T(e,t,g);t=t+d.length,n[c]=d.value,r=2+o+1+d.length}break;case 8:{n={};const o=e.getUint32(t,!1);t=t+4;for(let c=0;c<o;c++){const g=e.getUint16(t,!1);t=t+2;const d=P(e,t,g);t=t+g;const h=b(e,t);t=t+1;const l=T(e,t,h);t=t+l.length,n[d]=l.value,r=2+g+1+l.length}}break;case 10:{n=[];const o=e.getUint32(t,!1);t=t+4;for(let c=0;c<o;c++){const g=b(e,t);t=t+1;const d=T(e,t,g);t=t+d.length,n.push(d.value),r=1+d.length}}break}return{amfType:a,length:r,value:n}},m=(e,s)=>e.getUint8(s)<<16|e.getUint8(s+1)<<8|e.getUint8(s+2);var u={header:{getSignature:e=>{const s=new Int8Array(e.buffer.slice(0,3));return U?.decode(s)||""},getVersion:e=>e.getUint8(3),getFlags:e=>{const a=e.getUint8(0).toString(2).padStart(5,"0").split(""),[,,t,,n]=a;return{audio:n==="1",video:t==="1"}},getDataOffset:e=>e.getUint32(5)},getPreviousTagSize:(e,s)=>e.getUint32(s),isSurplusTag:(e,s)=>{let a=!0;const t=e.byteLength;if(s+4>t)a=!1;else if(s+4+11>t)a=!1;else{const n=m(e,s+4+1);s+4+11+n>t&&(a=!1)}return a},tag:{tagHeader:{getTagType:(e,s)=>{const a=e.getUint8(s);let t;switch(a){case 18:t="script";break;case 8:t="audio";break;case 9:t="video";break}return t},getDataSize:(e,s)=>m(e,s+1),getTimestamp:(e,s)=>m(e,s+4),getTimestampExtended:(e,s)=>e.getUint8(s+7),getStreamID:(e,s)=>m(e,s+8)},tagBody:{parseAudio:(e,s,a)=>{let t=s;const n=e.getUint8(t),r=n>>4&15,i=n>>2&3,o=n>>1&1,c=n&1;t=t+1;const g=e.getUint8(t);t=t+1;const d=a-2,h=new Uint8Array(e.buffer.slice(t,t+d));if(r===10&&g===0){const l=e.getUint8(t),p=e.getUint8(t+1),f=(l&248)>>3,y=(l&7)<<1|p>>7,S=(p&120)>>3,A=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],D=`mp4a.40.${f}`,z=A[y];return{soundFormat:r,soundRate:i,soundSize:o,soundType:c,accPacketType:g,data:h,audioObjectType:f,samplingFrequencyIndex:y,channelConfiguration:S,codec:D,sampleRate:z}}return{soundFormat:r,soundRate:i,soundSize:o,soundType:c,accPacketType:g,data:h}},parseVideo:(e,s,a)=>{let t=s;const n=e.getUint8(t),r=n>>4&15,i=n&15;t=t+1;const o=e.getUint8(t);t=t+1;const c=m(e,t);t=t+3;const g=a-5,d=new Uint8Array(e.buffer.slice(t,t+g));switch(i){case 7:if(o===0){const h=e.getUint8(t);if(t=t+1,h!==1)throw new Error("Invalid AVC version");const l=e.getUint8(t)&255;t=t+1;const p=e.getUint8(t)&255;t=t+1;const f=e.getUint8(t)&255;t=t+1;const A=`avc1.${Array.from([l,p,f],E=>E.toString(16).padStart(2,"0")).join("")}`,D=(e.getUint8(t)&3)-1;t=t+1;const z=e.getUint8(t)&31;t=t+1;const _=e.getUint16(t,!1);t=t+2;const O=new Uint8Array(e.buffer.slice(t,t+_));t=t+_;const I=e.getUint8(t)&31;t=t+1;const x=e.getUint16(t,!1);t=t+2;const M=new Uint8Array(e.buffer.slice(t,t+x));return t=t+x,{frameType:r,codecID:i,avcPacketType:o,cts:c,data:d,version:h,codec:A,profile:l,compatibility:p,level:f,lengthSizeMinusOne:D,numOfSequenceParameterSets:z,sequenceParameterSetLength:_,sps:O,numOfPictureParameterSets:I,pictureParameterSetLength:x,pps:M}}else if(o===1){const h=[],l=t+a-5;for(;t+4<l;){const p=e.getUint32(t,!1);t=t+4;const f=H(e,t);t=t+1;const y=p-1,S=new Uint8Array(e.buffer.slice(t,t+y));t=t+y,h.push({size:p,header:f,payload:S})}return{frameType:r,codecID:i,avcPacketType:o,cts:c,data:d,nalus:h}}break;default:throw new Error("Unsupported codecID")}return{frameType:r,codecID:i,avcPacketType:o,cts:c,data:d}},parseMetaData:(e,s)=>{let a=s;{if(e.getUint8(a)!==2)throw new Error("Invalid AMF type for onMetaData (expected 0x02)");a=a+1}const t=e.getUint16(a,!1);a=a+2;{const i=new Int8Array(e.buffer.slice(a,a+t));if((U?.decode(i)||"")!=="onMetaData")throw new Error("Expected \'onMetaData\' string");a=a+t}const n=b(e,a);return a=a+1,T(e,a,n).value}}}};class L{parseSpeed=8;pendingPayloads=[];payload=new Uint8Array(0);offset=0;is_parsing=!1;header;tag;on={};constructor(){}init=()=>{this.destroy()};push=s=>{this.pendingPayloads.push(s),this.is_parsing||this.parse()};destroy=()=>{this.pendingPayloads=[],this.payload=new Uint8Array(0),this.offset=0,this.is_parsing=!1,this.header=void 0,this.tag=void 0};parse=async()=>{for(this.is_parsing=!0;;){const s=this.pendingPayloads.shift();if(!s)break;const a=new Uint8Array(this.payload.byteLength+s.byteLength);a.set(this.payload,0),a.set(s,this.payload.byteLength),this.payload=a;const t=new DataView(this.payload.buffer);this.header||this.parseHeader(t),await this.parseTag(t)}this.is_parsing=!1};parseHeader=s=>(this.header={signature:u.header.getSignature(s),version:u.header.getVersion(s),flags:u.header.getFlags(s),dataOffset:u.header.getDataOffset(s)},this.offset=this.header?.dataOffset,this.on.header&&this.on.header(this.header),this.header);parseTag=async s=>{const a=(n,r)=>({tagType:u.tag.tagHeader.getTagType(n,r),dataSize:u.tag.tagHeader.getDataSize(n,r),timestamp:u.tag.tagHeader.getTimestamp(n,r),timestampExtended:u.tag.tagHeader.getTimestampExtended(n,r),streamID:u.tag.tagHeader.getStreamID(n,r)}),t=(n,r,i,o)=>{let c;switch(n){case"script":c=u.tag.tagBody.parseMetaData(r,i);break;case"audio":c=u.tag.tagBody.parseAudio(r,i,o);break;case"video":c=u.tag.tagBody.parseVideo(r,i,o);break}return c};for(;this.offset<s.byteLength;){if(u.isSurplusTag(s,this.offset)===!1){this.payload=this.payload.slice(this.offset),this.offset=0;break}const r=a(s,this.offset+4),{tagType:i,dataSize:o}=r;if(!i)break;const c=t(i,s,this.offset+4+11,o);this.tag={header:r,body:c},this.on.tag&&this.on.tag(this.tag),this.offset=this.offset+4+11+o,await new Promise(g=>setTimeout(()=>g(!0),this.parseSpeed))}}}const k=new L;k.on.header=e=>postMessage({action:"onHeader",data:e}),k.on.tag=e=>postMessage({action:"onTag",data:e}),onmessage=e=>{const{action:s,data:a}=e.data,t=k[s];t&&t(a)}})();\n',A=typeof self<"u"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",L],{type:"text/javascript;charset=utf-8"});function E(f){let n;try{if(n=A&&(self.URL||self.webkitURL).createObjectURL(A),!n)throw"";const u=new Worker(n,{name:f==null?void 0:f.name});return u.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(n)}),u}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(L),{name:f==null?void 0:f.name})}}class _{constructor(){b(this,"worker",new E);b(this,"on",{});b(this,"init",()=>this.worker.postMessage({action:"init"}));b(this,"push",n=>this.worker.postMessage({action:"push",data:n}));b(this,"destroy",()=>{this.worker.postMessage({action:"destroy",data:{}}),this.worker.terminate()});this.worker.onmessage=n=>{const{action:u,data:c}=n.data;u==="onHeader"&&this.on.header&&this.on.header(c),u==="onTag"&&this.on.tag&&this.on.tag(c)}}}const N=`(function(){"use strict";class r{audioDecoderConfig;audioDecoder;videoDecoderConfig;videoDecoder;hasKeyFrame=!1;on={audio:{},video:{}};constructor(){}audio={init:i=>{this.audio.destroy(),this.audioDecoderConfig={...i},this.audioDecoder=new AudioDecoder({output:e=>{this.on.audio.decode&&this.on.audio.decode(e)},error:e=>{this.on.audio.error&&this.on.audio.error(e)}}),this.audioDecoder.configure(this.audioDecoderConfig)},decode:i=>{if(!this.audioDecoder)return;const e=new EncodedAudioChunk(i);this.audioDecoder.decode(e)},flush:()=>{this.audioDecoder?.flush()},destroy:()=>{this.audioDecoderConfig=void 0,this.audioDecoder?.close(),this.audioDecoder=void 0}};video={init:i=>{this.video.destroy(),this.videoDecoderConfig={...i},this.videoDecoder=new VideoDecoder({output:async e=>{const d=await createImageBitmap(e),s=e.timestamp;e.close(),d.width>0&&d.height>0?this.on.video.decode&&this.on.video.decode({timestamp:s,bitmap:d}):d.close()},error:e=>{this.on.video.error&&this.on.video.error(e)}}),this.videoDecoder.configure(this.videoDecoderConfig)},decode:i=>{if(this.videoDecoder&&(i.type==="key"&&(this.hasKeyFrame=!0),this.hasKeyFrame&&this.videoDecoder.decodeQueueSize<2)){const e=new EncodedVideoChunk(i);this.videoDecoder.decode(e)}},flush:()=>{this.videoDecoder?.flush()},destroy:()=>{this.videoDecoderConfig=void 0,this.videoDecoder?.close(),this.videoDecoder=void 0,this.hasKeyFrame=!1}}}const t=new r;t.on.audio.decode=o=>postMessage({type:"audio",action:"onDecode",data:o}),t.on.audio.error=o=>postMessage({type:"audio",action:"onError",data:o}),t.on.video.decode=o=>postMessage({type:"video",action:"onDecode",data:o}),t.on.video.error=o=>postMessage({type:"video",action:"onError",data:o}),onmessage=o=>{const{type:i,action:e,data:d}=o.data,s=t[i][e];s&&s(d)}})();
|
|
2
|
-
`,
|
|
3
|
-
`,M=typeof self<"u"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",F],{type:"text/javascript;charset=utf-8"});function H(f){let n;try{if(n=M&&(self.URL||self.webkitURL).createObjectURL(M),!n)throw"";const u=new Worker(n,{name:f==null?void 0:f.name});return u.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(n)}),u}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(F),{name:f==null?void 0:f.name})}}class ${constructor(){b(this,"worker",new H);b(this,"init",({offscreenCanvas:n,baseTime:u=0,writable:c})=>this.worker.postMessage({action:"init",data:{offscreenCanvas:n,baseTime:u,writable:c}},[n,c]));b(this,"setShader",n=>this.worker.postMessage({action:"setShader",data:n}));b(this,"setSize",({width:n,height:u})=>this.worker.postMessage({action:"setSize",data:{width:n,height:u}}));b(this,"push",n=>this.worker.postMessage({action:"push",data:n}));b(this,"setCut",async n=>this.worker.postMessage({action:"setCut",data:n}));b(this,"setPause",n=>this.worker.postMessage({action:"setPause",data:n}));b(this,"destroy",()=>{this.worker.postMessage({action:"destroy",data:{}}),this.worker.terminate()})}}var q=Object.defineProperty,K=(f,n,u)=>n in f?q(f,n,{enumerable:!0,configurable:!0,writable:!0,value:u}):f[n]=u,h=(f,n,u)=>K(f,typeof n!="symbol"?n+"":n,u);class Q{constructor(n,u){h(this,"inputStream",new MediaStream),h(this,"outputStream",new MediaStream),h(this,"inputGain",1),h(this,"enhanceGain",1),h(this,"bgsGain",1),h(this,"bgmGain",1),h(this,"outputGain",1),h(this,"mixAudioMap",new Map),h(this,"audioContext",new AudioContext),h(this,"sourceNode"),h(this,"inputGainNode"),h(this,"enhanceGainNode"),h(this,"bgsGainNode"),h(this,"bgmGainNode"),h(this,"analyserNode"),h(this,"analyserArrayData"),h(this,"outputGainNode"),h(this,"destinationNode"),h(this,"filterStream",c=>c),h(this,"stop",()=>{{const c=this.inputStream.getTracks();for(const o of c)o.stop(),this.inputStream.removeTrack(o)}}),h(this,"getStream",()=>this.filterStream(this.outputStream)),h(this,"setMute",(c=!0)=>{c?this.analyserNode.disconnect(this.outputGainNode):this.analyserNode.connect(this.outputGainNode)}),h(this,"setInputGain",c=>{this.inputGain=c,this.inputGainNode.gain.setValueAtTime(c,this.audioContext.currentTime)}),h(this,"setEnhanceGain",async c=>{this.enhanceGain=c+1,this.enhanceGainNode.gain.setValueAtTime(this.enhanceGain,this.audioContext.currentTime)}),h(this,"setBgsGain",c=>{this.bgsGain=c,this.bgsGainNode.gain.setValueAtTime(c,this.audioContext.currentTime)}),h(this,"setBgmGain",c=>{this.bgmGain=c,this.bgmGainNode.gain.setValueAtTime(c,this.audioContext.currentTime)}),h(this,"setOutputGain",c=>{this.outputGain=c,this.outputGainNode.gain.setValueAtTime(this.outputGain,this.audioContext.currentTime)}),h(this,"getVolume",()=>{const{analyserNode:c,analyserArrayData:o}=this;c.getByteFrequencyData(o);let r=0;for(let i=0;i<o.length;i++)r+=o[i];return Math.ceil(r/o.length)}),h(this,"mixAudio",(c,o="bgm")=>new Promise(async(r,i)=>{try{{const s=this.mixAudioMap.get(o);s&&s.stop()}const e=o==="bgs"?this.bgsGainNode:this.bgmGainNode,t=this.audioContext.createBufferSource();this.mixAudioMap.set(o,t),t.buffer=c,t.connect(e),t.onended=()=>{t.disconnect(e),this.mixAudioMap.delete(o),r(!0)},t.start(0)}catch(e){i(e)}})),h(this,"mixAudioStop",c=>{const o=this.mixAudioMap.get(c);o==null||o.stop()}),h(this,"changeMix",(c,o)=>{const r=c==="bgs"?this.bgsGainNode:this.bgmGainNode;o?r.connect(this.destinationNode):r.disconnect(this.destinationNode)}),u&&(this.audioContext=u),this.inputStream=n,this.sourceNode=this.audioContext.createMediaStreamSource(this.inputStream),this.inputGainNode=this.audioContext.createGain(),this.inputGainNode.gain.setValueAtTime(this.inputGain,this.audioContext.currentTime),this.enhanceGainNode=this.audioContext.createGain(),this.enhanceGainNode.gain.setValueAtTime(this.enhanceGain,this.audioContext.currentTime),this.bgsGainNode=this.audioContext.createGain(),this.bgsGainNode.gain.setValueAtTime(this.bgsGain,this.audioContext.currentTime),this.bgmGainNode=this.audioContext.createGain(),this.bgmGainNode.gain.setValueAtTime(this.bgmGain,this.audioContext.currentTime),this.analyserNode=this.audioContext.createAnalyser(),this.analyserNode.fftSize=512,this.analyserArrayData=new Uint8Array(this.analyserNode.frequencyBinCount),this.outputGainNode=this.audioContext.createGain(),this.outputGainNode.gain.setValueAtTime(this.outputGain,this.audioContext.currentTime),this.destinationNode=this.audioContext.createMediaStreamDestination(),this.outputStream=this.destinationNode.stream;{const{sourceNode:c,inputGainNode:o,enhanceGainNode:r,bgsGainNode:i,bgmGainNode:e,analyserNode:t,outputGainNode:s,destinationNode:l}=this;c.connect(o),o.connect(r),r.connect(t),i.connect(t),e.connect(t),r.connect(l),i.connect(l),e.connect(l),t.connect(s),s.connect(this.audioContext.destination)}this.setMute(!0),this.audioContext.resume()}}const J=async(f,n)=>{try{const{format:u,numberOfChannels:c,numberOfFrames:o,sampleRate:r}=n,i=f.createBuffer(c,o,r);for(let e=0;e<c;e++){const t=n.allocationSize({planeIndex:e}),s=new Uint8Array(t);n.copyTo(s,{planeIndex:e});const l=new DataView(s.buffer),a=i.getChannelData(e);for(let d=0;d<o;d++){let y;switch(u){case"s16":case"s16-planar":y=l.getInt16(d*2,!0)/32768;break;case"f32":case"f32-planar":y=l.getFloat32(d*4,!0);break;case"u8":case"u8-planar":y=(l.getUint8(d)-128)/128;break;default:throw new Error(`Unsupported audio format: ${u}`)}a[d]=Math.max(-1,Math.min(1,y))}}return i}catch(u){throw console.error("Failed to convert AudioData to AudioBuffer:",u),u}};class X{constructor(){b(this,"prAudioStream");b(this,"audioContext");b(this,"destination");b(this,"stream",new MediaStream);b(this,"nextStartTime",0);b(this,"pendingSources",[]);b(this,"init",n=>{n||(n=new(window.AudioContext||window.webkitAudioContext)),this.audioContext=n,this.destination=this.audioContext.createMediaStreamDestination(),this.stream=new MediaStream,this.stream.addTrack(this.destination.stream.getAudioTracks()[0]),this.prAudioStream=new Q(this.stream,this.audioContext),this.nextStartTime=0,this.pendingSources=[]});b(this,"getStream",()=>{var n;return(n=this.prAudioStream)==null?void 0:n.getStream()})}async push(n){try{if(!this.audioContext||!this.destination)return;const u=await J(this.audioContext,n);if(!u)return;const c=this.audioContext.createBufferSource();c.buffer=u,c.connect(this.destination);const o=Math.max(this.nextStartTime,this.audioContext.currentTime);this.nextStartTime=o+u.duration,c.start(o),this.pendingSources.push(c),c.onended=()=>{this.pendingSources=this.pendingSources.filter(r=>r!==c)},this.audioContext.state==="suspended"&&await this.audioContext.resume()}finally{n.close()}}destroy(){var n,u;(n=this.audioContext)==null||n.close(),this.audioContext=void 0,this.destination=void 0,this.nextStartTime=0,(u=this.prAudioStream)==null||u.stop(),this.pendingSources.forEach(c=>c.stop()),this.pendingSources=[]}}class Y{constructor(n={}){P(this,T,{timeout:5*1e3});P(this,k);b(this,"check",(n,u)=>new Promise(async(c,o)=>{var i;this.stop(),C(this,k,new AbortController);const r=window.setTimeout(()=>{var e;(e=S(this,k))==null||e.abort("Timeout."),o({status:"timeout",reason:""})},S(this,T).timeout);try{const e=await fetch(n,{...u,method:"HEAD",signal:(i=S(this,k))==null?void 0:i.signal});e.status===200?c({status:"successed",reason:""}):o({status:"failed",reason:`${e.status}`})}catch(e){o({status:"error",reason:e.message})}clearTimeout(r)}));b(this,"request",async(n,u)=>new Promise(async(c,o)=>{var r;try{await this.check(n,u),C(this,k,new AbortController);const i=await fetch(n,{...u,signal:(r=S(this,k))==null?void 0:r.signal});c(i)}catch(i){this.stop(),o(i)}}));b(this,"stop",()=>{var n;((n=S(this,k))==null?void 0:n.signal.aborted)===!1&&S(this,k).abort("Actively stop.")});C(this,T,{...S(this,T),...n})}}T=new WeakMap,k=new WeakMap;const O=f=>{const n=(f==null?void 0:f.getTracks())||[];for(const u of n)u.stop()},G=f=>{const n=new $,u=document.createElement("canvas"),c=u.transferControlToOffscreen(),o=new MediaStreamTrackGenerator({kind:"video"}),r=new MediaStream([o]),i=()=>{n.destroy(),O(r)};return n.init({offscreenCanvas:c,baseTime:f,writable:o.writable}),{worker:n,canvas:u,stream:r,destroy:i}};class be{constructor(){b(this,"prFetch",new Y);b(this,"demuxerWorker");b(this,"decoderWorker");b(this,"audioPlayer");b(this,"renderWorker");b(this,"renderBaseTime",0);b(this,"stream");b(this,"canvas");b(this,"on",{demuxer:{},decoder:{}});b(this,"cutRenders",new Map);b(this,"trackGenerator");b(this,"init",()=>{this.initDemuxer(),this.initDecoder(),this.audioPlayer=new X,this.audioPlayer.init(),this.initRender()});b(this,"start",async n=>(this.stop(),this.renderBaseTime=new Date().getTime(),this.init(),this.prFetch.request(n).then(async u=>{var r;const c=(r=u.body)==null?void 0:r.getReader();if(!c)throw new Error("Reader is error.");const o=()=>{c.read().then(({done:i,value:e})=>{var t;e&&((t=this.demuxerWorker)==null||t.push(e)),!i&&o()}).catch(i=>{if(i.name!=="AbortError")throw i})};o()}).catch(u=>{console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe: err",u)})));b(this,"stop",async()=>{var u,c,o,r;try{this.prFetch.stop()}catch(i){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe: error",i)}(u=this.demuxerWorker)==null||u.destroy(),(c=this.decoderWorker)==null||c.destroy(),(o=this.renderWorker)==null||o.destroy(),O(this.stream);const n=[...this.cutRenders.keys()];for(const i of n)this.cut.remove(i);(r=this.audioPlayer)==null||r.destroy(),this.renderBaseTime=0,this.canvas=void 0});b(this,"onTag",n=>{var i;if(!this.decoderWorker)return;const{header:u,body:c}=n,{tagType:o,timestamp:r}=u;switch(o){case"script":{const{width:e,height:t}=c;(i=this.renderWorker)==null||i.setSize({width:e,height:t}),this.on.demuxer.script&&this.on.demuxer.script(n)}break;case"audio":{const{accPacketType:e,data:t}=c;if(e===0){const{codec:s,sampleRate:l,channelConfiguration:a}=c,d={codec:s,sampleRate:l,numberOfChannels:a,description:new Uint8Array([])};this.decoderWorker.audio.init(d)}else e===1&&this.decoderWorker.audio.decode({type:"key",timestamp:r*1,data:t});this.on.demuxer.audio&&this.on.demuxer.audio(n)}break;case"video":{const{avcPacketType:e,frameType:t,data:s,nalus:l=[]}=c;if(e===0){const{codec:a,data:d}=c;this.decoderWorker.video.init({codec:a,description:d})}else if(e===1){const a=t===1?"key":"delta";this.decoderWorker.video.decode({type:a,timestamp:r*1e3,data:s});for(const d of l){const{header:y,payload:p}=d,{nal_unit_type:w}=y;w===6&&this.on.demuxer.sei&&this.on.demuxer.sei(p)}}this.on.demuxer.video&&this.on.demuxer.video(n)}break}});b(this,"initDemuxer",()=>{this.demuxerWorker=new _,this.demuxerWorker.init(),this.demuxerWorker.on.tag=this.onTag});b(this,"initDecoder",()=>{this.decoderWorker=new j,this.decoderWorker.on.audio.decode=n=>{var u;(u=this.audioPlayer)==null||u.push(n),this.on.decoder.audio&&this.on.decoder.audio(n)},this.decoderWorker.on.audio.error=n=>{this.stop(),this.on.error&&this.on.error(n)},this.decoderWorker.on.video.decode=async n=>{var c,o;(c=this.renderWorker)==null||c.push(n);const u=[...this.cutRenders.keys()];for(const r of u)(o=this.cutRenders.get(r))==null||o.worker.push(n);this.on.decoder.video&&this.on.decoder.video(n),n.bitmap.close()},this.decoderWorker.on.video.error=n=>{this.stop(),this.on.error&&this.on.error(n)}});b(this,"initRender",()=>{const{worker:n,canvas:u,stream:c}=G(this.renderBaseTime);this.renderWorker=n,this.canvas=u,this.stream=c,this.renderWorker.setPause(!1)});b(this,"getCanvas",()=>this.canvas);b(this,"getStream",()=>this.stream);b(this,"setPause",n=>{var u;(u=this.renderWorker)==null||u.setPause(n)});b(this,"setShader",n=>{var u;(u=this.renderWorker)==null||u.setShader(n)});b(this,"setMute",n=>{var u,c;return(c=(u=this.audioPlayer)==null?void 0:u.prAudioStream)==null?void 0:c.setMute(n)});b(this,"cut",{create:(n,u)=>{let c=this.cutRenders.get(n);return c?(c.worker.setCut(u),c.worker.setPause(!1),c):(c=G(this.renderBaseTime),c.worker.setCut(u),this.cutRenders.set(n,c),c)},getCanvas:n=>{var u;return(u=this.cutRenders.get(n))==null?void 0:u.canvas},getStream:n=>{var u;return(u=this.cutRenders.get(n))==null?void 0:u.stream},setPause:(n,u)=>{var c;(c=this.cutRenders.get(n))==null||c.worker.setPause(u)},setShader:(n,u)=>{var c;(c=this.cutRenders.get(n))==null||c.worker.setShader(u)},remove:n=>{var u;(u=this.cutRenders.get(n))==null||u.destroy(),this.cutRenders.delete(n)}})}}new TextDecoder("utf-8");var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},indexMinimal={},minimal$1={},aspromise,hasRequiredAspromise;function requireAspromise(){if(hasRequiredAspromise)return aspromise;hasRequiredAspromise=1,aspromise=f;function f(n,u){for(var c=new Array(arguments.length-1),o=0,r=2,i=!0;r<arguments.length;)c[o++]=arguments[r++];return new Promise(function(t,s){c[o]=function(a){if(i)if(i=!1,a)s(a);else{for(var d=new Array(arguments.length-1),y=0;y<d.length;)d[y++]=arguments[y];t.apply(null,d)}};try{n.apply(u||null,c)}catch(l){i&&(i=!1,s(l))}})}return aspromise}var base64={},hasRequiredBase64;function requireBase64(){return hasRequiredBase64||(hasRequiredBase64=1,function(f){var n=f;n.length=function(e){var t=e.length;if(!t)return 0;for(var s=0;--t%4>1&&e.charAt(t)==="=";)++s;return Math.ceil(e.length*3)/4-s};for(var u=new Array(64),c=new Array(123),o=0;o<64;)c[u[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;n.encode=function(e,t,s){for(var l=null,a=[],d=0,y=0,p;t<s;){var w=e[t++];switch(y){case 0:a[d++]=u[w>>2],p=(w&3)<<4,y=1;break;case 1:a[d++]=u[p|w>>4],p=(w&15)<<2,y=2;break;case 2:a[d++]=u[p|w>>6],a[d++]=u[w&63],y=0;break}d>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,a)),d=0)}return y&&(a[d++]=u[p],a[d++]=61,y===1&&(a[d++]=61)),l?(d&&l.push(String.fromCharCode.apply(String,a.slice(0,d))),l.join("")):String.fromCharCode.apply(String,a.slice(0,d))};var r="invalid encoding";n.decode=function(e,t,s){for(var l=s,a=0,d,y=0;y<e.length;){var p=e.charCodeAt(y++);if(p===61&&a>1)break;if((p=c[p])===void 0)throw Error(r);switch(a){case 0:d=p,a=1;break;case 1:t[s++]=d<<2|(p&48)>>4,d=p,a=2;break;case 2:t[s++]=(d&15)<<4|(p&60)>>2,d=p,a=3;break;case 3:t[s++]=(d&3)<<6|p,a=0;break}}if(a===1)throw Error(r);return s-l},n.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}}(base64)),base64}var eventemitter,hasRequiredEventemitter;function requireEventemitter(){if(hasRequiredEventemitter)return eventemitter;hasRequiredEventemitter=1,eventemitter=f;function f(){this._listeners={}}return f.prototype.on=function(u,c,o){return(this._listeners[u]||(this._listeners[u]=[])).push({fn:c,ctx:o||this}),this},f.prototype.off=function(u,c){if(u===void 0)this._listeners={};else if(c===void 0)this._listeners[u]=[];else for(var o=this._listeners[u],r=0;r<o.length;)o[r].fn===c?o.splice(r,1):++r;return this},f.prototype.emit=function(u){var c=this._listeners[u];if(c){for(var o=[],r=1;r<arguments.length;)o.push(arguments[r++]);for(r=0;r<c.length;)c[r].fn.apply(c[r++].ctx,o)}return this},eventemitter}var float,hasRequiredFloat;function requireFloat(){if(hasRequiredFloat)return float;hasRequiredFloat=1,float=f(f);function f(r){return typeof Float32Array<"u"?function(){var i=new Float32Array([-0]),e=new Uint8Array(i.buffer),t=e[3]===128;function s(y,p,w){i[0]=y,p[w]=e[0],p[w+1]=e[1],p[w+2]=e[2],p[w+3]=e[3]}function l(y,p,w){i[0]=y,p[w]=e[3],p[w+1]=e[2],p[w+2]=e[1],p[w+3]=e[0]}r.writeFloatLE=t?s:l,r.writeFloatBE=t?l:s;function a(y,p){return e[0]=y[p],e[1]=y[p+1],e[2]=y[p+2],e[3]=y[p+3],i[0]}function d(y,p){return e[3]=y[p],e[2]=y[p+1],e[1]=y[p+2],e[0]=y[p+3],i[0]}r.readFloatLE=t?a:d,r.readFloatBE=t?d:a}():function(){function i(t,s,l,a){var d=s<0?1:0;if(d&&(s=-s),s===0)t(1/s>0?0:2147483648,l,a);else if(isNaN(s))t(2143289344,l,a);else if(s>34028234663852886e22)t((d<<31|2139095040)>>>0,l,a);else if(s<11754943508222875e-54)t((d<<31|Math.round(s/1401298464324817e-60))>>>0,l,a);else{var y=Math.floor(Math.log(s)/Math.LN2),p=Math.round(s*Math.pow(2,-y)*8388608)&8388607;t((d<<31|y+127<<23|p)>>>0,l,a)}}r.writeFloatLE=i.bind(null,n),r.writeFloatBE=i.bind(null,u);function e(t,s,l){var a=t(s,l),d=(a>>31)*2+1,y=a>>>23&255,p=a&8388607;return y===255?p?NaN:d*(1/0):y===0?d*1401298464324817e-60*p:d*Math.pow(2,y-150)*(p+8388608)}r.readFloatLE=e.bind(null,c),r.readFloatBE=e.bind(null,o)}(),typeof Float64Array<"u"?function(){var i=new Float64Array([-0]),e=new Uint8Array(i.buffer),t=e[7]===128;function s(y,p,w){i[0]=y,p[w]=e[0],p[w+1]=e[1],p[w+2]=e[2],p[w+3]=e[3],p[w+4]=e[4],p[w+5]=e[5],p[w+6]=e[6],p[w+7]=e[7]}function l(y,p,w){i[0]=y,p[w]=e[7],p[w+1]=e[6],p[w+2]=e[5],p[w+3]=e[4],p[w+4]=e[3],p[w+5]=e[2],p[w+6]=e[1],p[w+7]=e[0]}r.writeDoubleLE=t?s:l,r.writeDoubleBE=t?l:s;function a(y,p){return e[0]=y[p],e[1]=y[p+1],e[2]=y[p+2],e[3]=y[p+3],e[4]=y[p+4],e[5]=y[p+5],e[6]=y[p+6],e[7]=y[p+7],i[0]}function d(y,p){return e[7]=y[p],e[6]=y[p+1],e[5]=y[p+2],e[4]=y[p+3],e[3]=y[p+4],e[2]=y[p+5],e[1]=y[p+6],e[0]=y[p+7],i[0]}r.readDoubleLE=t?a:d,r.readDoubleBE=t?d:a}():function(){function i(t,s,l,a,d,y){var p=a<0?1:0;if(p&&(a=-a),a===0)t(0,d,y+s),t(1/a>0?0:2147483648,d,y+l);else if(isNaN(a))t(0,d,y+s),t(2146959360,d,y+l);else if(a>17976931348623157e292)t(0,d,y+s),t((p<<31|2146435072)>>>0,d,y+l);else{var w;if(a<22250738585072014e-324)w=a/5e-324,t(w>>>0,d,y+s),t((p<<31|w/4294967296)>>>0,d,y+l);else{var v=Math.floor(Math.log(a)/Math.LN2);v===1024&&(v=1023),w=a*Math.pow(2,-v),t(w*4503599627370496>>>0,d,y+s),t((p<<31|v+1023<<20|w*1048576&1048575)>>>0,d,y+l)}}}r.writeDoubleLE=i.bind(null,n,0,4),r.writeDoubleBE=i.bind(null,u,4,0);function e(t,s,l,a,d){var y=t(a,d+s),p=t(a,d+l),w=(p>>31)*2+1,v=p>>>20&2047,m=4294967296*(p&1048575)+y;return v===2047?m?NaN:w*(1/0):v===0?w*5e-324*m:w*Math.pow(2,v-1075)*(m+4503599627370496)}r.readDoubleLE=e.bind(null,c,0,4),r.readDoubleBE=e.bind(null,o,4,0)}(),r}function n(r,i,e){i[e]=r&255,i[e+1]=r>>>8&255,i[e+2]=r>>>16&255,i[e+3]=r>>>24}function u(r,i,e){i[e]=r>>>24,i[e+1]=r>>>16&255,i[e+2]=r>>>8&255,i[e+3]=r&255}function c(r,i){return(r[i]|r[i+1]<<8|r[i+2]<<16|r[i+3]<<24)>>>0}function o(r,i){return(r[i]<<24|r[i+1]<<16|r[i+2]<<8|r[i+3])>>>0}return float}var inquire_1,hasRequiredInquire;function requireInquire(){if(hasRequiredInquire)return inquire_1;hasRequiredInquire=1,inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(f){}return null}return inquire_1}var utf8={},hasRequiredUtf8;function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(f){var n=f;n.length=function(c){for(var o=0,r=0,i=0;i<c.length;++i)r=c.charCodeAt(i),r<128?o+=1:r<2048?o+=2:(r&64512)===55296&&(c.charCodeAt(i+1)&64512)===56320?(++i,o+=4):o+=3;return o},n.read=function(c,o,r){var i=r-o;if(i<1)return"";for(var e=null,t=[],s=0,l;o<r;)l=c[o++],l<128?t[s++]=l:l>191&&l<224?t[s++]=(l&31)<<6|c[o++]&63:l>239&&l<365?(l=((l&7)<<18|(c[o++]&63)<<12|(c[o++]&63)<<6|c[o++]&63)-65536,t[s++]=55296+(l>>10),t[s++]=56320+(l&1023)):t[s++]=(l&15)<<12|(c[o++]&63)<<6|c[o++]&63,s>8191&&((e||(e=[])).push(String.fromCharCode.apply(String,t)),s=0);return e?(s&&e.push(String.fromCharCode.apply(String,t.slice(0,s))),e.join("")):String.fromCharCode.apply(String,t.slice(0,s))},n.write=function(c,o,r){for(var i=r,e,t,s=0;s<c.length;++s)e=c.charCodeAt(s),e<128?o[r++]=e:e<2048?(o[r++]=e>>6|192,o[r++]=e&63|128):(e&64512)===55296&&((t=c.charCodeAt(s+1))&64512)===56320?(e=65536+((e&1023)<<10)+(t&1023),++s,o[r++]=e>>18|240,o[r++]=e>>12&63|128,o[r++]=e>>6&63|128,o[r++]=e&63|128):(o[r++]=e>>12|224,o[r++]=e>>6&63|128,o[r++]=e&63|128);return r-i}}(utf8)),utf8}var pool_1,hasRequiredPool;function requirePool(){if(hasRequiredPool)return pool_1;hasRequiredPool=1,pool_1=f;function f(n,u,c){var o=c||8192,r=o>>>1,i=null,e=o;return function(s){if(s<1||s>r)return n(s);e+s>o&&(i=n(o),e=0);var l=u.call(i,e,e+=s);return e&7&&(e=(e|7)+1),l}}return pool_1}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=n;var f=requireMinimal$1();function n(r,i){this.lo=r>>>0,this.hi=i>>>0}var u=n.zero=new n(0,0);u.toNumber=function(){return 0},u.zzEncode=u.zzDecode=function(){return this},u.length=function(){return 1};var c=n.zeroHash="\0\0\0\0\0\0\0\0";n.fromNumber=function(i){if(i===0)return u;var e=i<0;e&&(i=-i);var t=i>>>0,s=(i-t)/4294967296>>>0;return e&&(s=~s>>>0,t=~t>>>0,++t>4294967295&&(t=0,++s>4294967295&&(s=0))),new n(t,s)},n.from=function(i){if(typeof i=="number")return n.fromNumber(i);if(f.isString(i))if(f.Long)i=f.Long.fromString(i);else return n.fromNumber(parseInt(i,10));return i.low||i.high?new n(i.low>>>0,i.high>>>0):u},n.prototype.toNumber=function(i){if(!i&&this.hi>>>31){var e=~this.lo+1>>>0,t=~this.hi>>>0;return e||(t=t+1>>>0),-(e+t*4294967296)}return this.lo+this.hi*4294967296},n.prototype.toLong=function(i){return f.Long?new f.Long(this.lo|0,this.hi|0,!!i):{low:this.lo|0,high:this.hi|0,unsigned:!!i}};var o=String.prototype.charCodeAt;return n.fromHash=function(i){return i===c?u:new n((o.call(i,0)|o.call(i,1)<<8|o.call(i,2)<<16|o.call(i,3)<<24)>>>0,(o.call(i,4)|o.call(i,5)<<8|o.call(i,6)<<16|o.call(i,7)<<24)>>>0)},n.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},n.prototype.zzEncode=function(){var i=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^i)>>>0,this.lo=(this.lo<<1^i)>>>0,this},n.prototype.zzDecode=function(){var i=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^i)>>>0,this.hi=(this.hi>>>1^i)>>>0,this},n.prototype.length=function(){var i=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,t=this.hi>>>24;return t===0?e===0?i<16384?i<128?1:2:i<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:t<128?9:10},longbits}var hasRequiredMinimal$1;function requireMinimal$1(){return hasRequiredMinimal$1||(hasRequiredMinimal$1=1,function(f){var n=f;n.asPromise=requireAspromise(),n.base64=requireBase64(),n.EventEmitter=requireEventemitter(),n.float=requireFloat(),n.inquire=requireInquire(),n.utf8=requireUtf8(),n.pool=requirePool(),n.LongBits=requireLongbits(),n.isNode=!!(typeof commonjsGlobal<"u"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),n.global=n.isNode&&commonjsGlobal||typeof window<"u"&&window||typeof self<"u"&&self||minimal$1,n.emptyArray=Object.freeze?Object.freeze([]):[],n.emptyObject=Object.freeze?Object.freeze({}):{},n.isInteger=Number.isInteger||function(r){return typeof r=="number"&&isFinite(r)&&Math.floor(r)===r},n.isString=function(r){return typeof r=="string"||r instanceof String},n.isObject=function(r){return r&&typeof r=="object"},n.isset=n.isSet=function(r,i){var e=r[i];return e!=null&&r.hasOwnProperty(i)?typeof e!="object"||(Array.isArray(e)?e.length:Object.keys(e).length)>0:!1},n.Buffer=function(){try{var o=n.inquire("buffer").Buffer;return o.prototype.utf8Write?o:null}catch{return null}}(),n._Buffer_from=null,n._Buffer_allocUnsafe=null,n.newBuffer=function(r){return typeof r=="number"?n.Buffer?n._Buffer_allocUnsafe(r):new n.Array(r):n.Buffer?n._Buffer_from(r):typeof Uint8Array>"u"?r:new Uint8Array(r)},n.Array=typeof Uint8Array<"u"?Uint8Array:Array,n.Long=n.global.dcodeIO&&n.global.dcodeIO.Long||n.global.Long||n.inquire("long"),n.key2Re=/^true|false|0|1$/,n.key32Re=/^-?(?:0|[1-9][0-9]*)$/,n.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,n.longToHash=function(r){return r?n.LongBits.from(r).toHash():n.LongBits.zeroHash},n.longFromHash=function(r,i){var e=n.LongBits.fromHash(r);return n.Long?n.Long.fromBits(e.lo,e.hi,i):e.toNumber(!!i)};function u(o,r,i){for(var e=Object.keys(r),t=0;t<e.length;++t)(o[e[t]]===void 0||!i)&&(o[e[t]]=r[e[t]]);return o}n.merge=u,n.lcFirst=function(r){return r.charAt(0).toLowerCase()+r.substring(1)};function c(o){function r(i,e){if(!(this instanceof r))return new r(i,e);Object.defineProperty(this,"message",{get:function(){return i}}),Error.captureStackTrace?Error.captureStackTrace(this,r):Object.defineProperty(this,"stack",{value:new Error().stack||""}),e&&u(this,e)}return r.prototype=Object.create(Error.prototype,{constructor:{value:r,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return o},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),r}n.newError=c,n.ProtocolError=c("ProtocolError"),n.oneOfGetter=function(r){for(var i={},e=0;e<r.length;++e)i[r[e]]=1;return function(){for(var t=Object.keys(this),s=t.length-1;s>-1;--s)if(i[t[s]]===1&&this[t[s]]!==void 0&&this[t[s]]!==null)return t[s]}},n.oneOfSetter=function(r){return function(i){for(var e=0;e<r.length;++e)r[e]!==i&&delete this[r[e]]}},n.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},n._configure=function(){var o=n.Buffer;if(!o){n._Buffer_from=n._Buffer_allocUnsafe=null;return}n._Buffer_from=o.from!==Uint8Array.from&&o.from||function(i,e){return new o(i,e)},n._Buffer_allocUnsafe=o.allocUnsafe||function(i){return new o(i)}}}(minimal$1)),minimal$1}var writer,hasRequiredWriter;function requireWriter(){if(hasRequiredWriter)return writer;hasRequiredWriter=1,writer=t;var f=requireMinimal$1(),n,u=f.LongBits,c=f.base64,o=f.utf8;function r(v,m,g){this.fn=v,this.len=m,this.next=void 0,this.val=g}function i(){}function e(v){this.head=v.head,this.tail=v.tail,this.len=v.len,this.next=v.states}function t(){this.len=0,this.head=new r(i,0,0),this.tail=this.head,this.states=null}var s=function(){return f.Buffer?function(){return(t.create=function(){return new n})()}:function(){return new t}};t.create=s(),t.alloc=function(m){return new f.Array(m)},f.Array!==Array&&(t.alloc=f.pool(t.alloc,f.Array.prototype.subarray)),t.prototype._push=function(m,g,x){return this.tail=this.tail.next=new r(m,g,x),this.len+=g,this};function l(v,m,g){m[g]=v&255}function a(v,m,g){for(;v>127;)m[g++]=v&127|128,v>>>=7;m[g]=v}function d(v,m){this.len=v,this.next=void 0,this.val=m}d.prototype=Object.create(r.prototype),d.prototype.fn=a,t.prototype.uint32=function(m){return this.len+=(this.tail=this.tail.next=new d((m=m>>>0)<128?1:m<16384?2:m<2097152?3:m<268435456?4:5,m)).len,this},t.prototype.int32=function(m){return m<0?this._push(y,10,u.fromNumber(m)):this.uint32(m)},t.prototype.sint32=function(m){return this.uint32((m<<1^m>>31)>>>0)};function y(v,m,g){for(;v.hi;)m[g++]=v.lo&127|128,v.lo=(v.lo>>>7|v.hi<<25)>>>0,v.hi>>>=7;for(;v.lo>127;)m[g++]=v.lo&127|128,v.lo=v.lo>>>7;m[g++]=v.lo}t.prototype.uint64=function(m){var g=u.from(m);return this._push(y,g.length(),g)},t.prototype.int64=t.prototype.uint64,t.prototype.sint64=function(m){var g=u.from(m).zzEncode();return this._push(y,g.length(),g)},t.prototype.bool=function(m){return this._push(l,1,m?1:0)};function p(v,m,g){m[g]=v&255,m[g+1]=v>>>8&255,m[g+2]=v>>>16&255,m[g+3]=v>>>24}t.prototype.fixed32=function(m){return this._push(p,4,m>>>0)},t.prototype.sfixed32=t.prototype.fixed32,t.prototype.fixed64=function(m){var g=u.from(m);return this._push(p,4,g.lo)._push(p,4,g.hi)},t.prototype.sfixed64=t.prototype.fixed64,t.prototype.float=function(m){return this._push(f.float.writeFloatLE,4,m)},t.prototype.double=function(m){return this._push(f.float.writeDoubleLE,8,m)};var w=f.Array.prototype.set?function(m,g,x){g.set(m,x)}:function(m,g,x){for(var I=0;I<m.length;++I)g[x+I]=m[I]};return t.prototype.bytes=function(m){var g=m.length>>>0;if(!g)return this._push(l,1,0);if(f.isString(m)){var x=t.alloc(g=c.length(m));c.decode(m,x,0),m=x}return this.uint32(g)._push(w,g,m)},t.prototype.string=function(m){var g=o.length(m);return g?this.uint32(g)._push(o.write,g,m):this._push(l,1,0)},t.prototype.fork=function(){return this.states=new e(this),this.head=this.tail=new r(i,0,0),this.len=0,this},t.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new r(i,0,0),this.len=0),this},t.prototype.ldelim=function(){var m=this.head,g=this.tail,x=this.len;return this.reset().uint32(x),x&&(this.tail.next=m.next,this.tail=g,this.len+=x),this},t.prototype.finish=function(){for(var m=this.head.next,g=this.constructor.alloc(this.len),x=0;m;)m.fn(m.val,g,x),x+=m.len,m=m.next;return g},t._configure=function(v){n=v,t.create=s(),n._configure()},writer}var writer_buffer,hasRequiredWriter_buffer;function requireWriter_buffer(){if(hasRequiredWriter_buffer)return writer_buffer;hasRequiredWriter_buffer=1,writer_buffer=u;var f=requireWriter();(u.prototype=Object.create(f.prototype)).constructor=u;var n=requireMinimal$1();function u(){f.call(this)}u._configure=function(){u.alloc=n._Buffer_allocUnsafe,u.writeBytesBuffer=n.Buffer&&n.Buffer.prototype instanceof Uint8Array&&n.Buffer.prototype.set.name==="set"?function(r,i,e){i.set(r,e)}:function(r,i,e){if(r.copy)r.copy(i,e,0,r.length);else for(var t=0;t<r.length;)i[e++]=r[t++]}},u.prototype.bytes=function(r){n.isString(r)&&(r=n._Buffer_from(r,"base64"));var i=r.length>>>0;return this.uint32(i),i&&this._push(u.writeBytesBuffer,i,r),this};function c(o,r,i){o.length<40?n.utf8.write(o,r,i):r.utf8Write?r.utf8Write(o,i):r.write(o,i)}return u.prototype.string=function(r){var i=n.Buffer.byteLength(r);return this.uint32(i),i&&this._push(c,i,r),this},u._configure(),writer_buffer}var reader,hasRequiredReader;function requireReader(){if(hasRequiredReader)return reader;hasRequiredReader=1,reader=r;var f=requireMinimal$1(),n,u=f.LongBits,c=f.utf8;function o(a,d){return RangeError("index out of range: "+a.pos+" + "+(d||1)+" > "+a.len)}function r(a){this.buf=a,this.pos=0,this.len=a.length}var i=typeof Uint8Array<"u"?function(d){if(d instanceof Uint8Array||Array.isArray(d))return new r(d);throw Error("illegal buffer")}:function(d){if(Array.isArray(d))return new r(d);throw Error("illegal buffer")},e=function(){return f.Buffer?function(y){return(r.create=function(w){return f.Buffer.isBuffer(w)?new n(w):i(w)})(y)}:i};r.create=e(),r.prototype._slice=f.Array.prototype.subarray||f.Array.prototype.slice,r.prototype.uint32=function(){var d=4294967295;return function(){if(d=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(d=(d|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(d=(d|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(d=(d|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(d=(d|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return d;if((this.pos+=5)>this.len)throw this.pos=this.len,o(this,10);return d}}(),r.prototype.int32=function(){return this.uint32()|0},r.prototype.sint32=function(){var d=this.uint32();return d>>>1^-(d&1)|0};function t(){var a=new u(0,0),d=0;if(this.len-this.pos>4){for(;d<4;++d)if(a.lo=(a.lo|(this.buf[this.pos]&127)<<d*7)>>>0,this.buf[this.pos++]<128)return a;if(a.lo=(a.lo|(this.buf[this.pos]&127)<<28)>>>0,a.hi=(a.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return a;d=0}else{for(;d<3;++d){if(this.pos>=this.len)throw o(this);if(a.lo=(a.lo|(this.buf[this.pos]&127)<<d*7)>>>0,this.buf[this.pos++]<128)return a}return a.lo=(a.lo|(this.buf[this.pos++]&127)<<d*7)>>>0,a}if(this.len-this.pos>4){for(;d<5;++d)if(a.hi=(a.hi|(this.buf[this.pos]&127)<<d*7+3)>>>0,this.buf[this.pos++]<128)return a}else for(;d<5;++d){if(this.pos>=this.len)throw o(this);if(a.hi=(a.hi|(this.buf[this.pos]&127)<<d*7+3)>>>0,this.buf[this.pos++]<128)return a}throw Error("invalid varint encoding")}r.prototype.bool=function(){return this.uint32()!==0};function s(a,d){return(a[d-4]|a[d-3]<<8|a[d-2]<<16|a[d-1]<<24)>>>0}r.prototype.fixed32=function(){if(this.pos+4>this.len)throw o(this,4);return s(this.buf,this.pos+=4)},r.prototype.sfixed32=function(){if(this.pos+4>this.len)throw o(this,4);return s(this.buf,this.pos+=4)|0};function l(){if(this.pos+8>this.len)throw o(this,8);return new u(s(this.buf,this.pos+=4),s(this.buf,this.pos+=4))}return r.prototype.float=function(){if(this.pos+4>this.len)throw o(this,4);var d=f.float.readFloatLE(this.buf,this.pos);return this.pos+=4,d},r.prototype.double=function(){if(this.pos+8>this.len)throw o(this,4);var d=f.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,d},r.prototype.bytes=function(){var d=this.uint32(),y=this.pos,p=this.pos+d;if(p>this.len)throw o(this,d);if(this.pos+=d,Array.isArray(this.buf))return this.buf.slice(y,p);if(y===p){var w=f.Buffer;return w?w.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,y,p)},r.prototype.string=function(){var d=this.bytes();return c.read(d,0,d.length)},r.prototype.skip=function(d){if(typeof d=="number"){if(this.pos+d>this.len)throw o(this,d);this.pos+=d}else do if(this.pos>=this.len)throw o(this);while(this.buf[this.pos++]&128);return this},r.prototype.skipType=function(a){switch(a){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(a=this.uint32()&7)!==4;)this.skipType(a);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+a+" at offset "+this.pos)}return this},r._configure=function(a){n=a,r.create=e(),n._configure();var d=f.Long?"toLong":"toNumber";f.merge(r.prototype,{int64:function(){return t.call(this)[d](!1)},uint64:function(){return t.call(this)[d](!0)},sint64:function(){return t.call(this).zzDecode()[d](!1)},fixed64:function(){return l.call(this)[d](!0)},sfixed64:function(){return l.call(this)[d](!1)}})},reader}var reader_buffer,hasRequiredReader_buffer;function requireReader_buffer(){if(hasRequiredReader_buffer)return reader_buffer;hasRequiredReader_buffer=1,reader_buffer=u;var f=requireReader();(u.prototype=Object.create(f.prototype)).constructor=u;var n=requireMinimal$1();function u(c){f.call(this,c)}return u._configure=function(){n.Buffer&&(u.prototype._slice=n.Buffer.prototype.slice)},u.prototype.string=function(){var o=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+o,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+o,this.len))},u._configure(),reader_buffer}var rpc={},service,hasRequiredService;function requireService(){if(hasRequiredService)return service;hasRequiredService=1,service=n;var f=requireMinimal$1();(n.prototype=Object.create(f.EventEmitter.prototype)).constructor=n;function n(u,c,o){if(typeof u!="function")throw TypeError("rpcImpl must be a function");f.EventEmitter.call(this),this.rpcImpl=u,this.requestDelimited=!!c,this.responseDelimited=!!o}return n.prototype.rpcCall=function u(c,o,r,i,e){if(!i)throw TypeError("request must be specified");var t=this;if(!e)return f.asPromise(u,t,c,o,r,i);if(!t.rpcImpl){setTimeout(function(){e(Error("already ended"))},0);return}try{return t.rpcImpl(c,o[t.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(l,a){if(l)return t.emit("error",l,c),e(l);if(a===null){t.end(!0);return}if(!(a instanceof r))try{a=r[t.responseDelimited?"decodeDelimited":"decode"](a)}catch(d){return t.emit("error",d,c),e(d)}return t.emit("data",a,c),e(null,a)})}catch(s){t.emit("error",s,c),setTimeout(function(){e(s)},0);return}},n.prototype.end=function(c){return this.rpcImpl&&(c||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},service}var hasRequiredRpc;function requireRpc(){return hasRequiredRpc||(hasRequiredRpc=1,function(f){var n=f;n.Service=requireService()}(rpc)),rpc}var roots,hasRequiredRoots;function requireRoots(){return hasRequiredRoots||(hasRequiredRoots=1,roots={}),roots}var hasRequiredIndexMinimal;function requireIndexMinimal(){return hasRequiredIndexMinimal||(hasRequiredIndexMinimal=1,function(f){var n=f;n.build="minimal",n.Writer=requireWriter(),n.BufferWriter=requireWriter_buffer(),n.Reader=requireReader(),n.BufferReader=requireReader_buffer(),n.util=requireMinimal$1(),n.rpc=requireRpc(),n.roots=requireRoots(),n.configure=u;function u(){n.util._configure(),n.Writer._configure(n.BufferWriter),n.Reader._configure(n.BufferReader)}u()}(indexMinimal)),indexMinimal}var minimal,hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,minimal=requireIndexMinimal()),minimal}var minimalExports=requireMinimal();const $Reader=minimalExports.Reader,$Writer=minimalExports.Writer,$util=minimalExports.util,$root=minimalExports.roots.default||(minimalExports.roots.default={}),com=$root.com=(()=>{const f={};return f.quick=function(){const n={};return n.voice=function(){const u={};return u.proto=function(){const c={};return c.SeiData=function(){function o(r){if(r)for(let i=Object.keys(r),e=0;e<i.length;++e)r[i[e]]!=null&&(this[i[e]]=r[i[e]])}return o.prototype.event=0,o.prototype.data=$util.newBuffer([]),o.prototype.compress=!1,o.prototype.version=0,o.create=function(i){return new o(i)},o.encode=function(i,e){return e||(e=$Writer.create()),i.event!=null&&Object.hasOwnProperty.call(i,"event")&&e.uint32(8).int32(i.event),i.data!=null&&Object.hasOwnProperty.call(i,"data")&&e.uint32(18).bytes(i.data),i.compress!=null&&Object.hasOwnProperty.call(i,"compress")&&e.uint32(24).bool(i.compress),i.version!=null&&Object.hasOwnProperty.call(i,"version")&&e.uint32(32).int32(i.version),e},o.encodeDelimited=function(i,e){return this.encode(i,e).ldelim()},o.decode=function(i,e,t){i instanceof $Reader||(i=$Reader.create(i));let s=e===void 0?i.len:i.pos+e,l=new $root.com.quick.voice.proto.SeiData;for(;i.pos<s;){let a=i.uint32();if(a===t)break;switch(a>>>3){case 1:{l.event=i.int32();break}case 2:{l.data=i.bytes();break}case 3:{l.compress=i.bool();break}case 4:{l.version=i.int32();break}default:i.skipType(a&7);break}}return l},o.decodeDelimited=function(i){return i instanceof $Reader||(i=new $Reader(i)),this.decode(i,i.uint32())},o.verify=function(i){if(typeof i!="object"||i===null)return"object expected";if(i.event!=null&&i.hasOwnProperty("event"))switch(i.event){default:return"event: enum value expected";case 0:case 1:break}return i.data!=null&&i.hasOwnProperty("data")&&!(i.data&&typeof i.data.length=="number"||$util.isString(i.data))?"data: buffer expected":i.compress!=null&&i.hasOwnProperty("compress")&&typeof i.compress!="boolean"?"compress: boolean expected":i.version!=null&&i.hasOwnProperty("version")&&!$util.isInteger(i.version)?"version: integer expected":null},o.fromObject=function(i){if(i instanceof $root.com.quick.voice.proto.SeiData)return i;let e=new $root.com.quick.voice.proto.SeiData;switch(i.event){default:if(typeof i.event=="number"){e.event=i.event;break}break;case"Layout":case 0:e.event=0;break;case"Custom":case 1:e.event=1;break}return i.data!=null&&(typeof i.data=="string"?$util.base64.decode(i.data,e.data=$util.newBuffer($util.base64.length(i.data)),0):i.data.length>=0&&(e.data=i.data)),i.compress!=null&&(e.compress=!!i.compress),i.version!=null&&(e.version=i.version|0),e},o.toObject=function(i,e){e||(e={});let t={};return e.defaults&&(t.event=e.enums===String?"Layout":0,e.bytes===String?t.data="":(t.data=[],e.bytes!==Array&&(t.data=$util.newBuffer(t.data))),t.compress=!1,t.version=0),i.event!=null&&i.hasOwnProperty("event")&&(t.event=e.enums===String?$root.com.quick.voice.proto.EventType[i.event]===void 0?i.event:$root.com.quick.voice.proto.EventType[i.event]:i.event),i.data!=null&&i.hasOwnProperty("data")&&(t.data=e.bytes===String?$util.base64.encode(i.data,0,i.data.length):e.bytes===Array?Array.prototype.slice.call(i.data):i.data),i.compress!=null&&i.hasOwnProperty("compress")&&(t.compress=i.compress),i.version!=null&&i.hasOwnProperty("version")&&(t.version=i.version),t},o.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},o.getTypeUrl=function(i){return i===void 0&&(i="type.googleapis.com"),i+"/com.quick.voice.proto.SeiData"},o}(),c.EventType=function(){const o={},r=Object.create(o);return r[o[0]="Layout"]=0,r[o[1]="Custom"]=1,r}(),c.LayoutData=function(){function o(i){if(this.userMap={},i)for(let e=Object.keys(i),t=0;t<e.length;++t)i[e[t]]!=null&&(this[e[t]]=i[e[t]])}o.prototype.roomId="",o.prototype.type=0,o.prototype.userMap=$util.emptyObject,o.prototype.globalCustom=null;let r;return Object.defineProperty(o.prototype,"_globalCustom",{get:$util.oneOfGetter(r=["globalCustom"]),set:$util.oneOfSetter(r)}),o.create=function(e){return new o(e)},o.encode=function(e,t){if(t||(t=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&t.uint32(10).string(e.roomId),e.type!=null&&Object.hasOwnProperty.call(e,"type")&&t.uint32(16).int32(e.type),e.userMap!=null&&Object.hasOwnProperty.call(e,"userMap"))for(let s=Object.keys(e.userMap),l=0;l<s.length;++l)t.uint32(26).fork().uint32(10).string(s[l]),$root.com.quick.voice.proto.UserInfo.encode(e.userMap[s[l]],t.uint32(18).fork()).ldelim().ldelim();return e.globalCustom!=null&&Object.hasOwnProperty.call(e,"globalCustom")&&$root.com.quick.voice.proto.CustomInfo.encode(e.globalCustom,t.uint32(34).fork()).ldelim(),t},o.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},o.decode=function(e,t,s){e instanceof $Reader||(e=$Reader.create(e));let l=t===void 0?e.len:e.pos+t,a=new $root.com.quick.voice.proto.LayoutData,d,y;for(;e.pos<l;){let p=e.uint32();if(p===s)break;switch(p>>>3){case 1:{a.roomId=e.string();break}case 2:{a.type=e.int32();break}case 3:{a.userMap===$util.emptyObject&&(a.userMap={});let w=e.uint32()+e.pos;for(d="",y=null;e.pos<w;){let v=e.uint32();switch(v>>>3){case 1:d=e.string();break;case 2:y=$root.com.quick.voice.proto.UserInfo.decode(e,e.uint32());break;default:e.skipType(v&7);break}}a.userMap[d]=y;break}case 4:{a.globalCustom=$root.com.quick.voice.proto.CustomInfo.decode(e,e.uint32());break}default:e.skipType(p&7);break}}return a},o.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},o.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:case 2:break}if(e.userMap!=null&&e.hasOwnProperty("userMap")){if(!$util.isObject(e.userMap))return"userMap: object expected";let t=Object.keys(e.userMap);for(let s=0;s<t.length;++s){let l=$root.com.quick.voice.proto.UserInfo.verify(e.userMap[t[s]]);if(l)return"userMap."+l}}if(e.globalCustom!=null&&e.hasOwnProperty("globalCustom")){let t=$root.com.quick.voice.proto.CustomInfo.verify(e.globalCustom);if(t)return"globalCustom."+t}return null},o.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.LayoutData)return e;let t=new $root.com.quick.voice.proto.LayoutData;switch(e.roomId!=null&&(t.roomId=String(e.roomId)),e.type){default:if(typeof e.type=="number"){t.type=e.type;break}break;case"AudioAndVideo":case 0:t.type=0;break;case"OnlyAudio":case 1:t.type=1;break;case"OnlyVideo":case 2:t.type=2;break}if(e.userMap){if(typeof e.userMap!="object")throw TypeError(".com.quick.voice.proto.LayoutData.userMap: object expected");t.userMap={};for(let s=Object.keys(e.userMap),l=0;l<s.length;++l){if(typeof e.userMap[s[l]]!="object")throw TypeError(".com.quick.voice.proto.LayoutData.userMap: object expected");t.userMap[s[l]]=$root.com.quick.voice.proto.UserInfo.fromObject(e.userMap[s[l]])}}if(e.globalCustom!=null){if(typeof e.globalCustom!="object")throw TypeError(".com.quick.voice.proto.LayoutData.globalCustom: object expected");t.globalCustom=$root.com.quick.voice.proto.CustomInfo.fromObject(e.globalCustom)}return t},o.toObject=function(e,t){t||(t={});let s={};(t.objects||t.defaults)&&(s.userMap={}),t.defaults&&(s.roomId="",s.type=t.enums===String?"AudioAndVideo":0),e.roomId!=null&&e.hasOwnProperty("roomId")&&(s.roomId=e.roomId),e.type!=null&&e.hasOwnProperty("type")&&(s.type=t.enums===String?$root.com.quick.voice.proto.LayoutType[e.type]===void 0?e.type:$root.com.quick.voice.proto.LayoutType[e.type]:e.type);let l;if(e.userMap&&(l=Object.keys(e.userMap)).length){s.userMap={};for(let a=0;a<l.length;++a)s.userMap[l[a]]=$root.com.quick.voice.proto.UserInfo.toObject(e.userMap[l[a]],t)}return e.globalCustom!=null&&e.hasOwnProperty("globalCustom")&&(s.globalCustom=$root.com.quick.voice.proto.CustomInfo.toObject(e.globalCustom,t),t.oneofs&&(s._globalCustom="globalCustom")),s},o.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},o.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.LayoutData"},o}(),c.UserInfo=function(){function o(i){if(this.audios=[],this.videos=[],i)for(let e=Object.keys(i),t=0;t<e.length;++t)i[e[t]]!=null&&(this[e[t]]=i[e[t]])}o.prototype.id="",o.prototype.audios=$util.emptyArray,o.prototype.videos=$util.emptyArray,o.prototype.custom=null;let r;return Object.defineProperty(o.prototype,"_custom",{get:$util.oneOfGetter(r=["custom"]),set:$util.oneOfSetter(r)}),o.create=function(e){return new o(e)},o.encode=function(e,t){if(t||(t=$Writer.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.audios!=null&&e.audios.length)for(let s=0;s<e.audios.length;++s)$root.com.quick.voice.proto.AudioInfo.encode(e.audios[s],t.uint32(18).fork()).ldelim();if(e.videos!=null&&e.videos.length)for(let s=0;s<e.videos.length;++s)$root.com.quick.voice.proto.VideoInfo.encode(e.videos[s],t.uint32(26).fork()).ldelim();return e.custom!=null&&Object.hasOwnProperty.call(e,"custom")&&$root.com.quick.voice.proto.CustomInfo.encode(e.custom,t.uint32(34).fork()).ldelim(),t},o.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},o.decode=function(e,t,s){e instanceof $Reader||(e=$Reader.create(e));let l=t===void 0?e.len:e.pos+t,a=new $root.com.quick.voice.proto.UserInfo;for(;e.pos<l;){let d=e.uint32();if(d===s)break;switch(d>>>3){case 1:{a.id=e.string();break}case 2:{a.audios&&a.audios.length||(a.audios=[]),a.audios.push($root.com.quick.voice.proto.AudioInfo.decode(e,e.uint32()));break}case 3:{a.videos&&a.videos.length||(a.videos=[]),a.videos.push($root.com.quick.voice.proto.VideoInfo.decode(e,e.uint32()));break}case 4:{a.custom=$root.com.quick.voice.proto.CustomInfo.decode(e,e.uint32());break}default:e.skipType(d&7);break}}return a},o.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},o.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.id!=null&&e.hasOwnProperty("id")&&!$util.isString(e.id))return"id: string expected";if(e.audios!=null&&e.hasOwnProperty("audios")){if(!Array.isArray(e.audios))return"audios: array expected";for(let t=0;t<e.audios.length;++t){let s=$root.com.quick.voice.proto.AudioInfo.verify(e.audios[t]);if(s)return"audios."+s}}if(e.videos!=null&&e.hasOwnProperty("videos")){if(!Array.isArray(e.videos))return"videos: array expected";for(let t=0;t<e.videos.length;++t){let s=$root.com.quick.voice.proto.VideoInfo.verify(e.videos[t]);if(s)return"videos."+s}}if(e.custom!=null&&e.hasOwnProperty("custom")){let t=$root.com.quick.voice.proto.CustomInfo.verify(e.custom);if(t)return"custom."+t}return null},o.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UserInfo)return e;let t=new $root.com.quick.voice.proto.UserInfo;if(e.id!=null&&(t.id=String(e.id)),e.audios){if(!Array.isArray(e.audios))throw TypeError(".com.quick.voice.proto.UserInfo.audios: array expected");t.audios=[];for(let s=0;s<e.audios.length;++s){if(typeof e.audios[s]!="object")throw TypeError(".com.quick.voice.proto.UserInfo.audios: object expected");t.audios[s]=$root.com.quick.voice.proto.AudioInfo.fromObject(e.audios[s])}}if(e.videos){if(!Array.isArray(e.videos))throw TypeError(".com.quick.voice.proto.UserInfo.videos: array expected");t.videos=[];for(let s=0;s<e.videos.length;++s){if(typeof e.videos[s]!="object")throw TypeError(".com.quick.voice.proto.UserInfo.videos: object expected");t.videos[s]=$root.com.quick.voice.proto.VideoInfo.fromObject(e.videos[s])}}if(e.custom!=null){if(typeof e.custom!="object")throw TypeError(".com.quick.voice.proto.UserInfo.custom: object expected");t.custom=$root.com.quick.voice.proto.CustomInfo.fromObject(e.custom)}return t},o.toObject=function(e,t){t||(t={});let s={};if((t.arrays||t.defaults)&&(s.audios=[],s.videos=[]),t.defaults&&(s.id=""),e.id!=null&&e.hasOwnProperty("id")&&(s.id=e.id),e.audios&&e.audios.length){s.audios=[];for(let l=0;l<e.audios.length;++l)s.audios[l]=$root.com.quick.voice.proto.AudioInfo.toObject(e.audios[l],t)}if(e.videos&&e.videos.length){s.videos=[];for(let l=0;l<e.videos.length;++l)s.videos[l]=$root.com.quick.voice.proto.VideoInfo.toObject(e.videos[l],t)}return e.custom!=null&&e.hasOwnProperty("custom")&&(s.custom=$root.com.quick.voice.proto.CustomInfo.toObject(e.custom,t),t.oneofs&&(s._custom="custom")),s},o.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},o.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UserInfo"},o}(),c.AudioInfo=function(){function o(i){if(i)for(let e=Object.keys(i),t=0;t<e.length;++t)i[e[t]]!=null&&(this[e[t]]=i[e[t]])}o.prototype.type=0,o.prototype.isEnable=!1,o.prototype.isMute=!1,o.prototype.volume=0,o.prototype.updateTime=null;let r;return Object.defineProperty(o.prototype,"_updateTime",{get:$util.oneOfGetter(r=["updateTime"]),set:$util.oneOfSetter(r)}),o.create=function(e){return new o(e)},o.encode=function(e,t){return t||(t=$Writer.create()),e.type!=null&&Object.hasOwnProperty.call(e,"type")&&t.uint32(8).int32(e.type),e.isEnable!=null&&Object.hasOwnProperty.call(e,"isEnable")&&t.uint32(16).bool(e.isEnable),e.isMute!=null&&Object.hasOwnProperty.call(e,"isMute")&&t.uint32(24).bool(e.isMute),e.volume!=null&&Object.hasOwnProperty.call(e,"volume")&&t.uint32(33).double(e.volume),e.updateTime!=null&&Object.hasOwnProperty.call(e,"updateTime")&&t.uint32(40).int64(e.updateTime),t},o.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},o.decode=function(e,t,s){e instanceof $Reader||(e=$Reader.create(e));let l=t===void 0?e.len:e.pos+t,a=new $root.com.quick.voice.proto.AudioInfo;for(;e.pos<l;){let d=e.uint32();if(d===s)break;switch(d>>>3){case 1:{a.type=e.int32();break}case 2:{a.isEnable=e.bool();break}case 3:{a.isMute=e.bool();break}case 4:{a.volume=e.double();break}case 5:{a.updateTime=e.int64();break}default:e.skipType(d&7);break}}return a},o.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},o.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:break}return e.isEnable!=null&&e.hasOwnProperty("isEnable")&&typeof e.isEnable!="boolean"?"isEnable: boolean expected":e.isMute!=null&&e.hasOwnProperty("isMute")&&typeof e.isMute!="boolean"?"isMute: boolean expected":e.volume!=null&&e.hasOwnProperty("volume")&&typeof e.volume!="number"?"volume: number expected":e.updateTime!=null&&e.hasOwnProperty("updateTime")&&!$util.isInteger(e.updateTime)&&!(e.updateTime&&$util.isInteger(e.updateTime.low)&&$util.isInteger(e.updateTime.high))?"updateTime: integer|Long expected":null},o.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.AudioInfo)return e;let t=new $root.com.quick.voice.proto.AudioInfo;switch(e.type){default:if(typeof e.type=="number"){t.type=e.type;break}break;case"Microphone":case 0:t.type=0;break;case"SystemVoice":case 1:t.type=1;break}return e.isEnable!=null&&(t.isEnable=!!e.isEnable),e.isMute!=null&&(t.isMute=!!e.isMute),e.volume!=null&&(t.volume=Number(e.volume)),e.updateTime!=null&&($util.Long?(t.updateTime=$util.Long.fromValue(e.updateTime)).unsigned=!1:typeof e.updateTime=="string"?t.updateTime=parseInt(e.updateTime,10):typeof e.updateTime=="number"?t.updateTime=e.updateTime:typeof e.updateTime=="object"&&(t.updateTime=new $util.LongBits(e.updateTime.low>>>0,e.updateTime.high>>>0).toNumber())),t},o.toObject=function(e,t){t||(t={});let s={};return t.defaults&&(s.type=t.enums===String?"Microphone":0,s.isEnable=!1,s.isMute=!1,s.volume=0),e.type!=null&&e.hasOwnProperty("type")&&(s.type=t.enums===String?$root.com.quick.voice.proto.AudioType[e.type]===void 0?e.type:$root.com.quick.voice.proto.AudioType[e.type]:e.type),e.isEnable!=null&&e.hasOwnProperty("isEnable")&&(s.isEnable=e.isEnable),e.isMute!=null&&e.hasOwnProperty("isMute")&&(s.isMute=e.isMute),e.volume!=null&&e.hasOwnProperty("volume")&&(s.volume=t.json&&!isFinite(e.volume)?String(e.volume):e.volume),e.updateTime!=null&&e.hasOwnProperty("updateTime")&&(typeof e.updateTime=="number"?s.updateTime=t.longs===String?String(e.updateTime):e.updateTime:s.updateTime=t.longs===String?$util.Long.prototype.toString.call(e.updateTime):t.longs===Number?new $util.LongBits(e.updateTime.low>>>0,e.updateTime.high>>>0).toNumber():e.updateTime,t.oneofs&&(s._updateTime="updateTime")),s},o.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},o.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.AudioInfo"},o}(),c.VideoInfo=function(){function o(i){if(i)for(let e=Object.keys(i),t=0;t<e.length;++t)i[e[t]]!=null&&(this[e[t]]=i[e[t]])}o.prototype.type=0,o.prototype.isEnable=!1,o.prototype.isMute=!1,o.prototype.width=0,o.prototype.height=0,o.prototype.x=0,o.prototype.y=0,o.prototype.updateTime=null;let r;return Object.defineProperty(o.prototype,"_updateTime",{get:$util.oneOfGetter(r=["updateTime"]),set:$util.oneOfSetter(r)}),o.create=function(e){return new o(e)},o.encode=function(e,t){return t||(t=$Writer.create()),e.type!=null&&Object.hasOwnProperty.call(e,"type")&&t.uint32(8).int32(e.type),e.isEnable!=null&&Object.hasOwnProperty.call(e,"isEnable")&&t.uint32(16).bool(e.isEnable),e.isMute!=null&&Object.hasOwnProperty.call(e,"isMute")&&t.uint32(24).bool(e.isMute),e.width!=null&&Object.hasOwnProperty.call(e,"width")&&t.uint32(32).int32(e.width),e.height!=null&&Object.hasOwnProperty.call(e,"height")&&t.uint32(40).int32(e.height),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(48).int32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(56).int32(e.y),e.updateTime!=null&&Object.hasOwnProperty.call(e,"updateTime")&&t.uint32(64).int64(e.updateTime),t},o.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},o.decode=function(e,t,s){e instanceof $Reader||(e=$Reader.create(e));let l=t===void 0?e.len:e.pos+t,a=new $root.com.quick.voice.proto.VideoInfo;for(;e.pos<l;){let d=e.uint32();if(d===s)break;switch(d>>>3){case 1:{a.type=e.int32();break}case 2:{a.isEnable=e.bool();break}case 3:{a.isMute=e.bool();break}case 4:{a.width=e.int32();break}case 5:{a.height=e.int32();break}case 6:{a.x=e.int32();break}case 7:{a.y=e.int32();break}case 8:{a.updateTime=e.int64();break}default:e.skipType(d&7);break}}return a},o.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},o.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:break}return e.isEnable!=null&&e.hasOwnProperty("isEnable")&&typeof e.isEnable!="boolean"?"isEnable: boolean expected":e.isMute!=null&&e.hasOwnProperty("isMute")&&typeof e.isMute!="boolean"?"isMute: boolean expected":e.width!=null&&e.hasOwnProperty("width")&&!$util.isInteger(e.width)?"width: integer expected":e.height!=null&&e.hasOwnProperty("height")&&!$util.isInteger(e.height)?"height: integer expected":e.x!=null&&e.hasOwnProperty("x")&&!$util.isInteger(e.x)?"x: integer expected":e.y!=null&&e.hasOwnProperty("y")&&!$util.isInteger(e.y)?"y: integer expected":e.updateTime!=null&&e.hasOwnProperty("updateTime")&&!$util.isInteger(e.updateTime)&&!(e.updateTime&&$util.isInteger(e.updateTime.low)&&$util.isInteger(e.updateTime.high))?"updateTime: integer|Long expected":null},o.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.VideoInfo)return e;let t=new $root.com.quick.voice.proto.VideoInfo;switch(e.type){default:if(typeof e.type=="number"){t.type=e.type;break}break;case"Camera":case 0:t.type=0;break;case"Screen":case 1:t.type=1;break}return e.isEnable!=null&&(t.isEnable=!!e.isEnable),e.isMute!=null&&(t.isMute=!!e.isMute),e.width!=null&&(t.width=e.width|0),e.height!=null&&(t.height=e.height|0),e.x!=null&&(t.x=e.x|0),e.y!=null&&(t.y=e.y|0),e.updateTime!=null&&($util.Long?(t.updateTime=$util.Long.fromValue(e.updateTime)).unsigned=!1:typeof e.updateTime=="string"?t.updateTime=parseInt(e.updateTime,10):typeof e.updateTime=="number"?t.updateTime=e.updateTime:typeof e.updateTime=="object"&&(t.updateTime=new $util.LongBits(e.updateTime.low>>>0,e.updateTime.high>>>0).toNumber())),t},o.toObject=function(e,t){t||(t={});let s={};return t.defaults&&(s.type=t.enums===String?"Camera":0,s.isEnable=!1,s.isMute=!1,s.width=0,s.height=0,s.x=0,s.y=0),e.type!=null&&e.hasOwnProperty("type")&&(s.type=t.enums===String?$root.com.quick.voice.proto.VideoType[e.type]===void 0?e.type:$root.com.quick.voice.proto.VideoType[e.type]:e.type),e.isEnable!=null&&e.hasOwnProperty("isEnable")&&(s.isEnable=e.isEnable),e.isMute!=null&&e.hasOwnProperty("isMute")&&(s.isMute=e.isMute),e.width!=null&&e.hasOwnProperty("width")&&(s.width=e.width),e.height!=null&&e.hasOwnProperty("height")&&(s.height=e.height),e.x!=null&&e.hasOwnProperty("x")&&(s.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(s.y=e.y),e.updateTime!=null&&e.hasOwnProperty("updateTime")&&(typeof e.updateTime=="number"?s.updateTime=t.longs===String?String(e.updateTime):e.updateTime:s.updateTime=t.longs===String?$util.Long.prototype.toString.call(e.updateTime):t.longs===Number?new $util.LongBits(e.updateTime.low>>>0,e.updateTime.high>>>0).toNumber():e.updateTime,t.oneofs&&(s._updateTime="updateTime")),s},o.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},o.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.VideoInfo"},o}(),c.CustomInfo=function(){function o(i){if(this.customKeyMap={},i)for(let e=Object.keys(i),t=0;t<e.length;++t)i[e[t]]!=null&&(this[e[t]]=i[e[t]])}o.prototype.roomId="",o.prototype.customKeyMap=$util.emptyObject,o.prototype.updateTime=null;let r;return Object.defineProperty(o.prototype,"_updateTime",{get:$util.oneOfGetter(r=["updateTime"]),set:$util.oneOfSetter(r)}),o.create=function(e){return new o(e)},o.encode=function(e,t){if(t||(t=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&t.uint32(10).string(e.roomId),e.customKeyMap!=null&&Object.hasOwnProperty.call(e,"customKeyMap"))for(let s=Object.keys(e.customKeyMap),l=0;l<s.length;++l)t.uint32(18).fork().uint32(10).string(s[l]).uint32(18).string(e.customKeyMap[s[l]]).ldelim();return e.updateTime!=null&&Object.hasOwnProperty.call(e,"updateTime")&&t.uint32(24).int64(e.updateTime),t},o.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},o.decode=function(e,t,s){e instanceof $Reader||(e=$Reader.create(e));let l=t===void 0?e.len:e.pos+t,a=new $root.com.quick.voice.proto.CustomInfo,d,y;for(;e.pos<l;){let p=e.uint32();if(p===s)break;switch(p>>>3){case 1:{a.roomId=e.string();break}case 2:{a.customKeyMap===$util.emptyObject&&(a.customKeyMap={});let w=e.uint32()+e.pos;for(d="",y="";e.pos<w;){let v=e.uint32();switch(v>>>3){case 1:d=e.string();break;case 2:y=e.string();break;default:e.skipType(v&7);break}}a.customKeyMap[d]=y;break}case 3:{a.updateTime=e.int64();break}default:e.skipType(p&7);break}}return a},o.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},o.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.customKeyMap!=null&&e.hasOwnProperty("customKeyMap")){if(!$util.isObject(e.customKeyMap))return"customKeyMap: object expected";let t=Object.keys(e.customKeyMap);for(let s=0;s<t.length;++s)if(!$util.isString(e.customKeyMap[t[s]]))return"customKeyMap: string{k:string} expected"}return e.updateTime!=null&&e.hasOwnProperty("updateTime")&&!$util.isInteger(e.updateTime)&&!(e.updateTime&&$util.isInteger(e.updateTime.low)&&$util.isInteger(e.updateTime.high))?"updateTime: integer|Long expected":null},o.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CustomInfo)return e;let t=new $root.com.quick.voice.proto.CustomInfo;if(e.roomId!=null&&(t.roomId=String(e.roomId)),e.customKeyMap){if(typeof e.customKeyMap!="object")throw TypeError(".com.quick.voice.proto.CustomInfo.customKeyMap: object expected");t.customKeyMap={};for(let s=Object.keys(e.customKeyMap),l=0;l<s.length;++l)t.customKeyMap[s[l]]=String(e.customKeyMap[s[l]])}return e.updateTime!=null&&($util.Long?(t.updateTime=$util.Long.fromValue(e.updateTime)).unsigned=!1:typeof e.updateTime=="string"?t.updateTime=parseInt(e.updateTime,10):typeof e.updateTime=="number"?t.updateTime=e.updateTime:typeof e.updateTime=="object"&&(t.updateTime=new $util.LongBits(e.updateTime.low>>>0,e.updateTime.high>>>0).toNumber())),t},o.toObject=function(e,t){t||(t={});let s={};(t.objects||t.defaults)&&(s.customKeyMap={}),t.defaults&&(s.roomId=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(s.roomId=e.roomId);let l;if(e.customKeyMap&&(l=Object.keys(e.customKeyMap)).length){s.customKeyMap={};for(let a=0;a<l.length;++a)s.customKeyMap[l[a]]=e.customKeyMap[l[a]]}return e.updateTime!=null&&e.hasOwnProperty("updateTime")&&(typeof e.updateTime=="number"?s.updateTime=t.longs===String?String(e.updateTime):e.updateTime:s.updateTime=t.longs===String?$util.Long.prototype.toString.call(e.updateTime):t.longs===Number?new $util.LongBits(e.updateTime.low>>>0,e.updateTime.high>>>0).toNumber():e.updateTime,t.oneofs&&(s._updateTime="updateTime")),s},o.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},o.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CustomInfo"},o}(),c.LayoutType=function(){const o={},r=Object.create(o);return r[o[0]="AudioAndVideo"]=0,r[o[1]="OnlyAudio"]=1,r[o[2]="OnlyVideo"]=2,r}(),c.AudioType=function(){const o={},r=Object.create(o);return r[o[0]="Microphone"]=0,r[o[1]="SystemVoice"]=1,r}(),c.VideoType=function(){const o={},r=Object.create(o);return r[o[0]="Camera"]=0,r[o[1]="Screen"]=1,r}(),c}(),u}(),n}(),f})(),createAudioInfo=()=>({remove:!1,isEnable:!1,updateTime:0,isMute:!1,volume:0}),createVideoInfo=()=>({remove:!1,isEnable:!1,updateTime:0,isMute:!1,sx:0,sy:0,sw:0,sh:0});class RoomUser{constructor(){b(this,"userId","");b(this,"mc_audio");b(this,"mc_video");b(this,"ss_audio");b(this,"ss_video");b(this,"updateTime",0);b(this,"getUpdateTimeKey",()=>{const n=[];return this.mc_audio&&n.push(this.mc_audio.updateTime),this.mc_video&&n.push(this.mc_video.updateTime),this.ss_audio&&n.push(this.ss_audio.updateTime),this.ss_video&&n.push(this.ss_video.updateTime),n.join("_")});b(this,"init",n=>{var e,t,s,l;const{id:u,audios:c=[],videos:o=[]}=n;this.userId=u;const r=this.getUpdateTimeKey();this.mc_audio&&(this.mc_audio.remove=!0),this.mc_video&&(this.mc_video.remove=!0),this.ss_audio&&(this.ss_audio.remove=!0),this.ss_video&&(this.ss_video.remove=!0);for(const a of c){const{type:d=0,isEnable:y=!1,isMute:p=!1,updateTime:w,volume:v=0}=a;switch(d){case 0:{if(this.mc_audio||(this.mc_audio=createAudioInfo()),this.mc_audio.remove=!1,this.mc_audio.updateTime===w)break;this.mc_audio.isEnable=!!y,this.mc_audio.isMute=!!p,this.mc_audio.updateTime=Number(w),this.mc_audio.volume=Number(v)}break;case 1:{if(this.ss_audio||(this.ss_audio=createAudioInfo()),this.ss_audio.remove=!1,this.ss_audio.updateTime===w)break;this.ss_audio.isEnable=!!y,this.ss_audio.isMute=!!p,this.ss_audio.updateTime=Number(w),this.ss_audio.volume=Number(v)}break}}for(const a of o){const{type:d=0,isEnable:y,isMute:p,updateTime:w,width:v,height:m,x:g,y:x}=a;switch(d){case 0:{if(this.mc_video||(this.mc_video=createVideoInfo()),this.mc_video.remove=!1,this.mc_video.updateTime===w)break;this.mc_video.isEnable=!!y,this.mc_video.isMute=!!p,this.mc_video.updateTime=Number(w)||0,this.mc_video.sx=g||0,this.mc_video.sy=x||0,this.mc_video.sw=v||0,this.mc_video.sh=m||0}break;case 1:{if(this.ss_video||(this.ss_video=createVideoInfo()),this.ss_video.remove=!1,this.ss_video.updateTime===w)break;this.ss_video.isEnable=!!y,this.ss_video.isMute=!!p,this.ss_video.updateTime=Number(w)||0,this.ss_video.sx=g||0,this.ss_video.sy=x||0,this.ss_video.sw=v||0,this.ss_video.sh=m||0}break}}(e=this.mc_audio)!=null&&e.remove&&(this.mc_audio=void 0),(t=this.mc_video)!=null&&t.remove&&(this.mc_video=void 0),(s=this.ss_audio)!=null&&s.remove&&(this.ss_audio=void 0),(l=this.ss_video)!=null&&l.remove&&(this.ss_video=void 0);const i=this.getUpdateTimeKey();r!==i&&(this.updateTime=new Date().getTime())});b(this,"destroy",()=>{var n,u;(n=this.mc_video)!=null&&n.destroy&&this.mc_video.destroy(),(u=this.ss_video)!=null&&u.destroy&&this.ss_video.destroy(),this.mc_audio=void 0,this.mc_video=void 0,this.ss_audio=void 0,this.ss_video=void 0})}}const parseSEI=f=>{let n=0,u=0;for(;;){const o=f[n];if(u=u+o,n=n+1,o!==255)break}let c=0;for(;;){const o=f[n];if(c=c+o,n=n+1,o!==255)break}if(u===5){const o=f.slice(n,n+16),i=Array.from(o,p=>p.toString(16).padStart(2,"0")).join("");n=n+16;const e=c-16,t=f.slice(n,n+e),s=com.quick.voice.proto.SeiData.decode(t),{event:l=0}=s,a=s.data;let d;switch(l){case 0:d=com.quick.voice.proto.LayoutData.decode(s.data);break;case 1:d=com.quick.voice.proto.CustomInfo.decode(s.data);break}return{uuid:i,...s,event:l,data_remote:a,data:d}}};class QuickVoPlayer{constructor(){b(this,"displayMode","original");b(this,"prPlayer",new be);b(this,"dom");b(this,"room",{roomId:"",updateTime:"",author:"",version:""});b(this,"usersMap",new Map);b(this,"on",{users:n=>{}});b(this,"init",()=>{this.prPlayer.init()});b(this,"start",async n=>(this.stop(),this.prPlayer.start(n)));b(this,"stop",()=>{this.prPlayer.stop(),this.usersMap=new Map,this.room.roomId="",this.room.author="",this.room.updateTime="",this.room.version=""});b(this,"setMute",n=>{this.prPlayer.setMute(n)});b(this,"getStream",()=>this.prPlayer.getStream());b(this,"getAllUseUpdateKey",()=>{const n=[...this.usersMap.values()];return Array.from(n,c=>c.updateTime).join("_")});b(this,"checkAndCreateUser",(n,u)=>{var c,o;if(this.usersMap.has(n)){const r=this.usersMap.get(n);if(r==null||r.init(u),r!=null&&r.mc_video){const{sx:i,sy:e,sw:t,sh:s}=r.mc_video;(c=r==null?void 0:r.mc_video.worker)==null||c.setCut({sx:i,sy:e,sw:t,sh:s})}if(r!=null&&r.ss_video){const{sx:i,sy:e,sw:t,sh:s}=r.ss_video;(o=r==null?void 0:r.ss_video.worker)==null||o.setCut({sx:i,sy:e,sw:t,sh:s})}}else{const r=new RoomUser;if(this.usersMap.set(n,r),r.init(u),r){if(r.mc_video){const{sx:i,sy:e,sw:t,sh:s}=r.mc_video,l=`${r.userId}_mc_video`,{worker:a,stream:d,destroy:y}=this.prPlayer.cut.create(l,{sx:i,sy:e,sw:t,sh:s});r.mc_video.worker=a,this.displayMode==="original"&&a.setPause(!0),r.mc_video.stream=d,r.mc_video.destroy=()=>{y(),this.prPlayer.cut.remove(l),this.usersMap.delete(r.userId)}}if(r.ss_video){const{sx:i,sy:e,sw:t,sh:s}=r.ss_video,l=`${r.userId}_ss_video`,{worker:a,stream:d,destroy:y}=this.prPlayer.cut.create(l,{sx:i,sy:e,sw:t,sh:s});r.ss_video.worker=a,this.displayMode==="original"&&a.setPause(!0),r.ss_video.stream=d,r.ss_video.destroy=()=>{y(),this.prPlayer.cut.remove(l),this.usersMap.delete(r.userId)}}}}});b(this,"onSEI",n=>{try{const u=parseSEI(n);if(!u)return;const{event:c,data:o}=u;switch(c){case 0:{const{roomId:r,userMap:i}=o;if(r!==this.room.roomId)return;const e=this.getAllUseUpdateKey(),t=Object.keys(i);{const l=[...this.usersMap.values()];for(const a of l)t.includes(a.userId)||a==null||a.destroy()}for(const l of t){const a=i[l];this.checkAndCreateUser(l,a)}const s=this.getAllUseUpdateKey();if(e!==s&&this.on.users){const l=[...this.usersMap.values()],a=Array.from(l,({userId:d,mc_audio:y,mc_video:p,ss_audio:w,ss_video:v,updateTime:m})=>({userId:d,mc_audio:y,mc_video:p,ss_audio:w,ss_video:v,updateTime:m}));this.on.users(a)}}break;case 1:{const{roomId:r,updateTime:i}=o,{author:e,version:t}=o.customKeyMap;this.room.roomId=r,this.room.updateTime=i,this.room.author=e,this.room.version=t}break}}catch(u){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->onSEI: error",u)}});b(this,"setDisplayMode",n=>{var u,c,o,r,i,e,t,s;switch(this.displayMode=n,n){case"original":{this.prPlayer.setPause(!1);const l=[...this.usersMap.values()];for(const a of l)(c=(u=a.mc_video)==null?void 0:u.worker)==null||c.setPause(!0),(r=(o=a.ss_video)==null?void 0:o.worker)==null||r.setPause(!0)}break;case"cut":{this.prPlayer.setPause(!0);const l=[...this.usersMap.values()];for(const a of l)(e=(i=a.mc_video)==null?void 0:i.worker)==null||e.setPause(!1),(s=(t=a.ss_video)==null?void 0:t.worker)==null||s.setPause(!1)}break}});this.prPlayer.on.demuxer.sei=this.onSEI}}exports.QuickVoPlayer=QuickVoPlayer,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(I,_){typeof exports=="object"&&typeof module<"u"?_(exports):typeof define=="function"&&define.amd?define(["exports"],_):(I=typeof globalThis<"u"?globalThis:I||self,_(I["quickvo-player"]={}))})(this,function(exports){"use strict";var Z=Object.defineProperty;var X=I=>{throw TypeError(I)};var tt=(I,_,h)=>_ in I?Z(I,_,{enumerable:!0,configurable:!0,writable:!0,value:h}):I[_]=h;var m=(I,_,h)=>tt(I,typeof _!="symbol"?_+"":_,h),Q=(I,_,h)=>_.has(I)||X("Cannot "+h);var q=(I,_,h)=>(Q(I,_,"read from private field"),h?h.call(I):_.get(I)),J=(I,_,h)=>_.has(I)?X("Cannot add the same private member more than once"):_ instanceof WeakSet?_.add(I):_.set(I,h),K=(I,_,h,o)=>(Q(I,_,"write to private field"),o?o.call(I,h):_.set(I,h),h);var I,_;const D='(function(){"use strict";class P{pendingPayloads=[];payload=new Uint8Array(0);chunks=[];push=t=>{this.pendingPayloads.push(t)};next=(t=0)=>{this.payload=this.payload.slice(t);const s=this.pendingPayloads.shift();if(!s)return!1;const e=new Uint8Array(this.payload.byteLength+s.byteLength);return e.set(this.payload,0),e.set(s,this.payload.byteLength),this.payload=e,new DataView(this.payload.buffer)};pushChunk=t=>{this.chunks.push(t),this.chunks.length>1e3&&this.chunks.shift()};destroy=()=>{this.pendingPayloads=[],this.payload=new Uint8Array(0),this.chunks=[]}}const I=(u,t)=>{const s=new Uint8Array(u),e=new Uint8Array(t),n=new Uint8Array(11+s.length+e.length);let a=0;return n[a++]=1,n[a++]=s[1],n[a++]=s[2],n[a++]=s[3],n[a++]=255,n[a++]=225,n[a++]=s.length>>8&255,n[a++]=s.length&255,n.set(s,a),a+=s.length,n[a++]=1,n[a++]=e.length>>8&255,n[a++]=e.length&255,n.set(e,a),n},T=u=>{let t=0;const s=new DataView(u.buffer),e=s.getUint8(t);if(t=t+1,e!==1)throw new Error("Invalid AVC version");const n=s.getUint8(t)&255;t=t+1;const a=s.getUint8(t)&255;t=t+1;const i=s.getUint8(t)&255;t=t+1;const h=`avc1.${Array.from([n,a,i],b=>b.toString(16).padStart(2,"0")).join("")}`,c=(s.getUint8(t)&3)-1;t=t+1;const g=s.getUint8(t)&31;t=t+1;const p=s.getUint16(t,!1);t=t+2;const l=new Uint8Array(s.buffer.slice(t,t+p));t=t+p;const d=s.getUint8(t)&31;t=t+1;const f=s.getUint16(t,!1);t=t+2;const y=new Uint8Array(s.buffer.slice(t,t+f));return t=t+f,{version:e,codec:h,profile:n,compatibility:a,level:i,lengthSizeMinusOne:c,numOfSequenceParameterSets:g,sequenceParameterSetLength:p,sps:l,numOfPictureParameterSets:d,pictureParameterSetLength:f,pps:y}},M=u=>{const t=new Uint8Array(4+u.length);return new DataView(t.buffer).setUint32(0,u.length,!1),t.set(u,4),t},C=u=>{let t=0;for(const n of u)t+=n.length;const s=new Uint8Array(t);let e=0;for(const n of u){const a=n;s.set(a,e),e+=a.length}return s},x=u=>{let t="unknown";switch(u){case 1:case 2:case 27:case 36:t="video";break;case 3:case 4:case 15:t="audio";break;case 6:t="subtitle";break;case 134:t="ad";break}return t};class D{pat;pmt;audioConfig;videoConfig;payloadMap=new Map;on={};constructor(){}parse=async t=>{let s=0;for(;!(s+188>t.byteLength);){if(t.getInt8(s)!=71){s++;continue}await this.parsePacket(t,s),s+=188}return s};parsePacket=async(t,s)=>{if(s+188>t.byteLength)throw new Error("Invalid TS packet");if(t.getUint8(s)!==71)throw new Error("Invalid TS packet");let e=s;const n=this.parseHeader(t,e);e+=4;const{transport_error_indicator:a,pid:i,payload_unit_start_indicator:o,adaptation_field_control:r}=n;if(a===1||i===void 0)return;let h=184;if(r===2||r===3){const c=t.getUint8(e);e+=1,this.parseAdaptationField(t,e),e+=c,h-=c}if(r===3&&(h-=1),r===1||r===3){const c=new Uint8Array(t.buffer.slice(e,e+h));if(i===0)return this.parsePAT(t,e);{const{programs:l=[]}=this.pat||{};if(l.find(f=>f.pmt_pid===i))return this.parsePMT(t,e)}const{streams:g=[]}=this.pmt||{},p=g.find(l=>l.elementary_pid===i);if(p){if(o===1){const l=this.payloadMap.get(i);if(l){switch(p.kind){case"audio":break;case"video":{const d=await this.parseVideo(l);this.on.chunk&&this.on.chunk(d),await new Promise(f=>setTimeout(()=>f(!0),8))}break}this.payloadMap.delete(i)}}{this.payloadMap.has(i)||this.payloadMap.set(i,new Uint8Array);const l=this.payloadMap.get(i),d=new Uint8Array(l.byteLength+c.byteLength);d.set(l,0),d.set(c,l.byteLength),this.payloadMap.set(i,d)}}}};parseHeader=(t,s)=>{let e=s;const n=t.getUint8(e),a=t.getUint8(e+1),i=t.getUint8(e+2),o=t.getUint8(e+3),r=(a&128)>>7;if(r===1)return{sync_byte:n,transport_error_indicator:r};const h=(a&64)>>6,c=(a&32)>>5,g=(a&31)<<8|i,p=(o&192)>>6,l=o>>4&3,d=o&15;return{sync_byte:n,transport_error_indicator:r,payload_unit_start_indicator:h,transport_priority:c,pid:g,transport_scrambling_control:p,adaptation_field_control:l,continuity_counter:d}};parsePAT=(t,s)=>{let e=s,n;{const o=t.getUint8(e);e+=1;const r=t.getUint8(e);if(e+=1,r!==0)throw new Error("Invalid PAT table_id");const h=t.getUint16(e)&4095;e+=2;const c=t.getUint16(e);e+=2;const g=(t.getUint8(e)&62)>>1,p=t.getUint8(e)&1;e+=1;const l=t.getUint8(e);e+=1;const d=t.getUint8(e);e+=1,n={pointer_field:o,table_id:r,section_length:h,transport_stream_id:c,version_number:g,current_next_indicator:p,section_number:l,last_section_number:d}}const a=[];{const o=n.section_length-5-4,r=e+o;for(;e<r;){const h=t.getUint16(e),c=t.getUint16(e+2)&8191;e+=4,h!==0&&c>=32&&c<=8190&&a.push({program_number:h,pmt_pid:c})}}const i=t.getUint32(e);this.pat={header:n,programs:a,crc32:i},this.on.debug&&this.on.debug({pat:this.pat})};parsePMT=(t,s)=>{let e=s,n;{const o=t.getUint8(e);e+=1;const r=t.getUint8(e);if(e+=1,r!==2)throw new Error("Invalid PMT table_id");const h=t.getUint16(e)&4095;e+=2;const c=t.getUint16(e);e+=2;const g=(t.getUint8(e)&62)>>1,p=t.getUint8(e)&1;e+=1;const l=t.getUint8(e);e+=1;const d=t.getUint8(e);e+=1;const f=t.getUint16(e)&8191;e+=2;const y=t.getUint16(e)&4095;e+=2,n={pointer_field:o,table_id:r,section_length:h,transport_stream_id:c,version_number:g,current_next_indicator:p,section_number:l,last_section_number:d,pcr_pid:f,program_info_length:y}}const a=[];{const o=n.section_length-9-4,r=e+o;for(;e<r;){const h=t.getUint8(e),c=x(h),g=t.getUint16(e+1)&8191,p=t.getUint16(e+3)&4095;if(e+=5,g<32||g>8190){console.warn(`Invalid elementary_pid: 0x${g.toString(16)}`);continue}a.push({kind:c,stream_type:h,elementary_pid:g,es_info_length:p})}}const i=t.getUint32(e);this.pmt={header:n,streams:a,crc32:i},this.on.debug&&this.on.debug({pmt:this.pmt})};parseAdaptationField=(t,s)=>{let e=s,n,a,i,o;const r=t.getUint8(e),h=!!(r&128),c=!!(r&64),g=!!(r&32),p=!!(r&16),l=!!(r&8),d=!!(r&4),f=!!(r&2),y=!!(r&1);e+=1;const b=(U,m)=>{let _=BigInt(0);_|=BigInt(U.getUint16(m))<<25n,_|=BigInt(U.getUint16(m+1))<<17n,_|=BigInt(U.getUint16(m+2))<<9n,_|=BigInt(U.getUint16(m+3))<<1n,_|=BigInt(U.getUint16(m+4)>>7);const B=(U.getUint16(m+4)&1)<<8|U.getUint16(m+5);return _=_*300n+BigInt(B),_};if(p&&(n=b(t,e),e+=6),l&&(a=b(t,e),e+=6),d&&(i=t.getInt8(e),e+=1),f){const U=t.getUint8(e);e+=1,o=new Uint8Array(t.buffer,e,U),e+=U}return{discontinuity_indicator:h,random_access_indicator:c,elementary_stream_priority_indicator:g,pcr_flag:p,opcr_flag:l,splicing_point_flag:d,transport_private_data_flag:f,adaptation_field_extension_flag:y,pcr:n,opcr:a,splice_countdown:i,transport_private_data:o}};parseVideo=async t=>{const s=new DataView(t.buffer);let e=0,n,a;{const i=s.getUint8(e)===0&&s.getUint8(e+1)===0&&s.getUint8(e+2)===1;if(e+=3,!i)throw new Error("invalid ts video payload.");const o=s.getUint8(e);e+=1;const r=s.getUint8(e)<<8|s.getUint8(e+1);e+=2;let h,c;const g=o!==188&&o!==190&&o!==191&&o!==240&&o!==241&&o!==255&&o!==242;if(g){e+=1;const p=s.getUint8(e);e+=1;const l=p>>6,d=s.getUint8(e);e+=1,(l&2)===2&&(h=this.parsePtsDts(s,e),e+=5),(l&1)===1?(c=this.parsePtsDts(s,e),e+=5):c=h,e+=d-(e-9)}n={stream_id:o,pes_packet_length:r,pts:h,dts:c,optional_header_exist:g}}a=t.slice(e);{const i=this.getNalus(a);if(!this.videoConfig){let l,d;if(l=i.find(y=>y.type===7)?.nalu.slice(4),d=i.find(y=>y.type===8)?.nalu.slice(4),l&&d){const f=I(l,d),{codec:y}=T(f);this.videoConfig={kind:"video",codec:y,description:f,sps:l,pps:d},this.on.config&&this.on.config(this.videoConfig)}}const o=[];let r="delta";for(const l of i){const{type:d,nalu:f}=l;switch(d){case 6:case 9:o.push(f);break;case 1:r="delta",o.push(f);break;case 5:r="key",o.push(f);break}}const h=C(o),{dts:c=0,pts:g=0}=n,p=g-c;return{kind:"video",type:r,dts:c,pts:g,cts:p,data:h,nalus:o}}};parsePtsDts(t,s){const e=t.getUint8(s),n=t.getUint8(s+1),a=t.getUint8(s+2),i=t.getUint8(s+3),o=t.getUint8(s+4),r=(BigInt(e)&0b00001110n)<<29n|(BigInt(n)&0b11111111n)<<22n|(BigInt(a)&0b11111110n)<<14n|(BigInt(i)&0b11111111n)<<7n|(BigInt(o)&0b11111110n)>>1n;return Number(r)/90}getNalus=t=>{const s=[];let e=0;for(;!(e+4>t.byteLength);){if(t[e]!==0||t[e+1]!==0||t[e+2]!==1){e+=1;continue}e+=3;let n=e;const a=t[e]&31;for(e+=1;!(e+1>t.byteLength);){if(t[e]!==0||t[e+1]!==0||t[e+2]!==1){e+=1;continue}break}let i=e-n;if(t[e-1]===0&&(i-=1),i!==0){const o=t.slice(n,n+i),r=M(o);s.push({type:a,nalu:r})}}return s}}const k=(u,t)=>u.getUint8(t)<<16|u.getUint8(t+1)<<8|u.getUint8(t+2);class L{audioConfig;videoConfig;header;textDecoder=new TextDecoder("utf-8");on={};constructor(){}parse=async t=>{let s=0;for(this.header||(this.parseHeader(t,s),s+=9);this.isSurplusTag(t,s)!==!1;){const n=this.parseTagHeader(t,s+4),{tagType:a,dataSize:i,timestamp:o}=n;if(a){const r=this.parseTagBody(a,t,s+4+11,i);switch(a){case"script":this.on.info&&this.on.info(r);break;case"audio":{const{accPacketType:h}=r;if(h===0){const{codec:c,sampleRate:g,channelConfiguration:p}=r;this.audioConfig={kind:"audio",codec:c,sampleRate:g,numberOfChannels:p},this.on.config&&this.on.config(this.audioConfig)}else{const{cts:c,data:g}=r,p="key",l=c===void 0?void 0:c+o;this.on.chunk&&this.on.chunk({kind:"audio",type:p,dts:o,pts:l,cts:c,data:g})}}break;case"video":{const{avcPacketType:h}=r;if(h===0){const{codec:c,sps:g,pps:p,data:l}=r;this.videoConfig={kind:"video",codec:c,description:l,sps:g,pps:p},this.on.config&&this.on.config(this.videoConfig)}else{const{frameType:c,cts:g,data:p,nalus:l}=r,d=c===1?"key":"delta",f=g===void 0?void 0:g+o;this.on.chunk&&this.on.chunk({kind:"video",type:d,dts:o,pts:f,cts:g,data:p,nalus:l})}}break}s=s+4+11+i}await new Promise(r=>setTimeout(()=>r(!0),8))}return s};parseHeader=(t,s)=>{let e,n,a,i;e=t.getUint8(s)<<16|t.getUint8(s+1)<<8|t.getUint8(s+2),n=t.getUint8(3);{const r=t.getUint8(0).toString(2).padStart(5,"0").split(""),[,,h,,c]=r;a={audio:c==="1",video:h==="1"}}i=t.getUint32(5),this.header={signature:e,version:n,flags:a,dataOffset:i}};isSurplusTag=(t,s)=>{let e=!0;const n=t.byteLength;if(s+4>n)e=!1;else if(s+4+11>n)e=!1;else{const a=k(t,s+4+1);s+4+11+a>n&&(e=!1)}return e};parseTagHeader=(t,s)=>{let e,n,a,i,o;{const r=t.getUint8(s);let h;switch(r){case 18:h="script";break;case 8:h="audio";break;case 9:h="video";break}e=h}return n=k(t,s+1),a=k(t,s+4),i=t.getUint8(s+7),o=k(t,s+8),{tagType:e,dataSize:n,timestamp:a,timestampExtended:i,streamID:o}};parseTagBody=(t,s,e,n)=>{let a;switch(t){case"script":a=this.parseMetaData(s,e);break;case"audio":a=this.parseAudio(s,e,n);break;case"video":a=this.parseVideo(s,e,n);break}return a};parseMetaData=(t,s)=>{let e=s;{if(t.getUint8(e)!==2)throw new Error("Invalid AMF type for onMetaData (expected 0x02)");e=e+1}const n=t.getUint16(e,!1);e=e+2;{const o=new Int8Array(t.buffer.slice(e,e+n));if((this.textDecoder?.decode(o)||"")!=="onMetaData")throw new Error("Expected \'onMetaData\' string");e=e+n}const a=this.getAmfType(t,e);return e=e+1,this.getAMFValue(t,e,a).value};parseAudio=(t,s,e)=>{let n=s;const a=t.getUint8(n),i=a>>4&15,o=a>>2&3,r=a>>1&1,h=a&1;n=n+1;const c=t.getUint8(n);n=n+1;const g=e-2,p=new Uint8Array(t.buffer.slice(n,n+g));if(i===10&&c===0){const l=t.getUint8(n),d=t.getUint8(n+1),f=(l&248)>>3,y=(l&7)<<1|d>>7,b=(d&120)>>3,U=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],m=`mp4a.40.${f}`,_=U[y];return{soundFormat:i,soundRate:o,soundSize:r,soundType:h,accPacketType:c,data:p,audioObjectType:f,samplingFrequencyIndex:y,channelConfiguration:b,codec:m,sampleRate:_}}return{soundFormat:i,soundRate:o,soundSize:r,soundType:h,accPacketType:c,data:p}};parseVideo=(t,s,e)=>{let n=s;const a=t.getUint8(n),i=a>>4&15,o=a&15;n=n+1;const r=t.getUint8(n);n=n+1;const h=k(t,n);n=n+3;const c=e-5,g=new Uint8Array(t.buffer.slice(n,n+c));switch(o){case 7:if(r===0){const p=T(g);return{frameType:i,codecID:o,avcPacketType:r,cts:h,data:g,...p}}else if(r===1){const p=[],l=n+e-5;for(;!(n+4>l);){const d=t.getUint32(n,!1),f=new Uint8Array(t.buffer.slice(n,n+4+d));n+=4+d,p.push(f)}return{frameType:i,codecID:o,avcPacketType:r,cts:h,data:g,nalus:p}}break;default:throw new Error("Unsupported codecID")}return{frameType:i,codecID:o,avcPacketType:r,cts:h,data:g}};getAmfType=(t,s)=>t.getUint8(s);getAMFName=(t,s,e)=>{const n=new Uint8Array(t.buffer.slice(s,s+e));return this.textDecoder?.decode(n)||""};getAMFValue=(t,s,e)=>{let n=s,a,i=0;switch(e){case 0:a=t.getFloat64(n,!1),i=8;break;case 1:a=!!t.getUint8(n),i=1;break;case 2:{a="";const r=t.getUint16(n,!1);n=n+2;const h=new Int8Array(t.buffer,n,r).filter(g=>g!==0);a=(this.textDecoder?.decode(h)||"").trim(),i=2+r}break;case 3:for(a={};n<t.byteLength;){const r=t.getUint16(n,!1);if(r===0)break;n=n+2;const h=this.getAMFName(t,n,r);n=n+r;const c=this.getAmfType(t,n);if(c===6)break;n=n+1;const g=this.getAMFValue(t,n,c);n=n+g.length,a[h]=g.value,i=2+r+1+g.length}break;case 8:{a={};const r=t.getUint32(n,!1);n=n+4;for(let h=0;h<r;h++){const c=t.getUint16(n,!1);n=n+2;const g=this.getAMFName(t,n,c);n=n+c;const p=this.getAmfType(t,n);n=n+1;const l=this.getAMFValue(t,n,p);n=n+l.length,a[g]=l.value,i=2+c+1+l.length}}break;case 10:{a=[];const r=t.getUint32(n,!1);n=n+4;for(let h=0;h<r;h++){const c=this.getAmfType(t,n);n=n+1;const g=this.getAMFValue(t,n,c);n=n+g.length,a.push(g.value),i=1+g.length}}break}return{amfType:e,length:i,value:a}}}class S{pattern;cacher=new P;isParseing=!1;offset=0;on={};parser;constructor(){}init=t=>{switch(this.destroy(),this.pattern=t,this.pattern){case"flv":this.parser=new L;break;case"hls":this.parser=new D;break;default:throw new Error("is error pattern.")}this.parser.on.debug=s=>this.on.debug&&this.on.debug(s),this.parser.on.info=s=>this.on.info&&this.on.info(s),this.parser.on.config=s=>this.on.config&&this.on.config(s),this.parser.on.chunk=s=>{this.cacher.pushChunk(s),this.on.chunk&&this.on.chunk(s)}};push=t=>{this.cacher.push(t),this.isParseing===!1&&this.parse()};destroy=()=>{this.cacher.destroy(),this.isParseing=!1,this.offset=0};parse=async()=>{try{if(this.isParseing=!0,!this.pattern)throw new Error("You need to set the pattern.");if(!this.parser)throw new Error("You need to init parser.");for(;;){const t=this.cacher.next(this.offset);if(this.offset=0,!t)break;this.offset=await this.parser.parse(t)}this.isParseing=!1}catch{this.destroy()}}}const A=new S;A.on.debug=u=>postMessage({action:"onDebug",data:u}),A.on.info=u=>postMessage({action:"onInfo",data:u}),A.on.config=u=>postMessage({action:"onConfig",data:u}),A.on.chunk=u=>postMessage({action:"onChunk",data:u}),onmessage=u=>{const{action:t,data:s}=u.data,e=A[t];e&&e(s)}})();\n',T=typeof self<"u"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",D],{type:"text/javascript;charset=utf-8"});function L(h){let o;try{if(o=T&&(self.URL||self.webkitURL).createObjectURL(T),!o)throw"";const a=new Worker(o,{name:h==null?void 0:h.name});return a.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(o)}),a}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(D),{name:h==null?void 0:h.name})}}class B{constructor(){m(this,"worker",new L);m(this,"on",{});m(this,"init",o=>this.worker.postMessage({action:"init",data:o}));m(this,"push",o=>this.worker.postMessage({action:"push",data:o}));m(this,"destroy",()=>{this.worker.postMessage({action:"destroy",data:{}}),this.worker.terminate()});this.worker.onmessage=o=>{const{action:a,data:u}=o.data;switch(a){case"onInfo":this.on.info&&this.on.info(u);break;case"onConfig":this.on.config&&this.on.config(u);break;case"onDebug":this.on.debug&&this.on.debug(u);break;case"onChunk":this.on.chunk&&this.on.chunk(u);break}}}}const M=`(function(){"use strict";class r{audioDecoderConfig;audioDecoder;videoDecoderConfig;videoDecoder;hasKeyFrame=!1;on={audio:{},video:{}};constructor(){}audio={init:i=>{this.audio.destroy(),this.audioDecoderConfig={...i},this.audioDecoder=new AudioDecoder({output:e=>{this.on.audio.decode&&this.on.audio.decode(e)},error:e=>{this.on.audio.error&&this.on.audio.error(e)}}),this.audioDecoder.configure(this.audioDecoderConfig)},decode:i=>{if(!this.audioDecoder)return;const e=new EncodedAudioChunk(i);this.audioDecoder.decode(e)},flush:()=>{this.audioDecoder?.flush()},destroy:()=>{this.audioDecoderConfig=void 0,this.audioDecoder?.close(),this.audioDecoder=void 0}};video={init:i=>{this.video.destroy(),this.videoDecoderConfig={...i},this.videoDecoder=new VideoDecoder({output:async e=>{const d=await createImageBitmap(e),s=e.timestamp;e.close(),d.width>0&&d.height>0?this.on.video.decode&&this.on.video.decode({timestamp:s,bitmap:d}):d.close()},error:e=>{console.log("\\x1B[38;2;0;151;255m%c%s\\x1B[0m","color:#0097ff;","------->Breathe: e",e),this.on.video.error&&this.on.video.error(e)}}),this.videoDecoder.configure(this.videoDecoderConfig)},decode:i=>{if(this.videoDecoder&&(i.type==="key"&&(this.hasKeyFrame=!0),this.hasKeyFrame&&this.videoDecoder.decodeQueueSize<2)){const e=new EncodedVideoChunk(i);this.videoDecoder.decode(e)}},flush:()=>{this.videoDecoder?.flush()},destroy:()=>{this.videoDecoderConfig=void 0,this.videoDecoder?.close(),this.videoDecoder=void 0,this.hasKeyFrame=!1}}}const t=new r;t.on.audio.decode=o=>postMessage({type:"audio",action:"onDecode",data:o}),t.on.audio.error=o=>postMessage({type:"audio",action:"onError",data:o}),t.on.video.decode=o=>postMessage({type:"video",action:"onDecode",data:o}),t.on.video.error=o=>postMessage({type:"video",action:"onError",data:o}),onmessage=o=>{const{type:i,action:e,data:d}=o.data,s=t[i][e];s&&s(d)}})();
|
|
2
|
+
`,v=typeof self<"u"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",M],{type:"text/javascript;charset=utf-8"});function F(h){let o;try{if(o=v&&(self.URL||self.webkitURL).createObjectURL(v),!o)throw"";const a=new Worker(o,{name:h==null?void 0:h.name});return a.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(o)}),a}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(M),{name:h==null?void 0:h.name})}}class N{constructor(){m(this,"worker",new F);m(this,"on",{audio:{},video:{}});m(this,"audio",{init:o=>this.worker.postMessage({type:"audio",action:"init",data:o}),decode:o=>this.worker.postMessage({type:"audio",action:"decode",data:o}),flush:()=>this.worker.postMessage({type:"audio",action:"flush"}),destroy:()=>{this.worker.postMessage({type:"audio",action:"destroy"})}});m(this,"video",{init:o=>this.worker.postMessage({type:"video",action:"init",data:o}),decode:o=>this.worker.postMessage({type:"video",action:"decode",data:o}),flush:()=>this.worker.postMessage({type:"video",action:"flush"}),destroy:()=>{this.worker.postMessage({type:"video",action:"destroy",data:{}})}});m(this,"destroy",()=>{this.worker.postMessage({type:"audio",action:"destroy"}),this.worker.postMessage({type:"video",action:"destroy",data:{}}),this.worker.terminate()});this.worker.onmessage=o=>{const{type:a,action:u,data:n}=o.data;switch(a){case"audio":u==="onDecode"&&this.on.audio.decode&&this.on.audio.decode(n),u==="onError"&&this.on.audio.error&&this.on.audio.error(n);break;case"video":u==="onDecode"&&this.on.video.decode&&this.on.video.decode(n),u==="onError"&&this.on.video.error&&this.on.video.error(n);break}}}}var E=Object.defineProperty,G=(h,o,a)=>o in h?E(h,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):h[o]=a,f=(h,o,a)=>G(h,typeof o!="symbol"?o+"":o,a);class O{constructor(o,a){f(this,"inputStream",new MediaStream),f(this,"outputStream",new MediaStream),f(this,"inputGain",1),f(this,"enhanceGain",1),f(this,"bgsGain",1),f(this,"bgmGain",1),f(this,"outputGain",1),f(this,"mixAudioMap",new Map),f(this,"audioContext",new AudioContext),f(this,"sourceNode"),f(this,"inputGainNode"),f(this,"enhanceGainNode"),f(this,"bgsGainNode"),f(this,"bgmGainNode"),f(this,"analyserNode"),f(this,"analyserArrayData"),f(this,"outputGainNode"),f(this,"destinationNode"),f(this,"filterStream",u=>u),f(this,"stop",()=>{{const u=this.inputStream.getTracks();for(const n of u)n.stop(),this.inputStream.removeTrack(n)}}),f(this,"getStream",()=>this.filterStream(this.outputStream)),f(this,"setMute",(u=!0)=>{u?this.analyserNode.disconnect(this.outputGainNode):this.analyserNode.connect(this.outputGainNode)}),f(this,"setInputGain",u=>{this.inputGain=u,this.inputGainNode.gain.setValueAtTime(u,this.audioContext.currentTime)}),f(this,"setEnhanceGain",async u=>{this.enhanceGain=u+1,this.enhanceGainNode.gain.setValueAtTime(this.enhanceGain,this.audioContext.currentTime)}),f(this,"setBgsGain",u=>{this.bgsGain=u,this.bgsGainNode.gain.setValueAtTime(u,this.audioContext.currentTime)}),f(this,"setBgmGain",u=>{this.bgmGain=u,this.bgmGainNode.gain.setValueAtTime(u,this.audioContext.currentTime)}),f(this,"setOutputGain",u=>{this.outputGain=u,this.outputGainNode.gain.setValueAtTime(this.outputGain,this.audioContext.currentTime)}),f(this,"getVolume",()=>{const{analyserNode:u,analyserArrayData:n}=this;u.getByteFrequencyData(n);let r=0;for(let i=0;i<n.length;i++)r+=n[i];return Math.ceil(r/n.length)}),f(this,"mixAudio",(u,n="bgm")=>new Promise(async(r,i)=>{try{{const s=this.mixAudioMap.get(n);s&&s.stop()}const t=n==="bgs"?this.bgsGainNode:this.bgmGainNode,e=this.audioContext.createBufferSource();this.mixAudioMap.set(n,e),e.buffer=u,e.connect(t),e.onended=()=>{e.disconnect(t),this.mixAudioMap.delete(n),r(!0)},e.start(0)}catch(t){i(t)}})),f(this,"mixAudioStop",u=>{const n=this.mixAudioMap.get(u);n==null||n.stop()}),f(this,"changeMix",(u,n)=>{const r=u==="bgs"?this.bgsGainNode:this.bgmGainNode;n?r.connect(this.destinationNode):r.disconnect(this.destinationNode)}),a&&(this.audioContext=a),this.inputStream=o,this.sourceNode=this.audioContext.createMediaStreamSource(this.inputStream),this.inputGainNode=this.audioContext.createGain(),this.inputGainNode.gain.setValueAtTime(this.inputGain,this.audioContext.currentTime),this.enhanceGainNode=this.audioContext.createGain(),this.enhanceGainNode.gain.setValueAtTime(this.enhanceGain,this.audioContext.currentTime),this.bgsGainNode=this.audioContext.createGain(),this.bgsGainNode.gain.setValueAtTime(this.bgsGain,this.audioContext.currentTime),this.bgmGainNode=this.audioContext.createGain(),this.bgmGainNode.gain.setValueAtTime(this.bgmGain,this.audioContext.currentTime),this.analyserNode=this.audioContext.createAnalyser(),this.analyserNode.fftSize=512,this.analyserArrayData=new Uint8Array(this.analyserNode.frequencyBinCount),this.outputGainNode=this.audioContext.createGain(),this.outputGainNode.gain.setValueAtTime(this.outputGain,this.audioContext.currentTime),this.destinationNode=this.audioContext.createMediaStreamDestination(),this.outputStream=this.destinationNode.stream;{const{sourceNode:u,inputGainNode:n,enhanceGainNode:r,bgsGainNode:i,bgmGainNode:t,analyserNode:e,outputGainNode:s,destinationNode:l}=this;u.connect(n),n.connect(r),r.connect(e),i.connect(e),t.connect(e),r.connect(l),i.connect(l),t.connect(l),e.connect(s),s.connect(this.audioContext.destination)}this.setMute(!0),this.audioContext.resume()}}const W=async(h,o)=>{try{const{format:a,numberOfChannels:u,numberOfFrames:n,sampleRate:r}=o,i=h.createBuffer(u,n,r);for(let t=0;t<u;t++){const e=o.allocationSize({planeIndex:t}),s=new Uint8Array(e);o.copyTo(s,{planeIndex:t});const l=new DataView(s.buffer),c=i.getChannelData(t);for(let d=0;d<n;d++){let y;switch(a){case"s16":case"s16-planar":y=l.getInt16(d*2,!0)/32768;break;case"f32":case"f32-planar":y=l.getFloat32(d*4,!0);break;case"u8":case"u8-planar":y=(l.getUint8(d)-128)/128;break;default:throw new Error(`Unsupported audio format: ${a}`)}c[d]=Math.max(-1,Math.min(1,y))}}return i}catch(a){throw console.error("Failed to convert AudioData to AudioBuffer:",a),a}};class V{constructor(){m(this,"prAudioStream");m(this,"audioContext");m(this,"destination");m(this,"stream",new MediaStream);m(this,"nextStartTime",0);m(this,"pendingSources",[]);m(this,"init",o=>{o||(o=new(window.AudioContext||window.webkitAudioContext)),this.audioContext=o,this.destination=this.audioContext.createMediaStreamDestination(),this.stream=new MediaStream,this.stream.addTrack(this.destination.stream.getAudioTracks()[0]),this.prAudioStream=new O(this.stream,this.audioContext),this.nextStartTime=0,this.pendingSources=[]});m(this,"getStream",()=>{var o;return(o=this.prAudioStream)==null?void 0:o.getStream()})}async push(o){try{if(!this.audioContext||!this.destination)return;const a=await W(this.audioContext,o);if(!a)return;const u=this.audioContext.createBufferSource();u.buffer=a,u.connect(this.destination);const n=Math.max(this.nextStartTime,this.audioContext.currentTime);this.nextStartTime=n+a.duration,u.start(n),this.pendingSources.push(u),u.onended=()=>{this.pendingSources=this.pendingSources.filter(r=>r!==u)},this.audioContext.state==="suspended"&&await this.audioContext.resume()}finally{o.close()}}destroy(){var o,a;(o=this.audioContext)==null||o.close(),this.audioContext=void 0,this.destination=void 0,this.nextStartTime=0,(a=this.prAudioStream)==null||a.stop(),this.pendingSources.forEach(u=>u.stop()),this.pendingSources=[]}}const S=`(function(){"use strict";class r{isRendering=!1;pendingFrames=[];offscreenCanvas;writable;writer;ctx;cutOption;baseTime=0;pause=!1;shader=["stream"];constructor(){}init=({offscreenCanvas:e,writable:t})=>{this.destroy(),this.offscreenCanvas=e,this.writable=t,this.writer=this.writable.getWriter(),this.ctx=this.offscreenCanvas.getContext("2d")};setBaseTime=e=>{this.baseTime=e};setShader=e=>{this.shader=e};setSize=({width:e,height:t})=>{this.offscreenCanvas&&(this.offscreenCanvas.width=e,this.offscreenCanvas.height=t)};destroy=()=>{this.isRendering=!1,this.pendingFrames=[],this.offscreenCanvas=void 0,this.ctx=void 0,this.baseTime=0};push=e=>{this.pendingFrames.push(e),this.isRendering===!1&&setTimeout(this.renderFrame,0)};setCut=e=>{this.cutOption=e};setPause=e=>{this.pause=e,this.isRendering===!1&&setTimeout(this.renderFrame,0)};calculateTimeUntilNextFrame=e=>{const t=performance.timeOrigin+performance.now(),i=this.baseTime+e/1e3-t;return Math.max(0,i)};renderFrame=async()=>{for(this.isRendering=!0;;){const e=this.pendingFrames.shift();if(!e)break;let{timestamp:t,bitmap:s}=e;if(this.cutOption){const{sx:a=0,sy:c=0,sw:m=s.width,sh:o=s.height}=this.cutOption;s=await createImageBitmap(s,a,c,m,o)}const i=this.calculateTimeUntilNextFrame(t);await new Promise(a=>setTimeout(()=>a(!0),i)),this.drawImage({timestamp:t,bitmap:s}),this.cutOption&&s.close()}this.isRendering=!1};drawImage=e=>{if(this.pause!==!0){if(this.shader.includes("stream")){const t=new VideoFrame(e.bitmap,{timestamp:e.timestamp});this.writer.write(t),t.close()}this.shader.includes("canvas")&&this.ctx&&this.offscreenCanvas&&this.ctx.drawImage(e.bitmap,0,0,this.offscreenCanvas.width,this.offscreenCanvas.height)}}}const h=new r;onmessage=n=>{const{action:e,data:t}=n.data,s=h[e];s&&s(t)}})();
|
|
3
|
+
`,x=typeof self<"u"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",S],{type:"text/javascript;charset=utf-8"});function z(h){let o;try{if(o=x&&(self.URL||self.webkitURL).createObjectURL(x),!o)throw"";const a=new Worker(o,{name:h==null?void 0:h.name});return a.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(o)}),a}catch{return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(S),{name:h==null?void 0:h.name})}}class j{constructor(){m(this,"worker",new z);m(this,"init",({offscreenCanvas:o,writable:a})=>this.worker.postMessage({action:"init",data:{offscreenCanvas:o,writable:a}},[o,a]));m(this,"setShader",o=>this.worker.postMessage({action:"setShader",data:o}));m(this,"setBaseTime",o=>this.worker.postMessage({action:"setBaseTime",data:o}));m(this,"setSize",({width:o,height:a})=>this.worker.postMessage({action:"setSize",data:{width:o,height:a}}));m(this,"push",o=>this.worker.postMessage({action:"push",data:o}));m(this,"setCut",async o=>this.worker.postMessage({action:"setCut",data:o}));m(this,"setPause",o=>this.worker.postMessage({action:"setPause",data:o}));m(this,"destroy",()=>{this.worker.postMessage({action:"destroy",data:{}}),this.worker.terminate()})}}const $=h=>{const o=h.toLowerCase();return o.includes(".m3u8")||o.includes("hls")||o.includes("master.m3u8")||o.match(/index\d*\.m3u8/)?"hls":o.includes(".mpd")||o.includes("dash")?"dash":o.startsWith("rtmp://")||o.startsWith("rtmps://")?"rtmp":o.includes(".flv")||o.includes("flv")&&!o.includes("flash")?"flv":"unknown"},P=h=>{const o=(h==null?void 0:h.getTracks())||[];for(const a of o)a.stop()},A=()=>{const h=new j,o=document.createElement("canvas"),a=o.transferControlToOffscreen(),u=new MediaStreamTrackGenerator({kind:"video"}),n=new MediaStream([u]),r=()=>{h.destroy(),P(n)};return h.init({offscreenCanvas:a,writable:u.writable}),{worker:h,canvas:o,stream:n,destroy:r}};class H{constructor(){m(this,"resolvesMap",new Map);m(this,"index",0);m(this,"add",(o,a=()=>!1,u=0)=>new Promise(n=>{var t,e;if(a())return n(!0);this.resolvesMap.has(o)||this.resolvesMap.set(o,new Map),this.index++;const r=`${this.index}`;if(u=Math.max(0,u),u===0){(t=this.resolvesMap.get(o))==null||t.set(r,{resolve:n,timer:0});return}const i=window.setTimeout(()=>{this.emit(o)},u);(e=this.resolvesMap.get(o))==null||e.set(r,{resolve:n,timer:i})}));m(this,"emit",async o=>{const a=this.resolvesMap.get(o);if(!a)return;const u=[...a.keys()];for(const n of u){const r=a.get(n);r&&(clearTimeout(r.timer),r.resolve(),a.delete(n))}})}}const Y=h=>{const o=new DataView(h.buffer);let a=0,u,n,r;u=o.getUint32(a,!1),a+=4;{const i=o.getUint8(a),t=i>>7&1,e=i>>5&3,s=i&31;n={forbidden_zero_bit:t,nal_ref_idc:e,nal_unit_type:s},a+=1}{const i=u-1;r=new Uint8Array(o.buffer.slice(a,a+i))}return{size:u,header:n,data:r}};class C{constructor(o={}){J(this,I,{timeout:5*1e3,check:!1});J(this,_);m(this,"check",(o,a)=>new Promise(async(u,n)=>{var i;this.stop(),K(this,_,new AbortController);const r=window.setTimeout(()=>{var t;(t=q(this,_))==null||t.abort("Timeout."),n({status:"timeout",reason:""})},q(this,I).timeout);try{const t=await fetch(o,{...a,method:"HEAD",signal:(i=q(this,_))==null?void 0:i.signal});t.status===200?u({status:"successed",reason:""}):n({status:"failed",reason:`${t.status}`})}catch(t){n({status:"error",reason:t.message})}clearTimeout(r)}));m(this,"request",async(o,a)=>new Promise(async(u,n)=>{var r;try{q(this,I).check&&await this.check(o,a),K(this,_,new AbortController);const i=await fetch(o,{...a,signal:(r=q(this,_))==null?void 0:r.signal});u(i)}catch(i){this.stop(),n(i)}}));m(this,"stop",()=>{var o;((o=q(this,_))==null?void 0:o.signal.aborted)===!1&&q(this,_).abort("Actively stop.")});K(this,I,{...q(this,I),...o})}}I=new WeakMap,_=new WeakMap;class et{constructor(){m(this,"prFetch",new C);m(this,"prResolves",new H);m(this,"url","");m(this,"demuxerWorker");m(this,"decoderWorker");m(this,"audioPlayer");m(this,"renderWorker");m(this,"renderBaseTime");m(this,"stream");m(this,"canvas");m(this,"on",{demuxer:{},decoder:{}});m(this,"cutRenders",new Map);m(this,"trackGenerator");m(this,"init",()=>{this.initDecoder(),this.audioPlayer=new V,this.audioPlayer.init(),this.initRender()});m(this,"start",async o=>{this.stop(),this.url=o,this.init();const a=$(o);if(a==="unknown")throw new Error("This address cannot be parsed.");switch(this.initDemuxer(a),a){case"flv":this.flv.start();break;case"hls":this.hls.start();break}});m(this,"stop",async()=>{var a,u,n,r;try{clearInterval(this.hls.getSegmentsTimer),this.prFetch.stop()}catch(i){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe: error",i)}(a=this.demuxerWorker)==null||a.destroy(),(u=this.decoderWorker)==null||u.destroy(),(n=this.renderWorker)==null||n.destroy(),P(this.stream);const o=[...this.cutRenders.keys()];for(const i of o)this.cut.remove(i);(r=this.audioPlayer)==null||r.destroy(),this.renderBaseTime=void 0,this.canvas=void 0});m(this,"getCanvas",()=>this.canvas);m(this,"getStream",()=>this.stream);m(this,"setPause",o=>{var a;(a=this.renderWorker)==null||a.setPause(o)});m(this,"setShader",o=>{var a;(a=this.renderWorker)==null||a.setShader(o)});m(this,"setMute",o=>{var a,u;return(u=(a=this.audioPlayer)==null?void 0:a.prAudioStream)==null?void 0:u.setMute(o)});m(this,"isReady",()=>{const o=()=>{var a;return((a=this.stream)==null?void 0:a.active)===!0};return this.prResolves.add("isReady",o)});m(this,"cut",{create:(o,a)=>{let u=this.cutRenders.get(o);return u?(u.worker.setCut(a),u.worker.setPause(!1),u):(u=A(),u.worker.setBaseTime(this.renderBaseTime||0),u.worker.setCut(a),this.cutRenders.set(o,u),u)},getCanvas:o=>{var a;return(a=this.cutRenders.get(o))==null?void 0:a.canvas},getStream:o=>{var a;return(a=this.cutRenders.get(o))==null?void 0:a.stream},setPause:(o,a)=>{var u;(u=this.cutRenders.get(o))==null||u.worker.setPause(a)},setShader:(o,a)=>{var u;(u=this.cutRenders.get(o))==null||u.worker.setShader(a)},remove:o=>{var a;(a=this.cutRenders.get(o))==null||a.destroy(),this.cutRenders.delete(o)}});m(this,"initDemuxer",o=>{this.demuxerWorker=new B,this.demuxerWorker.init(o),this.demuxerWorker.on.debug=a=>{},this.demuxerWorker.on.info=a=>{this.on.demuxer.info&&this.on.demuxer.info(a)},this.demuxerWorker.on.config=a=>{var n,r;this.on.demuxer.config&&this.on.demuxer.config(a);const{kind:u}=a;switch(u){case"audio":{const{codec:i,sampleRate:t,numberOfChannels:e}=a;(n=this.decoderWorker)==null||n.audio.init({codec:i,sampleRate:t,numberOfChannels:e})}break;case"video":{const{codec:i,description:t}=a;(r=this.decoderWorker)==null||r.video.init({codec:i,description:t})}break}},this.demuxerWorker.on.chunk=a=>{var n;if(this.on.demuxer.chunk&&this.on.demuxer.chunk(a),!this.decoderWorker)return;const{kind:u}=a;switch(u){case"audio":{const{type:r,dts:i,data:t}=a,e=i*1;this.decoderWorker.audio.decode({type:r,timestamp:e,data:t})}break;case"video":{const{type:r,dts:i,data:t,nalus:e=[]}=a;if(this.renderBaseTime===void 0){const l=new Date().getTime();this.renderBaseTime=l-i,(n=this.renderWorker)==null||n.setBaseTime(this.renderBaseTime)}const s=i*1e3;this.decoderWorker.video.decode({type:r,timestamp:s,data:t});for(const l of e){if(l.byteLength<=4)continue;const{header:c,data:d}=Y(l),{nal_unit_type:y}=c;y===6&&this.on.demuxer.sei&&this.on.demuxer.sei(d)}}break}}});m(this,"initDecoder",()=>{this.decoderWorker=new N,this.decoderWorker.on.audio.decode=o=>{var a;(a=this.audioPlayer)==null||a.push(o),this.on.decoder.audio&&this.on.decoder.audio(o)},this.decoderWorker.on.audio.error=o=>{this.stop(),this.on.error&&this.on.error(o)},this.decoderWorker.on.video.decode=async o=>{var u,n;(u=this.renderWorker)==null||u.push(o);const a=[...this.cutRenders.keys()];for(const r of a)(n=this.cutRenders.get(r))==null||n.worker.push(o);this.on.decoder.video&&this.on.decoder.video(o),o.bitmap.close()},this.decoderWorker.on.video.error=o=>{this.stop(),this.on.error&&this.on.error(o)}});m(this,"initRender",()=>{const{worker:o,canvas:a,stream:u}=A();this.renderWorker=o,this.canvas=a,this.stream=u,this.renderWorker.setPause(!1)});m(this,"flv",{start:async()=>{var o,a;try{const u=(o=(await this.prFetch.request(this.url)).body)==null?void 0:o.getReader();if(!u)throw new Error("reader is error.");for(;;){const{done:n,value:r}=await u.read();if(r&&((a=this.demuxerWorker)==null||a.push(r)),n)break}}catch(u){if((u==null?void 0:u.name)!=="AbortError")throw Error(u)}}});m(this,"hls",{isLive:!1,urls:[],url:"",getSegmentsTimer:0,parse:async o=>{const a=new TextDecoder("utf-8").decode(o).split(`
|
|
4
|
+
`).map(e=>e.replace("\r","")),u=this.url.substring(0,this.url.lastIndexOf("/")+1);let n=4,r=0,i=!1;const t=[];for(const e of a)e.startsWith("#EXTINF:")?n=parseFloat(e.split(":")[1].split(",")[0]):e.startsWith("#EXT-X-TARGETDURATION:")?r=parseInt(e.split(":")[1]):e.startsWith("#EXT-X-ENDLIST")?i=!1:e.startsWith("#EXT-X-MEDIA-SEQUENCE:")?i=!0:e.includes(".ts")&&!e.startsWith("#")&&t.push({url:e.startsWith("http")?e:u+e,duration:n,isLive:i});return{baseUrl:u,targetDuration:r,isLive:i,segments:t}},getSegments:async()=>{var a;const o=(a=(await new C().request(this.url)).body)==null?void 0:a.getReader();if(!o)throw new Error("reader is error.");for(;;){const{done:u,value:n}=await o.read();if(n){const r=await this.hls.parse(n),{segments:i=[],isLive:t=!1}=r;this.hls.isLive=t;let e=Array.from(i,l=>l.url);const s=e.findIndex(l=>l===this.hls.url);s!==-1&&(e=e.slice(s+1)),this.hls.urls=e}if(u)break}},getData:async()=>{},start:async()=>{var o,a;try{for(await this.hls.getSegments(),this.hls.getSegmentsTimer=window.setInterval(this.hls.getSegments,1e3),this.hls.isLive===!1&&clearInterval(this.hls.getSegmentsTimer);;){const u=this.hls.urls.shift();if(u){this.hls.url=u;const n=(o=(await this.prFetch.request(u)).body)==null?void 0:o.getReader();if(!n)throw new Error("segment reader is error.");for(;;){const{done:r,value:i}=await n.read();if(i&&((a=this.demuxerWorker)==null||a.push(i)),r)break}}await new Promise(n=>setTimeout(()=>n(!0),500))}}catch(u){if((u==null?void 0:u.name)!=="AbortError")throw Error(u)}}})}}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},indexMinimal={},minimal$1={},aspromise,hasRequiredAspromise;function requireAspromise(){if(hasRequiredAspromise)return aspromise;hasRequiredAspromise=1,aspromise=h;function h(o,a){for(var u=new Array(arguments.length-1),n=0,r=2,i=!0;r<arguments.length;)u[n++]=arguments[r++];return new Promise(function(e,s){u[n]=function(c){if(i)if(i=!1,c)s(c);else{for(var d=new Array(arguments.length-1),y=0;y<d.length;)d[y++]=arguments[y];e.apply(null,d)}};try{o.apply(a||null,u)}catch(l){i&&(i=!1,s(l))}})}return aspromise}var base64={},hasRequiredBase64;function requireBase64(){return hasRequiredBase64||(hasRequiredBase64=1,function(h){var o=h;o.length=function(t){var e=t.length;if(!e)return 0;for(var s=0;--e%4>1&&t.charAt(e)==="=";)++s;return Math.ceil(t.length*3)/4-s};for(var a=new Array(64),u=new Array(123),n=0;n<64;)u[a[n]=n<26?n+65:n<52?n+71:n<62?n-4:n-59|43]=n++;o.encode=function(t,e,s){for(var l=null,c=[],d=0,y=0,p;e<s;){var w=t[e++];switch(y){case 0:c[d++]=a[w>>2],p=(w&3)<<4,y=1;break;case 1:c[d++]=a[p|w>>4],p=(w&15)<<2,y=2;break;case 2:c[d++]=a[p|w>>6],c[d++]=a[w&63],y=0;break}d>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,c)),d=0)}return y&&(c[d++]=a[p],c[d++]=61,y===1&&(c[d++]=61)),l?(d&&l.push(String.fromCharCode.apply(String,c.slice(0,d))),l.join("")):String.fromCharCode.apply(String,c.slice(0,d))};var r="invalid encoding";o.decode=function(t,e,s){for(var l=s,c=0,d,y=0;y<t.length;){var p=t.charCodeAt(y++);if(p===61&&c>1)break;if((p=u[p])===void 0)throw Error(r);switch(c){case 0:d=p,c=1;break;case 1:e[s++]=d<<2|(p&48)>>4,d=p,c=2;break;case 2:e[s++]=(d&15)<<4|(p&60)>>2,d=p,c=3;break;case 3:e[s++]=(d&3)<<6|p,c=0;break}}if(c===1)throw Error(r);return s-l},o.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}}(base64)),base64}var eventemitter,hasRequiredEventemitter;function requireEventemitter(){if(hasRequiredEventemitter)return eventemitter;hasRequiredEventemitter=1,eventemitter=h;function h(){this._listeners={}}return h.prototype.on=function(a,u,n){return(this._listeners[a]||(this._listeners[a]=[])).push({fn:u,ctx:n||this}),this},h.prototype.off=function(a,u){if(a===void 0)this._listeners={};else if(u===void 0)this._listeners[a]=[];else for(var n=this._listeners[a],r=0;r<n.length;)n[r].fn===u?n.splice(r,1):++r;return this},h.prototype.emit=function(a){var u=this._listeners[a];if(u){for(var n=[],r=1;r<arguments.length;)n.push(arguments[r++]);for(r=0;r<u.length;)u[r].fn.apply(u[r++].ctx,n)}return this},eventemitter}var float,hasRequiredFloat;function requireFloat(){if(hasRequiredFloat)return float;hasRequiredFloat=1,float=h(h);function h(r){return typeof Float32Array<"u"?function(){var i=new Float32Array([-0]),t=new Uint8Array(i.buffer),e=t[3]===128;function s(y,p,w){i[0]=y,p[w]=t[0],p[w+1]=t[1],p[w+2]=t[2],p[w+3]=t[3]}function l(y,p,w){i[0]=y,p[w]=t[3],p[w+1]=t[2],p[w+2]=t[1],p[w+3]=t[0]}r.writeFloatLE=e?s:l,r.writeFloatBE=e?l:s;function c(y,p){return t[0]=y[p],t[1]=y[p+1],t[2]=y[p+2],t[3]=y[p+3],i[0]}function d(y,p){return t[3]=y[p],t[2]=y[p+1],t[1]=y[p+2],t[0]=y[p+3],i[0]}r.readFloatLE=e?c:d,r.readFloatBE=e?d:c}():function(){function i(e,s,l,c){var d=s<0?1:0;if(d&&(s=-s),s===0)e(1/s>0?0:2147483648,l,c);else if(isNaN(s))e(2143289344,l,c);else if(s>34028234663852886e22)e((d<<31|2139095040)>>>0,l,c);else if(s<11754943508222875e-54)e((d<<31|Math.round(s/1401298464324817e-60))>>>0,l,c);else{var y=Math.floor(Math.log(s)/Math.LN2),p=Math.round(s*Math.pow(2,-y)*8388608)&8388607;e((d<<31|y+127<<23|p)>>>0,l,c)}}r.writeFloatLE=i.bind(null,o),r.writeFloatBE=i.bind(null,a);function t(e,s,l){var c=e(s,l),d=(c>>31)*2+1,y=c>>>23&255,p=c&8388607;return y===255?p?NaN:d*(1/0):y===0?d*1401298464324817e-60*p:d*Math.pow(2,y-150)*(p+8388608)}r.readFloatLE=t.bind(null,u),r.readFloatBE=t.bind(null,n)}(),typeof Float64Array<"u"?function(){var i=new Float64Array([-0]),t=new Uint8Array(i.buffer),e=t[7]===128;function s(y,p,w){i[0]=y,p[w]=t[0],p[w+1]=t[1],p[w+2]=t[2],p[w+3]=t[3],p[w+4]=t[4],p[w+5]=t[5],p[w+6]=t[6],p[w+7]=t[7]}function l(y,p,w){i[0]=y,p[w]=t[7],p[w+1]=t[6],p[w+2]=t[5],p[w+3]=t[4],p[w+4]=t[3],p[w+5]=t[2],p[w+6]=t[1],p[w+7]=t[0]}r.writeDoubleLE=e?s:l,r.writeDoubleBE=e?l:s;function c(y,p){return t[0]=y[p],t[1]=y[p+1],t[2]=y[p+2],t[3]=y[p+3],t[4]=y[p+4],t[5]=y[p+5],t[6]=y[p+6],t[7]=y[p+7],i[0]}function d(y,p){return t[7]=y[p],t[6]=y[p+1],t[5]=y[p+2],t[4]=y[p+3],t[3]=y[p+4],t[2]=y[p+5],t[1]=y[p+6],t[0]=y[p+7],i[0]}r.readDoubleLE=e?c:d,r.readDoubleBE=e?d:c}():function(){function i(e,s,l,c,d,y){var p=c<0?1:0;if(p&&(c=-c),c===0)e(0,d,y+s),e(1/c>0?0:2147483648,d,y+l);else if(isNaN(c))e(0,d,y+s),e(2146959360,d,y+l);else if(c>17976931348623157e292)e(0,d,y+s),e((p<<31|2146435072)>>>0,d,y+l);else{var w;if(c<22250738585072014e-324)w=c/5e-324,e(w>>>0,d,y+s),e((p<<31|w/4294967296)>>>0,d,y+l);else{var b=Math.floor(Math.log(c)/Math.LN2);b===1024&&(b=1023),w=c*Math.pow(2,-b),e(w*4503599627370496>>>0,d,y+s),e((p<<31|b+1023<<20|w*1048576&1048575)>>>0,d,y+l)}}}r.writeDoubleLE=i.bind(null,o,0,4),r.writeDoubleBE=i.bind(null,a,4,0);function t(e,s,l,c,d){var y=e(c,d+s),p=e(c,d+l),w=(p>>31)*2+1,b=p>>>20&2047,g=4294967296*(p&1048575)+y;return b===2047?g?NaN:w*(1/0):b===0?w*5e-324*g:w*Math.pow(2,b-1075)*(g+4503599627370496)}r.readDoubleLE=t.bind(null,u,0,4),r.readDoubleBE=t.bind(null,n,4,0)}(),r}function o(r,i,t){i[t]=r&255,i[t+1]=r>>>8&255,i[t+2]=r>>>16&255,i[t+3]=r>>>24}function a(r,i,t){i[t]=r>>>24,i[t+1]=r>>>16&255,i[t+2]=r>>>8&255,i[t+3]=r&255}function u(r,i){return(r[i]|r[i+1]<<8|r[i+2]<<16|r[i+3]<<24)>>>0}function n(r,i){return(r[i]<<24|r[i+1]<<16|r[i+2]<<8|r[i+3])>>>0}return float}var inquire_1,hasRequiredInquire;function requireInquire(){if(hasRequiredInquire)return inquire_1;hasRequiredInquire=1,inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(h){}return null}return inquire_1}var utf8={},hasRequiredUtf8;function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(h){var o=h;o.length=function(u){for(var n=0,r=0,i=0;i<u.length;++i)r=u.charCodeAt(i),r<128?n+=1:r<2048?n+=2:(r&64512)===55296&&(u.charCodeAt(i+1)&64512)===56320?(++i,n+=4):n+=3;return n},o.read=function(u,n,r){var i=r-n;if(i<1)return"";for(var t=null,e=[],s=0,l;n<r;)l=u[n++],l<128?e[s++]=l:l>191&&l<224?e[s++]=(l&31)<<6|u[n++]&63:l>239&&l<365?(l=((l&7)<<18|(u[n++]&63)<<12|(u[n++]&63)<<6|u[n++]&63)-65536,e[s++]=55296+(l>>10),e[s++]=56320+(l&1023)):e[s++]=(l&15)<<12|(u[n++]&63)<<6|u[n++]&63,s>8191&&((t||(t=[])).push(String.fromCharCode.apply(String,e)),s=0);return t?(s&&t.push(String.fromCharCode.apply(String,e.slice(0,s))),t.join("")):String.fromCharCode.apply(String,e.slice(0,s))},o.write=function(u,n,r){for(var i=r,t,e,s=0;s<u.length;++s)t=u.charCodeAt(s),t<128?n[r++]=t:t<2048?(n[r++]=t>>6|192,n[r++]=t&63|128):(t&64512)===55296&&((e=u.charCodeAt(s+1))&64512)===56320?(t=65536+((t&1023)<<10)+(e&1023),++s,n[r++]=t>>18|240,n[r++]=t>>12&63|128,n[r++]=t>>6&63|128,n[r++]=t&63|128):(n[r++]=t>>12|224,n[r++]=t>>6&63|128,n[r++]=t&63|128);return r-i}}(utf8)),utf8}var pool_1,hasRequiredPool;function requirePool(){if(hasRequiredPool)return pool_1;hasRequiredPool=1,pool_1=h;function h(o,a,u){var n=u||8192,r=n>>>1,i=null,t=n;return function(s){if(s<1||s>r)return o(s);t+s>n&&(i=o(n),t=0);var l=a.call(i,t,t+=s);return t&7&&(t=(t|7)+1),l}}return pool_1}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=o;var h=requireMinimal$1();function o(r,i){this.lo=r>>>0,this.hi=i>>>0}var a=o.zero=new o(0,0);a.toNumber=function(){return 0},a.zzEncode=a.zzDecode=function(){return this},a.length=function(){return 1};var u=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(i){if(i===0)return a;var t=i<0;t&&(i=-i);var e=i>>>0,s=(i-e)/4294967296>>>0;return t&&(s=~s>>>0,e=~e>>>0,++e>4294967295&&(e=0,++s>4294967295&&(s=0))),new o(e,s)},o.from=function(i){if(typeof i=="number")return o.fromNumber(i);if(h.isString(i))if(h.Long)i=h.Long.fromString(i);else return o.fromNumber(parseInt(i,10));return i.low||i.high?new o(i.low>>>0,i.high>>>0):a},o.prototype.toNumber=function(i){if(!i&&this.hi>>>31){var t=~this.lo+1>>>0,e=~this.hi>>>0;return t||(e=e+1>>>0),-(t+e*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(i){return h.Long?new h.Long(this.lo|0,this.hi|0,!!i):{low:this.lo|0,high:this.hi|0,unsigned:!!i}};var n=String.prototype.charCodeAt;return o.fromHash=function(i){return i===u?a:new o((n.call(i,0)|n.call(i,1)<<8|n.call(i,2)<<16|n.call(i,3)<<24)>>>0,(n.call(i,4)|n.call(i,5)<<8|n.call(i,6)<<16|n.call(i,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var i=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^i)>>>0,this.lo=(this.lo<<1^i)>>>0,this},o.prototype.zzDecode=function(){var i=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^i)>>>0,this.hi=(this.hi>>>1^i)>>>0,this},o.prototype.length=function(){var i=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,e=this.hi>>>24;return e===0?t===0?i<16384?i<128?1:2:i<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:e<128?9:10},longbits}var hasRequiredMinimal$1;function requireMinimal$1(){return hasRequiredMinimal$1||(hasRequiredMinimal$1=1,function(h){var o=h;o.asPromise=requireAspromise(),o.base64=requireBase64(),o.EventEmitter=requireEventemitter(),o.float=requireFloat(),o.inquire=requireInquire(),o.utf8=requireUtf8(),o.pool=requirePool(),o.LongBits=requireLongbits(),o.isNode=!!(typeof commonjsGlobal<"u"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),o.global=o.isNode&&commonjsGlobal||typeof window<"u"&&window||typeof self<"u"&&self||minimal$1,o.emptyArray=Object.freeze?Object.freeze([]):[],o.emptyObject=Object.freeze?Object.freeze({}):{},o.isInteger=Number.isInteger||function(r){return typeof r=="number"&&isFinite(r)&&Math.floor(r)===r},o.isString=function(r){return typeof r=="string"||r instanceof String},o.isObject=function(r){return r&&typeof r=="object"},o.isset=o.isSet=function(r,i){var t=r[i];return t!=null&&r.hasOwnProperty(i)?typeof t!="object"||(Array.isArray(t)?t.length:Object.keys(t).length)>0:!1},o.Buffer=function(){try{var n=o.inquire("buffer").Buffer;return n.prototype.utf8Write?n:null}catch{return null}}(),o._Buffer_from=null,o._Buffer_allocUnsafe=null,o.newBuffer=function(r){return typeof r=="number"?o.Buffer?o._Buffer_allocUnsafe(r):new o.Array(r):o.Buffer?o._Buffer_from(r):typeof Uint8Array>"u"?r:new Uint8Array(r)},o.Array=typeof Uint8Array<"u"?Uint8Array:Array,o.Long=o.global.dcodeIO&&o.global.dcodeIO.Long||o.global.Long||o.inquire("long"),o.key2Re=/^true|false|0|1$/,o.key32Re=/^-?(?:0|[1-9][0-9]*)$/,o.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,o.longToHash=function(r){return r?o.LongBits.from(r).toHash():o.LongBits.zeroHash},o.longFromHash=function(r,i){var t=o.LongBits.fromHash(r);return o.Long?o.Long.fromBits(t.lo,t.hi,i):t.toNumber(!!i)};function a(n,r,i){for(var t=Object.keys(r),e=0;e<t.length;++e)(n[t[e]]===void 0||!i)&&(n[t[e]]=r[t[e]]);return n}o.merge=a,o.lcFirst=function(r){return r.charAt(0).toLowerCase()+r.substring(1)};function u(n){function r(i,t){if(!(this instanceof r))return new r(i,t);Object.defineProperty(this,"message",{get:function(){return i}}),Error.captureStackTrace?Error.captureStackTrace(this,r):Object.defineProperty(this,"stack",{value:new Error().stack||""}),t&&a(this,t)}return r.prototype=Object.create(Error.prototype,{constructor:{value:r,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return n},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),r}o.newError=u,o.ProtocolError=u("ProtocolError"),o.oneOfGetter=function(r){for(var i={},t=0;t<r.length;++t)i[r[t]]=1;return function(){for(var e=Object.keys(this),s=e.length-1;s>-1;--s)if(i[e[s]]===1&&this[e[s]]!==void 0&&this[e[s]]!==null)return e[s]}},o.oneOfSetter=function(r){return function(i){for(var t=0;t<r.length;++t)r[t]!==i&&delete this[r[t]]}},o.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},o._configure=function(){var n=o.Buffer;if(!n){o._Buffer_from=o._Buffer_allocUnsafe=null;return}o._Buffer_from=n.from!==Uint8Array.from&&n.from||function(i,t){return new n(i,t)},o._Buffer_allocUnsafe=n.allocUnsafe||function(i){return new n(i)}}}(minimal$1)),minimal$1}var writer,hasRequiredWriter;function requireWriter(){if(hasRequiredWriter)return writer;hasRequiredWriter=1,writer=e;var h=requireMinimal$1(),o,a=h.LongBits,u=h.base64,n=h.utf8;function r(b,g,k){this.fn=b,this.len=g,this.next=void 0,this.val=k}function i(){}function t(b){this.head=b.head,this.tail=b.tail,this.len=b.len,this.next=b.states}function e(){this.len=0,this.head=new r(i,0,0),this.tail=this.head,this.states=null}var s=function(){return h.Buffer?function(){return(e.create=function(){return new o})()}:function(){return new e}};e.create=s(),e.alloc=function(g){return new h.Array(g)},h.Array!==Array&&(e.alloc=h.pool(e.alloc,h.Array.prototype.subarray)),e.prototype._push=function(g,k,U){return this.tail=this.tail.next=new r(g,k,U),this.len+=k,this};function l(b,g,k){g[k]=b&255}function c(b,g,k){for(;b>127;)g[k++]=b&127|128,b>>>=7;g[k]=b}function d(b,g){this.len=b,this.next=void 0,this.val=g}d.prototype=Object.create(r.prototype),d.prototype.fn=c,e.prototype.uint32=function(g){return this.len+=(this.tail=this.tail.next=new d((g=g>>>0)<128?1:g<16384?2:g<2097152?3:g<268435456?4:5,g)).len,this},e.prototype.int32=function(g){return g<0?this._push(y,10,a.fromNumber(g)):this.uint32(g)},e.prototype.sint32=function(g){return this.uint32((g<<1^g>>31)>>>0)};function y(b,g,k){for(;b.hi;)g[k++]=b.lo&127|128,b.lo=(b.lo>>>7|b.hi<<25)>>>0,b.hi>>>=7;for(;b.lo>127;)g[k++]=b.lo&127|128,b.lo=b.lo>>>7;g[k++]=b.lo}e.prototype.uint64=function(g){var k=a.from(g);return this._push(y,k.length(),k)},e.prototype.int64=e.prototype.uint64,e.prototype.sint64=function(g){var k=a.from(g).zzEncode();return this._push(y,k.length(),k)},e.prototype.bool=function(g){return this._push(l,1,g?1:0)};function p(b,g,k){g[k]=b&255,g[k+1]=b>>>8&255,g[k+2]=b>>>16&255,g[k+3]=b>>>24}e.prototype.fixed32=function(g){return this._push(p,4,g>>>0)},e.prototype.sfixed32=e.prototype.fixed32,e.prototype.fixed64=function(g){var k=a.from(g);return this._push(p,4,k.lo)._push(p,4,k.hi)},e.prototype.sfixed64=e.prototype.fixed64,e.prototype.float=function(g){return this._push(h.float.writeFloatLE,4,g)},e.prototype.double=function(g){return this._push(h.float.writeDoubleLE,8,g)};var w=h.Array.prototype.set?function(g,k,U){k.set(g,U)}:function(g,k,U){for(var R=0;R<g.length;++R)k[U+R]=g[R]};return e.prototype.bytes=function(g){var k=g.length>>>0;if(!k)return this._push(l,1,0);if(h.isString(g)){var U=e.alloc(k=u.length(g));u.decode(g,U,0),g=U}return this.uint32(k)._push(w,k,g)},e.prototype.string=function(g){var k=n.length(g);return k?this.uint32(k)._push(n.write,k,g):this._push(l,1,0)},e.prototype.fork=function(){return this.states=new t(this),this.head=this.tail=new r(i,0,0),this.len=0,this},e.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new r(i,0,0),this.len=0),this},e.prototype.ldelim=function(){var g=this.head,k=this.tail,U=this.len;return this.reset().uint32(U),U&&(this.tail.next=g.next,this.tail=k,this.len+=U),this},e.prototype.finish=function(){for(var g=this.head.next,k=this.constructor.alloc(this.len),U=0;g;)g.fn(g.val,k,U),U+=g.len,g=g.next;return k},e._configure=function(b){o=b,e.create=s(),o._configure()},writer}var writer_buffer,hasRequiredWriter_buffer;function requireWriter_buffer(){if(hasRequiredWriter_buffer)return writer_buffer;hasRequiredWriter_buffer=1,writer_buffer=a;var h=requireWriter();(a.prototype=Object.create(h.prototype)).constructor=a;var o=requireMinimal$1();function a(){h.call(this)}a._configure=function(){a.alloc=o._Buffer_allocUnsafe,a.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(r,i,t){i.set(r,t)}:function(r,i,t){if(r.copy)r.copy(i,t,0,r.length);else for(var e=0;e<r.length;)i[t++]=r[e++]}},a.prototype.bytes=function(r){o.isString(r)&&(r=o._Buffer_from(r,"base64"));var i=r.length>>>0;return this.uint32(i),i&&this._push(a.writeBytesBuffer,i,r),this};function u(n,r,i){n.length<40?o.utf8.write(n,r,i):r.utf8Write?r.utf8Write(n,i):r.write(n,i)}return a.prototype.string=function(r){var i=o.Buffer.byteLength(r);return this.uint32(i),i&&this._push(u,i,r),this},a._configure(),writer_buffer}var reader,hasRequiredReader;function requireReader(){if(hasRequiredReader)return reader;hasRequiredReader=1,reader=r;var h=requireMinimal$1(),o,a=h.LongBits,u=h.utf8;function n(c,d){return RangeError("index out of range: "+c.pos+" + "+(d||1)+" > "+c.len)}function r(c){this.buf=c,this.pos=0,this.len=c.length}var i=typeof Uint8Array<"u"?function(d){if(d instanceof Uint8Array||Array.isArray(d))return new r(d);throw Error("illegal buffer")}:function(d){if(Array.isArray(d))return new r(d);throw Error("illegal buffer")},t=function(){return h.Buffer?function(y){return(r.create=function(w){return h.Buffer.isBuffer(w)?new o(w):i(w)})(y)}:i};r.create=t(),r.prototype._slice=h.Array.prototype.subarray||h.Array.prototype.slice,r.prototype.uint32=function(){var d=4294967295;return function(){if(d=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(d=(d|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(d=(d|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(d=(d|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(d=(d|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return d;if((this.pos+=5)>this.len)throw this.pos=this.len,n(this,10);return d}}(),r.prototype.int32=function(){return this.uint32()|0},r.prototype.sint32=function(){var d=this.uint32();return d>>>1^-(d&1)|0};function e(){var c=new a(0,0),d=0;if(this.len-this.pos>4){for(;d<4;++d)if(c.lo=(c.lo|(this.buf[this.pos]&127)<<d*7)>>>0,this.buf[this.pos++]<128)return c;if(c.lo=(c.lo|(this.buf[this.pos]&127)<<28)>>>0,c.hi=(c.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return c;d=0}else{for(;d<3;++d){if(this.pos>=this.len)throw n(this);if(c.lo=(c.lo|(this.buf[this.pos]&127)<<d*7)>>>0,this.buf[this.pos++]<128)return c}return c.lo=(c.lo|(this.buf[this.pos++]&127)<<d*7)>>>0,c}if(this.len-this.pos>4){for(;d<5;++d)if(c.hi=(c.hi|(this.buf[this.pos]&127)<<d*7+3)>>>0,this.buf[this.pos++]<128)return c}else for(;d<5;++d){if(this.pos>=this.len)throw n(this);if(c.hi=(c.hi|(this.buf[this.pos]&127)<<d*7+3)>>>0,this.buf[this.pos++]<128)return c}throw Error("invalid varint encoding")}r.prototype.bool=function(){return this.uint32()!==0};function s(c,d){return(c[d-4]|c[d-3]<<8|c[d-2]<<16|c[d-1]<<24)>>>0}r.prototype.fixed32=function(){if(this.pos+4>this.len)throw n(this,4);return s(this.buf,this.pos+=4)},r.prototype.sfixed32=function(){if(this.pos+4>this.len)throw n(this,4);return s(this.buf,this.pos+=4)|0};function l(){if(this.pos+8>this.len)throw n(this,8);return new a(s(this.buf,this.pos+=4),s(this.buf,this.pos+=4))}return r.prototype.float=function(){if(this.pos+4>this.len)throw n(this,4);var d=h.float.readFloatLE(this.buf,this.pos);return this.pos+=4,d},r.prototype.double=function(){if(this.pos+8>this.len)throw n(this,4);var d=h.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,d},r.prototype.bytes=function(){var d=this.uint32(),y=this.pos,p=this.pos+d;if(p>this.len)throw n(this,d);if(this.pos+=d,Array.isArray(this.buf))return this.buf.slice(y,p);if(y===p){var w=h.Buffer;return w?w.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,y,p)},r.prototype.string=function(){var d=this.bytes();return u.read(d,0,d.length)},r.prototype.skip=function(d){if(typeof d=="number"){if(this.pos+d>this.len)throw n(this,d);this.pos+=d}else do if(this.pos>=this.len)throw n(this);while(this.buf[this.pos++]&128);return this},r.prototype.skipType=function(c){switch(c){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(c=this.uint32()&7)!==4;)this.skipType(c);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+c+" at offset "+this.pos)}return this},r._configure=function(c){o=c,r.create=t(),o._configure();var d=h.Long?"toLong":"toNumber";h.merge(r.prototype,{int64:function(){return e.call(this)[d](!1)},uint64:function(){return e.call(this)[d](!0)},sint64:function(){return e.call(this).zzDecode()[d](!1)},fixed64:function(){return l.call(this)[d](!0)},sfixed64:function(){return l.call(this)[d](!1)}})},reader}var reader_buffer,hasRequiredReader_buffer;function requireReader_buffer(){if(hasRequiredReader_buffer)return reader_buffer;hasRequiredReader_buffer=1,reader_buffer=a;var h=requireReader();(a.prototype=Object.create(h.prototype)).constructor=a;var o=requireMinimal$1();function a(u){h.call(this,u)}return a._configure=function(){o.Buffer&&(a.prototype._slice=o.Buffer.prototype.slice)},a.prototype.string=function(){var n=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+n,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+n,this.len))},a._configure(),reader_buffer}var rpc={},service,hasRequiredService;function requireService(){if(hasRequiredService)return service;hasRequiredService=1,service=o;var h=requireMinimal$1();(o.prototype=Object.create(h.EventEmitter.prototype)).constructor=o;function o(a,u,n){if(typeof a!="function")throw TypeError("rpcImpl must be a function");h.EventEmitter.call(this),this.rpcImpl=a,this.requestDelimited=!!u,this.responseDelimited=!!n}return o.prototype.rpcCall=function a(u,n,r,i,t){if(!i)throw TypeError("request must be specified");var e=this;if(!t)return h.asPromise(a,e,u,n,r,i);if(!e.rpcImpl){setTimeout(function(){t(Error("already ended"))},0);return}try{return e.rpcImpl(u,n[e.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(l,c){if(l)return e.emit("error",l,u),t(l);if(c===null){e.end(!0);return}if(!(c instanceof r))try{c=r[e.responseDelimited?"decodeDelimited":"decode"](c)}catch(d){return e.emit("error",d,u),t(d)}return e.emit("data",c,u),t(null,c)})}catch(s){e.emit("error",s,u),setTimeout(function(){t(s)},0);return}},o.prototype.end=function(u){return this.rpcImpl&&(u||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},service}var hasRequiredRpc;function requireRpc(){return hasRequiredRpc||(hasRequiredRpc=1,function(h){var o=h;o.Service=requireService()}(rpc)),rpc}var roots,hasRequiredRoots;function requireRoots(){return hasRequiredRoots||(hasRequiredRoots=1,roots={}),roots}var hasRequiredIndexMinimal;function requireIndexMinimal(){return hasRequiredIndexMinimal||(hasRequiredIndexMinimal=1,function(h){var o=h;o.build="minimal",o.Writer=requireWriter(),o.BufferWriter=requireWriter_buffer(),o.Reader=requireReader(),o.BufferReader=requireReader_buffer(),o.util=requireMinimal$1(),o.rpc=requireRpc(),o.roots=requireRoots(),o.configure=a;function a(){o.util._configure(),o.Writer._configure(o.BufferWriter),o.Reader._configure(o.BufferReader)}a()}(indexMinimal)),indexMinimal}var minimal,hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,minimal=requireIndexMinimal()),minimal}var minimalExports=requireMinimal();const $Reader=minimalExports.Reader,$Writer=minimalExports.Writer,$util=minimalExports.util,$root=minimalExports.roots.default||(minimalExports.roots.default={}),com=$root.com=(()=>{const h={};return h.quick=function(){const o={};return o.voice=function(){const a={};return a.proto=function(){const u={};return u.SeiData=function(){function n(r){if(r)for(let i=Object.keys(r),t=0;t<i.length;++t)r[i[t]]!=null&&(this[i[t]]=r[i[t]])}return n.prototype.event=0,n.prototype.data=$util.newBuffer([]),n.prototype.compress=!1,n.prototype.version=0,n.create=function(i){return new n(i)},n.encode=function(i,t){return t||(t=$Writer.create()),i.event!=null&&Object.hasOwnProperty.call(i,"event")&&t.uint32(8).int32(i.event),i.data!=null&&Object.hasOwnProperty.call(i,"data")&&t.uint32(18).bytes(i.data),i.compress!=null&&Object.hasOwnProperty.call(i,"compress")&&t.uint32(24).bool(i.compress),i.version!=null&&Object.hasOwnProperty.call(i,"version")&&t.uint32(32).int32(i.version),t},n.encodeDelimited=function(i,t){return this.encode(i,t).ldelim()},n.decode=function(i,t,e){i instanceof $Reader||(i=$Reader.create(i));let s=t===void 0?i.len:i.pos+t,l=new $root.com.quick.voice.proto.SeiData;for(;i.pos<s;){let c=i.uint32();if(c===e)break;switch(c>>>3){case 1:{l.event=i.int32();break}case 2:{l.data=i.bytes();break}case 3:{l.compress=i.bool();break}case 4:{l.version=i.int32();break}default:i.skipType(c&7);break}}return l},n.decodeDelimited=function(i){return i instanceof $Reader||(i=new $Reader(i)),this.decode(i,i.uint32())},n.verify=function(i){if(typeof i!="object"||i===null)return"object expected";if(i.event!=null&&i.hasOwnProperty("event"))switch(i.event){default:return"event: enum value expected";case 0:case 1:break}return i.data!=null&&i.hasOwnProperty("data")&&!(i.data&&typeof i.data.length=="number"||$util.isString(i.data))?"data: buffer expected":i.compress!=null&&i.hasOwnProperty("compress")&&typeof i.compress!="boolean"?"compress: boolean expected":i.version!=null&&i.hasOwnProperty("version")&&!$util.isInteger(i.version)?"version: integer expected":null},n.fromObject=function(i){if(i instanceof $root.com.quick.voice.proto.SeiData)return i;let t=new $root.com.quick.voice.proto.SeiData;switch(i.event){default:if(typeof i.event=="number"){t.event=i.event;break}break;case"Layout":case 0:t.event=0;break;case"Custom":case 1:t.event=1;break}return i.data!=null&&(typeof i.data=="string"?$util.base64.decode(i.data,t.data=$util.newBuffer($util.base64.length(i.data)),0):i.data.length>=0&&(t.data=i.data)),i.compress!=null&&(t.compress=!!i.compress),i.version!=null&&(t.version=i.version|0),t},n.toObject=function(i,t){t||(t={});let e={};return t.defaults&&(e.event=t.enums===String?"Layout":0,t.bytes===String?e.data="":(e.data=[],t.bytes!==Array&&(e.data=$util.newBuffer(e.data))),e.compress=!1,e.version=0),i.event!=null&&i.hasOwnProperty("event")&&(e.event=t.enums===String?$root.com.quick.voice.proto.EventType[i.event]===void 0?i.event:$root.com.quick.voice.proto.EventType[i.event]:i.event),i.data!=null&&i.hasOwnProperty("data")&&(e.data=t.bytes===String?$util.base64.encode(i.data,0,i.data.length):t.bytes===Array?Array.prototype.slice.call(i.data):i.data),i.compress!=null&&i.hasOwnProperty("compress")&&(e.compress=i.compress),i.version!=null&&i.hasOwnProperty("version")&&(e.version=i.version),e},n.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},n.getTypeUrl=function(i){return i===void 0&&(i="type.googleapis.com"),i+"/com.quick.voice.proto.SeiData"},n}(),u.EventType=function(){const n={},r=Object.create(n);return r[n[0]="Layout"]=0,r[n[1]="Custom"]=1,r}(),u.LayoutData=function(){function n(i){if(this.userMap={},i)for(let t=Object.keys(i),e=0;e<t.length;++e)i[t[e]]!=null&&(this[t[e]]=i[t[e]])}n.prototype.roomId="",n.prototype.type=0,n.prototype.userMap=$util.emptyObject,n.prototype.globalCustom=null;let r;return Object.defineProperty(n.prototype,"_globalCustom",{get:$util.oneOfGetter(r=["globalCustom"]),set:$util.oneOfSetter(r)}),n.create=function(t){return new n(t)},n.encode=function(t,e){if(e||(e=$Writer.create()),t.roomId!=null&&Object.hasOwnProperty.call(t,"roomId")&&e.uint32(10).string(t.roomId),t.type!=null&&Object.hasOwnProperty.call(t,"type")&&e.uint32(16).int32(t.type),t.userMap!=null&&Object.hasOwnProperty.call(t,"userMap"))for(let s=Object.keys(t.userMap),l=0;l<s.length;++l)e.uint32(26).fork().uint32(10).string(s[l]),$root.com.quick.voice.proto.UserInfo.encode(t.userMap[s[l]],e.uint32(18).fork()).ldelim().ldelim();return t.globalCustom!=null&&Object.hasOwnProperty.call(t,"globalCustom")&&$root.com.quick.voice.proto.CustomInfo.encode(t.globalCustom,e.uint32(34).fork()).ldelim(),e},n.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},n.decode=function(t,e,s){t instanceof $Reader||(t=$Reader.create(t));let l=e===void 0?t.len:t.pos+e,c=new $root.com.quick.voice.proto.LayoutData,d,y;for(;t.pos<l;){let p=t.uint32();if(p===s)break;switch(p>>>3){case 1:{c.roomId=t.string();break}case 2:{c.type=t.int32();break}case 3:{c.userMap===$util.emptyObject&&(c.userMap={});let w=t.uint32()+t.pos;for(d="",y=null;t.pos<w;){let b=t.uint32();switch(b>>>3){case 1:d=t.string();break;case 2:y=$root.com.quick.voice.proto.UserInfo.decode(t,t.uint32());break;default:t.skipType(b&7);break}}c.userMap[d]=y;break}case 4:{c.globalCustom=$root.com.quick.voice.proto.CustomInfo.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return c},n.decodeDelimited=function(t){return t instanceof $Reader||(t=new $Reader(t)),this.decode(t,t.uint32())},n.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.roomId!=null&&t.hasOwnProperty("roomId")&&!$util.isString(t.roomId))return"roomId: string expected";if(t.type!=null&&t.hasOwnProperty("type"))switch(t.type){default:return"type: enum value expected";case 0:case 1:case 2:break}if(t.userMap!=null&&t.hasOwnProperty("userMap")){if(!$util.isObject(t.userMap))return"userMap: object expected";let e=Object.keys(t.userMap);for(let s=0;s<e.length;++s){let l=$root.com.quick.voice.proto.UserInfo.verify(t.userMap[e[s]]);if(l)return"userMap."+l}}if(t.globalCustom!=null&&t.hasOwnProperty("globalCustom")){let e=$root.com.quick.voice.proto.CustomInfo.verify(t.globalCustom);if(e)return"globalCustom."+e}return null},n.fromObject=function(t){if(t instanceof $root.com.quick.voice.proto.LayoutData)return t;let e=new $root.com.quick.voice.proto.LayoutData;switch(t.roomId!=null&&(e.roomId=String(t.roomId)),t.type){default:if(typeof t.type=="number"){e.type=t.type;break}break;case"AudioAndVideo":case 0:e.type=0;break;case"OnlyAudio":case 1:e.type=1;break;case"OnlyVideo":case 2:e.type=2;break}if(t.userMap){if(typeof t.userMap!="object")throw TypeError(".com.quick.voice.proto.LayoutData.userMap: object expected");e.userMap={};for(let s=Object.keys(t.userMap),l=0;l<s.length;++l){if(typeof t.userMap[s[l]]!="object")throw TypeError(".com.quick.voice.proto.LayoutData.userMap: object expected");e.userMap[s[l]]=$root.com.quick.voice.proto.UserInfo.fromObject(t.userMap[s[l]])}}if(t.globalCustom!=null){if(typeof t.globalCustom!="object")throw TypeError(".com.quick.voice.proto.LayoutData.globalCustom: object expected");e.globalCustom=$root.com.quick.voice.proto.CustomInfo.fromObject(t.globalCustom)}return e},n.toObject=function(t,e){e||(e={});let s={};(e.objects||e.defaults)&&(s.userMap={}),e.defaults&&(s.roomId="",s.type=e.enums===String?"AudioAndVideo":0),t.roomId!=null&&t.hasOwnProperty("roomId")&&(s.roomId=t.roomId),t.type!=null&&t.hasOwnProperty("type")&&(s.type=e.enums===String?$root.com.quick.voice.proto.LayoutType[t.type]===void 0?t.type:$root.com.quick.voice.proto.LayoutType[t.type]:t.type);let l;if(t.userMap&&(l=Object.keys(t.userMap)).length){s.userMap={};for(let c=0;c<l.length;++c)s.userMap[l[c]]=$root.com.quick.voice.proto.UserInfo.toObject(t.userMap[l[c]],e)}return t.globalCustom!=null&&t.hasOwnProperty("globalCustom")&&(s.globalCustom=$root.com.quick.voice.proto.CustomInfo.toObject(t.globalCustom,e),e.oneofs&&(s._globalCustom="globalCustom")),s},n.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},n.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/com.quick.voice.proto.LayoutData"},n}(),u.UserInfo=function(){function n(i){if(this.audios=[],this.videos=[],i)for(let t=Object.keys(i),e=0;e<t.length;++e)i[t[e]]!=null&&(this[t[e]]=i[t[e]])}n.prototype.id="",n.prototype.audios=$util.emptyArray,n.prototype.videos=$util.emptyArray,n.prototype.custom=null;let r;return Object.defineProperty(n.prototype,"_custom",{get:$util.oneOfGetter(r=["custom"]),set:$util.oneOfSetter(r)}),n.create=function(t){return new n(t)},n.encode=function(t,e){if(e||(e=$Writer.create()),t.id!=null&&Object.hasOwnProperty.call(t,"id")&&e.uint32(10).string(t.id),t.audios!=null&&t.audios.length)for(let s=0;s<t.audios.length;++s)$root.com.quick.voice.proto.AudioInfo.encode(t.audios[s],e.uint32(18).fork()).ldelim();if(t.videos!=null&&t.videos.length)for(let s=0;s<t.videos.length;++s)$root.com.quick.voice.proto.VideoInfo.encode(t.videos[s],e.uint32(26).fork()).ldelim();return t.custom!=null&&Object.hasOwnProperty.call(t,"custom")&&$root.com.quick.voice.proto.CustomInfo.encode(t.custom,e.uint32(34).fork()).ldelim(),e},n.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},n.decode=function(t,e,s){t instanceof $Reader||(t=$Reader.create(t));let l=e===void 0?t.len:t.pos+e,c=new $root.com.quick.voice.proto.UserInfo;for(;t.pos<l;){let d=t.uint32();if(d===s)break;switch(d>>>3){case 1:{c.id=t.string();break}case 2:{c.audios&&c.audios.length||(c.audios=[]),c.audios.push($root.com.quick.voice.proto.AudioInfo.decode(t,t.uint32()));break}case 3:{c.videos&&c.videos.length||(c.videos=[]),c.videos.push($root.com.quick.voice.proto.VideoInfo.decode(t,t.uint32()));break}case 4:{c.custom=$root.com.quick.voice.proto.CustomInfo.decode(t,t.uint32());break}default:t.skipType(d&7);break}}return c},n.decodeDelimited=function(t){return t instanceof $Reader||(t=new $Reader(t)),this.decode(t,t.uint32())},n.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.id!=null&&t.hasOwnProperty("id")&&!$util.isString(t.id))return"id: string expected";if(t.audios!=null&&t.hasOwnProperty("audios")){if(!Array.isArray(t.audios))return"audios: array expected";for(let e=0;e<t.audios.length;++e){let s=$root.com.quick.voice.proto.AudioInfo.verify(t.audios[e]);if(s)return"audios."+s}}if(t.videos!=null&&t.hasOwnProperty("videos")){if(!Array.isArray(t.videos))return"videos: array expected";for(let e=0;e<t.videos.length;++e){let s=$root.com.quick.voice.proto.VideoInfo.verify(t.videos[e]);if(s)return"videos."+s}}if(t.custom!=null&&t.hasOwnProperty("custom")){let e=$root.com.quick.voice.proto.CustomInfo.verify(t.custom);if(e)return"custom."+e}return null},n.fromObject=function(t){if(t instanceof $root.com.quick.voice.proto.UserInfo)return t;let e=new $root.com.quick.voice.proto.UserInfo;if(t.id!=null&&(e.id=String(t.id)),t.audios){if(!Array.isArray(t.audios))throw TypeError(".com.quick.voice.proto.UserInfo.audios: array expected");e.audios=[];for(let s=0;s<t.audios.length;++s){if(typeof t.audios[s]!="object")throw TypeError(".com.quick.voice.proto.UserInfo.audios: object expected");e.audios[s]=$root.com.quick.voice.proto.AudioInfo.fromObject(t.audios[s])}}if(t.videos){if(!Array.isArray(t.videos))throw TypeError(".com.quick.voice.proto.UserInfo.videos: array expected");e.videos=[];for(let s=0;s<t.videos.length;++s){if(typeof t.videos[s]!="object")throw TypeError(".com.quick.voice.proto.UserInfo.videos: object expected");e.videos[s]=$root.com.quick.voice.proto.VideoInfo.fromObject(t.videos[s])}}if(t.custom!=null){if(typeof t.custom!="object")throw TypeError(".com.quick.voice.proto.UserInfo.custom: object expected");e.custom=$root.com.quick.voice.proto.CustomInfo.fromObject(t.custom)}return e},n.toObject=function(t,e){e||(e={});let s={};if((e.arrays||e.defaults)&&(s.audios=[],s.videos=[]),e.defaults&&(s.id=""),t.id!=null&&t.hasOwnProperty("id")&&(s.id=t.id),t.audios&&t.audios.length){s.audios=[];for(let l=0;l<t.audios.length;++l)s.audios[l]=$root.com.quick.voice.proto.AudioInfo.toObject(t.audios[l],e)}if(t.videos&&t.videos.length){s.videos=[];for(let l=0;l<t.videos.length;++l)s.videos[l]=$root.com.quick.voice.proto.VideoInfo.toObject(t.videos[l],e)}return t.custom!=null&&t.hasOwnProperty("custom")&&(s.custom=$root.com.quick.voice.proto.CustomInfo.toObject(t.custom,e),e.oneofs&&(s._custom="custom")),s},n.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},n.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/com.quick.voice.proto.UserInfo"},n}(),u.AudioInfo=function(){function n(i){if(i)for(let t=Object.keys(i),e=0;e<t.length;++e)i[t[e]]!=null&&(this[t[e]]=i[t[e]])}n.prototype.type=0,n.prototype.isEnable=!1,n.prototype.isMute=!1,n.prototype.volume=0,n.prototype.updateTime=null;let r;return Object.defineProperty(n.prototype,"_updateTime",{get:$util.oneOfGetter(r=["updateTime"]),set:$util.oneOfSetter(r)}),n.create=function(t){return new n(t)},n.encode=function(t,e){return e||(e=$Writer.create()),t.type!=null&&Object.hasOwnProperty.call(t,"type")&&e.uint32(8).int32(t.type),t.isEnable!=null&&Object.hasOwnProperty.call(t,"isEnable")&&e.uint32(16).bool(t.isEnable),t.isMute!=null&&Object.hasOwnProperty.call(t,"isMute")&&e.uint32(24).bool(t.isMute),t.volume!=null&&Object.hasOwnProperty.call(t,"volume")&&e.uint32(33).double(t.volume),t.updateTime!=null&&Object.hasOwnProperty.call(t,"updateTime")&&e.uint32(40).int64(t.updateTime),e},n.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},n.decode=function(t,e,s){t instanceof $Reader||(t=$Reader.create(t));let l=e===void 0?t.len:t.pos+e,c=new $root.com.quick.voice.proto.AudioInfo;for(;t.pos<l;){let d=t.uint32();if(d===s)break;switch(d>>>3){case 1:{c.type=t.int32();break}case 2:{c.isEnable=t.bool();break}case 3:{c.isMute=t.bool();break}case 4:{c.volume=t.double();break}case 5:{c.updateTime=t.int64();break}default:t.skipType(d&7);break}}return c},n.decodeDelimited=function(t){return t instanceof $Reader||(t=new $Reader(t)),this.decode(t,t.uint32())},n.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.type!=null&&t.hasOwnProperty("type"))switch(t.type){default:return"type: enum value expected";case 0:case 1:break}return t.isEnable!=null&&t.hasOwnProperty("isEnable")&&typeof t.isEnable!="boolean"?"isEnable: boolean expected":t.isMute!=null&&t.hasOwnProperty("isMute")&&typeof t.isMute!="boolean"?"isMute: boolean expected":t.volume!=null&&t.hasOwnProperty("volume")&&typeof t.volume!="number"?"volume: number expected":t.updateTime!=null&&t.hasOwnProperty("updateTime")&&!$util.isInteger(t.updateTime)&&!(t.updateTime&&$util.isInteger(t.updateTime.low)&&$util.isInteger(t.updateTime.high))?"updateTime: integer|Long expected":null},n.fromObject=function(t){if(t instanceof $root.com.quick.voice.proto.AudioInfo)return t;let e=new $root.com.quick.voice.proto.AudioInfo;switch(t.type){default:if(typeof t.type=="number"){e.type=t.type;break}break;case"Microphone":case 0:e.type=0;break;case"SystemVoice":case 1:e.type=1;break}return t.isEnable!=null&&(e.isEnable=!!t.isEnable),t.isMute!=null&&(e.isMute=!!t.isMute),t.volume!=null&&(e.volume=Number(t.volume)),t.updateTime!=null&&($util.Long?(e.updateTime=$util.Long.fromValue(t.updateTime)).unsigned=!1:typeof t.updateTime=="string"?e.updateTime=parseInt(t.updateTime,10):typeof t.updateTime=="number"?e.updateTime=t.updateTime:typeof t.updateTime=="object"&&(e.updateTime=new $util.LongBits(t.updateTime.low>>>0,t.updateTime.high>>>0).toNumber())),e},n.toObject=function(t,e){e||(e={});let s={};return e.defaults&&(s.type=e.enums===String?"Microphone":0,s.isEnable=!1,s.isMute=!1,s.volume=0),t.type!=null&&t.hasOwnProperty("type")&&(s.type=e.enums===String?$root.com.quick.voice.proto.AudioType[t.type]===void 0?t.type:$root.com.quick.voice.proto.AudioType[t.type]:t.type),t.isEnable!=null&&t.hasOwnProperty("isEnable")&&(s.isEnable=t.isEnable),t.isMute!=null&&t.hasOwnProperty("isMute")&&(s.isMute=t.isMute),t.volume!=null&&t.hasOwnProperty("volume")&&(s.volume=e.json&&!isFinite(t.volume)?String(t.volume):t.volume),t.updateTime!=null&&t.hasOwnProperty("updateTime")&&(typeof t.updateTime=="number"?s.updateTime=e.longs===String?String(t.updateTime):t.updateTime:s.updateTime=e.longs===String?$util.Long.prototype.toString.call(t.updateTime):e.longs===Number?new $util.LongBits(t.updateTime.low>>>0,t.updateTime.high>>>0).toNumber():t.updateTime,e.oneofs&&(s._updateTime="updateTime")),s},n.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},n.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/com.quick.voice.proto.AudioInfo"},n}(),u.VideoInfo=function(){function n(i){if(i)for(let t=Object.keys(i),e=0;e<t.length;++e)i[t[e]]!=null&&(this[t[e]]=i[t[e]])}n.prototype.type=0,n.prototype.isEnable=!1,n.prototype.isMute=!1,n.prototype.width=0,n.prototype.height=0,n.prototype.x=0,n.prototype.y=0,n.prototype.updateTime=null;let r;return Object.defineProperty(n.prototype,"_updateTime",{get:$util.oneOfGetter(r=["updateTime"]),set:$util.oneOfSetter(r)}),n.create=function(t){return new n(t)},n.encode=function(t,e){return e||(e=$Writer.create()),t.type!=null&&Object.hasOwnProperty.call(t,"type")&&e.uint32(8).int32(t.type),t.isEnable!=null&&Object.hasOwnProperty.call(t,"isEnable")&&e.uint32(16).bool(t.isEnable),t.isMute!=null&&Object.hasOwnProperty.call(t,"isMute")&&e.uint32(24).bool(t.isMute),t.width!=null&&Object.hasOwnProperty.call(t,"width")&&e.uint32(32).int32(t.width),t.height!=null&&Object.hasOwnProperty.call(t,"height")&&e.uint32(40).int32(t.height),t.x!=null&&Object.hasOwnProperty.call(t,"x")&&e.uint32(48).int32(t.x),t.y!=null&&Object.hasOwnProperty.call(t,"y")&&e.uint32(56).int32(t.y),t.updateTime!=null&&Object.hasOwnProperty.call(t,"updateTime")&&e.uint32(64).int64(t.updateTime),e},n.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},n.decode=function(t,e,s){t instanceof $Reader||(t=$Reader.create(t));let l=e===void 0?t.len:t.pos+e,c=new $root.com.quick.voice.proto.VideoInfo;for(;t.pos<l;){let d=t.uint32();if(d===s)break;switch(d>>>3){case 1:{c.type=t.int32();break}case 2:{c.isEnable=t.bool();break}case 3:{c.isMute=t.bool();break}case 4:{c.width=t.int32();break}case 5:{c.height=t.int32();break}case 6:{c.x=t.int32();break}case 7:{c.y=t.int32();break}case 8:{c.updateTime=t.int64();break}default:t.skipType(d&7);break}}return c},n.decodeDelimited=function(t){return t instanceof $Reader||(t=new $Reader(t)),this.decode(t,t.uint32())},n.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.type!=null&&t.hasOwnProperty("type"))switch(t.type){default:return"type: enum value expected";case 0:case 1:break}return t.isEnable!=null&&t.hasOwnProperty("isEnable")&&typeof t.isEnable!="boolean"?"isEnable: boolean expected":t.isMute!=null&&t.hasOwnProperty("isMute")&&typeof t.isMute!="boolean"?"isMute: boolean expected":t.width!=null&&t.hasOwnProperty("width")&&!$util.isInteger(t.width)?"width: integer expected":t.height!=null&&t.hasOwnProperty("height")&&!$util.isInteger(t.height)?"height: integer expected":t.x!=null&&t.hasOwnProperty("x")&&!$util.isInteger(t.x)?"x: integer expected":t.y!=null&&t.hasOwnProperty("y")&&!$util.isInteger(t.y)?"y: integer expected":t.updateTime!=null&&t.hasOwnProperty("updateTime")&&!$util.isInteger(t.updateTime)&&!(t.updateTime&&$util.isInteger(t.updateTime.low)&&$util.isInteger(t.updateTime.high))?"updateTime: integer|Long expected":null},n.fromObject=function(t){if(t instanceof $root.com.quick.voice.proto.VideoInfo)return t;let e=new $root.com.quick.voice.proto.VideoInfo;switch(t.type){default:if(typeof t.type=="number"){e.type=t.type;break}break;case"Camera":case 0:e.type=0;break;case"Screen":case 1:e.type=1;break}return t.isEnable!=null&&(e.isEnable=!!t.isEnable),t.isMute!=null&&(e.isMute=!!t.isMute),t.width!=null&&(e.width=t.width|0),t.height!=null&&(e.height=t.height|0),t.x!=null&&(e.x=t.x|0),t.y!=null&&(e.y=t.y|0),t.updateTime!=null&&($util.Long?(e.updateTime=$util.Long.fromValue(t.updateTime)).unsigned=!1:typeof t.updateTime=="string"?e.updateTime=parseInt(t.updateTime,10):typeof t.updateTime=="number"?e.updateTime=t.updateTime:typeof t.updateTime=="object"&&(e.updateTime=new $util.LongBits(t.updateTime.low>>>0,t.updateTime.high>>>0).toNumber())),e},n.toObject=function(t,e){e||(e={});let s={};return e.defaults&&(s.type=e.enums===String?"Camera":0,s.isEnable=!1,s.isMute=!1,s.width=0,s.height=0,s.x=0,s.y=0),t.type!=null&&t.hasOwnProperty("type")&&(s.type=e.enums===String?$root.com.quick.voice.proto.VideoType[t.type]===void 0?t.type:$root.com.quick.voice.proto.VideoType[t.type]:t.type),t.isEnable!=null&&t.hasOwnProperty("isEnable")&&(s.isEnable=t.isEnable),t.isMute!=null&&t.hasOwnProperty("isMute")&&(s.isMute=t.isMute),t.width!=null&&t.hasOwnProperty("width")&&(s.width=t.width),t.height!=null&&t.hasOwnProperty("height")&&(s.height=t.height),t.x!=null&&t.hasOwnProperty("x")&&(s.x=t.x),t.y!=null&&t.hasOwnProperty("y")&&(s.y=t.y),t.updateTime!=null&&t.hasOwnProperty("updateTime")&&(typeof t.updateTime=="number"?s.updateTime=e.longs===String?String(t.updateTime):t.updateTime:s.updateTime=e.longs===String?$util.Long.prototype.toString.call(t.updateTime):e.longs===Number?new $util.LongBits(t.updateTime.low>>>0,t.updateTime.high>>>0).toNumber():t.updateTime,e.oneofs&&(s._updateTime="updateTime")),s},n.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},n.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/com.quick.voice.proto.VideoInfo"},n}(),u.CustomInfo=function(){function n(i){if(this.customKeyMap={},i)for(let t=Object.keys(i),e=0;e<t.length;++e)i[t[e]]!=null&&(this[t[e]]=i[t[e]])}n.prototype.roomId="",n.prototype.customKeyMap=$util.emptyObject,n.prototype.updateTime=null;let r;return Object.defineProperty(n.prototype,"_updateTime",{get:$util.oneOfGetter(r=["updateTime"]),set:$util.oneOfSetter(r)}),n.create=function(t){return new n(t)},n.encode=function(t,e){if(e||(e=$Writer.create()),t.roomId!=null&&Object.hasOwnProperty.call(t,"roomId")&&e.uint32(10).string(t.roomId),t.customKeyMap!=null&&Object.hasOwnProperty.call(t,"customKeyMap"))for(let s=Object.keys(t.customKeyMap),l=0;l<s.length;++l)e.uint32(18).fork().uint32(10).string(s[l]).uint32(18).string(t.customKeyMap[s[l]]).ldelim();return t.updateTime!=null&&Object.hasOwnProperty.call(t,"updateTime")&&e.uint32(24).int64(t.updateTime),e},n.encodeDelimited=function(t,e){return this.encode(t,e).ldelim()},n.decode=function(t,e,s){t instanceof $Reader||(t=$Reader.create(t));let l=e===void 0?t.len:t.pos+e,c=new $root.com.quick.voice.proto.CustomInfo,d,y;for(;t.pos<l;){let p=t.uint32();if(p===s)break;switch(p>>>3){case 1:{c.roomId=t.string();break}case 2:{c.customKeyMap===$util.emptyObject&&(c.customKeyMap={});let w=t.uint32()+t.pos;for(d="",y="";t.pos<w;){let b=t.uint32();switch(b>>>3){case 1:d=t.string();break;case 2:y=t.string();break;default:t.skipType(b&7);break}}c.customKeyMap[d]=y;break}case 3:{c.updateTime=t.int64();break}default:t.skipType(p&7);break}}return c},n.decodeDelimited=function(t){return t instanceof $Reader||(t=new $Reader(t)),this.decode(t,t.uint32())},n.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.roomId!=null&&t.hasOwnProperty("roomId")&&!$util.isString(t.roomId))return"roomId: string expected";if(t.customKeyMap!=null&&t.hasOwnProperty("customKeyMap")){if(!$util.isObject(t.customKeyMap))return"customKeyMap: object expected";let e=Object.keys(t.customKeyMap);for(let s=0;s<e.length;++s)if(!$util.isString(t.customKeyMap[e[s]]))return"customKeyMap: string{k:string} expected"}return t.updateTime!=null&&t.hasOwnProperty("updateTime")&&!$util.isInteger(t.updateTime)&&!(t.updateTime&&$util.isInteger(t.updateTime.low)&&$util.isInteger(t.updateTime.high))?"updateTime: integer|Long expected":null},n.fromObject=function(t){if(t instanceof $root.com.quick.voice.proto.CustomInfo)return t;let e=new $root.com.quick.voice.proto.CustomInfo;if(t.roomId!=null&&(e.roomId=String(t.roomId)),t.customKeyMap){if(typeof t.customKeyMap!="object")throw TypeError(".com.quick.voice.proto.CustomInfo.customKeyMap: object expected");e.customKeyMap={};for(let s=Object.keys(t.customKeyMap),l=0;l<s.length;++l)e.customKeyMap[s[l]]=String(t.customKeyMap[s[l]])}return t.updateTime!=null&&($util.Long?(e.updateTime=$util.Long.fromValue(t.updateTime)).unsigned=!1:typeof t.updateTime=="string"?e.updateTime=parseInt(t.updateTime,10):typeof t.updateTime=="number"?e.updateTime=t.updateTime:typeof t.updateTime=="object"&&(e.updateTime=new $util.LongBits(t.updateTime.low>>>0,t.updateTime.high>>>0).toNumber())),e},n.toObject=function(t,e){e||(e={});let s={};(e.objects||e.defaults)&&(s.customKeyMap={}),e.defaults&&(s.roomId=""),t.roomId!=null&&t.hasOwnProperty("roomId")&&(s.roomId=t.roomId);let l;if(t.customKeyMap&&(l=Object.keys(t.customKeyMap)).length){s.customKeyMap={};for(let c=0;c<l.length;++c)s.customKeyMap[l[c]]=t.customKeyMap[l[c]]}return t.updateTime!=null&&t.hasOwnProperty("updateTime")&&(typeof t.updateTime=="number"?s.updateTime=e.longs===String?String(t.updateTime):t.updateTime:s.updateTime=e.longs===String?$util.Long.prototype.toString.call(t.updateTime):e.longs===Number?new $util.LongBits(t.updateTime.low>>>0,t.updateTime.high>>>0).toNumber():t.updateTime,e.oneofs&&(s._updateTime="updateTime")),s},n.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},n.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/com.quick.voice.proto.CustomInfo"},n}(),u.LayoutType=function(){const n={},r=Object.create(n);return r[n[0]="AudioAndVideo"]=0,r[n[1]="OnlyAudio"]=1,r[n[2]="OnlyVideo"]=2,r}(),u.AudioType=function(){const n={},r=Object.create(n);return r[n[0]="Microphone"]=0,r[n[1]="SystemVoice"]=1,r}(),u.VideoType=function(){const n={},r=Object.create(n);return r[n[0]="Camera"]=0,r[n[1]="Screen"]=1,r}(),u}(),a}(),o}(),h})(),createAudioInfo=()=>({remove:!1,isEnable:!1,updateTime:0,isMute:!1,volume:0}),createVideoInfo=()=>({remove:!1,isEnable:!1,updateTime:0,isMute:!1,sx:0,sy:0,sw:0,sh:0});class RoomUser{constructor(){m(this,"userId","");m(this,"mc_audio");m(this,"mc_video");m(this,"ss_audio");m(this,"ss_video");m(this,"updateTime",0);m(this,"getUpdateTimeKey",()=>{const o=[];return this.mc_audio&&o.push(this.mc_audio.updateTime),this.mc_video&&o.push(this.mc_video.updateTime),this.ss_audio&&o.push(this.ss_audio.updateTime),this.ss_video&&o.push(this.ss_video.updateTime),o.join("_")});m(this,"init",o=>{var t,e,s,l;const{id:a,audios:u=[],videos:n=[]}=o;this.userId=a;const r=this.getUpdateTimeKey();this.mc_audio&&(this.mc_audio.remove=!0),this.mc_video&&(this.mc_video.remove=!0),this.ss_audio&&(this.ss_audio.remove=!0),this.ss_video&&(this.ss_video.remove=!0);for(const c of u){const{type:d=0,isEnable:y=!1,isMute:p=!1,updateTime:w,volume:b=0}=c;switch(d){case 0:{if(this.mc_audio||(this.mc_audio=createAudioInfo()),this.mc_audio.remove=!1,this.mc_audio.updateTime===w)break;this.mc_audio.isEnable=!!y,this.mc_audio.isMute=!!p,this.mc_audio.updateTime=Number(w),this.mc_audio.volume=Number(b)}break;case 1:{if(this.ss_audio||(this.ss_audio=createAudioInfo()),this.ss_audio.remove=!1,this.ss_audio.updateTime===w)break;this.ss_audio.isEnable=!!y,this.ss_audio.isMute=!!p,this.ss_audio.updateTime=Number(w),this.ss_audio.volume=Number(b)}break}}for(const c of n){const{type:d=0,isEnable:y,isMute:p,updateTime:w,width:b,height:g,x:k,y:U}=c;switch(d){case 0:{if(this.mc_video||(this.mc_video=createVideoInfo()),this.mc_video.remove=!1,this.mc_video.updateTime===w)break;this.mc_video.isEnable=!!y,this.mc_video.isMute=!!p,this.mc_video.updateTime=Number(w)||0,this.mc_video.sx=k||0,this.mc_video.sy=U||0,this.mc_video.sw=b||0,this.mc_video.sh=g||0}break;case 1:{if(this.ss_video||(this.ss_video=createVideoInfo()),this.ss_video.remove=!1,this.ss_video.updateTime===w)break;this.ss_video.isEnable=!!y,this.ss_video.isMute=!!p,this.ss_video.updateTime=Number(w)||0,this.ss_video.sx=k||0,this.ss_video.sy=U||0,this.ss_video.sw=b||0,this.ss_video.sh=g||0}break}}(t=this.mc_audio)!=null&&t.remove&&(this.mc_audio=void 0),(e=this.mc_video)!=null&&e.remove&&(this.mc_video=void 0),(s=this.ss_audio)!=null&&s.remove&&(this.ss_audio=void 0),(l=this.ss_video)!=null&&l.remove&&(this.ss_video=void 0);const i=this.getUpdateTimeKey();r!==i&&(this.updateTime=new Date().getTime())});m(this,"destroy",()=>{var o,a;(o=this.mc_video)!=null&&o.destroy&&this.mc_video.destroy(),(a=this.ss_video)!=null&&a.destroy&&this.ss_video.destroy(),this.mc_audio=void 0,this.mc_video=void 0,this.ss_audio=void 0,this.ss_video=void 0})}}const parseSEI=h=>{let o=0,a=0;for(;;){const n=h[o];if(a=a+n,o=o+1,n!==255)break}let u=0;for(;;){const n=h[o];if(u=u+n,o=o+1,n!==255)break}if(a===5){const n=h.slice(o,o+16),i=Array.from(n,p=>p.toString(16).padStart(2,"0")).join("");o=o+16;const t=u-16,e=h.slice(o,o+t),s=com.quick.voice.proto.SeiData.decode(e),{event:l=0}=s,c=s.data;let d;switch(l){case 0:d=com.quick.voice.proto.LayoutData.decode(s.data);break;case 1:d=com.quick.voice.proto.CustomInfo.decode(s.data);break}return{uuid:i,...s,event:l,data_remote:c,data:d}}};class QuickVoPlayer{constructor(){m(this,"displayMode","original");m(this,"prPlayer",new et);m(this,"dom");m(this,"room",{roomId:"",updateTime:"",author:"",version:""});m(this,"usersMap",new Map);m(this,"on",{users:o=>{}});m(this,"init",()=>{this.prPlayer.init()});m(this,"start",async o=>(this.stop(),this.prPlayer.start(o)));m(this,"stop",()=>{this.prPlayer.stop(),this.usersMap=new Map,this.room.roomId="",this.room.author="",this.room.updateTime="",this.room.version=""});m(this,"setMute",o=>{this.prPlayer.setMute(o)});m(this,"getStream",()=>this.prPlayer.getStream());m(this,"getAllUseUpdateKey",()=>{const o=[...this.usersMap.values()];return Array.from(o,u=>u.updateTime).join("_")});m(this,"checkAndCreateUser",(o,a)=>{var u,n;if(this.usersMap.has(o)){const r=this.usersMap.get(o);if(r==null||r.init(a),r!=null&&r.mc_video){const{sx:i,sy:t,sw:e,sh:s}=r.mc_video;(u=r==null?void 0:r.mc_video.worker)==null||u.setCut({sx:i,sy:t,sw:e,sh:s})}if(r!=null&&r.ss_video){const{sx:i,sy:t,sw:e,sh:s}=r.ss_video;(n=r==null?void 0:r.ss_video.worker)==null||n.setCut({sx:i,sy:t,sw:e,sh:s})}}else{const r=new RoomUser;if(this.usersMap.set(o,r),r.init(a),r){if(r.mc_video){const{sx:i,sy:t,sw:e,sh:s}=r.mc_video,l=`${r.userId}_mc_video`,{worker:c,stream:d,destroy:y}=this.prPlayer.cut.create(l,{sx:i,sy:t,sw:e,sh:s});r.mc_video.worker=c,this.displayMode==="original"&&c.setPause(!0),r.mc_video.stream=d,r.mc_video.destroy=()=>{y(),this.prPlayer.cut.remove(l),this.usersMap.delete(r.userId)}}if(r.ss_video){const{sx:i,sy:t,sw:e,sh:s}=r.ss_video,l=`${r.userId}_ss_video`,{worker:c,stream:d,destroy:y}=this.prPlayer.cut.create(l,{sx:i,sy:t,sw:e,sh:s});r.ss_video.worker=c,this.displayMode==="original"&&c.setPause(!0),r.ss_video.stream=d,r.ss_video.destroy=()=>{y(),this.prPlayer.cut.remove(l),this.usersMap.delete(r.userId)}}}}});m(this,"onSEI",o=>{try{const a=parseSEI(o);if(!a)return;const{event:u,data:n}=a;switch(u){case 0:{const{roomId:r,userMap:i}=n;if(r!==this.room.roomId)return;const t=this.getAllUseUpdateKey(),e=Object.keys(i);{const l=[...this.usersMap.values()];for(const c of l)e.includes(c.userId)||c==null||c.destroy()}for(const l of e){const c=i[l];this.checkAndCreateUser(l,c)}const s=this.getAllUseUpdateKey();if(t!==s&&this.on.users){const l=[...this.usersMap.values()],c=Array.from(l,({userId:d,mc_audio:y,mc_video:p,ss_audio:w,ss_video:b,updateTime:g})=>({userId:d,mc_audio:y,mc_video:p,ss_audio:w,ss_video:b,updateTime:g}));this.on.users(c)}}break;case 1:{const{roomId:r,updateTime:i}=n,{author:t,version:e}=n.customKeyMap;this.room.roomId=r,this.room.updateTime=i,this.room.author=t,this.room.version=e}break}}catch(a){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->onSEI: error",a)}});m(this,"setDisplayMode",o=>{var a,u,n,r,i,t,e,s;switch(this.displayMode=o,o){case"original":{this.prPlayer.setPause(!1);const l=[...this.usersMap.values()];for(const c of l)(u=(a=c.mc_video)==null?void 0:a.worker)==null||u.setPause(!0),(r=(n=c.ss_video)==null?void 0:n.worker)==null||r.setPause(!0)}break;case"cut":{this.prPlayer.setPause(!0);const l=[...this.usersMap.values()];for(const c of l)(t=(i=c.mc_video)==null?void 0:i.worker)==null||t.setPause(!1),(s=(e=c.ss_video)==null?void 0:e.worker)==null||s.setPause(!1)}break}});this.prPlayer.on.demuxer.sei=this.onSEI,this.prPlayer.on.demuxer.chunk=o=>{}}}exports.QuickVoPlayer=QuickVoPlayer,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quickvo-player",
|
|
3
3
|
"description": "基于web-codecs解码flv视频流并输出帧数据。",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"build": "tsc && vite build"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"pr-player": "^0.1.
|
|
22
|
+
"pr-player": "^0.1.5",
|
|
23
23
|
"protobufjs": "^7.5.4"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|