mediasoup-client 3.13.0 → 3.14.0

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 (62) hide show
  1. package/lib/DataConsumer.d.ts.map +1 -1
  2. package/lib/DataConsumer.js +5 -8
  3. package/lib/DataProducer.d.ts.map +1 -1
  4. package/lib/DataProducer.js +5 -7
  5. package/lib/Device.d.ts +2 -2
  6. package/lib/Device.d.ts.map +1 -1
  7. package/lib/Device.js +53 -70
  8. package/lib/RtpParameters.d.ts +8 -8
  9. package/lib/RtpParameters.d.ts.map +1 -1
  10. package/lib/Transport.d.ts +4 -4
  11. package/lib/Transport.d.ts.map +1 -1
  12. package/lib/Transport.js +6 -7
  13. package/lib/enhancedEvents.d.ts.map +1 -1
  14. package/lib/enhancedEvents.js +1 -0
  15. package/lib/handlers/Chrome111.d.ts +7 -12
  16. package/lib/handlers/Chrome111.d.ts.map +1 -1
  17. package/lib/handlers/Chrome111.js +130 -89
  18. package/lib/handlers/Chrome74.d.ts +7 -12
  19. package/lib/handlers/Chrome74.d.ts.map +1 -1
  20. package/lib/handlers/Chrome74.js +130 -85
  21. package/lib/handlers/FakeHandler.d.ts +6 -9
  22. package/lib/handlers/FakeHandler.d.ts.map +1 -1
  23. package/lib/handlers/FakeHandler.js +201 -60
  24. package/lib/handlers/Firefox120.d.ts +7 -12
  25. package/lib/handlers/Firefox120.d.ts.map +1 -1
  26. package/lib/handlers/Firefox120.js +154 -111
  27. package/lib/handlers/HandlerInterface.d.ts +11 -9
  28. package/lib/handlers/HandlerInterface.d.ts.map +1 -1
  29. package/lib/handlers/ReactNative106.d.ts +7 -12
  30. package/lib/handlers/ReactNative106.d.ts.map +1 -1
  31. package/lib/handlers/ReactNative106.js +136 -92
  32. package/lib/handlers/Safari12.d.ts +7 -12
  33. package/lib/handlers/Safari12.d.ts.map +1 -1
  34. package/lib/handlers/Safari12.js +132 -86
  35. package/lib/handlers/sdp/MediaSection.d.ts +5 -5
  36. package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
  37. package/lib/handlers/sdp/MediaSection.js +43 -45
  38. package/lib/handlers/sdp/RemoteSdp.d.ts +5 -6
  39. package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
  40. package/lib/handlers/sdp/RemoteSdp.js +5 -8
  41. package/lib/handlers/sdp/commonUtils.d.ts +5 -4
  42. package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
  43. package/lib/handlers/sdp/commonUtils.js +2 -2
  44. package/lib/handlers/sdp/plainRtpUtils.d.ts +4 -3
  45. package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
  46. package/lib/handlers/sdp/plainRtpUtils.js +2 -2
  47. package/lib/handlers/sdp/unifiedPlanUtils.d.ts +3 -2
  48. package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
  49. package/lib/handlers/sdp/unifiedPlanUtils.js +10 -8
  50. package/lib/index.d.ts +1 -1
  51. package/lib/index.js +1 -1
  52. package/lib/ortc.d.ts +7 -6
  53. package/lib/ortc.d.ts.map +1 -1
  54. package/lib/ortc.js +13 -14
  55. package/lib/privateTypes.d.ts +27 -0
  56. package/lib/privateTypes.d.ts.map +1 -0
  57. package/lib/privateTypes.js +2 -0
  58. package/lib/test/test.js +18 -1
  59. package/lib/utils.d.ts +1 -1
  60. package/lib/utils.d.ts.map +1 -1
  61. package/lib/utils.js +5 -4
  62. package/package.json +1 -2
@@ -5,13 +5,13 @@ const sdpTransform = require("sdp-transform");
5
5
  const Logger_1 = require("../Logger");
6
6
  const utils = require("../utils");
7
7
  const ortc = require("../ortc");
8
- const sdpCommonUtils = require("./sdp/commonUtils");
9
- const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
10
- const ortcUtils = require("./ortc/utils");
11
8
  const errors_1 = require("../errors");
9
+ const scalabilityModes_1 = require("../scalabilityModes");
12
10
  const HandlerInterface_1 = require("./HandlerInterface");
13
11
  const RemoteSdp_1 = require("./sdp/RemoteSdp");
14
- const scalabilityModes_1 = require("../scalabilityModes");
12
+ const sdpCommonUtils = require("./sdp/commonUtils");
13
+ const sdpUnifiedPlanUtils = require("./sdp/unifiedPlanUtils");
14
+ const ortcUtils = require("./ortc/utils");
15
15
  const logger = new Logger_1.Logger('Safari12');
16
16
  const NAME = 'Safari12';
17
17
  const SCTP_NUM_STREAMS = { OS: 1024, MIS: 1024 };
@@ -46,70 +46,52 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
46
46
  * Creates a factory function.
47
47
  */
48
48
  static createFactory() {
49
- return () => new Safari12();
50
- }
51
- constructor() {
52
- super();
53
- }
54
- get name() {
55
- return NAME;
56
- }
57
- close() {
58
- logger.debug('close()');
59
- if (this._closed) {
60
- return;
61
- }
62
- this._closed = true;
63
- // Close RTCPeerConnection.
64
- if (this._pc) {
65
- try {
66
- this._pc.close();
67
- }
68
- catch (error) { }
69
- }
70
- this.emit('@close');
71
- }
72
- async getNativeRtpCapabilities() {
73
- logger.debug('getNativeRtpCapabilities()');
74
- const pc = new RTCPeerConnection({
75
- iceServers: [],
76
- iceTransportPolicy: 'all',
77
- bundlePolicy: 'max-bundle',
78
- rtcpMuxPolicy: 'require',
79
- });
80
- try {
81
- pc.addTransceiver('audio');
82
- pc.addTransceiver('video');
83
- const offer = await pc.createOffer();
84
- try {
85
- pc.close();
86
- }
87
- catch (error) { }
88
- const sdpObject = sdpTransform.parse(offer.sdp);
89
- const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
90
- sdpObject,
91
- });
92
- // libwebrtc supports NACK for OPUS but doesn't announce it.
93
- ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
94
- return nativeRtpCapabilities;
95
- }
96
- catch (error) {
97
- try {
98
- pc.close();
99
- }
100
- catch (error2) { }
101
- throw error;
102
- }
103
- }
104
- async getNativeSctpCapabilities() {
105
- logger.debug('getNativeSctpCapabilities()');
106
49
  return {
107
- numStreams: SCTP_NUM_STREAMS,
50
+ name: NAME,
51
+ factory: (options) => new Safari12(options),
52
+ getNativeRtpCapabilities: async () => {
53
+ logger.debug('getNativeRtpCapabilities()');
54
+ const pc = new RTCPeerConnection({
55
+ iceServers: [],
56
+ iceTransportPolicy: 'all',
57
+ bundlePolicy: 'max-bundle',
58
+ rtcpMuxPolicy: 'require',
59
+ });
60
+ try {
61
+ pc.addTransceiver('audio');
62
+ pc.addTransceiver('video');
63
+ const offer = await pc.createOffer();
64
+ try {
65
+ pc.close();
66
+ }
67
+ catch (error) { }
68
+ const sdpObject = sdpTransform.parse(offer.sdp);
69
+ const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
70
+ sdpObject,
71
+ });
72
+ // libwebrtc supports NACK for OPUS but doesn't announce it.
73
+ ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
74
+ return nativeRtpCapabilities;
75
+ }
76
+ catch (error) {
77
+ try {
78
+ pc.close();
79
+ }
80
+ catch (error2) { }
81
+ throw error;
82
+ }
83
+ },
84
+ getNativeSctpCapabilities: async () => {
85
+ logger.debug('getNativeSctpCapabilities()');
86
+ return {
87
+ numStreams: SCTP_NUM_STREAMS,
88
+ };
89
+ },
108
90
  };
109
91
  }
110
- run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
111
- this.assertNotClosed();
112
- logger.debug('run()');
92
+ constructor({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, extendedRtpCapabilities, }) {
93
+ super();
94
+ logger.debug('constructor()');
113
95
  this._direction = direction;
114
96
  this._remoteSdp = new RemoteSdp_1.RemoteSdp({
115
97
  iceParameters,
@@ -135,7 +117,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
135
117
  bundlePolicy: 'max-bundle',
136
118
  rtcpMuxPolicy: 'require',
137
119
  ...additionalSettings,
138
- }, proprietaryConstraints);
120
+ });
139
121
  this._pc.addEventListener('icegatheringstatechange', () => {
140
122
  this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
141
123
  });
@@ -176,6 +158,24 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
176
158
  });
177
159
  }
178
160
  }
161
+ get name() {
162
+ return NAME;
163
+ }
164
+ close() {
165
+ logger.debug('close()');
166
+ if (this._closed) {
167
+ return;
168
+ }
169
+ this._closed = true;
170
+ // Close RTCPeerConnection.
171
+ if (this._pc) {
172
+ try {
173
+ this._pc.close();
174
+ }
175
+ catch (error) { }
176
+ }
177
+ this.emit('@close');
178
+ }
179
179
  async updateIceServers(iceServers) {
180
180
  this.assertNotClosed();
181
181
  logger.debug('updateIceServers()');
@@ -195,12 +195,18 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
195
195
  const offer = await this._pc.createOffer({ iceRestart: true });
196
196
  logger.debug('restartIce() | calling pc.setLocalDescription() [offer:%o]', offer);
197
197
  await this._pc.setLocalDescription(offer);
198
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
198
+ const answer = {
199
+ type: 'answer',
200
+ sdp: this._remoteSdp.getSdp(),
201
+ };
199
202
  logger.debug('restartIce() | calling pc.setRemoteDescription() [answer:%o]', answer);
200
203
  await this._pc.setRemoteDescription(answer);
201
204
  }
202
205
  else {
203
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
206
+ const offer = {
207
+ type: 'offer',
208
+ sdp: this._remoteSdp.getSdp(),
209
+ };
204
210
  logger.debug('restartIce() | calling pc.setRemoteDescription() [offer:%o]', offer);
205
211
  await this._pc.setRemoteDescription(offer);
206
212
  const answer = await this._pc.createAnswer();
@@ -232,8 +238,6 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
232
238
  }
233
239
  let offer = await this._pc.createOffer();
234
240
  let localSdpObject = sdpTransform.parse(offer.sdp);
235
- // @ts-expect-error --- sdpTransform.SessionDescription type doesn't
236
- // define extmapAllowMixed field.
237
241
  if (localSdpObject.extmapAllowMixed) {
238
242
  this._remoteSdp.setSessionExtmapAllowMixed();
239
243
  }
@@ -253,7 +257,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
253
257
  offerMediaObject,
254
258
  numStreams: encodings.length,
255
259
  });
256
- offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
260
+ offer = {
261
+ type: 'offer',
262
+ sdp: sdpTransform.write(localSdpObject),
263
+ };
257
264
  }
258
265
  logger.debug('send() | calling pc.setLocalDescription() [offer:%o]', offer);
259
266
  await this._pc.setLocalDescription(offer);
@@ -300,7 +307,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
300
307
  answerRtpParameters: sendingRemoteRtpParameters,
301
308
  codecOptions,
302
309
  });
303
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
310
+ const answer = {
311
+ type: 'answer',
312
+ sdp: this._remoteSdp.getSdp(),
313
+ };
304
314
  logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
305
315
  await this._pc.setRemoteDescription(answer);
306
316
  // Store in the map.
@@ -333,7 +343,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
333
343
  const offer = await this._pc.createOffer();
334
344
  logger.debug('stopSending() | calling pc.setLocalDescription() [offer:%o]', offer);
335
345
  await this._pc.setLocalDescription(offer);
336
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
346
+ const answer = {
347
+ type: 'answer',
348
+ sdp: this._remoteSdp.getSdp(),
349
+ };
337
350
  logger.debug('stopSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
338
351
  await this._pc.setRemoteDescription(answer);
339
352
  this._mapMidTransceiver.delete(localId);
@@ -351,7 +364,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
351
364
  const offer = await this._pc.createOffer();
352
365
  logger.debug('pauseSending() | calling pc.setLocalDescription() [offer:%o]', offer);
353
366
  await this._pc.setLocalDescription(offer);
354
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
367
+ const answer = {
368
+ type: 'answer',
369
+ sdp: this._remoteSdp.getSdp(),
370
+ };
355
371
  logger.debug('pauseSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
356
372
  await this._pc.setRemoteDescription(answer);
357
373
  }
@@ -368,7 +384,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
368
384
  const offer = await this._pc.createOffer();
369
385
  logger.debug('resumeSending() | calling pc.setLocalDescription() [offer:%o]', offer);
370
386
  await this._pc.setLocalDescription(offer);
371
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
387
+ const answer = {
388
+ type: 'answer',
389
+ sdp: this._remoteSdp.getSdp(),
390
+ };
372
391
  logger.debug('resumeSending() | calling pc.setRemoteDescription() [answer:%o]', answer);
373
392
  await this._pc.setRemoteDescription(answer);
374
393
  }
@@ -409,7 +428,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
409
428
  const offer = await this._pc.createOffer();
410
429
  logger.debug('setMaxSpatialLayer() | calling pc.setLocalDescription() [offer:%o]', offer);
411
430
  await this._pc.setLocalDescription(offer);
412
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
431
+ const answer = {
432
+ type: 'answer',
433
+ sdp: this._remoteSdp.getSdp(),
434
+ };
413
435
  logger.debug('setMaxSpatialLayer() | calling pc.setRemoteDescription() [answer:%o]', answer);
414
436
  await this._pc.setRemoteDescription(answer);
415
437
  }
@@ -430,7 +452,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
430
452
  const offer = await this._pc.createOffer();
431
453
  logger.debug('setRtpEncodingParameters() | calling pc.setLocalDescription() [offer:%o]', offer);
432
454
  await this._pc.setLocalDescription(offer);
433
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
455
+ const answer = {
456
+ type: 'answer',
457
+ sdp: this._remoteSdp.getSdp(),
458
+ };
434
459
  logger.debug('setRtpEncodingParameters() | calling pc.setRemoteDescription() [answer:%o]', answer);
435
460
  await this._pc.setRemoteDescription(answer);
436
461
  }
@@ -464,7 +489,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
464
489
  if (!this._hasDataChannelMediaSection) {
465
490
  const offer = await this._pc.createOffer();
466
491
  const localSdpObject = sdpTransform.parse(offer.sdp);
467
- const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
492
+ const offerMediaObject = localSdpObject.media.find(m => m.type === 'application');
468
493
  if (!this._transportReady) {
469
494
  await this.setupTransport({
470
495
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
@@ -474,7 +499,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
474
499
  logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
475
500
  await this._pc.setLocalDescription(offer);
476
501
  this._remoteSdp.sendSctpAssociation({ offerMediaObject });
477
- const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
502
+ const answer = {
503
+ type: 'answer',
504
+ sdp: this._remoteSdp.getSdp(),
505
+ };
478
506
  logger.debug('sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
479
507
  await this._pc.setRemoteDescription(answer);
480
508
  this._hasDataChannelMediaSection = true;
@@ -505,7 +533,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
505
533
  trackId,
506
534
  });
507
535
  }
508
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
536
+ const offer = {
537
+ type: 'offer',
538
+ sdp: this._remoteSdp.getSdp(),
539
+ };
509
540
  logger.debug('receive() | calling pc.setRemoteDescription() [offer:%o]', offer);
510
541
  await this._pc.setRemoteDescription(offer);
511
542
  for (const options of optionsList) {
@@ -526,7 +557,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
526
557
  for (const options of optionsList) {
527
558
  const { trackId, rtpParameters } = options;
528
559
  const localId = mapLocalId.get(trackId);
529
- const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === localId);
560
+ const answerMediaObject = localSdpObject.media.find(m => String(m.mid) === localId);
530
561
  // May need to modify codec parameters in the answer based on codec
531
562
  // parameters in the offer.
532
563
  sdpCommonUtils.applyCodecParameters({
@@ -534,7 +565,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
534
565
  answerMediaObject,
535
566
  });
536
567
  }
537
- answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
568
+ answer = {
569
+ type: 'answer',
570
+ sdp: sdpTransform.write(localSdpObject),
571
+ };
538
572
  if (!this._transportReady) {
539
573
  await this.setupTransport({
540
574
  localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
@@ -575,7 +609,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
575
609
  }
576
610
  this._remoteSdp.closeMediaSection(transceiver.mid);
577
611
  }
578
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
612
+ const offer = {
613
+ type: 'offer',
614
+ sdp: this._remoteSdp.getSdp(),
615
+ };
579
616
  logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
580
617
  await this._pc.setRemoteDescription(offer);
581
618
  const answer = await this._pc.createAnswer();
@@ -597,7 +634,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
597
634
  transceiver.direction = 'inactive';
598
635
  this._remoteSdp.pauseMediaSection(localId);
599
636
  }
600
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
637
+ const offer = {
638
+ type: 'offer',
639
+ sdp: this._remoteSdp.getSdp(),
640
+ };
601
641
  logger.debug('pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
602
642
  await this._pc.setRemoteDescription(offer);
603
643
  const answer = await this._pc.createAnswer();
@@ -616,7 +656,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
616
656
  transceiver.direction = 'recvonly';
617
657
  this._remoteSdp.resumeReceivingMediaSection(localId);
618
658
  }
619
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
659
+ const offer = {
660
+ type: 'offer',
661
+ sdp: this._remoteSdp.getSdp(),
662
+ };
620
663
  logger.debug('resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
621
664
  await this._pc.setRemoteDescription(offer);
622
665
  const answer = await this._pc.createAnswer();
@@ -650,7 +693,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
650
693
  // m=application section.
651
694
  if (!this._hasDataChannelMediaSection) {
652
695
  this._remoteSdp.receiveSctpAssociation();
653
- const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
696
+ const offer = {
697
+ type: 'offer',
698
+ sdp: this._remoteSdp.getSdp(),
699
+ };
654
700
  logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]', offer);
655
701
  await this._pc.setRemoteDescription(offer);
656
702
  const answer = await this._pc.createAnswer();
@@ -1,9 +1,10 @@
1
+ import type * as SdpTransform from 'sdp-transform';
1
2
  import type { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
2
3
  import type { ProducerCodecOptions } from '../../Producer';
3
4
  import type { MediaKind, RtpParameters } from '../../RtpParameters';
4
5
  import type { SctpParameters } from '../../SctpParameters';
5
6
  export declare abstract class MediaSection {
6
- protected readonly _mediaObject: any;
7
+ protected readonly _mediaObject: SdpTransform.MediaDescription;
7
8
  constructor({ iceParameters, iceCandidates, dtlsParameters, }: {
8
9
  iceParameters?: IceParameters;
9
10
  iceCandidates?: IceCandidate[];
@@ -12,7 +13,7 @@ export declare abstract class MediaSection {
12
13
  abstract setDtlsRole(role: DtlsRole): void;
13
14
  get mid(): string;
14
15
  get closed(): boolean;
15
- getObject(): object;
16
+ getObject(): SdpTransform.MediaDescription;
16
17
  setIceParameters(iceParameters: IceParameters): void;
17
18
  pause(): void;
18
19
  abstract resume(): void;
@@ -26,7 +27,7 @@ export declare class AnswerMediaSection extends MediaSection {
26
27
  dtlsParameters?: DtlsParameters;
27
28
  sctpParameters?: SctpParameters;
28
29
  plainRtpParameters?: PlainRtpParameters;
29
- offerMediaObject: any;
30
+ offerMediaObject: SdpTransform.MediaDescription;
30
31
  offerRtpParameters?: RtpParameters;
31
32
  answerRtpParameters?: RtpParameters;
32
33
  codecOptions?: ProducerCodecOptions;
@@ -36,7 +37,7 @@ export declare class AnswerMediaSection extends MediaSection {
36
37
  muxSimulcastStreams(encodings: RTCRtpEncodingParameters[]): void;
37
38
  }
38
39
  export declare class OfferMediaSection extends MediaSection {
39
- constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, mid, kind, offerRtpParameters, streamId, trackId, oldDataChannelSpec, }: {
40
+ constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, mid, kind, offerRtpParameters, streamId, trackId, }: {
40
41
  iceParameters?: IceParameters;
41
42
  iceCandidates?: IceCandidate[];
42
43
  dtlsParameters?: DtlsParameters;
@@ -47,7 +48,6 @@ export declare class OfferMediaSection extends MediaSection {
47
48
  offerRtpParameters?: RtpParameters;
48
49
  streamId?: string;
49
50
  trackId?: string;
50
- oldDataChannelSpec?: boolean;
51
51
  });
52
52
  setDtlsRole(role: DtlsRole): void;
53
53
  resume(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8BAAsB,YAAY;IAEjC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;gBAEzB,EACX,aAAa,EACb,aAAa,EACb,cAAc,GACd,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC;IAyCD,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAE1C,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,IAAI,MAAM;IAInB,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAKpD,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,OAAO,IAAI,IAAI;IAYf,KAAK,IAAI,IAAI;CAKb;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACvC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,gBAAgB,EAAE,GAAG,CAAC;QACtB,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,mBAAmB,CAAC,EAAE,aAAa,CAAC;QACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;KACpC;IA+PD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAsBjC,MAAM,IAAI,IAAI;IAId,mBAAmB,CAAC,SAAS,EAAE,wBAAwB,EAAE,GAAG,IAAI;CA6BhE;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACtC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,GAAG,EACH,IAAI,EACJ,kBAAkB,EAClB,QAAQ,EACR,OAAO,EACP,kBAA0B,GAC1B,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;QAChC,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC7B;IAsJD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKjC,MAAM,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,YAAY,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EACX,SAAS,EACT,aAAa,EAGb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,8BAAsB,YAAY;IAEjC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,gBAAgB,CAAC;gBAEnD,EACX,aAAa,EACb,aAAa,EACb,cAAc,GACd,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC;IAmDD,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAE1C,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,IAAI,YAAY,CAAC,gBAAgB;IAI1C,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAKpD,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,OAAO,IAAI,IAAI;IAYf,KAAK,IAAI,IAAI;CAKb;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACvC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,CAAC;QAChD,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,mBAAmB,CAAC,EAAE,aAAa,CAAC;QACpC,YAAY,CAAC,EAAE,oBAAoB,CAAC;KACpC;IAiQD,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAsBjC,MAAM,IAAI,IAAI;IAId,mBAAmB,CAAC,SAAS,EAAE,wBAAwB,EAAE,GAAG,IAAI;CA6BhE;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACtC,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,GAAG,EACH,IAAI,EACJ,kBAAkB,EAClB,QAAQ,EACR,OAAO,GACP,EAAE;QACF,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/B,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,SAAS,GAAG,aAAa,CAAC;QAChC,kBAAkB,CAAC,EAAE,aAAa,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KACjB;IA4ID,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAKjC,MAAM,IAAI,IAAI;CAGd"}
@@ -7,25 +7,33 @@ class MediaSection {
7
7
  // SDP media object.
8
8
  _mediaObject;
9
9
  constructor({ iceParameters, iceCandidates, dtlsParameters, }) {
10
- this._mediaObject = {};
10
+ this._mediaObject = {
11
+ type: '',
12
+ port: 0,
13
+ protocol: '',
14
+ payloads: '',
15
+ rtp: [],
16
+ fmtp: [],
17
+ };
11
18
  if (iceParameters) {
12
19
  this.setIceParameters(iceParameters);
13
20
  }
14
21
  if (iceCandidates) {
15
22
  this._mediaObject.candidates = [];
16
23
  for (const candidate of iceCandidates) {
17
- const candidateObject = {};
18
- // mediasoup does mandates rtcp-mux so candidates component is always
19
- // RTP (1).
20
- candidateObject.component = 1;
21
- candidateObject.foundation = candidate.foundation;
22
- // Be ready for new candidate.address field in mediasoup server side
23
- // field and keep backward compatibility with deprecated candidate.ip.
24
- candidateObject.ip = candidate.address ?? candidate.ip;
25
- candidateObject.port = candidate.port;
26
- candidateObject.priority = candidate.priority;
27
- candidateObject.transport = candidate.protocol;
28
- candidateObject.type = candidate.type;
24
+ const candidateObject = {
25
+ foundation: candidate.foundation,
26
+ // mediasoup does mandates rtcp-mux so candidates component is always
27
+ // RTP (1).
28
+ component: 1,
29
+ // Be ready for new candidate.address field in mediasoup server side
30
+ // field and keep backward compatibility with deprecated candidate.ip.
31
+ ip: candidate.address ?? candidate.ip,
32
+ port: candidate.port,
33
+ priority: candidate.priority,
34
+ transport: candidate.protocol,
35
+ type: candidate.type,
36
+ };
29
37
  if (candidate.tcpType) {
30
38
  candidateObject.tcptype = candidate.tcpType;
31
39
  }
@@ -114,25 +122,25 @@ class AnswerMediaSection extends MediaSection {
114
122
  case 'audio/multiopus': {
115
123
  if (opusStereo !== undefined) {
116
124
  offerCodec.parameters['sprop-stereo'] = opusStereo ? 1 : 0;
117
- codecParameters.stereo = opusStereo ? 1 : 0;
125
+ codecParameters['stereo'] = opusStereo ? 1 : 0;
118
126
  }
119
127
  if (opusFec !== undefined) {
120
- offerCodec.parameters.useinbandfec = opusFec ? 1 : 0;
121
- codecParameters.useinbandfec = opusFec ? 1 : 0;
128
+ offerCodec.parameters['useinbandfec'] = opusFec ? 1 : 0;
129
+ codecParameters['useinbandfec'] = opusFec ? 1 : 0;
122
130
  }
123
131
  if (opusDtx !== undefined) {
124
- offerCodec.parameters.usedtx = opusDtx ? 1 : 0;
125
- codecParameters.usedtx = opusDtx ? 1 : 0;
132
+ offerCodec.parameters['usedtx'] = opusDtx ? 1 : 0;
133
+ codecParameters['usedtx'] = opusDtx ? 1 : 0;
126
134
  }
127
135
  if (opusMaxPlaybackRate !== undefined) {
128
- codecParameters.maxplaybackrate = opusMaxPlaybackRate;
136
+ codecParameters['maxplaybackrate'] = opusMaxPlaybackRate;
129
137
  }
130
138
  if (opusMaxAverageBitrate !== undefined) {
131
- codecParameters.maxaveragebitrate = opusMaxAverageBitrate;
139
+ codecParameters['maxaveragebitrate'] = opusMaxAverageBitrate;
132
140
  }
133
141
  if (opusPtime !== undefined) {
134
- offerCodec.parameters.ptime = opusPtime;
135
- codecParameters.ptime = opusPtime;
142
+ offerCodec.parameters['ptime'] = opusPtime;
143
+ codecParameters['ptime'] = opusPtime;
136
144
  }
137
145
  // If opusNack is not set, we must remove NACK support for OPUS.
138
146
  // Otherwise it would be enabled for those handlers that artificially
@@ -251,7 +259,7 @@ class AnswerMediaSection extends MediaSection {
251
259
  }
252
260
  // Old spec.
253
261
  else if (offerMediaObject.sctpmap) {
254
- this._mediaObject.payloads = sctpParameters.port;
262
+ this._mediaObject.payloads = String(sctpParameters.port);
255
263
  this._mediaObject.sctpmap = {
256
264
  app: 'webrtc-datachannel',
257
265
  sctpmapNumber: sctpParameters.port,
@@ -305,7 +313,7 @@ class AnswerMediaSection extends MediaSection {
305
313
  }
306
314
  exports.AnswerMediaSection = AnswerMediaSection;
307
315
  class OfferMediaSection extends MediaSection {
308
- constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, mid, kind, offerRtpParameters, streamId, trackId, oldDataChannelSpec = false, }) {
316
+ constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, mid, kind, offerRtpParameters, streamId, trackId, }) {
309
317
  super({ iceParameters, iceCandidates, dtlsParameters });
310
318
  this._mediaObject.mid = String(mid);
311
319
  this._mediaObject.type = kind;
@@ -352,7 +360,7 @@ class OfferMediaSection extends MediaSection {
352
360
  payload: codec.payloadType,
353
361
  config: '',
354
362
  };
355
- for (const key of Object.keys(codec.parameters)) {
363
+ for (const key of Object.keys(codec.parameters ?? {})) {
356
364
  if (fmtp.config) {
357
365
  fmtp.config += ';';
358
366
  }
@@ -386,7 +394,7 @@ class OfferMediaSection extends MediaSection {
386
394
  const rtxSsrc = encoding.rtx?.ssrc;
387
395
  this._mediaObject.ssrcs = [];
388
396
  this._mediaObject.ssrcGroups = [];
389
- if (offerRtpParameters.rtcp.cname) {
397
+ if (ssrc && offerRtpParameters.rtcp.cname) {
390
398
  this._mediaObject.ssrcs.push({
391
399
  id: ssrc,
392
400
  attribute: 'cname',
@@ -402,29 +410,19 @@ class OfferMediaSection extends MediaSection {
402
410
  });
403
411
  }
404
412
  // Associate original and retransmission SSRCs.
405
- this._mediaObject.ssrcGroups.push({
406
- semantics: 'FID',
407
- ssrcs: `${ssrc} ${rtxSsrc}`,
408
- });
413
+ if (ssrc) {
414
+ this._mediaObject.ssrcGroups.push({
415
+ semantics: 'FID',
416
+ ssrcs: `${ssrc} ${rtxSsrc}`,
417
+ });
418
+ }
409
419
  }
410
420
  break;
411
421
  }
412
422
  case 'application': {
413
- // New spec.
414
- if (!oldDataChannelSpec) {
415
- this._mediaObject.payloads = 'webrtc-datachannel';
416
- this._mediaObject.sctpPort = sctpParameters.port;
417
- this._mediaObject.maxMessageSize = sctpParameters.maxMessageSize;
418
- }
419
- // Old spec.
420
- else {
421
- this._mediaObject.payloads = sctpParameters.port;
422
- this._mediaObject.sctpmap = {
423
- app: 'webrtc-datachannel',
424
- sctpmapNumber: sctpParameters.port,
425
- maxMessageSize: sctpParameters.maxMessageSize,
426
- };
427
- }
423
+ this._mediaObject.payloads = 'webrtc-datachannel';
424
+ this._mediaObject.sctpPort = sctpParameters.port;
425
+ this._mediaObject.maxMessageSize = sctpParameters.maxMessageSize;
428
426
  break;
429
427
  }
430
428
  }
@@ -1,3 +1,4 @@
1
+ import type * as SdpTransform from 'sdp-transform';
1
2
  import { MediaSection } from './MediaSection';
2
3
  import type { IceParameters, IceCandidate, DtlsParameters, DtlsRole, PlainRtpParameters } from '../../Transport';
3
4
  import type { ProducerCodecOptions } from '../../Producer';
@@ -31,7 +32,7 @@ export declare class RemoteSdp {
31
32
  reuseMid?: string;
32
33
  };
33
34
  send({ offerMediaObject, reuseMid, offerRtpParameters, answerRtpParameters, codecOptions, }: {
34
- offerMediaObject: any;
35
+ offerMediaObject: SdpTransform.MediaDescription;
35
36
  reuseMid?: string;
36
37
  offerRtpParameters: RtpParameters;
37
38
  answerRtpParameters: RtpParameters;
@@ -57,12 +58,10 @@ export declare class RemoteSdp {
57
58
  */
58
59
  closeMediaSection(mid: string): boolean;
59
60
  muxMediaSectionSimulcast(mid: string, encodings: RTCRtpEncodingParameters[]): void;
60
- sendSctpAssociation({ offerMediaObject }: {
61
- offerMediaObject: any;
62
- }): void;
63
- receiveSctpAssociation({ oldDataChannelSpec, }?: {
64
- oldDataChannelSpec?: boolean;
61
+ sendSctpAssociation({ offerMediaObject, }: {
62
+ offerMediaObject: SdpTransform.MediaDescription;
65
63
  }): void;
64
+ receiveSctpAssociation(): void;
66
65
  getSdp(): string;
67
66
  _addMediaSection(newMediaSection: MediaSection): void;
68
67
  _replaceMediaSection(newMediaSection: MediaSection, reuseMid?: string): void;
@@ -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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"}