mediasoup-client 3.7.0 → 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 +43 -42
- 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 +64 -57
- package/lib/handlers/Chrome55.d.ts +4 -4
- package/lib/handlers/Chrome55.d.ts.map +1 -1
- package/lib/handlers/Chrome55.js +75 -62
- package/lib/handlers/Chrome67.d.ts +4 -4
- package/lib/handlers/Chrome67.d.ts.map +1 -1
- package/lib/handlers/Chrome67.js +77 -65
- package/lib/handlers/Chrome70.d.ts +4 -4
- package/lib/handlers/Chrome70.d.ts.map +1 -1
- package/lib/handlers/Chrome70.js +68 -60
- package/lib/handlers/Chrome74.d.ts +4 -4
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +65 -58
- package/lib/handlers/Edge11.d.ts +1 -1
- package/lib/handlers/Edge11.d.ts.map +1 -1
- package/lib/handlers/Edge11.js +43 -37
- 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 +65 -52
- 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 +76 -64
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts +4 -4
- package/lib/handlers/ReactNativeUnifiedPlan.d.ts.map +1 -1
- package/lib/handlers/ReactNativeUnifiedPlan.js +65 -58
- package/lib/handlers/Safari11.d.ts +4 -4
- package/lib/handlers/Safari11.d.ts.map +1 -1
- package/lib/handlers/Safari11.js +74 -61
- package/lib/handlers/Safari12.d.ts +4 -4
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +65 -57
- 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 +287 -305
- 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 +41 -46
- 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 +90 -92
- 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/Safari12.js
CHANGED
|
@@ -83,7 +83,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
83
83
|
iceServers: [],
|
|
84
84
|
iceTransportPolicy: 'all',
|
|
85
85
|
bundlePolicy: 'max-bundle',
|
|
86
|
-
rtcpMuxPolicy: 'require'
|
|
86
|
+
rtcpMuxPolicy: 'require',
|
|
87
87
|
});
|
|
88
88
|
try {
|
|
89
89
|
pc.addTransceiver('audio');
|
|
@@ -94,7 +94,9 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
94
94
|
}
|
|
95
95
|
catch (error) { }
|
|
96
96
|
const sdpObject = sdpTransform.parse(offer.sdp);
|
|
97
|
-
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
97
|
+
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
98
|
+
sdpObject,
|
|
99
|
+
});
|
|
98
100
|
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
99
101
|
ortcUtils.addNackSuppportForOpus(nativeRtpCapabilities);
|
|
100
102
|
return nativeRtpCapabilities;
|
|
@@ -110,10 +112,10 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
110
112
|
async getNativeSctpCapabilities() {
|
|
111
113
|
logger.debug('getNativeSctpCapabilities()');
|
|
112
114
|
return {
|
|
113
|
-
numStreams: SCTP_NUM_STREAMS
|
|
115
|
+
numStreams: SCTP_NUM_STREAMS,
|
|
114
116
|
};
|
|
115
117
|
}
|
|
116
|
-
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities }) {
|
|
118
|
+
run({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, proprietaryConstraints, extendedRtpCapabilities, }) {
|
|
117
119
|
this.assertNotClosed();
|
|
118
120
|
logger.debug('run()');
|
|
119
121
|
this._direction = direction;
|
|
@@ -121,29 +123,26 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
121
123
|
iceParameters,
|
|
122
124
|
iceCandidates,
|
|
123
125
|
dtlsParameters,
|
|
124
|
-
sctpParameters
|
|
126
|
+
sctpParameters,
|
|
125
127
|
});
|
|
126
|
-
this._sendingRtpParametersByKind =
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities)
|
|
135
|
-
};
|
|
128
|
+
this._sendingRtpParametersByKind = {
|
|
129
|
+
audio: ortc.getSendingRtpParameters('audio', extendedRtpCapabilities),
|
|
130
|
+
video: ortc.getSendingRtpParameters('video', extendedRtpCapabilities),
|
|
131
|
+
};
|
|
132
|
+
this._sendingRemoteRtpParametersByKind = {
|
|
133
|
+
audio: ortc.getSendingRemoteRtpParameters('audio', extendedRtpCapabilities),
|
|
134
|
+
video: ortc.getSendingRemoteRtpParameters('video', extendedRtpCapabilities),
|
|
135
|
+
};
|
|
136
136
|
if (dtlsParameters.role && dtlsParameters.role !== 'auto') {
|
|
137
|
-
this._forcedLocalDtlsRole =
|
|
138
|
-
? 'client'
|
|
139
|
-
: 'server';
|
|
137
|
+
this._forcedLocalDtlsRole =
|
|
138
|
+
dtlsParameters.role === 'server' ? 'client' : 'server';
|
|
140
139
|
}
|
|
141
140
|
this._pc = new RTCPeerConnection({
|
|
142
141
|
iceServers: iceServers || [],
|
|
143
142
|
iceTransportPolicy: iceTransportPolicy || 'all',
|
|
144
143
|
bundlePolicy: 'max-bundle',
|
|
145
144
|
rtcpMuxPolicy: 'require',
|
|
146
|
-
...additionalSettings
|
|
145
|
+
...additionalSettings,
|
|
147
146
|
}, proprietaryConstraints);
|
|
148
147
|
this._pc.addEventListener('icegatheringstatechange', () => {
|
|
149
148
|
this.emit('@icegatheringstatechange', this._pc.iceGatheringState);
|
|
@@ -157,22 +156,27 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
157
156
|
this._pc.addEventListener('iceconnectionstatechange', () => {
|
|
158
157
|
logger.warn('run() | pc.connectionState not supported, using pc.iceConnectionState');
|
|
159
158
|
switch (this._pc.iceConnectionState) {
|
|
160
|
-
case 'checking':
|
|
159
|
+
case 'checking': {
|
|
161
160
|
this.emit('@connectionstatechange', 'connecting');
|
|
162
161
|
break;
|
|
162
|
+
}
|
|
163
163
|
case 'connected':
|
|
164
|
-
case 'completed':
|
|
164
|
+
case 'completed': {
|
|
165
165
|
this.emit('@connectionstatechange', 'connected');
|
|
166
166
|
break;
|
|
167
|
-
|
|
167
|
+
}
|
|
168
|
+
case 'failed': {
|
|
168
169
|
this.emit('@connectionstatechange', 'failed');
|
|
169
170
|
break;
|
|
170
|
-
|
|
171
|
+
}
|
|
172
|
+
case 'disconnected': {
|
|
171
173
|
this.emit('@connectionstatechange', 'disconnected');
|
|
172
174
|
break;
|
|
173
|
-
|
|
175
|
+
}
|
|
176
|
+
case 'closed': {
|
|
174
177
|
this.emit('@connectionstatechange', 'closed');
|
|
175
178
|
break;
|
|
179
|
+
}
|
|
176
180
|
}
|
|
177
181
|
});
|
|
178
182
|
}
|
|
@@ -213,27 +217,28 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
213
217
|
this.assertNotClosed();
|
|
214
218
|
return this._pc.getStats();
|
|
215
219
|
}
|
|
216
|
-
async send({ track, encodings, codecOptions, codec }) {
|
|
220
|
+
async send({ track, encodings, codecOptions, codec, }) {
|
|
217
221
|
this.assertNotClosed();
|
|
218
222
|
this.assertSendDirection();
|
|
219
223
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
220
224
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
221
225
|
// This may throw.
|
|
222
|
-
sendingRtpParameters.codecs =
|
|
223
|
-
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
226
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
224
227
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
225
228
|
// This may throw.
|
|
226
|
-
sendingRemoteRtpParameters.codecs =
|
|
227
|
-
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
229
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
228
230
|
const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
|
|
229
|
-
const transceiver = this._pc.addTransceiver(track, {
|
|
231
|
+
const transceiver = this._pc.addTransceiver(track, {
|
|
232
|
+
direction: 'sendonly',
|
|
233
|
+
streams: [this._sendStream],
|
|
234
|
+
});
|
|
230
235
|
let offer = await this._pc.createOffer();
|
|
231
236
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
232
237
|
let offerMediaObject;
|
|
233
238
|
if (!this._transportReady) {
|
|
234
239
|
await this.setupTransport({
|
|
235
240
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
236
|
-
localSdpObject
|
|
241
|
+
localSdpObject,
|
|
237
242
|
});
|
|
238
243
|
}
|
|
239
244
|
const layers = (0, scalabilityModes_1.parse)((encodings || [{}])[0].scalabilityMode);
|
|
@@ -243,7 +248,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
243
248
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
244
249
|
sdpUnifiedPlanUtils.addLegacySimulcast({
|
|
245
250
|
offerMediaObject,
|
|
246
|
-
numStreams: encodings.length
|
|
251
|
+
numStreams: encodings.length,
|
|
247
252
|
});
|
|
248
253
|
offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
|
|
249
254
|
}
|
|
@@ -256,11 +261,13 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
256
261
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
257
262
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
258
263
|
// Set RTCP CNAME.
|
|
259
|
-
sendingRtpParameters.rtcp.cname =
|
|
260
|
-
|
|
264
|
+
sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
|
|
265
|
+
offerMediaObject,
|
|
266
|
+
});
|
|
261
267
|
// Set RTP encodings.
|
|
262
|
-
sendingRtpParameters.encodings =
|
|
263
|
-
|
|
268
|
+
sendingRtpParameters.encodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
269
|
+
offerMediaObject,
|
|
270
|
+
});
|
|
264
271
|
// Complete encodings with given values.
|
|
265
272
|
if (encodings) {
|
|
266
273
|
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
@@ -288,7 +295,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
288
295
|
reuseMid: mediaSectionIdx.reuseMid,
|
|
289
296
|
offerRtpParameters: sendingRtpParameters,
|
|
290
297
|
answerRtpParameters: sendingRemoteRtpParameters,
|
|
291
|
-
codecOptions
|
|
298
|
+
codecOptions,
|
|
292
299
|
});
|
|
293
300
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
294
301
|
logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -298,7 +305,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
298
305
|
return {
|
|
299
306
|
localId,
|
|
300
307
|
rtpParameters: sendingRtpParameters,
|
|
301
|
-
rtpSender: transceiver.sender
|
|
308
|
+
rtpSender: transceiver.sender,
|
|
302
309
|
};
|
|
303
310
|
}
|
|
304
311
|
async stopSending(localId) {
|
|
@@ -435,7 +442,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
435
442
|
}
|
|
436
443
|
return transceiver.sender.getStats();
|
|
437
444
|
}
|
|
438
|
-
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
445
|
+
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
|
|
439
446
|
this.assertNotClosed();
|
|
440
447
|
this.assertSendDirection();
|
|
441
448
|
const options = {
|
|
@@ -444,7 +451,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
444
451
|
ordered,
|
|
445
452
|
maxPacketLifeTime,
|
|
446
453
|
maxRetransmits,
|
|
447
|
-
protocol
|
|
454
|
+
protocol,
|
|
448
455
|
};
|
|
449
456
|
logger.debug('sendDataChannel() [options:%o]', options);
|
|
450
457
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -456,12 +463,11 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
456
463
|
if (!this._hasDataChannelMediaSection) {
|
|
457
464
|
const offer = await this._pc.createOffer();
|
|
458
465
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
459
|
-
const offerMediaObject = localSdpObject.media
|
|
460
|
-
.find((m) => m.type === 'application');
|
|
466
|
+
const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
|
|
461
467
|
if (!this._transportReady) {
|
|
462
468
|
await this.setupTransport({
|
|
463
469
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
464
|
-
localSdpObject
|
|
470
|
+
localSdpObject,
|
|
465
471
|
});
|
|
466
472
|
}
|
|
467
473
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -476,7 +482,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
476
482
|
streamId: options.id,
|
|
477
483
|
ordered: options.ordered,
|
|
478
484
|
maxPacketLifeTime: options.maxPacketLifeTime,
|
|
479
|
-
maxRetransmits: options.maxRetransmits
|
|
485
|
+
maxRetransmits: options.maxRetransmits,
|
|
480
486
|
};
|
|
481
487
|
return { dataChannel, sctpStreamParameters };
|
|
482
488
|
}
|
|
@@ -495,7 +501,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
495
501
|
kind,
|
|
496
502
|
offerRtpParameters: rtpParameters,
|
|
497
503
|
streamId: streamId || rtpParameters.rtcp.cname,
|
|
498
|
-
trackId
|
|
504
|
+
trackId,
|
|
499
505
|
});
|
|
500
506
|
}
|
|
501
507
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -506,20 +512,19 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
506
512
|
for (const options of optionsList) {
|
|
507
513
|
const { trackId, rtpParameters } = options;
|
|
508
514
|
const localId = mapLocalId.get(trackId);
|
|
509
|
-
const answerMediaObject = localSdpObject.media
|
|
510
|
-
.find((m) => String(m.mid) === localId);
|
|
515
|
+
const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === localId);
|
|
511
516
|
// May need to modify codec parameters in the answer based on codec
|
|
512
517
|
// parameters in the offer.
|
|
513
518
|
sdpCommonUtils.applyCodecParameters({
|
|
514
519
|
offerRtpParameters: rtpParameters,
|
|
515
|
-
answerMediaObject
|
|
520
|
+
answerMediaObject,
|
|
516
521
|
});
|
|
517
522
|
}
|
|
518
523
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
519
524
|
if (!this._transportReady) {
|
|
520
525
|
await this.setupTransport({
|
|
521
526
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
522
|
-
localSdpObject
|
|
527
|
+
localSdpObject,
|
|
523
528
|
});
|
|
524
529
|
}
|
|
525
530
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
@@ -527,7 +532,8 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
527
532
|
for (const options of optionsList) {
|
|
528
533
|
const { trackId } = options;
|
|
529
534
|
const localId = mapLocalId.get(trackId);
|
|
530
|
-
const transceiver = this._pc
|
|
535
|
+
const transceiver = this._pc
|
|
536
|
+
.getTransceivers()
|
|
531
537
|
.find((t) => t.mid === localId);
|
|
532
538
|
if (!transceiver) {
|
|
533
539
|
throw new Error('new RTCRtpTransceiver not found');
|
|
@@ -537,7 +543,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
537
543
|
results.push({
|
|
538
544
|
localId,
|
|
539
545
|
track: transceiver.receiver.track,
|
|
540
|
-
rtpReceiver: transceiver.receiver
|
|
546
|
+
rtpReceiver: transceiver.receiver,
|
|
541
547
|
});
|
|
542
548
|
}
|
|
543
549
|
return results;
|
|
@@ -612,17 +618,17 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
612
618
|
}
|
|
613
619
|
return transceiver.receiver.getStats();
|
|
614
620
|
}
|
|
615
|
-
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
621
|
+
async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
|
|
616
622
|
this.assertNotClosed();
|
|
617
623
|
this.assertRecvDirection();
|
|
618
|
-
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
624
|
+
const { streamId, ordered, maxPacketLifeTime, maxRetransmits, } = sctpStreamParameters;
|
|
619
625
|
const options = {
|
|
620
626
|
negotiated: true,
|
|
621
627
|
id: streamId,
|
|
622
628
|
ordered,
|
|
623
629
|
maxPacketLifeTime,
|
|
624
630
|
maxRetransmits,
|
|
625
|
-
protocol
|
|
631
|
+
protocol,
|
|
626
632
|
};
|
|
627
633
|
logger.debug('receiveDataChannel() [options:%o]', options);
|
|
628
634
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -638,7 +644,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
638
644
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
639
645
|
await this.setupTransport({
|
|
640
646
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
641
|
-
localSdpObject
|
|
647
|
+
localSdpObject,
|
|
642
648
|
});
|
|
643
649
|
}
|
|
644
650
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -647,12 +653,14 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
647
653
|
}
|
|
648
654
|
return { dataChannel };
|
|
649
655
|
}
|
|
650
|
-
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
656
|
+
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
651
657
|
if (!localSdpObject) {
|
|
652
658
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
653
659
|
}
|
|
654
660
|
// Get our local DTLS parameters.
|
|
655
|
-
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
661
|
+
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
662
|
+
sdpObject: localSdpObject,
|
|
663
|
+
});
|
|
656
664
|
// Set our DTLS role.
|
|
657
665
|
dtlsParameters.role = localDtlsRole;
|
|
658
666
|
// Update the remote DTLS role in the SDP.
|
|
@@ -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,
|
|
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 +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,sBAAsB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,
|
|
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,sBAAsB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAc7E"}
|
|
@@ -5,10 +5,10 @@ exports.addNackSuppportForOpus = void 0;
|
|
|
5
5
|
* This function adds RTCP NACK support for OPUS codec in given capabilities.
|
|
6
6
|
*/
|
|
7
7
|
function addNackSuppportForOpus(rtpCapabilities) {
|
|
8
|
-
for (const codec of
|
|
8
|
+
for (const codec of rtpCapabilities.codecs || []) {
|
|
9
9
|
if ((codec.mimeType.toLowerCase() === 'audio/opus' ||
|
|
10
10
|
codec.mimeType.toLowerCase() === 'audio/multiopus') &&
|
|
11
|
-
!codec.rtcpFeedback?.some(
|
|
11
|
+
!codec.rtcpFeedback?.some(fb => fb.type === 'nack' && !fb.parameter)) {
|
|
12
12
|
if (!codec.rtcpFeedback) {
|
|
13
13
|
codec.rtcpFeedback = [];
|
|
14
14
|
}
|
|
@@ -5,7 +5,7 @@ import { SctpParameters } from '../../SctpParameters';
|
|
|
5
5
|
export declare abstract class MediaSection {
|
|
6
6
|
protected readonly _mediaObject: any;
|
|
7
7
|
protected readonly _planB: boolean;
|
|
8
|
-
constructor({ iceParameters, iceCandidates, dtlsParameters, planB }: {
|
|
8
|
+
constructor({ iceParameters, iceCandidates, dtlsParameters, planB, }: {
|
|
9
9
|
iceParameters?: IceParameters;
|
|
10
10
|
iceCandidates?: IceCandidate[];
|
|
11
11
|
dtlsParameters?: DtlsParameters;
|
|
@@ -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, extmapAllowMixed, }: {
|
|
26
26
|
iceParameters?: IceParameters;
|
|
27
27
|
iceCandidates?: IceCandidate[];
|
|
28
28
|
dtlsParameters?: DtlsParameters;
|
|
@@ -40,7 +40,7 @@ export declare class AnswerMediaSection extends MediaSection {
|
|
|
40
40
|
muxSimulcastStreams(encodings: RTCRtpEncodingParameters[]): void;
|
|
41
41
|
}
|
|
42
42
|
export declare class OfferMediaSection extends MediaSection {
|
|
43
|
-
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB, mid, kind, offerRtpParameters, streamId, trackId, oldDataChannelSpec }: {
|
|
43
|
+
constructor({ iceParameters, iceCandidates, dtlsParameters, sctpParameters, plainRtpParameters, planB, mid, kind, offerRtpParameters, streamId, trackId, oldDataChannelSpec, }: {
|
|
44
44
|
iceParameters?: IceParameters;
|
|
45
45
|
iceCandidates?: IceCandidate[];
|
|
46
46
|
dtlsParameters?: DtlsParameters;
|
|
@@ -56,12 +56,12 @@ export declare class OfferMediaSection extends MediaSection {
|
|
|
56
56
|
});
|
|
57
57
|
setDtlsRole(role: DtlsRole): void;
|
|
58
58
|
resume(): void;
|
|
59
|
-
planBReceive({ offerRtpParameters, streamId, trackId }: {
|
|
59
|
+
planBReceive({ offerRtpParameters, streamId, trackId, }: {
|
|
60
60
|
offerRtpParameters: RtpParameters;
|
|
61
61
|
streamId: string;
|
|
62
62
|
trackId: string;
|
|
63
63
|
}): void;
|
|
64
|
-
planBStopReceiving({ offerRtpParameters }: {
|
|
64
|
+
planBStopReceiving({ offerRtpParameters, }: {
|
|
65
65
|
offerRtpParameters: RtpParameters;
|
|
66
66
|
}): void;
|
|
67
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,aAAa,EACb,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACN,SAAS,EACT,aAAa,EAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,8BAAsB,YAAY;
|
|
1
|
+
{"version":3,"file":"MediaSection.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/MediaSection.ts"],"names":[],"mappings":"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"}
|