@vonage/media-processor 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/docs/modules.html
CHANGED
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
<p>EventMetaData the meta data of the event.</p>
|
|
20
20
|
</div></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5>transformer<wbr/>Index<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
|
|
21
21
|
<p>The transformer index in the array of transformers.</p>
|
|
22
|
-
</div></div></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="PipelineInfoData" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Pipeline<wbr/>Info<wbr/>Data<a href="#PipelineInfoData" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Pipeline<wbr/>Info<wbr/>Data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"pipeline_ended"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_ended_with_error"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started_with_error"</span><span class="tsd-signature-symbol"> }</span></div><div class="tsd-comment tsd-typography"><div class="lead">
|
|
22
|
+
</div></div></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="PipelineInfoData" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Pipeline<wbr/>Info<wbr/>Data<a href="#PipelineInfoData" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Pipeline<wbr/>Info<wbr/>Data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"pipeline_ended"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_ended_with_error"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started_with_error"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_restarted"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_restarted_with_error"</span><span class="tsd-signature-symbol"> }</span></div><div class="tsd-comment tsd-typography"><div class="lead">
|
|
23
23
|
<p>PipelineInfolData - life cycle information of pipeline</p>
|
|
24
|
-
</div></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"pipeline_ended"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_ended_with_error"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started_with_error"</span></h5></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="VonageMetadata" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Vonage<wbr/>Metadata<a href="#VonageMetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Vonage<wbr/>Metadata<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>appId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>proxyUrl<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>sourceType<span class="tsd-signature-symbol">: </span><a href="modules.html#VonageSourceType" class="tsd-signature-type" data-tsd-kind="Type alias">VonageSourceType</a><span class="tsd-signature-symbol"> }</span></div><div class="tsd-comment tsd-typography"><div class="lead">
|
|
24
|
+
</div></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">"pipeline_ended"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_ended_with_error"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_started_with_error"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_restarted"</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">"pipeline_restarted_with_error"</span></h5></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-type-alias"><a id="VonageMetadata" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Vonage<wbr/>Metadata<a href="#VonageMetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">Vonage<wbr/>Metadata<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>appId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>proxyUrl<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>sourceType<span class="tsd-signature-symbol">: </span><a href="modules.html#VonageSourceType" class="tsd-signature-type" data-tsd-kind="Type alias">VonageSourceType</a><span class="tsd-signature-symbol"> }</span></div><div class="tsd-comment tsd-typography"><div class="lead">
|
|
25
25
|
<p>Specifies the addional information being sent with the telemetry collected by the library.</p>
|
|
26
26
|
</div></div><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5>app<wbr/>Id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
|
|
27
27
|
<p>Some string identifier identifying the application using the library.</p>
|
|
@@ -17,7 +17,9 @@ Key.errors = {
|
|
|
17
17
|
"transformer_none": "No transformers provided",
|
|
18
18
|
"transformer_start": "Cannot start transformer",
|
|
19
19
|
"transformer_transform": "Cannot transform frame",
|
|
20
|
-
"transformer_flush": "Cannot flush transformer"
|
|
20
|
+
"transformer_flush": "Cannot flush transformer",
|
|
21
|
+
"readable_null": "Readable is null",
|
|
22
|
+
"writable_null": "Writable is null"
|
|
21
23
|
};
|
|
22
24
|
var axios$2 = { exports: {} };
|
|
23
25
|
var bind$2 = function bind(fn, thisArg) {
|
|
@@ -1209,7 +1211,7 @@ class EmptyOptional extends Optional {
|
|
|
1209
1211
|
return null;
|
|
1210
1212
|
}
|
|
1211
1213
|
}
|
|
1212
|
-
const version = "1.2.
|
|
1214
|
+
const version = "1.2.6";
|
|
1213
1215
|
function setVonageMetadata(metadata) {
|
|
1214
1216
|
globalThis._vonageMediaProcessorMetadata = metadata;
|
|
1215
1217
|
}
|
|
@@ -1779,6 +1781,7 @@ class InternalTransformer extends emittery {
|
|
|
1779
1781
|
this.trackExpectedRate_ = trackExpectedRate;
|
|
1780
1782
|
}
|
|
1781
1783
|
async start(controller) {
|
|
1784
|
+
this.controller_ = controller;
|
|
1782
1785
|
if (this.transformer_ && typeof this.transformer_.start === "function") {
|
|
1783
1786
|
try {
|
|
1784
1787
|
await this.transformer_.start(controller);
|
|
@@ -1815,6 +1818,7 @@ class InternalTransformer extends emittery {
|
|
|
1815
1818
|
this.emit("error", msg);
|
|
1816
1819
|
}
|
|
1817
1820
|
} else {
|
|
1821
|
+
console.warn("[Pipeline] flush from transform");
|
|
1818
1822
|
data2.close();
|
|
1819
1823
|
this.flush(controller);
|
|
1820
1824
|
controller.terminate();
|
|
@@ -1839,6 +1843,10 @@ class InternalTransformer extends emittery {
|
|
|
1839
1843
|
}
|
|
1840
1844
|
stop() {
|
|
1841
1845
|
console.log("[Pipeline] Stop stream.");
|
|
1846
|
+
if (this.controller_) {
|
|
1847
|
+
this.flush(this.controller_);
|
|
1848
|
+
this.controller_.terminate();
|
|
1849
|
+
}
|
|
1842
1850
|
this.shouldStop_ = true;
|
|
1843
1851
|
}
|
|
1844
1852
|
mediaTransformerQosReport() {
|
|
@@ -1943,8 +1951,24 @@ class MediaProcessor extends emittery {
|
|
|
1943
1951
|
const report = new ReportBuilder().action("MediaProcessor").guid(this.uuid_).message(Key.errors["transformer_none"]).variation("Error").build();
|
|
1944
1952
|
Reporter.report(report);
|
|
1945
1953
|
reject("[MediaProcessor] Need to set transformers.");
|
|
1954
|
+
return;
|
|
1955
|
+
}
|
|
1956
|
+
if (!this.readable_) {
|
|
1957
|
+
const report = new ReportBuilder().action("MediaProcessor").guid(this.uuid_).message(Key.errors["readable_null"]).variation("Error").build();
|
|
1958
|
+
Reporter.report(report);
|
|
1959
|
+
reject("[MediaProcessor] Readable is null.");
|
|
1960
|
+
return;
|
|
1946
1961
|
}
|
|
1962
|
+
if (!this.writable_) {
|
|
1963
|
+
const report = new ReportBuilder().action("MediaProcessor").guid(this.uuid_).message(Key.errors["writable_null"]).variation("Error").build();
|
|
1964
|
+
Reporter.report(report);
|
|
1965
|
+
reject("[MediaProcessor] Writable is null.");
|
|
1966
|
+
return;
|
|
1967
|
+
}
|
|
1968
|
+
let isPipelineReset = false;
|
|
1947
1969
|
if (this.pipeline_) {
|
|
1970
|
+
isPipelineReset = true;
|
|
1971
|
+
this.pipeline_.clearListeners();
|
|
1948
1972
|
this.pipeline_.destroy();
|
|
1949
1973
|
}
|
|
1950
1974
|
this.pipeline_ = new Pipeline(this.transformers_);
|
|
@@ -1955,6 +1979,13 @@ class MediaProcessor extends emittery {
|
|
|
1955
1979
|
this.emit("error", eventData);
|
|
1956
1980
|
});
|
|
1957
1981
|
this.pipeline_.on("pipelineInfo", (eventData) => {
|
|
1982
|
+
if (isPipelineReset) {
|
|
1983
|
+
if (eventData.message === "pipeline_started") {
|
|
1984
|
+
eventData.message = "pipeline_restarted";
|
|
1985
|
+
} else if (eventData.message === "pipeline_started_with_error") {
|
|
1986
|
+
eventData.message = "pipeline_restarted_with_error";
|
|
1987
|
+
}
|
|
1988
|
+
}
|
|
1958
1989
|
this.emit("pipelineInfo", eventData);
|
|
1959
1990
|
});
|
|
1960
1991
|
if (this.trackExpectedRate_ != -1) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
`),function(a){if(i=a.indexOf(":"),n=se.trim(a.substr(0,i)).toLowerCase(),s=se.trim(a.substr(i+1)),n){if(r[n]&&Rr.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([s]):r[n]=r[n]?r[n]+", "+s:s}}),r},Pe=p,xr=Pe.isStandardBrowserEnv()?function(){var e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function s(i){var o=i;return e&&(r.setAttribute("href",o),o=r.href),r.setAttribute("href",o),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=s(window.location.href),function(o){var a=Pe.isString(o)?s(o):o;return a.protocol===n.protocol&&a.host===n.host}}():function(){return function(){return!0}}();function ie(t){this.message=t}ie.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},ie.prototype.__CANCEL__=!0;var B=ie,H=p,Or=br,Ar=vr,Cr=Te,Mr=Sr,$r=Pr,kr=xr,oe=Re,Ur=J,Ir=B,xe=function(e){return new Promise(function(n,s){var i=e.data,o=e.headers,a=e.responseType,l;function m(){e.cancelToken&&e.cancelToken.unsubscribe(l),e.signal&&e.signal.removeEventListener("abort",l)}H.isFormData(i)&&delete o["Content-Type"];var u=new XMLHttpRequest;if(e.auth){var c=e.auth.username||"",T=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.Authorization="Basic "+btoa(c+":"+T)}var y=Mr(e.baseURL,e.url);u.open(e.method.toUpperCase(),Cr(y,e.params,e.paramsSerializer),!0),u.timeout=e.timeout;function Qe(){if(!!u){var v="getAllResponseHeaders"in u?$r(u.getAllResponseHeaders()):null,U=!a||a==="text"||a==="json"?u.responseText:u.response,O={data:U,status:u.status,statusText:u.statusText,headers:v,config:e,request:u};Or(function(ge){n(ge),m()},function(ge){s(ge),m()},O),u=null}}if("onloadend"in u?u.onloadend=Qe:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(Qe)},u.onabort=function(){!u||(s(oe("Request aborted",e,"ECONNABORTED",u)),u=null)},u.onerror=function(){s(oe("Network Error",e,null,u)),u=null},u.ontimeout=function(){var U=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",O=e.transitional||Ur.transitional;e.timeoutErrorMessage&&(U=e.timeoutErrorMessage),s(oe(U,e,O.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",u)),u=null},H.isStandardBrowserEnv()){var Xe=(e.withCredentials||kr(y))&&e.xsrfCookieName?Ar.read(e.xsrfCookieName):void 0;Xe&&(o[e.xsrfHeaderName]=Xe)}"setRequestHeader"in u&&H.forEach(o,function(U,O){typeof i=="undefined"&&O.toLowerCase()==="content-type"?delete o[O]:u.setRequestHeader(O,U)}),H.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),a&&a!=="json"&&(u.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&u.addEventListener("progress",e.onDownloadProgress),typeof e.onUploadProgress=="function"&&u.upload&&u.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(l=function(v){!u||(s(!v||v&&v.type?new Ir("canceled"):v),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(l),e.signal&&(e.signal.aborted?l():e.signal.addEventListener("abort",l))),i||(i=null),u.send(i)})},d=p,Oe=mr,Dr=Se,Lr={"Content-Type":"application/x-www-form-urlencoded"};function Ae(t,e){!d.isUndefined(t)&&d.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}function Nr(){var t;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(t=xe),t}function jr(t,e,r){if(d.isString(t))try{return(e||JSON.parse)(t),d.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}var W={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:Nr(),transformRequest:[function(e,r){return Oe(r,"Accept"),Oe(r,"Content-Type"),d.isFormData(e)||d.isArrayBuffer(e)||d.isBuffer(e)||d.isStream(e)||d.isFile(e)||d.isBlob(e)?e:d.isArrayBufferView(e)?e.buffer:d.isURLSearchParams(e)?(Ae(r,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):d.isObject(e)||r&&r["Content-Type"]==="application/json"?(Ae(r,"application/json"),jr(e)):e}],transformResponse:[function(e){var r=this.transitional||W.transitional,n=r&&r.silentJSONParsing,s=r&&r.forcedJSONParsing,i=!n&&this.responseType==="json";if(i||s&&d.isString(e)&&e.length)try{return JSON.parse(e)}catch(o){if(i)throw o.name==="SyntaxError"?Dr(o,this,"E_JSON_PARSE"):o}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};d.forEach(["delete","get","head"],function(e){W.headers[e]={}}),d.forEach(["post","put","patch"],function(e){W.headers[e]=d.merge(Lr)});var J=W,Fr=p,qr=J,Br=function(e,r,n){var s=this||qr;return Fr.forEach(n,function(o){e=o.call(s,e,r)}),e},Ce=function(e){return!!(e&&e.__CANCEL__)},Me=p,ae=Br,Hr=Ce,Wr=J,Jr=B;function ue(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Jr("canceled")}var Vr=function(e){ue(e),e.headers=e.headers||{},e.data=ae.call(e,e.data,e.headers,e.transformRequest),e.headers=Me.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Me.forEach(["delete","get","head","post","put","patch","common"],function(s){delete e.headers[s]});var r=e.adapter||Wr.adapter;return r(e).then(function(s){return ue(e),s.data=ae.call(e,s.data,s.headers,e.transformResponse),s},function(s){return Hr(s)||(ue(e),s&&s.response&&(s.response.data=ae.call(e,s.response.data,s.response.headers,e.transformResponse))),Promise.reject(s)})},g=p,$e=function(e,r){r=r||{};var n={};function s(u,c){return g.isPlainObject(u)&&g.isPlainObject(c)?g.merge(u,c):g.isPlainObject(c)?g.merge({},c):g.isArray(c)?c.slice():c}function i(u){if(g.isUndefined(r[u])){if(!g.isUndefined(e[u]))return s(void 0,e[u])}else return s(e[u],r[u])}function o(u){if(!g.isUndefined(r[u]))return s(void 0,r[u])}function a(u){if(g.isUndefined(r[u])){if(!g.isUndefined(e[u]))return s(void 0,e[u])}else return s(void 0,r[u])}function l(u){if(u in r)return s(e[u],r[u]);if(u in e)return s(void 0,e[u])}var m={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:l};return g.forEach(Object.keys(e).concat(Object.keys(r)),function(c){var T=m[c]||i,y=T(c);g.isUndefined(y)&&T!==l||(n[c]=y)}),n},ke={version:"0.25.0"},zr=ke.version,fe={};["object","boolean","number","function","string","symbol"].forEach(function(t,e){fe[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});var Ue={};fe.transitional=function(e,r,n){function s(i,o){return"[Axios v"+zr+"] Transitional option '"+i+"'"+o+(n?". "+n:"")}return function(i,o,a){if(e===!1)throw new Error(s(o," has been removed"+(r?" in "+r:"")));return r&&!Ue[o]&&(Ue[o]=!0,console.warn(s(o," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(i,o,a):!0}};function Gr(t,e,r){if(typeof t!="object")throw new TypeError("options must be an object");for(var n=Object.keys(t),s=n.length;s-- >0;){var i=n[s],o=e[i];if(o){var a=t[i],l=a===void 0||o(a,i,t);if(l!==!0)throw new TypeError("option "+i+" must be "+l);continue}if(r!==!0)throw Error("Unknown option "+i)}}var Qr={assertOptions:Gr,validators:fe},Ie=p,Xr=Te,De=hr,Le=Vr,V=$e,Ne=Qr,C=Ne.validators;function D(t){this.defaults=t,this.interceptors={request:new De,response:new De}}D.prototype.request=function(e,r){if(typeof e=="string"?(r=r||{},r.url=e):r=e||{},!r.url)throw new Error("Provided config url is not valid");r=V(this.defaults,r),r.method?r.method=r.method.toLowerCase():this.defaults.method?r.method=this.defaults.method.toLowerCase():r.method="get";var n=r.transitional;n!==void 0&&Ne.assertOptions(n,{silentJSONParsing:C.transitional(C.boolean),forcedJSONParsing:C.transitional(C.boolean),clarifyTimeoutError:C.transitional(C.boolean)},!1);var s=[],i=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(r)===!1||(i=i&&y.synchronous,s.unshift(y.fulfilled,y.rejected))});var o=[];this.interceptors.response.forEach(function(y){o.push(y.fulfilled,y.rejected)});var a;if(!i){var l=[Le,void 0];for(Array.prototype.unshift.apply(l,s),l=l.concat(o),a=Promise.resolve(r);l.length;)a=a.then(l.shift(),l.shift());return a}for(var m=r;s.length;){var u=s.shift(),c=s.shift();try{m=u(m)}catch(T){c(T);break}}try{a=Le(m)}catch(T){return Promise.reject(T)}for(;o.length;)a=a.then(o.shift(),o.shift());return a},D.prototype.getUri=function(e){if(!e.url)throw new Error("Provided config url is not valid");return e=V(this.defaults,e),Xr(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},Ie.forEach(["delete","get","head","options"],function(e){D.prototype[e]=function(r,n){return this.request(V(n||{},{method:e,url:r,data:(n||{}).data}))}}),Ie.forEach(["post","put","patch"],function(e){D.prototype[e]=function(r,n,s){return this.request(V(s||{},{method:e,url:r,data:n}))}});var Kr=D,Yr=B;function M(t){if(typeof t!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(s){e=s});var r=this;this.promise.then(function(n){if(!!r._listeners){var s,i=r._listeners.length;for(s=0;s<i;s++)r._listeners[s](n);r._listeners=null}}),this.promise.then=function(n){var s,i=new Promise(function(o){r.subscribe(o),s=o}).then(n);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s){r.reason||(r.reason=new Yr(s),e(r.reason))})}M.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},M.prototype.subscribe=function(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]},M.prototype.unsubscribe=function(e){if(!!this._listeners){var r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}},M.source=function(){var e,r=new M(function(s){e=s});return{token:r,cancel:e}};var Zr=M,et=function(e){return function(n){return e.apply(null,n)}},rt=p,tt=function(e){return rt.isObject(e)&&e.isAxiosError===!0},je=p,nt=be,z=Kr,st=$e,it=J;function Fe(t){var e=new z(t),r=nt(z.prototype.request,e);return je.extend(r,z.prototype,e),je.extend(r,e),r.create=function(s){return Fe(st(t,s))},r}var w=Fe(it);w.Axios=z,w.Cancel=B,w.CancelToken=Zr,w.isCancel=Ce,w.VERSION=ke.version,w.all=function(e){return Promise.all(e)},w.spread=et,w.isAxiosError=tt,Z.exports=w,Z.exports.default=w;var ot=Z.exports;class f{isEmpty(){return!this.isPresent()}static of(e){if(e!=null)return new qe(e);throw new TypeError("The passed value was null or undefined.")}static ofNonNull(e){return f.of(e)}static ofNullable(e){return e!=null?new qe(e):new Be}static empty(){return new Be}static from(e){switch(e.kind){case"present":return f.of(e.value);case"empty":return f.empty();default:throw new TypeError("The passed value was not an Option type.")}}}class qe extends f{constructor(e){super();this.payload=e}isPresent(){return!0}get(){return this.payload}ifPresent(e){e(this.payload)}ifPresentOrElse(e,r){e(this.payload)}filter(e){return e(this.payload)?this:f.empty()}map(e){const r=e(this.payload);return f.ofNullable(r)}flatMap(e){return e(this.payload)}or(e){return this}orElse(e){return this.payload}orElseGet(e){return this.payload}orElseThrow(e){return this.payload}orNull(){return this.payload}orUndefined(){return this.payload}toOption(){return{kind:"present",value:this.payload}}matches(e){return e.present(this.payload)}toJSON(e){return this.payload}}class Be extends f{isPresent(){return!1}constructor(){super()}get(){throw new TypeError("The optional is not present.")}ifPresent(e){}ifPresentOrElse(e,r){r()}filter(e){return this}map(e){return f.empty()}flatMap(e){return f.empty()}or(e){return e()}orElse(e){return e}orElseGet(e){return this.orElse(e())}orElseThrow(e){throw e()}orNull(){return null}orUndefined(){}toOption(){return{kind:"empty"}}matches(e){return e.empty()}toJSON(e){return null}}const at="1.2.5";function ut(t){globalThis._vonageMediaProcessorMetadata=t}function He(){return globalThis._vonageMediaProcessorMetadata}class _{constructor(){const e=He();this._report={action:f.empty(),applicationId:f.ofNullable(e!==void 0&&e!=null?e.appId:null),timestamp:Date.now(),fps:f.empty(),framesTransformed:f.empty(),guid:f.empty(),highestFrameTransformCpu:f.empty(),message:f.empty(),source:f.ofNullable(e!==void 0&&e!=null?e.sourceType:null),transformedFps:f.empty(),transformerType:f.empty(),variation:f.empty(),videoHeight:f.empty(),videoWidth:f.empty(),version:at,error:f.empty(),proxyUrl:f.ofNullable(e!==void 0&&e!=null?e.proxyUrl:null)}}action(e){return this._report.action=f.ofNullable(e),this}framesTransformed(e){return this._report.framesTransformed=f.ofNullable(e),this}fps(e){return this._report.fps=f.ofNullable(e),this}guid(e){return this._report.guid=f.ofNullable(e),this}message(e){return this._report.message=f.ofNullable(e),this}transformedFps(e){return this._report.transformedFps=f.ofNullable(e),this}transformerType(e){return this._report.transformerType=f.ofNullable(e),this}variation(e){return this._report.variation=f.ofNullable(e),this}videoHeight(e){return this._report.videoHeight=f.ofNullable(e),this}videoWidth(e){return this._report.videoWidth=f.ofNullable(e),this}error(e){return this._report.error=f.ofNullable(e),this}build(){return this._report}}const ft=t=>JSON.stringify(t,(e,r)=>{if(r!==null)return r});class E{static report(e){return new Promise((r,n)=>{if(e.applicationId.isEmpty()||e.source.isEmpty()){r("success");return}let s=ot.create(),i={timeout:1e4,timeoutErrorMessage:"Request timeout",headers:{"Content-Type":"application/json"}},o="hlg.tokbox.com/prod/logging/vcp_webrtc";if(e.proxyUrl.isEmpty())o="https://"+o;else{let a;e.proxyUrl.get().slice(e.proxyUrl.get().length-1)!=="/"?a=e.proxyUrl.get()+"/":a=e.proxyUrl.get(),o=a+o}s.post(o,ft(e),i).then(a=>{console.log(a),r("success")}).catch(a=>{console.log(a),n(a)})})}}var G,lt=new Uint8Array(16);function ct(){if(!G&&(G=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!G))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return G(lt)}var dt=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function ht(t){return typeof t=="string"&&dt.test(t)}for(var h=[],le=0;le<256;++le)h.push((le+256).toString(16).substr(1));function pt(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=(h[t[e+0]]+h[t[e+1]]+h[t[e+2]]+h[t[e+3]]+"-"+h[t[e+4]]+h[t[e+5]]+"-"+h[t[e+6]]+h[t[e+7]]+"-"+h[t[e+8]]+h[t[e+9]]+"-"+h[t[e+10]]+h[t[e+11]]+h[t[e+12]]+h[t[e+13]]+h[t[e+14]]+h[t[e+15]]).toLowerCase();if(!ht(r))throw TypeError("Stringified UUID is invalid");return r}function We(t,e,r){t=t||{};var n=t.random||(t.rng||ct)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=n[s];return e}return pt(n)}const R=new WeakMap,Q=new WeakMap,L=new WeakMap,ce=Symbol("anyProducer"),Je=Promise.resolve(),X=Symbol("listenerAdded"),K=Symbol("listenerRemoved");let de=!1;function $(t){if(typeof t!="string"&&typeof t!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Y(t){if(typeof t!="function")throw new TypeError("listener must be a function")}function k(t,e){const r=Q.get(t);return r.has(e)||r.set(e,new Set),r.get(e)}function N(t,e){const r=typeof e=="string"||typeof e=="symbol"?e:ce,n=L.get(t);return n.has(r)||n.set(r,new Set),n.get(r)}function mt(t,e,r){const n=L.get(t);if(n.has(e))for(const s of n.get(e))s.enqueue(r);if(n.has(ce)){const s=Promise.all([e,r]);for(const i of n.get(ce))i.enqueue(s)}}function Ve(t,e){e=Array.isArray(e)?e:[e];let r=!1,n=()=>{},s=[];const i={enqueue(o){s.push(o),n()},finish(){r=!0,n()}};for(const o of e)N(t,o).add(i);return{async next(){return s?s.length===0?r?(s=void 0,this.next()):(await new Promise(o=>{n=o}),this.next()):{done:!1,value:await s.shift()}:{done:!0}},async return(o){s=void 0;for(const a of e)N(t,a).delete(i);return n(),arguments.length>0?{done:!0,value:await o}:{done:!0}},[Symbol.asyncIterator](){return this}}}function ze(t){if(t===void 0)return Ge;if(!Array.isArray(t))throw new TypeError("`methodNames` must be an array of strings");for(const e of t)if(!Ge.includes(e))throw typeof e!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${e} is not Emittery method`);return t}const he=t=>t===X||t===K;class x{static mixin(e,r){return r=ze(r),n=>{if(typeof n!="function")throw new TypeError("`target` must be function");for(const o of r)if(n.prototype[o]!==void 0)throw new Error(`The property \`${o}\` already exists on \`target\``);function s(){return Object.defineProperty(this,e,{enumerable:!1,value:new x}),this[e]}Object.defineProperty(n.prototype,e,{enumerable:!1,get:s});const i=o=>function(...a){return this[e][o](...a)};for(const o of r)Object.defineProperty(n.prototype,o,{enumerable:!1,value:i(o)});return n}}static get isDebugEnabled(){if(typeof process!="object")return de;const{env:e}=process||{env:{}};return e.DEBUG==="emittery"||e.DEBUG==="*"||de}static set isDebugEnabled(e){de=e}constructor(e={}){R.set(this,new Set),Q.set(this,new Map),L.set(this,new Map),this.debug=e.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(r,n,s,i)=>{i=JSON.stringify(i),typeof s=="symbol"&&(s=s.toString());const o=new Date,a=`${o.getHours()}:${o.getMinutes()}:${o.getSeconds()}.${o.getMilliseconds()}`;console.log(`[${a}][emittery:${r}][${n}] Event Name: ${s}
|
|
3
|
-
data: ${i}`)})}logIfDebugEnabled(e,r,n){(x.isDebugEnabled||this.debug.enabled)&&this.debug.logger(e,this.debug.name,r,n)}on(e,r){Y(r),e=Array.isArray(e)?e:[e];for(const n of e)$(n),k(this,n).add(r),this.logIfDebugEnabled("subscribe",n,void 0),he(n)||this.emit(X,{eventName:n,listener:r});return this.off.bind(this,e,r)}off(e,r){Y(r),e=Array.isArray(e)?e:[e];for(const n of e)$(n),k(this,n).delete(r),this.logIfDebugEnabled("unsubscribe",n,void 0),he(n)||this.emit(K,{eventName:n,listener:r})}once(e){return new Promise(r=>{const n=this.on(e,s=>{n(),r(s)})})}events(e){e=Array.isArray(e)?e:[e];for(const r of e)$(r);return Ve(this,e)}async emit(e,r){$(e),this.logIfDebugEnabled("emit",e,r),mt(this,e,r);const n=k(this,e),s=R.get(this),i=[...n],o=he(e)?[]:[...s];await Je,await Promise.all([...i.map(async a=>{if(n.has(a))return a(r)}),...o.map(async a=>{if(s.has(a))return a(e,r)})])}async emitSerial(e,r){$(e),this.logIfDebugEnabled("emitSerial",e,r);const n=k(this,e),s=R.get(this),i=[...n],o=[...s];await Je;for(const a of i)n.has(a)&&await a(r);for(const a of o)s.has(a)&&await a(e,r)}onAny(e){return Y(e),this.logIfDebugEnabled("subscribeAny",void 0,void 0),R.get(this).add(e),this.emit(X,{listener:e}),this.offAny.bind(this,e)}anyEvent(){return Ve(this)}offAny(e){Y(e),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(K,{listener:e}),R.get(this).delete(e)}clearListeners(e){e=Array.isArray(e)?e:[e];for(const r of e)if(this.logIfDebugEnabled("clear",r,void 0),typeof r=="string"||typeof r=="symbol"){k(this,r).clear();const n=N(this,r);for(const s of n)s.finish();n.clear()}else{R.get(this).clear();for(const n of Q.get(this).values())n.clear();for(const n of L.get(this).values()){for(const s of n)s.finish();n.clear()}}}listenerCount(e){e=Array.isArray(e)?e:[e];let r=0;for(const n of e){if(typeof n=="string"){r+=R.get(this).size+k(this,n).size+N(this,n).size+N(this).size;continue}typeof n!="undefined"&&$(n),r+=R.get(this).size;for(const s of Q.get(this).values())r+=s.size;for(const s of L.get(this).values())r+=s.size}return r}bindMethods(e,r){if(typeof e!="object"||e===null)throw new TypeError("`target` must be an object");r=ze(r);for(const n of r){if(e[n]!==void 0)throw new Error(`The property \`${n}\` already exists on \`target\``);Object.defineProperty(e,n,{enumerable:!1,value:this[n].bind(this)})}}}const Ge=Object.getOwnPropertyNames(x.prototype).filter(t=>t!=="constructor");Object.defineProperty(x,"listenerAdded",{value:X,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(x,"listenerRemoved",{value:K,writable:!1,enumerable:!0,configurable:!1});var pe=x;function yt(t){return typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"}function gt(t){if(yt(t))return t;try{return new Error(JSON.stringify(t))}catch{return new Error(String(t))}}function me(t){return gt(t).message}var ye;(function(t){t.FPS_DROP="fps_drop"})(ye||(ye={}));const bt=500,vt=.8;class wt extends pe{constructor(e,r){super();this.index_=r,this.uuid_=We(),this.framesTransformed_=0,this.transformer_=e,this.shouldStop_=!1,this.isFlashed_=!1,this.framesFromSource_=0,this.fps_=0,this.mediaTransformerQosReportStartTimestamp_=0,this.videoHeight_=0,this.videoWidth_=0,this.trackExpectedRate_=-1,this.transformerType_="Custom","getTransformerType"in e&&(this.transformerType_=e.getTransformerType());const n=new _().action("MediaTransformer").guid(this.uuid_).transformerType(this.transformerType_).variation("Create").build();E.report(n)}setTrackExpectedRate(e){this.trackExpectedRate_=e}async start(e){if(this.transformer_&&typeof this.transformer_.start=="function")try{await this.transformer_.start(e)}catch(r){const n=new _().action("MediaTransformer").guid(this.uuid_).message(P.errors.transformer_start).transformerType(this.transformerType_).variation("Error").error(me(r)).build();E.report(n);const s={eventMetaData:{transformerIndex:this.index_},error:r,function:"start"};this.emit("error",s)}}async transform(e,r){var n,s,i,o;if(this.mediaTransformerQosReportStartTimestamp_===0&&(this.mediaTransformerQosReportStartTimestamp_=Date.now()),e instanceof VideoFrame&&(this.videoHeight_=(n=e==null?void 0:e.displayHeight)!=null?n:0,this.videoWidth_=(s=e==null?void 0:e.displayWidth)!=null?s:0),++this.framesFromSource_,this.transformer_)if(this.shouldStop_)e.close(),this.flush(r),r.terminate();else try{await((o=(i=this.transformer_).transform)==null?void 0:o.call(i,e,r)),++this.framesTransformed_,this.framesTransformed_===bt&&this.mediaTransformerQosReport()}catch(a){const l=new _().action("MediaTransformer").guid(this.uuid_).message(P.errors.transformer_transform).transformerType(this.transformerType_).variation("Error").error(me(a)).build();E.report(l);const m={eventMetaData:{transformerIndex:this.index_},error:a,function:"transform"};this.emit("error",m)}}async flush(e){if(this.transformer_&&typeof this.transformer_.flush=="function"&&!this.isFlashed_){this.isFlashed_=!0;try{await this.transformer_.flush(e)}catch(n){const s=new _().action("MediaTransformer").guid(this.uuid_).message(P.errors.transformer_flush).transformerType(this.transformerType_).variation("Error").error(me(n)).build();E.report(s);const i={eventMetaData:{transformerIndex:this.index_},error:n,function:"flush"};this.emit("error",i)}}this.mediaTransformerQosReport();const r=new _().action("MediaTransformer").guid(this.uuid_).transformerType(this.transformerType_).variation("Delete").build();E.report(r)}stop(){console.log("[Pipeline] Stop stream."),this.shouldStop_=!0}mediaTransformerQosReport(){let e=(Date.now()-this.mediaTransformerQosReportStartTimestamp_)/1e3,r=this.framesFromSource_/e,n=this.framesTransformed_/e;if(this.trackExpectedRate_!=-1&&this.trackExpectedRate_*vt>r){const i={eventMetaData:{transformerIndex:this.index_},warningType:ye.FPS_DROP,dropInfo:{requested:this.trackExpectedRate_,current:r}};this.emit("warn",i)}const s=new _().action("MediaTransformer").fps(r).transformedFps(n).framesTransformed(this.framesTransformed_).guid(this.uuid_).transformerType(this.transformerType_).videoHeight(this.videoHeight_).videoWidth(this.videoWidth_).variation("QoS").build();E.report(s),this.mediaTransformerQosReportStartTimestamp_=0,this.framesFromSource_=0,this.framesTransformed_=0}}class _t extends pe{constructor(e){super();this.transformers_=[],this.trackExpectedRate_=-1;for(let r=0;r<e.length;r++){let n=new wt(e[r],r);n.on("error",s=>{this.emit("error",s)}),n.on("warn",s=>{this.emit("warn",s)}),this.transformers_.push(n)}}setTrackExpectedRate(e){this.trackExpectedRate_=e;for(let r of this.transformers_)r.setTrackExpectedRate(this.trackExpectedRate_)}async start(e,r){if(!this.transformers_||this.transformers_.length===0){console.log("[Pipeline] No transformers.");return}try{let n=e;for(let s of this.transformers_)e=e.pipeThrough(new TransformStream(s));e.pipeTo(r).then(async()=>{console.log("[Pipeline] Setup."),await r.abort(),await n.cancel(),this.emit("pipelineInfo",{message:"pipeline_ended"})}).catch(async s=>{e.cancel().then(()=>{console.log("[Pipeline] Shutting down streams after abort.")}).catch(i=>{console.error("[Pipeline] Error from stream transform:",i)}),await r.abort(s),await n.cancel(s),this.emit("pipelineInfo",{message:"pipeline_ended_with_error"})})}catch{this.emit("pipelineInfo",{message:"pipeline_started_with_error"}),this.destroy();return}this.emit("pipelineInfo",{message:"pipeline_started"}),console.log("[Pipeline] Pipeline started.")}async destroy(){console.log("[Pipeline] Destroying Pipeline.");for(let e of this.transformers_)e.stop()}}class Et extends pe{constructor(){super();this.uuid_=We(),this.trackExpectedRate_=-1;const e=new _().action("MediaProcessor").guid(this.uuid_).variation("Create").build();E.report(e)}setTrackExpectedRate(e){this.trackExpectedRate_=e,this.pipeline_&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_)}transform(e,r){return this.readable_=e,this.writable_=r,this.transformInternal()}transformInternal(){return new Promise((e,r)=>{if(!this.transformers_||this.transformers_.length===0){const n=new _().action("MediaProcessor").guid(this.uuid_).message(P.errors.transformer_none).variation("Error").build();E.report(n),r("[MediaProcessor] Need to set transformers.")}this.pipeline_&&this.pipeline_.destroy(),this.pipeline_=new _t(this.transformers_),this.pipeline_.on("warn",n=>{this.emit("warn",n)}),this.pipeline_.on("error",n=>{this.emit("error",n)}),this.pipeline_.on("pipelineInfo",n=>{this.emit("pipelineInfo",n)}),this.trackExpectedRate_!=-1&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_),this.pipeline_.start(this.readable_,this.writable_).then(()=>{e()}).catch(n=>{r(n)})})}setTransformers(e){const r=new _().action("MediaProcessor").guid(this.uuid_).message(P.updates.transformer_new).variation("Update").build();return E.report(r),this.transformers_=e,this.readable_&&this.writable_?this.transformInternal():Promise.resolve()}destroy(){return new Promise(e=>{this.pipeline_&&this.pipeline_.destroy();const r=new _().action("MediaProcessor").guid(this.uuid_).variation("Delete").build();E.report(r),e()})}}class Tt{constructor(){this.processor_=null,this.generator_=null}init(e){return new Promise((r,n)=>{try{this.processor_=new MediaStreamTrackProcessor(e)}catch(s){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${s}`),n(s)}try{e.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):e.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):n("kind not supported")}catch(s){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${s}`),n(s)}r()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class St{constructor(e){this.insertableStreamHelper_=new Tt,this.mediaProcessor_=e}setTrack(e){return new Promise((r,n)=>{this.insertableStreamHelper_.init(e).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{r(this.insertableStreamHelper_.getProccesorTrack())}).catch(s=>{n(s)})}).catch(s=>{n(s)})})}destroy(){return new Promise((e,r)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{e()}).catch(n=>{r(n)}):r("no processor")})}}b.MediaProcessor=Et,b.MediaProcessorConnector=St,b.getVonageMetadata=He,b.isSupported=I,b.setVonageMetadata=ut,Object.defineProperty(b,"__esModule",{value:!0}),b[Symbol.toStringTag]="Module"});
|
|
1
|
+
(function(w,I){typeof exports=="object"&&typeof module!="undefined"?I(exports):typeof define=="function"&&define.amd?define(["exports"],I):(w=typeof globalThis!="undefined"?globalThis:w||self,I(w["media-processor"]={}))})(this,function(w){"use strict";function I(){return new Promise((t,e)=>{typeof MediaStreamTrackProcessor=="undefined"||typeof MediaStreamTrackGenerator=="undefined"?e("Your browser does not support the MediaStreamTrack API for Insertable Streams of Media."):t()})}class S{}S.updates={transformer_new:"New transformer",transformer_null:"Null transformer"},S.errors={transformer_none:"No transformers provided",transformer_start:"Cannot start transformer",transformer_transform:"Cannot transform frame",transformer_flush:"Cannot flush transformer",readable_null:"Readable is null",writable_null:"Writable is null"};var Z={exports:{}},be=function(e,r){return function(){for(var s=new Array(arguments.length),i=0;i<s.length;i++)s[i]=arguments[i];return e.apply(r,s)}},Ke=be,P=Object.prototype.toString;function ee(t){return Array.isArray(t)}function re(t){return typeof t=="undefined"}function Ye(t){return t!==null&&!re(t)&&t.constructor!==null&&!re(t.constructor)&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)}function _e(t){return P.call(t)==="[object ArrayBuffer]"}function Ze(t){return P.call(t)==="[object FormData]"}function er(t){var e;return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&_e(t.buffer),e}function rr(t){return typeof t=="string"}function tr(t){return typeof t=="number"}function we(t){return t!==null&&typeof t=="object"}function j(t){if(P.call(t)!=="[object Object]")return!1;var e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}function nr(t){return P.call(t)==="[object Date]"}function sr(t){return P.call(t)==="[object File]"}function ir(t){return P.call(t)==="[object Blob]"}function ve(t){return P.call(t)==="[object Function]"}function or(t){return we(t)&&ve(t.pipe)}function ar(t){return P.call(t)==="[object URLSearchParams]"}function ur(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function lr(){return typeof navigator!="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window!="undefined"&&typeof document!="undefined"}function te(t,e){if(!(t===null||typeof t=="undefined"))if(typeof t!="object"&&(t=[t]),ee(t))for(var r=0,n=t.length;r<n;r++)e.call(null,t[r],r,t);else for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.call(null,t[s],s,t)}function ne(){var t={};function e(s,i){j(t[i])&&j(s)?t[i]=ne(t[i],s):j(s)?t[i]=ne({},s):ee(s)?t[i]=s.slice():t[i]=s}for(var r=0,n=arguments.length;r<n;r++)te(arguments[r],e);return t}function fr(t,e,r){return te(e,function(s,i){r&&typeof s=="function"?t[i]=Ke(s,r):t[i]=s}),t}function cr(t){return t.charCodeAt(0)===65279&&(t=t.slice(1)),t}var p={isArray:ee,isArrayBuffer:_e,isBuffer:Ye,isFormData:Ze,isArrayBufferView:er,isString:rr,isNumber:tr,isObject:we,isPlainObject:j,isUndefined:re,isDate:nr,isFile:sr,isBlob:ir,isFunction:ve,isStream:or,isURLSearchParams:ar,isStandardBrowserEnv:lr,forEach:te,merge:ne,extend:fr,trim:ur,stripBOM:cr},A=p;function Ee(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var Te=function(e,r,n){if(!r)return e;var s;if(n)s=n(r);else if(A.isURLSearchParams(r))s=r.toString();else{var i=[];A.forEach(r,function(f,m){f===null||typeof f=="undefined"||(A.isArray(f)?m=m+"[]":f=[f],A.forEach(f,function(c){A.isDate(c)?c=c.toISOString():A.isObject(c)&&(c=JSON.stringify(c)),i.push(Ee(m)+"="+Ee(c))}))}),s=i.join("&")}if(s){var o=e.indexOf("#");o!==-1&&(e=e.slice(0,o)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e},dr=p;function F(){this.handlers=[]}F.prototype.use=function(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1},F.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},F.prototype.forEach=function(e){dr.forEach(this.handlers,function(n){n!==null&&e(n)})};var hr=F,pr=p,mr=function(e,r){pr.forEach(e,function(s,i){i!==r&&i.toUpperCase()===r.toUpperCase()&&(e[r]=s,delete e[i])})},Se=function(e,r,n,s,i){return e.config=r,n&&(e.code=n),e.request=s,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e},yr=Se,Pe=function(e,r,n,s,i){var o=new Error(e);return yr(o,r,n,s,i)},gr=Pe,br=function(e,r,n){var s=n.config.validateStatus;!n.status||!s||s(n.status)?e(n):r(gr("Request failed with status code "+n.status,n.config,null,n.request,n))},q=p,_r=q.isStandardBrowserEnv()?function(){return{write:function(r,n,s,i,o,a){var f=[];f.push(r+"="+encodeURIComponent(n)),q.isNumber(s)&&f.push("expires="+new Date(s).toGMTString()),q.isString(i)&&f.push("path="+i),q.isString(o)&&f.push("domain="+o),a===!0&&f.push("secure"),document.cookie=f.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}(),wr=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)},vr=function(e,r){return r?e.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):e},Er=wr,Tr=vr,Sr=function(e,r){return e&&!Er(r)?Tr(e,r):r},se=p,Pr=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"],Rr=function(e){var r={},n,s,i;return e&&se.forEach(e.split(`
|
|
2
|
+
`),function(a){if(i=a.indexOf(":"),n=se.trim(a.substr(0,i)).toLowerCase(),s=se.trim(a.substr(i+1)),n){if(r[n]&&Pr.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([s]):r[n]=r[n]?r[n]+", "+s:s}}),r},Re=p,xr=Re.isStandardBrowserEnv()?function(){var e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function s(i){var o=i;return e&&(r.setAttribute("href",o),o=r.href),r.setAttribute("href",o),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=s(window.location.href),function(o){var a=Re.isString(o)?s(o):o;return a.protocol===n.protocol&&a.host===n.host}}():function(){return function(){return!0}}();function ie(t){this.message=t}ie.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},ie.prototype.__CANCEL__=!0;var B=ie,H=p,Or=br,Ar=_r,Mr=Te,Cr=Sr,$r=Rr,kr=xr,oe=Pe,Ur=J,Ir=B,xe=function(e){return new Promise(function(n,s){var i=e.data,o=e.headers,a=e.responseType,f;function m(){e.cancelToken&&e.cancelToken.unsubscribe(f),e.signal&&e.signal.removeEventListener("abort",f)}H.isFormData(i)&&delete o["Content-Type"];var u=new XMLHttpRequest;if(e.auth){var c=e.auth.username||"",T=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.Authorization="Basic "+btoa(c+":"+T)}var y=Cr(e.baseURL,e.url);u.open(e.method.toUpperCase(),Mr(y,e.params,e.paramsSerializer),!0),u.timeout=e.timeout;function Qe(){if(!!u){var v="getAllResponseHeaders"in u?$r(u.getAllResponseHeaders()):null,U=!a||a==="text"||a==="json"?u.responseText:u.response,O={data:U,status:u.status,statusText:u.statusText,headers:v,config:e,request:u};Or(function(ge){n(ge),m()},function(ge){s(ge),m()},O),u=null}}if("onloadend"in u?u.onloadend=Qe:u.onreadystatechange=function(){!u||u.readyState!==4||u.status===0&&!(u.responseURL&&u.responseURL.indexOf("file:")===0)||setTimeout(Qe)},u.onabort=function(){!u||(s(oe("Request aborted",e,"ECONNABORTED",u)),u=null)},u.onerror=function(){s(oe("Network Error",e,null,u)),u=null},u.ontimeout=function(){var U=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",O=e.transitional||Ur.transitional;e.timeoutErrorMessage&&(U=e.timeoutErrorMessage),s(oe(U,e,O.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",u)),u=null},H.isStandardBrowserEnv()){var Xe=(e.withCredentials||kr(y))&&e.xsrfCookieName?Ar.read(e.xsrfCookieName):void 0;Xe&&(o[e.xsrfHeaderName]=Xe)}"setRequestHeader"in u&&H.forEach(o,function(U,O){typeof i=="undefined"&&O.toLowerCase()==="content-type"?delete o[O]:u.setRequestHeader(O,U)}),H.isUndefined(e.withCredentials)||(u.withCredentials=!!e.withCredentials),a&&a!=="json"&&(u.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&u.addEventListener("progress",e.onDownloadProgress),typeof e.onUploadProgress=="function"&&u.upload&&u.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(f=function(v){!u||(s(!v||v&&v.type?new Ir("canceled"):v),u.abort(),u=null)},e.cancelToken&&e.cancelToken.subscribe(f),e.signal&&(e.signal.aborted?f():e.signal.addEventListener("abort",f))),i||(i=null),u.send(i)})},d=p,Oe=mr,Dr=Se,Lr={"Content-Type":"application/x-www-form-urlencoded"};function Ae(t,e){!d.isUndefined(t)&&d.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}function Nr(){var t;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(t=xe),t}function jr(t,e,r){if(d.isString(t))try{return(e||JSON.parse)(t),d.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}var W={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:Nr(),transformRequest:[function(e,r){return Oe(r,"Accept"),Oe(r,"Content-Type"),d.isFormData(e)||d.isArrayBuffer(e)||d.isBuffer(e)||d.isStream(e)||d.isFile(e)||d.isBlob(e)?e:d.isArrayBufferView(e)?e.buffer:d.isURLSearchParams(e)?(Ae(r,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):d.isObject(e)||r&&r["Content-Type"]==="application/json"?(Ae(r,"application/json"),jr(e)):e}],transformResponse:[function(e){var r=this.transitional||W.transitional,n=r&&r.silentJSONParsing,s=r&&r.forcedJSONParsing,i=!n&&this.responseType==="json";if(i||s&&d.isString(e)&&e.length)try{return JSON.parse(e)}catch(o){if(i)throw o.name==="SyntaxError"?Dr(o,this,"E_JSON_PARSE"):o}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};d.forEach(["delete","get","head"],function(e){W.headers[e]={}}),d.forEach(["post","put","patch"],function(e){W.headers[e]=d.merge(Lr)});var J=W,Fr=p,qr=J,Br=function(e,r,n){var s=this||qr;return Fr.forEach(n,function(o){e=o.call(s,e,r)}),e},Me=function(e){return!!(e&&e.__CANCEL__)},Ce=p,ae=Br,Hr=Me,Wr=J,Jr=B;function ue(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Jr("canceled")}var Vr=function(e){ue(e),e.headers=e.headers||{},e.data=ae.call(e,e.data,e.headers,e.transformRequest),e.headers=Ce.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Ce.forEach(["delete","get","head","post","put","patch","common"],function(s){delete e.headers[s]});var r=e.adapter||Wr.adapter;return r(e).then(function(s){return ue(e),s.data=ae.call(e,s.data,s.headers,e.transformResponse),s},function(s){return Hr(s)||(ue(e),s&&s.response&&(s.response.data=ae.call(e,s.response.data,s.response.headers,e.transformResponse))),Promise.reject(s)})},g=p,$e=function(e,r){r=r||{};var n={};function s(u,c){return g.isPlainObject(u)&&g.isPlainObject(c)?g.merge(u,c):g.isPlainObject(c)?g.merge({},c):g.isArray(c)?c.slice():c}function i(u){if(g.isUndefined(r[u])){if(!g.isUndefined(e[u]))return s(void 0,e[u])}else return s(e[u],r[u])}function o(u){if(!g.isUndefined(r[u]))return s(void 0,r[u])}function a(u){if(g.isUndefined(r[u])){if(!g.isUndefined(e[u]))return s(void 0,e[u])}else return s(void 0,r[u])}function f(u){if(u in r)return s(e[u],r[u]);if(u in e)return s(void 0,e[u])}var m={url:o,method:o,data:o,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:f};return g.forEach(Object.keys(e).concat(Object.keys(r)),function(c){var T=m[c]||i,y=T(c);g.isUndefined(y)&&T!==f||(n[c]=y)}),n},ke={version:"0.25.0"},zr=ke.version,le={};["object","boolean","number","function","string","symbol"].forEach(function(t,e){le[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});var Ue={};le.transitional=function(e,r,n){function s(i,o){return"[Axios v"+zr+"] Transitional option '"+i+"'"+o+(n?". "+n:"")}return function(i,o,a){if(e===!1)throw new Error(s(o," has been removed"+(r?" in "+r:"")));return r&&!Ue[o]&&(Ue[o]=!0,console.warn(s(o," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(i,o,a):!0}};function Gr(t,e,r){if(typeof t!="object")throw new TypeError("options must be an object");for(var n=Object.keys(t),s=n.length;s-- >0;){var i=n[s],o=e[i];if(o){var a=t[i],f=a===void 0||o(a,i,t);if(f!==!0)throw new TypeError("option "+i+" must be "+f);continue}if(r!==!0)throw Error("Unknown option "+i)}}var Qr={assertOptions:Gr,validators:le},Ie=p,Xr=Te,De=hr,Le=Vr,V=$e,Ne=Qr,M=Ne.validators;function D(t){this.defaults=t,this.interceptors={request:new De,response:new De}}D.prototype.request=function(e,r){if(typeof e=="string"?(r=r||{},r.url=e):r=e||{},!r.url)throw new Error("Provided config url is not valid");r=V(this.defaults,r),r.method?r.method=r.method.toLowerCase():this.defaults.method?r.method=this.defaults.method.toLowerCase():r.method="get";var n=r.transitional;n!==void 0&&Ne.assertOptions(n,{silentJSONParsing:M.transitional(M.boolean),forcedJSONParsing:M.transitional(M.boolean),clarifyTimeoutError:M.transitional(M.boolean)},!1);var s=[],i=!0;this.interceptors.request.forEach(function(y){typeof y.runWhen=="function"&&y.runWhen(r)===!1||(i=i&&y.synchronous,s.unshift(y.fulfilled,y.rejected))});var o=[];this.interceptors.response.forEach(function(y){o.push(y.fulfilled,y.rejected)});var a;if(!i){var f=[Le,void 0];for(Array.prototype.unshift.apply(f,s),f=f.concat(o),a=Promise.resolve(r);f.length;)a=a.then(f.shift(),f.shift());return a}for(var m=r;s.length;){var u=s.shift(),c=s.shift();try{m=u(m)}catch(T){c(T);break}}try{a=Le(m)}catch(T){return Promise.reject(T)}for(;o.length;)a=a.then(o.shift(),o.shift());return a},D.prototype.getUri=function(e){if(!e.url)throw new Error("Provided config url is not valid");return e=V(this.defaults,e),Xr(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},Ie.forEach(["delete","get","head","options"],function(e){D.prototype[e]=function(r,n){return this.request(V(n||{},{method:e,url:r,data:(n||{}).data}))}}),Ie.forEach(["post","put","patch"],function(e){D.prototype[e]=function(r,n,s){return this.request(V(s||{},{method:e,url:r,data:n}))}});var Kr=D,Yr=B;function C(t){if(typeof t!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(s){e=s});var r=this;this.promise.then(function(n){if(!!r._listeners){var s,i=r._listeners.length;for(s=0;s<i;s++)r._listeners[s](n);r._listeners=null}}),this.promise.then=function(n){var s,i=new Promise(function(o){r.subscribe(o),s=o}).then(n);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s){r.reason||(r.reason=new Yr(s),e(r.reason))})}C.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},C.prototype.subscribe=function(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]},C.prototype.unsubscribe=function(e){if(!!this._listeners){var r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}},C.source=function(){var e,r=new C(function(s){e=s});return{token:r,cancel:e}};var Zr=C,et=function(e){return function(n){return e.apply(null,n)}},rt=p,tt=function(e){return rt.isObject(e)&&e.isAxiosError===!0},je=p,nt=be,z=Kr,st=$e,it=J;function Fe(t){var e=new z(t),r=nt(z.prototype.request,e);return je.extend(r,z.prototype,e),je.extend(r,e),r.create=function(s){return Fe(st(t,s))},r}var E=Fe(it);E.Axios=z,E.Cancel=B,E.CancelToken=Zr,E.isCancel=Me,E.VERSION=ke.version,E.all=function(e){return Promise.all(e)},E.spread=et,E.isAxiosError=tt,Z.exports=E,Z.exports.default=E;var ot=Z.exports;class l{isEmpty(){return!this.isPresent()}static of(e){if(e!=null)return new qe(e);throw new TypeError("The passed value was null or undefined.")}static ofNonNull(e){return l.of(e)}static ofNullable(e){return e!=null?new qe(e):new Be}static empty(){return new Be}static from(e){switch(e.kind){case"present":return l.of(e.value);case"empty":return l.empty();default:throw new TypeError("The passed value was not an Option type.")}}}class qe extends l{constructor(e){super();this.payload=e}isPresent(){return!0}get(){return this.payload}ifPresent(e){e(this.payload)}ifPresentOrElse(e,r){e(this.payload)}filter(e){return e(this.payload)?this:l.empty()}map(e){const r=e(this.payload);return l.ofNullable(r)}flatMap(e){return e(this.payload)}or(e){return this}orElse(e){return this.payload}orElseGet(e){return this.payload}orElseThrow(e){return this.payload}orNull(){return this.payload}orUndefined(){return this.payload}toOption(){return{kind:"present",value:this.payload}}matches(e){return e.present(this.payload)}toJSON(e){return this.payload}}class Be extends l{isPresent(){return!1}constructor(){super()}get(){throw new TypeError("The optional is not present.")}ifPresent(e){}ifPresentOrElse(e,r){r()}filter(e){return this}map(e){return l.empty()}flatMap(e){return l.empty()}or(e){return e()}orElse(e){return e}orElseGet(e){return this.orElse(e())}orElseThrow(e){throw e()}orNull(){return null}orUndefined(){}toOption(){return{kind:"empty"}}matches(e){return e.empty()}toJSON(e){return null}}const at="1.2.6";function ut(t){globalThis._vonageMediaProcessorMetadata=t}function He(){return globalThis._vonageMediaProcessorMetadata}class b{constructor(){const e=He();this._report={action:l.empty(),applicationId:l.ofNullable(e!==void 0&&e!=null?e.appId:null),timestamp:Date.now(),fps:l.empty(),framesTransformed:l.empty(),guid:l.empty(),highestFrameTransformCpu:l.empty(),message:l.empty(),source:l.ofNullable(e!==void 0&&e!=null?e.sourceType:null),transformedFps:l.empty(),transformerType:l.empty(),variation:l.empty(),videoHeight:l.empty(),videoWidth:l.empty(),version:at,error:l.empty(),proxyUrl:l.ofNullable(e!==void 0&&e!=null?e.proxyUrl:null)}}action(e){return this._report.action=l.ofNullable(e),this}framesTransformed(e){return this._report.framesTransformed=l.ofNullable(e),this}fps(e){return this._report.fps=l.ofNullable(e),this}guid(e){return this._report.guid=l.ofNullable(e),this}message(e){return this._report.message=l.ofNullable(e),this}transformedFps(e){return this._report.transformedFps=l.ofNullable(e),this}transformerType(e){return this._report.transformerType=l.ofNullable(e),this}variation(e){return this._report.variation=l.ofNullable(e),this}videoHeight(e){return this._report.videoHeight=l.ofNullable(e),this}videoWidth(e){return this._report.videoWidth=l.ofNullable(e),this}error(e){return this._report.error=l.ofNullable(e),this}build(){return this._report}}const lt=t=>JSON.stringify(t,(e,r)=>{if(r!==null)return r});class _{static report(e){return new Promise((r,n)=>{if(e.applicationId.isEmpty()||e.source.isEmpty()){r("success");return}let s=ot.create(),i={timeout:1e4,timeoutErrorMessage:"Request timeout",headers:{"Content-Type":"application/json"}},o="hlg.tokbox.com/prod/logging/vcp_webrtc";if(e.proxyUrl.isEmpty())o="https://"+o;else{let a;e.proxyUrl.get().slice(e.proxyUrl.get().length-1)!=="/"?a=e.proxyUrl.get()+"/":a=e.proxyUrl.get(),o=a+o}s.post(o,lt(e),i).then(a=>{console.log(a),r("success")}).catch(a=>{console.log(a),n(a)})})}}var G,ft=new Uint8Array(16);function ct(){if(!G&&(G=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!G))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return G(ft)}var dt=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function ht(t){return typeof t=="string"&&dt.test(t)}for(var h=[],fe=0;fe<256;++fe)h.push((fe+256).toString(16).substr(1));function pt(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=(h[t[e+0]]+h[t[e+1]]+h[t[e+2]]+h[t[e+3]]+"-"+h[t[e+4]]+h[t[e+5]]+"-"+h[t[e+6]]+h[t[e+7]]+"-"+h[t[e+8]]+h[t[e+9]]+"-"+h[t[e+10]]+h[t[e+11]]+h[t[e+12]]+h[t[e+13]]+h[t[e+14]]+h[t[e+15]]).toLowerCase();if(!ht(r))throw TypeError("Stringified UUID is invalid");return r}function We(t,e,r){t=t||{};var n=t.random||(t.rng||ct)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=n[s];return e}return pt(n)}const R=new WeakMap,Q=new WeakMap,L=new WeakMap,ce=Symbol("anyProducer"),Je=Promise.resolve(),X=Symbol("listenerAdded"),K=Symbol("listenerRemoved");let de=!1;function $(t){if(typeof t!="string"&&typeof t!="symbol")throw new TypeError("eventName must be a string or a symbol")}function Y(t){if(typeof t!="function")throw new TypeError("listener must be a function")}function k(t,e){const r=Q.get(t);return r.has(e)||r.set(e,new Set),r.get(e)}function N(t,e){const r=typeof e=="string"||typeof e=="symbol"?e:ce,n=L.get(t);return n.has(r)||n.set(r,new Set),n.get(r)}function mt(t,e,r){const n=L.get(t);if(n.has(e))for(const s of n.get(e))s.enqueue(r);if(n.has(ce)){const s=Promise.all([e,r]);for(const i of n.get(ce))i.enqueue(s)}}function Ve(t,e){e=Array.isArray(e)?e:[e];let r=!1,n=()=>{},s=[];const i={enqueue(o){s.push(o),n()},finish(){r=!0,n()}};for(const o of e)N(t,o).add(i);return{async next(){return s?s.length===0?r?(s=void 0,this.next()):(await new Promise(o=>{n=o}),this.next()):{done:!1,value:await s.shift()}:{done:!0}},async return(o){s=void 0;for(const a of e)N(t,a).delete(i);return n(),arguments.length>0?{done:!0,value:await o}:{done:!0}},[Symbol.asyncIterator](){return this}}}function ze(t){if(t===void 0)return Ge;if(!Array.isArray(t))throw new TypeError("`methodNames` must be an array of strings");for(const e of t)if(!Ge.includes(e))throw typeof e!="string"?new TypeError("`methodNames` element must be a string"):new Error(`${e} is not Emittery method`);return t}const he=t=>t===X||t===K;class x{static mixin(e,r){return r=ze(r),n=>{if(typeof n!="function")throw new TypeError("`target` must be function");for(const o of r)if(n.prototype[o]!==void 0)throw new Error(`The property \`${o}\` already exists on \`target\``);function s(){return Object.defineProperty(this,e,{enumerable:!1,value:new x}),this[e]}Object.defineProperty(n.prototype,e,{enumerable:!1,get:s});const i=o=>function(...a){return this[e][o](...a)};for(const o of r)Object.defineProperty(n.prototype,o,{enumerable:!1,value:i(o)});return n}}static get isDebugEnabled(){if(typeof process!="object")return de;const{env:e}=process||{env:{}};return e.DEBUG==="emittery"||e.DEBUG==="*"||de}static set isDebugEnabled(e){de=e}constructor(e={}){R.set(this,new Set),Q.set(this,new Map),L.set(this,new Map),this.debug=e.debug||{},this.debug.enabled===void 0&&(this.debug.enabled=!1),this.debug.logger||(this.debug.logger=(r,n,s,i)=>{i=JSON.stringify(i),typeof s=="symbol"&&(s=s.toString());const o=new Date,a=`${o.getHours()}:${o.getMinutes()}:${o.getSeconds()}.${o.getMilliseconds()}`;console.log(`[${a}][emittery:${r}][${n}] Event Name: ${s}
|
|
3
|
+
data: ${i}`)})}logIfDebugEnabled(e,r,n){(x.isDebugEnabled||this.debug.enabled)&&this.debug.logger(e,this.debug.name,r,n)}on(e,r){Y(r),e=Array.isArray(e)?e:[e];for(const n of e)$(n),k(this,n).add(r),this.logIfDebugEnabled("subscribe",n,void 0),he(n)||this.emit(X,{eventName:n,listener:r});return this.off.bind(this,e,r)}off(e,r){Y(r),e=Array.isArray(e)?e:[e];for(const n of e)$(n),k(this,n).delete(r),this.logIfDebugEnabled("unsubscribe",n,void 0),he(n)||this.emit(K,{eventName:n,listener:r})}once(e){return new Promise(r=>{const n=this.on(e,s=>{n(),r(s)})})}events(e){e=Array.isArray(e)?e:[e];for(const r of e)$(r);return Ve(this,e)}async emit(e,r){$(e),this.logIfDebugEnabled("emit",e,r),mt(this,e,r);const n=k(this,e),s=R.get(this),i=[...n],o=he(e)?[]:[...s];await Je,await Promise.all([...i.map(async a=>{if(n.has(a))return a(r)}),...o.map(async a=>{if(s.has(a))return a(e,r)})])}async emitSerial(e,r){$(e),this.logIfDebugEnabled("emitSerial",e,r);const n=k(this,e),s=R.get(this),i=[...n],o=[...s];await Je;for(const a of i)n.has(a)&&await a(r);for(const a of o)s.has(a)&&await a(e,r)}onAny(e){return Y(e),this.logIfDebugEnabled("subscribeAny",void 0,void 0),R.get(this).add(e),this.emit(X,{listener:e}),this.offAny.bind(this,e)}anyEvent(){return Ve(this)}offAny(e){Y(e),this.logIfDebugEnabled("unsubscribeAny",void 0,void 0),this.emit(K,{listener:e}),R.get(this).delete(e)}clearListeners(e){e=Array.isArray(e)?e:[e];for(const r of e)if(this.logIfDebugEnabled("clear",r,void 0),typeof r=="string"||typeof r=="symbol"){k(this,r).clear();const n=N(this,r);for(const s of n)s.finish();n.clear()}else{R.get(this).clear();for(const n of Q.get(this).values())n.clear();for(const n of L.get(this).values()){for(const s of n)s.finish();n.clear()}}}listenerCount(e){e=Array.isArray(e)?e:[e];let r=0;for(const n of e){if(typeof n=="string"){r+=R.get(this).size+k(this,n).size+N(this,n).size+N(this).size;continue}typeof n!="undefined"&&$(n),r+=R.get(this).size;for(const s of Q.get(this).values())r+=s.size;for(const s of L.get(this).values())r+=s.size}return r}bindMethods(e,r){if(typeof e!="object"||e===null)throw new TypeError("`target` must be an object");r=ze(r);for(const n of r){if(e[n]!==void 0)throw new Error(`The property \`${n}\` already exists on \`target\``);Object.defineProperty(e,n,{enumerable:!1,value:this[n].bind(this)})}}}const Ge=Object.getOwnPropertyNames(x.prototype).filter(t=>t!=="constructor");Object.defineProperty(x,"listenerAdded",{value:X,writable:!1,enumerable:!0,configurable:!1}),Object.defineProperty(x,"listenerRemoved",{value:K,writable:!1,enumerable:!0,configurable:!1});var pe=x;function yt(t){return typeof t=="object"&&t!==null&&"message"in t&&typeof t.message=="string"}function gt(t){if(yt(t))return t;try{return new Error(JSON.stringify(t))}catch{return new Error(String(t))}}function me(t){return gt(t).message}var ye;(function(t){t.FPS_DROP="fps_drop"})(ye||(ye={}));const bt=500,_t=.8;class wt extends pe{constructor(e,r){super();this.index_=r,this.uuid_=We(),this.framesTransformed_=0,this.transformer_=e,this.shouldStop_=!1,this.isFlashed_=!1,this.framesFromSource_=0,this.fps_=0,this.mediaTransformerQosReportStartTimestamp_=0,this.videoHeight_=0,this.videoWidth_=0,this.trackExpectedRate_=-1,this.transformerType_="Custom","getTransformerType"in e&&(this.transformerType_=e.getTransformerType());const n=new b().action("MediaTransformer").guid(this.uuid_).transformerType(this.transformerType_).variation("Create").build();_.report(n)}setTrackExpectedRate(e){this.trackExpectedRate_=e}async start(e){if(this.controller_=e,this.transformer_&&typeof this.transformer_.start=="function")try{await this.transformer_.start(e)}catch(r){const n=new b().action("MediaTransformer").guid(this.uuid_).message(S.errors.transformer_start).transformerType(this.transformerType_).variation("Error").error(me(r)).build();_.report(n);const s={eventMetaData:{transformerIndex:this.index_},error:r,function:"start"};this.emit("error",s)}}async transform(e,r){var n,s,i,o;if(this.mediaTransformerQosReportStartTimestamp_===0&&(this.mediaTransformerQosReportStartTimestamp_=Date.now()),e instanceof VideoFrame&&(this.videoHeight_=(n=e==null?void 0:e.displayHeight)!=null?n:0,this.videoWidth_=(s=e==null?void 0:e.displayWidth)!=null?s:0),++this.framesFromSource_,this.transformer_)if(this.shouldStop_)console.warn("[Pipeline] flush from transform"),e.close(),this.flush(r),r.terminate();else try{await((o=(i=this.transformer_).transform)==null?void 0:o.call(i,e,r)),++this.framesTransformed_,this.framesTransformed_===bt&&this.mediaTransformerQosReport()}catch(a){const f=new b().action("MediaTransformer").guid(this.uuid_).message(S.errors.transformer_transform).transformerType(this.transformerType_).variation("Error").error(me(a)).build();_.report(f);const m={eventMetaData:{transformerIndex:this.index_},error:a,function:"transform"};this.emit("error",m)}}async flush(e){if(this.transformer_&&typeof this.transformer_.flush=="function"&&!this.isFlashed_){this.isFlashed_=!0;try{await this.transformer_.flush(e)}catch(n){const s=new b().action("MediaTransformer").guid(this.uuid_).message(S.errors.transformer_flush).transformerType(this.transformerType_).variation("Error").error(me(n)).build();_.report(s);const i={eventMetaData:{transformerIndex:this.index_},error:n,function:"flush"};this.emit("error",i)}}this.mediaTransformerQosReport();const r=new b().action("MediaTransformer").guid(this.uuid_).transformerType(this.transformerType_).variation("Delete").build();_.report(r)}stop(){console.log("[Pipeline] Stop stream."),this.controller_&&(this.flush(this.controller_),this.controller_.terminate()),this.shouldStop_=!0}mediaTransformerQosReport(){let e=(Date.now()-this.mediaTransformerQosReportStartTimestamp_)/1e3,r=this.framesFromSource_/e,n=this.framesTransformed_/e;if(this.trackExpectedRate_!=-1&&this.trackExpectedRate_*_t>r){const i={eventMetaData:{transformerIndex:this.index_},warningType:ye.FPS_DROP,dropInfo:{requested:this.trackExpectedRate_,current:r}};this.emit("warn",i)}const s=new b().action("MediaTransformer").fps(r).transformedFps(n).framesTransformed(this.framesTransformed_).guid(this.uuid_).transformerType(this.transformerType_).videoHeight(this.videoHeight_).videoWidth(this.videoWidth_).variation("QoS").build();_.report(s),this.mediaTransformerQosReportStartTimestamp_=0,this.framesFromSource_=0,this.framesTransformed_=0}}class vt extends pe{constructor(e){super();this.transformers_=[],this.trackExpectedRate_=-1;for(let r=0;r<e.length;r++){let n=new wt(e[r],r);n.on("error",s=>{this.emit("error",s)}),n.on("warn",s=>{this.emit("warn",s)}),this.transformers_.push(n)}}setTrackExpectedRate(e){this.trackExpectedRate_=e;for(let r of this.transformers_)r.setTrackExpectedRate(this.trackExpectedRate_)}async start(e,r){if(!this.transformers_||this.transformers_.length===0){console.log("[Pipeline] No transformers.");return}try{let n=e;for(let s of this.transformers_)e=e.pipeThrough(new TransformStream(s));e.pipeTo(r).then(async()=>{console.log("[Pipeline] Setup."),await r.abort(),await n.cancel(),this.emit("pipelineInfo",{message:"pipeline_ended"})}).catch(async s=>{e.cancel().then(()=>{console.log("[Pipeline] Shutting down streams after abort.")}).catch(i=>{console.error("[Pipeline] Error from stream transform:",i)}),await r.abort(s),await n.cancel(s),this.emit("pipelineInfo",{message:"pipeline_ended_with_error"})})}catch{this.emit("pipelineInfo",{message:"pipeline_started_with_error"}),this.destroy();return}this.emit("pipelineInfo",{message:"pipeline_started"}),console.log("[Pipeline] Pipeline started.")}async destroy(){console.log("[Pipeline] Destroying Pipeline.");for(let e of this.transformers_)e.stop()}}class Et extends pe{constructor(){super();this.uuid_=We(),this.trackExpectedRate_=-1;const e=new b().action("MediaProcessor").guid(this.uuid_).variation("Create").build();_.report(e)}setTrackExpectedRate(e){this.trackExpectedRate_=e,this.pipeline_&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_)}transform(e,r){return this.readable_=e,this.writable_=r,this.transformInternal()}transformInternal(){return new Promise((e,r)=>{if(!this.transformers_||this.transformers_.length===0){const s=new b().action("MediaProcessor").guid(this.uuid_).message(S.errors.transformer_none).variation("Error").build();_.report(s),r("[MediaProcessor] Need to set transformers.");return}if(!this.readable_){const s=new b().action("MediaProcessor").guid(this.uuid_).message(S.errors.readable_null).variation("Error").build();_.report(s),r("[MediaProcessor] Readable is null.");return}if(!this.writable_){const s=new b().action("MediaProcessor").guid(this.uuid_).message(S.errors.writable_null).variation("Error").build();_.report(s),r("[MediaProcessor] Writable is null.");return}let n=!1;this.pipeline_&&(n=!0,this.pipeline_.clearListeners(),this.pipeline_.destroy()),this.pipeline_=new vt(this.transformers_),this.pipeline_.on("warn",s=>{this.emit("warn",s)}),this.pipeline_.on("error",s=>{this.emit("error",s)}),this.pipeline_.on("pipelineInfo",s=>{n&&(s.message==="pipeline_started"?s.message="pipeline_restarted":s.message==="pipeline_started_with_error"&&(s.message="pipeline_restarted_with_error")),this.emit("pipelineInfo",s)}),this.trackExpectedRate_!=-1&&this.pipeline_.setTrackExpectedRate(this.trackExpectedRate_),this.pipeline_.start(this.readable_,this.writable_).then(()=>{e()}).catch(s=>{r(s)})})}setTransformers(e){const r=new b().action("MediaProcessor").guid(this.uuid_).message(S.updates.transformer_new).variation("Update").build();return _.report(r),this.transformers_=e,this.readable_&&this.writable_?this.transformInternal():Promise.resolve()}destroy(){return new Promise(e=>{this.pipeline_&&this.pipeline_.destroy();const r=new b().action("MediaProcessor").guid(this.uuid_).variation("Delete").build();_.report(r),e()})}}class Tt{constructor(){this.processor_=null,this.generator_=null}init(e){return new Promise((r,n)=>{try{this.processor_=new MediaStreamTrackProcessor(e)}catch(s){console.log(`[InsertableStreamHelper] MediaStreamTrackProcessor failed: ${s}`),n(s)}try{e.kind==="audio"?this.generator_=new MediaStreamTrackGenerator({kind:"audio"}):e.kind==="video"?this.generator_=new MediaStreamTrackGenerator({kind:"video"}):n("kind not supported")}catch(s){console.log(`[InsertableStreamHelper] MediaStreamTrackGenerator failed: ${s}`),n(s)}r()})}getReadable(){return this.processor_.readable}getWriteable(){return this.generator_.writable}getProccesorTrack(){return this.generator_}}class St{constructor(e){this.insertableStreamHelper_=new Tt,this.mediaProcessor_=e}setTrack(e){return new Promise((r,n)=>{this.insertableStreamHelper_.init(e).then(()=>{this.mediaProcessor_.transform(this.insertableStreamHelper_.getReadable(),this.insertableStreamHelper_.getWriteable()).then(()=>{r(this.insertableStreamHelper_.getProccesorTrack())}).catch(s=>{n(s)})}).catch(s=>{n(s)})})}destroy(){return new Promise((e,r)=>{this.mediaProcessor_?this.mediaProcessor_.destroy().then(()=>{e()}).catch(n=>{r(n)}):r("no processor")})}}w.MediaProcessor=Et,w.MediaProcessorConnector=St,w.getVonageMetadata=He,w.isSupported=I,w.setVonageMetadata=ut,Object.defineProperty(w,"__esModule",{value:!0}),w[Symbol.toStringTag]="Module"});
|
|
@@ -23,19 +23,19 @@ declare class MediaProcessor extends Emittery<EventDataMap> {
|
|
|
23
23
|
/**
|
|
24
24
|
* @private
|
|
25
25
|
*/
|
|
26
|
-
pipeline_
|
|
26
|
+
pipeline_?: Pipeline;
|
|
27
27
|
/**
|
|
28
28
|
* @private
|
|
29
29
|
*/
|
|
30
|
-
transformers_
|
|
30
|
+
transformers_?: Array<Transformer>;
|
|
31
31
|
/**
|
|
32
32
|
* @private
|
|
33
33
|
*/
|
|
34
|
-
readable_
|
|
34
|
+
readable_?: ReadableStream;
|
|
35
35
|
/**
|
|
36
36
|
* @private
|
|
37
37
|
*/
|
|
38
|
-
writable_
|
|
38
|
+
writable_?: WritableStream;
|
|
39
39
|
/**
|
|
40
40
|
* @private
|
|
41
41
|
*/
|
|
@@ -69,7 +69,7 @@ export declare type ErrorData = {
|
|
|
69
69
|
* PipelineInfolData - life cycle information of pipeline
|
|
70
70
|
*/
|
|
71
71
|
export declare type PipelineInfoData = {
|
|
72
|
-
message: 'pipeline_ended' | 'pipeline_ended_with_error' | 'pipeline_started' | 'pipeline_started_with_error';
|
|
72
|
+
message: 'pipeline_ended' | 'pipeline_ended_with_error' | 'pipeline_started' | 'pipeline_started_with_error' | 'pipeline_restarted' | 'pipeline_restarted_with_error';
|
|
73
73
|
};
|
|
74
74
|
/**
|
|
75
75
|
* EventDataMap the options of event data
|
|
@@ -96,6 +96,7 @@ declare class InternalTransformer extends Emittery<EventDataMap> implements Tran
|
|
|
96
96
|
videoWidth_: number;
|
|
97
97
|
trackExpectedRate_: number;
|
|
98
98
|
index_: number;
|
|
99
|
+
controller_?: TransformStreamDefaultController;
|
|
99
100
|
constructor(transformer: Transformer, index: number);
|
|
100
101
|
setTrackExpectedRate(trackExpectedRate: number): void;
|
|
101
102
|
start(controller: TransformStreamDefaultController): Promise<void>;
|