@webex/web-client-media-engine 3.37.0 → 3.38.0
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/cjs/index.js +408 -222
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +404 -223
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +33 -7
- package/package.json +4 -4
package/dist/cjs/index.js
CHANGED
|
@@ -7158,6 +7158,17 @@ function isValidActiveSpeakerNotificationMsg(msg) {
|
|
|
7158
7158
|
const maybeActiveSpeakerNotificationMsg = msg;
|
|
7159
7159
|
return Boolean(maybeActiveSpeakerNotificationMsg.seqNum && maybeActiveSpeakerNotificationMsg.csis);
|
|
7160
7160
|
}
|
|
7161
|
+
|
|
7162
|
+
class AV1Codec {
|
|
7163
|
+
constructor(levelIdx, tier, maxWidth, maxHeight, maxPicSize, maxDecodeRate) {
|
|
7164
|
+
this.levelIdx = levelIdx;
|
|
7165
|
+
this.tier = tier;
|
|
7166
|
+
this.maxWidth = maxWidth;
|
|
7167
|
+
this.maxHeight = maxHeight;
|
|
7168
|
+
this.maxPicSize = maxPicSize;
|
|
7169
|
+
this.maxDecodeRate = maxDecodeRate;
|
|
7170
|
+
}
|
|
7171
|
+
}
|
|
7161
7172
|
function isValidAV1Codec(msg) {
|
|
7162
7173
|
if (typeof msg !== 'object' || msg === null) {
|
|
7163
7174
|
return false;
|
|
@@ -7773,6 +7784,203 @@ class JmpSession extends events$3.EventEmitter {
|
|
|
7773
7784
|
}
|
|
7774
7785
|
}
|
|
7775
7786
|
|
|
7787
|
+
var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
7788
|
+
|
|
7789
|
+
function getDefaultExportFromCjs (x) {
|
|
7790
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
7791
|
+
}
|
|
7792
|
+
|
|
7793
|
+
var es5 = {exports: {}};
|
|
7794
|
+
|
|
7795
|
+
(function (module, exports) {
|
|
7796
|
+
!function(e,t){module.exports=t();}(commonjsGlobal$1,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n});},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return "NT";case"XP":return "XP";case"NT 5.0":return "2000";case"NT 5.1":return "XP";case"NT 5.2":return "2003";case"NT 6.0":return "Vista";case"NT 6.1":return "7";case"NT 6.2":return "8";case"NT 6.3":return "8.1";case"NT 10.0":return "10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return "Leopard";case 6:return "Snow Leopard";case 7:return "Lion";case 8:return "Mountain Lion";case 9:return "Mavericks";case 10:return "Yosemite";case 11:return "El Capitan";case 12:return "Sierra";case 13:return "High Sierra";case 14:return "Mojave";case 15:return "Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(".0");return e.map(n.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1;}else if(u[0][a]<u[1][a])return -1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,s=new Array(i>1?i-1:0),a=1;a<i;a++)s[a-1]=arguments[a];if(Object.assign)return Object.assign.apply(Object,[e].concat(s));var o=function(){var e=s[t];"object"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t];}));};for(t=0,r=s.length;t<r;t+=1)o();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||""},e}();t.default=i,e.exports=t.default;},18:function(e,t,r){t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"};t.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"};t.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"};t.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"};t.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};},90:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},s=r(18);function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n);}}var o=function(){function e(){}var t,r,n;return e.getParser=function(e,t){if(void 0===t&&(t=!1),"string"!=typeof e)throw new Error("UserAgent should be a string");return new i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},t=e,n=[{key:"BROWSER_MAP",get:function(){return s.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return s.ENGINE_MAP}},{key:"OS_MAP",get:function(){return s.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return s.PLATFORMS_MAP}}],(r=null)&&a(t.prototype,r),n&&a(t,n),e}();t.default=o,e.exports=t.default;},91:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),s=u(r(94)),a=u(r(95)),o=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse();}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=o.default.find(n.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=o.default.find(i.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||"":t||""},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||"":t||""},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=o.default.find(s.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=o.default.find(a.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return o.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},s=0;if(Object.keys(e).forEach((function(t){var a=e[t];"string"==typeof a?(i[t]=a,s+=1):"object"==typeof a&&(r[t]=a,n+=1);})),n>0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return ">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default;},92:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\/(\d+(\.?_?\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return {name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default;},93:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return {name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=i.default.getWindowsVersionName(t);return {name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return {name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return {name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return {name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return {name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default;},94:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return {type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:s.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return {type:s.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return {type:s.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return {type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return "blackberry"===e.getBrowserName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return "bada"===e.getBrowserName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return "windows phone"===e.getBrowserName()},describe:function(){return {type:s.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return "android"===e.getOSName(!0)&&t>=3},describe:function(){return {type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return "android"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return "macos"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return "windows"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return "linux"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return "playstation 4"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.tv}}},{test:function(e){return "roku"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default;},95:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return "microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return {name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return {name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return {name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default;}})}));
|
|
7797
|
+
}(es5));
|
|
7798
|
+
|
|
7799
|
+
var Bowser = /*@__PURE__*/getDefaultExportFromCjs(es5.exports);
|
|
7800
|
+
|
|
7801
|
+
var BrowserName;
|
|
7802
|
+
(function (BrowserName) {
|
|
7803
|
+
BrowserName["CHROME"] = "Chrome";
|
|
7804
|
+
BrowserName["FIREFOX"] = "Firefox";
|
|
7805
|
+
BrowserName["EDGE"] = "Microsoft Edge";
|
|
7806
|
+
BrowserName["SAFARI"] = "Safari";
|
|
7807
|
+
})(BrowserName || (BrowserName = {}));
|
|
7808
|
+
var OSName;
|
|
7809
|
+
(function (OSName) {
|
|
7810
|
+
OSName["WINDOWS"] = "Windows";
|
|
7811
|
+
OSName["MAC"] = "macOS";
|
|
7812
|
+
OSName["LINUX"] = "Linux";
|
|
7813
|
+
})(OSName || (OSName = {}));
|
|
7814
|
+
class BrowserInfo {
|
|
7815
|
+
static getBrowserDetails() {
|
|
7816
|
+
return this.browser.getBrowser();
|
|
7817
|
+
}
|
|
7818
|
+
static getOSDetails() {
|
|
7819
|
+
return this.browser.getOS();
|
|
7820
|
+
}
|
|
7821
|
+
static getPlatformDetails() {
|
|
7822
|
+
return this.browser.getPlatform();
|
|
7823
|
+
}
|
|
7824
|
+
static getEngineDetails() {
|
|
7825
|
+
return this.browser.getEngine();
|
|
7826
|
+
}
|
|
7827
|
+
static isChrome() {
|
|
7828
|
+
return this.browser.getBrowserName() === BrowserName.CHROME;
|
|
7829
|
+
}
|
|
7830
|
+
static isFirefox() {
|
|
7831
|
+
return this.browser.getBrowserName() === BrowserName.FIREFOX;
|
|
7832
|
+
}
|
|
7833
|
+
static isEdge() {
|
|
7834
|
+
return this.browser.getBrowserName() === BrowserName.EDGE;
|
|
7835
|
+
}
|
|
7836
|
+
static isSafari() {
|
|
7837
|
+
return this.browser.getBrowserName() === BrowserName.SAFARI;
|
|
7838
|
+
}
|
|
7839
|
+
static isWindows() {
|
|
7840
|
+
return this.browser.getOSName() === OSName.WINDOWS;
|
|
7841
|
+
}
|
|
7842
|
+
static isMac() {
|
|
7843
|
+
return this.browser.getOSName() === OSName.MAC;
|
|
7844
|
+
}
|
|
7845
|
+
static isLinux() {
|
|
7846
|
+
return this.browser.getOSName() === OSName.LINUX;
|
|
7847
|
+
}
|
|
7848
|
+
static isVersionGreaterThan(version) {
|
|
7849
|
+
const browserName = this.browser.getBrowserName();
|
|
7850
|
+
const checkTree = { [browserName]: `>${version}` };
|
|
7851
|
+
return this.browser.satisfies(checkTree);
|
|
7852
|
+
}
|
|
7853
|
+
static isVersionGreaterThanOrEqualTo(version) {
|
|
7854
|
+
const browserName = this.browser.getBrowserName();
|
|
7855
|
+
const checkTree = { [browserName]: `>=${version}` };
|
|
7856
|
+
return this.browser.satisfies(checkTree);
|
|
7857
|
+
}
|
|
7858
|
+
static isVersionLessThan(version) {
|
|
7859
|
+
const browserName = this.browser.getBrowserName();
|
|
7860
|
+
const checkTree = { [browserName]: `<${version}` };
|
|
7861
|
+
return this.browser.satisfies(checkTree);
|
|
7862
|
+
}
|
|
7863
|
+
static isVersionLessThanOrEqualTo(version) {
|
|
7864
|
+
const browserName = this.browser.getBrowserName();
|
|
7865
|
+
const checkTree = { [browserName]: `<=${version}` };
|
|
7866
|
+
return this.browser.satisfies(checkTree);
|
|
7867
|
+
}
|
|
7868
|
+
static isSubVersionOf(version) {
|
|
7869
|
+
const browserName = this.browser.getBrowserName();
|
|
7870
|
+
const checkTree = { [browserName]: `~${version}` };
|
|
7871
|
+
return this.browser.satisfies(checkTree);
|
|
7872
|
+
}
|
|
7873
|
+
}
|
|
7874
|
+
BrowserInfo.browser = Bowser.getParser(window.navigator.userAgent);
|
|
7875
|
+
|
|
7876
|
+
class CpuInfo {
|
|
7877
|
+
static getNumLogicalCores() {
|
|
7878
|
+
return navigator.hardwareConcurrency;
|
|
7879
|
+
}
|
|
7880
|
+
}
|
|
7881
|
+
|
|
7882
|
+
var SystemInfoEvents;
|
|
7883
|
+
(function (SystemInfoEvents) {
|
|
7884
|
+
SystemInfoEvents["CpuPressureStateChange"] = "cpu-pressure-state-change";
|
|
7885
|
+
})(SystemInfoEvents || (SystemInfoEvents = {}));
|
|
7886
|
+
class PressureObserverHelper extends events$3.EventEmitter {
|
|
7887
|
+
constructor() {
|
|
7888
|
+
super();
|
|
7889
|
+
this.lastCpuPressure = undefined;
|
|
7890
|
+
if (PressureObserverHelper.isPressureObserverSupported()) {
|
|
7891
|
+
this.observer = new PressureObserver(this.handleStateChange.bind(this));
|
|
7892
|
+
if (this.observer) {
|
|
7893
|
+
this.observer.observe('cpu');
|
|
7894
|
+
}
|
|
7895
|
+
}
|
|
7896
|
+
}
|
|
7897
|
+
handleStateChange(records) {
|
|
7898
|
+
records.forEach((record) => {
|
|
7899
|
+
if (record.source === 'cpu' && record.state !== this.lastCpuPressure) {
|
|
7900
|
+
this.lastCpuPressure = record.state;
|
|
7901
|
+
this.emit(SystemInfoEvents.CpuPressureStateChange, record.state);
|
|
7902
|
+
}
|
|
7903
|
+
});
|
|
7904
|
+
}
|
|
7905
|
+
getCpuPressure() {
|
|
7906
|
+
return this.lastCpuPressure;
|
|
7907
|
+
}
|
|
7908
|
+
static isPressureObserverSupported() {
|
|
7909
|
+
return 'PressureObserver' in window;
|
|
7910
|
+
}
|
|
7911
|
+
}
|
|
7912
|
+
new PressureObserverHelper();
|
|
7913
|
+
|
|
7914
|
+
var CapabilityState;
|
|
7915
|
+
(function (CapabilityState) {
|
|
7916
|
+
CapabilityState["NOT_CAPABLE"] = "not capable";
|
|
7917
|
+
CapabilityState["CAPABLE"] = "capable";
|
|
7918
|
+
CapabilityState["UNKNOWN"] = "unknown";
|
|
7919
|
+
})(CapabilityState || (CapabilityState = {}));
|
|
7920
|
+
class WebCapabilities {
|
|
7921
|
+
static isCapableOfBackgroundNoiseRemoval() {
|
|
7922
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7923
|
+
if (numCores === undefined) {
|
|
7924
|
+
return CapabilityState.UNKNOWN;
|
|
7925
|
+
}
|
|
7926
|
+
if (numCores < 2) {
|
|
7927
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7928
|
+
}
|
|
7929
|
+
return CapabilityState.CAPABLE;
|
|
7930
|
+
}
|
|
7931
|
+
static isCapableOfVirtualBackground() {
|
|
7932
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7933
|
+
if (numCores === undefined) {
|
|
7934
|
+
return CapabilityState.UNKNOWN;
|
|
7935
|
+
}
|
|
7936
|
+
if (numCores < 2) {
|
|
7937
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7938
|
+
}
|
|
7939
|
+
return CapabilityState.CAPABLE;
|
|
7940
|
+
}
|
|
7941
|
+
static isCapableOfReceiving1080pVideo() {
|
|
7942
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7943
|
+
if (numCores === undefined) {
|
|
7944
|
+
return CapabilityState.UNKNOWN;
|
|
7945
|
+
}
|
|
7946
|
+
if (numCores < 2) {
|
|
7947
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7948
|
+
}
|
|
7949
|
+
return CapabilityState.CAPABLE;
|
|
7950
|
+
}
|
|
7951
|
+
static isCapableOfSending1080pVideo() {
|
|
7952
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7953
|
+
if (numCores === undefined) {
|
|
7954
|
+
return CapabilityState.UNKNOWN;
|
|
7955
|
+
}
|
|
7956
|
+
if (numCores < 8) {
|
|
7957
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7958
|
+
}
|
|
7959
|
+
return CapabilityState.CAPABLE;
|
|
7960
|
+
}
|
|
7961
|
+
static isCapableOfReceivingVideoCodec(mimeType) {
|
|
7962
|
+
var _a;
|
|
7963
|
+
const codecs = ((_a = RTCRtpReceiver.getCapabilities('video')) === null || _a === void 0 ? void 0 : _a.codecs) || [];
|
|
7964
|
+
return codecs.some((codec) => codec.mimeType === mimeType)
|
|
7965
|
+
? CapabilityState.CAPABLE
|
|
7966
|
+
: CapabilityState.NOT_CAPABLE;
|
|
7967
|
+
}
|
|
7968
|
+
static supportsEncodedStreamTransforms() {
|
|
7969
|
+
return window.RTCRtpScriptTransform &&
|
|
7970
|
+
window.RTCRtpSender &&
|
|
7971
|
+
'transform' in RTCRtpSender.prototype &&
|
|
7972
|
+
window.RTCRtpReceiver &&
|
|
7973
|
+
'transform' in RTCRtpReceiver.prototype
|
|
7974
|
+
? CapabilityState.CAPABLE
|
|
7975
|
+
: CapabilityState.NOT_CAPABLE;
|
|
7976
|
+
}
|
|
7977
|
+
static supportsRTCPeerConnection() {
|
|
7978
|
+
return typeof RTCPeerConnection === 'function'
|
|
7979
|
+
? CapabilityState.CAPABLE
|
|
7980
|
+
: CapabilityState.NOT_CAPABLE;
|
|
7981
|
+
}
|
|
7982
|
+
}
|
|
7983
|
+
|
|
7776
7984
|
exports.WcmeErrorType = void 0;
|
|
7777
7985
|
(function (WcmeErrorType) {
|
|
7778
7986
|
WcmeErrorType["CREATE_OFFER_FAILED"] = "CREATE_OFFER_FAILED";
|
|
@@ -7788,6 +7996,7 @@ exports.WcmeErrorType = void 0;
|
|
|
7788
7996
|
WcmeErrorType["SET_SOURCE_STATE_OVERRIDE_FAILED"] = "SET_SOURCE_STATE_OVERRIDE_FAILED";
|
|
7789
7997
|
WcmeErrorType["DATA_CHANNEL_SEND_FAILED"] = "DATA_CHANNEL_SEND_FAILED";
|
|
7790
7998
|
WcmeErrorType["RENEW_PEER_CONNECTION_FAILED"] = "RENEW_PEER_CONNECTION_FAILED";
|
|
7999
|
+
WcmeErrorType["INVALID_CODEC_PARAMS"] = "INVALID_CODEC_PARAMS";
|
|
7791
8000
|
WcmeErrorType["UNSUPPORTED_CONFIG"] = "UNSUPPORTED_CONFIG";
|
|
7792
8001
|
})(exports.WcmeErrorType || (exports.WcmeErrorType = {}));
|
|
7793
8002
|
class WcmeError {
|
|
@@ -7797,7 +8006,7 @@ class WcmeError {
|
|
|
7797
8006
|
}
|
|
7798
8007
|
}
|
|
7799
8008
|
|
|
7800
|
-
var commonjsGlobal
|
|
8009
|
+
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
7801
8010
|
|
|
7802
8011
|
var logger$1 = {exports: {}};
|
|
7803
8012
|
|
|
@@ -8078,7 +8287,7 @@ var logger$1 = {exports: {}};
|
|
|
8078
8287
|
|
|
8079
8288
|
global.Logger = Logger;
|
|
8080
8289
|
}
|
|
8081
|
-
}(commonjsGlobal
|
|
8290
|
+
}(commonjsGlobal));
|
|
8082
8291
|
}(logger$1));
|
|
8083
8292
|
|
|
8084
8293
|
var Logger = logger$1.exports;
|
|
@@ -8114,6 +8323,7 @@ exports.MediaCodecMimeType = void 0;
|
|
|
8114
8323
|
const defaultMaxVideoEncodeFrameSize = 8160;
|
|
8115
8324
|
const defaultMaxVideoEncodeMbps = 244800;
|
|
8116
8325
|
const defaultStartBitrateKbps = 3000;
|
|
8326
|
+
const macroBlockSize = 16 * 16;
|
|
8117
8327
|
exports.RecommendedOpusBitrates = void 0;
|
|
8118
8328
|
(function (RecommendedOpusBitrates) {
|
|
8119
8329
|
RecommendedOpusBitrates[RecommendedOpusBitrates["NB"] = 12000] = "NB";
|
|
@@ -8132,6 +8342,15 @@ const maxFrameSizeToMaxBitrateMap = new Map([
|
|
|
8132
8342
|
[3600, 2500000],
|
|
8133
8343
|
[8160, 4000000],
|
|
8134
8344
|
]);
|
|
8345
|
+
const minSupportedMaxPicSize = 147456;
|
|
8346
|
+
const maxPicSizeToMaxBitrateMap = new Map([
|
|
8347
|
+
[147456, 1.5 * 1000000],
|
|
8348
|
+
[278784, 3.0 * 1000000],
|
|
8349
|
+
[665856, 6.0 * 1000000],
|
|
8350
|
+
[1065024, 10.0 * 1000000],
|
|
8351
|
+
[2359296, 12.0 * 1000000],
|
|
8352
|
+
[8912896, 30.0 * 1000000],
|
|
8353
|
+
]);
|
|
8135
8354
|
const defaultVideoMainRtxTime = '300';
|
|
8136
8355
|
const defaultVideoSlidesRtxTime = '1000';
|
|
8137
8356
|
function areProfileLevelIdsCompatible(senderProfileLevelId, receiverProfileLevelId, levelAsymmetryAllowed) {
|
|
@@ -8180,6 +8399,51 @@ function areCodecsCompatible(senderCodec, receiverCodec) {
|
|
|
8180
8399
|
return true;
|
|
8181
8400
|
});
|
|
8182
8401
|
}
|
|
8402
|
+
function isVideoEncodingParams(encodingParams) {
|
|
8403
|
+
if (!encodingParams) {
|
|
8404
|
+
return false;
|
|
8405
|
+
}
|
|
8406
|
+
return 'maxWidth' in encodingParams || 'maxHeight' in encodingParams;
|
|
8407
|
+
}
|
|
8408
|
+
function isH264EncodingParams(encodingParams) {
|
|
8409
|
+
if (!encodingParams) {
|
|
8410
|
+
return false;
|
|
8411
|
+
}
|
|
8412
|
+
return 'maxFs' in encodingParams || 'maxFps' in encodingParams || 'maxMbps' in encodingParams;
|
|
8413
|
+
}
|
|
8414
|
+
function isAV1EncodingParams(encodingParams) {
|
|
8415
|
+
if (!encodingParams) {
|
|
8416
|
+
return false;
|
|
8417
|
+
}
|
|
8418
|
+
return ('levelIdx' in encodingParams ||
|
|
8419
|
+
'tier' in encodingParams ||
|
|
8420
|
+
'maxPicSize' in encodingParams ||
|
|
8421
|
+
'maxDecodeRate' in encodingParams);
|
|
8422
|
+
}
|
|
8423
|
+
function codecToEncodingParams(codecInfo) {
|
|
8424
|
+
if (codecInfo.av1) {
|
|
8425
|
+
const { av1 } = codecInfo;
|
|
8426
|
+
return {
|
|
8427
|
+
levelIdx: av1.levelIdx,
|
|
8428
|
+
tier: av1.tier,
|
|
8429
|
+
maxWidth: av1.maxWidth,
|
|
8430
|
+
maxHeight: av1.maxHeight,
|
|
8431
|
+
maxPicSize: av1.maxPicSize,
|
|
8432
|
+
maxDecodeRate: av1.maxDecodeRate,
|
|
8433
|
+
};
|
|
8434
|
+
}
|
|
8435
|
+
if (codecInfo.h264) {
|
|
8436
|
+
const { h264 } = codecInfo;
|
|
8437
|
+
return {
|
|
8438
|
+
maxFs: h264.maxFs,
|
|
8439
|
+
maxFps: h264.maxFps,
|
|
8440
|
+
maxMbps: h264.maxMbps,
|
|
8441
|
+
maxWidth: h264.maxWidth,
|
|
8442
|
+
maxHeight: h264.maxHeight,
|
|
8443
|
+
};
|
|
8444
|
+
}
|
|
8445
|
+
return undefined;
|
|
8446
|
+
}
|
|
8183
8447
|
function gcd(a, b) {
|
|
8184
8448
|
return b === 0 ? a : gcd(b, a % b);
|
|
8185
8449
|
}
|
|
@@ -8187,7 +8451,6 @@ function getFrameHeightByMaxFs(sourceAspectRatio, requestedMaxFs) {
|
|
|
8187
8451
|
const _gcd = gcd(sourceAspectRatio[0], sourceAspectRatio[1]);
|
|
8188
8452
|
const minNumberRatiosForWidth = sourceAspectRatio[0] / _gcd;
|
|
8189
8453
|
const minNumberRatiosForHeight = sourceAspectRatio[1] / _gcd;
|
|
8190
|
-
const macroBlockSize = 16 * 16;
|
|
8191
8454
|
const minRatioNumberByMaxFs = Math.sqrt((requestedMaxFs * macroBlockSize) / (minNumberRatiosForWidth * minNumberRatiosForHeight));
|
|
8192
8455
|
const roundedMinRatioNumberByMaxFs = Math.max(Math.floor(minRatioNumberByMaxFs), 1.0);
|
|
8193
8456
|
return roundedMinRatioNumberByMaxFs * minNumberRatiosForHeight;
|
|
@@ -8206,10 +8469,10 @@ function getRecommendedMaxBitrateForFrameSize(requestedMaxFs) {
|
|
|
8206
8469
|
if (requestedMaxFs < 60) {
|
|
8207
8470
|
logErrorAndThrow(exports.WcmeErrorType.GET_MAX_BITRATE_FAILED, `Requested max video frame size cannot be less than 60.`);
|
|
8208
8471
|
}
|
|
8209
|
-
const
|
|
8472
|
+
const matchingFrameSize = [...maxFrameSizeToMaxBitrateMap.keys()]
|
|
8210
8473
|
.sort((a, b) => b - a)
|
|
8211
|
-
.find((
|
|
8212
|
-
return maxFrameSizeToMaxBitrateMap.get(
|
|
8474
|
+
.find((maxFs) => requestedMaxFs >= maxFs);
|
|
8475
|
+
return maxFrameSizeToMaxBitrateMap.get(matchingFrameSize);
|
|
8213
8476
|
}
|
|
8214
8477
|
function setCodecParameters(allCodecParameters, codecMimeType, newParameters) {
|
|
8215
8478
|
if (!allCodecParameters.has(codecMimeType)) {
|
|
@@ -8228,6 +8491,43 @@ function markCodecParametersForDeletion(allCodecParameters, codecMimeTypeToUpdat
|
|
|
8228
8491
|
codecParameters.forEach((param) => {
|
|
8229
8492
|
currentParameters[param] = undefined;
|
|
8230
8493
|
});
|
|
8494
|
+
}
|
|
8495
|
+
function getRecommendedMaxBitrateForPicSize(requestedMaxPicSize) {
|
|
8496
|
+
if (requestedMaxPicSize < minSupportedMaxPicSize) {
|
|
8497
|
+
logErrorAndThrow(exports.WcmeErrorType.GET_MAX_BITRATE_FAILED, `Requested max video picture size cannot be less than ${minSupportedMaxPicSize}.`);
|
|
8498
|
+
}
|
|
8499
|
+
const expectedHeight = [...maxPicSizeToMaxBitrateMap.keys()]
|
|
8500
|
+
.sort((a, b) => b - a)
|
|
8501
|
+
.find((h) => requestedMaxPicSize >= h);
|
|
8502
|
+
return maxPicSizeToMaxBitrateMap.get(expectedHeight);
|
|
8503
|
+
}
|
|
8504
|
+
function getFrameSizeForPicSize(maxPicSize) {
|
|
8505
|
+
if (!maxPicSize) {
|
|
8506
|
+
return undefined;
|
|
8507
|
+
}
|
|
8508
|
+
return Math.ceil(maxPicSize / macroBlockSize);
|
|
8509
|
+
}
|
|
8510
|
+
function isEncodingCodecSupported() {
|
|
8511
|
+
return (((BrowserInfo.isChrome() || BrowserInfo.isEdge()) &&
|
|
8512
|
+
BrowserInfo.isVersionGreaterThanOrEqualTo('140')) ||
|
|
8513
|
+
(BrowserInfo.isFirefox() && BrowserInfo.isVersionGreaterThanOrEqualTo('145')));
|
|
8514
|
+
}
|
|
8515
|
+
function getSupportedAudioCodecs() {
|
|
8516
|
+
return [exports.MediaCodecMimeType.OPUS];
|
|
8517
|
+
}
|
|
8518
|
+
function getSupportedVideoCodecs(options = {
|
|
8519
|
+
includeAV1: false,
|
|
8520
|
+
}) {
|
|
8521
|
+
const supportedCodecs = [exports.MediaCodecMimeType.H264, exports.MediaCodecMimeType.RTX];
|
|
8522
|
+
if (options.includeAV1) {
|
|
8523
|
+
if (isEncodingCodecSupported()) {
|
|
8524
|
+
supportedCodecs.push(exports.MediaCodecMimeType.AV1);
|
|
8525
|
+
}
|
|
8526
|
+
else {
|
|
8527
|
+
logger.warn('AV1 codec was requested but browser does not support encoding.codec');
|
|
8528
|
+
}
|
|
8529
|
+
}
|
|
8530
|
+
return supportedCodecs;
|
|
8231
8531
|
}
|
|
8232
8532
|
|
|
8233
8533
|
/******************************************************************************
|
|
@@ -10051,10 +10351,6 @@ function retainCodecs(av, predicate) {
|
|
|
10051
10351
|
});
|
|
10052
10352
|
return filtered;
|
|
10053
10353
|
}
|
|
10054
|
-
function retainCodecsByCodecName(av, allowedCodecNames) {
|
|
10055
|
-
const allowedLowerCase = allowedCodecNames.map((s) => s.toLowerCase());
|
|
10056
|
-
return retainCodecs(av, (codecInfo) => !!codecInfo.name && allowedLowerCase.includes(codecInfo.name.toLowerCase()));
|
|
10057
|
-
}
|
|
10058
10354
|
function retainCandidates(sdpOrMedia, predicate) {
|
|
10059
10355
|
const mediaDescriptions = sdpOrMedia instanceof Sdp ? sdpOrMedia.media : [sdpOrMedia];
|
|
10060
10356
|
let filtered = false;
|
|
@@ -10078,191 +10374,6 @@ function hasCodec(codecName, mLine) {
|
|
|
10078
10374
|
return [...mLine.codecs.values()].some((ci) => { var _a; return ((_a = ci.name) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === codecName.toLowerCase(); });
|
|
10079
10375
|
}
|
|
10080
10376
|
|
|
10081
|
-
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
10082
|
-
|
|
10083
|
-
function getDefaultExportFromCjs (x) {
|
|
10084
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
10085
|
-
}
|
|
10086
|
-
|
|
10087
|
-
var es5 = {exports: {}};
|
|
10088
|
-
|
|
10089
|
-
(function (module, exports) {
|
|
10090
|
-
!function(e,t){module.exports=t();}(commonjsGlobal,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n});},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return "NT";case"XP":return "XP";case"NT 5.0":return "2000";case"NT 5.1":return "XP";case"NT 5.2":return "2003";case"NT 6.0":return "Vista";case"NT 6.1":return "7";case"NT 6.2":return "8";case"NT 6.3":return "8.1";case"NT 10.0":return "10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return "Leopard";case 6:return "Snow Leopard";case 7:return "Lion";case 8:return "Mountain Lion";case 9:return "Mavericks";case 10:return "Yosemite";case 11:return "El Capitan";case 12:return "Sierra";case 13:return "High Sierra";case 14:return "Mojave";case 15:return "Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(".0");return e.map(n.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1;}else if(u[0][a]<u[1][a])return -1}},e.map=function(e,t){var r,n=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)n.push(t(e[r]));return n},e.find=function(e,t){var r,n;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,n=e.length;r<n;r+=1){var i=e[r];if(t(i,r))return i}},e.assign=function(e){for(var t,r,n=e,i=arguments.length,s=new Array(i>1?i-1:0),a=1;a<i;a++)s[a-1]=arguments[a];if(Object.assign)return Object.assign.apply(Object,[e].concat(s));var o=function(){var e=s[t];"object"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){n[t]=e[t];}));};for(t=0,r=s.length;t<r;t+=1)o();return e},e.getBrowserAlias=function(e){return n.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return n.BROWSER_MAP[e]||""},e}();t.default=i,e.exports=t.default;},18:function(e,t,r){t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0;t.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"};t.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"};t.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"};t.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"};t.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};},90:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(91))&&n.__esModule?n:{default:n},s=r(18);function a(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n);}}var o=function(){function e(){}var t,r,n;return e.getParser=function(e,t){if(void 0===t&&(t=!1),"string"!=typeof e)throw new Error("UserAgent should be a string");return new i.default(e,t)},e.parse=function(e){return new i.default(e).getResult()},t=e,n=[{key:"BROWSER_MAP",get:function(){return s.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return s.ENGINE_MAP}},{key:"OS_MAP",get:function(){return s.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return s.PLATFORMS_MAP}}],(r=null)&&a(t.prototype,r),n&&a(t,n),e}();t.default=o,e.exports=t.default;},91:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=u(r(92)),i=u(r(93)),s=u(r(94)),a=u(r(95)),o=u(r(17));function u(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse();}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=o.default.find(n.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=o.default.find(i.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||"":t||""},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||"":t||""},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=o.default.find(s.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=o.default.find(a.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return o.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},n=0,i={},s=0;if(Object.keys(e).forEach((function(t){var a=e[t];"string"==typeof a?(i[t]=a,s+=1):"object"==typeof a&&(r[t]=a,n+=1);})),n>0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return ">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default;},92:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\/(\d+(\.?_?\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return {name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default;},93:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return {name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=i.default.getWindowsVersionName(t);return {name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return {name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return {name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return {name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return {name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return {name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default;},94:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return {type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:s.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return {type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return {type:s.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return {type:s.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return {type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return "blackberry"===e.getBrowserName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return "bada"===e.getBrowserName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return "windows phone"===e.getBrowserName()},describe:function(){return {type:s.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return "android"===e.getOSName(!0)&&t>=3},describe:function(){return {type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return "android"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return "macos"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return "windows"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return "linux"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return "playstation 4"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.tv}}},{test:function(e){return "roku"===e.getOSName(!0)},describe:function(){return {type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default;},95:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return "microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return {name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return {name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return {name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default;}})}));
|
|
10091
|
-
}(es5));
|
|
10092
|
-
|
|
10093
|
-
var Bowser = /*@__PURE__*/getDefaultExportFromCjs(es5.exports);
|
|
10094
|
-
|
|
10095
|
-
var BrowserName;
|
|
10096
|
-
(function (BrowserName) {
|
|
10097
|
-
BrowserName["CHROME"] = "Chrome";
|
|
10098
|
-
BrowserName["FIREFOX"] = "Firefox";
|
|
10099
|
-
BrowserName["EDGE"] = "Microsoft Edge";
|
|
10100
|
-
BrowserName["SAFARI"] = "Safari";
|
|
10101
|
-
})(BrowserName || (BrowserName = {}));
|
|
10102
|
-
var OSName;
|
|
10103
|
-
(function (OSName) {
|
|
10104
|
-
OSName["WINDOWS"] = "Windows";
|
|
10105
|
-
OSName["MAC"] = "macOS";
|
|
10106
|
-
OSName["LINUX"] = "Linux";
|
|
10107
|
-
})(OSName || (OSName = {}));
|
|
10108
|
-
class BrowserInfo {
|
|
10109
|
-
static getBrowserDetails() {
|
|
10110
|
-
return this.browser.getBrowser();
|
|
10111
|
-
}
|
|
10112
|
-
static getOSDetails() {
|
|
10113
|
-
return this.browser.getOS();
|
|
10114
|
-
}
|
|
10115
|
-
static getPlatformDetails() {
|
|
10116
|
-
return this.browser.getPlatform();
|
|
10117
|
-
}
|
|
10118
|
-
static getEngineDetails() {
|
|
10119
|
-
return this.browser.getEngine();
|
|
10120
|
-
}
|
|
10121
|
-
static isChrome() {
|
|
10122
|
-
return this.browser.getBrowserName() === BrowserName.CHROME;
|
|
10123
|
-
}
|
|
10124
|
-
static isFirefox() {
|
|
10125
|
-
return this.browser.getBrowserName() === BrowserName.FIREFOX;
|
|
10126
|
-
}
|
|
10127
|
-
static isEdge() {
|
|
10128
|
-
return this.browser.getBrowserName() === BrowserName.EDGE;
|
|
10129
|
-
}
|
|
10130
|
-
static isSafari() {
|
|
10131
|
-
return this.browser.getBrowserName() === BrowserName.SAFARI;
|
|
10132
|
-
}
|
|
10133
|
-
static isWindows() {
|
|
10134
|
-
return this.browser.getOSName() === OSName.WINDOWS;
|
|
10135
|
-
}
|
|
10136
|
-
static isMac() {
|
|
10137
|
-
return this.browser.getOSName() === OSName.MAC;
|
|
10138
|
-
}
|
|
10139
|
-
static isLinux() {
|
|
10140
|
-
return this.browser.getOSName() === OSName.LINUX;
|
|
10141
|
-
}
|
|
10142
|
-
static isVersionGreaterThan(version) {
|
|
10143
|
-
const browserName = this.browser.getBrowserName();
|
|
10144
|
-
const checkTree = { [browserName]: `>${version}` };
|
|
10145
|
-
return this.browser.satisfies(checkTree);
|
|
10146
|
-
}
|
|
10147
|
-
static isVersionGreaterThanOrEqualTo(version) {
|
|
10148
|
-
const browserName = this.browser.getBrowserName();
|
|
10149
|
-
const checkTree = { [browserName]: `>=${version}` };
|
|
10150
|
-
return this.browser.satisfies(checkTree);
|
|
10151
|
-
}
|
|
10152
|
-
static isVersionLessThan(version) {
|
|
10153
|
-
const browserName = this.browser.getBrowserName();
|
|
10154
|
-
const checkTree = { [browserName]: `<${version}` };
|
|
10155
|
-
return this.browser.satisfies(checkTree);
|
|
10156
|
-
}
|
|
10157
|
-
static isVersionLessThanOrEqualTo(version) {
|
|
10158
|
-
const browserName = this.browser.getBrowserName();
|
|
10159
|
-
const checkTree = { [browserName]: `<=${version}` };
|
|
10160
|
-
return this.browser.satisfies(checkTree);
|
|
10161
|
-
}
|
|
10162
|
-
static isSubVersionOf(version) {
|
|
10163
|
-
const browserName = this.browser.getBrowserName();
|
|
10164
|
-
const checkTree = { [browserName]: `~${version}` };
|
|
10165
|
-
return this.browser.satisfies(checkTree);
|
|
10166
|
-
}
|
|
10167
|
-
}
|
|
10168
|
-
BrowserInfo.browser = Bowser.getParser(window.navigator.userAgent);
|
|
10169
|
-
|
|
10170
|
-
class CpuInfo {
|
|
10171
|
-
static getNumLogicalCores() {
|
|
10172
|
-
return navigator.hardwareConcurrency;
|
|
10173
|
-
}
|
|
10174
|
-
}
|
|
10175
|
-
|
|
10176
|
-
var SystemInfoEvents;
|
|
10177
|
-
(function (SystemInfoEvents) {
|
|
10178
|
-
SystemInfoEvents["CpuPressureStateChange"] = "cpu-pressure-state-change";
|
|
10179
|
-
})(SystemInfoEvents || (SystemInfoEvents = {}));
|
|
10180
|
-
class PressureObserverHelper extends events$3.EventEmitter {
|
|
10181
|
-
constructor() {
|
|
10182
|
-
super();
|
|
10183
|
-
this.lastCpuPressure = undefined;
|
|
10184
|
-
if (PressureObserverHelper.isPressureObserverSupported()) {
|
|
10185
|
-
this.observer = new PressureObserver(this.handleStateChange.bind(this));
|
|
10186
|
-
if (this.observer) {
|
|
10187
|
-
this.observer.observe('cpu');
|
|
10188
|
-
}
|
|
10189
|
-
}
|
|
10190
|
-
}
|
|
10191
|
-
handleStateChange(records) {
|
|
10192
|
-
records.forEach((record) => {
|
|
10193
|
-
if (record.source === 'cpu' && record.state !== this.lastCpuPressure) {
|
|
10194
|
-
this.lastCpuPressure = record.state;
|
|
10195
|
-
this.emit(SystemInfoEvents.CpuPressureStateChange, record.state);
|
|
10196
|
-
}
|
|
10197
|
-
});
|
|
10198
|
-
}
|
|
10199
|
-
getCpuPressure() {
|
|
10200
|
-
return this.lastCpuPressure;
|
|
10201
|
-
}
|
|
10202
|
-
static isPressureObserverSupported() {
|
|
10203
|
-
return 'PressureObserver' in window;
|
|
10204
|
-
}
|
|
10205
|
-
}
|
|
10206
|
-
new PressureObserverHelper();
|
|
10207
|
-
|
|
10208
|
-
var CapabilityState;
|
|
10209
|
-
(function (CapabilityState) {
|
|
10210
|
-
CapabilityState["NOT_CAPABLE"] = "not capable";
|
|
10211
|
-
CapabilityState["CAPABLE"] = "capable";
|
|
10212
|
-
CapabilityState["UNKNOWN"] = "unknown";
|
|
10213
|
-
})(CapabilityState || (CapabilityState = {}));
|
|
10214
|
-
class WebCapabilities {
|
|
10215
|
-
static isCapableOfBackgroundNoiseRemoval() {
|
|
10216
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10217
|
-
if (numCores === undefined) {
|
|
10218
|
-
return CapabilityState.UNKNOWN;
|
|
10219
|
-
}
|
|
10220
|
-
if (numCores < 2) {
|
|
10221
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10222
|
-
}
|
|
10223
|
-
return CapabilityState.CAPABLE;
|
|
10224
|
-
}
|
|
10225
|
-
static isCapableOfVirtualBackground() {
|
|
10226
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10227
|
-
if (numCores === undefined) {
|
|
10228
|
-
return CapabilityState.UNKNOWN;
|
|
10229
|
-
}
|
|
10230
|
-
if (numCores < 2) {
|
|
10231
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10232
|
-
}
|
|
10233
|
-
return CapabilityState.CAPABLE;
|
|
10234
|
-
}
|
|
10235
|
-
static isCapableOfReceiving1080pVideo() {
|
|
10236
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10237
|
-
if (numCores === undefined) {
|
|
10238
|
-
return CapabilityState.UNKNOWN;
|
|
10239
|
-
}
|
|
10240
|
-
if (numCores < 2) {
|
|
10241
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10242
|
-
}
|
|
10243
|
-
return CapabilityState.CAPABLE;
|
|
10244
|
-
}
|
|
10245
|
-
static isCapableOfSending1080pVideo() {
|
|
10246
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10247
|
-
if (numCores === undefined) {
|
|
10248
|
-
return CapabilityState.UNKNOWN;
|
|
10249
|
-
}
|
|
10250
|
-
if (numCores < 8) {
|
|
10251
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10252
|
-
}
|
|
10253
|
-
return CapabilityState.CAPABLE;
|
|
10254
|
-
}
|
|
10255
|
-
static supportsEncodedStreamTransforms() {
|
|
10256
|
-
return window.RTCRtpScriptTransform &&
|
|
10257
|
-
window.RTCRtpSender &&
|
|
10258
|
-
'transform' in RTCRtpSender.prototype &&
|
|
10259
|
-
window.RTCRtpReceiver &&
|
|
10260
|
-
'transform' in RTCRtpReceiver.prototype
|
|
10261
|
-
? CapabilityState.CAPABLE
|
|
10262
|
-
: CapabilityState.NOT_CAPABLE;
|
|
10263
|
-
}
|
|
10264
|
-
}
|
|
10265
|
-
|
|
10266
10377
|
const simulcastMaxFrameSizes = {
|
|
10267
10378
|
0: '240',
|
|
10268
10379
|
1: '2304',
|
|
@@ -10461,6 +10572,9 @@ function addVlaExtension(mediaDescription) {
|
|
|
10461
10572
|
mediaDescription.addExtension({ uri: vlaExtensionUri });
|
|
10462
10573
|
}
|
|
10463
10574
|
}
|
|
10575
|
+
function getCodecName(codecMimeType) {
|
|
10576
|
+
return codecMimeType.split('/')[1].toLowerCase();
|
|
10577
|
+
}
|
|
10464
10578
|
function setFormatParameters(mediaDescription, codecMimeType, paramsMap) {
|
|
10465
10579
|
const codecName = codecMimeType.split('/')[1].toLowerCase();
|
|
10466
10580
|
Object.entries(paramsMap).forEach(([param, value]) => {
|
|
@@ -10478,6 +10592,10 @@ function setFormatParameters(mediaDescription, codecMimeType, paramsMap) {
|
|
|
10478
10592
|
}
|
|
10479
10593
|
function hasIceCandidates(sdp) {
|
|
10480
10594
|
return sdp.media.some((media) => media.iceInfo.candidates.length);
|
|
10595
|
+
}
|
|
10596
|
+
function retainCodecsByMimeType(mediaDescription, allowedMimeTypes) {
|
|
10597
|
+
const codecNames = allowedMimeTypes.map((mimeType) => getCodecName(mimeType));
|
|
10598
|
+
retainCodecs(mediaDescription, (codecInfo) => !!codecInfo.name && codecNames.includes(codecInfo.name.toLowerCase()));
|
|
10481
10599
|
}
|
|
10482
10600
|
|
|
10483
10601
|
function generateSsrc() {
|
|
@@ -10494,7 +10612,7 @@ class EgressSdpMunger {
|
|
|
10494
10612
|
}
|
|
10495
10613
|
mungeLocalDescription(mediaDescription, options) {
|
|
10496
10614
|
var _a;
|
|
10497
|
-
|
|
10615
|
+
retainCodecsByMimeType(mediaDescription, options.supportedCodecs);
|
|
10498
10616
|
if (options.forceSoftwareEncoder) {
|
|
10499
10617
|
const isH264Cbp = (codecInfo) => {
|
|
10500
10618
|
var _a;
|
|
@@ -11124,7 +11242,7 @@ class IngressSdpMunger {
|
|
|
11124
11242
|
return Object.assign({ ssrc: this.ssrc }, (this.rtxSsrc ? { rtxSsrc: this.rtxSsrc } : {}));
|
|
11125
11243
|
}
|
|
11126
11244
|
mungeLocalDescription(mediaDescription, options) {
|
|
11127
|
-
|
|
11245
|
+
retainCodecsByMimeType(mediaDescription, options.supportedCodecs);
|
|
11128
11246
|
if (mediaDescription.codecs.size === 0) {
|
|
11129
11247
|
logErrorAndThrow(exports.WcmeErrorType.SDP_MUNGE_MISSING_CODECS, `No codecs present in m-line with MID ${mediaDescription.mid} after filtering.`);
|
|
11130
11248
|
}
|
|
@@ -11382,6 +11500,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
11382
11500
|
this.metadata = { isActiveSpeaker: false };
|
|
11383
11501
|
this.getEncodedStreamMetadataCallback = () => Promise.resolve(undefined);
|
|
11384
11502
|
this.munger = config.munger;
|
|
11503
|
+
this.supportedCodecs = config.supportedCodecs;
|
|
11385
11504
|
this._receiveSlot = new ReceiveSlot(() => {
|
|
11386
11505
|
if (!this._rtcRtpTransceiver.mid) {
|
|
11387
11506
|
return null;
|
|
@@ -11437,6 +11556,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
11437
11556
|
mungeLocalDescription(mediaDescription) {
|
|
11438
11557
|
this.munger.mungeLocalDescription(mediaDescription, {
|
|
11439
11558
|
twccDisabled: this.twccDisabled,
|
|
11559
|
+
supportedCodecs: this.supportedCodecs,
|
|
11440
11560
|
});
|
|
11441
11561
|
}
|
|
11442
11562
|
mungeRemoteDescription(mediaDescription) {
|
|
@@ -11449,14 +11569,22 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
11449
11569
|
this.munger.reset();
|
|
11450
11570
|
}
|
|
11451
11571
|
handleRequested(streamRequest) {
|
|
11452
|
-
var _a, _b, _c, _d;
|
|
11453
11572
|
if (!this.receiveSlot._isRequested) {
|
|
11454
11573
|
this.receiveSlot._isRequested = true;
|
|
11455
11574
|
this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
|
|
11456
11575
|
}
|
|
11457
11576
|
this.metadata.requestedBitrate = streamRequest.maxPayloadBitsPerSecond;
|
|
11458
|
-
|
|
11459
|
-
|
|
11577
|
+
const firstCodecInfo = streamRequest.codecInfos[0];
|
|
11578
|
+
if (firstCodecInfo === null || firstCodecInfo === void 0 ? void 0 : firstCodecInfo.h264) {
|
|
11579
|
+
this.metadata.requestedFrameSize = firstCodecInfo.h264.maxFs;
|
|
11580
|
+
this.metadata.requestedFrameRate = firstCodecInfo.h264.maxFps;
|
|
11581
|
+
}
|
|
11582
|
+
else if (firstCodecInfo === null || firstCodecInfo === void 0 ? void 0 : firstCodecInfo.av1) {
|
|
11583
|
+
this.metadata.requestedFrameSize = getFrameSizeForPicSize(firstCodecInfo.av1.maxPicSize);
|
|
11584
|
+
if (firstCodecInfo.av1.maxPicSize > 0 && firstCodecInfo.av1.maxDecodeRate > 0) {
|
|
11585
|
+
this.metadata.requestedFrameRate = Math.round(firstCodecInfo.av1.maxDecodeRate / firstCodecInfo.av1.maxPicSize);
|
|
11586
|
+
}
|
|
11587
|
+
}
|
|
11460
11588
|
}
|
|
11461
11589
|
handleUnrequested() {
|
|
11462
11590
|
if (this.receiveSlot._isRequested) {
|
|
@@ -15211,6 +15339,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15211
15339
|
this.munger = config.munger;
|
|
15212
15340
|
this.csi = config.csi;
|
|
15213
15341
|
this.direction = 'sendrecv';
|
|
15342
|
+
this.supportedCodecs = config.supportedCodecs;
|
|
15214
15343
|
this.handleTrackChange = this.handleTrackChange.bind(this);
|
|
15215
15344
|
this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
|
|
15216
15345
|
this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
|
|
@@ -15240,7 +15369,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15240
15369
|
}
|
|
15241
15370
|
handleStreamConstraintsChange() {
|
|
15242
15371
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15243
|
-
yield this.updateSendParameters(this.requestedIdEncodingParamsMap);
|
|
15372
|
+
yield this.updateSendParameters(this.requestedIdEncodingParamsMap, this.selectedPayloadType);
|
|
15244
15373
|
});
|
|
15245
15374
|
}
|
|
15246
15375
|
handleStreamMuteStateChange() {
|
|
@@ -15333,7 +15462,12 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15333
15462
|
const encodingIndex = this.getEncodingIndexForStreamId(senderId);
|
|
15334
15463
|
const encodingParams = this.requestedIdEncodingParamsMap.get(encodingIndex);
|
|
15335
15464
|
stats.requestedBitrate = encodingParams === null || encodingParams === void 0 ? void 0 : encodingParams.maxPayloadBitsPerSecond;
|
|
15336
|
-
|
|
15465
|
+
if (isAV1EncodingParams(encodingParams)) {
|
|
15466
|
+
stats.requestedFrameSize = getFrameSizeForPicSize(encodingParams === null || encodingParams === void 0 ? void 0 : encodingParams.maxPicSize);
|
|
15467
|
+
}
|
|
15468
|
+
else if (isH264EncodingParams(encodingParams)) {
|
|
15469
|
+
stats.requestedFrameSize = encodingParams === null || encodingParams === void 0 ? void 0 : encodingParams.maxFs;
|
|
15470
|
+
}
|
|
15337
15471
|
stats.isRequested = !!encodingParams;
|
|
15338
15472
|
stats.lastRequestedUpdateTimestamp =
|
|
15339
15473
|
this.metadata.lastRequestedUpdateTimestampsMap.get(encodingIndex);
|
|
@@ -15372,23 +15506,49 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15372
15506
|
return statsMap;
|
|
15373
15507
|
});
|
|
15374
15508
|
}
|
|
15375
|
-
updateSendParameters(requestedIdEncodingParamsMap) {
|
|
15509
|
+
updateSendParameters(requestedIdEncodingParamsMap, payloadType) {
|
|
15376
15510
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15377
15511
|
return this.updateSendParametersQueue.push(() => __awaiter(this, void 0, void 0, function* () {
|
|
15378
15512
|
const sendParameters = this.sender.getParameters();
|
|
15513
|
+
const selectedCodec = sendParameters.codecs.find((codec) => codec.payloadType === payloadType);
|
|
15514
|
+
const shouldUpdateSelectedCodec = this.mediaType === exports.MediaType.VideoSlides &&
|
|
15515
|
+
!!selectedCodec &&
|
|
15516
|
+
this.selectedPayloadType !== selectedCodec.payloadType;
|
|
15379
15517
|
sendParameters.encodings.forEach((encoding, index) => {
|
|
15380
15518
|
var _a, _b;
|
|
15381
15519
|
const encodingParams = requestedIdEncodingParamsMap.get(index);
|
|
15382
15520
|
encoding.active = !!encodingParams;
|
|
15521
|
+
if (shouldUpdateSelectedCodec) {
|
|
15522
|
+
if (isEncodingCodecSupported()) {
|
|
15523
|
+
const isCodecCapable = selectedCodec &&
|
|
15524
|
+
WebCapabilities.isCapableOfReceivingVideoCodec(selectedCodec.mimeType) ===
|
|
15525
|
+
CapabilityState.CAPABLE;
|
|
15526
|
+
if (!isCodecCapable) {
|
|
15527
|
+
logErrorAndThrow(exports.WcmeErrorType.INVALID_CODEC_PARAMS, `Codec ${selectedCodec === null || selectedCodec === void 0 ? void 0 : selectedCodec.mimeType} is not supported by the browser.`);
|
|
15528
|
+
}
|
|
15529
|
+
encoding.codec = selectedCodec;
|
|
15530
|
+
}
|
|
15531
|
+
}
|
|
15383
15532
|
if (encodingParams) {
|
|
15384
|
-
const { maxPayloadBitsPerSecond
|
|
15385
|
-
|
|
15533
|
+
const { maxPayloadBitsPerSecond } = encodingParams;
|
|
15534
|
+
if (getMediaFamily(this.mediaType) === exports.MediaFamily.Video &&
|
|
15535
|
+
isVideoEncodingParams(encodingParams)) {
|
|
15536
|
+
let frameSize;
|
|
15537
|
+
const { maxWidth, maxHeight } = encodingParams;
|
|
15538
|
+
if (isAV1EncodingParams(encodingParams)) {
|
|
15539
|
+
frameSize = getFrameSizeForPicSize(encodingParams.maxPicSize);
|
|
15540
|
+
}
|
|
15541
|
+
else if (isH264EncodingParams(encodingParams)) {
|
|
15542
|
+
frameSize = encodingParams.maxFs;
|
|
15543
|
+
}
|
|
15544
|
+
const scaleDownRatio = getScaleDownRatio((_a = this.publishedStream) === null || _a === void 0 ? void 0 : _a.getSettings().width, (_b = this.publishedStream) === null || _b === void 0 ? void 0 : _b.getSettings().height, frameSize, maxWidth, maxHeight);
|
|
15545
|
+
if (scaleDownRatio !== undefined && scaleDownRatio >= 1.0) {
|
|
15546
|
+
encoding.scaleResolutionDownBy = scaleDownRatio;
|
|
15547
|
+
}
|
|
15548
|
+
}
|
|
15386
15549
|
if (maxPayloadBitsPerSecond !== undefined && maxPayloadBitsPerSecond >= 0) {
|
|
15387
15550
|
encoding.maxBitrate = maxPayloadBitsPerSecond;
|
|
15388
15551
|
}
|
|
15389
|
-
if (scaleDownRatio !== undefined && scaleDownRatio >= 1.0) {
|
|
15390
|
-
encoding.scaleResolutionDownBy = scaleDownRatio;
|
|
15391
|
-
}
|
|
15392
15552
|
}
|
|
15393
15553
|
});
|
|
15394
15554
|
yield this.sender.setParameters(sendParameters);
|
|
@@ -15407,6 +15567,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15407
15567
|
const oldRequested = this.requested;
|
|
15408
15568
|
const newRequested = requestedIdEncodingParamsMap.size > 0;
|
|
15409
15569
|
this.requestedIdEncodingParamsMap = requestedIdEncodingParamsMap;
|
|
15570
|
+
this.selectedPayloadType = payloadType;
|
|
15410
15571
|
if (oldRequested !== newRequested) {
|
|
15411
15572
|
yield this.replaceSenderSource(newRequested ? this.publishedStream : null);
|
|
15412
15573
|
}
|
|
@@ -15425,6 +15586,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15425
15586
|
forceSoftwareEncoder: this.mediaType === exports.MediaType.VideoSlides &&
|
|
15426
15587
|
(BrowserInfo.isWindows() || BrowserInfo.isMac()) &&
|
|
15427
15588
|
(BrowserInfo.isChrome() || BrowserInfo.isEdge()),
|
|
15589
|
+
supportedCodecs: this.supportedCodecs,
|
|
15428
15590
|
});
|
|
15429
15591
|
}
|
|
15430
15592
|
mungeLocalDescriptionForRemoteServer(mediaDescription, mungeOptions = { injectDummyCandidates: true }) {
|
|
@@ -15773,6 +15935,7 @@ const defaultMultistreamConnectionOptions = {
|
|
|
15773
15935
|
preferredStartingBitrateKbps: defaultStartBitrateKbps,
|
|
15774
15936
|
metricsCallback: () => { },
|
|
15775
15937
|
enableInboundAudioLevelMonitoring: false,
|
|
15938
|
+
enableAV1SlidesSupport: false,
|
|
15776
15939
|
};
|
|
15777
15940
|
let staticIdCounter = 0;
|
|
15778
15941
|
class MultistreamConnection extends EventEmitter$2 {
|
|
@@ -15801,10 +15964,13 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15801
15964
|
const videoMainEncodingOptions = this.getVideoEncodingOptions(exports.MediaContent.Main);
|
|
15802
15965
|
const videoSlidesEncodingOptions = this.getVideoEncodingOptions(exports.MediaContent.Slides);
|
|
15803
15966
|
const sendVideoCodecParams = this.getCustomSendVideoCodecParams();
|
|
15804
|
-
this.
|
|
15805
|
-
this.
|
|
15806
|
-
this.
|
|
15807
|
-
this.createSendTransceiver(exports.MediaType.
|
|
15967
|
+
const supportedVideoCodecs = this.getSupportedCodecs(exports.MediaType.VideoMain);
|
|
15968
|
+
const supportedVideoSlidesCodecs = this.getSupportedCodecs(exports.MediaType.VideoSlides);
|
|
15969
|
+
const supportedAudioCodecs = this.getSupportedCodecs(exports.MediaType.AudioMain);
|
|
15970
|
+
this.createSendTransceiver(exports.MediaType.VideoMain, mainSceneId, supportedVideoCodecs, videoMainEncodingOptions, sendVideoCodecParams);
|
|
15971
|
+
this.createSendTransceiver(exports.MediaType.AudioMain, mainSceneId, supportedAudioCodecs);
|
|
15972
|
+
this.createSendTransceiver(exports.MediaType.VideoSlides, slidesSceneId, supportedVideoSlidesCodecs, videoSlidesEncodingOptions, sendVideoCodecParams);
|
|
15973
|
+
this.createSendTransceiver(exports.MediaType.AudioSlides, slidesSceneId, supportedAudioCodecs);
|
|
15808
15974
|
}
|
|
15809
15975
|
startWorkerIfNeeded() {
|
|
15810
15976
|
if (this.options.enableInboundAudioLevelMonitoring) {
|
|
@@ -15900,7 +16066,15 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15900
16066
|
},
|
|
15901
16067
|
};
|
|
15902
16068
|
}
|
|
15903
|
-
|
|
16069
|
+
getSupportedCodecs(mediaType) {
|
|
16070
|
+
if (mediaType === exports.MediaType.VideoMain || mediaType === exports.MediaType.VideoSlides) {
|
|
16071
|
+
return getSupportedVideoCodecs({
|
|
16072
|
+
includeAV1: mediaType === exports.MediaType.VideoSlides && this.options.enableAV1SlidesSupport,
|
|
16073
|
+
});
|
|
16074
|
+
}
|
|
16075
|
+
return getSupportedAudioCodecs();
|
|
16076
|
+
}
|
|
16077
|
+
createSendTransceiver(mediaType, sceneId, supportedCodecs, sendEncodingsOptions, codecParams) {
|
|
15904
16078
|
let rtcRtpTransceiver;
|
|
15905
16079
|
try {
|
|
15906
16080
|
rtcRtpTransceiver = this.pc.addTransceiver(mediaTypeToTrackKind(mediaType), {
|
|
@@ -15921,6 +16095,7 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15921
16095
|
mediaType,
|
|
15922
16096
|
munger,
|
|
15923
16097
|
csi,
|
|
16098
|
+
supportedCodecs,
|
|
15924
16099
|
});
|
|
15925
16100
|
if (getMediaFamily(mediaType) === exports.MediaFamily.Video) {
|
|
15926
16101
|
transceiver.rtxEnabled = true;
|
|
@@ -16058,8 +16233,8 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16058
16233
|
if (rsRequests.length !== requests.length) {
|
|
16059
16234
|
logger.warn('Ignoring non-receiver-selected requests');
|
|
16060
16235
|
}
|
|
16236
|
+
let selectedPayloadType;
|
|
16061
16237
|
rsRequests.forEach(({ ids, policySpecificInfo, codecInfos, maxPayloadBitsPerSecond }) => {
|
|
16062
|
-
var _a, _b, _c;
|
|
16063
16238
|
if (ids.length > 1) {
|
|
16064
16239
|
logErrorAndThrow(exports.WcmeErrorType.INVALID_STREAM_REQUEST, `Stream request cannot have more than one ID.`);
|
|
16065
16240
|
}
|
|
@@ -16072,6 +16247,9 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16072
16247
|
}
|
|
16073
16248
|
const id = ids[0];
|
|
16074
16249
|
const codecInfo = codecInfos[0];
|
|
16250
|
+
if (mediaType === exports.MediaType.VideoSlides && selectedPayloadType === undefined) {
|
|
16251
|
+
selectedPayloadType = codecInfo.payloadType;
|
|
16252
|
+
}
|
|
16075
16253
|
if (!isValidSsrcStreamId(id)) {
|
|
16076
16254
|
logger.warn(`${mediaType}: The stream ID is not a valid SsrcStreamId: ${JSON.stringify(id)}`);
|
|
16077
16255
|
return;
|
|
@@ -16080,12 +16258,13 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16080
16258
|
if (streamIdsMatched) {
|
|
16081
16259
|
const encodingIndex = sendTransceiver.getEncodingIndexForStreamId(id);
|
|
16082
16260
|
if (encodingIndex !== -1) {
|
|
16083
|
-
const
|
|
16084
|
-
|
|
16085
|
-
|
|
16086
|
-
|
|
16087
|
-
|
|
16261
|
+
const isVideo = mediaFamily === exports.MediaFamily.Video;
|
|
16262
|
+
const codecParams = isVideo && codecInfo ? codecToEncodingParams(codecInfo) : {};
|
|
16263
|
+
if (isVideo && codecInfo && !codecParams) {
|
|
16264
|
+
logger.warn(`${mediaType}: Unsupported codec for ID ${JSON.stringify(id)}`);
|
|
16265
|
+
return;
|
|
16088
16266
|
}
|
|
16267
|
+
const encodingParams = Object.assign({ maxPayloadBitsPerSecond }, codecParams);
|
|
16089
16268
|
requestedIdEncodingParamsMap.set(encodingIndex, encodingParams);
|
|
16090
16269
|
}
|
|
16091
16270
|
else {
|
|
@@ -16096,7 +16275,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16096
16275
|
logger.warn(`${mediaType}: Unable to find matching stream ID for requested ID: ${JSON.stringify(id)}`);
|
|
16097
16276
|
}
|
|
16098
16277
|
});
|
|
16099
|
-
return sendTransceiver.updateSendParameters(requestedIdEncodingParamsMap);
|
|
16278
|
+
return sendTransceiver.updateSendParameters(requestedIdEncodingParamsMap, selectedPayloadType);
|
|
16100
16279
|
}
|
|
16101
16280
|
createDataChannel() {
|
|
16102
16281
|
const dataChannel = this.pc.createDataChannel('datachannel', {
|
|
@@ -16228,7 +16407,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16228
16407
|
static getEncodedTransformId(mediaType, mid) {
|
|
16229
16408
|
return `INBOUND-${mediaType}-${mid}`;
|
|
16230
16409
|
}
|
|
16231
|
-
createReceiveTransceiver(mediaType, codecParams) {
|
|
16410
|
+
createReceiveTransceiver(mediaType, supportedCodecs, codecParams) {
|
|
16232
16411
|
const rtcRtpTransceiver = this.pc.addTransceiver(mediaTypeToTrackKind(mediaType), {
|
|
16233
16412
|
direction: 'recvonly',
|
|
16234
16413
|
});
|
|
@@ -16240,6 +16419,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16240
16419
|
mid,
|
|
16241
16420
|
mediaType,
|
|
16242
16421
|
munger,
|
|
16422
|
+
supportedCodecs,
|
|
16243
16423
|
});
|
|
16244
16424
|
if (doAudioLevelMonitoring) {
|
|
16245
16425
|
try {
|
|
@@ -16278,11 +16458,12 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16278
16458
|
return new Promise((createReceiveSlotsResolve) => {
|
|
16279
16459
|
this.offerAnswerQueue.push(() => __awaiter(this, void 0, void 0, function* () {
|
|
16280
16460
|
const createdReceiveOnlyTransceivers = [];
|
|
16461
|
+
const supportedCodecs = this.getSupportedCodecs(mediaType);
|
|
16281
16462
|
const codecParams = mediaTypeToTrackKind(mediaType) === exports.MediaStreamTrackKind.Video
|
|
16282
16463
|
? this.getCustomReceiveVideoCodecParams(mediaType)
|
|
16283
16464
|
: undefined;
|
|
16284
16465
|
for (let i = 0; i < count; i++) {
|
|
16285
|
-
const recvOnlyTransceiver = this.createReceiveTransceiver(mediaType, codecParams);
|
|
16466
|
+
const recvOnlyTransceiver = this.createReceiveTransceiver(mediaType, supportedCodecs, codecParams);
|
|
16286
16467
|
createdReceiveOnlyTransceivers.push(recvOnlyTransceiver);
|
|
16287
16468
|
}
|
|
16288
16469
|
if (this.pc.getRemoteDescription()) {
|
|
@@ -16785,6 +16966,7 @@ class StreamRequest {
|
|
|
16785
16966
|
|
|
16786
16967
|
const { DeviceKind } = media;
|
|
16787
16968
|
|
|
16969
|
+
exports.AV1Codec = AV1Codec;
|
|
16788
16970
|
exports.ActiveSpeakerInfo = ActiveSpeakerInfo;
|
|
16789
16971
|
exports.CodecInfo = CodecInfo$1;
|
|
16790
16972
|
exports.DeviceKind = DeviceKind;
|
|
@@ -16807,6 +16989,7 @@ exports.WcmeError = WcmeError;
|
|
|
16807
16989
|
exports.WebRtcCoreLogger = Logger$2;
|
|
16808
16990
|
exports.WebrtcCoreError = WebrtcCoreError;
|
|
16809
16991
|
exports.areReceiveSlotIdsEqual = areReceiveSlotIdsEqual;
|
|
16992
|
+
exports.codecToEncodingParams = codecToEncodingParams;
|
|
16810
16993
|
exports.createCameraAndMicrophoneStreams = createCameraAndMicrophoneStreams;
|
|
16811
16994
|
exports.createCameraStream = createCameraStream;
|
|
16812
16995
|
exports.createDisplayMedia = createDisplayMedia;
|
|
@@ -16816,12 +16999,15 @@ exports.createMicrophoneStream = createMicrophoneStream;
|
|
|
16816
16999
|
exports.getAudioInputDevices = getAudioInputDevices;
|
|
16817
17000
|
exports.getAudioOutputDevices = getAudioOutputDevices;
|
|
16818
17001
|
exports.getDevices = getDevices;
|
|
17002
|
+
exports.getFrameSizeForPicSize = getFrameSizeForPicSize;
|
|
16819
17003
|
exports.getLogLevel = getLogLevel;
|
|
16820
17004
|
exports.getMediaContent = getMediaContent;
|
|
16821
17005
|
exports.getMediaFamily = getMediaFamily;
|
|
16822
17006
|
exports.getMediaType = getMediaType;
|
|
16823
17007
|
exports.getRecommendedMaxBitrateForFrameSize = getRecommendedMaxBitrateForFrameSize;
|
|
17008
|
+
exports.getRecommendedMaxBitrateForPicSize = getRecommendedMaxBitrateForPicSize;
|
|
16824
17009
|
exports.getVideoInputDevices = getVideoInputDevices;
|
|
17010
|
+
exports.isEncodingCodecSupported = isEncodingCodecSupported;
|
|
16825
17011
|
exports.logErrorAndThrow = logErrorAndThrow;
|
|
16826
17012
|
exports.setLogHandler = setLogHandler;
|
|
16827
17013
|
exports.setLogLevel = setLogLevel;
|