@webex/web-client-media-engine 3.37.1 → 3.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +408 -222
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +404 -223
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +33 -7
- package/package.json +2 -2
package/dist/esm/index.js
CHANGED
|
@@ -7154,6 +7154,17 @@ function isValidActiveSpeakerNotificationMsg(msg) {
|
|
|
7154
7154
|
const maybeActiveSpeakerNotificationMsg = msg;
|
|
7155
7155
|
return Boolean(maybeActiveSpeakerNotificationMsg.seqNum && maybeActiveSpeakerNotificationMsg.csis);
|
|
7156
7156
|
}
|
|
7157
|
+
|
|
7158
|
+
class AV1Codec {
|
|
7159
|
+
constructor(levelIdx, tier, maxWidth, maxHeight, maxPicSize, maxDecodeRate) {
|
|
7160
|
+
this.levelIdx = levelIdx;
|
|
7161
|
+
this.tier = tier;
|
|
7162
|
+
this.maxWidth = maxWidth;
|
|
7163
|
+
this.maxHeight = maxHeight;
|
|
7164
|
+
this.maxPicSize = maxPicSize;
|
|
7165
|
+
this.maxDecodeRate = maxDecodeRate;
|
|
7166
|
+
}
|
|
7167
|
+
}
|
|
7157
7168
|
function isValidAV1Codec(msg) {
|
|
7158
7169
|
if (typeof msg !== 'object' || msg === null) {
|
|
7159
7170
|
return false;
|
|
@@ -7769,6 +7780,203 @@ class JmpSession extends EventEmitter$5 {
|
|
|
7769
7780
|
}
|
|
7770
7781
|
}
|
|
7771
7782
|
|
|
7783
|
+
var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
7784
|
+
|
|
7785
|
+
function getDefaultExportFromCjs (x) {
|
|
7786
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
7787
|
+
}
|
|
7788
|
+
|
|
7789
|
+
var es5 = {exports: {}};
|
|
7790
|
+
|
|
7791
|
+
(function (module, exports) {
|
|
7792
|
+
!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;}})}));
|
|
7793
|
+
}(es5));
|
|
7794
|
+
|
|
7795
|
+
var Bowser = /*@__PURE__*/getDefaultExportFromCjs(es5.exports);
|
|
7796
|
+
|
|
7797
|
+
var BrowserName;
|
|
7798
|
+
(function (BrowserName) {
|
|
7799
|
+
BrowserName["CHROME"] = "Chrome";
|
|
7800
|
+
BrowserName["FIREFOX"] = "Firefox";
|
|
7801
|
+
BrowserName["EDGE"] = "Microsoft Edge";
|
|
7802
|
+
BrowserName["SAFARI"] = "Safari";
|
|
7803
|
+
})(BrowserName || (BrowserName = {}));
|
|
7804
|
+
var OSName;
|
|
7805
|
+
(function (OSName) {
|
|
7806
|
+
OSName["WINDOWS"] = "Windows";
|
|
7807
|
+
OSName["MAC"] = "macOS";
|
|
7808
|
+
OSName["LINUX"] = "Linux";
|
|
7809
|
+
})(OSName || (OSName = {}));
|
|
7810
|
+
class BrowserInfo {
|
|
7811
|
+
static getBrowserDetails() {
|
|
7812
|
+
return this.browser.getBrowser();
|
|
7813
|
+
}
|
|
7814
|
+
static getOSDetails() {
|
|
7815
|
+
return this.browser.getOS();
|
|
7816
|
+
}
|
|
7817
|
+
static getPlatformDetails() {
|
|
7818
|
+
return this.browser.getPlatform();
|
|
7819
|
+
}
|
|
7820
|
+
static getEngineDetails() {
|
|
7821
|
+
return this.browser.getEngine();
|
|
7822
|
+
}
|
|
7823
|
+
static isChrome() {
|
|
7824
|
+
return this.browser.getBrowserName() === BrowserName.CHROME;
|
|
7825
|
+
}
|
|
7826
|
+
static isFirefox() {
|
|
7827
|
+
return this.browser.getBrowserName() === BrowserName.FIREFOX;
|
|
7828
|
+
}
|
|
7829
|
+
static isEdge() {
|
|
7830
|
+
return this.browser.getBrowserName() === BrowserName.EDGE;
|
|
7831
|
+
}
|
|
7832
|
+
static isSafari() {
|
|
7833
|
+
return this.browser.getBrowserName() === BrowserName.SAFARI;
|
|
7834
|
+
}
|
|
7835
|
+
static isWindows() {
|
|
7836
|
+
return this.browser.getOSName() === OSName.WINDOWS;
|
|
7837
|
+
}
|
|
7838
|
+
static isMac() {
|
|
7839
|
+
return this.browser.getOSName() === OSName.MAC;
|
|
7840
|
+
}
|
|
7841
|
+
static isLinux() {
|
|
7842
|
+
return this.browser.getOSName() === OSName.LINUX;
|
|
7843
|
+
}
|
|
7844
|
+
static isVersionGreaterThan(version) {
|
|
7845
|
+
const browserName = this.browser.getBrowserName();
|
|
7846
|
+
const checkTree = { [browserName]: `>${version}` };
|
|
7847
|
+
return this.browser.satisfies(checkTree);
|
|
7848
|
+
}
|
|
7849
|
+
static isVersionGreaterThanOrEqualTo(version) {
|
|
7850
|
+
const browserName = this.browser.getBrowserName();
|
|
7851
|
+
const checkTree = { [browserName]: `>=${version}` };
|
|
7852
|
+
return this.browser.satisfies(checkTree);
|
|
7853
|
+
}
|
|
7854
|
+
static isVersionLessThan(version) {
|
|
7855
|
+
const browserName = this.browser.getBrowserName();
|
|
7856
|
+
const checkTree = { [browserName]: `<${version}` };
|
|
7857
|
+
return this.browser.satisfies(checkTree);
|
|
7858
|
+
}
|
|
7859
|
+
static isVersionLessThanOrEqualTo(version) {
|
|
7860
|
+
const browserName = this.browser.getBrowserName();
|
|
7861
|
+
const checkTree = { [browserName]: `<=${version}` };
|
|
7862
|
+
return this.browser.satisfies(checkTree);
|
|
7863
|
+
}
|
|
7864
|
+
static isSubVersionOf(version) {
|
|
7865
|
+
const browserName = this.browser.getBrowserName();
|
|
7866
|
+
const checkTree = { [browserName]: `~${version}` };
|
|
7867
|
+
return this.browser.satisfies(checkTree);
|
|
7868
|
+
}
|
|
7869
|
+
}
|
|
7870
|
+
BrowserInfo.browser = Bowser.getParser(window.navigator.userAgent);
|
|
7871
|
+
|
|
7872
|
+
class CpuInfo {
|
|
7873
|
+
static getNumLogicalCores() {
|
|
7874
|
+
return navigator.hardwareConcurrency;
|
|
7875
|
+
}
|
|
7876
|
+
}
|
|
7877
|
+
|
|
7878
|
+
var SystemInfoEvents;
|
|
7879
|
+
(function (SystemInfoEvents) {
|
|
7880
|
+
SystemInfoEvents["CpuPressureStateChange"] = "cpu-pressure-state-change";
|
|
7881
|
+
})(SystemInfoEvents || (SystemInfoEvents = {}));
|
|
7882
|
+
class PressureObserverHelper extends EventEmitter$5 {
|
|
7883
|
+
constructor() {
|
|
7884
|
+
super();
|
|
7885
|
+
this.lastCpuPressure = undefined;
|
|
7886
|
+
if (PressureObserverHelper.isPressureObserverSupported()) {
|
|
7887
|
+
this.observer = new PressureObserver(this.handleStateChange.bind(this));
|
|
7888
|
+
if (this.observer) {
|
|
7889
|
+
this.observer.observe('cpu');
|
|
7890
|
+
}
|
|
7891
|
+
}
|
|
7892
|
+
}
|
|
7893
|
+
handleStateChange(records) {
|
|
7894
|
+
records.forEach((record) => {
|
|
7895
|
+
if (record.source === 'cpu' && record.state !== this.lastCpuPressure) {
|
|
7896
|
+
this.lastCpuPressure = record.state;
|
|
7897
|
+
this.emit(SystemInfoEvents.CpuPressureStateChange, record.state);
|
|
7898
|
+
}
|
|
7899
|
+
});
|
|
7900
|
+
}
|
|
7901
|
+
getCpuPressure() {
|
|
7902
|
+
return this.lastCpuPressure;
|
|
7903
|
+
}
|
|
7904
|
+
static isPressureObserverSupported() {
|
|
7905
|
+
return 'PressureObserver' in window;
|
|
7906
|
+
}
|
|
7907
|
+
}
|
|
7908
|
+
new PressureObserverHelper();
|
|
7909
|
+
|
|
7910
|
+
var CapabilityState;
|
|
7911
|
+
(function (CapabilityState) {
|
|
7912
|
+
CapabilityState["NOT_CAPABLE"] = "not capable";
|
|
7913
|
+
CapabilityState["CAPABLE"] = "capable";
|
|
7914
|
+
CapabilityState["UNKNOWN"] = "unknown";
|
|
7915
|
+
})(CapabilityState || (CapabilityState = {}));
|
|
7916
|
+
class WebCapabilities {
|
|
7917
|
+
static isCapableOfBackgroundNoiseRemoval() {
|
|
7918
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7919
|
+
if (numCores === undefined) {
|
|
7920
|
+
return CapabilityState.UNKNOWN;
|
|
7921
|
+
}
|
|
7922
|
+
if (numCores < 2) {
|
|
7923
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7924
|
+
}
|
|
7925
|
+
return CapabilityState.CAPABLE;
|
|
7926
|
+
}
|
|
7927
|
+
static isCapableOfVirtualBackground() {
|
|
7928
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7929
|
+
if (numCores === undefined) {
|
|
7930
|
+
return CapabilityState.UNKNOWN;
|
|
7931
|
+
}
|
|
7932
|
+
if (numCores < 2) {
|
|
7933
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7934
|
+
}
|
|
7935
|
+
return CapabilityState.CAPABLE;
|
|
7936
|
+
}
|
|
7937
|
+
static isCapableOfReceiving1080pVideo() {
|
|
7938
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7939
|
+
if (numCores === undefined) {
|
|
7940
|
+
return CapabilityState.UNKNOWN;
|
|
7941
|
+
}
|
|
7942
|
+
if (numCores < 2) {
|
|
7943
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7944
|
+
}
|
|
7945
|
+
return CapabilityState.CAPABLE;
|
|
7946
|
+
}
|
|
7947
|
+
static isCapableOfSending1080pVideo() {
|
|
7948
|
+
const numCores = CpuInfo.getNumLogicalCores();
|
|
7949
|
+
if (numCores === undefined) {
|
|
7950
|
+
return CapabilityState.UNKNOWN;
|
|
7951
|
+
}
|
|
7952
|
+
if (numCores < 8) {
|
|
7953
|
+
return CapabilityState.NOT_CAPABLE;
|
|
7954
|
+
}
|
|
7955
|
+
return CapabilityState.CAPABLE;
|
|
7956
|
+
}
|
|
7957
|
+
static isCapableOfReceivingVideoCodec(mimeType) {
|
|
7958
|
+
var _a;
|
|
7959
|
+
const codecs = ((_a = RTCRtpReceiver.getCapabilities('video')) === null || _a === void 0 ? void 0 : _a.codecs) || [];
|
|
7960
|
+
return codecs.some((codec) => codec.mimeType === mimeType)
|
|
7961
|
+
? CapabilityState.CAPABLE
|
|
7962
|
+
: CapabilityState.NOT_CAPABLE;
|
|
7963
|
+
}
|
|
7964
|
+
static supportsEncodedStreamTransforms() {
|
|
7965
|
+
return window.RTCRtpScriptTransform &&
|
|
7966
|
+
window.RTCRtpSender &&
|
|
7967
|
+
'transform' in RTCRtpSender.prototype &&
|
|
7968
|
+
window.RTCRtpReceiver &&
|
|
7969
|
+
'transform' in RTCRtpReceiver.prototype
|
|
7970
|
+
? CapabilityState.CAPABLE
|
|
7971
|
+
: CapabilityState.NOT_CAPABLE;
|
|
7972
|
+
}
|
|
7973
|
+
static supportsRTCPeerConnection() {
|
|
7974
|
+
return typeof RTCPeerConnection === 'function'
|
|
7975
|
+
? CapabilityState.CAPABLE
|
|
7976
|
+
: CapabilityState.NOT_CAPABLE;
|
|
7977
|
+
}
|
|
7978
|
+
}
|
|
7979
|
+
|
|
7772
7980
|
var WcmeErrorType;
|
|
7773
7981
|
(function (WcmeErrorType) {
|
|
7774
7982
|
WcmeErrorType["CREATE_OFFER_FAILED"] = "CREATE_OFFER_FAILED";
|
|
@@ -7784,6 +7992,7 @@ var WcmeErrorType;
|
|
|
7784
7992
|
WcmeErrorType["SET_SOURCE_STATE_OVERRIDE_FAILED"] = "SET_SOURCE_STATE_OVERRIDE_FAILED";
|
|
7785
7993
|
WcmeErrorType["DATA_CHANNEL_SEND_FAILED"] = "DATA_CHANNEL_SEND_FAILED";
|
|
7786
7994
|
WcmeErrorType["RENEW_PEER_CONNECTION_FAILED"] = "RENEW_PEER_CONNECTION_FAILED";
|
|
7995
|
+
WcmeErrorType["INVALID_CODEC_PARAMS"] = "INVALID_CODEC_PARAMS";
|
|
7787
7996
|
WcmeErrorType["UNSUPPORTED_CONFIG"] = "UNSUPPORTED_CONFIG";
|
|
7788
7997
|
})(WcmeErrorType || (WcmeErrorType = {}));
|
|
7789
7998
|
class WcmeError {
|
|
@@ -7793,7 +8002,7 @@ class WcmeError {
|
|
|
7793
8002
|
}
|
|
7794
8003
|
}
|
|
7795
8004
|
|
|
7796
|
-
var commonjsGlobal
|
|
8005
|
+
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
7797
8006
|
|
|
7798
8007
|
var logger$1 = {exports: {}};
|
|
7799
8008
|
|
|
@@ -8074,7 +8283,7 @@ var logger$1 = {exports: {}};
|
|
|
8074
8283
|
|
|
8075
8284
|
global.Logger = Logger;
|
|
8076
8285
|
}
|
|
8077
|
-
}(commonjsGlobal
|
|
8286
|
+
}(commonjsGlobal));
|
|
8078
8287
|
}(logger$1));
|
|
8079
8288
|
|
|
8080
8289
|
var Logger = logger$1.exports;
|
|
@@ -8110,6 +8319,7 @@ var MediaCodecMimeType;
|
|
|
8110
8319
|
const defaultMaxVideoEncodeFrameSize = 8160;
|
|
8111
8320
|
const defaultMaxVideoEncodeMbps = 244800;
|
|
8112
8321
|
const defaultStartBitrateKbps = 3000;
|
|
8322
|
+
const macroBlockSize = 16 * 16;
|
|
8113
8323
|
var RecommendedOpusBitrates;
|
|
8114
8324
|
(function (RecommendedOpusBitrates) {
|
|
8115
8325
|
RecommendedOpusBitrates[RecommendedOpusBitrates["NB"] = 12000] = "NB";
|
|
@@ -8128,6 +8338,15 @@ const maxFrameSizeToMaxBitrateMap = new Map([
|
|
|
8128
8338
|
[3600, 2500000],
|
|
8129
8339
|
[8160, 4000000],
|
|
8130
8340
|
]);
|
|
8341
|
+
const minSupportedMaxPicSize = 147456;
|
|
8342
|
+
const maxPicSizeToMaxBitrateMap = new Map([
|
|
8343
|
+
[147456, 1.5 * 1000000],
|
|
8344
|
+
[278784, 3.0 * 1000000],
|
|
8345
|
+
[665856, 6.0 * 1000000],
|
|
8346
|
+
[1065024, 10.0 * 1000000],
|
|
8347
|
+
[2359296, 12.0 * 1000000],
|
|
8348
|
+
[8912896, 30.0 * 1000000],
|
|
8349
|
+
]);
|
|
8131
8350
|
const defaultVideoMainRtxTime = '300';
|
|
8132
8351
|
const defaultVideoSlidesRtxTime = '1000';
|
|
8133
8352
|
function areProfileLevelIdsCompatible(senderProfileLevelId, receiverProfileLevelId, levelAsymmetryAllowed) {
|
|
@@ -8176,6 +8395,51 @@ function areCodecsCompatible(senderCodec, receiverCodec) {
|
|
|
8176
8395
|
return true;
|
|
8177
8396
|
});
|
|
8178
8397
|
}
|
|
8398
|
+
function isVideoEncodingParams(encodingParams) {
|
|
8399
|
+
if (!encodingParams) {
|
|
8400
|
+
return false;
|
|
8401
|
+
}
|
|
8402
|
+
return 'maxWidth' in encodingParams || 'maxHeight' in encodingParams;
|
|
8403
|
+
}
|
|
8404
|
+
function isH264EncodingParams(encodingParams) {
|
|
8405
|
+
if (!encodingParams) {
|
|
8406
|
+
return false;
|
|
8407
|
+
}
|
|
8408
|
+
return 'maxFs' in encodingParams || 'maxFps' in encodingParams || 'maxMbps' in encodingParams;
|
|
8409
|
+
}
|
|
8410
|
+
function isAV1EncodingParams(encodingParams) {
|
|
8411
|
+
if (!encodingParams) {
|
|
8412
|
+
return false;
|
|
8413
|
+
}
|
|
8414
|
+
return ('levelIdx' in encodingParams ||
|
|
8415
|
+
'tier' in encodingParams ||
|
|
8416
|
+
'maxPicSize' in encodingParams ||
|
|
8417
|
+
'maxDecodeRate' in encodingParams);
|
|
8418
|
+
}
|
|
8419
|
+
function codecToEncodingParams(codecInfo) {
|
|
8420
|
+
if (codecInfo.av1) {
|
|
8421
|
+
const { av1 } = codecInfo;
|
|
8422
|
+
return {
|
|
8423
|
+
levelIdx: av1.levelIdx,
|
|
8424
|
+
tier: av1.tier,
|
|
8425
|
+
maxWidth: av1.maxWidth,
|
|
8426
|
+
maxHeight: av1.maxHeight,
|
|
8427
|
+
maxPicSize: av1.maxPicSize,
|
|
8428
|
+
maxDecodeRate: av1.maxDecodeRate,
|
|
8429
|
+
};
|
|
8430
|
+
}
|
|
8431
|
+
if (codecInfo.h264) {
|
|
8432
|
+
const { h264 } = codecInfo;
|
|
8433
|
+
return {
|
|
8434
|
+
maxFs: h264.maxFs,
|
|
8435
|
+
maxFps: h264.maxFps,
|
|
8436
|
+
maxMbps: h264.maxMbps,
|
|
8437
|
+
maxWidth: h264.maxWidth,
|
|
8438
|
+
maxHeight: h264.maxHeight,
|
|
8439
|
+
};
|
|
8440
|
+
}
|
|
8441
|
+
return undefined;
|
|
8442
|
+
}
|
|
8179
8443
|
function gcd(a, b) {
|
|
8180
8444
|
return b === 0 ? a : gcd(b, a % b);
|
|
8181
8445
|
}
|
|
@@ -8183,7 +8447,6 @@ function getFrameHeightByMaxFs(sourceAspectRatio, requestedMaxFs) {
|
|
|
8183
8447
|
const _gcd = gcd(sourceAspectRatio[0], sourceAspectRatio[1]);
|
|
8184
8448
|
const minNumberRatiosForWidth = sourceAspectRatio[0] / _gcd;
|
|
8185
8449
|
const minNumberRatiosForHeight = sourceAspectRatio[1] / _gcd;
|
|
8186
|
-
const macroBlockSize = 16 * 16;
|
|
8187
8450
|
const minRatioNumberByMaxFs = Math.sqrt((requestedMaxFs * macroBlockSize) / (minNumberRatiosForWidth * minNumberRatiosForHeight));
|
|
8188
8451
|
const roundedMinRatioNumberByMaxFs = Math.max(Math.floor(minRatioNumberByMaxFs), 1.0);
|
|
8189
8452
|
return roundedMinRatioNumberByMaxFs * minNumberRatiosForHeight;
|
|
@@ -8202,10 +8465,10 @@ function getRecommendedMaxBitrateForFrameSize(requestedMaxFs) {
|
|
|
8202
8465
|
if (requestedMaxFs < 60) {
|
|
8203
8466
|
logErrorAndThrow(WcmeErrorType.GET_MAX_BITRATE_FAILED, `Requested max video frame size cannot be less than 60.`);
|
|
8204
8467
|
}
|
|
8205
|
-
const
|
|
8468
|
+
const matchingFrameSize = [...maxFrameSizeToMaxBitrateMap.keys()]
|
|
8206
8469
|
.sort((a, b) => b - a)
|
|
8207
|
-
.find((
|
|
8208
|
-
return maxFrameSizeToMaxBitrateMap.get(
|
|
8470
|
+
.find((maxFs) => requestedMaxFs >= maxFs);
|
|
8471
|
+
return maxFrameSizeToMaxBitrateMap.get(matchingFrameSize);
|
|
8209
8472
|
}
|
|
8210
8473
|
function setCodecParameters(allCodecParameters, codecMimeType, newParameters) {
|
|
8211
8474
|
if (!allCodecParameters.has(codecMimeType)) {
|
|
@@ -8224,6 +8487,43 @@ function markCodecParametersForDeletion(allCodecParameters, codecMimeTypeToUpdat
|
|
|
8224
8487
|
codecParameters.forEach((param) => {
|
|
8225
8488
|
currentParameters[param] = undefined;
|
|
8226
8489
|
});
|
|
8490
|
+
}
|
|
8491
|
+
function getRecommendedMaxBitrateForPicSize(requestedMaxPicSize) {
|
|
8492
|
+
if (requestedMaxPicSize < minSupportedMaxPicSize) {
|
|
8493
|
+
logErrorAndThrow(WcmeErrorType.GET_MAX_BITRATE_FAILED, `Requested max video picture size cannot be less than ${minSupportedMaxPicSize}.`);
|
|
8494
|
+
}
|
|
8495
|
+
const expectedHeight = [...maxPicSizeToMaxBitrateMap.keys()]
|
|
8496
|
+
.sort((a, b) => b - a)
|
|
8497
|
+
.find((h) => requestedMaxPicSize >= h);
|
|
8498
|
+
return maxPicSizeToMaxBitrateMap.get(expectedHeight);
|
|
8499
|
+
}
|
|
8500
|
+
function getFrameSizeForPicSize(maxPicSize) {
|
|
8501
|
+
if (!maxPicSize) {
|
|
8502
|
+
return undefined;
|
|
8503
|
+
}
|
|
8504
|
+
return Math.ceil(maxPicSize / macroBlockSize);
|
|
8505
|
+
}
|
|
8506
|
+
function isEncodingCodecSupported() {
|
|
8507
|
+
return (((BrowserInfo.isChrome() || BrowserInfo.isEdge()) &&
|
|
8508
|
+
BrowserInfo.isVersionGreaterThanOrEqualTo('140')) ||
|
|
8509
|
+
(BrowserInfo.isFirefox() && BrowserInfo.isVersionGreaterThanOrEqualTo('145')));
|
|
8510
|
+
}
|
|
8511
|
+
function getSupportedAudioCodecs() {
|
|
8512
|
+
return [MediaCodecMimeType.OPUS];
|
|
8513
|
+
}
|
|
8514
|
+
function getSupportedVideoCodecs(options = {
|
|
8515
|
+
includeAV1: false,
|
|
8516
|
+
}) {
|
|
8517
|
+
const supportedCodecs = [MediaCodecMimeType.H264, MediaCodecMimeType.RTX];
|
|
8518
|
+
if (options.includeAV1) {
|
|
8519
|
+
if (isEncodingCodecSupported()) {
|
|
8520
|
+
supportedCodecs.push(MediaCodecMimeType.AV1);
|
|
8521
|
+
}
|
|
8522
|
+
else {
|
|
8523
|
+
logger.warn('AV1 codec was requested but browser does not support encoding.codec');
|
|
8524
|
+
}
|
|
8525
|
+
}
|
|
8526
|
+
return supportedCodecs;
|
|
8227
8527
|
}
|
|
8228
8528
|
|
|
8229
8529
|
/******************************************************************************
|
|
@@ -10047,10 +10347,6 @@ function retainCodecs(av, predicate) {
|
|
|
10047
10347
|
});
|
|
10048
10348
|
return filtered;
|
|
10049
10349
|
}
|
|
10050
|
-
function retainCodecsByCodecName(av, allowedCodecNames) {
|
|
10051
|
-
const allowedLowerCase = allowedCodecNames.map((s) => s.toLowerCase());
|
|
10052
|
-
return retainCodecs(av, (codecInfo) => !!codecInfo.name && allowedLowerCase.includes(codecInfo.name.toLowerCase()));
|
|
10053
|
-
}
|
|
10054
10350
|
function retainCandidates(sdpOrMedia, predicate) {
|
|
10055
10351
|
const mediaDescriptions = sdpOrMedia instanceof Sdp ? sdpOrMedia.media : [sdpOrMedia];
|
|
10056
10352
|
let filtered = false;
|
|
@@ -10074,191 +10370,6 @@ function hasCodec(codecName, mLine) {
|
|
|
10074
10370
|
return [...mLine.codecs.values()].some((ci) => { var _a; return ((_a = ci.name) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === codecName.toLowerCase(); });
|
|
10075
10371
|
}
|
|
10076
10372
|
|
|
10077
|
-
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
10078
|
-
|
|
10079
|
-
function getDefaultExportFromCjs (x) {
|
|
10080
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
10081
|
-
}
|
|
10082
|
-
|
|
10083
|
-
var es5 = {exports: {}};
|
|
10084
|
-
|
|
10085
|
-
(function (module, exports) {
|
|
10086
|
-
!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;}})}));
|
|
10087
|
-
}(es5));
|
|
10088
|
-
|
|
10089
|
-
var Bowser = /*@__PURE__*/getDefaultExportFromCjs(es5.exports);
|
|
10090
|
-
|
|
10091
|
-
var BrowserName;
|
|
10092
|
-
(function (BrowserName) {
|
|
10093
|
-
BrowserName["CHROME"] = "Chrome";
|
|
10094
|
-
BrowserName["FIREFOX"] = "Firefox";
|
|
10095
|
-
BrowserName["EDGE"] = "Microsoft Edge";
|
|
10096
|
-
BrowserName["SAFARI"] = "Safari";
|
|
10097
|
-
})(BrowserName || (BrowserName = {}));
|
|
10098
|
-
var OSName;
|
|
10099
|
-
(function (OSName) {
|
|
10100
|
-
OSName["WINDOWS"] = "Windows";
|
|
10101
|
-
OSName["MAC"] = "macOS";
|
|
10102
|
-
OSName["LINUX"] = "Linux";
|
|
10103
|
-
})(OSName || (OSName = {}));
|
|
10104
|
-
class BrowserInfo {
|
|
10105
|
-
static getBrowserDetails() {
|
|
10106
|
-
return this.browser.getBrowser();
|
|
10107
|
-
}
|
|
10108
|
-
static getOSDetails() {
|
|
10109
|
-
return this.browser.getOS();
|
|
10110
|
-
}
|
|
10111
|
-
static getPlatformDetails() {
|
|
10112
|
-
return this.browser.getPlatform();
|
|
10113
|
-
}
|
|
10114
|
-
static getEngineDetails() {
|
|
10115
|
-
return this.browser.getEngine();
|
|
10116
|
-
}
|
|
10117
|
-
static isChrome() {
|
|
10118
|
-
return this.browser.getBrowserName() === BrowserName.CHROME;
|
|
10119
|
-
}
|
|
10120
|
-
static isFirefox() {
|
|
10121
|
-
return this.browser.getBrowserName() === BrowserName.FIREFOX;
|
|
10122
|
-
}
|
|
10123
|
-
static isEdge() {
|
|
10124
|
-
return this.browser.getBrowserName() === BrowserName.EDGE;
|
|
10125
|
-
}
|
|
10126
|
-
static isSafari() {
|
|
10127
|
-
return this.browser.getBrowserName() === BrowserName.SAFARI;
|
|
10128
|
-
}
|
|
10129
|
-
static isWindows() {
|
|
10130
|
-
return this.browser.getOSName() === OSName.WINDOWS;
|
|
10131
|
-
}
|
|
10132
|
-
static isMac() {
|
|
10133
|
-
return this.browser.getOSName() === OSName.MAC;
|
|
10134
|
-
}
|
|
10135
|
-
static isLinux() {
|
|
10136
|
-
return this.browser.getOSName() === OSName.LINUX;
|
|
10137
|
-
}
|
|
10138
|
-
static isVersionGreaterThan(version) {
|
|
10139
|
-
const browserName = this.browser.getBrowserName();
|
|
10140
|
-
const checkTree = { [browserName]: `>${version}` };
|
|
10141
|
-
return this.browser.satisfies(checkTree);
|
|
10142
|
-
}
|
|
10143
|
-
static isVersionGreaterThanOrEqualTo(version) {
|
|
10144
|
-
const browserName = this.browser.getBrowserName();
|
|
10145
|
-
const checkTree = { [browserName]: `>=${version}` };
|
|
10146
|
-
return this.browser.satisfies(checkTree);
|
|
10147
|
-
}
|
|
10148
|
-
static isVersionLessThan(version) {
|
|
10149
|
-
const browserName = this.browser.getBrowserName();
|
|
10150
|
-
const checkTree = { [browserName]: `<${version}` };
|
|
10151
|
-
return this.browser.satisfies(checkTree);
|
|
10152
|
-
}
|
|
10153
|
-
static isVersionLessThanOrEqualTo(version) {
|
|
10154
|
-
const browserName = this.browser.getBrowserName();
|
|
10155
|
-
const checkTree = { [browserName]: `<=${version}` };
|
|
10156
|
-
return this.browser.satisfies(checkTree);
|
|
10157
|
-
}
|
|
10158
|
-
static isSubVersionOf(version) {
|
|
10159
|
-
const browserName = this.browser.getBrowserName();
|
|
10160
|
-
const checkTree = { [browserName]: `~${version}` };
|
|
10161
|
-
return this.browser.satisfies(checkTree);
|
|
10162
|
-
}
|
|
10163
|
-
}
|
|
10164
|
-
BrowserInfo.browser = Bowser.getParser(window.navigator.userAgent);
|
|
10165
|
-
|
|
10166
|
-
class CpuInfo {
|
|
10167
|
-
static getNumLogicalCores() {
|
|
10168
|
-
return navigator.hardwareConcurrency;
|
|
10169
|
-
}
|
|
10170
|
-
}
|
|
10171
|
-
|
|
10172
|
-
var SystemInfoEvents;
|
|
10173
|
-
(function (SystemInfoEvents) {
|
|
10174
|
-
SystemInfoEvents["CpuPressureStateChange"] = "cpu-pressure-state-change";
|
|
10175
|
-
})(SystemInfoEvents || (SystemInfoEvents = {}));
|
|
10176
|
-
class PressureObserverHelper extends EventEmitter$5 {
|
|
10177
|
-
constructor() {
|
|
10178
|
-
super();
|
|
10179
|
-
this.lastCpuPressure = undefined;
|
|
10180
|
-
if (PressureObserverHelper.isPressureObserverSupported()) {
|
|
10181
|
-
this.observer = new PressureObserver(this.handleStateChange.bind(this));
|
|
10182
|
-
if (this.observer) {
|
|
10183
|
-
this.observer.observe('cpu');
|
|
10184
|
-
}
|
|
10185
|
-
}
|
|
10186
|
-
}
|
|
10187
|
-
handleStateChange(records) {
|
|
10188
|
-
records.forEach((record) => {
|
|
10189
|
-
if (record.source === 'cpu' && record.state !== this.lastCpuPressure) {
|
|
10190
|
-
this.lastCpuPressure = record.state;
|
|
10191
|
-
this.emit(SystemInfoEvents.CpuPressureStateChange, record.state);
|
|
10192
|
-
}
|
|
10193
|
-
});
|
|
10194
|
-
}
|
|
10195
|
-
getCpuPressure() {
|
|
10196
|
-
return this.lastCpuPressure;
|
|
10197
|
-
}
|
|
10198
|
-
static isPressureObserverSupported() {
|
|
10199
|
-
return 'PressureObserver' in window;
|
|
10200
|
-
}
|
|
10201
|
-
}
|
|
10202
|
-
new PressureObserverHelper();
|
|
10203
|
-
|
|
10204
|
-
var CapabilityState;
|
|
10205
|
-
(function (CapabilityState) {
|
|
10206
|
-
CapabilityState["NOT_CAPABLE"] = "not capable";
|
|
10207
|
-
CapabilityState["CAPABLE"] = "capable";
|
|
10208
|
-
CapabilityState["UNKNOWN"] = "unknown";
|
|
10209
|
-
})(CapabilityState || (CapabilityState = {}));
|
|
10210
|
-
class WebCapabilities {
|
|
10211
|
-
static isCapableOfBackgroundNoiseRemoval() {
|
|
10212
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10213
|
-
if (numCores === undefined) {
|
|
10214
|
-
return CapabilityState.UNKNOWN;
|
|
10215
|
-
}
|
|
10216
|
-
if (numCores < 2) {
|
|
10217
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10218
|
-
}
|
|
10219
|
-
return CapabilityState.CAPABLE;
|
|
10220
|
-
}
|
|
10221
|
-
static isCapableOfVirtualBackground() {
|
|
10222
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10223
|
-
if (numCores === undefined) {
|
|
10224
|
-
return CapabilityState.UNKNOWN;
|
|
10225
|
-
}
|
|
10226
|
-
if (numCores < 2) {
|
|
10227
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10228
|
-
}
|
|
10229
|
-
return CapabilityState.CAPABLE;
|
|
10230
|
-
}
|
|
10231
|
-
static isCapableOfReceiving1080pVideo() {
|
|
10232
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10233
|
-
if (numCores === undefined) {
|
|
10234
|
-
return CapabilityState.UNKNOWN;
|
|
10235
|
-
}
|
|
10236
|
-
if (numCores < 2) {
|
|
10237
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10238
|
-
}
|
|
10239
|
-
return CapabilityState.CAPABLE;
|
|
10240
|
-
}
|
|
10241
|
-
static isCapableOfSending1080pVideo() {
|
|
10242
|
-
const numCores = CpuInfo.getNumLogicalCores();
|
|
10243
|
-
if (numCores === undefined) {
|
|
10244
|
-
return CapabilityState.UNKNOWN;
|
|
10245
|
-
}
|
|
10246
|
-
if (numCores < 8) {
|
|
10247
|
-
return CapabilityState.NOT_CAPABLE;
|
|
10248
|
-
}
|
|
10249
|
-
return CapabilityState.CAPABLE;
|
|
10250
|
-
}
|
|
10251
|
-
static supportsEncodedStreamTransforms() {
|
|
10252
|
-
return window.RTCRtpScriptTransform &&
|
|
10253
|
-
window.RTCRtpSender &&
|
|
10254
|
-
'transform' in RTCRtpSender.prototype &&
|
|
10255
|
-
window.RTCRtpReceiver &&
|
|
10256
|
-
'transform' in RTCRtpReceiver.prototype
|
|
10257
|
-
? CapabilityState.CAPABLE
|
|
10258
|
-
: CapabilityState.NOT_CAPABLE;
|
|
10259
|
-
}
|
|
10260
|
-
}
|
|
10261
|
-
|
|
10262
10373
|
const simulcastMaxFrameSizes = {
|
|
10263
10374
|
0: '240',
|
|
10264
10375
|
1: '2304',
|
|
@@ -10457,6 +10568,9 @@ function addVlaExtension(mediaDescription) {
|
|
|
10457
10568
|
mediaDescription.addExtension({ uri: vlaExtensionUri });
|
|
10458
10569
|
}
|
|
10459
10570
|
}
|
|
10571
|
+
function getCodecName(codecMimeType) {
|
|
10572
|
+
return codecMimeType.split('/')[1].toLowerCase();
|
|
10573
|
+
}
|
|
10460
10574
|
function setFormatParameters(mediaDescription, codecMimeType, paramsMap) {
|
|
10461
10575
|
const codecName = codecMimeType.split('/')[1].toLowerCase();
|
|
10462
10576
|
Object.entries(paramsMap).forEach(([param, value]) => {
|
|
@@ -10474,6 +10588,10 @@ function setFormatParameters(mediaDescription, codecMimeType, paramsMap) {
|
|
|
10474
10588
|
}
|
|
10475
10589
|
function hasIceCandidates(sdp) {
|
|
10476
10590
|
return sdp.media.some((media) => media.iceInfo.candidates.length);
|
|
10591
|
+
}
|
|
10592
|
+
function retainCodecsByMimeType(mediaDescription, allowedMimeTypes) {
|
|
10593
|
+
const codecNames = allowedMimeTypes.map((mimeType) => getCodecName(mimeType));
|
|
10594
|
+
retainCodecs(mediaDescription, (codecInfo) => !!codecInfo.name && codecNames.includes(codecInfo.name.toLowerCase()));
|
|
10477
10595
|
}
|
|
10478
10596
|
|
|
10479
10597
|
function generateSsrc() {
|
|
@@ -10490,7 +10608,7 @@ class EgressSdpMunger {
|
|
|
10490
10608
|
}
|
|
10491
10609
|
mungeLocalDescription(mediaDescription, options) {
|
|
10492
10610
|
var _a;
|
|
10493
|
-
|
|
10611
|
+
retainCodecsByMimeType(mediaDescription, options.supportedCodecs);
|
|
10494
10612
|
if (options.forceSoftwareEncoder) {
|
|
10495
10613
|
const isH264Cbp = (codecInfo) => {
|
|
10496
10614
|
var _a;
|
|
@@ -11120,7 +11238,7 @@ class IngressSdpMunger {
|
|
|
11120
11238
|
return Object.assign({ ssrc: this.ssrc }, (this.rtxSsrc ? { rtxSsrc: this.rtxSsrc } : {}));
|
|
11121
11239
|
}
|
|
11122
11240
|
mungeLocalDescription(mediaDescription, options) {
|
|
11123
|
-
|
|
11241
|
+
retainCodecsByMimeType(mediaDescription, options.supportedCodecs);
|
|
11124
11242
|
if (mediaDescription.codecs.size === 0) {
|
|
11125
11243
|
logErrorAndThrow(WcmeErrorType.SDP_MUNGE_MISSING_CODECS, `No codecs present in m-line with MID ${mediaDescription.mid} after filtering.`);
|
|
11126
11244
|
}
|
|
@@ -11378,6 +11496,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
11378
11496
|
this.metadata = { isActiveSpeaker: false };
|
|
11379
11497
|
this.getEncodedStreamMetadataCallback = () => Promise.resolve(undefined);
|
|
11380
11498
|
this.munger = config.munger;
|
|
11499
|
+
this.supportedCodecs = config.supportedCodecs;
|
|
11381
11500
|
this._receiveSlot = new ReceiveSlot(() => {
|
|
11382
11501
|
if (!this._rtcRtpTransceiver.mid) {
|
|
11383
11502
|
return null;
|
|
@@ -11433,6 +11552,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
11433
11552
|
mungeLocalDescription(mediaDescription) {
|
|
11434
11553
|
this.munger.mungeLocalDescription(mediaDescription, {
|
|
11435
11554
|
twccDisabled: this.twccDisabled,
|
|
11555
|
+
supportedCodecs: this.supportedCodecs,
|
|
11436
11556
|
});
|
|
11437
11557
|
}
|
|
11438
11558
|
mungeRemoteDescription(mediaDescription) {
|
|
@@ -11445,14 +11565,22 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
11445
11565
|
this.munger.reset();
|
|
11446
11566
|
}
|
|
11447
11567
|
handleRequested(streamRequest) {
|
|
11448
|
-
var _a, _b, _c, _d;
|
|
11449
11568
|
if (!this.receiveSlot._isRequested) {
|
|
11450
11569
|
this.receiveSlot._isRequested = true;
|
|
11451
11570
|
this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
|
|
11452
11571
|
}
|
|
11453
11572
|
this.metadata.requestedBitrate = streamRequest.maxPayloadBitsPerSecond;
|
|
11454
|
-
|
|
11455
|
-
|
|
11573
|
+
const firstCodecInfo = streamRequest.codecInfos[0];
|
|
11574
|
+
if (firstCodecInfo === null || firstCodecInfo === void 0 ? void 0 : firstCodecInfo.h264) {
|
|
11575
|
+
this.metadata.requestedFrameSize = firstCodecInfo.h264.maxFs;
|
|
11576
|
+
this.metadata.requestedFrameRate = firstCodecInfo.h264.maxFps;
|
|
11577
|
+
}
|
|
11578
|
+
else if (firstCodecInfo === null || firstCodecInfo === void 0 ? void 0 : firstCodecInfo.av1) {
|
|
11579
|
+
this.metadata.requestedFrameSize = getFrameSizeForPicSize(firstCodecInfo.av1.maxPicSize);
|
|
11580
|
+
if (firstCodecInfo.av1.maxPicSize > 0 && firstCodecInfo.av1.maxDecodeRate > 0) {
|
|
11581
|
+
this.metadata.requestedFrameRate = Math.round(firstCodecInfo.av1.maxDecodeRate / firstCodecInfo.av1.maxPicSize);
|
|
11582
|
+
}
|
|
11583
|
+
}
|
|
11456
11584
|
}
|
|
11457
11585
|
handleUnrequested() {
|
|
11458
11586
|
if (this.receiveSlot._isRequested) {
|
|
@@ -15207,6 +15335,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15207
15335
|
this.munger = config.munger;
|
|
15208
15336
|
this.csi = config.csi;
|
|
15209
15337
|
this.direction = 'sendrecv';
|
|
15338
|
+
this.supportedCodecs = config.supportedCodecs;
|
|
15210
15339
|
this.handleTrackChange = this.handleTrackChange.bind(this);
|
|
15211
15340
|
this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
|
|
15212
15341
|
this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
|
|
@@ -15236,7 +15365,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15236
15365
|
}
|
|
15237
15366
|
handleStreamConstraintsChange() {
|
|
15238
15367
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15239
|
-
yield this.updateSendParameters(this.requestedIdEncodingParamsMap);
|
|
15368
|
+
yield this.updateSendParameters(this.requestedIdEncodingParamsMap, this.selectedPayloadType);
|
|
15240
15369
|
});
|
|
15241
15370
|
}
|
|
15242
15371
|
handleStreamMuteStateChange() {
|
|
@@ -15329,7 +15458,12 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15329
15458
|
const encodingIndex = this.getEncodingIndexForStreamId(senderId);
|
|
15330
15459
|
const encodingParams = this.requestedIdEncodingParamsMap.get(encodingIndex);
|
|
15331
15460
|
stats.requestedBitrate = encodingParams === null || encodingParams === void 0 ? void 0 : encodingParams.maxPayloadBitsPerSecond;
|
|
15332
|
-
|
|
15461
|
+
if (isAV1EncodingParams(encodingParams)) {
|
|
15462
|
+
stats.requestedFrameSize = getFrameSizeForPicSize(encodingParams === null || encodingParams === void 0 ? void 0 : encodingParams.maxPicSize);
|
|
15463
|
+
}
|
|
15464
|
+
else if (isH264EncodingParams(encodingParams)) {
|
|
15465
|
+
stats.requestedFrameSize = encodingParams === null || encodingParams === void 0 ? void 0 : encodingParams.maxFs;
|
|
15466
|
+
}
|
|
15333
15467
|
stats.isRequested = !!encodingParams;
|
|
15334
15468
|
stats.lastRequestedUpdateTimestamp =
|
|
15335
15469
|
this.metadata.lastRequestedUpdateTimestampsMap.get(encodingIndex);
|
|
@@ -15368,23 +15502,49 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15368
15502
|
return statsMap;
|
|
15369
15503
|
});
|
|
15370
15504
|
}
|
|
15371
|
-
updateSendParameters(requestedIdEncodingParamsMap) {
|
|
15505
|
+
updateSendParameters(requestedIdEncodingParamsMap, payloadType) {
|
|
15372
15506
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15373
15507
|
return this.updateSendParametersQueue.push(() => __awaiter(this, void 0, void 0, function* () {
|
|
15374
15508
|
const sendParameters = this.sender.getParameters();
|
|
15509
|
+
const selectedCodec = sendParameters.codecs.find((codec) => codec.payloadType === payloadType);
|
|
15510
|
+
const shouldUpdateSelectedCodec = this.mediaType === MediaType.VideoSlides &&
|
|
15511
|
+
!!selectedCodec &&
|
|
15512
|
+
this.selectedPayloadType !== selectedCodec.payloadType;
|
|
15375
15513
|
sendParameters.encodings.forEach((encoding, index) => {
|
|
15376
15514
|
var _a, _b;
|
|
15377
15515
|
const encodingParams = requestedIdEncodingParamsMap.get(index);
|
|
15378
15516
|
encoding.active = !!encodingParams;
|
|
15517
|
+
if (shouldUpdateSelectedCodec) {
|
|
15518
|
+
if (isEncodingCodecSupported()) {
|
|
15519
|
+
const isCodecCapable = selectedCodec &&
|
|
15520
|
+
WebCapabilities.isCapableOfReceivingVideoCodec(selectedCodec.mimeType) ===
|
|
15521
|
+
CapabilityState.CAPABLE;
|
|
15522
|
+
if (!isCodecCapable) {
|
|
15523
|
+
logErrorAndThrow(WcmeErrorType.INVALID_CODEC_PARAMS, `Codec ${selectedCodec === null || selectedCodec === void 0 ? void 0 : selectedCodec.mimeType} is not supported by the browser.`);
|
|
15524
|
+
}
|
|
15525
|
+
encoding.codec = selectedCodec;
|
|
15526
|
+
}
|
|
15527
|
+
}
|
|
15379
15528
|
if (encodingParams) {
|
|
15380
|
-
const { maxPayloadBitsPerSecond
|
|
15381
|
-
|
|
15529
|
+
const { maxPayloadBitsPerSecond } = encodingParams;
|
|
15530
|
+
if (getMediaFamily(this.mediaType) === MediaFamily.Video &&
|
|
15531
|
+
isVideoEncodingParams(encodingParams)) {
|
|
15532
|
+
let frameSize;
|
|
15533
|
+
const { maxWidth, maxHeight } = encodingParams;
|
|
15534
|
+
if (isAV1EncodingParams(encodingParams)) {
|
|
15535
|
+
frameSize = getFrameSizeForPicSize(encodingParams.maxPicSize);
|
|
15536
|
+
}
|
|
15537
|
+
else if (isH264EncodingParams(encodingParams)) {
|
|
15538
|
+
frameSize = encodingParams.maxFs;
|
|
15539
|
+
}
|
|
15540
|
+
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);
|
|
15541
|
+
if (scaleDownRatio !== undefined && scaleDownRatio >= 1.0) {
|
|
15542
|
+
encoding.scaleResolutionDownBy = scaleDownRatio;
|
|
15543
|
+
}
|
|
15544
|
+
}
|
|
15382
15545
|
if (maxPayloadBitsPerSecond !== undefined && maxPayloadBitsPerSecond >= 0) {
|
|
15383
15546
|
encoding.maxBitrate = maxPayloadBitsPerSecond;
|
|
15384
15547
|
}
|
|
15385
|
-
if (scaleDownRatio !== undefined && scaleDownRatio >= 1.0) {
|
|
15386
|
-
encoding.scaleResolutionDownBy = scaleDownRatio;
|
|
15387
|
-
}
|
|
15388
15548
|
}
|
|
15389
15549
|
});
|
|
15390
15550
|
yield this.sender.setParameters(sendParameters);
|
|
@@ -15403,6 +15563,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15403
15563
|
const oldRequested = this.requested;
|
|
15404
15564
|
const newRequested = requestedIdEncodingParamsMap.size > 0;
|
|
15405
15565
|
this.requestedIdEncodingParamsMap = requestedIdEncodingParamsMap;
|
|
15566
|
+
this.selectedPayloadType = payloadType;
|
|
15406
15567
|
if (oldRequested !== newRequested) {
|
|
15407
15568
|
yield this.replaceSenderSource(newRequested ? this.publishedStream : null);
|
|
15408
15569
|
}
|
|
@@ -15421,6 +15582,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
15421
15582
|
forceSoftwareEncoder: this.mediaType === MediaType.VideoSlides &&
|
|
15422
15583
|
(BrowserInfo.isWindows() || BrowserInfo.isMac()) &&
|
|
15423
15584
|
(BrowserInfo.isChrome() || BrowserInfo.isEdge()),
|
|
15585
|
+
supportedCodecs: this.supportedCodecs,
|
|
15424
15586
|
});
|
|
15425
15587
|
}
|
|
15426
15588
|
mungeLocalDescriptionForRemoteServer(mediaDescription, mungeOptions = { injectDummyCandidates: true }) {
|
|
@@ -15769,6 +15931,7 @@ const defaultMultistreamConnectionOptions = {
|
|
|
15769
15931
|
preferredStartingBitrateKbps: defaultStartBitrateKbps,
|
|
15770
15932
|
metricsCallback: () => { },
|
|
15771
15933
|
enableInboundAudioLevelMonitoring: false,
|
|
15934
|
+
enableAV1SlidesSupport: false,
|
|
15772
15935
|
};
|
|
15773
15936
|
let staticIdCounter = 0;
|
|
15774
15937
|
class MultistreamConnection extends EventEmitter$2 {
|
|
@@ -15797,10 +15960,13 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15797
15960
|
const videoMainEncodingOptions = this.getVideoEncodingOptions(MediaContent.Main);
|
|
15798
15961
|
const videoSlidesEncodingOptions = this.getVideoEncodingOptions(MediaContent.Slides);
|
|
15799
15962
|
const sendVideoCodecParams = this.getCustomSendVideoCodecParams();
|
|
15800
|
-
this.
|
|
15801
|
-
this.
|
|
15802
|
-
this.
|
|
15803
|
-
this.createSendTransceiver(MediaType.
|
|
15963
|
+
const supportedVideoCodecs = this.getSupportedCodecs(MediaType.VideoMain);
|
|
15964
|
+
const supportedVideoSlidesCodecs = this.getSupportedCodecs(MediaType.VideoSlides);
|
|
15965
|
+
const supportedAudioCodecs = this.getSupportedCodecs(MediaType.AudioMain);
|
|
15966
|
+
this.createSendTransceiver(MediaType.VideoMain, mainSceneId, supportedVideoCodecs, videoMainEncodingOptions, sendVideoCodecParams);
|
|
15967
|
+
this.createSendTransceiver(MediaType.AudioMain, mainSceneId, supportedAudioCodecs);
|
|
15968
|
+
this.createSendTransceiver(MediaType.VideoSlides, slidesSceneId, supportedVideoSlidesCodecs, videoSlidesEncodingOptions, sendVideoCodecParams);
|
|
15969
|
+
this.createSendTransceiver(MediaType.AudioSlides, slidesSceneId, supportedAudioCodecs);
|
|
15804
15970
|
}
|
|
15805
15971
|
startWorkerIfNeeded() {
|
|
15806
15972
|
if (this.options.enableInboundAudioLevelMonitoring) {
|
|
@@ -15896,7 +16062,15 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15896
16062
|
},
|
|
15897
16063
|
};
|
|
15898
16064
|
}
|
|
15899
|
-
|
|
16065
|
+
getSupportedCodecs(mediaType) {
|
|
16066
|
+
if (mediaType === MediaType.VideoMain || mediaType === MediaType.VideoSlides) {
|
|
16067
|
+
return getSupportedVideoCodecs({
|
|
16068
|
+
includeAV1: mediaType === MediaType.VideoSlides && this.options.enableAV1SlidesSupport,
|
|
16069
|
+
});
|
|
16070
|
+
}
|
|
16071
|
+
return getSupportedAudioCodecs();
|
|
16072
|
+
}
|
|
16073
|
+
createSendTransceiver(mediaType, sceneId, supportedCodecs, sendEncodingsOptions, codecParams) {
|
|
15900
16074
|
let rtcRtpTransceiver;
|
|
15901
16075
|
try {
|
|
15902
16076
|
rtcRtpTransceiver = this.pc.addTransceiver(mediaTypeToTrackKind(mediaType), {
|
|
@@ -15917,6 +16091,7 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15917
16091
|
mediaType,
|
|
15918
16092
|
munger,
|
|
15919
16093
|
csi,
|
|
16094
|
+
supportedCodecs,
|
|
15920
16095
|
});
|
|
15921
16096
|
if (getMediaFamily(mediaType) === MediaFamily.Video) {
|
|
15922
16097
|
transceiver.rtxEnabled = true;
|
|
@@ -16054,8 +16229,8 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16054
16229
|
if (rsRequests.length !== requests.length) {
|
|
16055
16230
|
logger.warn('Ignoring non-receiver-selected requests');
|
|
16056
16231
|
}
|
|
16232
|
+
let selectedPayloadType;
|
|
16057
16233
|
rsRequests.forEach(({ ids, policySpecificInfo, codecInfos, maxPayloadBitsPerSecond }) => {
|
|
16058
|
-
var _a, _b, _c;
|
|
16059
16234
|
if (ids.length > 1) {
|
|
16060
16235
|
logErrorAndThrow(WcmeErrorType.INVALID_STREAM_REQUEST, `Stream request cannot have more than one ID.`);
|
|
16061
16236
|
}
|
|
@@ -16068,6 +16243,9 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16068
16243
|
}
|
|
16069
16244
|
const id = ids[0];
|
|
16070
16245
|
const codecInfo = codecInfos[0];
|
|
16246
|
+
if (mediaType === MediaType.VideoSlides && selectedPayloadType === undefined) {
|
|
16247
|
+
selectedPayloadType = codecInfo.payloadType;
|
|
16248
|
+
}
|
|
16071
16249
|
if (!isValidSsrcStreamId(id)) {
|
|
16072
16250
|
logger.warn(`${mediaType}: The stream ID is not a valid SsrcStreamId: ${JSON.stringify(id)}`);
|
|
16073
16251
|
return;
|
|
@@ -16076,12 +16254,13 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16076
16254
|
if (streamIdsMatched) {
|
|
16077
16255
|
const encodingIndex = sendTransceiver.getEncodingIndexForStreamId(id);
|
|
16078
16256
|
if (encodingIndex !== -1) {
|
|
16079
|
-
const
|
|
16080
|
-
|
|
16081
|
-
|
|
16082
|
-
|
|
16083
|
-
|
|
16257
|
+
const isVideo = mediaFamily === MediaFamily.Video;
|
|
16258
|
+
const codecParams = isVideo && codecInfo ? codecToEncodingParams(codecInfo) : {};
|
|
16259
|
+
if (isVideo && codecInfo && !codecParams) {
|
|
16260
|
+
logger.warn(`${mediaType}: Unsupported codec for ID ${JSON.stringify(id)}`);
|
|
16261
|
+
return;
|
|
16084
16262
|
}
|
|
16263
|
+
const encodingParams = Object.assign({ maxPayloadBitsPerSecond }, codecParams);
|
|
16085
16264
|
requestedIdEncodingParamsMap.set(encodingIndex, encodingParams);
|
|
16086
16265
|
}
|
|
16087
16266
|
else {
|
|
@@ -16092,7 +16271,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16092
16271
|
logger.warn(`${mediaType}: Unable to find matching stream ID for requested ID: ${JSON.stringify(id)}`);
|
|
16093
16272
|
}
|
|
16094
16273
|
});
|
|
16095
|
-
return sendTransceiver.updateSendParameters(requestedIdEncodingParamsMap);
|
|
16274
|
+
return sendTransceiver.updateSendParameters(requestedIdEncodingParamsMap, selectedPayloadType);
|
|
16096
16275
|
}
|
|
16097
16276
|
createDataChannel() {
|
|
16098
16277
|
const dataChannel = this.pc.createDataChannel('datachannel', {
|
|
@@ -16224,7 +16403,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16224
16403
|
static getEncodedTransformId(mediaType, mid) {
|
|
16225
16404
|
return `INBOUND-${mediaType}-${mid}`;
|
|
16226
16405
|
}
|
|
16227
|
-
createReceiveTransceiver(mediaType, codecParams) {
|
|
16406
|
+
createReceiveTransceiver(mediaType, supportedCodecs, codecParams) {
|
|
16228
16407
|
const rtcRtpTransceiver = this.pc.addTransceiver(mediaTypeToTrackKind(mediaType), {
|
|
16229
16408
|
direction: 'recvonly',
|
|
16230
16409
|
});
|
|
@@ -16236,6 +16415,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16236
16415
|
mid,
|
|
16237
16416
|
mediaType,
|
|
16238
16417
|
munger,
|
|
16418
|
+
supportedCodecs,
|
|
16239
16419
|
});
|
|
16240
16420
|
if (doAudioLevelMonitoring) {
|
|
16241
16421
|
try {
|
|
@@ -16274,11 +16454,12 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
16274
16454
|
return new Promise((createReceiveSlotsResolve) => {
|
|
16275
16455
|
this.offerAnswerQueue.push(() => __awaiter(this, void 0, void 0, function* () {
|
|
16276
16456
|
const createdReceiveOnlyTransceivers = [];
|
|
16457
|
+
const supportedCodecs = this.getSupportedCodecs(mediaType);
|
|
16277
16458
|
const codecParams = mediaTypeToTrackKind(mediaType) === MediaStreamTrackKind.Video
|
|
16278
16459
|
? this.getCustomReceiveVideoCodecParams(mediaType)
|
|
16279
16460
|
: undefined;
|
|
16280
16461
|
for (let i = 0; i < count; i++) {
|
|
16281
|
-
const recvOnlyTransceiver = this.createReceiveTransceiver(mediaType, codecParams);
|
|
16462
|
+
const recvOnlyTransceiver = this.createReceiveTransceiver(mediaType, supportedCodecs, codecParams);
|
|
16282
16463
|
createdReceiveOnlyTransceivers.push(recvOnlyTransceiver);
|
|
16283
16464
|
}
|
|
16284
16465
|
if (this.pc.getRemoteDescription()) {
|
|
@@ -16781,5 +16962,5 @@ class StreamRequest {
|
|
|
16781
16962
|
|
|
16782
16963
|
const { DeviceKind } = media;
|
|
16783
16964
|
|
|
16784
|
-
export { ActiveSpeakerInfo, CodecInfo$1 as CodecInfo, ConnectionState, DeviceKind, H264Codec, Logger$1 as JMPLogger, LocalCameraStream, LocalDisplayStream, LocalMicrophoneStream, LocalStream, LocalStreamEventNames, LocalSystemAudioStream, Logger, MediaCodecMimeType, MediaContent, MediaFamily, MediaStreamTrackKind, MediaType, MultistreamConnection, MultistreamConnectionEventNames, PeerConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RecommendedOpusBitrates, RemoteMediaState, RemoteStream, RemoteStreamEventNames, SendSlot, StreamEventNames, StreamRequest, WcmeError, WcmeErrorType, Logger$2 as WebRtcCoreLogger, WebrtcCoreError, WebrtcCoreErrorType, areReceiveSlotIdsEqual, createCameraAndMicrophoneStreams, createCameraStream, createDisplayMedia, createDisplayStream, createDisplayStreamWithAudio, createMicrophoneStream, getAudioInputDevices, getAudioOutputDevices, getDevices, getLogLevel, getMediaContent, getMediaFamily, getMediaType, getRecommendedMaxBitrateForFrameSize, getVideoInputDevices, logErrorAndThrow, setLogHandler, setLogLevel, setOnDeviceChangeHandler };
|
|
16965
|
+
export { AV1Codec, ActiveSpeakerInfo, CodecInfo$1 as CodecInfo, ConnectionState, DeviceKind, H264Codec, Logger$1 as JMPLogger, LocalCameraStream, LocalDisplayStream, LocalMicrophoneStream, LocalStream, LocalStreamEventNames, LocalSystemAudioStream, Logger, MediaCodecMimeType, MediaContent, MediaFamily, MediaStreamTrackKind, MediaType, MultistreamConnection, MultistreamConnectionEventNames, PeerConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RecommendedOpusBitrates, RemoteMediaState, RemoteStream, RemoteStreamEventNames, SendSlot, StreamEventNames, StreamRequest, WcmeError, WcmeErrorType, Logger$2 as WebRtcCoreLogger, WebrtcCoreError, WebrtcCoreErrorType, areReceiveSlotIdsEqual, codecToEncodingParams, createCameraAndMicrophoneStreams, createCameraStream, createDisplayMedia, createDisplayStream, createDisplayStreamWithAudio, createMicrophoneStream, getAudioInputDevices, getAudioOutputDevices, getDevices, getFrameSizeForPicSize, getLogLevel, getMediaContent, getMediaFamily, getMediaType, getRecommendedMaxBitrateForFrameSize, getRecommendedMaxBitrateForPicSize, getVideoInputDevices, isEncodingCodecSupported, logErrorAndThrow, setLogHandler, setLogLevel, setOnDeviceChangeHandler };
|
|
16785
16966
|
//# sourceMappingURL=index.js.map
|