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
package/lib/handlers/Safari11.js
CHANGED
|
@@ -80,19 +80,21 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
80
80
|
iceTransportPolicy: 'all',
|
|
81
81
|
bundlePolicy: 'max-bundle',
|
|
82
82
|
rtcpMuxPolicy: 'require',
|
|
83
|
-
sdpSemantics: 'plan-b'
|
|
83
|
+
sdpSemantics: 'plan-b',
|
|
84
84
|
});
|
|
85
85
|
try {
|
|
86
86
|
const offer = await pc.createOffer({
|
|
87
87
|
offerToReceiveAudio: true,
|
|
88
|
-
offerToReceiveVideo: true
|
|
88
|
+
offerToReceiveVideo: true,
|
|
89
89
|
});
|
|
90
90
|
try {
|
|
91
91
|
pc.close();
|
|
92
92
|
}
|
|
93
93
|
catch (error) { }
|
|
94
94
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
95
|
-
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
95
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
96
|
+
sdpObject,
|
|
97
|
+
});
|
|
96
98
|
return nativeRtpCapabilities;
|
|
97
99
|
}
|
|
98
100
|
catch (error) {
|
|
@@ -106,10 +108,10 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
106
108
|
async getNativeSctpCapabilities() {
|
|
107
109
|
logger.debug('getNativeSctpCapabilities()');
|
|
108
110
|
return {
|
|
109
|
-
numStreams: SCTP_NUM_STREAMS
|
|
111
|
+
numStreams: SCTP_NUM_STREAMS,
|
|
110
112
|
};
|
|
111
113
|
}
|
|
112
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
|
|
114
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
|
|
113
115
|
logger.debug('run()');
|
|
114
116
|
this._direction = direction;
|
|
115
117
|
this._remoteSdp = new RemoteSdp_1.RemoteSdp({
|
|
@@ -117,29 +119,26 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
117
119
|
iceCandidates,
|
|
118
120
|
dtlsParameters,
|
|
119
121
|
sctpParameters,
|
|
120
|
-
planB: true
|
|
122
|
+
planB: true,
|
|
121
123
|
});
|
|
122
|
-
this._sendingRtpParametersByKind =
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
131
|
-
};
|
|
124
|
+
this._sendingRtpParametersByKind = {
|
|
125
|
+
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
126
|
+
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
127
|
+
};
|
|
128
|
+
this._sendingRemoteRtpParametersByKind = {
|
|
129
|
+
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
130
|
+
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
|
|
131
|
+
};
|
|
132
132
|
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
133
|
-
this._forcedLocalDtlsRole =
|
|
134
|
-
? 'client'
|
|
135
|
-
: 'server';
|
|
133
|
+
this._forcedLocalDtlsRole =
|
|
134
|
+
dtlsParameters.role === 'server' ? 'client' : 'server';
|
|
136
135
|
}
|
|
137
136
|
this._pc = new RTCPeerConnection({
|
|
138
137
|
iceServers: iceServers || [],
|
|
139
138
|
iceTransportPolicy: iceTransportPolicy || 'all',
|
|
140
139
|
bundlePolicy: 'max-bundle',
|
|
141
140
|
rtcpMuxPolicy: 'require',
|
|
142
|
-
...additionalSettings
|
|
141
|
+
...additionalSettings,
|
|
143
142
|
}, proprietaryConstraints);
|
|
144
143
|
this._pc.addEventListener('icegatheringstatechange', () => {
|
|
145
144
|
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
@@ -153,32 +152,27 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
153
152
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
154
153
|
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
155
154
|
switch (this._pc.iceConnectionState) {
|
|
156
|
-
case 'checking':
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
155
|
+
case 'checking': {
|
|
156
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
161
159
|
case 'connected':
|
|
162
|
-
case 'completed':
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
{
|
|
179
|
-
this.emit('@connectionstatechange', 'closed');
|
|
180
|
-
break;
|
|
181
|
-
}
|
|
160
|
+
case 'completed': {
|
|
161
|
+
this.emit('@connectionstatechange', 'connected');
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
case 'failed': {
|
|
165
|
+
this.emit('@connectionstatechange', 'failed');
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
case 'disconnected': {
|
|
169
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case 'closed': {
|
|
173
|
+
this.emit('@connectionstatechange', 'closed');
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
182
176
|
}
|
|
183
177
|
});
|
|
184
178
|
}
|
|
@@ -216,7 +210,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
216
210
|
async getTransportStats() {
|
|
217
211
|
return this._pc.getStats();
|
|
218
212
|
}
|
|
219
|
-
async send({ track, encodings, codecOptions, codec }) {
|
|
213
|
+
async send({ track, encodings, codecOptions, codec, }) {
|
|
220
214
|
this.assertSendDirection();
|
|
221
215
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
222
216
|
if (codec) {
|
|
@@ -228,15 +222,13 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
228
222
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
229
223
|
let offerMediaObject;
|
|
230
224
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
231
|
-
sendingRtpParameters.codecs =
|
|
232
|
-
ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
225
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
233
226
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
234
|
-
sendingRemoteRtpParameters.codecs =
|
|
235
|
-
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
227
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
236
228
|
if (!this._transportReady) {
|
|
237
229
|
await this.setupTransport({
|
|
238
230
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
239
|
-
localSdpObject
|
|
231
|
+
localSdpObject,
|
|
240
232
|
});
|
|
241
233
|
}
|
|
242
234
|
if (track.kind === 'video' && encodings && encodings.length > 1) {
|
|
@@ -246,21 +238,23 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
246
238
|
sdpPlanBUtils.addLegacySimulcast({
|
|
247
239
|
offerMediaObject,
|
|
248
240
|
track,
|
|
249
|
-
numStreams: encodings.length
|
|
241
|
+
numStreams: encodings.length,
|
|
250
242
|
});
|
|
251
243
|
offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
|
|
252
244
|
}
|
|
253
245
|
logger.debug('send() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
254
246
|
await this._pc.setLocalDescription(offer);
|
|
255
247
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
256
|
-
offerMediaObject = localSdpObject.media
|
|
257
|
-
.find((m) => m.type === track.kind);
|
|
248
|
+
offerMediaObject = localSdpObject.media.find((m) => m.type === track.kind);
|
|
258
249
|
// Set RTCP CNAME.
|
|
259
|
-
sendingRtpParameters.rtcp.cname =
|
|
260
|
-
|
|
250
|
+
sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
|
|
251
|
+
offerMediaObject,
|
|
252
|
+
});
|
|
261
253
|
// Set RTP encodings.
|
|
262
|
-
sendingRtpParameters.encodings =
|
|
263
|
-
|
|
254
|
+
sendingRtpParameters.encodings = sdpPlanBUtils.getRtpEncodings({
|
|
255
|
+
offerMediaObject,
|
|
256
|
+
track,
|
|
257
|
+
});
|
|
264
258
|
// Complete encodings with given values.
|
|
265
259
|
if (encodings) {
|
|
266
260
|
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
@@ -281,21 +275,22 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
281
275
|
offerMediaObject,
|
|
282
276
|
offerRtpParameters: sendingRtpParameters,
|
|
283
277
|
answerRtpParameters: sendingRemoteRtpParameters,
|
|
284
|
-
codecOptions
|
|
278
|
+
codecOptions,
|
|
285
279
|
});
|
|
286
280
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
287
281
|
logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
288
282
|
await this._pc.setRemoteDescription(answer);
|
|
289
283
|
const localId = String(this._nextSendLocalId);
|
|
290
284
|
this._nextSendLocalId++;
|
|
291
|
-
const rtpSender = this._pc
|
|
285
|
+
const rtpSender = this._pc
|
|
286
|
+
.getSenders()
|
|
292
287
|
.find((s) => s.track === track);
|
|
293
288
|
// Insert into the map.
|
|
294
289
|
this._mapSendLocalIdRtpSender.set(localId, rtpSender);
|
|
295
290
|
return {
|
|
296
291
|
localId: localId,
|
|
297
292
|
rtpParameters: sendingRtpParameters,
|
|
298
|
-
rtpSender
|
|
293
|
+
rtpSender,
|
|
299
294
|
};
|
|
300
295
|
}
|
|
301
296
|
async stopSending(localId) {
|
|
@@ -399,7 +394,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
399
394
|
}
|
|
400
395
|
return rtpSender.getStats();
|
|
401
396
|
}
|
|
402
|
-
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
397
|
+
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
|
|
403
398
|
this.assertSendDirection();
|
|
404
399
|
const options = {
|
|
405
400
|
negotiated: true,
|
|
@@ -407,7 +402,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
407
402
|
ordered,
|
|
408
403
|
maxPacketLifeTime,
|
|
409
404
|
maxRetransmits,
|
|
410
|
-
protocol
|
|
405
|
+
protocol,
|
|
411
406
|
};
|
|
412
407
|
logger.debug('sendDataChannel() [options:%o]', options);
|
|
413
408
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -419,12 +414,11 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
419
414
|
if (!this._hasDataChannelMediaSection) {
|
|
420
415
|
const offer = await this._pc.createOffer();
|
|
421
416
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
422
|
-
const offerMediaObject = localSdpObject.media
|
|
423
|
-
.find((m) => m.type === 'application');
|
|
417
|
+
const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
|
|
424
418
|
if (!this._transportReady) {
|
|
425
419
|
await this.setupTransport({
|
|
426
420
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
427
|
-
localSdpObject
|
|
421
|
+
localSdpObject,
|
|
428
422
|
});
|
|
429
423
|
}
|
|
430
424
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -439,7 +433,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
439
433
|
streamId: options.id,
|
|
440
434
|
ordered: options.ordered,
|
|
441
435
|
maxPacketLifeTime: options.maxPacketLifeTime,
|
|
442
|
-
maxRetransmits: options.maxRetransmits
|
|
436
|
+
maxRetransmits: options.maxRetransmits,
|
|
443
437
|
};
|
|
444
438
|
return { dataChannel, sctpStreamParameters };
|
|
445
439
|
}
|
|
@@ -455,7 +449,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
455
449
|
kind,
|
|
456
450
|
offerRtpParameters: rtpParameters,
|
|
457
451
|
streamId: streamId || rtpParameters.rtcp.cname,
|
|
458
|
-
trackId
|
|
452
|
+
trackId,
|
|
459
453
|
});
|
|
460
454
|
}
|
|
461
455
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -466,20 +460,19 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
466
460
|
for (const options of optionsList) {
|
|
467
461
|
const { kind, rtpParameters } = options;
|
|
468
462
|
const mid = kind;
|
|
469
|
-
const answerMediaObject = localSdpObject.media
|
|
470
|
-
.find((m) => String(m.mid) === mid);
|
|
463
|
+
const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === mid);
|
|
471
464
|
// May need to modify codec parameters in the answer based on codec
|
|
472
465
|
// parameters in the offer.
|
|
473
466
|
sdpCommonUtils.applyCodecParameters({
|
|
474
467
|
offerRtpParameters: rtpParameters,
|
|
475
|
-
answerMediaObject
|
|
468
|
+
answerMediaObject,
|
|
476
469
|
});
|
|
477
470
|
}
|
|
478
471
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
479
472
|
if (!this._transportReady) {
|
|
480
473
|
await this.setupTransport({
|
|
481
474
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
482
|
-
localSdpObject
|
|
475
|
+
localSdpObject,
|
|
483
476
|
});
|
|
484
477
|
}
|
|
485
478
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
@@ -488,17 +481,22 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
488
481
|
const { kind, trackId, rtpParameters } = options;
|
|
489
482
|
const mid = kind;
|
|
490
483
|
const localId = trackId;
|
|
491
|
-
const rtpReceiver = this._pc
|
|
484
|
+
const rtpReceiver = this._pc
|
|
485
|
+
.getReceivers()
|
|
492
486
|
.find((r) => r.track && r.track.id === localId);
|
|
493
487
|
if (!rtpReceiver) {
|
|
494
488
|
throw new Error('new RTCRtpReceiver not');
|
|
495
489
|
}
|
|
496
490
|
// Insert into the map.
|
|
497
|
-
this._mapRecvLocalIdInfo.set(localId, {
|
|
491
|
+
this._mapRecvLocalIdInfo.set(localId, {
|
|
492
|
+
mid,
|
|
493
|
+
rtpParameters,
|
|
494
|
+
rtpReceiver,
|
|
495
|
+
});
|
|
498
496
|
results.push({
|
|
499
497
|
localId,
|
|
500
498
|
track: rtpReceiver.track,
|
|
501
|
-
rtpReceiver
|
|
499
|
+
rtpReceiver,
|
|
502
500
|
});
|
|
503
501
|
}
|
|
504
502
|
return results;
|
|
@@ -510,7 +508,10 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
510
508
|
const { mid, rtpParameters } = this._mapRecvLocalIdInfo.get(localId) || {};
|
|
511
509
|
// Remove from the map.
|
|
512
510
|
this._mapRecvLocalIdInfo.delete(localId);
|
|
513
|
-
this._remoteSdp.planBStopReceiving({
|
|
511
|
+
this._remoteSdp.planBStopReceiving({
|
|
512
|
+
mid: mid,
|
|
513
|
+
offerRtpParameters: rtpParameters,
|
|
514
|
+
});
|
|
514
515
|
}
|
|
515
516
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
516
517
|
logger.debug('stopReceiving() | calling pc.setRemoteDescription() [offer:%o]', offer);
|
|
@@ -537,7 +538,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
537
538
|
localIds) {
|
|
538
539
|
// Unimplemented.
|
|
539
540
|
}
|
|
540
|
-
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
541
|
+
async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
|
|
541
542
|
this.assertRecvDirection();
|
|
542
543
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
543
544
|
const options = {
|
|
@@ -546,7 +547,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
546
547
|
ordered,
|
|
547
548
|
maxPacketLifeTime,
|
|
548
549
|
maxRetransmits,
|
|
549
|
-
protocol
|
|
550
|
+
protocol,
|
|
550
551
|
};
|
|
551
552
|
logger.debug('receiveDataChannel() [options:%o]', options);
|
|
552
553
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -562,7 +563,7 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
562
563
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
563
564
|
await this.setupTransport({
|
|
564
565
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
565
|
-
localSdpObject
|
|
566
|
+
localSdpObject,
|
|
566
567
|
});
|
|
567
568
|
}
|
|
568
569
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -571,12 +572,14 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
571
572
|
}
|
|
572
573
|
return { dataChannel };
|
|
573
574
|
}
|
|
574
|
-
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
575
|
+
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
575
576
|
if (!localSdpObject) {
|
|
576
577
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
577
578
|
}
|
|
578
579
|
// Get our local DTLS parameters.
|
|
579
|
-
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
580
|
+
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
581
|
+
sdpObject: localSdpObject,
|
|
582
|
+
});
|
|
580
583
|
// Set our DTLS role.
|
|
581
584
|
dtlsParameters.role = localDtlsRole;
|
|
582
585
|
// Update the remote DTLS role in the SDP.
|
|
@@ -24,11 +24,11 @@ export declare class Safari12 extends HandlerInterface {
|
|
|
24
24
|
close(): void;
|
|
25
25
|
getNativeRtpCapabilities(): Promise<RtpCapabilities>;
|
|
26
26
|
getNativeSctpCapabilities(): Promise<SctpCapabilities>;
|
|
27
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }: HandlerRunOptions): void;
|
|
27
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }: HandlerRunOptions): void;
|
|
28
28
|
updateIceServers(iceServers: RTCIceServer[]): Promise<void>;
|
|
29
29
|
restartIce(iceParameters: IceParameters): Promise<void>;
|
|
30
30
|
getTransportStats(): Promise<RTCStatsReport>;
|
|
31
|
-
send({ track, encodings, codecOptions, codec }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
31
|
+
send({ track, encodings, codecOptions, codec, }: HandlerSendOptions): Promise<HandlerSendResult>;
|
|
32
32
|
stopSending(localId: string): Promise<void>;
|
|
33
33
|
pauseSending(localId: string): Promise<void>;
|
|
34
34
|
resumeSending(localId: string): Promise<void>;
|
|
@@ -36,13 +36,13 @@ export declare class Safari12 extends HandlerInterface {
|
|
|
36
36
|
setMaxSpatialLayer(localId: string, spatialLayer: number): Promise<void>;
|
|
37
37
|
setRtpEncodingParameters(localId: string, params: any): Promise<void>;
|
|
38
38
|
getSenderStats(localId: string): Promise<RTCStatsReport>;
|
|
39
|
-
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
39
|
+
sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }: HandlerSendDataChannelOptions): Promise<HandlerSendDataChannelResult>;
|
|
40
40
|
receive(optionsList: HandlerReceiveOptions[]): Promise<HandlerReceiveResult[]>;
|
|
41
41
|
stopReceiving(localIds: string[]): Promise<void>;
|
|
42
42
|
pauseReceiving(localIds: string[]): Promise<void>;
|
|
43
43
|
resumeReceiving(localIds: string[]): Promise<void>;
|
|
44
44
|
getReceiverStats(localId: string): Promise<RTCStatsReport>;
|
|
45
|
-
receiveDataChannel({ sctpStreamParameters, label, protocol }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
45
|
+
receiveDataChannel({ sctpStreamParameters, label, protocol, }: HandlerReceiveDataChannelOptions): Promise<HandlerReceiveDataChannelResult>;
|
|
46
46
|
private setupTransport;
|
|
47
47
|
private assertNotClosed;
|
|
48
48
|
private assertSendDirection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"AAQA,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;AAG5B,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":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
|