mediasoup-client 3.6.52 → 3.6.55

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.
Files changed (85) hide show
  1. package/.vimrc +21 -0
  2. package/NO_GIT/Notes.txt +18 -0
  3. package/lib/Consumer.d.ts +16 -18
  4. package/lib/Consumer.d.ts.map +1 -1
  5. package/lib/Consumer.js +11 -17
  6. package/lib/DataConsumer.d.ts +13 -15
  7. package/lib/DataConsumer.d.ts.map +1 -1
  8. package/lib/DataConsumer.js +0 -13
  9. package/lib/DataProducer.d.ts +13 -15
  10. package/lib/DataProducer.d.ts.map +1 -1
  11. package/lib/DataProducer.js +0 -13
  12. package/lib/Device.d.ts +4 -6
  13. package/lib/Device.d.ts.map +1 -1
  14. package/lib/Device.js +1 -10
  15. package/lib/EnhancedEventEmitter.d.ts +19 -3
  16. package/lib/EnhancedEventEmitter.d.ts.map +1 -1
  17. package/lib/EnhancedEventEmitter.js +50 -14
  18. package/lib/Producer.d.ts +37 -22
  19. package/lib/Producer.d.ts.map +1 -1
  20. package/lib/Producer.js +18 -28
  21. package/lib/Transport.d.ts +43 -18
  22. package/lib/Transport.d.ts.map +1 -1
  23. package/lib/Transport.js +87 -41
  24. package/lib/handlers/Chrome55.d.ts +3 -1
  25. package/lib/handlers/Chrome55.d.ts.map +1 -1
  26. package/lib/handlers/Chrome55.js +20 -12
  27. package/lib/handlers/Chrome67.d.ts +3 -1
  28. package/lib/handlers/Chrome67.d.ts.map +1 -1
  29. package/lib/handlers/Chrome67.js +20 -12
  30. package/lib/handlers/Chrome70.d.ts +3 -1
  31. package/lib/handlers/Chrome70.d.ts.map +1 -1
  32. package/lib/handlers/Chrome70.js +23 -13
  33. package/lib/handlers/Chrome74.d.ts +3 -1
  34. package/lib/handlers/Chrome74.d.ts.map +1 -1
  35. package/lib/handlers/Chrome74.js +43 -13
  36. package/lib/handlers/Edge11.d.ts +3 -1
  37. package/lib/handlers/Edge11.d.ts.map +1 -1
  38. package/lib/handlers/Edge11.js +26 -18
  39. package/lib/handlers/FakeHandler.d.ts +5 -3
  40. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  41. package/lib/handlers/FakeHandler.js +14 -8
  42. package/lib/handlers/Firefox60.d.ts +3 -1
  43. package/lib/handlers/Firefox60.d.ts.map +1 -1
  44. package/lib/handlers/Firefox60.js +45 -13
  45. package/lib/handlers/HandlerInterface.d.ts +15 -11
  46. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  47. package/lib/handlers/HandlerInterface.js +0 -8
  48. package/lib/handlers/ReactNative.d.ts +3 -1
  49. package/lib/handlers/ReactNative.d.ts.map +1 -1
  50. package/lib/handlers/ReactNative.js +20 -12
  51. package/lib/handlers/Safari11.d.ts +3 -1
  52. package/lib/handlers/Safari11.d.ts.map +1 -1
  53. package/lib/handlers/Safari11.js +20 -12
  54. package/lib/handlers/Safari12.d.ts +3 -1
  55. package/lib/handlers/Safari12.d.ts.map +1 -1
  56. package/lib/handlers/Safari12.js +45 -13
  57. package/lib/handlers/ortc/edgeUtils.js +1 -5
  58. package/lib/handlers/sdp/MediaSection.js +1 -5
  59. package/lib/handlers/sdp/RemoteSdp.js +1 -5
  60. package/lib/handlers/sdp/commonUtils.js +1 -5
  61. package/lib/index.d.ts +1 -1
  62. package/lib/index.js +2 -6
  63. package/lib/ortc.js +1 -5
  64. package/lib/types.js +1 -5
  65. package/lib/utils.d.ts.map +1 -1
  66. package/package.json +7 -7
  67. package/src/Consumer.ts +44 -20
  68. package/src/DataConsumer.ts +19 -16
  69. package/src/DataProducer.ts +19 -16
  70. package/src/Device.ts +6 -6
  71. package/src/EnhancedEventEmitter.ts +105 -22
  72. package/src/Producer.ts +97 -31
  73. package/src/Transport.ts +185 -58
  74. package/src/handlers/Chrome55.ts +31 -8
  75. package/src/handlers/Chrome67.ts +31 -8
  76. package/src/handlers/Chrome70.ts +34 -8
  77. package/src/handlers/Chrome74.ts +82 -8
  78. package/src/handlers/Edge11.ts +38 -15
  79. package/src/handlers/FakeHandler.ts +22 -6
  80. package/src/handlers/Firefox60.ts +84 -8
  81. package/src/handlers/HandlerInterface.ts +19 -11
  82. package/src/handlers/ReactNative.ts +31 -8
  83. package/src/handlers/Safari11.ts +31 -8
  84. package/src/handlers/Safari12.ts +84 -8
  85. package/src/utils.ts +0 -1
package/src/Consumer.ts CHANGED
@@ -3,6 +3,8 @@ import { EnhancedEventEmitter } from './EnhancedEventEmitter';
3
3
  import { InvalidStateError } from './errors';
4
4
  import { MediaKind, RtpParameters } from './RtpParameters';
5
5
 
6
+ const logger = new Logger('Consumer');
7
+
6
8
  export type ConsumerOptions =
7
9
  {
8
10
  id?: string;
@@ -12,9 +14,26 @@ export type ConsumerOptions =
12
14
  appData?: Record<string, unknown>;
13
15
  }
14
16
 
15
- const logger = new Logger('Consumer');
17
+ export type ConsumerEvents =
18
+ {
19
+ transportclose: [];
20
+ trackended: [];
21
+ // Private events.
22
+ '@getstats': [(stats: RTCStatsReport) => void, (error: Error) => void];
23
+ '@close': [];
24
+ '@pause': [];
25
+ '@resume': [];
26
+ }
27
+
28
+ export type ConsumerObserverEvents =
29
+ {
30
+ close: [];
31
+ pause: [];
32
+ resume: [];
33
+ trackended: [];
34
+ }
16
35
 
17
- export class Consumer extends EnhancedEventEmitter
36
+ export class Consumer extends EnhancedEventEmitter<ConsumerEvents>
18
37
  {
19
38
  // Id.
20
39
  private readonly _id: string;
@@ -35,16 +54,8 @@ export class Consumer extends EnhancedEventEmitter
35
54
  // App custom data.
36
55
  private readonly _appData: Record<string, unknown>;
37
56
  // Observer instance.
38
- protected readonly _observer = new EnhancedEventEmitter();
57
+ protected readonly _observer = new EnhancedEventEmitter<ConsumerObserverEvents>();
39
58
 
40
- /**
41
- * @emits transportclose
42
- * @emits trackended
43
- * @emits @getstats
44
- * @emits @close
45
- * @emits @pause
46
- * @emits @resume
47
- */
48
59
  constructor(
49
60
  {
50
61
  id,
@@ -172,14 +183,6 @@ export class Consumer extends EnhancedEventEmitter
172
183
  throw new Error('cannot override appData object');
173
184
  }
174
185
 
175
- /**
176
- * Observer.
177
- *
178
- * @emits close
179
- * @emits pause
180
- * @emits resume
181
- * @emits trackended
182
- */
183
186
  get observer(): EnhancedEventEmitter
184
187
  {
185
188
  return this._observer;
@@ -233,7 +236,14 @@ export class Consumer extends EnhancedEventEmitter
233
236
  if (this._closed)
234
237
  throw new InvalidStateError('closed');
235
238
 
236
- return this.safeEmitAsPromise('@getstats');
239
+ return new Promise<RTCStatsReport>((resolve, reject) =>
240
+ {
241
+ this.safeEmit(
242
+ '@getstats',
243
+ resolve,
244
+ reject
245
+ );
246
+ });
237
247
  }
238
248
 
239
249
  /**
@@ -250,6 +260,13 @@ export class Consumer extends EnhancedEventEmitter
250
260
  return;
251
261
  }
252
262
 
263
+ if (this._paused)
264
+ {
265
+ logger.debug('pause() | Consumer is already paused');
266
+
267
+ return;
268
+ }
269
+
253
270
  this._paused = true;
254
271
  this._track.enabled = false;
255
272
 
@@ -273,6 +290,13 @@ export class Consumer extends EnhancedEventEmitter
273
290
  return;
274
291
  }
275
292
 
293
+ if (!this._paused)
294
+ {
295
+ logger.debug('resume() | Consumer is already resumed');
296
+
297
+ return;
298
+ }
299
+
276
300
  this._paused = false;
277
301
  this._track.enabled = true;
278
302
 
@@ -2,6 +2,8 @@ import { Logger } from './Logger';
2
2
  import { EnhancedEventEmitter } from './EnhancedEventEmitter';
3
3
  import { SctpStreamParameters } from './SctpParameters';
4
4
 
5
+ const logger = new Logger('DataConsumer');
6
+
5
7
  export type DataConsumerOptions =
6
8
  {
7
9
  id?: string;
@@ -12,9 +14,23 @@ export type DataConsumerOptions =
12
14
  appData?: Record<string, unknown>;
13
15
  }
14
16
 
15
- const logger = new Logger('DataConsumer');
17
+ export type DataConsumerEvents =
18
+ {
19
+ transportclose: [];
20
+ open: [];
21
+ error: [Error];
22
+ close: [];
23
+ message: [any];
24
+ // Private events.
25
+ '@close': [];
26
+ }
27
+
28
+ export type DataConsumerObserverEvents =
29
+ {
30
+ close: [];
31
+ }
16
32
 
17
- export class DataConsumer extends EnhancedEventEmitter
33
+ export class DataConsumer extends EnhancedEventEmitter<DataConsumerEvents>
18
34
  {
19
35
  // Id.
20
36
  private readonly _id: string;
@@ -29,16 +45,8 @@ export class DataConsumer extends EnhancedEventEmitter
29
45
  // App custom data.
30
46
  private readonly _appData: Record<string, unknown>;
31
47
  // Observer instance.
32
- protected readonly _observer = new EnhancedEventEmitter();
48
+ protected readonly _observer = new EnhancedEventEmitter<DataConsumerObserverEvents>();
33
49
 
34
- /**
35
- * @emits transportclose
36
- * @emits open
37
- * @emits error - (error: Error)
38
- * @emits close
39
- * @emits message - (message: any)
40
- * @emits @close
41
- */
42
50
  constructor(
43
51
  {
44
52
  id,
@@ -158,11 +166,6 @@ export class DataConsumer extends EnhancedEventEmitter
158
166
  throw new Error('cannot override appData object');
159
167
  }
160
168
 
161
- /**
162
- * Observer.
163
- *
164
- * @emits close
165
- */
166
169
  get observer(): EnhancedEventEmitter
167
170
  {
168
171
  return this._observer;
@@ -3,6 +3,8 @@ import { EnhancedEventEmitter } from './EnhancedEventEmitter';
3
3
  import { InvalidStateError } from './errors';
4
4
  import { SctpStreamParameters } from './SctpParameters';
5
5
 
6
+ const logger = new Logger('DataProducer');
7
+
6
8
  export type DataProducerOptions =
7
9
  {
8
10
  ordered?: boolean;
@@ -13,9 +15,23 @@ export type DataProducerOptions =
13
15
  appData?: Record<string, unknown>;
14
16
  }
15
17
 
16
- const logger = new Logger('DataProducer');
18
+ export type DataProducerEvents =
19
+ {
20
+ transportclose: [];
21
+ open: [];
22
+ error: [Error];
23
+ close: [];
24
+ bufferedamountlow: [];
25
+ // Private events.
26
+ '@close': [];
27
+ }
17
28
 
18
- export class DataProducer extends EnhancedEventEmitter
29
+ export type DataProducerObserverEvents =
30
+ {
31
+ close: [];
32
+ }
33
+
34
+ export class DataProducer extends EnhancedEventEmitter<DataProducerEvents>
19
35
  {
20
36
  // Id.
21
37
  private readonly _id: string;
@@ -28,16 +44,8 @@ export class DataProducer extends EnhancedEventEmitter
28
44
  // App custom data.
29
45
  private readonly _appData: Record<string, unknown>;
30
46
  // Observer instance.
31
- protected readonly _observer = new EnhancedEventEmitter();
47
+ protected readonly _observer = new EnhancedEventEmitter<DataProducerObserverEvents>();
32
48
 
33
- /**
34
- * @emits transportclose
35
- * @emits open
36
- * @emits error - (error: Error)
37
- * @emits close
38
- * @emits bufferedamountlow
39
- * @emits @close
40
- */
41
49
  constructor(
42
50
  {
43
51
  id,
@@ -154,11 +162,6 @@ export class DataProducer extends EnhancedEventEmitter
154
162
  throw new Error('cannot override appData object');
155
163
  }
156
164
 
157
- /**
158
- * Observer.
159
- *
160
- * @emits close
161
- */
162
165
  get observer(): EnhancedEventEmitter
163
166
  {
164
167
  return this._observer;
package/src/Device.ts CHANGED
@@ -179,6 +179,11 @@ export function detectDevice(): BuiltinHandlerName | undefined
179
179
  }
180
180
  }
181
181
 
182
+ export type DeviceObserverEvents =
183
+ {
184
+ newtransport: [Transport];
185
+ }
186
+
182
187
  export class Device
183
188
  {
184
189
  // RTC handler factory.
@@ -197,7 +202,7 @@ export class Device
197
202
  // Local SCTP capabilities.
198
203
  private _sctpCapabilities?: SctpCapabilities;
199
204
  // Observer instance.
200
- protected readonly _observer = new EnhancedEventEmitter();
205
+ protected readonly _observer = new EnhancedEventEmitter<DeviceObserverEvents>();
201
206
 
202
207
  /**
203
208
  * Create a new Device to connect to mediasoup server.
@@ -340,11 +345,6 @@ export class Device
340
345
  return this._sctpCapabilities!;
341
346
  }
342
347
 
343
- /**
344
- * Observer.
345
- *
346
- * @emits newtransport - (transport: Transport)
347
- */
348
348
  get observer(): EnhancedEventEmitter
349
349
  {
350
350
  return this._observer;
@@ -3,7 +3,9 @@ import { Logger } from './Logger';
3
3
 
4
4
  const logger = new Logger('EnhancedEventEmitter');
5
5
 
6
- export class EnhancedEventEmitter extends EventEmitter
6
+ type Events = Record<string, any[]>
7
+
8
+ export class EnhancedEventEmitter<E extends Events = Events> extends EventEmitter
7
9
  {
8
10
  constructor()
9
11
  {
@@ -11,40 +13,121 @@ export class EnhancedEventEmitter extends EventEmitter
11
13
  this.setMaxListeners(Infinity);
12
14
  }
13
15
 
14
- safeEmit(event: string, ...args: any[]): boolean
16
+ emit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean
17
+ {
18
+ return super.emit(eventName, ...args);
19
+ }
20
+
21
+ /**
22
+ * Special addition to the EventEmitter API.
23
+ */
24
+ safeEmit<K extends keyof E & string>(eventName: K, ...args: E[K]): boolean
15
25
  {
16
- const numListeners = this.listenerCount(event);
26
+ const numListeners = super.listenerCount(eventName);
17
27
 
18
28
  try
19
29
  {
20
- return this.emit(event, ...args);
30
+ return super.emit(eventName, ...args);
21
31
  }
22
32
  catch (error)
23
33
  {
24
34
  logger.error(
25
- 'safeEmit() | event listener threw an error [event:%s]:%o',
26
- event, error);
35
+ 'safeEmit() | event listener threw an error [eventName:%s]:%o',
36
+ eventName, error);
27
37
 
28
38
  return Boolean(numListeners);
29
39
  }
30
40
  }
31
41
 
32
- async safeEmitAsPromise(event: string, ...args: any[]): Promise<any>
42
+ on<K extends keyof E & string>(
43
+ eventName: K,
44
+ listener: (...args: E[K]) => void
45
+ ): this
33
46
  {
34
- return new Promise((resolve, reject) =>
35
- {
36
- try
37
- {
38
- this.emit(event, ...args, resolve, reject);
39
- }
40
- catch (error)
41
- {
42
- logger.error(
43
- 'safeEmitAsPromise() | event listener threw an error [event:%s]:%o',
44
- event, error);
45
-
46
- reject(error);
47
- }
48
- });
47
+ super.on(eventName, listener as (...args: any[]) => void);
48
+
49
+ return this;
50
+ }
51
+
52
+ off<K extends keyof E & string>(
53
+ eventName: K,
54
+ listener: (...args: E[K]) => void
55
+ ): this
56
+ {
57
+ super.off(eventName, listener as (...args: any[]) => void);
58
+
59
+ return this;
60
+ }
61
+
62
+ addListener<K extends keyof E & string>(
63
+ eventName: K,
64
+ listener: (...args: E[K]) => void
65
+ ): this
66
+ {
67
+ super.on(eventName, listener as (...args: any[]) => void);
68
+
69
+ return this;
70
+ }
71
+
72
+ prependListener<K extends keyof E & string>(
73
+ eventName: K,
74
+ listener: (...args: E[K]) => void
75
+ ): this
76
+ {
77
+ super.prependListener(eventName, listener as (...args: any[]) => void);
78
+
79
+ return this;
80
+ }
81
+
82
+ once<K extends keyof E & string>(
83
+ eventName: K,
84
+ listener: (...args: E[K]) => void
85
+ ): this
86
+ {
87
+ super.once(eventName, listener as (...args: any[]) => void);
88
+
89
+ return this;
90
+ }
91
+
92
+ prependOnceListener<K extends keyof E & string>(
93
+ eventName: K,
94
+ listener: (...args: E[K]) => void
95
+ ): this
96
+ {
97
+ super.prependOnceListener(eventName, listener as (...args: any[]) => void);
98
+
99
+ return this;
100
+ }
101
+
102
+ removeListener<K extends keyof E & string>(
103
+ eventName: K,
104
+ listener: (...args: E[K]) => void
105
+ ): this
106
+ {
107
+ super.off(eventName, listener as (...args: any[]) => void);
108
+
109
+ return this;
110
+ }
111
+
112
+ removeAllListeners<K extends keyof E & string>(eventName?: K): this
113
+ {
114
+ super.removeAllListeners(eventName);
115
+
116
+ return this;
117
+ }
118
+
119
+ listenerCount<K extends keyof E & string>(eventName: K): number
120
+ {
121
+ return super.listenerCount(eventName);
122
+ }
123
+
124
+ listeners<K extends keyof E & string>(eventName: K): Function[]
125
+ {
126
+ return super.listeners(eventName);
127
+ }
128
+
129
+ rawListeners<K extends keyof E & string>(eventName: K): Function[]
130
+ {
131
+ return super.rawListeners(eventName);
49
132
  }
50
133
  }
package/src/Producer.ts CHANGED
@@ -8,6 +8,8 @@ import {
8
8
  RtpEncodingParameters
9
9
  } from './RtpParameters';
10
10
 
11
+ const logger = new Logger('Producer');
12
+
11
13
  export type ProducerOptions =
12
14
  {
13
15
  track?: MediaStreamTrack;
@@ -34,9 +36,50 @@ export type ProducerCodecOptions =
34
36
  videoGoogleMinBitrate?: number;
35
37
  }
36
38
 
37
- const logger = new Logger('Producer');
39
+ export type ProducerEvents =
40
+ {
41
+ transportclose: [];
42
+ trackended: [];
43
+ // Private events.
44
+ '@pause': [
45
+ () => void,
46
+ (error: Error) => void
47
+ ];
48
+ '@resume': [
49
+ () => void,
50
+ (error: Error) => void
51
+ ];
52
+ '@replacetrack':
53
+ [
54
+ MediaStreamTrack | null,
55
+ () => void,
56
+ (error: Error) => void
57
+ ];
58
+ '@setmaxspatiallayer':
59
+ [
60
+ number,
61
+ () => void,
62
+ (error: Error) => void
63
+ ];
64
+ '@setrtpencodingparameters':
65
+ [
66
+ RTCRtpEncodingParameters,
67
+ () => void,
68
+ (error: Error) => void
69
+ ];
70
+ '@getstats': [(stats: RTCStatsReport) => void, (error: Error) => void];
71
+ '@close': [];
72
+ }
38
73
 
39
- export class Producer extends EnhancedEventEmitter
74
+ export type ProducerObserverEvents =
75
+ {
76
+ close: [];
77
+ pause: [];
78
+ resume: [];
79
+ trackended: [];
80
+ }
81
+
82
+ export class Producer extends EnhancedEventEmitter<ProducerEvents>
40
83
  {
41
84
  // Id.
42
85
  private readonly _id: string;
@@ -65,17 +108,8 @@ export class Producer extends EnhancedEventEmitter
65
108
  // App custom data.
66
109
  private readonly _appData: Record<string, unknown>;
67
110
  // Observer instance.
68
- protected readonly _observer = new EnhancedEventEmitter();
111
+ protected readonly _observer = new EnhancedEventEmitter<ProducerObserverEvents>();
69
112
 
70
- /**
71
- * @emits transportclose
72
- * @emits trackended
73
- * @emits @replacetrack - (track: MediaStreamTrack | null)
74
- * @emits @setmaxspatiallayer - (spatialLayer: string)
75
- * @emits @setrtpencodingparameters - (params: any)
76
- * @emits @getstats
77
- * @emits @close
78
- */
79
113
  constructor(
80
114
  {
81
115
  id,
@@ -216,14 +250,6 @@ export class Producer extends EnhancedEventEmitter
216
250
  throw new Error('cannot override appData object');
217
251
  }
218
252
 
219
- /**
220
- * Observer.
221
- *
222
- * @emits close
223
- * @emits pause
224
- * @emits resume
225
- * @emits trackended
226
- */
227
253
  get observer(): EnhancedEventEmitter
228
254
  {
229
255
  return this._observer;
@@ -277,7 +303,14 @@ export class Producer extends EnhancedEventEmitter
277
303
  if (this._closed)
278
304
  throw new InvalidStateError('closed');
279
305
 
280
- return this.safeEmitAsPromise('@getstats');
306
+ return new Promise<RTCStatsReport>((resolve, reject) =>
307
+ {
308
+ this.safeEmit(
309
+ '@getstats',
310
+ resolve,
311
+ reject
312
+ );
313
+ });
281
314
  }
282
315
 
283
316
  /**
@@ -303,8 +336,14 @@ export class Producer extends EnhancedEventEmitter
303
336
 
304
337
  if (this._zeroRtpOnPause)
305
338
  {
306
- this.safeEmitAsPromise('@replacetrack', null)
307
- .catch(() => {});
339
+ new Promise<void>((resolve, reject) =>
340
+ {
341
+ this.safeEmit(
342
+ '@pause',
343
+ resolve,
344
+ reject
345
+ );
346
+ }).catch(() => {});
308
347
  }
309
348
 
310
349
  // Emit observer event.
@@ -334,8 +373,14 @@ export class Producer extends EnhancedEventEmitter
334
373
 
335
374
  if (this._zeroRtpOnPause)
336
375
  {
337
- this.safeEmitAsPromise('@replacetrack', this._track)
338
- .catch(() => {});
376
+ new Promise<void>((resolve, reject) =>
377
+ {
378
+ this.safeEmit(
379
+ '@resume',
380
+ resolve,
381
+ reject
382
+ );
383
+ }).catch(() => {});
339
384
  }
340
385
 
341
386
  // Emit observer event.
@@ -376,7 +421,15 @@ export class Producer extends EnhancedEventEmitter
376
421
 
377
422
  if (!this._zeroRtpOnPause || !this._paused)
378
423
  {
379
- await this.safeEmitAsPromise('@replacetrack', track);
424
+ await new Promise<void>((resolve, reject) =>
425
+ {
426
+ this.safeEmit(
427
+ '@replacetrack',
428
+ track,
429
+ resolve,
430
+ reject
431
+ );
432
+ });
380
433
  }
381
434
 
382
435
  // Destroy the previous track.
@@ -414,14 +467,19 @@ export class Producer extends EnhancedEventEmitter
414
467
  if (spatialLayer === this._maxSpatialLayer)
415
468
  return;
416
469
 
417
- await this.safeEmitAsPromise('@setmaxspatiallayer', spatialLayer);
470
+ await new Promise<void>((resolve, reject) =>
471
+ {
472
+ this.safeEmit(
473
+ '@setmaxspatiallayer',
474
+ spatialLayer,
475
+ resolve,
476
+ reject
477
+ );
478
+ }).catch(() => {});
418
479
 
419
480
  this._maxSpatialLayer = spatialLayer;
420
481
  }
421
482
 
422
- /**
423
- * Sets the DSCP value.
424
- */
425
483
  async setRtpEncodingParameters(
426
484
  params: RTCRtpEncodingParameters
427
485
  ): Promise<void>
@@ -431,7 +489,15 @@ export class Producer extends EnhancedEventEmitter
431
489
  else if (typeof params !== 'object')
432
490
  throw new TypeError('invalid params');
433
491
 
434
- await this.safeEmitAsPromise('@setrtpencodingparameters', params);
492
+ await new Promise<void>((resolve, reject) =>
493
+ {
494
+ this.safeEmit(
495
+ '@setrtpencodingparameters',
496
+ params,
497
+ resolve,
498
+ reject
499
+ );
500
+ });
435
501
  }
436
502
 
437
503
  private _onTrackEnded(): void