mediasoup-client 3.7.1 → 3.7.2
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.
- package/README.md +85 -112
- package/lib/Consumer.d.ts +1 -1
- package/lib/Consumer.d.ts.map +1 -1
- package/lib/Consumer.js +1 -1
- package/lib/DataConsumer.d.ts +1 -1
- package/lib/DataConsumer.d.ts.map +1 -1
- package/lib/DataConsumer.js +1 -1
- package/lib/DataProducer.d.ts +1 -1
- package/lib/DataProducer.d.ts.map +1 -1
- package/lib/DataProducer.js +1 -1
- package/lib/Device.d.ts +3 -3
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +66 -89
- package/lib/EnhancedEventEmitter.d.ts.map +1 -1
- package/lib/Logger.d.ts.map +1 -1
- package/lib/Producer.d.ts +5 -15
- package/lib/Producer.d.ts.map +1 -1
- package/lib/Producer.js +2 -2
- package/lib/RtpParameters.d.ts.map +1 -1
- package/lib/SctpParameters.d.ts.map +1 -1
- package/lib/Transport.d.ts +14 -10
- package/lib/Transport.d.ts.map +1 -1
- package/lib/Transport.js +71 -53
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +6 -6
- package/lib/handlers/Chrome111.d.ts +4 -4
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +74 -77
- package/lib/handlers/Chrome55.d.ts +4 -4
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +83 -80
- package/lib/handlers/Chrome67.d.ts +4 -4
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +85 -83
- package/lib/handlers/Chrome70.d.ts +4 -4
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +76 -78
- package/lib/handlers/Chrome74.d.ts +4 -4
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +75 -78
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +63 -77
- package/lib/handlers/FakeHandler.d.ts +3 -3
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +19 -22
- package/lib/handlers/Firefox60.d.ts +4 -4
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +75 -72
- package/lib/handlers/HandlerInterface.d.ts.map +1 -1
- package/lib/handlers/ReactNative.d.ts +4 -4
- package/lib/handlers/ReactNative.d.ts.map +1 -1
- package/lib/handlers/ReactNative.js +84 -82
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +75 -78
- package/lib/handlers/Safari11.d.ts +4 -4
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +84 -81
- package/lib/handlers/Safari12.d.ts +4 -4
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +75 -77
- package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.d.ts.map +1 -1
- package/lib/handlers/ortc/utils.js +2 -2
- package/lib/handlers/sdp/MediaSection.d.ts +5 -5
- package/lib/handlers/sdp/MediaSection.d.ts.map +1 -1
- package/lib/handlers/sdp/MediaSection.js +293 -317
- package/lib/handlers/sdp/RemoteSdp.d.ts +5 -5
- package/lib/handlers/sdp/RemoteSdp.d.ts.map +1 -1
- package/lib/handlers/sdp/RemoteSdp.js +28 -30
- package/lib/handlers/sdp/commonUtils.d.ts +4 -4
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +47 -58
- package/lib/handlers/sdp/plainRtpUtils.d.ts +2 -2
- package/lib/handlers/sdp/plainRtpUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/plainRtpUtils.js +5 -7
- package/lib/handlers/sdp/planBUtils.d.ts +2 -2
- package/lib/handlers/sdp/planBUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/planBUtils.js +11 -14
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts +2 -2
- package/lib/handlers/sdp/unifiedPlanUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/unifiedPlanUtils.js +11 -14
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +98 -108
- package/lib/scalabilityModes.d.ts.map +1 -1
- package/lib/scalabilityModes.js +2 -2
- package/lib/{tests → test}/fakeParameters.d.ts +2 -2
- package/lib/test/fakeParameters.d.ts.map +1 -0
- package/lib/test/fakeParameters.js +645 -0
- package/lib/{tests → test}/test.d.ts.map +1 -1
- package/lib/{tests → test}/test.js +466 -495
- package/lib/test/uaTestCases.d.ts.map +1 -0
- package/lib/{tests → test}/uaTestCases.js +17 -17
- package/lib/types.d.ts.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/npm-scripts.mjs +72 -98
- package/package.json +93 -90
- package/lib/tests/fakeParameters.d.ts.map +0 -1
- package/lib/tests/fakeParameters.js +0 -662
- package/lib/tests/uaTestCases.d.ts.map +0 -1
- /package/lib/{tests → test}/test.d.ts +0 -0
- /package/lib/{tests → test}/uaTestCases.d.ts +0 -0
|
@@ -88,7 +88,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
88
88
|
iceTransportPolicy: 'all',
|
|
89
89
|
bundlePolicy: 'max-bundle',
|
|
90
90
|
rtcpMuxPolicy: 'require',
|
|
91
|
-
sdpSemantics: 'unified-plan'
|
|
91
|
+
sdpSemantics: 'unified-plan',
|
|
92
92
|
});
|
|
93
93
|
try {
|
|
94
94
|
pc.addTransceiver('audio');
|
|
@@ -99,7 +99,9 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
99
99
|
}
|
|
100
100
|
catch (error) { }
|
|
101
101
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
102
|
-
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
102
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
103
|
+
sdpObject,
|
|
104
|
+
});
|
|
103
105
|
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
104
106
|
ortcUtils.addNackSuppportForOpus(nativeRtpCapabilities);
|
|
105
107
|
return nativeRtpCapabilities;
|
|
@@ -115,10 +117,10 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
115
117
|
async getNativeSctpCapabilities() {
|
|
116
118
|
logger.debug('getNativeSctpCapabilities()');
|
|
117
119
|
return {
|
|
118
|
-
numStreams: SCTP_NUM_STREAMS
|
|
120
|
+
numStreams: SCTP_NUM_STREAMS,
|
|
119
121
|
};
|
|
120
122
|
}
|
|
121
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
|
|
123
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
|
|
122
124
|
this.assertNotClosed();
|
|
123
125
|
logger.debug('run()');
|
|
124
126
|
this._direction = direction;
|
|
@@ -126,22 +128,19 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
126
128
|
iceParameters,
|
|
127
129
|
iceCandidates,
|
|
128
130
|
dtlsParameters,
|
|
129
|
-
sctpParameters
|
|
131
|
+
sctpParameters,
|
|
130
132
|
});
|
|
131
|
-
this._sendingRtpParametersByKind =
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
140
|
-
};
|
|
133
|
+
this._sendingRtpParametersByKind = {
|
|
134
|
+
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
135
|
+
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
136
|
+
};
|
|
137
|
+
this._sendingRemoteRtpParametersByKind = {
|
|
138
|
+
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
139
|
+
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
|
|
140
|
+
};
|
|
141
141
|
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
142
|
-
this._forcedLocalDtlsRole =
|
|
143
|
-
? 'client'
|
|
144
|
-
: 'server';
|
|
142
|
+
this._forcedLocalDtlsRole =
|
|
143
|
+
dtlsParameters.role === 'server' ? 'client' : 'server';
|
|
145
144
|
}
|
|
146
145
|
this._pc = new RTCPeerConnection({
|
|
147
146
|
iceServers: iceServers || [],
|
|
@@ -149,7 +148,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
149
148
|
bundlePolicy: 'max-bundle',
|
|
150
149
|
rtcpMuxPolicy: 'require',
|
|
151
150
|
sdpSemantics: 'unified-plan',
|
|
152
|
-
...additionalSettings
|
|
151
|
+
...additionalSettings,
|
|
153
152
|
}, proprietaryConstraints);
|
|
154
153
|
this._pc.addEventListener('icegatheringstatechange', () => {
|
|
155
154
|
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
@@ -163,32 +162,27 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
163
162
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
164
163
|
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
165
164
|
switch (this._pc.iceConnectionState) {
|
|
166
|
-
case 'checking':
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
165
|
+
case 'checking': {
|
|
166
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
171
169
|
case 'connected':
|
|
172
|
-
case 'completed':
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
{
|
|
189
|
-
this.emit('@connectionstatechange', 'closed');
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
170
|
+
case 'completed': {
|
|
171
|
+
this.emit('@connectionstatechange', 'connected');
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
case 'failed': {
|
|
175
|
+
this.emit('@connectionstatechange', 'failed');
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case 'disconnected': {
|
|
179
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case 'closed': {
|
|
183
|
+
this.emit('@connectionstatechange', 'closed');
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
192
186
|
}
|
|
193
187
|
});
|
|
194
188
|
}
|
|
@@ -229,7 +223,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
229
223
|
this.assertNotClosed();
|
|
230
224
|
return this._pc.getStats();
|
|
231
225
|
}
|
|
232
|
-
async send({ track, encodings, codecOptions, codec }) {
|
|
226
|
+
async send({ track, encodings, codecOptions, codec, }) {
|
|
233
227
|
this.assertNotClosed();
|
|
234
228
|
this.assertSendDirection();
|
|
235
229
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
@@ -240,17 +234,15 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
240
234
|
}
|
|
241
235
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
242
236
|
// This may throw.
|
|
243
|
-
sendingRtpParameters.codecs =
|
|
244
|
-
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
237
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
245
238
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
246
239
|
// This may throw.
|
|
247
|
-
sendingRemoteRtpParameters.codecs =
|
|
248
|
-
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
240
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
249
241
|
const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
|
|
250
242
|
const transceiver = this._pc.addTransceiver(track, {
|
|
251
243
|
direction: 'sendonly',
|
|
252
244
|
streams: [this._sendStream],
|
|
253
|
-
sendEncodings: encodings
|
|
245
|
+
sendEncodings: encodings,
|
|
254
246
|
});
|
|
255
247
|
let offer = await this._pc.createOffer();
|
|
256
248
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
@@ -258,7 +250,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
258
250
|
if (!this._transportReady) {
|
|
259
251
|
await this.setupTransport({
|
|
260
252
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
261
|
-
localSdpObject
|
|
253
|
+
localSdpObject,
|
|
262
254
|
});
|
|
263
255
|
}
|
|
264
256
|
// Special case for VP9 with SVC.
|
|
@@ -274,7 +266,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
274
266
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
275
267
|
sdpUnifiedPlanUtils.addLegacySimulcast({
|
|
276
268
|
offerMediaObject,
|
|
277
|
-
numStreams: layers.spatialLayers
|
|
269
|
+
numStreams: layers.spatialLayers,
|
|
278
270
|
});
|
|
279
271
|
offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
|
|
280
272
|
}
|
|
@@ -297,17 +289,21 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
297
289
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
298
290
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
299
291
|
// Set RTCP CNAME.
|
|
300
|
-
sendingRtpParameters.rtcp.cname =
|
|
301
|
-
|
|
292
|
+
sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
|
|
293
|
+
offerMediaObject,
|
|
294
|
+
});
|
|
302
295
|
// Set RTP encodings by parsing the SDP offer if no encodings are given.
|
|
303
296
|
if (!encodings) {
|
|
304
|
-
sendingRtpParameters.encodings =
|
|
305
|
-
|
|
297
|
+
sendingRtpParameters.encodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
298
|
+
offerMediaObject,
|
|
299
|
+
});
|
|
306
300
|
}
|
|
307
301
|
// Set RTP encodings by parsing the SDP offer and complete them with given
|
|
308
302
|
// one if just a single encoding has been given.
|
|
309
303
|
else if (encodings.length === 1) {
|
|
310
|
-
let newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
304
|
+
let newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
305
|
+
offerMediaObject,
|
|
306
|
+
});
|
|
311
307
|
Object.assign(newEncodings[0], encodings[0]);
|
|
312
308
|
// Hack for VP9 SVC.
|
|
313
309
|
if (hackVp9Svc) {
|
|
@@ -339,7 +335,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
339
335
|
offerRtpParameters: sendingRtpParameters,
|
|
340
336
|
answerRtpParameters: sendingRemoteRtpParameters,
|
|
341
337
|
codecOptions,
|
|
342
|
-
extmapAllowMixed: true
|
|
338
|
+
extmapAllowMixed: true,
|
|
343
339
|
});
|
|
344
340
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
345
341
|
logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -357,7 +353,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
357
353
|
return {
|
|
358
354
|
localId,
|
|
359
355
|
rtpParameters: sendingRtpParameters,
|
|
360
|
-
rtpSender: transceiver.sender
|
|
356
|
+
rtpSender: transceiver.sender,
|
|
361
357
|
};
|
|
362
358
|
}
|
|
363
359
|
async stopSending(localId) {
|
|
@@ -492,7 +488,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
492
488
|
}
|
|
493
489
|
return transceiver.sender.getStats();
|
|
494
490
|
}
|
|
495
|
-
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
491
|
+
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
|
|
496
492
|
this.assertNotClosed();
|
|
497
493
|
this.assertSendDirection();
|
|
498
494
|
const options = {
|
|
@@ -501,7 +497,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
501
497
|
ordered,
|
|
502
498
|
maxPacketLifeTime,
|
|
503
499
|
maxRetransmits,
|
|
504
|
-
protocol
|
|
500
|
+
protocol,
|
|
505
501
|
};
|
|
506
502
|
logger.debug('sendDataChannel() [options:%o]', options);
|
|
507
503
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -513,12 +509,11 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
513
509
|
if (!this._hasDataChannelMediaSection) {
|
|
514
510
|
const offer = await this._pc.createOffer();
|
|
515
511
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
516
|
-
const offerMediaObject = localSdpObject.media
|
|
517
|
-
.find((m) => m.type === 'application');
|
|
512
|
+
const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
|
|
518
513
|
if (!this._transportReady) {
|
|
519
514
|
await this.setupTransport({
|
|
520
515
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
521
|
-
localSdpObject
|
|
516
|
+
localSdpObject,
|
|
522
517
|
});
|
|
523
518
|
}
|
|
524
519
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -533,7 +528,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
533
528
|
streamId: options.id,
|
|
534
529
|
ordered: options.ordered,
|
|
535
530
|
maxPacketLifeTime: options.maxPacketLifeTime,
|
|
536
|
-
maxRetransmits: options.maxRetransmits
|
|
531
|
+
maxRetransmits: options.maxRetransmits,
|
|
537
532
|
};
|
|
538
533
|
return { dataChannel, sctpStreamParameters };
|
|
539
534
|
}
|
|
@@ -552,7 +547,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
552
547
|
kind,
|
|
553
548
|
offerRtpParameters: rtpParameters,
|
|
554
549
|
streamId: streamId || rtpParameters.rtcp.cname,
|
|
555
|
-
trackId
|
|
550
|
+
trackId,
|
|
556
551
|
});
|
|
557
552
|
}
|
|
558
553
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -563,20 +558,19 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
563
558
|
for (const options of optionsList) {
|
|
564
559
|
const { trackId, rtpParameters } = options;
|
|
565
560
|
const localId = mapLocalId.get(trackId);
|
|
566
|
-
const answerMediaObject = localSdpObject.media
|
|
567
|
-
.find((m) => String(m.mid) === localId);
|
|
561
|
+
const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === localId);
|
|
568
562
|
// May need to modify codec parameters in the answer based on codec
|
|
569
563
|
// parameters in the offer.
|
|
570
564
|
sdpCommonUtils.applyCodecParameters({
|
|
571
565
|
offerRtpParameters: rtpParameters,
|
|
572
|
-
answerMediaObject
|
|
566
|
+
answerMediaObject,
|
|
573
567
|
});
|
|
574
568
|
}
|
|
575
569
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
576
570
|
if (!this._transportReady) {
|
|
577
571
|
await this.setupTransport({
|
|
578
572
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
579
|
-
localSdpObject
|
|
573
|
+
localSdpObject,
|
|
580
574
|
});
|
|
581
575
|
}
|
|
582
576
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
@@ -584,7 +578,8 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
584
578
|
for (const options of optionsList) {
|
|
585
579
|
const { trackId } = options;
|
|
586
580
|
const localId = mapLocalId.get(trackId);
|
|
587
|
-
const transceiver = this._pc
|
|
581
|
+
const transceiver = this._pc
|
|
582
|
+
.getTransceivers()
|
|
588
583
|
.find((t) => t.mid === localId);
|
|
589
584
|
if (!transceiver) {
|
|
590
585
|
throw new Error('new RTCRtpTransceiver not found');
|
|
@@ -595,7 +590,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
595
590
|
results.push({
|
|
596
591
|
localId,
|
|
597
592
|
track: transceiver.receiver.track,
|
|
598
|
-
rtpReceiver: transceiver.receiver
|
|
593
|
+
rtpReceiver: transceiver.receiver,
|
|
599
594
|
});
|
|
600
595
|
}
|
|
601
596
|
}
|
|
@@ -671,17 +666,17 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
671
666
|
}
|
|
672
667
|
return transceiver.receiver.getStats();
|
|
673
668
|
}
|
|
674
|
-
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
669
|
+
async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
|
|
675
670
|
this.assertNotClosed();
|
|
676
671
|
this.assertRecvDirection();
|
|
677
|
-
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
672
|
+
const { streamId, ordered, maxPacketLifeTime, maxRetransmits, } = sctpStreamParameters;
|
|
678
673
|
const options = {
|
|
679
674
|
negotiated: true,
|
|
680
675
|
id: streamId,
|
|
681
676
|
ordered,
|
|
682
677
|
maxPacketLifeTime,
|
|
683
678
|
maxRetransmits,
|
|
684
|
-
protocol
|
|
679
|
+
protocol,
|
|
685
680
|
};
|
|
686
681
|
logger.debug('receiveDataChannel() [options:%o]', options);
|
|
687
682
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -697,7 +692,7 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
697
692
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
698
693
|
await this.setupTransport({
|
|
699
694
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
700
|
-
localSdpObject
|
|
695
|
+
localSdpObject,
|
|
701
696
|
});
|
|
702
697
|
}
|
|
703
698
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -706,12 +701,14 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
706
701
|
}
|
|
707
702
|
return { dataChannel };
|
|
708
703
|
}
|
|
709
|
-
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
704
|
+
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
710
705
|
if (!localSdpObject) {
|
|
711
706
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
712
707
|
}
|
|
713
708
|
// Get our local DTLS parameters.
|
|
714
|
-
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
709
|
+
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
710
|
+
sdpObject: localSdpObject,
|
|
711
|
+
});
|
|
715
712
|
// Set our DTLS role.
|
|
716
713
|
dtlsParameters.role = localDtlsRole;
|
|
717
714
|
// Update the remote DTLS role in the SDP.
|
|
@@ -25,11 +25,11 @@ export declare class Safari11 extends HandlerInterface {
|
|
|
25
25
|
close(): void;
|
|
26
26
|
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
27
27
|
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
28
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
28
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
29
29
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
30
30
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
31
31
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
32
|
-
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
32
|
+
send({ track, encodings, codecOptions, codec, }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
33
33
|
stopSending(localId: string): Promise<void>;
|
|
34
34
|
pauseSending(localId: string): Promise<void>;
|
|
35
35
|
resumeSending(localId: string): Promise<void>;
|
|
@@ -37,13 +37,13 @@ export declare class Safari11 extends HandlerInterface {
|
|
|
37
37
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
38
38
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
39
39
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
40
|
-
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
40
|
+
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
41
41
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
42
42
|
stopReceiving(localIds: string[]): Promise<void>;
|
|
43
43
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
44
44
|
pauseReceiving(localIds: string[]): Promise<void>;
|
|
45
45
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
46
|
-
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
46
|
+
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
47
47
|
private setupTransport;
|
|
48
48
|
private assertSendDirection;
|
|
49
49
|
private assertRecvDirection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAM3E,qBAAa,QAAS,SAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"Safari11.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari11.ts"],"names":[],"mappings":"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"}
|