mediasoup-client 3.9.1 → 3.9.3

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 (101) hide show
  1. package/lib/Consumer.d.ts +2 -2
  2. package/lib/Consumer.d.ts.map +1 -1
  3. package/lib/Consumer.js +20 -4
  4. package/lib/DataConsumer.d.ts +2 -2
  5. package/lib/DataConsumer.d.ts.map +1 -1
  6. package/lib/DataConsumer.js +14 -4
  7. package/lib/DataProducer.d.ts +2 -2
  8. package/lib/DataProducer.d.ts.map +1 -1
  9. package/lib/DataProducer.js +12 -4
  10. package/lib/Device.d.ts +5 -5
  11. package/lib/Device.d.ts.map +1 -1
  12. package/lib/Device.js +22 -41
  13. package/lib/Logger.d.ts +0 -1
  14. package/lib/Logger.d.ts.map +1 -1
  15. package/lib/Logger.js +4 -4
  16. package/lib/Producer.d.ts +2 -2
  17. package/lib/Producer.d.ts.map +1 -1
  18. package/lib/Producer.js +28 -4
  19. package/lib/Transport.d.ts +8 -8
  20. package/lib/Transport.d.ts.map +1 -1
  21. package/lib/Transport.js +60 -78
  22. package/lib/enhancedEvents.d.ts +1 -1
  23. package/lib/enhancedEvents.d.ts.map +1 -1
  24. package/lib/handlers/Chrome111.d.ts +4 -4
  25. package/lib/handlers/Chrome111.d.ts.map +1 -1
  26. package/lib/handlers/Chrome111.js +37 -52
  27. package/lib/handlers/Chrome55.d.ts +4 -4
  28. package/lib/handlers/Chrome55.d.ts.map +1 -1
  29. package/lib/handlers/Chrome55.js +39 -53
  30. package/lib/handlers/Chrome67.d.ts +4 -4
  31. package/lib/handlers/Chrome67.d.ts.map +1 -1
  32. package/lib/handlers/Chrome67.js +39 -53
  33. package/lib/handlers/Chrome70.d.ts +4 -4
  34. package/lib/handlers/Chrome70.d.ts.map +1 -1
  35. package/lib/handlers/Chrome70.js +34 -48
  36. package/lib/handlers/Chrome74.d.ts +4 -4
  37. package/lib/handlers/Chrome74.d.ts.map +1 -1
  38. package/lib/handlers/Chrome74.js +37 -52
  39. package/lib/handlers/Edge11.d.ts +4 -4
  40. package/lib/handlers/Edge11.d.ts.map +1 -1
  41. package/lib/handlers/Edge11.js +27 -44
  42. package/lib/handlers/FakeHandler.d.ts +4 -4
  43. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  44. package/lib/handlers/FakeHandler.js +25 -48
  45. package/lib/handlers/Firefox120.d.ts +4 -4
  46. package/lib/handlers/Firefox120.d.ts.map +1 -1
  47. package/lib/handlers/Firefox120.js +33 -51
  48. package/lib/handlers/Firefox60.d.ts +4 -4
  49. package/lib/handlers/Firefox60.d.ts.map +1 -1
  50. package/lib/handlers/Firefox60.js +33 -51
  51. package/lib/handlers/HandlerInterface.d.ts +5 -5
  52. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  53. package/lib/handlers/ReactNative.d.ts +4 -4
  54. package/lib/handlers/ReactNative.d.ts.map +1 -1
  55. package/lib/handlers/ReactNative.js +39 -53
  56. package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
  57. package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
  58. package/lib/handlers/ReactNativeUnifiedPlan.js +37 -52
  59. package/lib/handlers/Safari11.d.ts +4 -4
  60. package/lib/handlers/Safari11.d.ts.map +1 -1
  61. package/lib/handlers/Safari11.js +39 -53
  62. package/lib/handlers/Safari12.d.ts +4 -4
  63. package/lib/handlers/Safari12.d.ts.map +1 -1
  64. package/lib/handlers/Safari12.js +37 -51
  65. package/lib/handlers/ortc/edgeUtils.d.ts +1 -1
  66. package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
  67. package/lib/handlers/ortc/edgeUtils.js +2 -35
  68. package/lib/handlers/ortc/utils.d.ts +1 -1
  69. package/lib/handlers/ortc/utils.d.ts.map +1 -1
  70. package/lib/handlers/sdp/MediaSection.d.ts +5 -6
  71. package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
  72. package/lib/handlers/sdp/MediaSection.js +10 -39
  73. package/lib/handlers/sdp/RemoteSdp.d.ts +9 -6
  74. package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
  75. package/lib/handlers/sdp/RemoteSdp.js +29 -40
  76. package/lib/handlers/sdp/commonUtils.d.ts +2 -2
  77. package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
  78. package/lib/handlers/sdp/commonUtils.js +11 -44
  79. package/lib/handlers/sdp/plainRtpUtils.d.ts +1 -1
  80. package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
  81. package/lib/handlers/sdp/plainRtpUtils.js +4 -4
  82. package/lib/handlers/sdp/planBUtils.d.ts +1 -1
  83. package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
  84. package/lib/handlers/sdp/planBUtils.js +6 -6
  85. package/lib/handlers/sdp/unifiedPlanUtils.d.ts +1 -1
  86. package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
  87. package/lib/handlers/sdp/unifiedPlanUtils.js +4 -4
  88. package/lib/index.d.ts +11 -5
  89. package/lib/index.d.ts.map +1 -1
  90. package/lib/index.js +22 -44
  91. package/lib/ortc.d.ts +2 -2
  92. package/lib/ortc.d.ts.map +1 -1
  93. package/lib/ortc.js +6 -39
  94. package/lib/test/fakeParameters.d.ts +1 -1
  95. package/lib/test/fakeParameters.d.ts.map +1 -1
  96. package/lib/test/fakeParameters.js +1 -34
  97. package/lib/test/test.js +20 -53
  98. package/lib/test/uaTestCases.d.ts +1 -1
  99. package/lib/test/uaTestCases.d.ts.map +1 -1
  100. package/npm-scripts.mjs +34 -28
  101. package/package.json +32 -34
@@ -1,46 +1,13 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.Safari12 = void 0;
37
- const sdpTransform = __importStar(require("sdp-transform"));
4
+ const sdpTransform = require("sdp-transform");
38
5
  const Logger_1 = require("../Logger");
39
- const utils = __importStar(require("../utils"));
40
- const ortc = __importStar(require("../ortc"));
41
- const sdpCommonUtils = __importStar(require("./sdp/commonUtils"));
42
- const sdpUnifiedPlanUtils = __importStar(require("./sdp/unifiedPlanUtils"));
43
- const ortcUtils = __importStar(require("./ortc/utils"));
6
+ const utils = require("../utils");
7
+ const ortc = require("../ortc");
8
+ const sdpCommonUtils = require("./sdp/commonUtils");
9
+ const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
10
+ const ortcUtils = require("./ortc/utils");
44
11
  const errors_1 = require("../errors");
45
12
  const HandlerInterface_1 = require("./HandlerInterface");
46
13
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
@@ -49,6 +16,32 @@ const logger = new Logger_1.Logger('Safari12');
49
16
  const NAME = 'Safari12';
50
17
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
51
18
  class Safari12 extends HandlerInterface_1.HandlerInterface {
19
+ // Closed flag.
20
+ _closed = false;
21
+ // Handler direction.
22
+ _direction;
23
+ // Remote SDP handler.
24
+ _remoteSdp;
25
+ // Generic sending RTP parameters for audio and video.
26
+ _sendingRtpParametersByKind;
27
+ // Generic sending RTP parameters for audio and video suitable for the SDP
28
+ // remote answer.
29
+ _sendingRemoteRtpParametersByKind;
30
+ // Initial server side DTLS role. If not 'auto', it will force the opposite
31
+ // value in client side.
32
+ _forcedLocalDtlsRole;
33
+ // RTCPeerConnection instance.
34
+ _pc;
35
+ // Map of RTCTransceivers indexed by MID.
36
+ _mapMidTransceiver = new Map();
37
+ // Local stream for sending.
38
+ _sendStream = new MediaStream();
39
+ // Whether a DataChannel m=application section has been created.
40
+ _hasDataChannelMediaSection = false;
41
+ // Sending DataChannel id value counter. Incremented for each new DataChannel.
42
+ _nextSendSctpStreamId = 0;
43
+ // Got transport local and remote parameters.
44
+ _transportReady = false;
52
45
  /**
53
46
  * Creates a factory function.
54
47
  */
@@ -57,18 +50,6 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
57
50
  }
58
51
  constructor() {
59
52
  super();
60
- // Closed flag.
61
- this._closed = false;
62
- // Map of RTCTransceivers indexed by MID.
63
- this._mapMidTransceiver = new Map();
64
- // Local stream for sending.
65
- this._sendStream = new MediaStream();
66
- // Whether a DataChannel m=application section has been created.
67
- this._hasDataChannelMediaSection = false;
68
- // Sending DataChannel id value counter. Incremented for each new DataChannel.
69
- this._nextSendSctpStreamId = 0;
70
- // Got transport local and remote parameters.
71
- this._transportReady = false;
72
53
  }
73
54
  get name() {
74
55
  return NAME;
@@ -251,6 +232,11 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
251
232
  }
252
233
  let offer = await this._pc.createOffer();
253
234
  let localSdpObject = sdpTransform.parse(offer.sdp);
235
+ // @ts-expect-error --- sdpTransform.SessionDescription type doesn't
236
+ // define extmapAllowMixed field.
237
+ if (localSdpObject.extmapAllowMixed) {
238
+ this._remoteSdp.setSessionExtmapAllowMixed();
239
+ }
254
240
  let offerMediaObject;
255
241
  if (!this._transportReady) {
256
242
  await this.setupTransport({
@@ -1,4 +1,4 @@
1
- import { RtpCapabilities, RtpParameters } from '../../RtpParameters';
1
+ import type { RtpCapabilities, RtpParameters } from '../../RtpParameters';
2
2
  /**
3
3
  * Normalize ORTC based Edge's RTCRtpReceiver.getCapabilities() to produce a full
4
4
  * compliant ORTC RTCRtpCapabilities.
@@ -1 +1 @@
1
- {"version":3,"file":"edgeUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/edgeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAErE;;;GAGG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAuCjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,aAAa,EAAE,aAAa,GAC1B,aAAa,CA+Bf"}
1
+ {"version":3,"file":"edgeUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/edgeUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,eAAe,IAAI,eAAe,CAuCjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,aAAa,EAAE,aAAa,GAC1B,aAAa,CA+Bf"}
@@ -1,41 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.getCapabilities = getCapabilities;
37
4
  exports.mangleRtpParameters = mangleRtpParameters;
38
- const utils = __importStar(require("../../utils"));
5
+ const utils = require("../../utils");
39
6
  /**
40
7
  * Normalize ORTC based Edge's RTCRtpReceiver.getCapabilities() to produce a full
41
8
  * compliant ORTC RTCRtpCapabilities.
@@ -96,7 +63,7 @@ function mangleRtpParameters(rtpParameters) {
96
63
  codec.name = codec.mimeType.split('/')[1];
97
64
  }
98
65
  // Remove mimeType.
99
- // @ts-expect-error --- On purpose.
66
+ // @ts-expect-error --- Removing mandatory field.
100
67
  delete codec.mimeType;
101
68
  }
102
69
  return params;
@@ -1,4 +1,4 @@
1
- import { RtpCapabilities } from '../../RtpParameters';
1
+ import type { RtpCapabilities } from '../../RtpParameters';
2
2
  /**
3
3
  * This function adds RTCP NACK support for OPUS codec in given capabilities.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAc5E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/handlers/ortc/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAc5E"}
@@ -1,7 +1,7 @@
1
- import { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
2
- import { ProducerCodecOptions } from '../../Producer';
3
- import { MediaKind, RtpParameters } from '../../RtpParameters';
4
- import { SctpParameters } from '../../SctpParameters';
1
+ import type { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
2
+ import type { ProducerCodecOptions } from '../../Producer';
3
+ import type { MediaKind, RtpParameters } from '../../RtpParameters';
4
+ import type { SctpParameters } from '../../SctpParameters';
5
5
  export declare abstract class MediaSection {
6
6
  protected readonly _mediaObject: any;
7
7
  protected readonly _planB: boolean;
@@ -22,7 +22,7 @@ export declare abstract class MediaSection {
22
22
  close(): void;
23
23
  }
24
24
  export declare class AnswerMediaSection extends MediaSection {
25
- constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions, extmapAllowMixed, }: {
25
+ constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions, }: {
26
26
  iceParameters?: IceParameters;
27
27
  iceCandidates?: IceCandidate[];
28
28
  dtlsParameters?: DtlsParameters;
@@ -33,7 +33,6 @@ export declare class AnswerMediaSection extends MediaSection {
33
33
  offerRtpParameters?: RtpParameters;
34
34
  answerRtpParameters?: RtpParameters;
35
35
  codecOptions?: ProducerCodecOptions;
36
- extmapAllowMixed?: boolean;
37
36
  });
38
37
  setDtlsRole(role: DtlsRole): void;
39
38
  resume(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"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"}
@@ -1,42 +1,13 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.OfferMediaSection = exports.AnswerMediaSection = exports.MediaSection = void 0;
37
- const sdpTransform = __importStar(require("sdp-transform"));
38
- const utils = __importStar(require("../../utils"));
4
+ const sdpTransform = require("sdp-transform");
5
+ const utils = require("../../utils");
39
6
  class MediaSection {
7
+ // SDP media object.
8
+ _mediaObject;
9
+ // Whether this is Plan-B SDP.
10
+ _planB;
40
11
  constructor({ iceParameters, iceCandidates, dtlsParameters, planB = false, }) {
41
12
  this._mediaObject = {};
42
13
  this._planB = planB;
@@ -103,7 +74,7 @@ class MediaSection {
103
74
  }
104
75
  exports.MediaSection = MediaSection;
105
76
  class AnswerMediaSection extends MediaSection {
106
- constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB = false, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions, extmapAllowMixed = false, }) {
77
+ constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB = false, offerMediaObject, offerRtpParameters, answerRtpParameters, codecOptions, }) {
107
78
  super({ iceParameters, iceCandidates, dtlsParameters, planB });
108
79
  this._mediaObject.mid = String(offerMediaObject.mid);
109
80
  this._mediaObject.type = offerMediaObject.type;
@@ -231,9 +202,9 @@ class AnswerMediaSection extends MediaSection {
231
202
  value: ext.id,
232
203
  });
233
204
  }
234
- // Allow both 1 byte and 2 bytes length header extensions.
235
- if (extmapAllowMixed &&
236
- offerMediaObject.extmapAllowMixed === 'extmap-allow-mixed') {
205
+ // Allow both 1 byte and 2 bytes length header extensions since
206
+ // mediasoup can receive both at any time.
207
+ if (offerMediaObject.extmapAllowMixed === 'extmap-allow-mixed') {
237
208
  this._mediaObject.extmapAllowMixed = 'extmap-allow-mixed';
238
209
  }
239
210
  // Simulcast.
@@ -1,8 +1,8 @@
1
1
  import { MediaSection } from './MediaSection';
2
- import { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
3
- import { ProducerCodecOptions } from '../../Producer';
4
- import { MediaKind, RtpParameters } from '../../RtpParameters';
5
- import { SctpParameters } from '../../SctpParameters';
2
+ import type { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
3
+ import type { ProducerCodecOptions } from '../../Producer';
4
+ import type { MediaKind, RtpParameters } from '../../RtpParameters';
5
+ import type { SctpParameters } from '../../SctpParameters';
6
6
  export declare class RemoteSdp {
7
7
  private _iceParameters?;
8
8
  private readonly _iceCandidates?;
@@ -24,17 +24,20 @@ export declare class RemoteSdp {
24
24
  });
25
25
  updateIceParameters(iceParameters: IceParameters): void;
26
26
  updateDtlsRole(role: DtlsRole): void;
27
+ /**
28
+ * Set session level a=extmap-allow-mixed attibute.
29
+ */
30
+ setSessionExtmapAllowMixed(): void;
27
31
  getNextMediaSectionIdx(): {
28
32
  idx: number;
29
33
  reuseMid?: string;
30
34
  };
31
- send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions, extmapAllowMixed, }: {
35
+ send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions, }: {
32
36
  offerMediaObject: any;
33
37
  reuseMid?: string;
34
38
  offerRtpParameters: RtpParameters;
35
39
  answerRtpParameters: RtpParameters;
36
40
  codecOptions?: ProducerCodecOptions;
37
- extmapAllowMixed?: boolean;
38
41
  }): void;
39
42
  receive({ mid, kind, offerRtpParameters, streamId, trackId, }: {
40
43
  mid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteSdp.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/RemoteSdp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RemoteSdp.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/RemoteSdp.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,32 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.RemoteSdp = void 0;
37
- const sdpTransform = __importStar(require("sdp-transform"));
4
+ const sdpTransform = require("sdp-transform");
38
5
  const Logger_1 = require("../../Logger");
39
6
  const MediaSection_1 = require("./MediaSection");
40
7
  const logger = new Logger_1.Logger('RemoteSdp');
41
8
  class RemoteSdp {
9
+ // Remote ICE parameters.
10
+ _iceParameters;
11
+ // Remote ICE candidates.
12
+ _iceCandidates;
13
+ // Remote DTLS parameters.
14
+ _dtlsParameters;
15
+ // Remote SCTP parameters.
16
+ _sctpParameters;
17
+ // Parameters for plain RTP (no SRTP nor DTLS no BUNDLE).
18
+ _plainRtpParameters;
19
+ // Whether this is Plan-B SDP.
20
+ _planB;
21
+ // MediaSection instances with same order as in the SDP.
22
+ _mediaSections = [];
23
+ // MediaSection indices indexed by MID.
24
+ _midToIndex = new Map();
25
+ // First MID.
26
+ _firstMid;
27
+ // SDP object.
28
+ _sdpObject;
42
29
  constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB = false, }) {
43
- // MediaSection instances with same order as in the SDP.
44
- this._mediaSections = [];
45
- // MediaSection indices indexed by MID.
46
- this._midToIndex = new Map();
47
30
  this._iceParameters = iceParameters;
48
31
  this._iceCandidates = iceCandidates;
49
32
  this._dtlsParameters = dtlsParameters;
@@ -100,6 +83,13 @@ class RemoteSdp {
100
83
  mediaSection.setDtlsRole(role);
101
84
  }
102
85
  }
86
+ /**
87
+ * Set session level a=extmap-allow-mixed attibute.
88
+ */
89
+ setSessionExtmapAllowMixed() {
90
+ logger.debug('setSessionExtmapAllowMixed()');
91
+ this._sdpObject.extmapAllowMixed = 'extmap-allow-mixed';
92
+ }
103
93
  getNextMediaSectionIdx() {
104
94
  // If a closed media section is found, return its index.
105
95
  for (let idx = 0; idx < this._mediaSections.length; ++idx) {
@@ -111,7 +101,7 @@ class RemoteSdp {
111
101
  // If no closed media section is found, return next one.
112
102
  return { idx: this._mediaSections.length };
113
103
  }
114
- send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions, extmapAllowMixed = false, }) {
104
+ send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions, }) {
115
105
  const mediaSection = new MediaSection_1.AnswerMediaSection({
116
106
  iceParameters: this._iceParameters,
117
107
  iceCandidates: this._iceCandidates,
@@ -122,7 +112,6 @@ class RemoteSdp {
122
112
  offerRtpParameters,
123
113
  answerRtpParameters,
124
114
  codecOptions,
125
- extmapAllowMixed,
126
115
  });
127
116
  // Unified-Plan with closed media section replacement.
128
117
  if (reuseMid) {
@@ -1,5 +1,5 @@
1
- import { DtlsParameters } from '../../Transport';
2
- import { RtpCapabilities, RtpParameters } from '../../RtpParameters';
1
+ import type { DtlsParameters } from '../../Transport';
2
+ import type { RtpCapabilities, RtpParameters } from '../../RtpParameters';
3
3
  /**
4
4
  * This function must be called with an SDP with 1 m=audio and 1 m=video
5
5
  * sections.
@@ -1 +1 @@
1
- {"version":3,"file":"commonUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/commonUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACN,eAAe,EAGf,aAAa,EAEb,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACtC,SAAS,GACT,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;CACf,GAAG,eAAe,CA8HlB;AAED,wBAAgB,qBAAqB,CAAC,EACrC,SAAS,GACT,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;CACf,GAAG,cAAc,CAsDjB;AAED,wBAAgB,QAAQ,CAAC,EACxB,gBAAgB,GAChB,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;CACtB,GAAG,MAAM,CAUT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACpC,kBAAkB,EAClB,iBAAiB,GACjB,EAAE;IACF,kBAAkB,EAAE,aAAa,CAAC;IAClC,iBAAiB,EAAE,GAAG,CAAC;CACvB,GAAG,IAAI,CAsDP"}
1
+ {"version":3,"file":"commonUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/commonUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EACX,eAAe,EAGf,aAAa,EAEb,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EACtC,SAAS,GACT,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;CACf,GAAG,eAAe,CA8HlB;AAED,wBAAgB,qBAAqB,CAAC,EACrC,SAAS,GACT,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;CACf,GAAG,cAAc,CAsDjB;AAED,wBAAgB,QAAQ,CAAC,EACxB,gBAAgB,GAChB,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;CACtB,GAAG,MAAM,CAUT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EACpC,kBAAkB,EAClB,iBAAiB,GACjB,EAAE;IACF,kBAAkB,EAAE,aAAa,CAAC;IAClC,iBAAiB,EAAE,GAAG,CAAC;CACvB,GAAG,IAAI,CAsDP"}
@@ -1,43 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.extractRtpCapabilities = extractRtpCapabilities;
37
4
  exports.extractDtlsParameters = extractDtlsParameters;
38
5
  exports.getCname = getCname;
39
6
  exports.applyCodecParameters = applyCodecParameters;
40
- const sdpTransform = __importStar(require("sdp-transform"));
7
+ const sdpTransform = require("sdp-transform");
41
8
  /**
42
9
  * This function must be called with an SDP with 1 m=audio and 1 m=video
43
10
  * sections.
@@ -85,7 +52,7 @@ function extractRtpCapabilities({ sdpObject, }) {
85
52
  codecsMap.set(codec.preferredPayloadType, codec);
86
53
  }
87
54
  // Get codec parameters.
88
- for (const fmtp of m.fmtp || []) {
55
+ for (const fmtp of m.fmtp ?? []) {
89
56
  const parameters = sdpTransform.parseParams(fmtp.config);
90
57
  const codec = codecsMap.get(fmtp.payload);
91
58
  if (!codec) {
@@ -98,7 +65,7 @@ function extractRtpCapabilities({ sdpObject, }) {
98
65
  codec.parameters = parameters;
99
66
  }
100
67
  // Get RTCP feedback for each codec.
101
- for (const fb of m.rtcpFb || []) {
68
+ for (const fb of m.rtcpFb ?? []) {
102
69
  const feedback = {
103
70
  type: fb.type,
104
71
  parameter: fb.subtype,
@@ -126,7 +93,7 @@ function extractRtpCapabilities({ sdpObject, }) {
126
93
  }
127
94
  }
128
95
  // Get RTP header extensions.
129
- for (const ext of m.ext || []) {
96
+ for (const ext of m.ext ?? []) {
130
97
  // Ignore encrypted extensions (not yet supported in mediasoup).
131
98
  if (ext['encrypt-uri']) {
132
99
  continue;
@@ -149,10 +116,10 @@ function extractDtlsParameters({ sdpObject, }) {
149
116
  let setup = sdpObject.setup;
150
117
  let fingerprint = sdpObject.fingerprint;
151
118
  if (!setup || !fingerprint) {
152
- const mediaObject = (sdpObject.media || []).find((m) => m.port !== 0);
119
+ const mediaObject = (sdpObject.media ?? []).find((m) => m.port !== 0);
153
120
  if (mediaObject) {
154
- setup ?? (setup = mediaObject.setup);
155
- fingerprint ?? (fingerprint = mediaObject.fingerprint);
121
+ setup ??= mediaObject.setup;
122
+ fingerprint ??= mediaObject.fingerprint;
156
123
  }
157
124
  }
158
125
  if (!setup) {
@@ -188,7 +155,7 @@ function extractDtlsParameters({ sdpObject, }) {
188
155
  return dtlsParameters;
189
156
  }
190
157
  function getCname({ offerMediaObject, }) {
191
- const ssrcCnameLine = (offerMediaObject.ssrcs || []).find((line) => line.attribute === 'cname');
158
+ const ssrcCnameLine = (offerMediaObject.ssrcs ?? []).find((line) => line.attribute === 'cname');
192
159
  if (!ssrcCnameLine) {
193
160
  return '';
194
161
  }
@@ -205,12 +172,12 @@ function applyCodecParameters({ offerRtpParameters, answerMediaObject, }) {
205
172
  if (mimeType !== 'audio/opus') {
206
173
  continue;
207
174
  }
208
- const rtp = (answerMediaObject.rtp || []).find((r) => r.payload === codec.payloadType);
175
+ const rtp = (answerMediaObject.rtp ?? []).find((r) => r.payload === codec.payloadType);
209
176
  if (!rtp) {
210
177
  continue;
211
178
  }
212
179
  // Just in case.
213
- answerMediaObject.fmtp = answerMediaObject.fmtp || [];
180
+ answerMediaObject.fmtp = answerMediaObject.fmtp ?? [];
214
181
  let fmtp = answerMediaObject.fmtp.find((f) => f.payload === codec.payloadType);
215
182
  if (!fmtp) {
216
183
  fmtp = { payload: codec.payloadType, config: '' };
@@ -221,7 +188,7 @@ function applyCodecParameters({ offerRtpParameters, answerMediaObject, }) {
221
188
  case 'audio/opus': {
222
189
  const spropStereo = codec.parameters['sprop-stereo'];
223
190
  if (spropStereo !== undefined) {
224
- parameters.stereo = Number(spropStereo) ? 1 : 0;
191
+ parameters['stereo'] = Number(spropStereo) ? 1 : 0;
225
192
  }
226
193
  break;
227
194
  }
@@ -1,4 +1,4 @@
1
- import { MediaKind, RtpEncodingParameters } from '../../RtpParameters';
1
+ import type { MediaKind, RtpEncodingParameters } from '../../RtpParameters';
2
2
  export declare function extractPlainRtpParameters({ sdpObject, kind, }: {
3
3
  sdpObject: any;
4
4
  kind: MediaKind;
@@ -1 +1 @@
1
- {"version":3,"file":"plainRtpUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/plainRtpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,wBAAgB,yBAAyB,CAAC,EACzC,SAAS,EACT,IAAI,GACJ,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CAChB,GAAG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb,CAcA;AAED,wBAAgB,eAAe,CAAC,EAC/B,SAAS,EACT,IAAI,GACJ,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CAChB,GAAG,qBAAqB,EAAE,CAe1B"}
1
+ {"version":3,"file":"plainRtpUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/plainRtpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,wBAAgB,yBAAyB,CAAC,EACzC,SAAS,EACT,IAAI,GACJ,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CAChB,GAAG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb,CAcA;AAED,wBAAgB,eAAe,CAAC,EAC/B,SAAS,EACT,IAAI,GACJ,EAAE;IACF,SAAS,EAAE,GAAG,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CAChB,GAAG,qBAAqB,EAAE,CAe1B"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPlainRtpParameters = extractPlainRtpParameters;
4
4
  exports.getRtpEncodings = getRtpEncodings;
5
5
  function extractPlainRtpParameters({ sdpObject, kind, }) {
6
- const mediaObject = (sdpObject.media || []).find((m) => m.type === kind);
6
+ const mediaObject = (sdpObject.media ?? []).find((m) => m.type === kind);
7
7
  if (!mediaObject) {
8
8
  throw new Error(`m=${kind} section not found`);
9
9
  }
10
- const connectionObject = mediaObject.connection || sdpObject.connection;
10
+ const connectionObject = mediaObject.connection ?? sdpObject.connection;
11
11
  return {
12
12
  ip: connectionObject.ip,
13
13
  ipVersion: connectionObject.version,
@@ -15,11 +15,11 @@ function extractPlainRtpParameters({ sdpObject, kind, }) {
15
15
  };
16
16
  }
17
17
  function getRtpEncodings({ sdpObject, kind, }) {
18
- const mediaObject = (sdpObject.media || []).find((m) => m.type === kind);
18
+ const mediaObject = (sdpObject.media ?? []).find((m) => m.type === kind);
19
19
  if (!mediaObject) {
20
20
  throw new Error(`m=${kind} section not found`);
21
21
  }
22
- const ssrcCnameLine = (mediaObject.ssrcs || [])[0];
22
+ const ssrcCnameLine = (mediaObject.ssrcs ?? [])[0];
23
23
  const ssrc = ssrcCnameLine ? ssrcCnameLine.id : null;
24
24
  if (ssrc) {
25
25
  return [{ ssrc }];
@@ -1,4 +1,4 @@
1
- import { RtpEncodingParameters } from '../../RtpParameters';
1
+ import type { RtpEncodingParameters } from '../../RtpParameters';
2
2
  export declare function getRtpEncodings({ offerMediaObject, track, }: {
3
3
  offerMediaObject: any;
4
4
  track: MediaStreamTrack;
@@ -1 +1 @@
1
- {"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAmHP"}
1
+ {"version":3,"file":"planBUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/planBUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,wBAAgB,eAAe,CAAC,EAC/B,gBAAgB,EAChB,KAAK,GACL,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;CACxB,GAAG,qBAAqB,EAAE,CAyE1B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,UAAU,GACV,EAAE;IACF,gBAAgB,EAAE,GAAG,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAmHP"}