@webex/web-client-media-engine 3.37.1 → 3.38.1
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 +416 -223
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +412 -224
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +33 -7
- package/package.json +2 -2
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
|
}
|
|
@@ -16071,7 +16246,17 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16071
16246
|
return;
|
|
16072
16247
|
}
|
|
16073
16248
|
const id = ids[0];
|
|
16074
|
-
|
|
16249
|
+
let codecInfo = codecInfos[0];
|
|
16250
|
+
if (codecInfos.length > 1) {
|
|
16251
|
+
const av1Codec = codecInfos.find((c) => c.av1);
|
|
16252
|
+
if (av1Codec) {
|
|
16253
|
+
codecInfo = av1Codec;
|
|
16254
|
+
logger.info(`Preferring AV1 (payloadType=${codecInfo.payloadType}) over first codec in request`);
|
|
16255
|
+
}
|
|
16256
|
+
}
|
|
16257
|
+
if (mediaType === exports.MediaType.VideoSlides && selectedPayloadType === undefined) {
|
|
16258
|
+
selectedPayloadType = codecInfo.payloadType;
|
|
16259
|
+
}
|
|
16075
16260
|
if (!isValidSsrcStreamId(id)) {
|
|
16076
16261
|
logger.warn(`${mediaType}: The stream ID is not a valid SsrcStreamId: ${JSON.stringify(id)}`);
|
|
16077
16262
|
return;
|
|
@@ -16080,12 +16265,13 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16080
16265
|
if (streamIdsMatched) {
|
|
16081
16266
|
const encodingIndex = sendTransceiver.getEncodingIndexForStreamId(id);
|
|
16082
16267
|
if (encodingIndex !== -1) {
|
|
16083
|
-
const
|
|
16084
|
-
|
|
16085
|
-
|
|
16086
|
-
|
|
16087
|
-
|
|
16268
|
+
const isVideo = mediaFamily === exports.MediaFamily.Video;
|
|
16269
|
+
const codecParams = isVideo && codecInfo ? codecToEncodingParams(codecInfo) : {};
|
|
16270
|
+
if (isVideo && codecInfo && !codecParams) {
|
|
16271
|
+
logger.warn(`${mediaType}: Unsupported codec for ID ${JSON.stringify(id)}`);
|
|
16272
|
+
return;
|
|
16088
16273
|
}
|
|
16274
|
+
const encodingParams = Object.assign({ maxPayloadBitsPerSecond }, codecParams);
|
|
16089
16275
|
requestedIdEncodingParamsMap.set(encodingIndex, encodingParams);
|
|
16090
16276
|
}
|
|
16091
16277
|
else {
|
|
@@ -16096,7 +16282,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16096
16282
|
logger.warn(`${mediaType}: Unable to find matching stream ID for requested ID: ${JSON.stringify(id)}`);
|
|
16097
16283
|
}
|
|
16098
16284
|
});
|
|
16099
|
-
return sendTransceiver.updateSendParameters(requestedIdEncodingParamsMap);
|
|
16285
|
+
return sendTransceiver.updateSendParameters(requestedIdEncodingParamsMap, selectedPayloadType);
|
|
16100
16286
|
}
|
|
16101
16287
|
createDataChannel() {
|
|
16102
16288
|
const dataChannel = this.pc.createDataChannel('datachannel', {
|
|
@@ -16228,7 +16414,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16228
16414
|
static getEncodedTransformId(mediaType, mid) {
|
|
16229
16415
|
return `INBOUND-${mediaType}-${mid}`;
|
|
16230
16416
|
}
|
|
16231
|
-
createReceiveTransceiver(mediaType, codecParams) {
|
|
16417
|
+
createReceiveTransceiver(mediaType, supportedCodecs, codecParams) {
|
|
16232
16418
|
const rtcRtpTransceiver = this.pc.addTransceiver(mediaTypeToTrackKind(mediaType), {
|
|
16233
16419
|
direction: 'recvonly',
|
|
16234
16420
|
});
|
|
@@ -16240,6 +16426,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16240
16426
|
mid,
|
|
16241
16427
|
mediaType,
|
|
16242
16428
|
munger,
|
|
16429
|
+
supportedCodecs,
|
|
16243
16430
|
});
|
|
16244
16431
|
if (doAudioLevelMonitoring) {
|
|
16245
16432
|
try {
|
|
@@ -16278,11 +16465,12 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16278
16465
|
return new Promise((createReceiveSlotsResolve) => {
|
|
16279
16466
|
this.offerAnswerQueue.push(() => __awaiter(this, void 0, void 0, function* () {
|
|
16280
16467
|
const createdReceiveOnlyTransceivers = [];
|
|
16468
|
+
const supportedCodecs = this.getSupportedCodecs(mediaType);
|
|
16281
16469
|
const codecParams = mediaTypeToTrackKind(mediaType) === exports.MediaStreamTrackKind.Video
|
|
16282
16470
|
? this.getCustomReceiveVideoCodecParams(mediaType)
|
|
16283
16471
|
: undefined;
|
|
16284
16472
|
for (let i = 0; i < count; i++) {
|
|
16285
|
-
const recvOnlyTransceiver = this.createReceiveTransceiver(mediaType, codecParams);
|
|
16473
|
+
const recvOnlyTransceiver = this.createReceiveTransceiver(mediaType, supportedCodecs, codecParams);
|
|
16286
16474
|
createdReceiveOnlyTransceivers.push(recvOnlyTransceiver);
|
|
16287
16475
|
}
|
|
16288
16476
|
if (this.pc.getRemoteDescription()) {
|
|
@@ -16785,6 +16973,7 @@ class StreamRequest {
|
|
|
16785
16973
|
|
|
16786
16974
|
const { DeviceKind } = media;
|
|
16787
16975
|
|
|
16976
|
+
exports.AV1Codec = AV1Codec;
|
|
16788
16977
|
exports.ActiveSpeakerInfo = ActiveSpeakerInfo;
|
|
16789
16978
|
exports.CodecInfo = CodecInfo$1;
|
|
16790
16979
|
exports.DeviceKind = DeviceKind;
|
|
@@ -16807,6 +16996,7 @@ exports.WcmeError = WcmeError;
|
|
|
16807
16996
|
exports.WebRtcCoreLogger = Logger$2;
|
|
16808
16997
|
exports.WebrtcCoreError = WebrtcCoreError;
|
|
16809
16998
|
exports.areReceiveSlotIdsEqual = areReceiveSlotIdsEqual;
|
|
16999
|
+
exports.codecToEncodingParams = codecToEncodingParams;
|
|
16810
17000
|
exports.createCameraAndMicrophoneStreams = createCameraAndMicrophoneStreams;
|
|
16811
17001
|
exports.createCameraStream = createCameraStream;
|
|
16812
17002
|
exports.createDisplayMedia = createDisplayMedia;
|
|
@@ -16816,12 +17006,15 @@ exports.createMicrophoneStream = createMicrophoneStream;
|
|
|
16816
17006
|
exports.getAudioInputDevices = getAudioInputDevices;
|
|
16817
17007
|
exports.getAudioOutputDevices = getAudioOutputDevices;
|
|
16818
17008
|
exports.getDevices = getDevices;
|
|
17009
|
+
exports.getFrameSizeForPicSize = getFrameSizeForPicSize;
|
|
16819
17010
|
exports.getLogLevel = getLogLevel;
|
|
16820
17011
|
exports.getMediaContent = getMediaContent;
|
|
16821
17012
|
exports.getMediaFamily = getMediaFamily;
|
|
16822
17013
|
exports.getMediaType = getMediaType;
|
|
16823
17014
|
exports.getRecommendedMaxBitrateForFrameSize = getRecommendedMaxBitrateForFrameSize;
|
|
17015
|
+
exports.getRecommendedMaxBitrateForPicSize = getRecommendedMaxBitrateForPicSize;
|
|
16824
17016
|
exports.getVideoInputDevices = getVideoInputDevices;
|
|
17017
|
+
exports.isEncodingCodecSupported = isEncodingCodecSupported;
|
|
16825
17018
|
exports.logErrorAndThrow = logErrorAndThrow;
|
|
16826
17019
|
exports.setLogHandler = setLogHandler;
|
|
16827
17020
|
exports.setLogLevel = setLogLevel;
|