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/lib/Producer.js CHANGED
@@ -6,15 +6,6 @@ const EnhancedEventEmitter_1 = require("./EnhancedEventEmitter");
6
6
  const errors_1 = require("./errors");
7
7
  const logger = new Logger_1.Logger('Producer');
8
8
  class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
9
- /**
10
- * @emits transportclose
11
- * @emits trackended
12
- * @emits @replacetrack - (track: MediaStreamTrack | null)
13
- * @emits @setmaxspatiallayer - (spatialLayer: string)
14
- * @emits @setrtpencodingparameters - (params: any)
15
- * @emits @getstats
16
- * @emits @close
17
- */
18
9
  constructor({ id, localId, rtpSender, track, rtpParameters, stopTracks, disableTrackOnPause, zeroRtpOnPause, appData }) {
19
10
  super();
20
11
  // Closed flag.
@@ -108,14 +99,6 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
108
99
  set appData(appData) {
109
100
  throw new Error('cannot override appData object');
110
101
  }
111
- /**
112
- * Observer.
113
- *
114
- * @emits close
115
- * @emits pause
116
- * @emits resume
117
- * @emits trackended
118
- */
119
102
  get observer() {
120
103
  return this._observer;
121
104
  }
@@ -151,7 +134,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
151
134
  async getStats() {
152
135
  if (this._closed)
153
136
  throw new errors_1.InvalidStateError('closed');
154
- return this.safeEmitAsPromise('@getstats');
137
+ return new Promise((resolve, reject) => {
138
+ this.safeEmit('@getstats', resolve, reject);
139
+ });
155
140
  }
156
141
  /**
157
142
  * Pauses sending media.
@@ -167,8 +152,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
167
152
  this._track.enabled = false;
168
153
  }
169
154
  if (this._zeroRtpOnPause) {
170
- this.safeEmitAsPromise('@replacetrack', null)
171
- .catch(() => { });
155
+ new Promise((resolve, reject) => {
156
+ this.safeEmit('@pause', resolve, reject);
157
+ }).catch(() => { });
172
158
  }
173
159
  // Emit observer event.
174
160
  this._observer.safeEmit('pause');
@@ -187,8 +173,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
187
173
  this._track.enabled = true;
188
174
  }
189
175
  if (this._zeroRtpOnPause) {
190
- this.safeEmitAsPromise('@replacetrack', this._track)
191
- .catch(() => { });
176
+ new Promise((resolve, reject) => {
177
+ this.safeEmit('@resume', resolve, reject);
178
+ }).catch(() => { });
192
179
  }
193
180
  // Emit observer event.
194
181
  this._observer.safeEmit('resume');
@@ -218,7 +205,9 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
218
205
  return;
219
206
  }
220
207
  if (!this._zeroRtpOnPause || !this._paused) {
221
- await this.safeEmitAsPromise('@replacetrack', track);
208
+ await new Promise((resolve, reject) => {
209
+ this.safeEmit('@replacetrack', track, resolve, reject);
210
+ });
222
211
  }
223
212
  // Destroy the previous track.
224
213
  this._destroyTrack();
@@ -247,18 +236,19 @@ class Producer extends EnhancedEventEmitter_1.EnhancedEventEmitter {
247
236
  throw new TypeError('invalid spatialLayer');
248
237
  if (spatialLayer === this._maxSpatialLayer)
249
238
  return;
250
- await this.safeEmitAsPromise('@setmaxspatiallayer', spatialLayer);
239
+ await new Promise((resolve, reject) => {
240
+ this.safeEmit('@setmaxspatiallayer', spatialLayer, resolve, reject);
241
+ }).catch(() => { });
251
242
  this._maxSpatialLayer = spatialLayer;
252
243
  }
253
- /**
254
- * Sets the DSCP value.
255
- */
256
244
  async setRtpEncodingParameters(params) {
257
245
  if (this._closed)
258
246
  throw new errors_1.InvalidStateError('closed');
259
247
  else if (typeof params !== 'object')
260
248
  throw new TypeError('invalid params');
261
- await this.safeEmitAsPromise('@setrtpencodingparameters', params);
249
+ await new Promise((resolve, reject) => {
250
+ this.safeEmit('@setrtpencodingparameters', params, resolve, reject);
251
+ });
262
252
  }
263
253
  _onTrackEnded() {
264
254
  logger.debug('track "ended" event');
@@ -4,7 +4,8 @@ import { Producer, ProducerOptions } from './Producer';
4
4
  import { Consumer, ConsumerOptions } from './Consumer';
5
5
  import { DataProducer, DataProducerOptions } from './DataProducer';
6
6
  import { DataConsumer, DataConsumerOptions } from './DataConsumer';
7
- import { SctpParameters } from './SctpParameters';
7
+ import { RtpParameters, MediaKind } from './RtpParameters';
8
+ import { SctpParameters, SctpStreamParameters } from './SctpParameters';
8
9
  interface InternalTransportOptions extends TransportOptions {
9
10
  direction: 'send' | 'recv';
10
11
  handlerFactory: HandlerFactory;
@@ -100,7 +101,43 @@ export declare type PlainRtpParameters = {
100
101
  ipVersion: 4 | 6;
101
102
  port: number;
102
103
  };
103
- export declare class Transport extends EnhancedEventEmitter {
104
+ export declare type TransportEvents = {
105
+ connect: [{
106
+ dtlsParameters: DtlsParameters;
107
+ }, () => void, (error: Error) => void];
108
+ connectionstatechange: [ConnectionState];
109
+ produce: [
110
+ {
111
+ kind: MediaKind;
112
+ rtpParameters: RtpParameters;
113
+ appData: Record<string, unknown>;
114
+ },
115
+ ({ id }: {
116
+ id: string;
117
+ }) => void,
118
+ (error: Error) => void
119
+ ];
120
+ producedata: [
121
+ {
122
+ sctpStreamParameters: SctpStreamParameters;
123
+ label?: string;
124
+ protocol?: string;
125
+ appData: Record<string, unknown>;
126
+ },
127
+ ({ id }: {
128
+ id: string;
129
+ }) => void,
130
+ (error: Error) => void
131
+ ];
132
+ };
133
+ export declare type TransportObserverEvents = {
134
+ close: [];
135
+ newproducer: [Producer];
136
+ newconsumer: [Consumer];
137
+ newdataproducer: [DataProducer];
138
+ newdataconsumer: [DataConsumer];
139
+ };
140
+ export declare class Transport extends EnhancedEventEmitter<TransportEvents> {
104
141
  private readonly _id;
105
142
  private _closed;
106
143
  private readonly _direction;
@@ -122,13 +159,9 @@ export declare class Transport extends EnhancedEventEmitter {
122
159
  private _consumerPauseInProgress;
123
160
  private _pendingResumeConsumers;
124
161
  private _consumerResumeInProgress;
125
- protected readonly _observer: EnhancedEventEmitter;
126
- /**
127
- * @emits connect - (transportLocalParameters: any, callback: Function, errback: Function)
128
- * @emits connectionstatechange - (connectionState: ConnectionState)
129
- * @emits produce - (producerLocalParameters: any, callback: Function, errback: Function)
130
- * @emits producedata - (dataProducerLocalParameters: any, callback: Function, errback: Function)
131
- */
162
+ private _pendingCloseConsumers;
163
+ private _consumerCloseInProgress;
164
+ protected readonly _observer: EnhancedEventEmitter<TransportObserverEvents>;
132
165
  constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, appData, handlerFactory, extendedRtpCapabilities, canProduceByKind }: InternalTransportOptions);
133
166
  /**
134
167
  * Transport id.
@@ -158,15 +191,6 @@ export declare class Transport extends EnhancedEventEmitter {
158
191
  * Invalid setter.
159
192
  */
160
193
  set appData(appData: Record<string, unknown>);
161
- /**
162
- * Observer.
163
- *
164
- * @emits close
165
- * @emits newproducer - (producer: Producer)
166
- * @emits newconsumer - (producer: Producer)
167
- * @emits newdataproducer - (dataProducer: DataProducer)
168
- * @emits newdataconsumer - (dataProducer: DataProducer)
169
- */
170
194
  get observer(): EnhancedEventEmitter;
171
195
  /**
172
196
  * Close the Transport.
@@ -209,6 +233,7 @@ export declare class Transport extends EnhancedEventEmitter {
209
233
  _createPendingConsumers(): Promise<void>;
210
234
  _pausePendingConsumers(): void;
211
235
  _resumePendingConsumers(): void;
236
+ _closePendingConsumers(): void;
212
237
  _handleHandler(): void;
213
238
  _handleProducer(producer: Producer): void;
214
239
  _handleConsumer(consumer: Consumer): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Transport.d.ts","sourceRoot":"","sources":["../src/Transport.ts"],"names":[],"mappings":"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"}
package/lib/Transport.js CHANGED
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
5
  }) : (function(o, m, k, k2) {
10
6
  if (k2 === undefined) k2 = k;
11
7
  o[k2] = m[k];
@@ -34,6 +30,7 @@ const Producer_1 = require("./Producer");
34
30
  const Consumer_1 = require("./Consumer");
35
31
  const DataProducer_1 = require("./DataProducer");
36
32
  const DataConsumer_1 = require("./DataConsumer");
33
+ const logger = new Logger_1.Logger('Transport');
37
34
  class ConsumerCreationTask {
38
35
  constructor(consumerOptions) {
39
36
  this.consumerOptions = consumerOptions;
@@ -43,14 +40,7 @@ class ConsumerCreationTask {
43
40
  });
44
41
  }
45
42
  }
46
- const logger = new Logger_1.Logger('Transport');
47
43
  class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
48
- /**
49
- * @emits connect - (transportLocalParameters: any, callback: Function, errback: Function)
50
- * @emits connectionstatechange - (connectionState: ConnectionState)
51
- * @emits produce - (producerLocalParameters: any, callback: Function, errback: Function)
52
- * @emits producedata - (dataProducerLocalParameters: any, callback: Function, errback: Function)
53
- */
54
44
  constructor({ direction, id, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, appData, handlerFactory, extendedRtpCapabilities, canProduceByKind }) {
55
45
  super();
56
46
  // Closed flag.
@@ -81,6 +71,10 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
81
71
  this._pendingResumeConsumers = new Map();
82
72
  // Consumer resume in progress flag.
83
73
  this._consumerResumeInProgress = false;
74
+ // Consumers pending to be closed.
75
+ this._pendingCloseConsumers = new Map();
76
+ // Consumer close in progress flag.
77
+ this._consumerCloseInProgress = false;
84
78
  // Observer instance.
85
79
  this._observer = new EnhancedEventEmitter_1.EnhancedEventEmitter();
86
80
  logger.debug('constructor() [id:%s, direction:%s]', id, direction);
@@ -156,15 +150,6 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
156
150
  set appData(appData) {
157
151
  throw new Error('cannot override appData object');
158
152
  }
159
- /**
160
- * Observer.
161
- *
162
- * @emits close
163
- * @emits newproducer - (producer: Producer)
164
- * @emits newconsumer - (producer: Producer)
165
- * @emits newdataproducer - (dataProducer: DataProducer)
166
- * @emits newdataconsumer - (dataProducer: DataProducer)
167
- */
168
153
  get observer() {
169
154
  return this._observer;
170
155
  }
@@ -299,10 +284,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
299
284
  try {
300
285
  // This will fill rtpParameters's missing fields with default values.
301
286
  ortc.validateRtpParameters(rtpParameters);
302
- const { id } = await this.safeEmitAsPromise('produce', {
303
- kind: track.kind,
304
- rtpParameters,
305
- appData
287
+ const { id } = await new Promise((resolve, reject) => {
288
+ this.safeEmit('produce', {
289
+ kind: track.kind,
290
+ rtpParameters,
291
+ appData
292
+ }, resolve, reject);
306
293
  });
307
294
  const producer = new Producer_1.Producer({
308
295
  id,
@@ -406,11 +393,13 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
406
393
  });
407
394
  // This will fill sctpStreamParameters's missing fields with default values.
408
395
  ortc.validateSctpStreamParameters(sctpStreamParameters);
409
- const { id } = await this.safeEmitAsPromise('producedata', {
410
- sctpStreamParameters,
411
- label,
412
- protocol,
413
- appData
396
+ const { id } = await new Promise((resolve, reject) => {
397
+ this.safeEmit('producedata', {
398
+ sctpStreamParameters,
399
+ label,
400
+ protocol,
401
+ appData
402
+ }, resolve, reject);
414
403
  });
415
404
  const dataProducer = new DataProducer_1.DataProducer({ id, dataChannel, sctpStreamParameters, appData });
416
405
  this._dataProducers.set(dataProducer.id, dataProducer);
@@ -465,8 +454,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
465
454
  }
466
455
  // This method is guaranteed to never throw.
467
456
  async _createPendingConsumers() {
457
+ this._consumerCreationInProgress = true;
468
458
  this._awaitQueue.push(async () => {
469
- this._consumerCreationInProgress = true;
459
+ if (this._pendingConsumerTasks.length === 0) {
460
+ logger.debug('_createPendingConsumers() | there is no Consumer to be created');
461
+ return;
462
+ }
470
463
  const pendingConsumerTasks = [...this._pendingConsumerTasks];
471
464
  // Clear pending Consumer tasks.
472
465
  this._pendingConsumerTasks = [];
@@ -531,9 +524,9 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
531
524
  logger.error('_createPendingConsumers() | failed to create Consumer for RTP probation:%o', error);
532
525
  }
533
526
  }
534
- this._consumerCreationInProgress = false;
535
527
  }, 'transport._createPendingConsumers()')
536
528
  .then(() => {
529
+ this._consumerCreationInProgress = false;
537
530
  // There are pending Consumer tasks, enqueue their creation.
538
531
  if (this._pendingConsumerTasks.length > 0) {
539
532
  this._createPendingConsumers();
@@ -543,20 +536,26 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
543
536
  .catch(() => { });
544
537
  }
545
538
  _pausePendingConsumers() {
539
+ this._consumerPauseInProgress = true;
546
540
  this._awaitQueue.push(async () => {
547
- this._consumerPauseInProgress = true;
541
+ if (this._pendingPauseConsumers.size === 0) {
542
+ logger.debug('_pausePendingConsumers() | there is no Consumer to be paused');
543
+ return;
544
+ }
548
545
  const pendingPauseConsumers = Array.from(this._pendingPauseConsumers.values());
549
546
  // Clear pending pause Consumer map.
550
547
  this._pendingPauseConsumers.clear();
551
548
  try {
552
- await this._handler.pauseReceiving(pendingPauseConsumers.map((consumer) => consumer.localId));
549
+ const localIds = pendingPauseConsumers
550
+ .map((consumer) => consumer.localId);
551
+ await this._handler.pauseReceiving(localIds);
553
552
  }
554
553
  catch (error) {
555
554
  logger.error('_pausePendingConsumers() | failed to pause Consumers:', error);
556
555
  }
557
- this._consumerPauseInProgress = false;
558
- }, 'consumer @pause event')
556
+ }, 'transport._pausePendingConsumers')
559
557
  .then(() => {
558
+ this._consumerPauseInProgress = false;
560
559
  // There are pending Consumers to be paused, do it.
561
560
  if (this._pendingPauseConsumers.size > 0) {
562
561
  this._pausePendingConsumers();
@@ -566,18 +565,24 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
566
565
  .catch(() => { });
567
566
  }
568
567
  _resumePendingConsumers() {
568
+ this._consumerResumeInProgress = true;
569
569
  this._awaitQueue.push(async () => {
570
- this._consumerResumeInProgress = true;
570
+ if (this._pendingResumeConsumers.size === 0) {
571
+ logger.debug('_resumePendingConsumers() | there is no Consumer to be resumed');
572
+ return;
573
+ }
571
574
  const pendingResumeConsumers = Array.from(this._pendingResumeConsumers.values());
572
575
  // Clear pending resume Consumer map.
573
576
  this._pendingResumeConsumers.clear();
574
577
  try {
575
- await this._handler.resumeReceiving(pendingResumeConsumers.map((consumer) => consumer.localId));
578
+ const localIds = pendingResumeConsumers
579
+ .map((consumer) => consumer.localId);
580
+ await this._handler.resumeReceiving(localIds);
576
581
  }
577
582
  catch (error) {
578
583
  logger.error('_resumePendingConsumers() | failed to resume Consumers:', error);
579
584
  }
580
- }, 'consumer @resume event')
585
+ }, 'transport._resumePendingConsumers')
581
586
  .then(() => {
582
587
  this._consumerResumeInProgress = false;
583
588
  // There are pending Consumer to be resumed, do it.
@@ -588,6 +593,33 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
588
593
  // NOTE: We only get here when the await queue is closed.
589
594
  .catch(() => { });
590
595
  }
596
+ _closePendingConsumers() {
597
+ this._consumerCloseInProgress = true;
598
+ this._awaitQueue.push(async () => {
599
+ if (this._pendingCloseConsumers.size === 0) {
600
+ logger.debug('_closePendingConsumers() | there is no Consumer to be closed');
601
+ return;
602
+ }
603
+ const pendingCloseConsumers = Array.from(this._pendingCloseConsumers.values());
604
+ // Clear pending close Consumer map.
605
+ this._pendingCloseConsumers.clear();
606
+ try {
607
+ await this._handler.stopReceiving(pendingCloseConsumers.map((consumer) => consumer.localId));
608
+ }
609
+ catch (error) {
610
+ logger.error('_closePendingConsumers() | failed to close Consumers:', error);
611
+ }
612
+ }, 'transport._closePendingConsumers')
613
+ .then(() => {
614
+ this._consumerCloseInProgress = false;
615
+ // There are pending Consumer to be resumed, do it.
616
+ if (this._pendingCloseConsumers.size > 0) {
617
+ this._closePendingConsumers();
618
+ }
619
+ })
620
+ // NOTE: We only get here when the await queue is closed.
621
+ .catch(() => { });
622
+ }
591
623
  _handleHandler() {
592
624
  const handler = this._handler;
593
625
  handler.on('@connect', ({ dtlsParameters }, callback, errback) => {
@@ -614,6 +646,16 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
614
646
  this._awaitQueue.push(async () => this._handler.stopSending(producer.localId), 'producer @close event')
615
647
  .catch((error) => logger.warn('producer.close() failed:%o', error));
616
648
  });
649
+ producer.on('@pause', (callback, errback) => {
650
+ this._awaitQueue.push(async () => this._handler.pauseSending(producer.localId), 'producer @pause event')
651
+ .then(callback)
652
+ .catch(errback);
653
+ });
654
+ producer.on('@resume', (callback, errback) => {
655
+ this._awaitQueue.push(async () => this._handler.resumeSending(producer.localId), 'producer @resume event')
656
+ .then(callback)
657
+ .catch(errback);
658
+ });
617
659
  producer.on('@replacetrack', (track, callback, errback) => {
618
660
  this._awaitQueue.push(async () => this._handler.replaceTrack(producer.localId, track), 'producer @replacetrack event')
619
661
  .then(callback)
@@ -644,8 +686,12 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
644
686
  this._pendingResumeConsumers.delete(consumer.id);
645
687
  if (this._closed)
646
688
  return;
647
- this._awaitQueue.push(async () => this._handler.stopReceiving(consumer.localId), 'consumer @close event')
648
- .catch(() => { });
689
+ // Store the Consumer into the close list.
690
+ this._pendingCloseConsumers.set(consumer.id, consumer);
691
+ // There is no Consumer close in progress, do it now.
692
+ if (this._consumerCloseInProgress === false) {
693
+ this._closePendingConsumers();
694
+ }
649
695
  });
650
696
  consumer.on('@pause', () => {
651
697
  // If Consumer is pending to be resumed, remove from pending resume list.
@@ -31,13 +31,15 @@ export declare class Chrome55 extends HandlerInterface {
31
31
  getTransportStats(): Promise<RTCStatsReport>;
32
32
  send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
33
33
  stopSending(localId: string): Promise<void>;
34
+ pauseSending(localId: string): Promise<void>;
35
+ resumeSending(localId: string): Promise<void>;
34
36
  replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
35
37
  setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
36
38
  setRtpEncodingParameters(localId: string, params: any): Promise<void>;
37
39
  getSenderStats(localId: string): Promise<RTCStatsReport>;
38
40
  sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
39
41
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
40
- stopReceiving(localId: string): Promise<void>;
42
+ stopReceiving(localIds: string[]): Promise<void>;
41
43
  pauseReceiving(localIds: string[]): Promise<void>;
42
44
  resumeReceiving(localIds: string[]): Promise<void>;
43
45
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
@@ -1 +1 @@
1
- {"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"AAOA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;IAG7C,OAAO,CAAC,UAAU,CAAC,CAAkB;IAErC,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,2BAA2B,CAAC,CAAmC;IAGvE,OAAO,CAAC,iCAAiC,CAAC,CAAmC;IAG7E,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAM;IAEjB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA4C;IAEjF,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAOrB;IAEf,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,cAAc;;IAUtC,IAAI,IAAI,IAAI,MAAM,CAGjB;IAED,KAAK,IAAI,IAAI;IAYP,wBAAwB,IAAI,OAAO,CAAC,eAAe,CAAC;IAuCpD,yBAAyB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS5D,GAAG,CACF,EACC,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,EAAE,iBAAiB,GAClB,IAAI;IAsED,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAK5C,IAAI,CACT,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAC3D,OAAO,CAAC,iBAAiB,CAAC;IAgIvB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD3C,YAAY,CAEjB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;IAMV,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxE,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxD,eAAe,CACpB,EACC,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,KAAK,EACL,QAAQ,EACR,EAAE,6BAA6B,GAC9B,OAAO,CAAC,4BAA4B,CAAC;IAuElC,OAAO,CACZ,WAAW,EAAE,qBAAqB,EAAE,GACjC,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2F7B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7C,cAAc,CAEnB,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7B,eAAe,CAEpB,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAK1D,kBAAkB,CACvB,EAAE,oBAAoB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,gCAAgC,GACzE,OAAO,CAAC,+BAA+B,CAAC;YAiE7B,eAAe;IA+B7B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,oBAAoB;CAQ5B"}
1
+ {"version":3,"file":"Chrome55.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome55.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
5
  }) : (function(o, m, k, k2) {
10
6
  if (k2 === undefined) k2 = k;
11
7
  o[k2] = m[k];
@@ -304,6 +300,14 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
304
300
  logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
305
301
  await this._pc.setRemoteDescription(answer);
306
302
  }
303
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
304
+ async pauseSending(localId) {
305
+ // Unimplemented.
306
+ }
307
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
308
+ async resumeSending(localId) {
309
+ // Unimplemented.
310
+ }
307
311
  async replaceTrack(
308
312
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
309
313
  localId, track) {
@@ -426,13 +430,15 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
426
430
  }
427
431
  return results;
428
432
  }
429
- async stopReceiving(localId) {
433
+ async stopReceiving(localIds) {
430
434
  this._assertRecvDirection();
431
- logger.debug('stopReceiving() [localId:%s]', localId);
432
- const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
433
- // Remove from the map.
434
- this._mapRecvLocalIdInfo.delete(localId);
435
- this._remoteSdp.planBStopReceiving({ mid: mid, offerRtpParameters: rtpParameters });
435
+ for (const localId of localIds) {
436
+ logger.debug('stopReceiving() [localId:%s]', localId);
437
+ const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
438
+ // Remove from the map.
439
+ this._mapRecvLocalIdInfo.delete(localId);
440
+ this._remoteSdp.planBStopReceiving({ mid: mid, offerRtpParameters: rtpParameters });
441
+ }
436
442
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
437
443
  logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
438
444
  await this._pc.setRemoteDescription(offer);
@@ -500,7 +506,9 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
500
506
  // Update the remote DTLS role in the SDP.
501
507
  this._remoteSdp.updateDtlsRole(localDtlsRole === 'client' ? 'server' : 'client');
502
508
  // Need to tell the remote transport about our parameters.
503
- await this.safeEmitAsPromise('@connect', { dtlsParameters });
509
+ await new Promise((resolve, reject) => {
510
+ this.safeEmit('@connect', { dtlsParameters }, resolve, reject);
511
+ });
504
512
  this._transportReady = true;
505
513
  }
506
514
  _assertSendDirection() {
@@ -31,13 +31,15 @@ export declare class Chrome67 extends HandlerInterface {
31
31
  getTransportStats(): Promise<RTCStatsReport>;
32
32
  send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
33
33
  stopSending(localId: string): Promise<void>;
34
+ pauseSending(localId: string): Promise<void>;
35
+ resumeSending(localId: string): Promise<void>;
34
36
  replaceTrack(localId: string, track: MediaStreamTrack | null): Promise<void>;
35
37
  setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
36
38
  setRtpEncodingParameters(localId: string, params: any): Promise<void>;
37
39
  getSenderStats(localId: string): Promise<RTCStatsReport>;
38
40
  sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
39
41
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
40
- stopReceiving(localId: string): Promise<void>;
42
+ stopReceiving(localIds: string[]): Promise<void>;
41
43
  pauseReceiving(localIds: string[]): Promise<void>;
42
44
  resumeReceiving(localIds: string[]): Promise<void>;
43
45
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
@@ -1 +1 @@
1
- {"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chrome67.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome67.ts"],"names":[],"mappings":"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"}