mediasoup 3.9.1 → 3.9.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.
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActiveSpeakerObserver = void 0;
3
4
  const Logger_1 = require("./Logger");
4
5
  const RtpObserver_1 = require("./RtpObserver");
5
6
  const logger = new Logger_1.Logger('ActiveSpeakerObserver');
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AudioLevelObserver = void 0;
3
4
  const Logger_1 = require("./Logger");
4
5
  const RtpObserver_1 = require("./RtpObserver");
5
6
  const logger = new Logger_1.Logger('AudioLevelObserver');
@@ -1,19 +1,6 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {
3
- if (!privateMap.has(receiver)) {
4
- throw new TypeError("attempted to set private field on non-instance");
5
- }
6
- privateMap.set(receiver, value);
7
- return value;
8
- };
9
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {
10
- if (!privateMap.has(receiver)) {
11
- throw new TypeError("attempted to get private field on non-instance");
12
- }
13
- return privateMap.get(receiver);
14
- };
15
- var _closed, _producerSocket, _consumerSocket, _nextId, _sents, _recvBuffer;
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Channel = void 0;
17
4
  const os = require("os");
18
5
  const Logger_1 = require("./Logger");
19
6
  const EnhancedEventEmitter_1 = require("./EnhancedEventEmitter");
@@ -24,55 +11,55 @@ const logger = new Logger_1.Logger('Channel');
24
11
  const MESSAGE_MAX_LEN = 4194308;
25
12
  const PAYLOAD_MAX_LEN = 4194304;
26
13
  class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
14
+ // Closed flag.
15
+ #closed = false;
16
+ // Unix Socket instance for sending messages to the worker process.
17
+ #producerSocket;
18
+ // Unix Socket instance for receiving messages to the worker process.
19
+ #consumerSocket;
20
+ // Next id for messages sent to the worker process.
21
+ #nextId = 0;
22
+ // Map of pending sent requests.
23
+ #sents = new Map();
24
+ // Buffer for reading messages from the worker.
25
+ #recvBuffer = Buffer.alloc(0);
27
26
  /**
28
27
  * @private
29
28
  */
30
29
  constructor({ producerSocket, consumerSocket, pid }) {
31
30
  super();
32
- // Closed flag.
33
- _closed.set(this, false);
34
- // Unix Socket instance for sending messages to the worker process.
35
- _producerSocket.set(this, void 0);
36
- // Unix Socket instance for receiving messages to the worker process.
37
- _consumerSocket.set(this, void 0);
38
- // Next id for messages sent to the worker process.
39
- _nextId.set(this, 0);
40
- // Map of pending sent requests.
41
- _sents.set(this, new Map());
42
- // Buffer for reading messages from the worker.
43
- _recvBuffer.set(this, Buffer.alloc(0));
44
31
  logger.debug('constructor()');
45
- __classPrivateFieldSet(this, _producerSocket, producerSocket);
46
- __classPrivateFieldSet(this, _consumerSocket, consumerSocket);
32
+ this.#producerSocket = producerSocket;
33
+ this.#consumerSocket = consumerSocket;
47
34
  // Read Channel responses/notifications from the worker.
48
- __classPrivateFieldGet(this, _consumerSocket).on('data', (buffer) => {
49
- if (!__classPrivateFieldGet(this, _recvBuffer).length) {
50
- __classPrivateFieldSet(this, _recvBuffer, buffer);
35
+ this.#consumerSocket.on('data', (buffer) => {
36
+ if (!this.#recvBuffer.length) {
37
+ this.#recvBuffer = buffer;
51
38
  }
52
39
  else {
53
- __classPrivateFieldSet(this, _recvBuffer, Buffer.concat([__classPrivateFieldGet(this, _recvBuffer), buffer], __classPrivateFieldGet(this, _recvBuffer).length + buffer.length));
40
+ this.#recvBuffer = Buffer.concat([this.#recvBuffer, buffer], this.#recvBuffer.length + buffer.length);
54
41
  }
55
- if (__classPrivateFieldGet(this, _recvBuffer).length > PAYLOAD_MAX_LEN) {
42
+ if (this.#recvBuffer.length > PAYLOAD_MAX_LEN) {
56
43
  logger.error('receiving buffer is full, discarding all data in it');
57
44
  // Reset the buffer and exit.
58
- __classPrivateFieldSet(this, _recvBuffer, Buffer.alloc(0));
45
+ this.#recvBuffer = Buffer.alloc(0);
59
46
  return;
60
47
  }
61
48
  let msgStart = 0;
62
49
  while (true) // eslint-disable-line no-constant-condition
63
50
  {
64
- const readLen = __classPrivateFieldGet(this, _recvBuffer).length - msgStart;
51
+ const readLen = this.#recvBuffer.length - msgStart;
65
52
  if (readLen < 4) {
66
53
  // Incomplete data.
67
54
  break;
68
55
  }
69
- const dataView = new DataView(__classPrivateFieldGet(this, _recvBuffer).buffer, __classPrivateFieldGet(this, _recvBuffer).byteOffset + msgStart);
56
+ const dataView = new DataView(this.#recvBuffer.buffer, this.#recvBuffer.byteOffset + msgStart);
70
57
  const msgLen = dataView.getUint32(0, littleEndian);
71
58
  if (readLen < 4 + msgLen) {
72
59
  // Incomplete data.
73
60
  break;
74
61
  }
75
- const payload = __classPrivateFieldGet(this, _recvBuffer).subarray(msgStart + 4, msgStart + 4 + msgLen);
62
+ const payload = this.#recvBuffer.subarray(msgStart + 4, msgStart + 4 + msgLen);
76
63
  msgStart += 4 + msgLen;
77
64
  try {
78
65
  // We can receive JSON messages (Channel messages) or log strings.
@@ -108,42 +95,42 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
108
95
  }
109
96
  }
110
97
  if (msgStart != 0) {
111
- __classPrivateFieldSet(this, _recvBuffer, __classPrivateFieldGet(this, _recvBuffer).slice(msgStart));
98
+ this.#recvBuffer = this.#recvBuffer.slice(msgStart);
112
99
  }
113
100
  });
114
- __classPrivateFieldGet(this, _consumerSocket).on('end', () => (logger.debug('Consumer Channel ended by the worker process')));
115
- __classPrivateFieldGet(this, _consumerSocket).on('error', (error) => (logger.error('Consumer Channel error: %s', String(error))));
116
- __classPrivateFieldGet(this, _producerSocket).on('end', () => (logger.debug('Producer Channel ended by the worker process')));
117
- __classPrivateFieldGet(this, _producerSocket).on('error', (error) => (logger.error('Producer Channel error: %s', String(error))));
101
+ this.#consumerSocket.on('end', () => (logger.debug('Consumer Channel ended by the worker process')));
102
+ this.#consumerSocket.on('error', (error) => (logger.error('Consumer Channel error: %s', String(error))));
103
+ this.#producerSocket.on('end', () => (logger.debug('Producer Channel ended by the worker process')));
104
+ this.#producerSocket.on('error', (error) => (logger.error('Producer Channel error: %s', String(error))));
118
105
  }
119
106
  /**
120
107
  * @private
121
108
  */
122
109
  close() {
123
- if (__classPrivateFieldGet(this, _closed))
110
+ if (this.#closed)
124
111
  return;
125
112
  logger.debug('close()');
126
- __classPrivateFieldSet(this, _closed, true);
113
+ this.#closed = true;
127
114
  // Close every pending sent.
128
- for (const sent of __classPrivateFieldGet(this, _sents).values()) {
115
+ for (const sent of this.#sents.values()) {
129
116
  sent.close();
130
117
  }
131
118
  // Remove event listeners but leave a fake 'error' hander to avoid
132
119
  // propagation.
133
- __classPrivateFieldGet(this, _consumerSocket).removeAllListeners('end');
134
- __classPrivateFieldGet(this, _consumerSocket).removeAllListeners('error');
135
- __classPrivateFieldGet(this, _consumerSocket).on('error', () => { });
136
- __classPrivateFieldGet(this, _producerSocket).removeAllListeners('end');
137
- __classPrivateFieldGet(this, _producerSocket).removeAllListeners('error');
138
- __classPrivateFieldGet(this, _producerSocket).on('error', () => { });
120
+ this.#consumerSocket.removeAllListeners('end');
121
+ this.#consumerSocket.removeAllListeners('error');
122
+ this.#consumerSocket.on('error', () => { });
123
+ this.#producerSocket.removeAllListeners('end');
124
+ this.#producerSocket.removeAllListeners('error');
125
+ this.#producerSocket.on('error', () => { });
139
126
  // Destroy the socket after a while to allow pending incoming messages.
140
127
  setTimeout(() => {
141
128
  try {
142
- __classPrivateFieldGet(this, _producerSocket).destroy();
129
+ this.#producerSocket.destroy();
143
130
  }
144
131
  catch (error) { }
145
132
  try {
146
- __classPrivateFieldGet(this, _consumerSocket).destroy();
133
+ this.#consumerSocket.destroy();
147
134
  }
148
135
  catch (error) { }
149
136
  }, 200);
@@ -152,29 +139,29 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
152
139
  * @private
153
140
  */
154
141
  async request(method, internal, data) {
155
- __classPrivateFieldGet(this, _nextId) < 4294967295 ? __classPrivateFieldSet(this, _nextId, +__classPrivateFieldGet(this, _nextId) + 1) : (__classPrivateFieldSet(this, _nextId, 1));
156
- const id = __classPrivateFieldGet(this, _nextId);
142
+ this.#nextId < 4294967295 ? ++this.#nextId : (this.#nextId = 1);
143
+ const id = this.#nextId;
157
144
  logger.debug('request() [method:%s, id:%s]', method, id);
158
- if (__classPrivateFieldGet(this, _closed))
145
+ if (this.#closed)
159
146
  throw new errors_1.InvalidStateError('Channel closed');
160
147
  const request = { id, method, internal, data };
161
148
  const payload = JSON.stringify(request);
162
149
  if (Buffer.byteLength(payload) > MESSAGE_MAX_LEN)
163
150
  throw new Error('Channel request too big');
164
151
  // This may throw if closed or remote side ended.
165
- __classPrivateFieldGet(this, _producerSocket).write(Buffer.from(Uint32Array.of(Buffer.byteLength(payload)).buffer));
166
- __classPrivateFieldGet(this, _producerSocket).write(payload);
152
+ this.#producerSocket.write(Buffer.from(Uint32Array.of(Buffer.byteLength(payload)).buffer));
153
+ this.#producerSocket.write(payload);
167
154
  return new Promise((pResolve, pReject) => {
168
155
  const sent = {
169
156
  id: id,
170
157
  method: method,
171
158
  resolve: (data2) => {
172
- if (!__classPrivateFieldGet(this, _sents).delete(id))
159
+ if (!this.#sents.delete(id))
173
160
  return;
174
161
  pResolve(data2);
175
162
  },
176
163
  reject: (error) => {
177
- if (!__classPrivateFieldGet(this, _sents).delete(id))
164
+ if (!this.#sents.delete(id))
178
165
  return;
179
166
  pReject(error);
180
167
  },
@@ -183,13 +170,13 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
183
170
  }
184
171
  };
185
172
  // Add sent stuff to the map.
186
- __classPrivateFieldGet(this, _sents).set(id, sent);
173
+ this.#sents.set(id, sent);
187
174
  });
188
175
  }
189
176
  processMessage(msg) {
190
177
  // If a response, retrieve its associated request.
191
178
  if (msg.id) {
192
- const sent = __classPrivateFieldGet(this, _sents).get(msg.id);
179
+ const sent = this.#sents.get(msg.id);
193
180
  if (!sent) {
194
181
  logger.error('received response does not match any sent request [id:%s]', msg.id);
195
182
  return;
@@ -229,4 +216,3 @@ class Channel extends EnhancedEventEmitter_1.EnhancedEventEmitter {
229
216
  }
230
217
  }
231
218
  exports.Channel = Channel;
232
- _closed = new WeakMap(), _producerSocket = new WeakMap(), _consumerSocket = new WeakMap(), _nextId = new WeakMap(), _sents = new WeakMap(), _recvBuffer = new WeakMap();