zego-express-engine-webrtc
Version:
zego webrtc express sdk
1 lines • 72.5 kB
JavaScript
!function(n,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("long"));else if("function"==typeof define&&define.amd)define(["long"],t);else{var r="object"==typeof exports?t(require("long")):t(n.long);for(var e in r)("object"==typeof exports?exports:n)[e]=r[e]}}("undefined"!=typeof self?self:this,(function(n){return function(){"use strict";var t={2362:function(){!function(){function n(n){this.zegoStream=n}Object.defineProperty(n.prototype,"active",{get:function(){return this.zegoStream.active},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"id",{get:function(){return this.zegoStream.id},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"videoCaptureStream",{get:function(){return this.zegoStream.originVideoStream},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"audioCaptureStream",{get:function(){return this.zegoStream.originAudioStream},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"stream",{get:function(){return this.zegoStream.stream},enumerable:!1,configurable:!0}),n.prototype.getAudioTracks=function(){return this.zegoStream.getAudioTracks()},n.prototype.getVideoTracks=function(){return this.zegoStream.getVideoTracks()},n.prototype.getTracks=function(){return this.zegoStream.getTracks()},Object.defineProperty(n.prototype,"videoDeviceId",{get:function(){return this.zegoStream.videoDeviceId},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"audioDeviceId",{get:function(){return this.zegoStream.audioDeviceId},enumerable:!1,configurable:!0}),n.prototype.on=function(n,t){return this.zegoStream.on(n,t)},n.prototype.off=function(n,t){return this.zegoStream.off(n,t)},n.prototype.startCaptureMicrophone=function(n){return this.zegoStream.startCaptureMicrophone(n)},n.prototype.startCaptureCamera=function(n){return this.zegoStream.startCaptureCamera(n)},n.prototype.startCaptureCameraAndMicrophone=function(n,t){return this.zegoStream.startCaptureCameraAndMicrophone(n,t)},n.prototype.startCaptureCustomAudio=function(n){return this.zegoStream.startCaptureCustomAudio(n)},n.prototype.startCaptureCustomVideo=function(n){return this.zegoStream.startCaptureCustomVideo(n)},n.prototype.startCaptureCustomVideoAndAudio=function(n,t){return this.zegoStream.startCaptureCustomVideoAndAudio(n,t)},n.prototype.startCaptureScreen=function(n){return this.zegoStream.startCaptureScreen(n)},n.prototype.startCaptureScreenWithAudio=function(n,t){return this.zegoStream.startCaptureScreenWithAudio(n,t)},n.prototype.stopCaptureAudio=function(){return this.zegoStream.stopCaptureAudio()},n.prototype.stopCaptureVideo=function(){return this.zegoStream.stopCaptureVideo()},n.prototype.playAudio=function(n){this.zegoStream.playAudio(n)},n.prototype.playCaptureAudio=function(n){this.zegoStream.playCaptureAudio(n)},n.prototype.playVideo=function(n,t){this.zegoStream.playVideo(n,t)},n.prototype.playCaptureVideo=function(n,t){this.zegoStream.playCaptureVideo(n,t)},n.prototype.takeStreamSnapshot=function(n){return this.zegoStream.takeStreamSnapshot(n)},n.prototype.resumeVideo=function(){return this.zegoStream.resumeVideo()},n.prototype.resumeAudio=function(){return this.zegoStream.resumeAudio()},n.prototype.stopVideo=function(){this.zegoStream.stopVideo()},n.prototype.stopAudio=function(){this.zegoStream.stopAudio()},n.prototype.stopPlayCaptureVideo=function(){this.zegoStream.stopPlayCaptureVideo()},n.prototype.stopPlayCaptureAudio=function(){this.zegoStream.stopPlayCaptureAudio()},n.prototype.setVolume=function(n){return this.zegoStream.setVolume(n)},n.prototype.useAudioOutputDevice=function(n){return this.zegoStream.setAudioOutputDevice(n)}}()},8627:function(n,t,r){r.d(t,{QYE:function(){return h},fzq:function(){return i},zcJ:function(){return g},zgL:function(){return o}});var e=r(8866),i={code:1103044,message:e.aw},g={code:1103074,message:"video track is not readable"},h={code:1103072,message:"not support beauty effect"},o={code:1103075,message:"beauty effect overload"}},8866:function(n,t,r){r.d(t,{Rl:function(){return a},Wk:function(){return c},aw:function(){return h},dO:function(){return o},fT:function(){return i},h2:function(){return u},l3:function(){return e},pt:function(){return g},qC:function(){return s}});r(7202),r(8627),r(4872);var e=Promise;var i="room not exist",g="device is not found",h="stream is not from zego",o="input param error",s="local stream wrong",u="no preview",c="publish stream no found",a="network is broken"},7202:function(n,t,r){r(6994)},4872:function(n,t,r){r.d(t,{TE:function(){return e},dr:function(){return i}});r(2362);function e(n){return void 0===n}function i(n){return n instanceof MediaStream}},327:function(n,t,r){r.d(t,{L:function(){return i}});var e=r(4872);function i(n,t){if(n&&!(0,e.dr)(n)&&n.zegoStream){if(t.info("cu.gs type:zego"),(0,e.dr)(n.stream))return n.stream;throw new Error("The ZegoLocalStream type requires first calling the capture api to capture the stream")}return n}},1350:function(n,t,r){r.d(t,{E:function(){return g}});var e=function(n,t,r,e){return new(r||(r=Promise))((function(i,g){function h(n){try{s(e.next(n))}catch(n){g(n)}}function o(n){try{s(e.throw(n))}catch(n){g(n)}}function s(n){var t;n.done?i(n.value):(t=n.value,t instanceof r?t:new r((function(n){n(t)}))).then(h,o)}s((e=e.apply(n,t||[])).next())}))},i=function(n,t){var r,e,i,g,h={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return g={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function o(o){return function(s){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;g&&(g=0,o[0]&&(h=0)),h;)try{if(r=1,e&&(i=2&o[0]?e.return:o[0]?e.throw||((i=e.return)&&i.call(e),0):e.next)&&!(i=i.call(e,o[1])).done)return i;switch(e=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return h.label++,{value:o[1],done:!1};case 5:h.label++,e=o[1],o=[0];continue;case 7:o=h.ops.pop(),h.trys.pop();continue;default:if(!(i=h.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){h=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){h.label=o[1];break}if(6===o[0]&&h.label<i[1]){h.label=i[1],i=o;break}if(i&&h.label<i[2]){h.label=i[2],h.ops.push(o);break}i[2]&&h.ops.pop(),h.trys.pop();continue}o=t.call(n,h)}catch(n){o=[6,n],e=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},g=function(){function n(){this.isFirstNode=!0,this.isLastNode=!0,this.hasAnother=!1}return n.prototype.connect=function(n){return e(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.next=n,this.output?[4,n.setInput(this.output)]:[3,2];case 1:t.sent(),t.label=2;case 2:return[2,n]}}))}))},n.prototype.disconnect=function(n){return e(this,void 0,void 0,(function(){return i(this,(function(t){switch(t.label){case 0:return this.next?[4,this.next.setInput(null,n)]:[3,2];case 1:t.sent(),this.next=void 0,t.label=2;case 2:return[2]}}))}))},n.prototype.setNodePos=function(n,t,r){void 0!==n&&(this.isFirstNode=n),void 0!==t&&(this.isLastNode=t),"boolean"==typeof r&&(this.hasAnother=!r)},n}()},6994:function(t){t.exports=n}},r={};function e(n){var i=r[n];if(void 0!==i)return i.exports;var g=r[n]={exports:{}};return t[n](g,g.exports,e),g.exports}e.d=function(n,t){for(var r in t)e.o(t,r)&&!e.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:t[r]})},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})};var i={};e.r(i),e.d(i,{BeautyEffect:function(){return Z}});var g=e(8627),h=e(8866),o=e(4872),s=e(327),u=function(n,t,r,e){return new(r||(r=Promise))((function(i,g){function h(n){try{s(e.next(n))}catch(n){g(n)}}function o(n){try{s(e.throw(n))}catch(n){g(n)}}function s(n){var t;n.done?i(n.value):(t=n.value,t instanceof r?t:new r((function(n){n(t)}))).then(h,o)}s((e=e.apply(n,t||[])).next())}))},c=function(n,t){var r,e,i,g,h={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return g={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function o(o){return function(s){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;g&&(g=0,o[0]&&(h=0)),h;)try{if(r=1,e&&(i=2&o[0]?e.return:o[0]?e.throw||((i=e.return)&&i.call(e),0):e.next)&&!(i=i.call(e,o[1])).done)return i;switch(e=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return h.label++,{value:o[1],done:!1};case 5:h.label++,e=o[1],o=[0];continue;case 7:o=h.ops.pop(),h.trys.pop();continue;default:if(!(i=h.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){h=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){h.label=o[1];break}if(6===o[0]&&h.label<i[1]){h.label=i[1],i=o;break}if(i&&h.label<i[2]){h.label=i[2],h.ops.push(o);break}i[2]&&h.ops.pop(),h.trys.pop();continue}o=t.call(n,h)}catch(n){o=[6,n],e=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},a="zc.p.0.sbe.3",v=function(){function n(n){this.t=n,this.recordedFrameCount=0,this.targetFrameRate=0,this.recordingDuration=0}return n.prototype.startRecordBeautyEffectOutput=function(n){return u(this,void 0,void 0,(function(){var t,r,e,i=this;return c(this,(function(g){switch(g.label){case 0:return t=6,this.recordID?(this.t.warn(a+" detector is already recording"),[2,{result:!0}]):(r=(new Date).getTime(),this.recordID=r,this.targetFrameRate=n,this.recordedFrameCount=0,this.recordingDuration=t,[4,new h.l3((function(n){window.setTimeout(n,1e3*i.recordingDuration)}))]);case 1:return g.sent(),this.recordID!==r?(this.recordID=void 0,[2,{result:!0}]):(this.recordID=void 0,e=this.recordedFrameCount/t,this.recordedFrameCount<this.targetFrameRate*this.recordingDuration/2?(this.t.warn(a+" detect effect overload: current fps: "+e),[2,{result:!1,targetFPS:this.targetFrameRate,currentFPS:e}]):(this.t.info(a+" detect effect current fps: "+e),[2,{result:!0}]))}}))}))},n.prototype.stopRecordBeautyEffectOutput=function(){this.recordedFrameCount=this.targetFrameRate=0,this.recordID=void 0},n.prototype.addFrame=function(){this.recordID&&(this.recordedFrameCount+=1)},n}();function f(n){for(var t=n,r="",e=0;e<t.length;e++){var i=t.charCodeAt(e),g=i;i>=65&&i<=90&&(g=(i-65-13+26)%26+65),i>=97&&i<=122&&(g=(i-97-13+26)%26+97),r+=String.fromCharCode(g)}return r}var b,A=function(){function n(n,t,r){this.gl=n,this.width=t,this.height=r,this.type="baseShader",this.program=null,this.program=null}return n.prototype.setEffectConfig=function(n){},n.prototype.setConstUniforms=function(){},n.prototype.resetResolution=function(n,t){this.width=n||this.width,this.height=t||this.height},n.prototype.render=function(){},n.prototype.renderPreTextures=function(n,t,r){},n.prototype.makeProgram=function(n,t){var r=this.gl,e=f(n),i=f(t),g=this.makeShader(e,r.VERTEX_SHADER),h=this.makeShader(i,r.FRAGMENT_SHADER),o=r.createProgram();return r.attachShader(o,g),r.attachShader(o,h),r.linkProgram(o),r.getProgramParameter(o,r.LINK_STATUS),o},n.prototype.release=function(){},n.prototype.makeShader=function(n,t){var r=this.gl,e=r.createShader(t);return r.shaderSource(e,n),r.compileShader(e),r.getShaderParameter(e,r.COMPILE_STATUS),e},n}(),l="nggevohgr irp4 nCbfvgvba;\nnggevohgr irp4 nGrkPbbeqvangr;\nhavsbez uvtuc sybng grkOyheJvqguBssfrg;\nhavsbez uvtuc sybng grkOyheUrvtugBssfrg;\ninelvat irp2 i_grkpbbeq0;\ninelvat irp4 grkgherFuvsg_1;\ninelvat irp4 grkgherFuvsg_2;\ninelvat irp4 grkgherFuvsg_3;\ninelvat irp4 grkgherFuvsg_4;\nibvq znva()\n{\n ty_Cbfvgvba = nCbfvgvba;\n i_grkpbbeq0 = nGrkPbbeqvangr.kl;\n\n irp2 fvatyrFgrcBssfrg = irp2(grkOyheJvqguBssfrg, grkOyheUrvtugBssfrg)*2.5;\n\n grkgherFuvsg_1 = irp4(nGrkPbbeqvangr.kl - fvatyrFgrcBssfrg, nGrkPbbeqvangr.kl + fvatyrFgrcBssfrg);\n grkgherFuvsg_2 = irp4(nGrkPbbeqvangr.kl - 2.0 * fvatyrFgrcBssfrg, nGrkPbbeqvangr.kl + 2.0 * fvatyrFgrcBssfrg);\n grkgherFuvsg_3 = irp4(nGrkPbbeqvangr.kl - 3.0 * fvatyrFgrcBssfrg, nGrkPbbeqvangr.kl + 3.0 * fvatyrFgrcBssfrg);\n grkgherFuvsg_4 = irp4(nGrkPbbeqvangr.kl - 4.0 * fvatyrFgrcBssfrg, nGrkPbbeqvangr.kl + 4.0 * fvatyrFgrcBssfrg);\n}",k="cerpvfvba zrqvhzc sybng;\nhavsbez fnzcyre2Q hGrkgher;\ninelvat irp2 i_grkpbbeq0;\ninelvat uvtuc irp4 grkgherFuvsg_1;\ninelvat uvtuc irp4 grkgherFuvsg_2;\ninelvat uvtuc irp4 grkgherFuvsg_3;\ninelvat uvtuc irp4 grkgherFuvsg_4;\nibvq znva(ibvq) { \n zrqvhzc irp3 fhz = grkgher2Q(hGrkgher, i_grkpbbeq0).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_1.kl).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_1.mj).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_2.kl).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_2.mj).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_3.kl).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_3.mj).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_4.kl).eto;\n fhz += grkgher2Q(hGrkgher, grkgherFuvsg_4.mj).eto;\n ty_SentPbybe = irp4(fhz * 0.1111, 1.0); \n}",B=(b=function(n,t){return b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])},b(n,t)},function(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=n}b(n,t),n.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),y=function(n){function t(t,r,e){var i=n.call(this,t,r,e)||this;return i.width=r,i.height=e,i.type="BlurShader",i.blurXProgram=null,i.blurYProgram=null,i.diffProgram=null,i.uIntensity=null,i.smoothIntensity=.5,i.blurTextureList=[],i.blurBufferList=[],i.blurXProgram=i.makeProgram(l,k),i.setBorderBlurProgram(i.blurXProgram,1/(r||1),0),i.blurYProgram=i.makeProgram(l,k),i.setBorderBlurProgram(i.blurYProgram,0,1/(e||1)),i.diffProgram=i.makeProgram("nggevohgr irp4 nCbfvgvba;\nnggevohgr irp4 nGrkPbbeqvangr;\nhavsbez zng4 hCZIZngevk;\ninelvat irp2 i_grkpbbeq0;\nibvq znva()\n{\n // ty_Cbfvgvba = hCZIZngevk * nCbfvgvba;\n ty_Cbfvgvba = nCbfvgvba;\n i_grkpbbeq0 = nGrkPbbeqvangr.kl;\n}","cerpvfvba zrqvhzc sybng;\nhavsbez fnzcyre2Q hGrkgher;\ninelvat irp2 i_grkpbbeq0;\nhavsbez fnzcyre2Q oyheGrkgher;\nibvq znva(ibvq) {\n irp4 vPbybe = grkgher2Q(oyheGrkgher, i_grkpbbeq0);\n irp4 zrnaPbybe = grkgher2Q(hGrkgher, i_grkpbbeq0);\n irp4 qvssPbybe = vPbybe - zrnaPbybe;\n qvssPbybe.e = zva(qvssPbybe.e * 50.0 * qvssPbybe.e, 1.0);\n qvssPbybe.t = zva(qvssPbybe.t * 50.0 * qvssPbybe.t, 1.0);\n qvssPbybe.o = zva(qvssPbybe.o * 50.0 * qvssPbybe.o, 1.0);\n ty_SentPbybe = irp4(qvssPbybe.eto, 1.0);\n}"),i.setDiffBlurProgram(i.diffProgram),i.program=i.makeProgram("\nnggevohgr irp4 nCbfvgvba;\nnggevohgr irp4 nGrkPbbeqvangr;\ninelvat irp2 i_grkpbbeq0;\nhavsbez sybng jvqguBssfrg;\nhavsbez sybng urvtugBssfrg;\ninelvat irp2 grkgherFuvsg_1;\ninelvat irp2 grkgherFuvsg_2;\ninelvat irp2 grkgherFuvsg_3;\ninelvat irp2 grkgherFuvsg_4;\nibvq znva()\n{\n ty_Cbfvgvba = nCbfvgvba;\n i_grkpbbeq0 = nGrkPbbeqvangr.kl;\n grkgherFuvsg_1 = irp2(i_grkpbbeq0 + 0.5 * irp2(jvqguBssfrg,urvtugBssfrg));\n grkgherFuvsg_2 = irp2(i_grkpbbeq0 + 0.5 * irp2(-jvqguBssfrg,-urvtugBssfrg));\n grkgherFuvsg_3 = irp2(i_grkpbbeq0 + 0.5 * irp2(-jvqguBssfrg,urvtugBssfrg));\n grkgherFuvsg_4 = irp2(i_grkpbbeq0 + 0.5 * irp2(jvqguBssfrg,-urvtugBssfrg));\n}\n","\ncerpvfvba zrqvhzc sybng;\nhavsbez fnzcyre2Q hGrkgher;\ninelvat irp2 i_grkpbbeq0;\nhavsbez fnzcyre2Q oyheGrkgher;\nhavsbez fnzcyre2Q oyheQvssGrkgher;\nhavsbez ybjc sybng oyheNycun;\nibvq znva(ibvq) {\n ybjc irp4 vPbybe = grkgher2Q(hGrkgher, i_grkpbbeq0);\n ybjc irp4 zrnaPbybe = grkgher2Q(oyheGrkgher, i_grkpbbeq0);\n ybjc irp4 inePbybe = grkgher2Q(oyheQvssGrkgher, i_grkpbbeq0);\n ybjc sybng nycun = oyheNycun * 1.0;\n ybjc sybng gurgn = 0.1;\n zrqvhzc sybng c = pynzc((zva(vPbybe.e, zrnaPbybe.e - 0.1) - 0.2) * 4.0, 0.0, 1.0);\n zrqvhzc sybng zrnaIne = znk(znk(inePbybe.e, inePbybe.t), inePbybe.o);\n zrqvhzc sybng xZva = 0.1;\n ybjc irp3 erfhygPbybe;\n xZva = (1.0 - zrnaIne / (zrnaIne + gurgn)) * c * nycun;\n erfhygPbybe = zvk(vPbybe.eto, zrnaPbybe.eto, xZva);\n erfhygPbybe = zvk(vPbybe.eto, erfhygPbybe, zva(1.0,nycun));\n ty_SentPbybe = irp4(erfhygPbybe,1.0);\n}"),i.initBlurBuffer(),i}return B(t,n),t.prototype.setEffectConfig=function(n){isNaN(n.smoothIntensity)||(this.smoothIntensity=n.smoothIntensity/100)},t.prototype.render=function(){this.gl.uniform1f(this.uIntensity,this.smoothIntensity)},t.prototype.initBlurBuffer=function(){var n=this,t=this.gl;this.blurTextureList.forEach((function(t){var r;t&&(null===(r=n.gl)||void 0===r||r.deleteTexture(t))})),this.blurBufferList.forEach((function(t){var r;t&&(null===(r=n.gl)||void 0===r||r.deleteFramebuffer(t))})),this.blurTextureList=[],this.blurBufferList=[];for(var r=0;r<3;r++){var e=t.createTexture();if(!e)return;t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,!0),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null);var i=t.createFramebuffer();if(!i)return;t.bindFramebuffer(t.FRAMEBUFFER,i),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,e,0),this.blurTextureList.push(e),this.blurBufferList.push(i)}},t.prototype.renderPreTextures=function(n,t,r){var e=this,i=this.gl,g=[0,1,0],h=[1,1,2];[this.blurXProgram,this.blurYProgram,this.diffProgram].forEach((function(o,s){if(o){i.useProgram(o);var u=i.getUniformLocation(o,"uTexture");i.uniform1i(u,g[s]);var c=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,c),i.bufferData(i.ARRAY_BUFFER,new Float32Array(n),i.STATIC_DRAW);var a=i.createBuffer();i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,a),i.bufferData(i.ELEMENT_ARRAY_BUFFER,new Uint16Array(t),i.STATIC_DRAW);var v=i.getAttribLocation(o,"aPosition");i.enableVertexAttribArray(v),i.vertexAttribPointer(v,3,i.FLOAT,!1,0,0);var f=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,f),i.bufferData(i.ARRAY_BUFFER,new Float32Array(r),i.STATIC_DRAW);var b=i.getAttribLocation(o,"aTexCoordinate");i.enableVertexAttribArray(b),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.bindFramebuffer(i.FRAMEBUFFER,e.blurBufferList[s]),i.clearColor(0,0,0,1),i.clear(i.COLOR_BUFFER_BIT),i.drawElements(i.TRIANGLES,6,i.UNSIGNED_SHORT,0),i.activeTexture(i.TEXTURE0+h[s]),i.bindTexture(i.TEXTURE_2D,e.blurTextureList[s])}}))},t.prototype.setConstUniforms=function(){var n=this.width,t=this.height,r=this.program;if(r){var e=this.gl;e.useProgram(r);var i=e.getUniformLocation(r,"widthOffset");e.uniform1f(i,1/n);var g=e.getUniformLocation(r,"heightOffset");e.uniform1f(g,1/t),this.uIntensity=e.getUniformLocation(r,"blurAlpha"),e.uniform1f(this.uIntensity,this.smoothIntensity);var h=e.getUniformLocation(r,"blurTexture");e.uniform1i(h,1);var o=e.getUniformLocation(r,"blurDiffTexture");e.uniform1i(o,2)}},t.prototype.resetResolution=function(n,t){this.width=n||this.width,this.height=t||this.height,this.blurXProgram&&this.setBorderBlurProgram(this.blurXProgram,1/(n||1),0),this.blurYProgram&&this.setBorderBlurProgram(this.blurYProgram,0,1/(t||1)),this.setConstUniforms(),this.initBlurBuffer()},t.prototype.setBorderBlurProgram=function(n,t,r){var e=this.gl;e.useProgram(n);var i=e.getUniformLocation(n,"texBlurWidthOffset");e.uniform1f(i,t);var g=e.getUniformLocation(n,"texBlurHeightOffset");e.uniform1f(g,r)},t.prototype.setDiffBlurProgram=function(n){var t=this.gl;t.useProgram(n);var r=t.getUniformLocation(n,"blurTexture");t.uniform1i(r,1)},t}(A),I=function(){var n=function(t,r){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])},n(t,r)};return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function e(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}}(),E=function(n){function t(t,r,e){var i=n.call(this,t,r,e)||this;return i.width=r,i.height=e,i.type="LightShader",i.uLightIntensity=null,i.uRedIntensity=null,i.whitenIntensity=.5,i.rosyIntensity=.5,i.program=i.makeProgram("cerpvfvba uvtuc sybng;\nnggevohgr irp2 nGrkPbbeqvangr;\nnggevohgr irp4 nCbfvgvba;\nhavsbez zng4 hCZIZngevk;\ninelvat irp2 iGrkPbbeq;\nibvq znva() {\n ty_Cbfvgvba = hCZIZngevk * nCbfvgvba;\n iGrkPbbeq = nGrkPbbeqvangr;\n}","cerpvfvba uvtuc sybng;\ninelvat irp2 iGrkPbbeq;\nhavsbez fnzcyre2Q hGrkgher;\nhavsbez sybng vagrafvgl;\nhavsbez sybng ebflVagrafvgl;\nirp3 oevtugarffNaqPbagenfg(irp3 pbybe){\n sybng v = vagrafvgl * 1.0;\n sybng CV = 3.1415926;\n sybng O = 0.12 * v;\n sybng p = 0.1 * v;\n sybng x = gna((45. + 44. * p) / 180.0 * CV);\n pbybe = ((pbybe*255.0 - 127.5 * (1.0 - O)) * x + 127.5 * (1.0 + O)) / 255.0;\n erghea pbybe;\n}\nibvq znva() {\n irp4 grkgherPbybe = grkgher2Q(hGrkgher, iGrkPbbeq);\n grkgherPbybe = irp4(oevtugarffNaqPbagenfg(grkgherPbybe.eto), grkgherPbybe.j);\n grkgherPbybe.e = zva(grkgherPbybe.e + 0.06 * ebflVagrafvgl, 1.0);\n ty_SentPbybe = grkgherPbybe;\n}"),i}return I(t,n),t.prototype.setEffectConfig=function(n){isNaN(n.whitenIntensity)||(this.whitenIntensity=n.whitenIntensity/100),isNaN(n.rosyIntensity)||(this.rosyIntensity=n.rosyIntensity/100)},t.prototype.render=function(){var n=this.gl;n.uniform1f(this.uLightIntensity,this.whitenIntensity),n.uniform1f(this.uRedIntensity,this.rosyIntensity)},t.prototype.setConstUniforms=function(){var n=this.program;if(n){var t=this.gl;t.useProgram(n),this.uLightIntensity=t.getUniformLocation(n,"intensity"),t.uniform1f(this.uLightIntensity,this.whitenIntensity),this.uRedIntensity=t.getUniformLocation(n,"rosyIntensity"),t.uniform1f(this.uRedIntensity,this.rosyIntensity);var r=t.getUniformLocation(n,"uPMVMatrix");t.uniformMatrix4fv(r,!1,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}},t}(A),C=function(){var n=function(t,r){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])},n(t,r)};return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function e(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}}(),w=function(n,t,r,e){return new(r||(r=Promise))((function(i,g){function h(n){try{s(e.next(n))}catch(n){g(n)}}function o(n){try{s(e.throw(n))}catch(n){g(n)}}function s(n){var t;n.done?i(n.value):(t=n.value,t instanceof r?t:new r((function(n){n(t)}))).then(h,o)}s((e=e.apply(n,t||[])).next())}))},p=function(n,t){var r,e,i,g,h={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return g={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function o(o){return function(s){return function(o){if(r)throw new TypeError("Generator is already executing.");for(;g&&(g=0,o[0]&&(h=0)),h;)try{if(r=1,e&&(i=2&o[0]?e.return:o[0]?e.throw||((i=e.return)&&i.call(e),0):e.next)&&!(i=i.call(e,o[1])).done)return i;switch(e=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return h.label++,{value:o[1],done:!1};case 5:h.label++,e=o[1],o=[0];continue;case 7:o=h.ops.pop(),h.trys.pop();continue;default:if(!(i=h.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){h=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]<i[3])){h.label=o[1];break}if(6===o[0]&&h.label<i[1]){h.label=i[1],i=o;break}if(i&&h.label<i[2]){h.label=i[2],h.ops.push(o);break}i[2]&&h.ops.pop(),h.trys.pop();continue}o=t.call(n,h)}catch(n){o=[6,n],e=0}finally{r=i=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},Q=function(n){function t(t,r,e){var i=n.call(this,t,r,e)||this;return i.width=r,i.height=e,i.type="LowLightShader",i.uIntensity=null,i.lowlightEnhancement=!1,i.lutTex=null,i.lutImg=null,i.lutTexIdx=10,i.uLutTex=null,i.program=i.makeProgram("\nnggevohgr irp4 nCbfvgvba;\nnggevohgr irp4 nGrkPbbeqvangr;\nhavsbez sybng grkryJvqgu;\nhavsbez sybng grkryUrvtug;\ninelvat irp2 grkgherPbbeqvangr[9];\ninelvat irp2 grkgherPbbeqvangr2;\nhavsbez zng4 hCZIZngevk;\nibvq znva(){\n ty_Cbfvgvba = hCZIZngevk * nCbfvgvba;\n grkgherPbbeqvangr2 = nGrkPbbeqvangr.kl;\n grkgherPbbeqvangr[0] = nGrkPbbeqvangr.kl;\n irp2 jvqguFgrc = irp2(grkryJvqgu, 0.0);\n irp2 urvtugFgrc = irp2(0.0, grkryUrvtug);\n irp2 jvqguUrvtugFgrc = irp2(grkryJvqgu, grkryUrvtug);\n irp2 jvqguArtngvirUrvtugFgrc = irp2(grkryJvqgu, -grkryUrvtug);\n \n grkgherPbbeqvangr[0] = nGrkPbbeqvangr.kl;\n grkgherPbbeqvangr[1] = nGrkPbbeqvangr.kl - jvqguFgrc;\n grkgherPbbeqvangr[2] = nGrkPbbeqvangr.kl + jvqguFgrc;\n \n grkgherPbbeqvangr[3] = nGrkPbbeqvangr.kl - urvtugFgrc;\n grkgherPbbeqvangr[4] = nGrkPbbeqvangr.kl - jvqguUrvtugFgrc;\n grkgherPbbeqvangr[5] = nGrkPbbeqvangr.kl + jvqguArtngvirUrvtugFgrc;\n \n grkgherPbbeqvangr[6] = nGrkPbbeqvangr.kl + urvtugFgrc;\n grkgherPbbeqvangr[7] = nGrkPbbeqvangr.kl - jvqguArtngvirUrvtugFgrc;\n grkgherPbbeqvangr[8] = nGrkPbbeqvangr.kl + jvqguUrvtugFgrc;\n}\n","cerpvfvba uvtuc sybng;\ninelvat uvtuc irp2 grkgherPbbeqvangr[9];\ninelvat uvtuc irp2 grkgherPbbeqvangr2;\nhavsbez fnzcyre2Q hGrkgher;\nhavsbez fnzcyre2Q vachgVzntrGrkgher2;\nhavsbez uvtuc zng3 zngLHIgbETO;\nhavsbez uvtuc zng3 zngETOgbLHI;\nhavsbez sybng hVagrafvgl;\npbafg irp3 pbzcIrp = irp3(-0.0/255.0, -128.0/255.0, -128.0/255.0);\nirp4 eto2lhi(irp4 vachgETO) {\n irp3 bhgchgLHI;\n bhgchgLHI = zngETOgbLHI * vachgETO.eto;\n bhgchgLHI -= pbzcIrp;\n erghea irp4(pynzc(bhgchgLHI,\n irp3(0.0, 0.0, 0.0),\n irp3(1.0, 1.0, 1.0)),\n vachgETO.n);\n}\nirp2 fnghengvba(irp2 bet, sybng snpgbe) {\n irp2 zbq = irp2((bet.k - 128.0/255.0) * snpgbe + 128.0/255.0,\n (bet.l - 128.0/255.0) * snpgbe + 128.0/255.0);\n erghea pynzc(zbq, irp2(0.0, 0.0), irp2(1.0, 1.0));\n}\nirp4 lhi2eto(irp4 vachgLHI) {\n irp3 bhgchgETO;\n vachgLHI.eto += pbzcIrp;\n bhgchgETO = zngLHIgbETO * vachgLHI.eto;\n erghea irp4(pynzc(bhgchgETO,\n irp3(0.0, 0.0, 0.0),\n irp3(1.0, 1.0, 1.0)),\n vachgLHI.n);\n}\nibvq znva(){\n irp4 lhi[9];\n sbe(vag v = 0; v < 9; v++){\n lhi[v] = eto2lhi(grkgher2Q(hGrkgher, grkgherPbbeqvangr[v]));\n }\n sybng fzbbguL = 0.0;\n fzbbguL += 1.0*lhi[4].e + 2.0*lhi[3].e + 1.0*lhi[5].e;\n fzbbguL += 2.0*lhi[1].e + 4.0*lhi[0].e + 2.0*lhi[2].e;\n fzbbguL += 1.0*lhi[7].e + 2.0*lhi[6].e + 1.0*lhi[8].e;\n fzbbguL = fzbbguL / 16.0;\n sybng bhgchgL = grkgher2Q(vachgVzntrGrkgher2, irp2(fzbbguL, lhi[0].e)).e;\n irp3 arjLHI = irp3(zvk(fzbbguL, bhgchgL, hVagrafvgl), lhi[0].to);\n ty_SentPbybe = lhi2eto(irp4(arjLHI.eto, lhi[0].n));\n}\n"),i}return C(t,n),t.prototype.setEffectConfig=function(n){this.lowlightEnhancement=1===n.lowlightEnhancement},t.prototype.release=function(){this.gl.deleteTexture(this.lutTex)},t.prototype.render=function(){var n=this.gl;n.uniform1f(this.uIntensity,this.lowlightEnhancement?.6:0);var t=this,r=t.program,e=t.width,i=t.height,g=t.lutTex;if(r){var h=n.getUniformLocation(r,"texelWidth");n.uniform1f(h,1/e);var o=n.getUniformLocation(r,"texelHeight");n.uniform1f(o,1/i),n.activeTexture(n.TEXTURE0+this.lutTexIdx),n.bindTexture(n.TEXTURE_2D,g)}},t.prototype.setConstUniforms=function(){return w(this,void 0,void 0,(function(){var n,t,r,e,i,g,o,s,u,c,a=this;return p(this,(function(v){switch(v.label){case 0:return n=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t=[1,1,1,0,-.344,1.772,1.402,-.714,0],r=[.298973,-.168721,.500019,.58706,-.331298,-.41873,.113967,.500019,-.081289],(e=this.program)?((i=this.gl).useProgram(e),this.uIntensity=i.getUniformLocation(e,"uIntensity"),g=i.getUniformLocation(e,"matYUVtoRGB"),i.uniformMatrix3fv(g,!1,t),o=i.getUniformLocation(e,"matRGBtoYUV"),i.uniformMatrix3fv(o,!1,r),s=i.getUniformLocation(e,"uPMVMatrix"),i.uniformMatrix4fv(s,!1,n),u=i.getUniformLocation(e,"inputImageTexture2"),c=this,[4,new h.l3((function(n){var t=i.createTexture(),r=a.lutTexIdx,g=a.lutImg;g||(g=new Image);g.onload=function(){i.useProgram(e),a.lutImg=g,i.activeTexture(i.TEXTURE0+r),i.bindTexture(i.TEXTURE_2D,t),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,i.LUMINANCE,i.UNSIGNED_BYTE,g),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST),i.uniform1i(u,r),t&&n(t)},g.src="\ndata:image/png;base64,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"}))]):[2];case 1:return c.lutTex=v.sent(),[2]}}))}))},t}(A),G=function(){var n=function(t,r){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])},n(t,r)};return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function e(){this.constructor=t}n(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}}(),d=function(n){function t(t,r,e){var i=n.call(this,t,r,e)||this;return i.width=r,i.height=e,i.type="SharpnessShader",i.uIntensity=null,i.sharpenIntensity=.5,i.program=i.makeProgram("\nnggevohgr irp4 nCbfvgvba;\nnggevohgr irp4 nGrkPbbeqvangr;\nhavsbez sybng vzntrJvqguSnpgbe;\nhavsbez sybng vzntrUrvtugSnpgbe;\nhavsbez sybng funecarff; \ninelvat irp2 iGrkPbbeq;\ninelvat irp2 yrsgGrkgherPbbeqvangr;\ninelvat irp2 evtugGrkgherPbbeqvangr;\ninelvat irp2 gbcGrkgherPbbeqvangr;\ninelvat irp2 obggbzGrkgherPbbeqvangr;\ninelvat sybng pragreZhygvcyvre;\ninelvat sybng rqtrZhygvcyvre;\nibvq znva() {\n ty_Cbfvgvba = nCbfvgvba;\n irp2 jvqguFgrc = irp2(vzntrJvqguSnpgbe, 0.0);\n irp2 urvtugFgrc = irp2(0.0, vzntrUrvtugSnpgbe);\n iGrkPbbeq = nGrkPbbeqvangr.kl;\n yrsgGrkgherPbbeqvangr = nGrkPbbeqvangr.kl - jvqguFgrc;\n evtugGrkgherPbbeqvangr = nGrkPbbeqvangr.kl + jvqguFgrc;\n gbcGrkgherPbbeqvangr = nGrkPbbeqvangr.kl + urvtugFgrc;\n obggbzGrkgherPbbeqvangr = nGrkPbbeqvangr.kl - urvtugFgrc;\n pragreZhygvcyvre = 1.0 + 4.0 * funecarff;\n rqtrZhygvcyvre = funecarff;\n}\n","\ncerpvfvba uvtuc sybng;\ninelvat uvtuc irp2 iGrkPbbeq;\ninelvat uvtuc irp2 yrsgGrkgherPbbeqvangr;\ninelvat uvtuc irp2 evtugGrkgherPbbeqvangr;\ninelvat uvtuc irp2 gbcGrkgherPbbeqvangr;\ninelvat uvtuc irp2 obggbzGrkgherPbbeqvangr;\ninelvat uvtuc sybng pragreZhygvcyvre;\ninelvat uvtuc sybng rqtrZhygvcyvre;\nhavsbez f