mediasoup-client 3.6.48 → 3.6.51

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 (58) hide show
  1. package/.vimrc +21 -0
  2. package/NO_GIT/Notes.txt +18 -0
  3. package/lib/Consumer.d.ts +2 -2
  4. package/lib/Consumer.d.ts.map +1 -1
  5. package/lib/Producer.d.ts +2 -2
  6. package/lib/Producer.d.ts.map +1 -1
  7. package/lib/Transport.d.ts +6 -0
  8. package/lib/Transport.d.ts.map +1 -1
  9. package/lib/Transport.js +64 -4
  10. package/lib/handlers/Chrome55.d.ts +2 -2
  11. package/lib/handlers/Chrome55.d.ts.map +1 -1
  12. package/lib/handlers/Chrome55.js +2 -2
  13. package/lib/handlers/Chrome67.d.ts +2 -2
  14. package/lib/handlers/Chrome67.d.ts.map +1 -1
  15. package/lib/handlers/Chrome67.js +2 -2
  16. package/lib/handlers/Chrome70.d.ts +2 -2
  17. package/lib/handlers/Chrome70.d.ts.map +1 -1
  18. package/lib/handlers/Chrome70.js +8 -6
  19. package/lib/handlers/Chrome74.d.ts +2 -2
  20. package/lib/handlers/Chrome74.d.ts.map +1 -1
  21. package/lib/handlers/Chrome74.js +22 -16
  22. package/lib/handlers/Edge11.d.ts +2 -2
  23. package/lib/handlers/Edge11.d.ts.map +1 -1
  24. package/lib/handlers/Edge11.js +2 -2
  25. package/lib/handlers/FakeHandler.d.ts +2 -2
  26. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  27. package/lib/handlers/FakeHandler.js +2 -2
  28. package/lib/handlers/Firefox60.d.ts +2 -2
  29. package/lib/handlers/Firefox60.d.ts.map +1 -1
  30. package/lib/handlers/Firefox60.js +22 -16
  31. package/lib/handlers/HandlerInterface.d.ts +2 -2
  32. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  33. package/lib/handlers/ReactNative.d.ts +2 -2
  34. package/lib/handlers/ReactNative.d.ts.map +1 -1
  35. package/lib/handlers/ReactNative.js +5 -3
  36. package/lib/handlers/Safari11.d.ts +2 -2
  37. package/lib/handlers/Safari11.d.ts.map +1 -1
  38. package/lib/handlers/Safari11.js +2 -2
  39. package/lib/handlers/Safari12.d.ts +2 -2
  40. package/lib/handlers/Safari12.d.ts.map +1 -1
  41. package/lib/handlers/Safari12.js +22 -16
  42. package/lib/index.d.ts +1 -1
  43. package/lib/index.js +1 -1
  44. package/package.json +1 -1
  45. package/src/Consumer.ts +3 -3
  46. package/src/Producer.ts +1 -1
  47. package/src/Transport.ts +98 -8
  48. package/src/handlers/Chrome55.ts +3 -3
  49. package/src/handlers/Chrome67.ts +2 -2
  50. package/src/handlers/Chrome70.ts +9 -6
  51. package/src/handlers/Chrome74.ts +27 -18
  52. package/src/handlers/Edge11.ts +2 -2
  53. package/src/handlers/FakeHandler.ts +2 -2
  54. package/src/handlers/Firefox60.ts +27 -18
  55. package/src/handlers/HandlerInterface.ts +2 -2
  56. package/src/handlers/ReactNative.ts +6 -3
  57. package/src/handlers/Safari11.ts +2 -2
  58. package/src/handlers/Safari12.ts +27 -18
@@ -1 +1 @@
1
- {"version":3,"file":"Firefox60.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox60.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Firefox60.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox60.ts"],"names":[],"mappings":"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"}
@@ -416,10 +416,12 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
416
416
  optionsList) {
417
417
  this._assertRecvDirection();
418
418
  const results = [];
419
+ const mapLocalId = new Map();
419
420
  for (const options of optionsList) {
420
421
  const { trackId, kind, rtpParameters } = options;
421
422
  logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
422
423
  const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
424
+ mapLocalId.set(trackId, localId);
423
425
  this._remoteSdp.receive({
424
426
  mid: localId,
425
427
  kind,
@@ -434,8 +436,8 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
434
436
  let answer = await this._pc.createAnswer();
435
437
  const localSdpObject = sdpTransform.parse(answer.sdp);
436
438
  for (const options of optionsList) {
437
- const { rtpParameters } = options;
438
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
439
+ const { trackId, rtpParameters } = options;
440
+ const localId = mapLocalId.get(trackId);
439
441
  const answerMediaObject = localSdpObject.media
440
442
  .find((m) => String(m.mid) === localId);
441
443
  // May need to modify codec parameters in the answer based on codec
@@ -451,8 +453,8 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
451
453
  logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
452
454
  await this._pc.setLocalDescription(answer);
453
455
  for (const options of optionsList) {
454
- const { rtpParameters } = options;
455
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
456
+ const { trackId } = options;
457
+ const localId = mapLocalId.get(trackId);
456
458
  const transceiver = this._pc.getTransceivers()
457
459
  .find((t) => t.mid === localId);
458
460
  if (!transceiver)
@@ -482,13 +484,15 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
482
484
  await this._pc.setLocalDescription(answer);
483
485
  this._mapMidTransceiver.delete(localId);
484
486
  }
485
- async pauseReceiving(localId) {
487
+ async pauseReceiving(localIds) {
486
488
  this._assertRecvDirection();
487
- logger.debug('pauseReceiving() [localId:%s]', localId);
488
- const transceiver = this._mapMidTransceiver.get(localId);
489
- if (!transceiver)
490
- throw new Error('associated RTCRtpTransceiver not found');
491
- transceiver.direction = 'inactive';
489
+ for (const localId of localIds) {
490
+ logger.debug('pauseReceiving() [localId:%s]', localId);
491
+ const transceiver = this._mapMidTransceiver.get(localId);
492
+ if (!transceiver)
493
+ throw new Error('associated RTCRtpTransceiver not found');
494
+ transceiver.direction = 'inactive';
495
+ }
492
496
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
493
497
  logger.debug('pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
494
498
  await this._pc.setRemoteDescription(offer);
@@ -496,13 +500,15 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
496
500
  logger.debug('pauseReceiving() | calling pc.setLocalDescription() [answer:%o]', answer);
497
501
  await this._pc.setLocalDescription(answer);
498
502
  }
499
- async resumeReceiving(localId) {
503
+ async resumeReceiving(localIds) {
500
504
  this._assertRecvDirection();
501
- logger.debug('resumeReceiving() [localId:%s]', localId);
502
- const transceiver = this._mapMidTransceiver.get(localId);
503
- if (!transceiver)
504
- throw new Error('associated RTCRtpTransceiver not found');
505
- transceiver.direction = 'recvonly';
505
+ for (const localId of localIds) {
506
+ logger.debug('resumeReceiving() [localId:%s]', localId);
507
+ const transceiver = this._mapMidTransceiver.get(localId);
508
+ if (!transceiver)
509
+ throw new Error('associated RTCRtpTransceiver not found');
510
+ transceiver.direction = 'recvonly';
511
+ }
506
512
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
507
513
  logger.debug('resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
508
514
  await this._pc.setRemoteDescription(offer);
@@ -77,8 +77,8 @@ export declare abstract class HandlerInterface extends EnhancedEventEmitter {
77
77
  abstract sendDataChannel(options: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
78
78
  abstract receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
79
79
  abstract stopReceiving(localId: string): Promise<void>;
80
- abstract pauseReceiving(localId: string): Promise<void>;
81
- abstract resumeReceiving(localId: string): Promise<void>;
80
+ abstract pauseReceiving(localIds: string[]): Promise<void>;
81
+ abstract resumeReceiving(localIds: string[]): Promise<void>;
82
82
  abstract getReceiverStats(localId: string): Promise<RTCStatsReport>;
83
83
  abstract receiveDataChannel(options: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
84
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HandlerInterface.d.ts","sourceRoot":"","sources":["../../src/handlers/HandlerInterface.ts"],"names":[],"mappings":"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"}
@@ -38,8 +38,8 @@ export declare class ReactNative extends HandlerInterface {
38
38
  sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
39
39
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
40
40
  stopReceiving(localId: string): Promise<void>;
41
- pauseReceiving(localId: string): Promise<void>;
42
- resumeReceiving(localId: string): Promise<void>;
41
+ pauseReceiving(localIds: string[]): Promise<void>;
42
+ resumeReceiving(localIds: string[]): Promise<void>;
43
43
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
44
44
  receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
45
45
  private _setupTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNative.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactNative.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative.ts"],"names":[],"mappings":"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"}
@@ -373,6 +373,7 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
373
373
  var _a;
374
374
  this._assertRecvDirection();
375
375
  const results = [];
376
+ const mapStreamId = new Map();
376
377
  for (const options of optionsList) {
377
378
  const { trackId, kind, rtpParameters } = options;
378
379
  logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
@@ -384,6 +385,7 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
384
385
  // to be different.
385
386
  logger.debug('receive() | forcing a random remote streamId to avoid well known bug in react-native-webrtc');
386
387
  streamId += `-hack-${utils.generateRandomNumber()}`;
388
+ mapStreamId.set(trackId, streamId);
387
389
  this._remoteSdp.receive({
388
390
  mid,
389
391
  kind,
@@ -422,7 +424,7 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
422
424
  const { kind, trackId, rtpParameters } = options;
423
425
  const localId = trackId;
424
426
  const mid = kind;
425
- const streamId = rtpParameters.rtcp.cname;
427
+ const streamId = mapStreamId.get(trackId);
426
428
  const stream = this._pc.getRemoteStreams()
427
429
  .find((s) => s.id === streamId);
428
430
  const track = stream.getTrackById(localId);
@@ -450,12 +452,12 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
450
452
  }
451
453
  async pauseReceiving(
452
454
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
453
- localId) {
455
+ localIds) {
454
456
  // Unimplemented.
455
457
  }
456
458
  async resumeReceiving(
457
459
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
458
- localId) {
460
+ localIds) {
459
461
  // Unimplemented.
460
462
  }
461
463
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -39,8 +39,8 @@ export declare class Safari11 extends HandlerInterface {
39
39
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
40
40
  stopReceiving(localId: string): Promise<void>;
41
41
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
42
- pauseReceiving(localId: string): Promise<void>;
43
- resumeReceiving(localId: string): Promise<void>;
42
+ pauseReceiving(localIds: string[]): Promise<void>;
43
+ resumeReceiving(localIds: string[]): Promise<void>;
44
44
  receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
45
45
  private _setupTransport;
46
46
  private _assertSendDirection;
@@ -1 +1 @@
1
- {"version":3,"file":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"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"}
@@ -482,12 +482,12 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
482
482
  }
483
483
  async pauseReceiving(
484
484
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
485
- localId) {
485
+ localIds) {
486
486
  // Unimplemented.
487
487
  }
488
488
  async resumeReceiving(
489
489
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
490
- localId) {
490
+ localIds) {
491
491
  // Unimplemented.
492
492
  }
493
493
  async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
@@ -36,8 +36,8 @@ export declare class Safari12 extends HandlerInterface {
36
36
  sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
37
37
  receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
38
38
  stopReceiving(localId: string): Promise<void>;
39
- pauseReceiving(localId: string): Promise<void>;
40
- resumeReceiving(localId: string): Promise<void>;
39
+ pauseReceiving(localIds: string[]): Promise<void>;
40
+ resumeReceiving(localIds: string[]): Promise<void>;
41
41
  getReceiverStats(localId: string): Promise<RTCStatsReport>;
42
42
  receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
43
43
  private _setupTransport;
@@ -1 +1 @@
1
- {"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
@@ -376,10 +376,12 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
376
376
  var _a;
377
377
  this._assertRecvDirection();
378
378
  const results = [];
379
+ const mapLocalId = new Map();
379
380
  for (const options of optionsList) {
380
381
  const { trackId, kind, rtpParameters } = options;
381
382
  logger.debug('receive() [trackId:%s, kind:%s]', trackId, kind);
382
383
  const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
384
+ mapLocalId.set(trackId, localId);
383
385
  this._remoteSdp.receive({
384
386
  mid: localId,
385
387
  kind,
@@ -394,8 +396,8 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
394
396
  let answer = await this._pc.createAnswer();
395
397
  const localSdpObject = sdpTransform.parse(answer.sdp);
396
398
  for (const options of optionsList) {
397
- const { rtpParameters } = options;
398
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
399
+ const { trackId, rtpParameters } = options;
400
+ const localId = mapLocalId.get(trackId);
399
401
  const answerMediaObject = localSdpObject.media
400
402
  .find((m) => String(m.mid) === localId);
401
403
  // May need to modify codec parameters in the answer based on codec
@@ -415,8 +417,8 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
415
417
  logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
416
418
  await this._pc.setLocalDescription(answer);
417
419
  for (const options of optionsList) {
418
- const { rtpParameters } = options;
419
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
420
+ const { trackId } = options;
421
+ const localId = mapLocalId.get(trackId);
420
422
  const transceiver = this._pc.getTransceivers()
421
423
  .find((t) => t.mid === localId);
422
424
  if (!transceiver)
@@ -446,13 +448,15 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
446
448
  await this._pc.setLocalDescription(answer);
447
449
  this._mapMidTransceiver.delete(localId);
448
450
  }
449
- async pauseReceiving(localId) {
451
+ async pauseReceiving(localIds) {
450
452
  this._assertRecvDirection();
451
- logger.debug('pauseReceiving() [localId:%s]', localId);
452
- const transceiver = this._mapMidTransceiver.get(localId);
453
- if (!transceiver)
454
- throw new Error('associated RTCRtpTransceiver not found');
455
- transceiver.direction = 'inactive';
453
+ for (const localId of localIds) {
454
+ logger.debug('pauseReceiving() [localId:%s]', localId);
455
+ const transceiver = this._mapMidTransceiver.get(localId);
456
+ if (!transceiver)
457
+ throw new Error('associated RTCRtpTransceiver not found');
458
+ transceiver.direction = 'inactive';
459
+ }
456
460
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
457
461
  logger.debug('pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
458
462
  await this._pc.setRemoteDescription(offer);
@@ -460,13 +464,15 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
460
464
  logger.debug('pauseReceiving() | calling pc.setLocalDescription() [answer:%o]', answer);
461
465
  await this._pc.setLocalDescription(answer);
462
466
  }
463
- async resumeReceiving(localId) {
467
+ async resumeReceiving(localIds) {
464
468
  this._assertRecvDirection();
465
- logger.debug('resumeReceiving() [localId:%s]', localId);
466
- const transceiver = this._mapMidTransceiver.get(localId);
467
- if (!transceiver)
468
- throw new Error('associated RTCRtpTransceiver not found');
469
- transceiver.direction = 'recvonly';
469
+ for (const localId of localIds) {
470
+ logger.debug('resumeReceiving() [localId:%s]', localId);
471
+ const transceiver = this._mapMidTransceiver.get(localId);
472
+ if (!transceiver)
473
+ throw new Error('associated RTCRtpTransceiver not found');
474
+ transceiver.direction = 'recvonly';
475
+ }
470
476
  const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
471
477
  logger.debug('resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
472
478
  await this._pc.setRemoteDescription(offer);
package/lib/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export { types };
8
8
  /**
9
9
  * Expose mediasoup-client version.
10
10
  */
11
- export declare const version = "3.6.48";
11
+ export declare const version = "3.6.51";
12
12
  /**
13
13
  * Expose Device class and detectDevice() helper.
14
14
  */
package/lib/index.js CHANGED
@@ -33,7 +33,7 @@ exports.types = types;
33
33
  /**
34
34
  * Expose mediasoup-client version.
35
35
  */
36
- exports.version = '3.6.48';
36
+ exports.version = '3.6.51';
37
37
  /**
38
38
  * Expose parseScalabilityMode() function.
39
39
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mediasoup-client",
3
- "version": "3.6.48",
3
+ "version": "3.6.51",
4
4
  "description": "mediasoup client side JavaScript library",
5
5
  "contributors": [
6
6
  "Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
package/src/Consumer.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Logger } from './Logger';
2
2
  import { EnhancedEventEmitter } from './EnhancedEventEmitter';
3
3
  import { InvalidStateError } from './errors';
4
- import { RtpParameters } from './RtpParameters';
4
+ import { MediaKind, RtpParameters } from './RtpParameters';
5
5
 
6
6
  export type ConsumerOptions =
7
7
  {
@@ -118,9 +118,9 @@ export class Consumer extends EnhancedEventEmitter
118
118
  /**
119
119
  * Media kind.
120
120
  */
121
- get kind(): string
121
+ get kind(): MediaKind
122
122
  {
123
- return this._track.kind;
123
+ return this._track.kind as MediaKind;
124
124
  }
125
125
 
126
126
  /**
package/src/Producer.ts CHANGED
@@ -152,7 +152,7 @@ export class Producer extends EnhancedEventEmitter
152
152
  /**
153
153
  * Media kind.
154
154
  */
155
- get kind(): string
155
+ get kind(): MediaKind
156
156
  {
157
157
  return this._kind;
158
158
  }
package/src/Transport.ts CHANGED
@@ -187,6 +187,14 @@ export class Transport extends EnhancedEventEmitter
187
187
  private _pendingConsumerTasks: ConsumerCreationTask[] = [];
188
188
  // Consumer creation in progress flag.
189
189
  private _consumerCreationInProgress = false;
190
+ // Consumers pending to be paused.
191
+ private _pendingPauseConsumers: Map<string, Consumer> = new Map();
192
+ // Consumer pause in progress flag.
193
+ private _consumerPauseInProgress = false;
194
+ // Consumers pending to be resumed.
195
+ private _pendingResumeConsumers: Map<string, Consumer> = new Map();
196
+ // Consumer resume in progress flag.
197
+ private _consumerResumeInProgress = false;
190
198
  // Observer instance.
191
199
  protected readonly _observer = new EnhancedEventEmitter();
192
200
 
@@ -892,6 +900,66 @@ export class Transport extends EnhancedEventEmitter
892
900
  .catch(() => {});
893
901
  }
894
902
 
903
+ _pausePendingConsumers()
904
+ {
905
+ this._awaitQueue.push(
906
+ async () =>
907
+ {
908
+ this._consumerPauseInProgress = true;
909
+
910
+ const pendingPauseConsumers = Array.from(this._pendingPauseConsumers.values());
911
+
912
+ // Clear pending pause Consumer map.
913
+ this._pendingPauseConsumers.clear();
914
+
915
+ await this._handler.pauseReceiving(
916
+ pendingPauseConsumers.map((consumer) => consumer.localId)
917
+ );
918
+ },
919
+ 'consumer @pause event')
920
+ .catch(() => { })
921
+ .finally(() =>
922
+ {
923
+ this._consumerPauseInProgress = false;
924
+
925
+ // There are pending Consumers to be paused, do it.
926
+ if (this._pendingPauseConsumers.size > 0)
927
+ {
928
+ this._pausePendingConsumers();
929
+ }
930
+ });
931
+ }
932
+
933
+ _resumePendingConsumers()
934
+ {
935
+ this._awaitQueue.push(
936
+ async () =>
937
+ {
938
+ this._consumerResumeInProgress = true;
939
+
940
+ const pendingResumeConsumers = Array.from(this._pendingResumeConsumers.values());
941
+
942
+ // Clear pending resume Consumer map.
943
+ this._pendingResumeConsumers.clear();
944
+
945
+ await this._handler.resumeReceiving(
946
+ pendingResumeConsumers.map((consumer) => consumer.localId)
947
+ );
948
+ },
949
+ 'consumer @resume event')
950
+ .catch(() => { })
951
+ .finally(() =>
952
+ {
953
+ this._consumerResumeInProgress = false;
954
+
955
+ // There are pending Consumer to be resumed, do it.
956
+ if (this._pendingResumeConsumers.size > 0)
957
+ {
958
+ this._resumePendingConsumers();
959
+ }
960
+ });
961
+ }
962
+
895
963
  _handleHandler(): void
896
964
  {
897
965
  const handler = this._handler;
@@ -986,6 +1054,8 @@ export class Transport extends EnhancedEventEmitter
986
1054
  consumer.on('@close', () =>
987
1055
  {
988
1056
  this._consumers.delete(consumer.id);
1057
+ this._pendingPauseConsumers.delete(consumer.id);
1058
+ this._pendingResumeConsumers.delete(consumer.id);
989
1059
 
990
1060
  if (this._closed)
991
1061
  return;
@@ -998,18 +1068,38 @@ export class Transport extends EnhancedEventEmitter
998
1068
 
999
1069
  consumer.on('@pause', () =>
1000
1070
  {
1001
- this._awaitQueue.push(
1002
- async () => this._handler.pauseReceiving(consumer.localId),
1003
- 'consumer @pause event')
1004
- .catch(() => {});
1071
+ // If Consumer is pending to be resumed, remove from pending resume list.
1072
+ if (this._pendingResumeConsumers.has(consumer.id))
1073
+ {
1074
+ this._pendingResumeConsumers.delete(consumer.id);
1075
+ }
1076
+
1077
+ // Store the Consumer into the pending list.
1078
+ this._pendingPauseConsumers.set(consumer.id, consumer);
1079
+
1080
+ // There is no Consumer pause in progress, do it now.
1081
+ if (this._consumerPauseInProgress === false)
1082
+ {
1083
+ this._pausePendingConsumers();
1084
+ }
1005
1085
  });
1006
1086
 
1007
1087
  consumer.on('@resume', () =>
1008
1088
  {
1009
- this._awaitQueue.push(
1010
- async () => this._handler.resumeReceiving(consumer.localId),
1011
- 'consumer @resume event')
1012
- .catch(() => {});
1089
+ // If Consumer is pending to be paused, remove from pending pause list.
1090
+ if (this._pendingPauseConsumers.has(consumer.id))
1091
+ {
1092
+ this._pendingPauseConsumers.delete(consumer.id);
1093
+ }
1094
+
1095
+ // Store the Consumer into the pending list.
1096
+ this._pendingResumeConsumers.set(consumer.id, consumer);
1097
+
1098
+ // There is no Consumer resume in progress, do it now.
1099
+ if (this._consumerResumeInProgress === false)
1100
+ {
1101
+ this._resumePendingConsumers();
1102
+ }
1013
1103
  });
1014
1104
 
1015
1105
  consumer.on('@getstats', (callback, errback) =>
@@ -702,17 +702,17 @@ export class Chrome55 extends HandlerInterface
702
702
 
703
703
  await this._pc.setLocalDescription(answer);
704
704
  }
705
-
705
+
706
706
  async pauseReceiving(
707
707
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
708
- localId: string): Promise<void>
708
+ localIds: string[]): Promise<void>
709
709
  {
710
710
  // Unimplemented.
711
711
  }
712
712
 
713
713
  async resumeReceiving(
714
714
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
715
- localId: string): Promise<void>
715
+ localIds: string[]): Promise<void>
716
716
  {
717
717
  // Unimplemented.
718
718
  }
@@ -784,14 +784,14 @@ export class Chrome67 extends HandlerInterface
784
784
 
785
785
  async pauseReceiving(
786
786
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
787
- localId: string): Promise<void>
787
+ localIds: string[]): Promise<void>
788
788
  {
789
789
  // Unimplemented.
790
790
  }
791
791
 
792
792
  async resumeReceiving(
793
793
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
794
- localId: string): Promise<void>
794
+ localIds: string[]): Promise<void>
795
795
  {
796
796
  // Unimplemented.
797
797
  }
@@ -669,6 +669,7 @@ export class Chrome70 extends HandlerInterface
669
669
  this._assertRecvDirection();
670
670
 
671
671
  const results: HandlerReceiveResult[] = [];
672
+ const mapLocalId: Map<string, string> = new Map();
672
673
 
673
674
  for (const options of optionsList)
674
675
  {
@@ -678,6 +679,8 @@ export class Chrome70 extends HandlerInterface
678
679
 
679
680
  const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
680
681
 
682
+ mapLocalId.set(trackId, localId);
683
+
681
684
  this._remoteSdp!.receive(
682
685
  {
683
686
  mid : localId,
@@ -701,8 +704,8 @@ export class Chrome70 extends HandlerInterface
701
704
 
702
705
  for (const options of optionsList)
703
706
  {
704
- const { rtpParameters } = options;
705
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
707
+ const { trackId, rtpParameters } = options;
708
+ const localId = mapLocalId.get(trackId);
706
709
  const answerMediaObject = localSdpObject.media
707
710
  .find((m: any) => String(m.mid) === localId);
708
711
 
@@ -734,8 +737,8 @@ export class Chrome70 extends HandlerInterface
734
737
 
735
738
  for (const options of optionsList)
736
739
  {
737
- const { rtpParameters } = options;
738
- const localId = rtpParameters.mid || String(this._mapMidTransceiver.size);
740
+ const { trackId } = options;
741
+ const localId = mapLocalId.get(trackId)!;
739
742
  const transceiver = this._pc.getTransceivers()
740
743
  .find((t: RTCRtpTransceiver) => t.mid === localId);
741
744
 
@@ -789,14 +792,14 @@ export class Chrome70 extends HandlerInterface
789
792
 
790
793
  async pauseReceiving(
791
794
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
792
- localId: string): Promise<void>
795
+ localIds: string[]): Promise<void>
793
796
  {
794
797
  // Unimplemented.
795
798
  }
796
799
 
797
800
  async resumeReceiving(
798
801
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
799
- localId: string): Promise<void>
802
+ localIds: string[]): Promise<void>
800
803
  {
801
804
  // Unimplemented.
802
805
  }