@webex/plugin-meetings 3.10.0-next.7 → 3.10.0-next.9
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/annotation/annotation.types.js.map +1 -1
- package/dist/annotation/constants.js.map +1 -1
- package/dist/annotation/index.js +19 -22
- package/dist/annotation/index.js.map +1 -1
- package/dist/breakouts/breakout.js +6 -6
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/collection.js.map +1 -1
- package/dist/breakouts/edit-lock-error.js +9 -11
- package/dist/breakouts/edit-lock-error.js.map +1 -1
- package/dist/breakouts/events.js.map +1 -1
- package/dist/breakouts/index.js +126 -127
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/request.js +6 -8
- package/dist/breakouts/request.js.map +1 -1
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/common/browser-detection.js.map +1 -1
- package/dist/common/collection.js +1 -2
- package/dist/common/collection.js.map +1 -1
- package/dist/common/config.js.map +1 -1
- package/dist/common/errors/captcha-error.js +9 -11
- package/dist/common/errors/captcha-error.js.map +1 -1
- package/dist/common/errors/intent-to-join.js +10 -12
- package/dist/common/errors/intent-to-join.js.map +1 -1
- package/dist/common/errors/join-forbidden-error.js +10 -12
- package/dist/common/errors/join-forbidden-error.js.map +1 -1
- package/dist/common/errors/join-meeting.js +10 -12
- package/dist/common/errors/join-meeting.js.map +1 -1
- package/dist/common/errors/join-webinar-error.js +9 -11
- package/dist/common/errors/join-webinar-error.js.map +1 -1
- package/dist/common/errors/media.js +9 -11
- package/dist/common/errors/media.js.map +1 -1
- package/dist/common/errors/multistream-not-supported-error.js +9 -11
- package/dist/common/errors/multistream-not-supported-error.js.map +1 -1
- package/dist/common/errors/no-meeting-info.js +9 -11
- package/dist/common/errors/no-meeting-info.js.map +1 -1
- package/dist/common/errors/parameter.js +11 -14
- package/dist/common/errors/parameter.js.map +1 -1
- package/dist/common/errors/password-error.js +9 -11
- package/dist/common/errors/password-error.js.map +1 -1
- package/dist/common/errors/permission.js +9 -11
- package/dist/common/errors/permission.js.map +1 -1
- package/dist/common/errors/reclaim-host-role-errors.js +32 -38
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -1
- package/dist/common/errors/reconnection-not-started.js +5 -6
- package/dist/common/errors/reconnection-not-started.js.map +1 -1
- package/dist/common/errors/reconnection.js +9 -11
- package/dist/common/errors/reconnection.js.map +1 -1
- package/dist/common/errors/stats.js +9 -11
- package/dist/common/errors/stats.js.map +1 -1
- package/dist/common/errors/webex-errors.js +20 -29
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/errors/webex-meetings-error.js +9 -12
- package/dist/common/errors/webex-meetings-error.js.map +1 -1
- package/dist/common/events/events-scope.js +9 -10
- package/dist/common/events/events-scope.js.map +1 -1
- package/dist/common/events/events.js +9 -10
- package/dist/common/events/events.js.map +1 -1
- package/dist/common/events/trigger-proxy.js.map +1 -1
- package/dist/common/events/util.js.map +1 -1
- package/dist/common/logs/logger-config.js.map +1 -1
- package/dist/common/logs/logger-proxy.js.map +1 -1
- package/dist/common/logs/request.js +17 -17
- package/dist/common/logs/request.js.map +1 -1
- package/dist/common/queue.js +1 -2
- package/dist/common/queue.js.map +1 -1
- package/dist/config.js +0 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +0 -5
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.js.map +1 -1
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.js +1 -2
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.js +1 -2
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js.map +1 -1
- package/dist/interceptors/locusRetry.js +6 -8
- package/dist/interceptors/locusRetry.js.map +1 -1
- package/dist/interceptors/locusRouteToken.js +6 -8
- package/dist/interceptors/locusRouteToken.js.map +1 -1
- package/dist/interpretation/collection.js.map +1 -1
- package/dist/interpretation/index.js +1 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/interpretation/siLanguage.js.map +1 -1
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.js.map +1 -1
- package/dist/locus-info/fullState.js.map +1 -1
- package/dist/locus-info/hostUtils.js.map +1 -1
- package/dist/locus-info/index.js +40 -46
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +3 -4
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/MediaConnectionAwaiter.js +1 -2
- package/dist/media/MediaConnectionAwaiter.js.map +1 -1
- package/dist/media/index.js +0 -2
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +15 -17
- package/dist/media/properties.js.map +1 -1
- package/dist/media/util.js.map +1 -1
- package/dist/meeting/brbState.js +8 -9
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/connectionStateHandler.js +10 -13
- package/dist/meeting/connectionStateHandler.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +1514 -1512
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.js +13 -17
- package/dist/meeting/locusMediaRequest.js.map +1 -1
- package/dist/meeting/muteState.js +11 -12
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +101 -104
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/request.type.js.map +1 -1
- package/dist/meeting/state.js.map +1 -1
- package/dist/meeting/type.js.map +1 -1
- package/dist/meeting/util.js +23 -23
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting/voicea-meeting.js +3 -3
- package/dist/meeting/voicea-meeting.js.map +1 -1
- package/dist/meeting-info/collection.js +7 -10
- package/dist/meeting-info/collection.js.map +1 -1
- package/dist/meeting-info/index.js +1 -2
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +135 -146
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/request.js +1 -2
- package/dist/meeting-info/request.js.map +1 -1
- package/dist/meeting-info/util.js +36 -37
- package/dist/meeting-info/util.js.map +1 -1
- package/dist/meeting-info/utilv2.js +30 -31
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +6 -8
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +89 -93
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/meetings.types.js.map +1 -1
- package/dist/meetings/request.js +6 -8
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +25 -23
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +1 -2
- package/dist/member/index.js.map +1 -1
- package/dist/member/types.js +6 -3
- package/dist/member/types.js.map +1 -1
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +1 -2
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +18 -21
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +8 -11
- package/dist/members/request.js.map +1 -1
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.js +3 -4
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -2
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +34 -45
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/receiveSlotManager.js +8 -9
- package/dist/multistream/receiveSlotManager.js.map +1 -1
- package/dist/multistream/remoteMedia.js +12 -15
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +1 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +122 -123
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +29 -30
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/personal-meeting-room/index.js +16 -19
- package/dist/personal-meeting-room/index.js.map +1 -1
- package/dist/personal-meeting-room/request.js +7 -10
- package/dist/personal-meeting-room/request.js.map +1 -1
- package/dist/personal-meeting-room/util.js.map +1 -1
- package/dist/reachability/clusterReachability.js +36 -39
- package/dist/reachability/clusterReachability.js.map +1 -1
- package/dist/reachability/index.js +203 -205
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/reachability.types.js.map +1 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js.map +1 -1
- package/dist/reactions/constants.js.map +1 -1
- package/dist/reactions/reactions.js.map +1 -1
- package/dist/reactions/reactions.type.js.map +1 -1
- package/dist/reconnection-manager/index.js +178 -176
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/recording-controller/enums.js.map +1 -1
- package/dist/recording-controller/index.js +1 -2
- package/dist/recording-controller/index.js.map +1 -1
- package/dist/recording-controller/util.js.map +1 -1
- package/dist/roap/index.js +12 -15
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +24 -26
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +75 -76
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/roap/types.js.map +1 -1
- package/dist/transcription/index.js +4 -5
- package/dist/transcription/index.js.map +1 -1
- package/dist/webinar/collection.js +1 -2
- package/dist/webinar/collection.js.map +1 -1
- package/dist/webinar/index.js +148 -158
- package/dist/webinar/index.js.map +1 -1
- package/package.json +13 -13
|
@@ -11,20 +11,20 @@ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/
|
|
|
11
11
|
var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
|
|
12
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
13
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
|
15
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
16
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
17
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
18
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
19
|
-
var _classPrivateFieldGet2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classPrivateFieldGet"));
|
|
20
|
-
var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classPrivateFieldSet"));
|
|
21
18
|
var _internalMediaCore = require("@webex/internal-media-core");
|
|
22
19
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
23
20
|
var _eventsScope = _interopRequireDefault(require("../common/events/events-scope"));
|
|
24
|
-
function
|
|
25
|
-
function _isNativeReflectConstruct() {
|
|
26
|
-
function _classPrivateFieldInitSpec(
|
|
27
|
-
function _checkPrivateRedeclaration(
|
|
21
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
22
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23
|
+
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
|
24
|
+
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
|
25
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
26
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
27
|
+
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } /* eslint-disable valid-jsdoc */
|
|
28
28
|
var ReceiveSlotEvents = exports.ReceiveSlotEvents = {
|
|
29
29
|
SourceUpdate: 'sourceUpdate',
|
|
30
30
|
MaxFsUpdate: 'maxFsUpdate'
|
|
@@ -38,8 +38,6 @@ var _sourceState = /*#__PURE__*/new _weakMap.default();
|
|
|
38
38
|
* for example some participant's main video or audio
|
|
39
39
|
*/
|
|
40
40
|
var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
41
|
-
(0, _inherits2.default)(ReceiveSlot, _EventsScope);
|
|
42
|
-
var _super = _createSuper(ReceiveSlot);
|
|
43
41
|
/**
|
|
44
42
|
* constructor - don't use it directly, you should always use meeting.receiveSlotManager.allocateSlot()
|
|
45
43
|
* to create any receive slots
|
|
@@ -51,28 +49,19 @@ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
|
51
49
|
function ReceiveSlot(mediaType, mcReceiveSlot, findMemberIdCallback) {
|
|
52
50
|
var _this;
|
|
53
51
|
(0, _classCallCheck2.default)(this, ReceiveSlot);
|
|
54
|
-
_this =
|
|
55
|
-
(0, _defineProperty2.default)(
|
|
56
|
-
(0, _defineProperty2.default)(
|
|
57
|
-
(0, _defineProperty2.default)(
|
|
58
|
-
(0, _defineProperty2.default)(
|
|
59
|
-
_classPrivateFieldInitSpec(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
});
|
|
63
|
-
_classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _csi, {
|
|
64
|
-
writable: true,
|
|
65
|
-
value: void 0
|
|
66
|
-
});
|
|
67
|
-
_classPrivateFieldInitSpec((0, _assertThisInitialized2.default)(_this), _sourceState, {
|
|
68
|
-
writable: true,
|
|
69
|
-
value: void 0
|
|
70
|
-
});
|
|
52
|
+
_this = _callSuper(this, ReceiveSlot);
|
|
53
|
+
(0, _defineProperty2.default)(_this, "mcReceiveSlot", void 0);
|
|
54
|
+
(0, _defineProperty2.default)(_this, "findMemberIdCallback", void 0);
|
|
55
|
+
(0, _defineProperty2.default)(_this, "id", void 0);
|
|
56
|
+
(0, _defineProperty2.default)(_this, "mediaType", void 0);
|
|
57
|
+
_classPrivateFieldInitSpec(_this, _memberId, void 0);
|
|
58
|
+
_classPrivateFieldInitSpec(_this, _csi, void 0);
|
|
59
|
+
_classPrivateFieldInitSpec(_this, _sourceState, void 0);
|
|
71
60
|
receiveSlotCounter += 1;
|
|
72
61
|
_this.findMemberIdCallback = findMemberIdCallback;
|
|
73
62
|
_this.mediaType = mediaType;
|
|
74
63
|
_this.mcReceiveSlot = mcReceiveSlot;
|
|
75
|
-
(
|
|
64
|
+
_classPrivateFieldSet(_sourceState, _this, 'no source');
|
|
76
65
|
_this.id = "r".concat(receiveSlotCounter);
|
|
77
66
|
_this.setupEventListeners();
|
|
78
67
|
return _this;
|
|
@@ -81,10 +70,11 @@ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
|
81
70
|
/**
|
|
82
71
|
* Getter for memberId
|
|
83
72
|
*/
|
|
84
|
-
(0,
|
|
73
|
+
(0, _inherits2.default)(ReceiveSlot, _EventsScope);
|
|
74
|
+
return (0, _createClass2.default)(ReceiveSlot, [{
|
|
85
75
|
key: "memberId",
|
|
86
76
|
get: function get() {
|
|
87
|
-
return (
|
|
77
|
+
return _classPrivateFieldGet(_memberId, this);
|
|
88
78
|
}
|
|
89
79
|
|
|
90
80
|
/**
|
|
@@ -93,7 +83,7 @@ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
|
93
83
|
}, {
|
|
94
84
|
key: "csi",
|
|
95
85
|
get: function get() {
|
|
96
|
-
return (
|
|
86
|
+
return _classPrivateFieldGet(_csi, this);
|
|
97
87
|
}
|
|
98
88
|
|
|
99
89
|
/**
|
|
@@ -119,7 +109,7 @@ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
|
119
109
|
}, {
|
|
120
110
|
key: "sourceState",
|
|
121
111
|
get: function get() {
|
|
122
|
-
return (
|
|
112
|
+
return _classPrivateFieldGet(_sourceState, this);
|
|
123
113
|
}
|
|
124
114
|
|
|
125
115
|
/**
|
|
@@ -135,13 +125,13 @@ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
|
135
125
|
};
|
|
136
126
|
this.mcReceiveSlot.on(_internalMediaCore.ReceiveSlotEvents.SourceUpdate, function (state, csi) {
|
|
137
127
|
_loggerProxy.default.logger.log("ReceiveSlot#setupEventListeners --> got source update on receive slot ".concat(_this2.id, ", mediaType=").concat(_this2.mediaType, ", csi=").concat(csi, ", state=").concat(state));
|
|
138
|
-
(
|
|
139
|
-
(
|
|
140
|
-
(
|
|
128
|
+
_classPrivateFieldSet(_memberId, _this2, csi ? _this2.findMemberIdCallback(csi) : undefined);
|
|
129
|
+
_classPrivateFieldSet(_csi, _this2, csi);
|
|
130
|
+
_classPrivateFieldSet(_sourceState, _this2, state);
|
|
141
131
|
_this2.emit(scope, ReceiveSlotEvents.SourceUpdate, {
|
|
142
|
-
state: (
|
|
143
|
-
csi: (
|
|
144
|
-
memberId: (
|
|
132
|
+
state: _classPrivateFieldGet(_sourceState, _this2),
|
|
133
|
+
csi: _classPrivateFieldGet(_csi, _this2),
|
|
134
|
+
memberId: _classPrivateFieldGet(_memberId, _this2)
|
|
145
135
|
});
|
|
146
136
|
});
|
|
147
137
|
}
|
|
@@ -150,17 +140,17 @@ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
|
150
140
|
}, {
|
|
151
141
|
key: "findMemberId",
|
|
152
142
|
value: function findMemberId() {
|
|
153
|
-
if ((
|
|
154
|
-
(
|
|
155
|
-
if ((
|
|
143
|
+
if (_classPrivateFieldGet(_memberId, this) === undefined && _classPrivateFieldGet(_csi, this)) {
|
|
144
|
+
_classPrivateFieldSet(_memberId, this, this.findMemberIdCallback(_classPrivateFieldGet(_csi, this)));
|
|
145
|
+
if (_classPrivateFieldGet(_memberId, this)) {
|
|
156
146
|
// if we found the memberId, simulate source update so that the client app knows that something's changed
|
|
157
147
|
this.emit({
|
|
158
148
|
file: 'meeting/receiveSlot',
|
|
159
149
|
function: 'findMemberId'
|
|
160
150
|
}, ReceiveSlotEvents.SourceUpdate, {
|
|
161
|
-
state: (
|
|
162
|
-
csi: (
|
|
163
|
-
memberId: (
|
|
151
|
+
state: _classPrivateFieldGet(_sourceState, this),
|
|
152
|
+
csi: _classPrivateFieldGet(_csi, this),
|
|
153
|
+
memberId: _classPrivateFieldGet(_memberId, this)
|
|
164
154
|
});
|
|
165
155
|
}
|
|
166
156
|
}
|
|
@@ -195,6 +185,5 @@ var ReceiveSlot = exports.ReceiveSlot = /*#__PURE__*/function (_EventsScope) {
|
|
|
195
185
|
return this.mcReceiveSlot;
|
|
196
186
|
}
|
|
197
187
|
}]);
|
|
198
|
-
return ReceiveSlot;
|
|
199
188
|
}(_eventsScope.default);
|
|
200
189
|
//# sourceMappingURL=receiveSlot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_internalMediaCore","require","_loggerProxy","_interopRequireDefault","_eventsScope","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","_classPrivateFieldInitSpec","obj","privateMap","value","_checkPrivateRedeclaration","set","privateCollection","has","TypeError","ReceiveSlotEvents","exports","SourceUpdate","MaxFsUpdate","receiveSlotCounter","_memberId","_weakMap","_csi","_sourceState","ReceiveSlot","_EventsScope","_inherits2","_super","mediaType","mcReceiveSlot","findMemberIdCallback","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","writable","_classPrivateFieldSet2","id","concat","setupEventListeners","_createClass2","key","get","_classPrivateFieldGet2","setMaxFs","newFs","emit","file","function","maxFs","_this2","scope","on","WcmeReceiveSlotEvents","state","csi","LoggerProxy","logger","log","undefined","memberId","findMemberId","_stringify","stream","EventsScope"],"sources":["receiveSlot.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {\n MediaType,\n ReceiveSlot as WcmeReceiveSlot,\n ReceiveSlotEvents as WcmeReceiveSlotEvents,\n StreamState,\n} from '@webex/internal-media-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nexport const ReceiveSlotEvents = {\n SourceUpdate: 'sourceUpdate',\n MaxFsUpdate: 'maxFsUpdate',\n};\n\nexport type {StreamState} from '@webex/internal-media-core';\nexport type CSI = number;\nexport type MemberId = string;\nexport type ReceiveSlotId = string;\n\nlet receiveSlotCounter = 0;\n\nexport type FindMemberIdCallback = (csi: CSI) => MemberId | undefined;\n\n/**\n * Class representing a receive slot. A single receive slot is able to receive a single track\n * for example some participant's main video or audio\n */\nexport class ReceiveSlot extends EventsScope {\n private readonly mcReceiveSlot: WcmeReceiveSlot;\n\n private readonly findMemberIdCallback: FindMemberIdCallback;\n\n public readonly id: ReceiveSlotId;\n\n public readonly mediaType: MediaType;\n\n #memberId?: MemberId;\n\n #csi?: CSI;\n\n #sourceState: StreamState;\n\n /**\n * constructor - don't use it directly, you should always use meeting.receiveSlotManager.allocateSlot()\n * to create any receive slots\n *\n * @param {MediaType} mediaType\n * @param {ReceiveSlot} mcReceiveSlot\n * @param {FindMemberIdCallback} findMemberIdCallback callback for finding memberId for given CSI\n */\n constructor(\n mediaType: MediaType,\n mcReceiveSlot: WcmeReceiveSlot,\n findMemberIdCallback: FindMemberIdCallback\n ) {\n super();\n\n receiveSlotCounter += 1;\n\n this.findMemberIdCallback = findMemberIdCallback;\n this.mediaType = mediaType;\n this.mcReceiveSlot = mcReceiveSlot;\n this.#sourceState = 'no source';\n this.id = `r${receiveSlotCounter}`;\n\n this.setupEventListeners();\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.#memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.#csi;\n }\n\n /**\n * Set the max frame size for this slot\n * @param newFs frame size\n */\n public setMaxFs(newFs) {\n // emit event for media request manager to listen to\n\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.MaxFsUpdate,\n {\n maxFs: newFs,\n }\n );\n }\n\n /**\n * Getter for sourceState\n */\n public get sourceState() {\n return this.#sourceState;\n }\n\n /**\n * registers event handlers with the underlying ReceiveSlot\n */\n private setupEventListeners() {\n const scope = {\n file: 'meeting/receiveSlot',\n function: 'setupEventListeners',\n };\n\n this.mcReceiveSlot.on(\n WcmeReceiveSlotEvents.SourceUpdate,\n (state: StreamState, csi?: number) => {\n LoggerProxy.logger.log(\n `ReceiveSlot#setupEventListeners --> got source update on receive slot ${this.id}, mediaType=${this.mediaType}, csi=${csi}, state=${state}`\n );\n this.#memberId = csi ? this.findMemberIdCallback(csi) : undefined;\n this.#csi = csi;\n this.#sourceState = state;\n\n this.emit(scope, ReceiveSlotEvents.SourceUpdate, {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n });\n }\n );\n }\n\n /** Tries to find the member id for this receive slot if it hasn't got one */\n public findMemberId() {\n if (this.#memberId === undefined && this.#csi) {\n this.#memberId = this.findMemberIdCallback(this.#csi);\n\n if (this.#memberId) {\n // if we found the memberId, simulate source update so that the client app knows that something's changed\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.SourceUpdate,\n {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n }\n );\n }\n }\n }\n\n /**\n * @returns {string} a log message used to identify the receive slot\n */\n public get logString() {\n return `ReceiveSlot - ${this.id}: ${JSON.stringify(this.mcReceiveSlot.id)}`;\n }\n\n /**\n * The MediaStream object associated with this slot.\n *\n * @returns {MediaStream} The MediaStreamTrack.\n */\n get stream(): MediaStream {\n return this.mcReceiveSlot.stream;\n }\n\n /**\n * The underlying WCME receive slot\n */\n get wcmeReceiveSlot(): WcmeReceiveSlot {\n return this.mcReceiveSlot;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_internalMediaCore","require","_loggerProxy","_interopRequireDefault","_eventsScope","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","_classPrivateFieldInitSpec","a","_checkPrivateRedeclaration","set","has","TypeError","_classPrivateFieldGet","s","get","_assertClassBrand","_classPrivateFieldSet","r","n","arguments","length","ReceiveSlotEvents","exports","SourceUpdate","MaxFsUpdate","receiveSlotCounter","_memberId","_weakMap","_csi","_sourceState","ReceiveSlot","_EventsScope","mediaType","mcReceiveSlot","findMemberIdCallback","_this","_classCallCheck2","_defineProperty2","id","concat","setupEventListeners","_inherits2","_createClass2","key","value","setMaxFs","newFs","emit","file","function","maxFs","_this2","scope","on","WcmeReceiveSlotEvents","state","csi","LoggerProxy","logger","log","undefined","memberId","findMemberId","_stringify","stream","EventsScope"],"sources":["receiveSlot.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {\n MediaType,\n ReceiveSlot as WcmeReceiveSlot,\n ReceiveSlotEvents as WcmeReceiveSlotEvents,\n StreamState,\n} from '@webex/internal-media-core';\n\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nexport const ReceiveSlotEvents = {\n SourceUpdate: 'sourceUpdate',\n MaxFsUpdate: 'maxFsUpdate',\n};\n\nexport type {StreamState} from '@webex/internal-media-core';\nexport type CSI = number;\nexport type MemberId = string;\nexport type ReceiveSlotId = string;\n\nlet receiveSlotCounter = 0;\n\nexport type FindMemberIdCallback = (csi: CSI) => MemberId | undefined;\n\n/**\n * Class representing a receive slot. A single receive slot is able to receive a single track\n * for example some participant's main video or audio\n */\nexport class ReceiveSlot extends EventsScope {\n private readonly mcReceiveSlot: WcmeReceiveSlot;\n\n private readonly findMemberIdCallback: FindMemberIdCallback;\n\n public readonly id: ReceiveSlotId;\n\n public readonly mediaType: MediaType;\n\n #memberId?: MemberId;\n\n #csi?: CSI;\n\n #sourceState: StreamState;\n\n /**\n * constructor - don't use it directly, you should always use meeting.receiveSlotManager.allocateSlot()\n * to create any receive slots\n *\n * @param {MediaType} mediaType\n * @param {ReceiveSlot} mcReceiveSlot\n * @param {FindMemberIdCallback} findMemberIdCallback callback for finding memberId for given CSI\n */\n constructor(\n mediaType: MediaType,\n mcReceiveSlot: WcmeReceiveSlot,\n findMemberIdCallback: FindMemberIdCallback\n ) {\n super();\n\n receiveSlotCounter += 1;\n\n this.findMemberIdCallback = findMemberIdCallback;\n this.mediaType = mediaType;\n this.mcReceiveSlot = mcReceiveSlot;\n this.#sourceState = 'no source';\n this.id = `r${receiveSlotCounter}`;\n\n this.setupEventListeners();\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.#memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.#csi;\n }\n\n /**\n * Set the max frame size for this slot\n * @param newFs frame size\n */\n public setMaxFs(newFs) {\n // emit event for media request manager to listen to\n\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.MaxFsUpdate,\n {\n maxFs: newFs,\n }\n );\n }\n\n /**\n * Getter for sourceState\n */\n public get sourceState() {\n return this.#sourceState;\n }\n\n /**\n * registers event handlers with the underlying ReceiveSlot\n */\n private setupEventListeners() {\n const scope = {\n file: 'meeting/receiveSlot',\n function: 'setupEventListeners',\n };\n\n this.mcReceiveSlot.on(\n WcmeReceiveSlotEvents.SourceUpdate,\n (state: StreamState, csi?: number) => {\n LoggerProxy.logger.log(\n `ReceiveSlot#setupEventListeners --> got source update on receive slot ${this.id}, mediaType=${this.mediaType}, csi=${csi}, state=${state}`\n );\n this.#memberId = csi ? this.findMemberIdCallback(csi) : undefined;\n this.#csi = csi;\n this.#sourceState = state;\n\n this.emit(scope, ReceiveSlotEvents.SourceUpdate, {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n });\n }\n );\n }\n\n /** Tries to find the member id for this receive slot if it hasn't got one */\n public findMemberId() {\n if (this.#memberId === undefined && this.#csi) {\n this.#memberId = this.findMemberIdCallback(this.#csi);\n\n if (this.#memberId) {\n // if we found the memberId, simulate source update so that the client app knows that something's changed\n this.emit(\n {\n file: 'meeting/receiveSlot',\n function: 'findMemberId',\n },\n ReceiveSlotEvents.SourceUpdate,\n {\n state: this.#sourceState,\n csi: this.#csi,\n memberId: this.#memberId,\n }\n );\n }\n }\n }\n\n /**\n * @returns {string} a log message used to identify the receive slot\n */\n public get logString() {\n return `ReceiveSlot - ${this.id}: ${JSON.stringify(this.mcReceiveSlot.id)}`;\n }\n\n /**\n * The MediaStream object associated with this slot.\n *\n * @returns {MediaStream} The MediaStreamTrack.\n */\n get stream(): MediaStream {\n return this.mcReceiveSlot.stream;\n }\n\n /**\n * The underlying WCME receive slot\n */\n get wcmeReceiveSlot(): WcmeReceiveSlot {\n return this.mcReceiveSlot;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,33 +45,33 @@ var ReceiveSlotManager = exports.ReceiveSlotManager = /*#__PURE__*/function () {
|
|
|
45
45
|
* @param {MediaType} mediaType
|
|
46
46
|
* @returns {Promise<ReceiveSlot>}
|
|
47
47
|
*/
|
|
48
|
-
(0, _createClass2.default)(ReceiveSlotManager, [{
|
|
48
|
+
return (0, _createClass2.default)(ReceiveSlotManager, [{
|
|
49
49
|
key: "allocateSlot",
|
|
50
50
|
value: (function () {
|
|
51
|
-
var _allocateSlot = (0, _asyncToGenerator2.default)(
|
|
51
|
+
var _allocateSlot = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(mediaType) {
|
|
52
52
|
var availableSlot, wcmeReceiveSlot, receiveSlot;
|
|
53
|
-
return _regenerator.default.wrap(function
|
|
53
|
+
return _regenerator.default.wrap(function (_context) {
|
|
54
54
|
while (1) switch (_context.prev = _context.next) {
|
|
55
55
|
case 0:
|
|
56
56
|
// try to use one of the free ones
|
|
57
57
|
availableSlot = this.freeSlots[mediaType].pop();
|
|
58
58
|
if (!availableSlot) {
|
|
59
|
-
_context.next =
|
|
59
|
+
_context.next = 1;
|
|
60
60
|
break;
|
|
61
61
|
}
|
|
62
62
|
this.allocatedSlots[mediaType].push(availableSlot);
|
|
63
63
|
_loggerProxy.default.logger.log("".concat(mediaType, ": receive slot re-used: ").concat(availableSlot.id));
|
|
64
64
|
return _context.abrupt("return", availableSlot);
|
|
65
|
-
case
|
|
66
|
-
_context.next =
|
|
65
|
+
case 1:
|
|
66
|
+
_context.next = 2;
|
|
67
67
|
return this.createSlotCallback(mediaType);
|
|
68
|
-
case
|
|
68
|
+
case 2:
|
|
69
69
|
wcmeReceiveSlot = _context.sent;
|
|
70
70
|
receiveSlot = new _receiveSlot.ReceiveSlot(mediaType, wcmeReceiveSlot, this.findMemberIdByCsiCallback);
|
|
71
71
|
this.allocatedSlots[mediaType].push(receiveSlot);
|
|
72
72
|
_loggerProxy.default.logger.log("".concat(mediaType, ": new receive slot allocated: ").concat(receiveSlot.id));
|
|
73
73
|
return _context.abrupt("return", receiveSlot);
|
|
74
|
-
case
|
|
74
|
+
case 3:
|
|
75
75
|
case "end":
|
|
76
76
|
return _context.stop();
|
|
77
77
|
}
|
|
@@ -169,6 +169,5 @@ var ReceiveSlotManager = exports.ReceiveSlotManager = /*#__PURE__*/function () {
|
|
|
169
169
|
});
|
|
170
170
|
}
|
|
171
171
|
}]);
|
|
172
|
-
return ReceiveSlotManager;
|
|
173
172
|
}();
|
|
174
173
|
//# sourceMappingURL=receiveSlotManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_internalMediaCore","require","_loggerProxy","_interopRequireDefault","_receiveSlot","ReceiveSlotManager","exports","createSlotCallback","findMemberIdByCsiCallback","_classCallCheck2","default","_defineProperty2","allocatedSlots","MediaType","AudioMain","VideoMain","AudioSlides","VideoSlides","freeSlots","_createClass2","key","value","_allocateSlot","_asyncToGenerator2","_regenerator","mark","_callee","mediaType","availableSlot","wcmeReceiveSlot","receiveSlot","wrap","_callee$","_context","prev","next","pop","push","LoggerProxy","logger","log","concat","id","abrupt","sent","ReceiveSlot","stop","allocateSlot","_x","apply","arguments","releaseSlot","slot","idx","findIndex","allocatedSlot","splice","warn","reset","getStats","_this","numAllocatedSlots","numFreeSlots","_keys","forEach","length","updateMemberIds","_this2","findMemberId","findReceiveSlotBySsrc","ssrc","_values","flat","find","r","_r$wcmeReceiveSlot","_r$wcmeReceiveSlot$id"],"sources":["receiveSlotManager.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable import/prefer-default-export */\nimport {MediaType, ReceiveSlot as WcmeReceiveSlot} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {FindMemberIdCallback, ReceiveSlot} from './receiveSlot';\n\nexport type CreateSlotCallback = (mediaType: MediaType) => Promise<WcmeReceiveSlot>;\n\nexport type {CSI, FindMemberIdCallback} from './receiveSlot';\n\n/**\n * Manages all receive slots used by a meeting. WMCE receive slots cannot be ever deleted,\n * so this manager has a pool in order to re-use the slots that were released earlier.\n */\nexport class ReceiveSlotManager {\n private allocatedSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private freeSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private createSlotCallback: CreateSlotCallback;\n\n private findMemberIdByCsiCallback: FindMemberIdCallback;\n\n /**\n * Constructor\n * @param {Meeting} meeting\n */\n constructor(\n createSlotCallback: CreateSlotCallback,\n findMemberIdByCsiCallback: FindMemberIdCallback\n ) {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.createSlotCallback = createSlotCallback;\n this.findMemberIdByCsiCallback = findMemberIdByCsiCallback;\n }\n\n /**\n * Creates a new receive slot or returns one from the existing pool of free slots\n *\n * @param {MediaType} mediaType\n * @returns {Promise<ReceiveSlot>}\n */\n async allocateSlot(mediaType: MediaType): Promise<ReceiveSlot> {\n // try to use one of the free ones\n const availableSlot = this.freeSlots[mediaType].pop();\n\n if (availableSlot) {\n this.allocatedSlots[mediaType].push(availableSlot);\n\n LoggerProxy.logger.log(`${mediaType}: receive slot re-used: ${availableSlot.id}`);\n\n return availableSlot;\n }\n\n // we have to create a new one\n const wcmeReceiveSlot = await this.createSlotCallback(mediaType);\n\n const receiveSlot = new ReceiveSlot(mediaType, wcmeReceiveSlot, this.findMemberIdByCsiCallback);\n\n this.allocatedSlots[mediaType].push(receiveSlot);\n LoggerProxy.logger.log(`${mediaType}: new receive slot allocated: ${receiveSlot.id}`);\n\n return receiveSlot;\n }\n\n /**\n * Releases the slot back to the pool so it can be re-used by others in the future\n * @param {ReceiveSlot} slot\n */\n releaseSlot(slot: ReceiveSlot) {\n const idx = this.allocatedSlots[slot.mediaType].findIndex(\n (allocatedSlot) => allocatedSlot === slot\n );\n\n if (idx >= 0) {\n this.allocatedSlots[slot.mediaType].splice(idx, 1);\n this.freeSlots[slot.mediaType].push(slot);\n LoggerProxy.logger.log(`${slot.mediaType}: receive slot released: ${slot.id}`);\n } else {\n LoggerProxy.logger.warn(\n `ReceiveSlotManager#releaseSlot --> trying to release a ${slot.mediaType}} slot that is not managed by this ReceiveSlotManager`\n );\n }\n }\n\n /**\n * Resets the slot manager - this method should be called when the media connection is torn down\n */\n reset() {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n }\n\n /**\n * Returns statistics about the managed slots\n *\n * @returns {Object}\n */\n getStats() {\n const numAllocatedSlots = {};\n const numFreeSlots = {};\n\n Object.keys(this.allocatedSlots).forEach((key) => {\n if (this.allocatedSlots[key].length > 0) {\n numAllocatedSlots[key] = this.allocatedSlots[key].length;\n }\n });\n\n Object.keys(this.freeSlots).forEach((key) => {\n if (this.freeSlots[key].length > 0) {\n numFreeSlots[key] = this.freeSlots[key].length;\n }\n });\n\n return {\n numAllocatedSlots,\n numFreeSlots,\n };\n }\n\n /**\n * Tries to find the member id on all allocated receive slots\n * This function should be called when new members are added to the meeting.\n */\n updateMemberIds() {\n Object.keys(this.allocatedSlots).forEach((key) => {\n this.allocatedSlots[key].forEach((slot: ReceiveSlot) => {\n slot.findMemberId();\n });\n });\n }\n\n /**\n * Find a receive slot by a ssrc.\n *\n * @param ssrc - The ssrc of the receive slot to find.\n * @returns - The receive slot with this ssrc, undefined if not found.\n */\n findReceiveSlotBySsrc(ssrc: number): ReceiveSlot | undefined {\n return Object.values(this.allocatedSlots)\n .flat()\n .find((r) => ssrc && r.wcmeReceiveSlot?.id?.ssrc === ssrc);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_internalMediaCore","require","_loggerProxy","_interopRequireDefault","_receiveSlot","ReceiveSlotManager","exports","createSlotCallback","findMemberIdByCsiCallback","_classCallCheck2","default","_defineProperty2","allocatedSlots","MediaType","AudioMain","VideoMain","AudioSlides","VideoSlides","freeSlots","_createClass2","key","value","_allocateSlot","_asyncToGenerator2","_regenerator","mark","_callee","mediaType","availableSlot","wcmeReceiveSlot","receiveSlot","wrap","_context","prev","next","pop","push","LoggerProxy","logger","log","concat","id","abrupt","sent","ReceiveSlot","stop","allocateSlot","_x","apply","arguments","releaseSlot","slot","idx","findIndex","allocatedSlot","splice","warn","reset","getStats","_this","numAllocatedSlots","numFreeSlots","_keys","forEach","length","updateMemberIds","_this2","findMemberId","findReceiveSlotBySsrc","ssrc","_values","flat","find","r","_r$wcmeReceiveSlot","_r$wcmeReceiveSlot$id"],"sources":["receiveSlotManager.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable import/prefer-default-export */\nimport {MediaType, ReceiveSlot as WcmeReceiveSlot} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nimport {FindMemberIdCallback, ReceiveSlot} from './receiveSlot';\n\nexport type CreateSlotCallback = (mediaType: MediaType) => Promise<WcmeReceiveSlot>;\n\nexport type {CSI, FindMemberIdCallback} from './receiveSlot';\n\n/**\n * Manages all receive slots used by a meeting. WMCE receive slots cannot be ever deleted,\n * so this manager has a pool in order to re-use the slots that were released earlier.\n */\nexport class ReceiveSlotManager {\n private allocatedSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private freeSlots: {[key in MediaType]: ReceiveSlot[]};\n\n private createSlotCallback: CreateSlotCallback;\n\n private findMemberIdByCsiCallback: FindMemberIdCallback;\n\n /**\n * Constructor\n * @param {Meeting} meeting\n */\n constructor(\n createSlotCallback: CreateSlotCallback,\n findMemberIdByCsiCallback: FindMemberIdCallback\n ) {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.createSlotCallback = createSlotCallback;\n this.findMemberIdByCsiCallback = findMemberIdByCsiCallback;\n }\n\n /**\n * Creates a new receive slot or returns one from the existing pool of free slots\n *\n * @param {MediaType} mediaType\n * @returns {Promise<ReceiveSlot>}\n */\n async allocateSlot(mediaType: MediaType): Promise<ReceiveSlot> {\n // try to use one of the free ones\n const availableSlot = this.freeSlots[mediaType].pop();\n\n if (availableSlot) {\n this.allocatedSlots[mediaType].push(availableSlot);\n\n LoggerProxy.logger.log(`${mediaType}: receive slot re-used: ${availableSlot.id}`);\n\n return availableSlot;\n }\n\n // we have to create a new one\n const wcmeReceiveSlot = await this.createSlotCallback(mediaType);\n\n const receiveSlot = new ReceiveSlot(mediaType, wcmeReceiveSlot, this.findMemberIdByCsiCallback);\n\n this.allocatedSlots[mediaType].push(receiveSlot);\n LoggerProxy.logger.log(`${mediaType}: new receive slot allocated: ${receiveSlot.id}`);\n\n return receiveSlot;\n }\n\n /**\n * Releases the slot back to the pool so it can be re-used by others in the future\n * @param {ReceiveSlot} slot\n */\n releaseSlot(slot: ReceiveSlot) {\n const idx = this.allocatedSlots[slot.mediaType].findIndex(\n (allocatedSlot) => allocatedSlot === slot\n );\n\n if (idx >= 0) {\n this.allocatedSlots[slot.mediaType].splice(idx, 1);\n this.freeSlots[slot.mediaType].push(slot);\n LoggerProxy.logger.log(`${slot.mediaType}: receive slot released: ${slot.id}`);\n } else {\n LoggerProxy.logger.warn(\n `ReceiveSlotManager#releaseSlot --> trying to release a ${slot.mediaType}} slot that is not managed by this ReceiveSlotManager`\n );\n }\n }\n\n /**\n * Resets the slot manager - this method should be called when the media connection is torn down\n */\n reset() {\n this.allocatedSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n this.freeSlots = {\n [MediaType.AudioMain]: [],\n [MediaType.VideoMain]: [],\n [MediaType.AudioSlides]: [],\n [MediaType.VideoSlides]: [],\n };\n }\n\n /**\n * Returns statistics about the managed slots\n *\n * @returns {Object}\n */\n getStats() {\n const numAllocatedSlots = {};\n const numFreeSlots = {};\n\n Object.keys(this.allocatedSlots).forEach((key) => {\n if (this.allocatedSlots[key].length > 0) {\n numAllocatedSlots[key] = this.allocatedSlots[key].length;\n }\n });\n\n Object.keys(this.freeSlots).forEach((key) => {\n if (this.freeSlots[key].length > 0) {\n numFreeSlots[key] = this.freeSlots[key].length;\n }\n });\n\n return {\n numAllocatedSlots,\n numFreeSlots,\n };\n }\n\n /**\n * Tries to find the member id on all allocated receive slots\n * This function should be called when new members are added to the meeting.\n */\n updateMemberIds() {\n Object.keys(this.allocatedSlots).forEach((key) => {\n this.allocatedSlots[key].forEach((slot: ReceiveSlot) => {\n slot.findMemberId();\n });\n });\n }\n\n /**\n * Find a receive slot by a ssrc.\n *\n * @param ssrc - The ssrc of the receive slot to find.\n * @returns - The receive slot with this ssrc, undefined if not found.\n */\n findReceiveSlotBySsrc(ssrc: number): ReceiveSlot | undefined {\n return Object.values(this.allocatedSlots)\n .flat()\n .find((r) => ssrc && r.wcmeReceiveSlot?.id?.ssrc === ssrc);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AALA;AACA;AAUA;AACA;AACA;AACA;AAHA,IAIaI,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA;EAS7B;AACF;AACA;AACA;EACE,SAAAA,mBACEE,kBAAsC,EACtCC,yBAA+C,EAC/C;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAL,kBAAA;IAAA,IAAAM,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IACA,IAAI,CAACE,cAAc,OAAAD,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAChBG,4BAAS,CAACC,SAAS,EAAG,EAAE,GACxBD,4BAAS,CAACE,SAAS,EAAG,EAAE,GACxBF,4BAAS,CAACG,WAAW,EAAG,EAAE,GAC1BH,4BAAS,CAACI,WAAW,EAAG,EAAE,CAC5B;IACD,IAAI,CAACC,SAAS,OAAAP,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MACXG,4BAAS,CAACC,SAAS,EAAG,EAAE,GACxBD,4BAAS,CAACE,SAAS,EAAG,EAAE,GACxBF,4BAAS,CAACG,WAAW,EAAG,EAAE,GAC1BH,4BAAS,CAACI,WAAW,EAAG,EAAE,CAC5B;IACD,IAAI,CAACV,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACC,yBAAyB,GAAGA,yBAAyB;EAC5D;;EAEA;AACF;AACA;AACA;AACA;AACA;EALE,WAAAW,aAAA,CAAAT,OAAA,EAAAL,kBAAA;IAAAe,GAAA;IAAAC,KAAA;MAAA,IAAAC,aAAA,OAAAC,kBAAA,CAAAb,OAAA,eAAAc,YAAA,CAAAd,OAAA,CAAAe,IAAA,CAMA,SAAAC,QAAmBC,SAAoB;QAAA,IAAAC,aAAA,EAAAC,eAAA,EAAAC,WAAA;QAAA,OAAAN,YAAA,CAAAd,OAAA,CAAAqB,IAAA,WAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cACrC;cACMN,aAAa,GAAG,IAAI,CAACV,SAAS,CAACS,SAAS,CAAC,CAACQ,GAAG,CAAC,CAAC;cAAA,KAEjDP,aAAa;gBAAAI,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACf,IAAI,CAACtB,cAAc,CAACe,SAAS,CAAC,CAACS,IAAI,CAACR,aAAa,CAAC;cAElDS,oBAAW,CAACC,MAAM,CAACC,GAAG,IAAAC,MAAA,CAAIb,SAAS,8BAAAa,MAAA,CAA2BZ,aAAa,CAACa,EAAE,CAAE,CAAC;cAAC,OAAAT,QAAA,CAAAU,MAAA,WAE3Ed,aAAa;YAAA;cAAAI,QAAA,CAAAE,IAAA;cAAA,OAIQ,IAAI,CAAC3B,kBAAkB,CAACoB,SAAS,CAAC;YAAA;cAA1DE,eAAe,GAAAG,QAAA,CAAAW,IAAA;cAEfb,WAAW,GAAG,IAAIc,wBAAW,CAACjB,SAAS,EAAEE,eAAe,EAAE,IAAI,CAACrB,yBAAyB,CAAC;cAE/F,IAAI,CAACI,cAAc,CAACe,SAAS,CAAC,CAACS,IAAI,CAACN,WAAW,CAAC;cAChDO,oBAAW,CAACC,MAAM,CAACC,GAAG,IAAAC,MAAA,CAAIb,SAAS,oCAAAa,MAAA,CAAiCV,WAAW,CAACW,EAAE,CAAE,CAAC;cAAC,OAAAT,QAAA,CAAAU,MAAA,WAE/EZ,WAAW;YAAA;YAAA;cAAA,OAAAE,QAAA,CAAAa,IAAA;UAAA;QAAA,GAAAnB,OAAA;MAAA,CACnB;MAAA,SArBKoB,YAAYA,CAAAC,EAAA;QAAA,OAAAzB,aAAA,CAAA0B,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAZH,YAAY;IAAA;IAuBlB;AACF;AACA;AACA;IAHE;EAAA;IAAA1B,GAAA;IAAAC,KAAA,EAIA,SAAA6B,WAAWA,CAACC,IAAiB,EAAE;MAC7B,IAAMC,GAAG,GAAG,IAAI,CAACxC,cAAc,CAACuC,IAAI,CAACxB,SAAS,CAAC,CAAC0B,SAAS,CACvD,UAACC,aAAa;QAAA,OAAKA,aAAa,KAAKH,IAAI;MAAA,CAC3C,CAAC;MAED,IAAIC,GAAG,IAAI,CAAC,EAAE;QACZ,IAAI,CAACxC,cAAc,CAACuC,IAAI,CAACxB,SAAS,CAAC,CAAC4B,MAAM,CAACH,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,CAAClC,SAAS,CAACiC,IAAI,CAACxB,SAAS,CAAC,CAACS,IAAI,CAACe,IAAI,CAAC;QACzCd,oBAAW,CAACC,MAAM,CAACC,GAAG,IAAAC,MAAA,CAAIW,IAAI,CAACxB,SAAS,+BAAAa,MAAA,CAA4BW,IAAI,CAACV,EAAE,CAAE,CAAC;MAChF,CAAC,MAAM;QACLJ,oBAAW,CAACC,MAAM,CAACkB,IAAI,2DAAAhB,MAAA,CACqCW,IAAI,CAACxB,SAAS,0DAC1E,CAAC;MACH;IACF;;IAEA;AACF;AACA;EAFE;IAAAP,GAAA;IAAAC,KAAA,EAGA,SAAAoC,KAAKA,CAAA,EAAG;MACN,IAAI,CAAC7C,cAAc,OAAAD,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAChBG,4BAAS,CAACC,SAAS,EAAG,EAAE,GACxBD,4BAAS,CAACE,SAAS,EAAG,EAAE,GACxBF,4BAAS,CAACG,WAAW,EAAG,EAAE,GAC1BH,4BAAS,CAACI,WAAW,EAAG,EAAE,CAC5B;MACD,IAAI,CAACC,SAAS,OAAAP,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MAAAC,gBAAA,CAAAD,OAAA,MACXG,4BAAS,CAACC,SAAS,EAAG,EAAE,GACxBD,4BAAS,CAACE,SAAS,EAAG,EAAE,GACxBF,4BAAS,CAACG,WAAW,EAAG,EAAE,GAC1BH,4BAAS,CAACI,WAAW,EAAG,EAAE,CAC5B;IACH;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAG,GAAA;IAAAC,KAAA,EAKA,SAAAqC,QAAQA,CAAA,EAAG;MAAA,IAAAC,KAAA;MACT,IAAMC,iBAAiB,GAAG,CAAC,CAAC;MAC5B,IAAMC,YAAY,GAAG,CAAC,CAAC;MAEvB,IAAAC,KAAA,CAAApD,OAAA,EAAY,IAAI,CAACE,cAAc,CAAC,CAACmD,OAAO,CAAC,UAAC3C,GAAG,EAAK;QAChD,IAAIuC,KAAI,CAAC/C,cAAc,CAACQ,GAAG,CAAC,CAAC4C,MAAM,GAAG,CAAC,EAAE;UACvCJ,iBAAiB,CAACxC,GAAG,CAAC,GAAGuC,KAAI,CAAC/C,cAAc,CAACQ,GAAG,CAAC,CAAC4C,MAAM;QAC1D;MACF,CAAC,CAAC;MAEF,IAAAF,KAAA,CAAApD,OAAA,EAAY,IAAI,CAACQ,SAAS,CAAC,CAAC6C,OAAO,CAAC,UAAC3C,GAAG,EAAK;QAC3C,IAAIuC,KAAI,CAACzC,SAAS,CAACE,GAAG,CAAC,CAAC4C,MAAM,GAAG,CAAC,EAAE;UAClCH,YAAY,CAACzC,GAAG,CAAC,GAAGuC,KAAI,CAACzC,SAAS,CAACE,GAAG,CAAC,CAAC4C,MAAM;QAChD;MACF,CAAC,CAAC;MAEF,OAAO;QACLJ,iBAAiB,EAAjBA,iBAAiB;QACjBC,YAAY,EAAZA;MACF,CAAC;IACH;;IAEA;AACF;AACA;AACA;EAHE;IAAAzC,GAAA;IAAAC,KAAA,EAIA,SAAA4C,eAAeA,CAAA,EAAG;MAAA,IAAAC,MAAA;MAChB,IAAAJ,KAAA,CAAApD,OAAA,EAAY,IAAI,CAACE,cAAc,CAAC,CAACmD,OAAO,CAAC,UAAC3C,GAAG,EAAK;QAChD8C,MAAI,CAACtD,cAAc,CAACQ,GAAG,CAAC,CAAC2C,OAAO,CAAC,UAACZ,IAAiB,EAAK;UACtDA,IAAI,CAACgB,YAAY,CAAC,CAAC;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA/C,GAAA;IAAAC,KAAA,EAMA,SAAA+C,qBAAqBA,CAACC,IAAY,EAA2B;MAC3D,OAAO,IAAAC,OAAA,CAAA5D,OAAA,EAAc,IAAI,CAACE,cAAc,CAAC,CACtC2D,IAAI,CAAC,CAAC,CACNC,IAAI,CAAC,UAACC,CAAC;QAAA,IAAAC,kBAAA,EAAAC,qBAAA;QAAA,OAAKN,IAAI,IAAI,EAAAK,kBAAA,GAAAD,CAAC,CAAC5C,eAAe,cAAA6C,kBAAA,wBAAAC,qBAAA,GAAjBD,kBAAA,CAAmBjC,EAAE,cAAAkC,qBAAA,uBAArBA,qBAAA,CAAuBN,IAAI,MAAKA,IAAI;MAAA,EAAC;IAC9D;EAAC;AAAA","ignoreList":[]}
|
|
@@ -10,16 +10,15 @@ exports.RemoteMediaEvents = exports.RemoteMedia = exports.MAX_FS_VALUES = void 0
|
|
|
10
10
|
exports.getMaxFs = getMaxFs;
|
|
11
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
12
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
13
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
15
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
16
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
15
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
17
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
18
17
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
19
18
|
var _eventsScope = _interopRequireDefault(require("../common/events/events-scope"));
|
|
20
19
|
var _receiveSlot = require("./receiveSlot");
|
|
21
|
-
function
|
|
22
|
-
function _isNativeReflectConstruct() {
|
|
20
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
21
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable valid-jsdoc */
|
|
23
22
|
var RemoteMediaEvents = exports.RemoteMediaEvents = {
|
|
24
23
|
SourceUpdate: _receiveSlot.ReceiveSlotEvents.SourceUpdate,
|
|
25
24
|
Stopped: 'stopped'
|
|
@@ -76,8 +75,6 @@ var remoteMediaCounter = 0;
|
|
|
76
75
|
* and a media request for it.
|
|
77
76
|
*/
|
|
78
77
|
var RemoteMedia = exports.RemoteMedia = /*#__PURE__*/function (_EventsScope) {
|
|
79
|
-
(0, _inherits2.default)(RemoteMedia, _EventsScope);
|
|
80
|
-
var _super = _createSuper(RemoteMedia);
|
|
81
78
|
/**
|
|
82
79
|
* Constructs RemoteMedia instance
|
|
83
80
|
*
|
|
@@ -88,18 +85,18 @@ var RemoteMedia = exports.RemoteMedia = /*#__PURE__*/function (_EventsScope) {
|
|
|
88
85
|
function RemoteMedia(receiveSlot, mediaRequestManager, options) {
|
|
89
86
|
var _this;
|
|
90
87
|
(0, _classCallCheck2.default)(this, RemoteMedia);
|
|
91
|
-
_this =
|
|
92
|
-
(0, _defineProperty2.default)(
|
|
93
|
-
(0, _defineProperty2.default)(
|
|
94
|
-
(0, _defineProperty2.default)(
|
|
95
|
-
(0, _defineProperty2.default)(
|
|
96
|
-
(0, _defineProperty2.default)(
|
|
88
|
+
_this = _callSuper(this, RemoteMedia);
|
|
89
|
+
(0, _defineProperty2.default)(_this, "receiveSlot", void 0);
|
|
90
|
+
(0, _defineProperty2.default)(_this, "mediaRequestManager", void 0);
|
|
91
|
+
(0, _defineProperty2.default)(_this, "options", void 0);
|
|
92
|
+
(0, _defineProperty2.default)(_this, "mediaRequestId", void 0);
|
|
93
|
+
(0, _defineProperty2.default)(_this, "id", void 0);
|
|
97
94
|
/**
|
|
98
95
|
* The max frame size of the media request, used for logging and media requests.
|
|
99
96
|
* Set by setSizeHint() based on video element dimensions.
|
|
100
97
|
* When > 0, this value takes precedence over options.resolution in sendMediaRequest().
|
|
101
98
|
*/
|
|
102
|
-
(0, _defineProperty2.default)(
|
|
99
|
+
(0, _defineProperty2.default)(_this, "maxFrameSize", 0);
|
|
103
100
|
remoteMediaCounter += 1;
|
|
104
101
|
_this.receiveSlot = receiveSlot;
|
|
105
102
|
_this.mediaRequestManager = mediaRequestManager;
|
|
@@ -116,7 +113,8 @@ var RemoteMedia = exports.RemoteMedia = /*#__PURE__*/function (_EventsScope) {
|
|
|
116
113
|
* @param height height of the video element
|
|
117
114
|
* @note width/height of 0 will be ignored
|
|
118
115
|
*/
|
|
119
|
-
(0,
|
|
116
|
+
(0, _inherits2.default)(RemoteMedia, _EventsScope);
|
|
117
|
+
return (0, _createClass2.default)(RemoteMedia, [{
|
|
120
118
|
key: "setSizeHint",
|
|
121
119
|
value: function setSizeHint(width, height) {
|
|
122
120
|
var _this$receiveSlot;
|
|
@@ -311,6 +309,5 @@ var RemoteMedia = exports.RemoteMedia = /*#__PURE__*/function (_EventsScope) {
|
|
|
311
309
|
return this.receiveSlot;
|
|
312
310
|
}
|
|
313
311
|
}]);
|
|
314
|
-
return RemoteMedia;
|
|
315
312
|
}(_eventsScope.default);
|
|
316
313
|
//# sourceMappingURL=remoteMedia.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_eventsScope","_receiveSlot","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RemoteMediaEvents","exports","SourceUpdate","ReceiveSlotEvents","Stopped","MAX_FS_VALUES","getMaxFs","paneSize","maxFs","LoggerProxy","logger","warn","concat","remoteMediaCounter","RemoteMedia","_EventsScope","_inherits2","_super","receiveSlot","mediaRequestManager","options","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","setupEventListeners","id","_createClass2","key","value","setSizeHint","width","height","_this$receiveSlot","fs","threshold","getThresholdHeight","h","Math","round","maxFrameSize","setMaxFs","getEffectiveMaxFs","resolution","undefined","stop","_this$receiveSlot2","commit","length","cancelMediaRequest","removeAllListeners","emit","file","function","sendMediaRequest","csi","mediaRequestId","Error","addRequest","policyInfo","policy","receiveSlots","codecInfo","codec","cancelRequest","_this2","scope","on","data","get","_this$receiveSlot3","mediaType","_this$receiveSlot4","memberId","_this$receiveSlot5","_this$receiveSlot6","sourceState","_this$receiveSlot7","stream","getUnderlyingReceiveSlot","EventsScope"],"sources":["remoteMedia.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {MediaType, StreamState} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nimport {MediaRequestId, MediaRequestManager} from './mediaRequestManager';\nimport {CSI, ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\n\nexport const RemoteMediaEvents = {\n SourceUpdate: ReceiveSlotEvents.SourceUpdate,\n Stopped: 'stopped',\n};\n\nexport type RemoteVideoResolution =\n | 'thumbnail' // the smallest possible resolution, 90p or less\n | 'very small' // 180p or less\n | 'small' // 360p or less\n | 'medium' // 720p or less\n | 'large' // 1080p or less\n | 'best'; // highest possible resolution\n\nexport const MAX_FS_VALUES = {\n '90p': 60,\n '180p': 240,\n '360p': 920,\n '540p': 2040,\n '720p': 3600,\n '1080p': 8192,\n};\n\n/**\n * Converts pane size into h264 maxFs\n * @param {RemoteVideoResolution} paneSize\n * @returns {number}\n */\nexport function getMaxFs(paneSize: RemoteVideoResolution): number {\n let maxFs;\n\n switch (paneSize) {\n case 'thumbnail':\n maxFs = MAX_FS_VALUES['90p'];\n break;\n case 'very small':\n maxFs = MAX_FS_VALUES['180p'];\n break;\n case 'small':\n maxFs = MAX_FS_VALUES['360p'];\n break;\n case 'medium':\n maxFs = MAX_FS_VALUES['720p'];\n break;\n case 'large':\n maxFs = MAX_FS_VALUES['1080p'];\n break;\n case 'best':\n maxFs = MAX_FS_VALUES['1080p']; // for now 'best' is 1080p, so same as 'large'\n break;\n default:\n LoggerProxy.logger.warn(\n `RemoteMedia#getMaxFs --> unsupported paneSize: ${paneSize}, using \"medium\" instead`\n );\n maxFs = MAX_FS_VALUES['720p'];\n }\n\n return maxFs;\n}\n\ntype Options = {\n resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n};\n\nexport type RemoteMediaId = string;\n\nlet remoteMediaCounter = 0;\n\n/**\n * Class representing a remote audio/video stream.\n *\n * Internally it is associated with a specific receive slot\n * and a media request for it.\n */\nexport class RemoteMedia extends EventsScope {\n private receiveSlot?: ReceiveSlot;\n\n private readonly mediaRequestManager: MediaRequestManager;\n\n private readonly options: Options;\n\n private mediaRequestId?: MediaRequestId;\n\n public readonly id: RemoteMediaId;\n\n /**\n * The max frame size of the media request, used for logging and media requests.\n * Set by setSizeHint() based on video element dimensions.\n * When > 0, this value takes precedence over options.resolution in sendMediaRequest().\n */\n private maxFrameSize = 0;\n\n /**\n * Constructs RemoteMedia instance\n *\n * @param receiveSlot\n * @param mediaRequestManager\n * @param options\n */\n constructor(\n receiveSlot: ReceiveSlot,\n mediaRequestManager: MediaRequestManager,\n options?: Options\n ) {\n super();\n remoteMediaCounter += 1;\n this.receiveSlot = receiveSlot;\n this.mediaRequestManager = mediaRequestManager;\n this.options = options || {};\n this.setupEventListeners();\n this.id = `RM${remoteMediaCounter}-${this.receiveSlot.id}`;\n }\n\n /**\n * Supply the width and height of the video element\n * to restrict the requested resolution to this size\n * @param width width of the video element\n * @param height height of the video element\n * @note width/height of 0 will be ignored\n */\n public setSizeHint(width, height) {\n // only base on height for now\n let fs: number;\n\n if (width === 0 || height === 0) {\n return;\n }\n\n // we switch to the next resolution level when the height is 10% more than the current resolution height\n // except for 1080p - we switch to it immediately when the height is more than 720p\n const threshold = 1.1;\n const getThresholdHeight = (h: number) => Math.round(h * threshold);\n\n if (height < getThresholdHeight(90)) {\n fs = MAX_FS_VALUES['90p'];\n } else if (height < getThresholdHeight(180)) {\n fs = MAX_FS_VALUES['180p'];\n } else if (height < getThresholdHeight(360)) {\n fs = MAX_FS_VALUES['360p'];\n } else if (height < getThresholdHeight(540)) {\n fs = MAX_FS_VALUES['540p'];\n } else if (height <= 720) {\n fs = MAX_FS_VALUES['720p'];\n } else {\n fs = MAX_FS_VALUES['1080p'];\n }\n\n this.maxFrameSize = fs;\n this.receiveSlot?.setMaxFs(fs);\n }\n\n /**\n * Get the current effective maxFs value that would be used in media requests\n * @returns {number | undefined} The maxFs value, or undefined if no constraints\n */\n public getEffectiveMaxFs(): number | undefined {\n if (this.maxFrameSize > 0) {\n return this.maxFrameSize;\n }\n\n if (this.options.resolution) {\n return getMaxFs(this.options.resolution);\n }\n\n return undefined;\n }\n\n /**\n * Invalidates the remote media by clearing the reference to a receive slot and\n * cancelling the media request.\n * After this call the remote media is unusable.\n *\n * @param {boolean} commit - whether to commit the cancellation of the media request\n * @internal\n */\n public stop(commit = true) {\n this.cancelMediaRequest(commit);\n this.receiveSlot?.removeAllListeners();\n this.receiveSlot = undefined;\n this.emit(\n {\n file: 'multistream/remoteMedia',\n function: 'stop',\n },\n RemoteMediaEvents.Stopped,\n {}\n );\n }\n\n /**\n * Sends a new media request. This method can only be used for receiver-selected policy,\n * because only in that policy we have a 1-1 relationship between RemoteMedia and MediaRequest\n * and the request id is then stored in this RemoteMedia instance.\n * For active-speaker policy, the same request is shared among many RemoteMedia instances,\n * so it's managed through RemoteMediaGroup\n *\n * @internal\n */\n public sendMediaRequest(csi: CSI, commit: boolean) {\n if (this.mediaRequestId) {\n this.cancelMediaRequest(false);\n }\n\n if (!this.receiveSlot) {\n throw new Error('sendMediaRequest() called on an invalidated RemoteMedia instance');\n }\n\n // Use maxFrameSize from setSizeHint if available, otherwise fallback to options.resolution\n const maxFs = this.getEffectiveMaxFs();\n\n this.mediaRequestId = this.mediaRequestManager.addRequest(\n {\n policyInfo: {\n policy: 'receiver-selected',\n csi,\n },\n receiveSlots: [this.receiveSlot],\n codecInfo: maxFs && {\n codec: 'h264',\n maxFs,\n },\n },\n commit\n );\n }\n\n /**\n * @internal\n */\n public cancelMediaRequest(commit: boolean) {\n if (this.mediaRequestId) {\n this.mediaRequestManager.cancelRequest(this.mediaRequestId, commit);\n this.mediaRequestId = undefined;\n }\n }\n\n /**\n * registers event listeners on the receive slot and forwards all the events\n */\n private setupEventListeners() {\n if (this.receiveSlot) {\n const scope = {\n file: 'multistream/remoteMedia',\n function: 'setupEventListeners',\n };\n\n this.receiveSlot.on(ReceiveSlotEvents.SourceUpdate, (data) => {\n this.emit(scope, RemoteMediaEvents.SourceUpdate, data);\n });\n }\n }\n\n /**\n * Getter for mediaType\n */\n public get mediaType(): MediaType {\n return this.receiveSlot?.mediaType;\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.receiveSlot?.memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.receiveSlot?.csi;\n }\n\n /**\n * Getter for source state\n */\n public get sourceState(): StreamState {\n return this.receiveSlot?.sourceState;\n }\n\n /**\n * Getter for remote media stream\n */\n public get stream() {\n return this.receiveSlot?.stream;\n }\n\n /**\n * @internal\n * @returns {ReceiveSlot}\n */\n public getUnderlyingReceiveSlot() {\n return this.receiveSlot;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_loggerProxy","_interopRequireDefault","require","_eventsScope","_receiveSlot","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","RemoteMediaEvents","exports","SourceUpdate","ReceiveSlotEvents","Stopped","MAX_FS_VALUES","getMaxFs","paneSize","maxFs","LoggerProxy","logger","warn","concat","remoteMediaCounter","RemoteMedia","_EventsScope","receiveSlot","mediaRequestManager","options","_this","_classCallCheck2","_defineProperty2","setupEventListeners","id","_inherits2","_createClass2","key","value","setSizeHint","width","height","_this$receiveSlot","fs","threshold","getThresholdHeight","h","Math","round","maxFrameSize","setMaxFs","getEffectiveMaxFs","resolution","undefined","stop","_this$receiveSlot2","commit","arguments","length","cancelMediaRequest","removeAllListeners","emit","file","function","sendMediaRequest","csi","mediaRequestId","Error","addRequest","policyInfo","policy","receiveSlots","codecInfo","codec","cancelRequest","_this2","scope","on","data","get","_this$receiveSlot3","mediaType","_this$receiveSlot4","memberId","_this$receiveSlot5","_this$receiveSlot6","sourceState","_this$receiveSlot7","stream","getUnderlyingReceiveSlot","EventsScope"],"sources":["remoteMedia.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {MediaType, StreamState} from '@webex/internal-media-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport EventsScope from '../common/events/events-scope';\n\nimport {MediaRequestId, MediaRequestManager} from './mediaRequestManager';\nimport {CSI, ReceiveSlot, ReceiveSlotEvents} from './receiveSlot';\n\nexport const RemoteMediaEvents = {\n SourceUpdate: ReceiveSlotEvents.SourceUpdate,\n Stopped: 'stopped',\n};\n\nexport type RemoteVideoResolution =\n | 'thumbnail' // the smallest possible resolution, 90p or less\n | 'very small' // 180p or less\n | 'small' // 360p or less\n | 'medium' // 720p or less\n | 'large' // 1080p or less\n | 'best'; // highest possible resolution\n\nexport const MAX_FS_VALUES = {\n '90p': 60,\n '180p': 240,\n '360p': 920,\n '540p': 2040,\n '720p': 3600,\n '1080p': 8192,\n};\n\n/**\n * Converts pane size into h264 maxFs\n * @param {RemoteVideoResolution} paneSize\n * @returns {number}\n */\nexport function getMaxFs(paneSize: RemoteVideoResolution): number {\n let maxFs;\n\n switch (paneSize) {\n case 'thumbnail':\n maxFs = MAX_FS_VALUES['90p'];\n break;\n case 'very small':\n maxFs = MAX_FS_VALUES['180p'];\n break;\n case 'small':\n maxFs = MAX_FS_VALUES['360p'];\n break;\n case 'medium':\n maxFs = MAX_FS_VALUES['720p'];\n break;\n case 'large':\n maxFs = MAX_FS_VALUES['1080p'];\n break;\n case 'best':\n maxFs = MAX_FS_VALUES['1080p']; // for now 'best' is 1080p, so same as 'large'\n break;\n default:\n LoggerProxy.logger.warn(\n `RemoteMedia#getMaxFs --> unsupported paneSize: ${paneSize}, using \"medium\" instead`\n );\n maxFs = MAX_FS_VALUES['720p'];\n }\n\n return maxFs;\n}\n\ntype Options = {\n resolution?: RemoteVideoResolution; // applies only to groups of type MediaType.VideoMain and MediaType.VideoSlides\n};\n\nexport type RemoteMediaId = string;\n\nlet remoteMediaCounter = 0;\n\n/**\n * Class representing a remote audio/video stream.\n *\n * Internally it is associated with a specific receive slot\n * and a media request for it.\n */\nexport class RemoteMedia extends EventsScope {\n private receiveSlot?: ReceiveSlot;\n\n private readonly mediaRequestManager: MediaRequestManager;\n\n private readonly options: Options;\n\n private mediaRequestId?: MediaRequestId;\n\n public readonly id: RemoteMediaId;\n\n /**\n * The max frame size of the media request, used for logging and media requests.\n * Set by setSizeHint() based on video element dimensions.\n * When > 0, this value takes precedence over options.resolution in sendMediaRequest().\n */\n private maxFrameSize = 0;\n\n /**\n * Constructs RemoteMedia instance\n *\n * @param receiveSlot\n * @param mediaRequestManager\n * @param options\n */\n constructor(\n receiveSlot: ReceiveSlot,\n mediaRequestManager: MediaRequestManager,\n options?: Options\n ) {\n super();\n remoteMediaCounter += 1;\n this.receiveSlot = receiveSlot;\n this.mediaRequestManager = mediaRequestManager;\n this.options = options || {};\n this.setupEventListeners();\n this.id = `RM${remoteMediaCounter}-${this.receiveSlot.id}`;\n }\n\n /**\n * Supply the width and height of the video element\n * to restrict the requested resolution to this size\n * @param width width of the video element\n * @param height height of the video element\n * @note width/height of 0 will be ignored\n */\n public setSizeHint(width, height) {\n // only base on height for now\n let fs: number;\n\n if (width === 0 || height === 0) {\n return;\n }\n\n // we switch to the next resolution level when the height is 10% more than the current resolution height\n // except for 1080p - we switch to it immediately when the height is more than 720p\n const threshold = 1.1;\n const getThresholdHeight = (h: number) => Math.round(h * threshold);\n\n if (height < getThresholdHeight(90)) {\n fs = MAX_FS_VALUES['90p'];\n } else if (height < getThresholdHeight(180)) {\n fs = MAX_FS_VALUES['180p'];\n } else if (height < getThresholdHeight(360)) {\n fs = MAX_FS_VALUES['360p'];\n } else if (height < getThresholdHeight(540)) {\n fs = MAX_FS_VALUES['540p'];\n } else if (height <= 720) {\n fs = MAX_FS_VALUES['720p'];\n } else {\n fs = MAX_FS_VALUES['1080p'];\n }\n\n this.maxFrameSize = fs;\n this.receiveSlot?.setMaxFs(fs);\n }\n\n /**\n * Get the current effective maxFs value that would be used in media requests\n * @returns {number | undefined} The maxFs value, or undefined if no constraints\n */\n public getEffectiveMaxFs(): number | undefined {\n if (this.maxFrameSize > 0) {\n return this.maxFrameSize;\n }\n\n if (this.options.resolution) {\n return getMaxFs(this.options.resolution);\n }\n\n return undefined;\n }\n\n /**\n * Invalidates the remote media by clearing the reference to a receive slot and\n * cancelling the media request.\n * After this call the remote media is unusable.\n *\n * @param {boolean} commit - whether to commit the cancellation of the media request\n * @internal\n */\n public stop(commit = true) {\n this.cancelMediaRequest(commit);\n this.receiveSlot?.removeAllListeners();\n this.receiveSlot = undefined;\n this.emit(\n {\n file: 'multistream/remoteMedia',\n function: 'stop',\n },\n RemoteMediaEvents.Stopped,\n {}\n );\n }\n\n /**\n * Sends a new media request. This method can only be used for receiver-selected policy,\n * because only in that policy we have a 1-1 relationship between RemoteMedia and MediaRequest\n * and the request id is then stored in this RemoteMedia instance.\n * For active-speaker policy, the same request is shared among many RemoteMedia instances,\n * so it's managed through RemoteMediaGroup\n *\n * @internal\n */\n public sendMediaRequest(csi: CSI, commit: boolean) {\n if (this.mediaRequestId) {\n this.cancelMediaRequest(false);\n }\n\n if (!this.receiveSlot) {\n throw new Error('sendMediaRequest() called on an invalidated RemoteMedia instance');\n }\n\n // Use maxFrameSize from setSizeHint if available, otherwise fallback to options.resolution\n const maxFs = this.getEffectiveMaxFs();\n\n this.mediaRequestId = this.mediaRequestManager.addRequest(\n {\n policyInfo: {\n policy: 'receiver-selected',\n csi,\n },\n receiveSlots: [this.receiveSlot],\n codecInfo: maxFs && {\n codec: 'h264',\n maxFs,\n },\n },\n commit\n );\n }\n\n /**\n * @internal\n */\n public cancelMediaRequest(commit: boolean) {\n if (this.mediaRequestId) {\n this.mediaRequestManager.cancelRequest(this.mediaRequestId, commit);\n this.mediaRequestId = undefined;\n }\n }\n\n /**\n * registers event listeners on the receive slot and forwards all the events\n */\n private setupEventListeners() {\n if (this.receiveSlot) {\n const scope = {\n file: 'multistream/remoteMedia',\n function: 'setupEventListeners',\n };\n\n this.receiveSlot.on(ReceiveSlotEvents.SourceUpdate, (data) => {\n this.emit(scope, RemoteMediaEvents.SourceUpdate, data);\n });\n }\n }\n\n /**\n * Getter for mediaType\n */\n public get mediaType(): MediaType {\n return this.receiveSlot?.mediaType;\n }\n\n /**\n * Getter for memberId\n */\n public get memberId() {\n return this.receiveSlot?.memberId;\n }\n\n /**\n * Getter for csi\n */\n public get csi() {\n return this.receiveSlot?.csi;\n }\n\n /**\n * Getter for source state\n */\n public get sourceState(): StreamState {\n return this.receiveSlot?.sourceState;\n }\n\n /**\n * Getter for remote media stream\n */\n public get stream() {\n return this.receiveSlot?.stream;\n }\n\n /**\n * @internal\n * @returns {ReceiveSlot}\n */\n public getUnderlyingReceiveSlot() {\n return this.receiveSlot;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAEA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,YAAA,GAAAF,OAAA;AAAkE,SAAAG,WAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,WAAAD,CAAA,OAAAE,gBAAA,CAAAC,OAAA,EAAAH,CAAA,OAAAI,2BAAA,CAAAD,OAAA,EAAAJ,CAAA,EAAAM,yBAAA,KAAAC,kBAAA,CAAAN,CAAA,EAAAC,CAAA,YAAAC,gBAAA,CAAAC,OAAA,EAAAJ,CAAA,EAAAQ,WAAA,IAAAP,CAAA,CAAAQ,KAAA,CAAAT,CAAA,EAAAE,CAAA;AAAA,SAAAI,0BAAA,cAAAN,CAAA,IAAAU,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAN,kBAAA,CAAAG,OAAA,iCAAAV,CAAA,aAAAM,yBAAA,YAAAA,0BAAA,aAAAN,CAAA,UANlE;AAQO,IAAMc,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG;EAC/BE,YAAY,EAAEC,8BAAiB,CAACD,YAAY;EAC5CE,OAAO,EAAE;AACX,CAAC;AAQW;;AAEL,IAAMC,aAAa,GAAAJ,OAAA,CAAAI,aAAA,GAAG;EAC3B,KAAK,EAAE,EAAE;EACT,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASC,QAAQA,CAACC,QAA+B,EAAU;EAChE,IAAIC,KAAK;EAET,QAAQD,QAAQ;IACd,KAAK,WAAW;MACdC,KAAK,GAAGH,aAAa,CAAC,KAAK,CAAC;MAC5B;IACF,KAAK,YAAY;MACfG,KAAK,GAAGH,aAAa,CAAC,MAAM,CAAC;MAC7B;IACF,KAAK,OAAO;MACVG,KAAK,GAAGH,aAAa,CAAC,MAAM,CAAC;MAC7B;IACF,KAAK,QAAQ;MACXG,KAAK,GAAGH,aAAa,CAAC,MAAM,CAAC;MAC7B;IACF,KAAK,OAAO;MACVG,KAAK,GAAGH,aAAa,CAAC,OAAO,CAAC;MAC9B;IACF,KAAK,MAAM;MACTG,KAAK,GAAGH,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;MAChC;IACF;MACEI,oBAAW,CAACC,MAAM,CAACC,IAAI,mDAAAC,MAAA,CAC6BL,QAAQ,+BAC5D,CAAC;MACDC,KAAK,GAAGH,aAAa,CAAC,MAAM,CAAC;EACjC;EAEA,OAAOG,KAAK;AACd;AAQA,IAAIK,kBAAkB,GAAG,CAAC;;AAE1B;AACA;AACA;AACA;AACA;AACA;AALA,IAMaC,WAAW,GAAAb,OAAA,CAAAa,WAAA,0BAAAC,YAAA;EAkBtB;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAD,YACEE,WAAwB,EACxBC,mBAAwC,EACxCC,OAAiB,EACjB;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAA9B,OAAA,QAAAwB,WAAA;IACAK,KAAA,GAAAlC,UAAA,OAAA6B,WAAA;IAAQ,IAAAO,gBAAA,CAAA/B,OAAA,EAAA6B,KAAA;IAAA,IAAAE,gBAAA,CAAA/B,OAAA,EAAA6B,KAAA;IAAA,IAAAE,gBAAA,CAAA/B,OAAA,EAAA6B,KAAA;IAAA,IAAAE,gBAAA,CAAA/B,OAAA,EAAA6B,KAAA;IAAA,IAAAE,gBAAA,CAAA/B,OAAA,EAAA6B,KAAA;IAnBV;AACF;AACA;AACA;AACA;IAJE,IAAAE,gBAAA,CAAA/B,OAAA,EAAA6B,KAAA,kBAKuB,CAAC;IAetBN,kBAAkB,IAAI,CAAC;IACvBM,KAAA,CAAKH,WAAW,GAAGA,WAAW;IAC9BG,KAAA,CAAKF,mBAAmB,GAAGA,mBAAmB;IAC9CE,KAAA,CAAKD,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;IAC5BC,KAAA,CAAKG,mBAAmB,CAAC,CAAC;IAC1BH,KAAA,CAAKI,EAAE,QAAAX,MAAA,CAAQC,kBAAkB,OAAAD,MAAA,CAAIO,KAAA,CAAKH,WAAW,CAACO,EAAE,CAAE;IAAC,OAAAJ,KAAA;EAC7D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE,IAAAK,UAAA,CAAAlC,OAAA,EAAAwB,WAAA,EAAAC,YAAA;EAAA,WAAAU,aAAA,CAAAnC,OAAA,EAAAwB,WAAA;IAAAY,GAAA;IAAAC,KAAA,EAOA,SAAOC,WAAWA,CAACC,KAAK,EAAEC,MAAM,EAAE;MAAA,IAAAC,iBAAA;MAChC;MACA,IAAIC,EAAU;MAEd,IAAIH,KAAK,KAAK,CAAC,IAAIC,MAAM,KAAK,CAAC,EAAE;QAC/B;MACF;;MAEA;MACA;MACA,IAAMG,SAAS,GAAG,GAAG;MACrB,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,CAAS;QAAA,OAAKC,IAAI,CAACC,KAAK,CAACF,CAAC,GAAGF,SAAS,CAAC;MAAA;MAEnE,IAAIH,MAAM,GAAGI,kBAAkB,CAAC,EAAE,CAAC,EAAE;QACnCF,EAAE,GAAG3B,aAAa,CAAC,KAAK,CAAC;MAC3B,CAAC,MAAM,IAAIyB,MAAM,GAAGI,kBAAkB,CAAC,GAAG,CAAC,EAAE;QAC3CF,EAAE,GAAG3B,aAAa,CAAC,MAAM,CAAC;MAC5B,CAAC,MAAM,IAAIyB,MAAM,GAAGI,kBAAkB,CAAC,GAAG,CAAC,EAAE;QAC3CF,EAAE,GAAG3B,aAAa,CAAC,MAAM,CAAC;MAC5B,CAAC,MAAM,IAAIyB,MAAM,GAAGI,kBAAkB,CAAC,GAAG,CAAC,EAAE;QAC3CF,EAAE,GAAG3B,aAAa,CAAC,MAAM,CAAC;MAC5B,CAAC,MAAM,IAAIyB,MAAM,IAAI,GAAG,EAAE;QACxBE,EAAE,GAAG3B,aAAa,CAAC,MAAM,CAAC;MAC5B,CAAC,MAAM;QACL2B,EAAE,GAAG3B,aAAa,CAAC,OAAO,CAAC;MAC7B;MAEA,IAAI,CAACiC,YAAY,GAAGN,EAAE;MACtB,CAAAD,iBAAA,OAAI,CAACf,WAAW,cAAAe,iBAAA,uBAAhBA,iBAAA,CAAkBQ,QAAQ,CAACP,EAAE,CAAC;IAChC;;IAEA;AACF;AACA;AACA;EAHE;IAAAN,GAAA;IAAAC,KAAA,EAIA,SAAOa,iBAAiBA,CAAA,EAAuB;MAC7C,IAAI,IAAI,CAACF,YAAY,GAAG,CAAC,EAAE;QACzB,OAAO,IAAI,CAACA,YAAY;MAC1B;MAEA,IAAI,IAAI,CAACpB,OAAO,CAACuB,UAAU,EAAE;QAC3B,OAAOnC,QAAQ,CAAC,IAAI,CAACY,OAAO,CAACuB,UAAU,CAAC;MAC1C;MAEA,OAAOC,SAAS;IAClB;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAhB,GAAA;IAAAC,KAAA,EAQA,SAAOgB,IAAIA,CAAA,EAAgB;MAAA,IAAAC,kBAAA;MAAA,IAAfC,MAAM,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAG,IAAI;MACvB,IAAI,CAACE,kBAAkB,CAACH,MAAM,CAAC;MAC/B,CAAAD,kBAAA,OAAI,CAAC5B,WAAW,cAAA4B,kBAAA,uBAAhBA,kBAAA,CAAkBK,kBAAkB,CAAC,CAAC;MACtC,IAAI,CAACjC,WAAW,GAAG0B,SAAS;MAC5B,IAAI,CAACQ,IAAI,CACP;QACEC,IAAI,EAAE,yBAAyB;QAC/BC,QAAQ,EAAE;MACZ,CAAC,EACDpD,iBAAiB,CAACI,OAAO,EACzB,CAAC,CACH,CAAC;IACH;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARE;IAAAsB,GAAA;IAAAC,KAAA,EASA,SAAO0B,gBAAgBA,CAACC,GAAQ,EAAET,MAAe,EAAE;MACjD,IAAI,IAAI,CAACU,cAAc,EAAE;QACvB,IAAI,CAACP,kBAAkB,CAAC,KAAK,CAAC;MAChC;MAEA,IAAI,CAAC,IAAI,CAAChC,WAAW,EAAE;QACrB,MAAM,IAAIwC,KAAK,CAAC,kEAAkE,CAAC;MACrF;;MAEA;MACA,IAAMhD,KAAK,GAAG,IAAI,CAACgC,iBAAiB,CAAC,CAAC;MAEtC,IAAI,CAACe,cAAc,GAAG,IAAI,CAACtC,mBAAmB,CAACwC,UAAU,CACvD;QACEC,UAAU,EAAE;UACVC,MAAM,EAAE,mBAAmB;UAC3BL,GAAG,EAAHA;QACF,CAAC;QACDM,YAAY,EAAE,CAAC,IAAI,CAAC5C,WAAW,CAAC;QAChC6C,SAAS,EAAErD,KAAK,IAAI;UAClBsD,KAAK,EAAE,MAAM;UACbtD,KAAK,EAALA;QACF;MACF,CAAC,EACDqC,MACF,CAAC;IACH;;IAEA;AACF;AACA;EAFE;IAAAnB,GAAA;IAAAC,KAAA,EAGA,SAAOqB,kBAAkBA,CAACH,MAAe,EAAE;MACzC,IAAI,IAAI,CAACU,cAAc,EAAE;QACvB,IAAI,CAACtC,mBAAmB,CAAC8C,aAAa,CAAC,IAAI,CAACR,cAAc,EAAEV,MAAM,CAAC;QACnE,IAAI,CAACU,cAAc,GAAGb,SAAS;MACjC;IACF;;IAEA;AACF;AACA;EAFE;IAAAhB,GAAA;IAAAC,KAAA,EAGA,SAAQL,mBAAmBA,CAAA,EAAG;MAAA,IAAA0C,MAAA;MAC5B,IAAI,IAAI,CAAChD,WAAW,EAAE;QACpB,IAAMiD,KAAK,GAAG;UACZd,IAAI,EAAE,yBAAyB;UAC/BC,QAAQ,EAAE;QACZ,CAAC;QAED,IAAI,CAACpC,WAAW,CAACkD,EAAE,CAAC/D,8BAAiB,CAACD,YAAY,EAAE,UAACiE,IAAI,EAAK;UAC5DH,MAAI,CAACd,IAAI,CAACe,KAAK,EAAEjE,iBAAiB,CAACE,YAAY,EAAEiE,IAAI,CAAC;QACxD,CAAC,CAAC;MACJ;IACF;;IAEA;AACF;AACA;EAFE;IAAAzC,GAAA;IAAA0C,GAAA,EAGA,SAAAA,IAAA,EAAkC;MAAA,IAAAC,kBAAA;MAChC,QAAAA,kBAAA,GAAO,IAAI,CAACrD,WAAW,cAAAqD,kBAAA,uBAAhBA,kBAAA,CAAkBC,SAAS;IACpC;;IAEA;AACF;AACA;EAFE;IAAA5C,GAAA;IAAA0C,GAAA,EAGA,SAAAA,IAAA,EAAsB;MAAA,IAAAG,kBAAA;MACpB,QAAAA,kBAAA,GAAO,IAAI,CAACvD,WAAW,cAAAuD,kBAAA,uBAAhBA,kBAAA,CAAkBC,QAAQ;IACnC;;IAEA;AACF;AACA;EAFE;IAAA9C,GAAA;IAAA0C,GAAA,EAGA,SAAAA,IAAA,EAAiB;MAAA,IAAAK,kBAAA;MACf,QAAAA,kBAAA,GAAO,IAAI,CAACzD,WAAW,cAAAyD,kBAAA,uBAAhBA,kBAAA,CAAkBnB,GAAG;IAC9B;;IAEA;AACF;AACA;EAFE;IAAA5B,GAAA;IAAA0C,GAAA,EAGA,SAAAA,IAAA,EAAsC;MAAA,IAAAM,kBAAA;MACpC,QAAAA,kBAAA,GAAO,IAAI,CAAC1D,WAAW,cAAA0D,kBAAA,uBAAhBA,kBAAA,CAAkBC,WAAW;IACtC;;IAEA;AACF;AACA;EAFE;IAAAjD,GAAA;IAAA0C,GAAA,EAGA,SAAAA,IAAA,EAAoB;MAAA,IAAAQ,kBAAA;MAClB,QAAAA,kBAAA,GAAO,IAAI,CAAC5D,WAAW,cAAA4D,kBAAA,uBAAhBA,kBAAA,CAAkBC,MAAM;IACjC;;IAEA;AACF;AACA;AACA;EAHE;IAAAnD,GAAA;IAAAC,KAAA,EAIA,SAAOmD,wBAAwBA,CAAA,EAAG;MAChC,OAAO,IAAI,CAAC9D,WAAW;IACzB;EAAC;AAAA,EA3N8B+D,oBAAW","ignoreList":[]}
|
|
@@ -46,7 +46,7 @@ var RemoteMediaGroup = exports.RemoteMediaGroup = /*#__PURE__*/function () {
|
|
|
46
46
|
* @param {string} filter - 'all' (default) returns both pinned and unpinned
|
|
47
47
|
* @returns {Array<RemoteMedia>}
|
|
48
48
|
*/
|
|
49
|
-
(0, _createClass2.default)(RemoteMediaGroup, [{
|
|
49
|
+
return (0, _createClass2.default)(RemoteMediaGroup, [{
|
|
50
50
|
key: "getRemoteMedia",
|
|
51
51
|
value: function getRemoteMedia() {
|
|
52
52
|
var filter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';
|
|
@@ -316,6 +316,5 @@ var RemoteMediaGroup = exports.RemoteMediaGroup = /*#__PURE__*/function () {
|
|
|
316
316
|
return this.getEffectiveMaxFsForActiveSpeaker();
|
|
317
317
|
}
|
|
318
318
|
}]);
|
|
319
|
-
return RemoteMediaGroup;
|
|
320
319
|
}();
|
|
321
320
|
//# sourceMappingURL=remoteMediaGroup.js.map
|