@techsee/techsee-media-service 18.5.0 → 18.5.2
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/lib/LocalStreamManager.js.map +1 -1
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MediaContracts.js.map +1 -1
- package/lib/MediaPublisher.js.map +1 -1
- package/lib/MediaServiceBase.js.map +1 -1
- package/lib/MediaSession/MediaServer.js.map +1 -1
- package/lib/MediaSession/MediaSessionBase.js.map +1 -1
- package/lib/MediaSession/SessionOpentok.js.map +1 -1
- package/lib/MediaSession/SessionTurn.js.map +1 -1
- package/lib/MediaSession/TurnConstants.js.map +1 -1
- package/lib/MediaSubscriber.js.map +1 -1
- package/lib/MediaUtils/Compatibility.d.ts +2 -0
- package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
- package/lib/MediaUtils/Compatibility.js +160 -2
- package/lib/MediaUtils/Compatibility.js.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
- package/lib/MediaUtils/MediaTracer.js.map +1 -1
- package/lib/MediaUtils/index.js.map +1 -1
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -1
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -1
- package/lib/MultiParty/MediaTracer.js.map +1 -1
- package/lib/MultiParty/MultiPartyService.js.map +1 -1
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -1
- package/lib/MultiParty/MultipartyServiceEventTypes.js.map +1 -1
- package/lib/MultiParty/index.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js +20 -1
- package/lib/MultiParty/opentok/OpentokMultiPartyService.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokPublisherEventMapper.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokScreenPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokSubscriber.js.map +1 -1
- package/lib/MultiParty/opentok/OpentokVideoPublisher.d.ts.map +1 -1
- package/lib/MultiParty/opentok/OpentokVideoPublisher.js +32 -25
- package/lib/MultiParty/opentok/OpentokVideoPublisher.js.map +1 -1
- package/lib/MultiParty/opentok/trace.js.map +1 -1
- package/lib/MultiParty/types.js.map +1 -1
- package/lib/MultiParty/utils.js.map +1 -1
- package/lib/TechseeMediaStream.js.map +1 -1
- package/lib/qos/raw-qos.js +1 -1
- package/lib/qos/raw-qos.js.map +1 -1
- package/lib/webrtc-ie-shim.js +1 -1
- package/lib/webrtc-ie-shim.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/opentok/OpentokSubscriber.js","../src/MultiParty/opentok/OpentokSubscriber.ts"],"names":["Object","defineProperty","exports","value","createSubscriber","trace_1","require","session","stream","participantId","backgroundImageURI","subscriber","subscribe","insertMode","fitMode","width","height","style","buttonDisplayMode","audioLevelDisplayMode","videoDisabledDisplayMode","err","traceError","on","event","traceInfo"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;
|
|
1
|
+
{"version":3,"sources":["MultiParty/opentok/OpentokSubscriber.js","../src/MultiParty/opentok/OpentokSubscriber.ts"],"names":["Object","defineProperty","exports","value","createSubscriber","trace_1","require","session","stream","participantId","backgroundImageURI","subscriber","subscribe","insertMode","fitMode","width","height","style","buttonDisplayMode","audioLevelDisplayMode","videoDisabledDisplayMode","err","traceError","on","event","traceInfo"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,gBAAR,GAA2B,KAAK,CAAhC;;ACFA,IAAAC,OAAA,GAAAC,OAAA,CAAA,SAAA,CAAA;;AAEA,SAAgBF,gBAAhB,CACIG,OADJ,EAEIC,MAFJ,EAGIC,aAHJ,EAIIC,kBAJJ,EAI8B;AAE1B,MAAMC,UAAU,GAAGJ,OAAO,CAACK,SAAR,CACfJ,MADe,EAEfC,aAFe,EAGf;AACII,IAAAA,UAAU,EAAE,QADhB;AAEIC,IAAAA,OAAO,EAAE,OAFb;AAGIC,IAAAA,KAAK,EAAE,MAHX;AAIIC,IAAAA,MAAM,EAAE,MAJZ;AAKIC,IAAAA,KAAK,EAAE;AACHC,MAAAA,iBAAiB,EAAE,KADhB;AAEHC,MAAAA,qBAAqB,EAAE,KAFpB;AAGHC,MAAAA,wBAAwB,EAAE,KAHvB;AAIHV,MAAAA,kBAAkB,EAAAA;AAJf;AALX,GAHe,EAef,UAACW,GAAD,EAAI;AACAhB,IAAAA,OAAA,CAAAiB,UAAA,CAAWD,GAAX;AACH,GAjBc,CAAnB;AAoBAV,EAAAA,UAAU,CAACY,EAAX,CAAc,qBAAd,EAAqC,UAACC,KAAD,EAAe;AAChDnB,IAAAA,OAAA,CAAAoB,SAAA,CAAU,qBAAV,EAAiCD,KAAjC;AACH,GAFD;AAIA,SAAOb,UAAP;AACH;;AA/BDT,OAAA,CAAAE,gBAAA,GAAAA,gBAAA","file":"OpentokSubscriber.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSubscriber = void 0;\nvar trace_1 = require(\"./trace\");\nfunction createSubscriber(session, stream, participantId, backgroundImageURI) {\n var subscriber = session.subscribe(stream, participantId, {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n videoDisabledDisplayMode: 'off',\n backgroundImageURI: backgroundImageURI\n }\n }, function (err) {\n trace_1.traceError(err);\n });\n subscriber.on('videoElementCreated', function (event) {\n trace_1.traceInfo('videoElementCreated', event);\n });\n return subscriber;\n}\nexports.createSubscriber = createSubscriber;\n","import {traceError, traceInfo} from './trace';\n\nexport function createSubscriber(\n session: OT.Session,\n stream: OT.Stream,\n participantId: string,\n backgroundImageURI: string\n): OT.Subscriber {\n const subscriber = session.subscribe(\n stream,\n participantId,\n {\n insertMode: 'append',\n fitMode: 'cover',\n width: '100%',\n height: '100%',\n style: {\n buttonDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n videoDisabledDisplayMode: 'off',\n backgroundImageURI\n }\n },\n (err) => {\n traceError(err);\n }\n );\n\n subscriber.on('videoElementCreated', (event: unknown) => {\n traceInfo('videoElementCreated', event);\n });\n\n return subscriber;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MultiParty/opentok/OpentokVideoPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAMvC,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAUnH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC7D,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AACD,qBAAa,qBAAsB,SAAQ,gBAAiB,YAAW,sBAAsB;IACzF,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC,SAAS,CAAC;IACzC,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,2BAA2B,CAAC,CAA0C;gBAG1E,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,uBAAuB,EAChC,wBAAwB,EAAE,iBAAiB;IAgDxC,YAAY,YAAa,OAAO,KAAG,IAAI,CAAgD;IAEvF,YAAY,QAAa,QAAQ,IAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/MultiParty/opentok/OpentokVideoPublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,UAAU,CAAC;AAMvC,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAUnH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC7D,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AACD,qBAAa,qBAAsB,SAAQ,gBAAiB,YAAW,sBAAsB;IACzF,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC,SAAS,CAAC;IACzC,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,2BAA2B,CAAC,CAA0C;gBAG1E,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,uBAAuB,EAChC,wBAAwB,EAAE,iBAAiB;IAgDxC,YAAY,YAAa,OAAO,KAAG,IAAI,CAAgD;IAEvF,YAAY,QAAa,QAAQ,IAAI,CAAC,CAsC3C;IAEF,OAAO,CAAC,gBAAgB,CAMtB;IAEF,OAAO,CAAC,8BAA8B,CAKpC;IAEK,YAAY,YAAa,OAAO,KAAG,IAAI,CAAgD;CACjG","file":"OpentokVideoPublisher.d.ts","sourcesContent":["import {VideoSettings} from '../types';\nimport {shouldMirrorCamera} from '../utils';\nimport {traceError, traceInfo} from './trace';\nimport {createCameraSourceChangedEvent, createMediaAccessDeniedEvent} from './OpentokPublisherEventMapper';\nimport {MultiPartyCameraTypes} from '../../MediaConstants';\nimport {VideoFilterType} from '@techsee/techsee-common/lib/constants/account.constants';\nimport {IMediaCapablities, IOpentokPublisher, OpentokPublisher, OpentokPublisherOptions} from './OpentokPublisher';\nimport {waitAfterClearingFilter} from '../../MediaUtils/Compatibility';\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nconst OPENTOK_MIRRORED_CSS_CLASS = 'OT_mirrored';\n\nexport interface IOpentokVideoPublisher extends IOpentokPublisher {\n publishAudio: (enabled: boolean) => void;\n switchCamera: () => Promise<void>;\n}\nexport class OpentokVideoPublisher extends OpentokPublisher implements IOpentokVideoPublisher {\n protected currentPublisher: OT.Publisher;\n private videoFilter?: VideoFilterType;\n private videoFilterPublisherSetting?: {videoFilter?: {type: VideoFilterType}};\n\n constructor(\n videoSettings: VideoSettings,\n options: OpentokPublisherOptions,\n mediaCapabilitiesService: IMediaCapablities\n ) {\n super(options, mediaCapabilitiesService);\n\n const {selectedCamera, cameraEnabled, startWithAudioMuted, videoFilter} = videoSettings;\n\n this.selectedCamera = selectedCamera;\n this.videoFilter = videoFilter;\n\n const {participantId, backgroundImageURI} = options;\n const videoSource = (!this.isMobile && this.getVideoSourceId(selectedCamera)) || undefined;\n const facingMode =\n (this.isMobile &&\n !videoSource &&\n (selectedCamera === MultiPartyCameraTypes.FRONT\n ? OpentokFacingMode.USER\n : OpentokFacingMode.ENVIRONMENT)) ||\n undefined;\n\n this.setVideoFilterPublisherSetting();\n this.currentPublisher = OT.initPublisher(\n participantId,\n {\n ...this.publisherProperties,\n style: {\n ...this.publisherProperties.style,\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI\n },\n publishAudio: !startWithAudioMuted,\n publishVideo: cameraEnabled,\n videoSource,\n facingMode,\n mirror: shouldMirrorCamera(this.isMobile, selectedCamera),\n ...this.videoFilterPublisherSetting\n },\n traceError\n );\n\n this.initializeEventHandlers();\n this.currentPublisher.on('accessDenied', () => {\n traceInfo('Publisher denied media permissions');\n\n this.emit('mediaDeviceAccessDenied', createMediaAccessDeniedEvent(true));\n });\n }\n\n public publishAudio = (enabled: boolean): void => this.currentPublisher.publishAudio(enabled);\n\n public switchCamera = async (): Promise<void> => {\n if (!this.mediaCapabilitiesService.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n try {\n const newSelectedCamera =\n this.selectedCamera === MultiPartyCameraTypes.BACK\n ? MultiPartyCameraTypes.FRONT\n : MultiPartyCameraTypes.BACK;\n const newVideoSourceId = this.getVideoSourceId(newSelectedCamera);\n\n if (this.currentPublisher.getVideoFilter()) {\n await this.currentPublisher.clearVideoFilter();\n await waitAfterClearingFilter();\n }\n await this.currentPublisher.setVideoSource(newVideoSourceId);\n\n if (shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {\n this.currentPublisher.element?.classList.add(OPENTOK_MIRRORED_CSS_CLASS);\n } else {\n this.currentPublisher.element?.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);\n }\n\n this.selectedCamera = newSelectedCamera;\n this.setVideoFilterPublisherSetting();\n\n if (this.selectedCamera === MultiPartyCameraTypes.FRONT && this.videoFilterPublisherSetting?.videoFilter) {\n await this.currentPublisher.applyVideoFilter(this.videoFilterPublisherSetting.videoFilter);\n }\n this.emit(\n 'cameraSourceChanged',\n createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile)\n );\n } catch (err) {\n traceError(JSON.stringify(err));\n throw err;\n }\n };\n\n private getVideoSourceId = (selectedCamera: MultiPartyCameraTypes): string => {\n traceInfo('getVideoSourceId: ', selectedCamera);\n\n return selectedCamera === MultiPartyCameraTypes.FRONT\n ? this.mediaCapabilitiesService.frontCameraDeviceId\n : this.mediaCapabilitiesService.backCameraDeviceId;\n };\n\n private setVideoFilterPublisherSetting = (): void => {\n this.videoFilterPublisherSetting =\n this.selectedCamera === MultiPartyCameraTypes.FRONT && this.videoFilter === VideoFilterType.BLUR\n ? {videoFilter: {type: VideoFilterType.BLUR}}\n : {};\n };\n\n public publishVideo = (enabled: boolean): void => this.currentPublisher.publishVideo(enabled);\n}\n"]}
|
|
@@ -200,7 +200,9 @@ var MediaConstants_1 = require("../../MediaConstants");
|
|
|
200
200
|
|
|
201
201
|
var account_constants_1 = require("@techsee/techsee-common/lib/constants/account.constants");
|
|
202
202
|
|
|
203
|
-
var OpentokPublisher_1 = require("./OpentokPublisher");
|
|
203
|
+
var OpentokPublisher_1 = require("./OpentokPublisher");
|
|
204
|
+
|
|
205
|
+
var Compatibility_1 = require("../../MediaUtils/Compatibility"); // The preferred camera position to use for the video source
|
|
204
206
|
|
|
205
207
|
|
|
206
208
|
var OpentokFacingMode;
|
|
@@ -240,64 +242,69 @@ function (_super) {
|
|
|
240
242
|
_d.label = 1;
|
|
241
243
|
|
|
242
244
|
case 1:
|
|
243
|
-
_d.trys.push([1,
|
|
245
|
+
_d.trys.push([1, 8,, 9]);
|
|
244
246
|
|
|
245
247
|
newSelectedCamera = this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.BACK ? MediaConstants_1.MultiPartyCameraTypes.FRONT : MediaConstants_1.MultiPartyCameraTypes.BACK;
|
|
246
248
|
newVideoSourceId = this.getVideoSourceId(newSelectedCamera);
|
|
249
|
+
if (!this.currentPublisher.getVideoFilter()) return [3
|
|
250
|
+
/*break*/
|
|
251
|
+
, 4];
|
|
247
252
|
return [4
|
|
248
253
|
/*yield*/
|
|
249
|
-
, this.currentPublisher.
|
|
254
|
+
, this.currentPublisher.clearVideoFilter()];
|
|
250
255
|
|
|
251
256
|
case 2:
|
|
252
257
|
_d.sent();
|
|
253
258
|
|
|
254
|
-
if (utils_1.shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {
|
|
255
|
-
(_a = this.currentPublisher.element) === null || _a === void 0 ? void 0 : _a.classList.add(OPENTOK_MIRRORED_CSS_CLASS);
|
|
256
|
-
} else {
|
|
257
|
-
(_b = this.currentPublisher.element) === null || _b === void 0 ? void 0 : _b.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
this.selectedCamera = newSelectedCamera;
|
|
261
|
-
this.setVideoFilterPublisherSetting();
|
|
262
|
-
if (!(this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.BACK && this.currentPublisher.getVideoFilter())) return [3
|
|
263
|
-
/*break*/
|
|
264
|
-
, 4];
|
|
265
259
|
return [4
|
|
266
260
|
/*yield*/
|
|
267
|
-
,
|
|
261
|
+
, Compatibility_1.waitAfterClearingFilter()];
|
|
268
262
|
|
|
269
263
|
case 3:
|
|
270
264
|
_d.sent();
|
|
271
265
|
|
|
272
|
-
|
|
273
|
-
/*break*/
|
|
274
|
-
, 6];
|
|
266
|
+
_d.label = 4;
|
|
275
267
|
|
|
276
268
|
case 4:
|
|
269
|
+
return [4
|
|
270
|
+
/*yield*/
|
|
271
|
+
, this.currentPublisher.setVideoSource(newVideoSourceId)];
|
|
272
|
+
|
|
273
|
+
case 5:
|
|
274
|
+
_d.sent();
|
|
275
|
+
|
|
276
|
+
if (utils_1.shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {
|
|
277
|
+
(_a = this.currentPublisher.element) === null || _a === void 0 ? void 0 : _a.classList.add(OPENTOK_MIRRORED_CSS_CLASS);
|
|
278
|
+
} else {
|
|
279
|
+
(_b = this.currentPublisher.element) === null || _b === void 0 ? void 0 : _b.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
this.selectedCamera = newSelectedCamera;
|
|
283
|
+
this.setVideoFilterPublisherSetting();
|
|
277
284
|
if (!(this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT && ((_c = this.videoFilterPublisherSetting) === null || _c === void 0 ? void 0 : _c.videoFilter))) return [3
|
|
278
285
|
/*break*/
|
|
279
|
-
,
|
|
286
|
+
, 7];
|
|
280
287
|
return [4
|
|
281
288
|
/*yield*/
|
|
282
289
|
, this.currentPublisher.applyVideoFilter(this.videoFilterPublisherSetting.videoFilter)];
|
|
283
290
|
|
|
284
|
-
case
|
|
291
|
+
case 6:
|
|
285
292
|
_d.sent();
|
|
286
293
|
|
|
287
|
-
_d.label =
|
|
294
|
+
_d.label = 7;
|
|
288
295
|
|
|
289
|
-
case
|
|
296
|
+
case 7:
|
|
290
297
|
this.emit('cameraSourceChanged', OpentokPublisherEventMapper_1.createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile));
|
|
291
298
|
return [3
|
|
292
299
|
/*break*/
|
|
293
|
-
,
|
|
300
|
+
, 9];
|
|
294
301
|
|
|
295
|
-
case
|
|
302
|
+
case 8:
|
|
296
303
|
err_1 = _d.sent();
|
|
297
304
|
trace_1.traceError(JSON.stringify(err_1));
|
|
298
305
|
throw err_1;
|
|
299
306
|
|
|
300
|
-
case
|
|
307
|
+
case 9:
|
|
301
308
|
return [2
|
|
302
309
|
/*return*/
|
|
303
310
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/opentok/OpentokVideoPublisher.js","../src/MultiParty/opentok/OpentokVideoPublisher.ts"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","defineProperty","exports","OpentokVideoPublisher","utils_1","require","trace_1","OpentokPublisherEventMapper_1","MediaConstants_1","account_constants_1","OpentokPublisher_1","OpentokFacingMode","OPENTOK_MIRRORED_CSS_CLASS","_super","videoSettings","options","mediaCapabilitiesService","_this","publishAudio","enabled","currentPublisher","switchCamera","newSelectedCamera","newVideoSourceId","err_1","_a","_b","_c","_d","supportSwitchCamera","Error","selectedCamera","MultiPartyCameraTypes","BACK","FRONT","getVideoSourceId","setVideoSource","shouldMirrorCamera","isMobile","element","classList","add","remove","setVideoFilterPublisherSetting","getVideoFilter","clearVideoFilter","videoFilterPublisherSetting","videoFilter","applyVideoFilter","emit","createCameraSourceChangedEvent","stream","traceError","JSON","stringify","traceInfo","frontCameraDeviceId","backCameraDeviceId","VideoFilterType","BLUR","type","publishVideo","cameraEnabled","startWithAudioMuted","participantId","backgroundImageURI","videoSource","undefined","facingMode","USER","ENVIRONMENT","OT","initPublisher","publisherProperties","style","archiveStatusDisplayMode","audioLevelDisplayMode","mirror","initializeEventHandlers","on","createMediaAccessDeniedEvent","OpentokPublisher"],"mappings":"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","file":"OpentokVideoPublisher.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokVideoPublisher = void 0;\nvar utils_1 = require(\"../utils\");\nvar trace_1 = require(\"./trace\");\nvar OpentokPublisherEventMapper_1 = require(\"./OpentokPublisherEventMapper\");\nvar MediaConstants_1 = require(\"../../MediaConstants\");\nvar account_constants_1 = require(\"@techsee/techsee-common/lib/constants/account.constants\");\nvar OpentokPublisher_1 = require(\"./OpentokPublisher\");\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OPENTOK_MIRRORED_CSS_CLASS = 'OT_mirrored';\nvar OpentokVideoPublisher = /** @class */ (function (_super) {\n __extends(OpentokVideoPublisher, _super);\n function OpentokVideoPublisher(videoSettings, options, mediaCapabilitiesService) {\n var _this = _super.call(this, options, mediaCapabilitiesService) || this;\n _this.publishAudio = function (enabled) { return _this.currentPublisher.publishAudio(enabled); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () {\n var newSelectedCamera, newVideoSourceId, err_1;\n var _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!this.mediaCapabilitiesService.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n _d.label = 1;\n case 1:\n _d.trys.push([1, 7, , 8]);\n newSelectedCamera = this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.BACK\n ? MediaConstants_1.MultiPartyCameraTypes.FRONT\n : MediaConstants_1.MultiPartyCameraTypes.BACK;\n newVideoSourceId = this.getVideoSourceId(newSelectedCamera);\n return [4 /*yield*/, this.currentPublisher.setVideoSource(newVideoSourceId)];\n case 2:\n _d.sent();\n if (utils_1.shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {\n (_a = this.currentPublisher.element) === null || _a === void 0 ? void 0 : _a.classList.add(OPENTOK_MIRRORED_CSS_CLASS);\n }\n else {\n (_b = this.currentPublisher.element) === null || _b === void 0 ? void 0 : _b.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);\n }\n this.selectedCamera = newSelectedCamera;\n this.setVideoFilterPublisherSetting();\n if (!(this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.BACK && this.currentPublisher.getVideoFilter())) return [3 /*break*/, 4];\n return [4 /*yield*/, this.currentPublisher.clearVideoFilter()];\n case 3:\n _d.sent();\n return [3 /*break*/, 6];\n case 4:\n if (!(this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT && ((_c = this.videoFilterPublisherSetting) === null || _c === void 0 ? void 0 : _c.videoFilter))) return [3 /*break*/, 6];\n return [4 /*yield*/, this.currentPublisher.applyVideoFilter(this.videoFilterPublisherSetting.videoFilter)];\n case 5:\n _d.sent();\n _d.label = 6;\n case 6:\n this.emit('cameraSourceChanged', OpentokPublisherEventMapper_1.createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile));\n return [3 /*break*/, 8];\n case 7:\n err_1 = _d.sent();\n trace_1.traceError(JSON.stringify(err_1));\n throw err_1;\n case 8: return [2 /*return*/];\n }\n });\n }); };\n _this.getVideoSourceId = function (selectedCamera) {\n trace_1.traceInfo('getVideoSourceId: ', selectedCamera);\n return selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT\n ? _this.mediaCapabilitiesService.frontCameraDeviceId\n : _this.mediaCapabilitiesService.backCameraDeviceId;\n };\n _this.setVideoFilterPublisherSetting = function () {\n _this.videoFilterPublisherSetting =\n _this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT && _this.videoFilter === account_constants_1.VideoFilterType.BLUR\n ? { videoFilter: { type: account_constants_1.VideoFilterType.BLUR } }\n : {};\n };\n _this.publishVideo = function (enabled) { return _this.currentPublisher.publishVideo(enabled); };\n var selectedCamera = videoSettings.selectedCamera, cameraEnabled = videoSettings.cameraEnabled, startWithAudioMuted = videoSettings.startWithAudioMuted, videoFilter = videoSettings.videoFilter;\n _this.selectedCamera = selectedCamera;\n _this.videoFilter = videoFilter;\n var participantId = options.participantId, backgroundImageURI = options.backgroundImageURI;\n var videoSource = (!_this.isMobile && _this.getVideoSourceId(selectedCamera)) || undefined;\n var facingMode = (_this.isMobile &&\n !videoSource &&\n (selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT\n ? OpentokFacingMode.USER\n : OpentokFacingMode.ENVIRONMENT)) ||\n undefined;\n _this.setVideoFilterPublisherSetting();\n _this.currentPublisher = OT.initPublisher(participantId, __assign(__assign(__assign({}, _this.publisherProperties), { style: __assign(__assign({}, _this.publisherProperties.style), { archiveStatusDisplayMode: 'off', audioLevelDisplayMode: 'off', backgroundImageURI: backgroundImageURI }), publishAudio: !startWithAudioMuted, publishVideo: cameraEnabled, videoSource: videoSource,\n facingMode: facingMode, mirror: utils_1.shouldMirrorCamera(_this.isMobile, selectedCamera) }), _this.videoFilterPublisherSetting), trace_1.traceError);\n _this.initializeEventHandlers();\n _this.currentPublisher.on('accessDenied', function () {\n trace_1.traceInfo('Publisher denied media permissions');\n _this.emit('mediaDeviceAccessDenied', OpentokPublisherEventMapper_1.createMediaAccessDeniedEvent(true));\n });\n return _this;\n }\n return OpentokVideoPublisher;\n}(OpentokPublisher_1.OpentokPublisher));\nexports.OpentokVideoPublisher = OpentokVideoPublisher;\n","import {VideoSettings} from '../types';\nimport {shouldMirrorCamera} from '../utils';\nimport {traceError, traceInfo} from './trace';\nimport {createCameraSourceChangedEvent, createMediaAccessDeniedEvent} from './OpentokPublisherEventMapper';\nimport {MultiPartyCameraTypes} from '../../MediaConstants';\nimport {VideoFilterType} from '@techsee/techsee-common/lib/constants/account.constants';\nimport {IMediaCapablities, IOpentokPublisher, OpentokPublisher, OpentokPublisherOptions} from './OpentokPublisher';\n\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nconst OPENTOK_MIRRORED_CSS_CLASS = 'OT_mirrored';\n\nexport interface IOpentokVideoPublisher extends IOpentokPublisher {\n publishAudio: (enabled: boolean) => void;\n switchCamera: () => Promise<void>;\n}\nexport class OpentokVideoPublisher extends OpentokPublisher implements IOpentokVideoPublisher {\n protected currentPublisher: OT.Publisher;\n private videoFilter?: VideoFilterType;\n private videoFilterPublisherSetting?: {videoFilter?: {type: VideoFilterType}};\n\n constructor(\n videoSettings: VideoSettings,\n options: OpentokPublisherOptions,\n mediaCapabilitiesService: IMediaCapablities\n ) {\n super(options, mediaCapabilitiesService);\n\n const {selectedCamera, cameraEnabled, startWithAudioMuted, videoFilter} = videoSettings;\n\n this.selectedCamera = selectedCamera;\n this.videoFilter = videoFilter;\n\n const {participantId, backgroundImageURI} = options;\n const videoSource = (!this.isMobile && this.getVideoSourceId(selectedCamera)) || undefined;\n const facingMode =\n (this.isMobile &&\n !videoSource &&\n (selectedCamera === MultiPartyCameraTypes.FRONT\n ? OpentokFacingMode.USER\n : OpentokFacingMode.ENVIRONMENT)) ||\n undefined;\n\n this.setVideoFilterPublisherSetting();\n this.currentPublisher = OT.initPublisher(\n participantId,\n {\n ...this.publisherProperties,\n style: {\n ...this.publisherProperties.style,\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI\n },\n publishAudio: !startWithAudioMuted,\n publishVideo: cameraEnabled,\n videoSource,\n facingMode,\n mirror: shouldMirrorCamera(this.isMobile, selectedCamera),\n ...this.videoFilterPublisherSetting\n },\n traceError\n );\n\n this.initializeEventHandlers();\n this.currentPublisher.on('accessDenied', () => {\n traceInfo('Publisher denied media permissions');\n\n this.emit('mediaDeviceAccessDenied', createMediaAccessDeniedEvent(true));\n });\n }\n\n public publishAudio = (enabled: boolean): void => this.currentPublisher.publishAudio(enabled);\n\n public switchCamera = async (): Promise<void> => {\n if (!this.mediaCapabilitiesService.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n try {\n const newSelectedCamera =\n this.selectedCamera === MultiPartyCameraTypes.BACK\n ? MultiPartyCameraTypes.FRONT\n : MultiPartyCameraTypes.BACK;\n const newVideoSourceId = this.getVideoSourceId(newSelectedCamera);\n\n await this.currentPublisher.setVideoSource(newVideoSourceId);\n\n if (shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {\n this.currentPublisher.element?.classList.add(OPENTOK_MIRRORED_CSS_CLASS);\n } else {\n this.currentPublisher.element?.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);\n }\n\n this.selectedCamera = newSelectedCamera;\n this.setVideoFilterPublisherSetting();\n\n if (this.selectedCamera === MultiPartyCameraTypes.BACK && this.currentPublisher.getVideoFilter()) {\n await this.currentPublisher.clearVideoFilter();\n } else if (\n this.selectedCamera === MultiPartyCameraTypes.FRONT &&\n this.videoFilterPublisherSetting?.videoFilter\n ) {\n await this.currentPublisher.applyVideoFilter(this.videoFilterPublisherSetting.videoFilter);\n }\n this.emit(\n 'cameraSourceChanged',\n createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile)\n );\n } catch (err) {\n traceError(JSON.stringify(err));\n throw err;\n }\n };\n\n private getVideoSourceId = (selectedCamera: MultiPartyCameraTypes): string => {\n traceInfo('getVideoSourceId: ', selectedCamera);\n\n return selectedCamera === MultiPartyCameraTypes.FRONT\n ? this.mediaCapabilitiesService.frontCameraDeviceId\n : this.mediaCapabilitiesService.backCameraDeviceId;\n };\n\n private setVideoFilterPublisherSetting = (): void => {\n this.videoFilterPublisherSetting =\n this.selectedCamera === MultiPartyCameraTypes.FRONT && this.videoFilter === VideoFilterType.BLUR\n ? {videoFilter: {type: VideoFilterType.BLUR}}\n : {};\n };\n\n public publishVideo = (enabled: boolean): void => this.currentPublisher.publishVideo(enabled);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["MultiParty/opentok/OpentokVideoPublisher.js","../src/MultiParty/opentok/OpentokVideoPublisher.ts"],"names":["__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","Symbol","iterator","v","op","TypeError","pop","push","defineProperty","exports","OpentokVideoPublisher","utils_1","require","trace_1","OpentokPublisherEventMapper_1","MediaConstants_1","account_constants_1","OpentokPublisher_1","Compatibility_1","OpentokFacingMode","OPENTOK_MIRRORED_CSS_CLASS","_super","videoSettings","options","mediaCapabilitiesService","_this","publishAudio","enabled","currentPublisher","switchCamera","newSelectedCamera","newVideoSourceId","err_1","_a","_b","_c","_d","supportSwitchCamera","Error","selectedCamera","MultiPartyCameraTypes","BACK","FRONT","getVideoSourceId","getVideoFilter","clearVideoFilter","waitAfterClearingFilter","setVideoSource","shouldMirrorCamera","isMobile","element","classList","add","remove","setVideoFilterPublisherSetting","videoFilterPublisherSetting","videoFilter","applyVideoFilter","emit","createCameraSourceChangedEvent","stream","traceError","JSON","stringify","traceInfo","frontCameraDeviceId","backCameraDeviceId","VideoFilterType","BLUR","type","publishVideo","cameraEnabled","startWithAudioMuted","participantId","backgroundImageURI","videoSource","undefined","facingMode","USER","ENVIRONMENT","OT","initPublisher","publisherProperties","style","archiveStatusDisplayMode","audioLevelDisplayMode","mirror","initializeEventHandlers","on","createMediaAccessDeniedEvent","OpentokPublisher"],"mappings":"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","file":"OpentokVideoPublisher.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpentokVideoPublisher = void 0;\nvar utils_1 = require(\"../utils\");\nvar trace_1 = require(\"./trace\");\nvar OpentokPublisherEventMapper_1 = require(\"./OpentokPublisherEventMapper\");\nvar MediaConstants_1 = require(\"../../MediaConstants\");\nvar account_constants_1 = require(\"@techsee/techsee-common/lib/constants/account.constants\");\nvar OpentokPublisher_1 = require(\"./OpentokPublisher\");\nvar Compatibility_1 = require(\"../../MediaUtils/Compatibility\");\n// The preferred camera position to use for the video source\nvar OpentokFacingMode;\n(function (OpentokFacingMode) {\n OpentokFacingMode[\"USER\"] = \"user\";\n OpentokFacingMode[\"ENVIRONMENT\"] = \"environment\";\n})(OpentokFacingMode || (OpentokFacingMode = {}));\nvar OPENTOK_MIRRORED_CSS_CLASS = 'OT_mirrored';\nvar OpentokVideoPublisher = /** @class */ (function (_super) {\n __extends(OpentokVideoPublisher, _super);\n function OpentokVideoPublisher(videoSettings, options, mediaCapabilitiesService) {\n var _this = _super.call(this, options, mediaCapabilitiesService) || this;\n _this.publishAudio = function (enabled) { return _this.currentPublisher.publishAudio(enabled); };\n _this.switchCamera = function () { return __awaiter(_this, void 0, void 0, function () {\n var newSelectedCamera, newVideoSourceId, err_1;\n var _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n if (!this.mediaCapabilitiesService.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n _d.label = 1;\n case 1:\n _d.trys.push([1, 8, , 9]);\n newSelectedCamera = this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.BACK\n ? MediaConstants_1.MultiPartyCameraTypes.FRONT\n : MediaConstants_1.MultiPartyCameraTypes.BACK;\n newVideoSourceId = this.getVideoSourceId(newSelectedCamera);\n if (!this.currentPublisher.getVideoFilter()) return [3 /*break*/, 4];\n return [4 /*yield*/, this.currentPublisher.clearVideoFilter()];\n case 2:\n _d.sent();\n return [4 /*yield*/, Compatibility_1.waitAfterClearingFilter()];\n case 3:\n _d.sent();\n _d.label = 4;\n case 4: return [4 /*yield*/, this.currentPublisher.setVideoSource(newVideoSourceId)];\n case 5:\n _d.sent();\n if (utils_1.shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {\n (_a = this.currentPublisher.element) === null || _a === void 0 ? void 0 : _a.classList.add(OPENTOK_MIRRORED_CSS_CLASS);\n }\n else {\n (_b = this.currentPublisher.element) === null || _b === void 0 ? void 0 : _b.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);\n }\n this.selectedCamera = newSelectedCamera;\n this.setVideoFilterPublisherSetting();\n if (!(this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT && ((_c = this.videoFilterPublisherSetting) === null || _c === void 0 ? void 0 : _c.videoFilter))) return [3 /*break*/, 7];\n return [4 /*yield*/, this.currentPublisher.applyVideoFilter(this.videoFilterPublisherSetting.videoFilter)];\n case 6:\n _d.sent();\n _d.label = 7;\n case 7:\n this.emit('cameraSourceChanged', OpentokPublisherEventMapper_1.createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile));\n return [3 /*break*/, 9];\n case 8:\n err_1 = _d.sent();\n trace_1.traceError(JSON.stringify(err_1));\n throw err_1;\n case 9: return [2 /*return*/];\n }\n });\n }); };\n _this.getVideoSourceId = function (selectedCamera) {\n trace_1.traceInfo('getVideoSourceId: ', selectedCamera);\n return selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT\n ? _this.mediaCapabilitiesService.frontCameraDeviceId\n : _this.mediaCapabilitiesService.backCameraDeviceId;\n };\n _this.setVideoFilterPublisherSetting = function () {\n _this.videoFilterPublisherSetting =\n _this.selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT && _this.videoFilter === account_constants_1.VideoFilterType.BLUR\n ? { videoFilter: { type: account_constants_1.VideoFilterType.BLUR } }\n : {};\n };\n _this.publishVideo = function (enabled) { return _this.currentPublisher.publishVideo(enabled); };\n var selectedCamera = videoSettings.selectedCamera, cameraEnabled = videoSettings.cameraEnabled, startWithAudioMuted = videoSettings.startWithAudioMuted, videoFilter = videoSettings.videoFilter;\n _this.selectedCamera = selectedCamera;\n _this.videoFilter = videoFilter;\n var participantId = options.participantId, backgroundImageURI = options.backgroundImageURI;\n var videoSource = (!_this.isMobile && _this.getVideoSourceId(selectedCamera)) || undefined;\n var facingMode = (_this.isMobile &&\n !videoSource &&\n (selectedCamera === MediaConstants_1.MultiPartyCameraTypes.FRONT\n ? OpentokFacingMode.USER\n : OpentokFacingMode.ENVIRONMENT)) ||\n undefined;\n _this.setVideoFilterPublisherSetting();\n _this.currentPublisher = OT.initPublisher(participantId, __assign(__assign(__assign({}, _this.publisherProperties), { style: __assign(__assign({}, _this.publisherProperties.style), { archiveStatusDisplayMode: 'off', audioLevelDisplayMode: 'off', backgroundImageURI: backgroundImageURI }), publishAudio: !startWithAudioMuted, publishVideo: cameraEnabled, videoSource: videoSource,\n facingMode: facingMode, mirror: utils_1.shouldMirrorCamera(_this.isMobile, selectedCamera) }), _this.videoFilterPublisherSetting), trace_1.traceError);\n _this.initializeEventHandlers();\n _this.currentPublisher.on('accessDenied', function () {\n trace_1.traceInfo('Publisher denied media permissions');\n _this.emit('mediaDeviceAccessDenied', OpentokPublisherEventMapper_1.createMediaAccessDeniedEvent(true));\n });\n return _this;\n }\n return OpentokVideoPublisher;\n}(OpentokPublisher_1.OpentokPublisher));\nexports.OpentokVideoPublisher = OpentokVideoPublisher;\n","import {VideoSettings} from '../types';\nimport {shouldMirrorCamera} from '../utils';\nimport {traceError, traceInfo} from './trace';\nimport {createCameraSourceChangedEvent, createMediaAccessDeniedEvent} from './OpentokPublisherEventMapper';\nimport {MultiPartyCameraTypes} from '../../MediaConstants';\nimport {VideoFilterType} from '@techsee/techsee-common/lib/constants/account.constants';\nimport {IMediaCapablities, IOpentokPublisher, OpentokPublisher, OpentokPublisherOptions} from './OpentokPublisher';\nimport {waitAfterClearingFilter} from '../../MediaUtils/Compatibility';\n// The preferred camera position to use for the video source\nenum OpentokFacingMode {\n USER = 'user',\n ENVIRONMENT = 'environment'\n}\n\nconst OPENTOK_MIRRORED_CSS_CLASS = 'OT_mirrored';\n\nexport interface IOpentokVideoPublisher extends IOpentokPublisher {\n publishAudio: (enabled: boolean) => void;\n switchCamera: () => Promise<void>;\n}\nexport class OpentokVideoPublisher extends OpentokPublisher implements IOpentokVideoPublisher {\n protected currentPublisher: OT.Publisher;\n private videoFilter?: VideoFilterType;\n private videoFilterPublisherSetting?: {videoFilter?: {type: VideoFilterType}};\n\n constructor(\n videoSettings: VideoSettings,\n options: OpentokPublisherOptions,\n mediaCapabilitiesService: IMediaCapablities\n ) {\n super(options, mediaCapabilitiesService);\n\n const {selectedCamera, cameraEnabled, startWithAudioMuted, videoFilter} = videoSettings;\n\n this.selectedCamera = selectedCamera;\n this.videoFilter = videoFilter;\n\n const {participantId, backgroundImageURI} = options;\n const videoSource = (!this.isMobile && this.getVideoSourceId(selectedCamera)) || undefined;\n const facingMode =\n (this.isMobile &&\n !videoSource &&\n (selectedCamera === MultiPartyCameraTypes.FRONT\n ? OpentokFacingMode.USER\n : OpentokFacingMode.ENVIRONMENT)) ||\n undefined;\n\n this.setVideoFilterPublisherSetting();\n this.currentPublisher = OT.initPublisher(\n participantId,\n {\n ...this.publisherProperties,\n style: {\n ...this.publisherProperties.style,\n archiveStatusDisplayMode: 'off',\n audioLevelDisplayMode: 'off',\n backgroundImageURI\n },\n publishAudio: !startWithAudioMuted,\n publishVideo: cameraEnabled,\n videoSource,\n facingMode,\n mirror: shouldMirrorCamera(this.isMobile, selectedCamera),\n ...this.videoFilterPublisherSetting\n },\n traceError\n );\n\n this.initializeEventHandlers();\n this.currentPublisher.on('accessDenied', () => {\n traceInfo('Publisher denied media permissions');\n\n this.emit('mediaDeviceAccessDenied', createMediaAccessDeniedEvent(true));\n });\n }\n\n public publishAudio = (enabled: boolean): void => this.currentPublisher.publishAudio(enabled);\n\n public switchCamera = async (): Promise<void> => {\n if (!this.mediaCapabilitiesService.supportSwitchCamera) {\n throw new Error('Not Support switch camera');\n }\n\n try {\n const newSelectedCamera =\n this.selectedCamera === MultiPartyCameraTypes.BACK\n ? MultiPartyCameraTypes.FRONT\n : MultiPartyCameraTypes.BACK;\n const newVideoSourceId = this.getVideoSourceId(newSelectedCamera);\n\n if (this.currentPublisher.getVideoFilter()) {\n await this.currentPublisher.clearVideoFilter();\n await waitAfterClearingFilter();\n }\n await this.currentPublisher.setVideoSource(newVideoSourceId);\n\n if (shouldMirrorCamera(!this.isMobile, newSelectedCamera)) {\n this.currentPublisher.element?.classList.add(OPENTOK_MIRRORED_CSS_CLASS);\n } else {\n this.currentPublisher.element?.classList.remove(OPENTOK_MIRRORED_CSS_CLASS);\n }\n\n this.selectedCamera = newSelectedCamera;\n this.setVideoFilterPublisherSetting();\n\n if (this.selectedCamera === MultiPartyCameraTypes.FRONT && this.videoFilterPublisherSetting?.videoFilter) {\n await this.currentPublisher.applyVideoFilter(this.videoFilterPublisherSetting.videoFilter);\n }\n this.emit(\n 'cameraSourceChanged',\n createCameraSourceChangedEvent(this.currentPublisher.stream, this.selectedCamera, this.isMobile)\n );\n } catch (err) {\n traceError(JSON.stringify(err));\n throw err;\n }\n };\n\n private getVideoSourceId = (selectedCamera: MultiPartyCameraTypes): string => {\n traceInfo('getVideoSourceId: ', selectedCamera);\n\n return selectedCamera === MultiPartyCameraTypes.FRONT\n ? this.mediaCapabilitiesService.frontCameraDeviceId\n : this.mediaCapabilitiesService.backCameraDeviceId;\n };\n\n private setVideoFilterPublisherSetting = (): void => {\n this.videoFilterPublisherSetting =\n this.selectedCamera === MultiPartyCameraTypes.FRONT && this.videoFilter === VideoFilterType.BLUR\n ? {videoFilter: {type: VideoFilterType.BLUR}}\n : {};\n };\n\n public publishVideo = (enabled: boolean): void => this.currentPublisher.publishVideo(enabled);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/opentok/trace.js","../src/MultiParty/opentok/trace.ts"],"names":["Object","defineProperty","exports","value","traceInfo","traceError","MediaTracer_1","require","trace","getMediaTracer","error","JSON","stringify","params","_i","arguments","length","info"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;
|
|
1
|
+
{"version":3,"sources":["MultiParty/opentok/trace.js","../src/MultiParty/opentok/trace.ts"],"names":["Object","defineProperty","exports","value","traceInfo","traceError","MediaTracer_1","require","trace","getMediaTracer","error","JSON","stringify","params","_i","arguments","length","info"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,SAAR,GAAoBF,OAAO,CAACG,UAAR,GAAqB,KAAK,CAA9C;;ACFA,IAAAC,aAAA,GAAAC,OAAA,CAAA,gBAAA,CAAA;;AAEA,IAAMC,KAAK,GAAGF,aAAA,CAAAG,cAAA,CAAe,0BAAf,CAAd;;AAEO,IAAMJ,UAAU,GAAG,SAAbA,UAAa,CAACK,KAAD,EAAY;AAClCF,EAAAA,KAAK,CAACE,KAAN,CAAYC,IAAI,CAACC,SAAL,CAAeF,KAAf,CAAZ;AACH,CAFM;;AAAMR,OAAA,CAAAG,UAAA,GAAUA,UAAV;;AAIN,IAAMD,SAAS,GAAG,SAAZA,SAAY,GAAA;AAAC,MAAAS,MAAA,GAAA,EAAA;;ADGtB,OCHsB,IAAAC,EAAA,GAAA,CDGtB,ECHsBA,EAAA,GAAAC,SAAA,CAAAC,MDGtB,ECHsBF,EAAA,EDGtB,ECHoC;AAAdD,IAAAA,MAAA,CAAAC,EAAA,CAAA,GAAAC,SAAA,CAAAD,EAAA,CAAA;ADKrB;;ACJDN,EAAAA,KAAK,CAACS,IAAN,CAAWJ,MAAX;AACH,CAFM;;AAAMX,OAAA,CAAAE,SAAA,GAASA,SAAT","file":"trace.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.traceInfo = exports.traceError = void 0;\nvar MediaTracer_1 = require(\"../MediaTracer\");\nvar trace = MediaTracer_1.getMediaTracer('OpentokMultipartyService');\nvar traceError = function (error) {\n trace.error(JSON.stringify(error));\n};\nexports.traceError = traceError;\nvar traceInfo = function () {\n var params = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n params[_i] = arguments[_i];\n }\n trace.info(params);\n};\nexports.traceInfo = traceInfo;\n","import {getMediaTracer} from '../MediaTracer';\n\nconst trace = getMediaTracer('OpentokMultipartyService');\n\nexport const traceError = (error?: any): void => {\n trace.error(JSON.stringify(error));\n};\n\nexport const traceInfo = (...params: any): void => {\n trace.info(params);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["MultiParty/types.js"],"names":["Object","defineProperty","exports","value"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n\n//# sourceMappingURL=types.js.map\n"],"file":"types.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiParty/utils.js"],"names":["Object","defineProperty","exports","value","isSameStream","shouldMirrorCamera","decodeClientRole","MediaConstants_1","require","data","JSON","parse","clientRole","SessionClientRole","USER","isMobile","selectedCamera","MultiPartyCameraTypes","BACK","s1","s2","connectionId","videoType"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;
|
|
1
|
+
{"version":3,"sources":["MultiParty/utils.js"],"names":["Object","defineProperty","exports","value","isSameStream","shouldMirrorCamera","decodeClientRole","MediaConstants_1","require","data","JSON","parse","clientRole","SessionClientRole","USER","isMobile","selectedCamera","MultiPartyCameraTypes","BACK","s1","s2","connectionId","videoType"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,YAAR,GAAuBF,OAAO,CAACG,kBAAR,GAA6BH,OAAO,CAACI,gBAAR,GAA2B,KAAK,CAApF;;AACA,IAAIC,gBAAgB,GAAGC,OAAO,CAAC,mBAAD,CAA9B;;AACA,SAASF,gBAAT,CAA0BG,IAA1B,EAAgC;AAC5B,SAAOC,IAAI,CAACC,KAAL,CAAWF,IAAX,EAAiBG,UAAjB,IAA+BL,gBAAgB,CAACM,iBAAjB,CAAmCC,IAAzE;AACH;;AACDZ,OAAO,CAACI,gBAAR,GAA2BA,gBAA3B;;AACA,SAASD,kBAAT,CAA4BU,QAA5B,EAAsCC,cAAtC,EAAsD;AAClD,SAAO,CAACD,QAAD,IAAaC,cAAc,KAAKT,gBAAgB,CAACU,qBAAjB,CAAuCC,IAA9E;AACH;;AACDhB,OAAO,CAACG,kBAAR,GAA6BA,kBAA7B;;AACA,SAASD,YAAT,CAAsBe,EAAtB,EAA0BC,EAA1B,EAA8B;AAC1B,SAAOD,EAAE,CAACE,YAAH,KAAoBD,EAAE,CAACC,YAAvB,IAAuCF,EAAE,CAACG,SAAH,KAAiBF,EAAE,CAACE,SAAlE;AACH;;AACDpB,OAAO,CAACE,YAAR,GAAuBA,YAAvB","file":"utils.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSameStream = exports.shouldMirrorCamera = exports.decodeClientRole = void 0;\nvar MediaConstants_1 = require(\"../MediaConstants\");\nfunction decodeClientRole(data) {\n return JSON.parse(data).clientRole || MediaConstants_1.SessionClientRole.USER;\n}\nexports.decodeClientRole = decodeClientRole;\nfunction shouldMirrorCamera(isMobile, selectedCamera) {\n return !isMobile || selectedCamera !== MediaConstants_1.MultiPartyCameraTypes.BACK;\n}\nexports.shouldMirrorCamera = shouldMirrorCamera;\nfunction isSameStream(s1, s2) {\n return s1.connectionId === s2.connectionId && s1.videoType === s2.videoType;\n}\nexports.isSameStream = isSameStream;\n\n//# sourceMappingURL=utils.js.map\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["TechseeMediaStream.js","../src/TechseeMediaStream.ts"],"names":["Object","defineProperty","exports","value","TechseeMediaStream","mediaStreamTrack","streamType","isRemote","_isRemote","_streamType","_mediaStreamTrack","dedicatedStream","MediaStream","prototype","get","enumerable","configurable","id","kind"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;
|
|
1
|
+
{"version":3,"sources":["TechseeMediaStream.js","../src/TechseeMediaStream.ts"],"names":["Object","defineProperty","exports","value","TechseeMediaStream","mediaStreamTrack","streamType","isRemote","_isRemote","_streamType","_mediaStreamTrack","dedicatedStream","MediaStream","prototype","get","enumerable","configurable","id","kind"],"mappings":"AAAA;;AACAA,MAAM,CAACC,cAAP,CAAsBC,OAAtB,EAA+B,YAA/B,EAA6C;AAAEC,EAAAA,KAAK,EAAE;AAAT,CAA7C;AACAD,OAAO,CAACE,kBAAR,GAA6B,KAAK,CAAlC;;ACAA,IAAAA,kBAAA;AAAA;AAAA,YAAA;AAMI,WAAAA,kBAAA,CAAYC,gBAAZ,EAAgDC,UAAhD,EAA8EC,QAA9E,EAA+F;AAC3F,SAAKC,SAAL,GAAiBD,QAAjB;AACA,SAAKE,WAAL,GAAmBH,UAAnB;AACA,SAAKI,iBAAL,GAAyBL,gBAAzB;AAEA,SAAKM,eAAL,GAAuB,IAAIC,WAAJ,CAAgB,CAACP,gBAAD,CAAhB,CAAvB;AACH;;AAEDL,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,UAAJ,EAAY;ADLRC,IAAAA,GAAG,ECKP,eAAA;AACI,aAAO,KAAKN,SAAZ;AACH,KAFW;ADFRO,IAAAA,UAAU,EAAE,KCEJ;ADDRC,IAAAA,YAAY,EAAE;ACCN,GAAZ;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,UAAJ,EAAY;ADFRC,IAAAA,GAAG,ECEP,eAAA;AACI,aAAO,KAAKJ,iBAAL,CAAuBO,EAA9B;AACH,KAFW;ADCRF,IAAAA,UAAU,EAAE,KCDJ;ADERC,IAAAA,YAAY,EAAE;ACFN,GAAZ;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,YAAJ,EAAc;ADCVC,IAAAA,GAAG,ECDP,eAAA;AACI,aAAO,KAAKL,WAAZ;AACH,KAFa;ADIVM,IAAAA,UAAU,EAAE,KCJF;ADKVC,IAAAA,YAAY,EAAE;ACLJ,GAAd;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,aAAJ,EAAe;ADIXC,IAAAA,GAAG,ECJP,eAAA;AACI,aAAO,KAAKH,eAAZ;AACH,KAFc;ADOXI,IAAAA,UAAU,EAAE,KCPD;ADQXC,IAAAA,YAAY,EAAE;ACRH,GAAf;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,YAAJ,EAAc;ADOVC,IAAAA,GAAG,ECPP,eAAA;AACI,aAAO,KAAKJ,iBAAZ;AACH,KAFa;ADUVK,IAAAA,UAAU,EAAE,KCVF;ADWVC,IAAAA,YAAY,EAAE;ACXJ,GAAd;AAIAhB,EAAAA,MAAA,CAAAC,cAAA,CAAIG,kBAAA,CAAAS,SAAJ,EAAI,YAAJ,EAAc;ADUVC,IAAAA,GAAG,ECVP,eAAA;AACI,aAAO,KAAKJ,iBAAL,CAAuBQ,IAA9B;AACH,KAFa;ADaVH,IAAAA,UAAU,EAAE,KCbF;ADcVC,IAAAA,YAAY,EAAE;ACdJ,GAAd;AAGJ,SAAAZ,kBAAA;AArCA,CAAA,EAAA;;AAAaF,OAAA,CAAAE,kBAAA,GAAAA,kBAAA","file":"TechseeMediaStream.js","sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TechseeMediaStream = void 0;\nvar TechseeMediaStream = /** @class */ (function () {\n function TechseeMediaStream(mediaStreamTrack, streamType, isRemote) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n Object.defineProperty(TechseeMediaStream.prototype, \"isRemote\", {\n get: function () {\n return this._isRemote;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamId\", {\n get: function () {\n return this._mediaStreamTrack.id;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamType\", {\n get: function () {\n return this._streamType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"mediaStream\", {\n get: function () {\n return this.dedicatedStream;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"mediaTrack\", {\n get: function () {\n return this._mediaStreamTrack;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TechseeMediaStream.prototype, \"streamKind\", {\n get: function () {\n return this._mediaStreamTrack.kind;\n },\n enumerable: false,\n configurable: true\n });\n return TechseeMediaStream;\n}());\nexports.TechseeMediaStream = TechseeMediaStream;\n\n//# sourceMappingURL=TechseeMediaStream.js.map\n","import {KnownMediaStream, KnownMediaStreamKind} from './MediaConstants';\n\nexport class TechseeMediaStream {\n private readonly _mediaStreamTrack: MediaStreamTrack;\n private readonly _streamType: KnownMediaStream;\n private readonly _isRemote: boolean;\n private readonly dedicatedStream: MediaStream;\n\n constructor(mediaStreamTrack: MediaStreamTrack, streamType: KnownMediaStream, isRemote: boolean) {\n this._isRemote = isRemote;\n this._streamType = streamType;\n this._mediaStreamTrack = mediaStreamTrack;\n\n this.dedicatedStream = new MediaStream([mediaStreamTrack]);\n }\n\n get isRemote(): boolean {\n return this._isRemote;\n }\n\n get streamId(): string {\n return this._mediaStreamTrack.id;\n }\n\n get streamType(): KnownMediaStream {\n return this._streamType;\n }\n\n get mediaStream(): MediaStream {\n return this.dedicatedStream;\n }\n\n get mediaTrack(): MediaStreamTrack {\n return this._mediaStreamTrack;\n }\n\n get streamKind(): KnownMediaStreamKind {\n return this._mediaStreamTrack.kind as any;\n }\n}\n"]}
|
package/lib/qos/raw-qos.js
CHANGED
|
@@ -15,7 +15,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
15
15
|
|
|
16
16
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
17
17
|
|
|
18
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps);
|
|
18
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
19
19
|
|
|
20
20
|
var RawQos = /*#__PURE__*/function () {
|
|
21
21
|
function RawQos() {
|
package/lib/qos/raw-qos.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-qos.js","names":["RawQos","instance","VIDEO_CODECS","rawQoSEntry","enableRawEntries","bytesPrev","timestampPrev","startTimestamp","stats","self","_clearRaw","values","stat","isRemote","type","_addRaw","_parseOutStats","remote","get","remoteId","_parseInStats","_parseRelated","bytesSent","bytesReceived","servers","_parseServerStats","track","frameWidth","_parseTrack","trackId","codec","codecId","_parseCodec","raw","item","push","_dumpItem","result","parent","totalRoundTripTime","currentRoundTripTime","availableOutgoingBitrate","localCandidate","localCandidateId","_parseLocal","remoteCandidate","remoteCandidateId","_parseRemote","mimeType","index","findIndex","toLowerCase","includes","videoCodec","localIP","ip","ipAddress","localPort","port","portNumber","localProtocol","protocol","transport","remoteIP","remotePort","remoteProtocol","frameHeight","framesPerSecond","videoFrameRate","isPublisher","videoSentPackets","packetsSent","videoSentPacketsLost","packetsLost","videoSentBytes","_parseBitrate","_parseFrameRate","_parseOther","_saveSomeMetrics","timestamp","videoDuration","toFixed","isSubscriber","videoReceivedPackets","packetsReceived","videoReceivedPacketsLost","videoReceivedBytes","ssrcPrev","ssrc","framesDecodedPrev","framesDecoded","_parseVideoDuration","discardedPackets","jitter","packetsRepaired","bytes","bitrateMean","videoBitRate","totalBytes","Math","floor","framerateMean","Number","res","statsString","Object","keys","forEach","k","length"],"sources":["qos/raw-qos.js"],"sourcesContent":["'use strict';\n\nexport class RawQos {\n constructor() {\n if (RawQos.instance) {\n return RawQos.instance;\n }\n\n this.VIDEO_CODECS = ['vp9', 'vp8', 'h264'];\n this.rawQoSEntry = {};\n this.enableRawEntries = true;\n\n this.bytesPrev = null;\n this.timestampPrev = null;\n this.startTimestamp = null;\n\n RawQos.instance = this;\n }\n\n parse(stats) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n\n self.rawQoSEntry = {};\n self._clearRaw();\n\n for (const stat of stats.values()) {\n if (!stat.isRemote) {\n switch (stat.type) {\n case 'outbound-rtp': {\n self._addRaw(stat);\n self._parseOutStats(stat, self.rawQoSEntry);\n\n const remote = stats.get(stat.remoteId);\n\n if (remote) {\n self._addRaw(remote);\n self.rawQoSEntry.remote = {};\n self._parseInStats(remote, self.rawQoSEntry.remote);\n }\n\n this._parseRelated(stats, stat, self);\n break;\n }\n case 'inbound-rtp': {\n self._addRaw(stat);\n self._parseInStats(stat, self.rawQoSEntry);\n\n const remote = stats.get(stat.remoteId);\n\n if (remote) {\n self._addRaw(remote);\n self.rawQoSEntry.remote = {};\n self._parseOutStats(remote, self.rawQoSEntry.remote);\n }\n\n this._parseRelated(stats, stat, self);\n break;\n }\n case 'remote-inbound-rtp': {\n self._addRaw(stat);\n self.rawQoSEntry.remote = {};\n self._parseInStats(stat, self.rawQoSEntry.remote);\n break;\n }\n case 'remote-outbound-rtp': {\n self._addRaw(stat);\n self.rawQoSEntry.remote = {};\n self._parseOutStats(stat, self.rawQoSEntry.remote);\n break;\n }\n case 'candidate-pair': {\n if (\n (stat.bytesSent > 0 || stat.bytesReceived > 0) &&\n (!self.rawQoSEntry.servers ||\n stat.bytesSent > self.rawQoSEntry.servers.bytesSent ||\n stat.bytesReceived > self.rawQoSEntry.servers.bytesReceived)\n ) {\n self.rawQoSEntry.servers = {};\n self._addRaw(stat);\n self._parseServerStats(stat, self.rawQoSEntry.servers, stats);\n }\n break;\n }\n case 'track': {\n self.track = stat;\n break;\n }\n }\n }\n }\n\n if (!self.rawQoSEntry.frameWidth && self.track) {\n self._addRaw(self.track);\n self._parseTrack(self.track, self.rawQoSEntry);\n }\n self.track = null;\n\n return self.rawQoSEntry;\n }\n\n _parseRelated(stats, stat, self) {\n const track = stats.get(stat.trackId);\n\n if (track) {\n self._addRaw(track);\n self._parseTrack(track, self.rawQoSEntry);\n }\n\n const codec = stats.get(stat.codecId);\n\n if (codec) {\n self._addRaw(codec);\n self._parseCodec(codec, self.rawQoSEntry);\n }\n }\n\n _clearRaw() {\n if (this.enableRawEntries) {\n this.rawQoSEntry.raw = [];\n }\n }\n\n _addRaw(item) {\n if (this.enableRawEntries && item) {\n if (!this.rawQoSEntry.raw) {\n this.rawQoSEntry.raw = [];\n }\n\n this.rawQoSEntry.raw.push(this._dumpItem(item));\n }\n }\n\n _parseServerStats(result, parent, stats) {\n parent.bytesSent = result.bytesSent;\n parent.bytesReceived = result.bytesReceived;\n if (typeof result.totalRoundTripTime === 'number') {\n parent.totalRoundTripTime = result.totalRoundTripTime;\n }\n if (typeof result.currentRoundTripTime === 'number') {\n parent.currentRoundTripTime = result.currentRoundTripTime;\n }\n if (typeof result.availableOutgoingBitrate === 'number') {\n parent.availableOutgoingBitrate = result.availableOutgoingBitrate;\n }\n\n const localCandidate = stats.get(result.localCandidateId);\n\n if (localCandidate) {\n this._addRaw(localCandidate);\n this._parseLocal(localCandidate, parent);\n }\n\n const remoteCandidate = stats.get(result.remoteCandidateId);\n\n if (remoteCandidate) {\n this._addRaw(remoteCandidate);\n this._parseRemote(remoteCandidate, parent);\n }\n }\n\n _parseCodec(result, parent) {\n if (result.mimeType) {\n const index = this.VIDEO_CODECS.findIndex((codec) => result.mimeType.toLowerCase().includes(codec));\n\n if (index >= 0) {\n parent.videoCodec = this.VIDEO_CODECS[index];\n }\n }\n }\n\n _parseLocal(result, parent) {\n parent.localIP = result.ip || result.ipAddress;\n parent.localPort = result.port || result.portNumber;\n parent.localProtocol = result.protocol || result.transport;\n }\n\n _parseRemote(result, parent) {\n parent.remoteIP = result.ip || result.ipAddress;\n parent.remotePort = result.port || result.portNumber;\n parent.remoteProtocol = result.protocol || result.transport;\n }\n\n _parseTrack(result, parent) {\n if (typeof result.frameWidth === 'number') {\n parent.frameWidth = result.frameWidth;\n }\n if (typeof result.frameHeight === 'number') {\n parent.frameHeight = result.frameHeight;\n }\n if (typeof result.framesPerSecond === 'number') {\n parent.videoFrameRate = result.framesPerSecond;\n }\n }\n\n _parseOutStats(result, parent) {\n parent.isPublisher = true;\n parent.videoSentPackets = result.packetsSent;\n parent.videoSentPacketsLost = result.packetsLost;\n parent.videoSentBytes = result.bytesSent;\n this._parseBitrate(result, parent, parent.videoSentBytes);\n this._parseFrameRate(result, parent, parent.videoSentBytes);\n this._parseOther(result, parent);\n this._saveSomeMetrics(parent, result);\n }\n\n _parseVideoDuration(result, parent) {\n if (!this.startTimestamp) {\n this.startTimestamp = result.timestamp;\n }\n parent.videoDuration = ((result.timestamp - this.startTimestamp) / 1000).toFixed(2);\n }\n\n _parseInStats(result, parent) {\n parent.isSubscriber = true;\n parent.videoReceivedPackets = result.packetsReceived;\n parent.videoReceivedPacketsLost = result.packetsLost;\n parent.videoReceivedBytes = result.bytesReceived;\n this._parseBitrate(result, parent, parent.videoReceivedBytes);\n this._parseFrameRate(result, parent, parent.videoReceivedBytes);\n this._parseOther(result, parent);\n this._saveSomeMetrics(parent, result);\n }\n\n _saveSomeMetrics(parent, result) {\n if (parent === this.rawQoSEntry) {\n this.bytesPrev = parent.videoReceivedBytes;\n this.timestampPrev = result.timestamp;\n this.ssrcPrev = result.ssrc;\n this.framesDecodedPrev = result.framesDecoded;\n this._parseVideoDuration(result, parent);\n }\n }\n\n _parseOther(result, parent) {\n parent.timestamp = result.timestamp;\n parent.ssrc = result.ssrc;\n if (typeof result.discardedPackets === 'number') {\n parent.discardedPackets = result.discardedPackets;\n }\n if (typeof result.jitter === 'number') {\n parent.jitter = result.jitter;\n }\n if (typeof result.packetsRepaired === 'number') {\n parent.packetsRepaired = result.packetsRepaired;\n }\n }\n\n _parseBitrate(result, parent, bytes) {\n if (bytes > 0) {\n if (typeof result.bitrateMean === 'number') {\n parent.videoBitRate = result.bitrateMean.toFixed(2);\n } else if (this.bytesPrev && this.timestampPrev) {\n let totalBytes = bytes;\n\n if (result.ssrc === this.ssrcPrev && bytes > this.bytesPrev) {\n totalBytes = bytes - this.bytesPrev;\n }\n\n parent.videoBitRate = Math.floor((8 * totalBytes) / ((result.timestamp - this.timestampPrev) / 1000));\n }\n } else {\n parent.videoBitRate = 0;\n }\n }\n\n _parseFrameRate(result, parent, bytes) {\n if (bytes > 0) {\n if (typeof result.framerateMean === 'number') {\n parent.videoFrameRate = Number(result.framerateMean).toFixed(2);\n } else if (this.framesDecodedPrev && this.timestampPrev) {\n if (result.framesDecoded >= this.framesDecodedPrev && result.timestamp > this.timestampPrev) {\n parent.videoFrameRate = (\n (result.framesDecoded - this.framesDecodedPrev) /\n ((result.timestamp - this.timestampPrev) / 1000)\n ).toFixed(2);\n }\n }\n } else {\n parent.videoFrameRate = 0;\n }\n }\n\n _dumpItem(res) {\n let statsString = '{';\n let index = 0;\n\n Object.keys(res).forEach((k) => {\n statsString += `\"${k}\": \"${res[k]}\"`;\n if (++index !== res.length) {\n statsString += ',';\n }\n });\n statsString += '}';\n\n return statsString;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["qos/raw-qos.js"],"names":["RawQos","instance","VIDEO_CODECS","rawQoSEntry","enableRawEntries","bytesPrev","timestampPrev","startTimestamp","stats","self","_clearRaw","values","stat","isRemote","type","_addRaw","_parseOutStats","remote","get","remoteId","_parseInStats","_parseRelated","bytesSent","bytesReceived","servers","_parseServerStats","track","frameWidth","_parseTrack","trackId","codec","codecId","_parseCodec","raw","item","push","_dumpItem","result","parent","totalRoundTripTime","currentRoundTripTime","availableOutgoingBitrate","localCandidate","localCandidateId","_parseLocal","remoteCandidate","remoteCandidateId","_parseRemote","mimeType","index","findIndex","toLowerCase","includes","videoCodec","localIP","ip","ipAddress","localPort","port","portNumber","localProtocol","protocol","transport","remoteIP","remotePort","remoteProtocol","frameHeight","framesPerSecond","videoFrameRate","isPublisher","videoSentPackets","packetsSent","videoSentPacketsLost","packetsLost","videoSentBytes","_parseBitrate","_parseFrameRate","_parseOther","_saveSomeMetrics","timestamp","videoDuration","toFixed","isSubscriber","videoReceivedPackets","packetsReceived","videoReceivedPacketsLost","videoReceivedBytes","ssrcPrev","ssrc","framesDecodedPrev","framesDecoded","_parseVideoDuration","discardedPackets","jitter","packetsRepaired","bytes","bitrateMean","videoBitRate","totalBytes","Math","floor","framerateMean","Number","res","statsString","Object","keys","forEach","k","length"],"mappings":"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","sourcesContent":["'use strict';\n\nexport class RawQos {\n constructor() {\n if (RawQos.instance) {\n return RawQos.instance;\n }\n\n this.VIDEO_CODECS = ['vp9', 'vp8', 'h264'];\n this.rawQoSEntry = {};\n this.enableRawEntries = true;\n\n this.bytesPrev = null;\n this.timestampPrev = null;\n this.startTimestamp = null;\n\n RawQos.instance = this;\n }\n\n parse(stats) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n\n self.rawQoSEntry = {};\n self._clearRaw();\n\n for (const stat of stats.values()) {\n if (!stat.isRemote) {\n switch (stat.type) {\n case 'outbound-rtp': {\n self._addRaw(stat);\n self._parseOutStats(stat, self.rawQoSEntry);\n\n const remote = stats.get(stat.remoteId);\n\n if (remote) {\n self._addRaw(remote);\n self.rawQoSEntry.remote = {};\n self._parseInStats(remote, self.rawQoSEntry.remote);\n }\n\n this._parseRelated(stats, stat, self);\n break;\n }\n case 'inbound-rtp': {\n self._addRaw(stat);\n self._parseInStats(stat, self.rawQoSEntry);\n\n const remote = stats.get(stat.remoteId);\n\n if (remote) {\n self._addRaw(remote);\n self.rawQoSEntry.remote = {};\n self._parseOutStats(remote, self.rawQoSEntry.remote);\n }\n\n this._parseRelated(stats, stat, self);\n break;\n }\n case 'remote-inbound-rtp': {\n self._addRaw(stat);\n self.rawQoSEntry.remote = {};\n self._parseInStats(stat, self.rawQoSEntry.remote);\n break;\n }\n case 'remote-outbound-rtp': {\n self._addRaw(stat);\n self.rawQoSEntry.remote = {};\n self._parseOutStats(stat, self.rawQoSEntry.remote);\n break;\n }\n case 'candidate-pair': {\n if (\n (stat.bytesSent > 0 || stat.bytesReceived > 0) &&\n (!self.rawQoSEntry.servers ||\n stat.bytesSent > self.rawQoSEntry.servers.bytesSent ||\n stat.bytesReceived > self.rawQoSEntry.servers.bytesReceived)\n ) {\n self.rawQoSEntry.servers = {};\n self._addRaw(stat);\n self._parseServerStats(stat, self.rawQoSEntry.servers, stats);\n }\n break;\n }\n case 'track': {\n self.track = stat;\n break;\n }\n }\n }\n }\n\n if (!self.rawQoSEntry.frameWidth && self.track) {\n self._addRaw(self.track);\n self._parseTrack(self.track, self.rawQoSEntry);\n }\n self.track = null;\n\n return self.rawQoSEntry;\n }\n\n _parseRelated(stats, stat, self) {\n const track = stats.get(stat.trackId);\n\n if (track) {\n self._addRaw(track);\n self._parseTrack(track, self.rawQoSEntry);\n }\n\n const codec = stats.get(stat.codecId);\n\n if (codec) {\n self._addRaw(codec);\n self._parseCodec(codec, self.rawQoSEntry);\n }\n }\n\n _clearRaw() {\n if (this.enableRawEntries) {\n this.rawQoSEntry.raw = [];\n }\n }\n\n _addRaw(item) {\n if (this.enableRawEntries && item) {\n if (!this.rawQoSEntry.raw) {\n this.rawQoSEntry.raw = [];\n }\n\n this.rawQoSEntry.raw.push(this._dumpItem(item));\n }\n }\n\n _parseServerStats(result, parent, stats) {\n parent.bytesSent = result.bytesSent;\n parent.bytesReceived = result.bytesReceived;\n if (typeof result.totalRoundTripTime === 'number') {\n parent.totalRoundTripTime = result.totalRoundTripTime;\n }\n if (typeof result.currentRoundTripTime === 'number') {\n parent.currentRoundTripTime = result.currentRoundTripTime;\n }\n if (typeof result.availableOutgoingBitrate === 'number') {\n parent.availableOutgoingBitrate = result.availableOutgoingBitrate;\n }\n\n const localCandidate = stats.get(result.localCandidateId);\n\n if (localCandidate) {\n this._addRaw(localCandidate);\n this._parseLocal(localCandidate, parent);\n }\n\n const remoteCandidate = stats.get(result.remoteCandidateId);\n\n if (remoteCandidate) {\n this._addRaw(remoteCandidate);\n this._parseRemote(remoteCandidate, parent);\n }\n }\n\n _parseCodec(result, parent) {\n if (result.mimeType) {\n const index = this.VIDEO_CODECS.findIndex((codec) => result.mimeType.toLowerCase().includes(codec));\n\n if (index >= 0) {\n parent.videoCodec = this.VIDEO_CODECS[index];\n }\n }\n }\n\n _parseLocal(result, parent) {\n parent.localIP = result.ip || result.ipAddress;\n parent.localPort = result.port || result.portNumber;\n parent.localProtocol = result.protocol || result.transport;\n }\n\n _parseRemote(result, parent) {\n parent.remoteIP = result.ip || result.ipAddress;\n parent.remotePort = result.port || result.portNumber;\n parent.remoteProtocol = result.protocol || result.transport;\n }\n\n _parseTrack(result, parent) {\n if (typeof result.frameWidth === 'number') {\n parent.frameWidth = result.frameWidth;\n }\n if (typeof result.frameHeight === 'number') {\n parent.frameHeight = result.frameHeight;\n }\n if (typeof result.framesPerSecond === 'number') {\n parent.videoFrameRate = result.framesPerSecond;\n }\n }\n\n _parseOutStats(result, parent) {\n parent.isPublisher = true;\n parent.videoSentPackets = result.packetsSent;\n parent.videoSentPacketsLost = result.packetsLost;\n parent.videoSentBytes = result.bytesSent;\n this._parseBitrate(result, parent, parent.videoSentBytes);\n this._parseFrameRate(result, parent, parent.videoSentBytes);\n this._parseOther(result, parent);\n this._saveSomeMetrics(parent, result);\n }\n\n _parseVideoDuration(result, parent) {\n if (!this.startTimestamp) {\n this.startTimestamp = result.timestamp;\n }\n parent.videoDuration = ((result.timestamp - this.startTimestamp) / 1000).toFixed(2);\n }\n\n _parseInStats(result, parent) {\n parent.isSubscriber = true;\n parent.videoReceivedPackets = result.packetsReceived;\n parent.videoReceivedPacketsLost = result.packetsLost;\n parent.videoReceivedBytes = result.bytesReceived;\n this._parseBitrate(result, parent, parent.videoReceivedBytes);\n this._parseFrameRate(result, parent, parent.videoReceivedBytes);\n this._parseOther(result, parent);\n this._saveSomeMetrics(parent, result);\n }\n\n _saveSomeMetrics(parent, result) {\n if (parent === this.rawQoSEntry) {\n this.bytesPrev = parent.videoReceivedBytes;\n this.timestampPrev = result.timestamp;\n this.ssrcPrev = result.ssrc;\n this.framesDecodedPrev = result.framesDecoded;\n this._parseVideoDuration(result, parent);\n }\n }\n\n _parseOther(result, parent) {\n parent.timestamp = result.timestamp;\n parent.ssrc = result.ssrc;\n if (typeof result.discardedPackets === 'number') {\n parent.discardedPackets = result.discardedPackets;\n }\n if (typeof result.jitter === 'number') {\n parent.jitter = result.jitter;\n }\n if (typeof result.packetsRepaired === 'number') {\n parent.packetsRepaired = result.packetsRepaired;\n }\n }\n\n _parseBitrate(result, parent, bytes) {\n if (bytes > 0) {\n if (typeof result.bitrateMean === 'number') {\n parent.videoBitRate = result.bitrateMean.toFixed(2);\n } else if (this.bytesPrev && this.timestampPrev) {\n let totalBytes = bytes;\n\n if (result.ssrc === this.ssrcPrev && bytes > this.bytesPrev) {\n totalBytes = bytes - this.bytesPrev;\n }\n\n parent.videoBitRate = Math.floor((8 * totalBytes) / ((result.timestamp - this.timestampPrev) / 1000));\n }\n } else {\n parent.videoBitRate = 0;\n }\n }\n\n _parseFrameRate(result, parent, bytes) {\n if (bytes > 0) {\n if (typeof result.framerateMean === 'number') {\n parent.videoFrameRate = Number(result.framerateMean).toFixed(2);\n } else if (this.framesDecodedPrev && this.timestampPrev) {\n if (result.framesDecoded >= this.framesDecodedPrev && result.timestamp > this.timestampPrev) {\n parent.videoFrameRate = (\n (result.framesDecoded - this.framesDecodedPrev) /\n ((result.timestamp - this.timestampPrev) / 1000)\n ).toFixed(2);\n }\n }\n } else {\n parent.videoFrameRate = 0;\n }\n }\n\n _dumpItem(res) {\n let statsString = '{';\n let index = 0;\n\n Object.keys(res).forEach((k) => {\n statsString += `\"${k}\": \"${res[k]}\"`;\n if (++index !== res.length) {\n statsString += ',';\n }\n });\n statsString += '}';\n\n return statsString;\n }\n}\n"],"file":"raw-qos.js"}
|
package/lib/webrtc-ie-shim.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof2(obj) { "@babel/helpers - typeof";
|
|
3
|
+
function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
|
|
4
4
|
|
|
5
5
|
(function (f) {
|
|
6
6
|
if ((typeof exports === "undefined" ? "undefined" : _typeof2(exports)) === "object" && typeof module !== "undefined") {
|