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/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,32 +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':
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
159
|
+
case 'checking': {
|
|
160
|
+
this.emit('@connectionstatechange', 'connecting');
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
165
163
|
case 'connected':
|
|
166
|
-
case 'completed':
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
{
|
|
183
|
-
this.emit('@connectionstatechange', 'closed');
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
164
|
+
case 'completed': {
|
|
165
|
+
this.emit('@connectionstatechange', 'connected');
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
case 'failed': {
|
|
169
|
+
this.emit('@connectionstatechange', 'failed');
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case 'disconnected': {
|
|
173
|
+
this.emit('@connectionstatechange', 'disconnected');
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
case 'closed': {
|
|
177
|
+
this.emit('@connectionstatechange', 'closed');
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
186
180
|
}
|
|
187
181
|
});
|
|
188
182
|
}
|
|
@@ -223,27 +217,28 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
223
217
|
this.assertNotClosed();
|
|
224
218
|
return this._pc.getStats();
|
|
225
219
|
}
|
|
226
|
-
async send({ track, encodings, codecOptions, codec }) {
|
|
220
|
+
async send({ track, encodings, codecOptions, codec, }) {
|
|
227
221
|
this.assertNotClosed();
|
|
228
222
|
this.assertSendDirection();
|
|
229
223
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
230
224
|
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
231
225
|
// This may throw.
|
|
232
|
-
sendingRtpParameters.codecs =
|
|
233
|
-
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
226
|
+
sendingRtpParameters.codecs = ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
234
227
|
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
235
228
|
// This may throw.
|
|
236
|
-
sendingRemoteRtpParameters.codecs =
|
|
237
|
-
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
229
|
+
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
238
230
|
const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
|
|
239
|
-
const transceiver = this._pc.addTransceiver(track, {
|
|
231
|
+
const transceiver = this._pc.addTransceiver(track, {
|
|
232
|
+
direction: 'sendonly',
|
|
233
|
+
streams: [this._sendStream],
|
|
234
|
+
});
|
|
240
235
|
let offer = await this._pc.createOffer();
|
|
241
236
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
242
237
|
let offerMediaObject;
|
|
243
238
|
if (!this._transportReady) {
|
|
244
239
|
await this.setupTransport({
|
|
245
240
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
246
|
-
localSdpObject
|
|
241
|
+
localSdpObject,
|
|
247
242
|
});
|
|
248
243
|
}
|
|
249
244
|
const layers = (0, scalabilityModes_1.parse)((encodings || [{}])[0].scalabilityMode);
|
|
@@ -253,7 +248,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
253
248
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
254
249
|
sdpUnifiedPlanUtils.addLegacySimulcast({
|
|
255
250
|
offerMediaObject,
|
|
256
|
-
numStreams: encodings.length
|
|
251
|
+
numStreams: encodings.length,
|
|
257
252
|
});
|
|
258
253
|
offer = { type: 'offer', sdp: sdpTransform.write(localSdpObject) };
|
|
259
254
|
}
|
|
@@ -266,11 +261,13 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
266
261
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
267
262
|
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
268
263
|
// Set RTCP CNAME.
|
|
269
|
-
sendingRtpParameters.rtcp.cname =
|
|
270
|
-
|
|
264
|
+
sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
|
|
265
|
+
offerMediaObject,
|
|
266
|
+
});
|
|
271
267
|
// Set RTP encodings.
|
|
272
|
-
sendingRtpParameters.encodings =
|
|
273
|
-
|
|
268
|
+
sendingRtpParameters.encodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
269
|
+
offerMediaObject,
|
|
270
|
+
});
|
|
274
271
|
// Complete encodings with given values.
|
|
275
272
|
if (encodings) {
|
|
276
273
|
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
@@ -298,7 +295,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
298
295
|
reuseMid: mediaSectionIdx.reuseMid,
|
|
299
296
|
offerRtpParameters: sendingRtpParameters,
|
|
300
297
|
answerRtpParameters: sendingRemoteRtpParameters,
|
|
301
|
-
codecOptions
|
|
298
|
+
codecOptions,
|
|
302
299
|
});
|
|
303
300
|
const answer = { type: 'answer', sdp: this._remoteSdp.getSdp() };
|
|
304
301
|
logger.debug('send() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -308,7 +305,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
308
305
|
return {
|
|
309
306
|
localId,
|
|
310
307
|
rtpParameters: sendingRtpParameters,
|
|
311
|
-
rtpSender: transceiver.sender
|
|
308
|
+
rtpSender: transceiver.sender,
|
|
312
309
|
};
|
|
313
310
|
}
|
|
314
311
|
async stopSending(localId) {
|
|
@@ -445,7 +442,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
445
442
|
}
|
|
446
443
|
return transceiver.sender.getStats();
|
|
447
444
|
}
|
|
448
|
-
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol }) {
|
|
445
|
+
async sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
|
|
449
446
|
this.assertNotClosed();
|
|
450
447
|
this.assertSendDirection();
|
|
451
448
|
const options = {
|
|
@@ -454,7 +451,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
454
451
|
ordered,
|
|
455
452
|
maxPacketLifeTime,
|
|
456
453
|
maxRetransmits,
|
|
457
|
-
protocol
|
|
454
|
+
protocol,
|
|
458
455
|
};
|
|
459
456
|
logger.debug('sendDataChannel() [options:%o]', options);
|
|
460
457
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -466,12 +463,11 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
466
463
|
if (!this._hasDataChannelMediaSection) {
|
|
467
464
|
const offer = await this._pc.createOffer();
|
|
468
465
|
const localSdpObject = sdpTransform.parse(offer.sdp);
|
|
469
|
-
const offerMediaObject = localSdpObject.media
|
|
470
|
-
.find((m) => m.type === 'application');
|
|
466
|
+
const offerMediaObject = localSdpObject.media.find((m) => m.type === 'application');
|
|
471
467
|
if (!this._transportReady) {
|
|
472
468
|
await this.setupTransport({
|
|
473
469
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
474
|
-
localSdpObject
|
|
470
|
+
localSdpObject,
|
|
475
471
|
});
|
|
476
472
|
}
|
|
477
473
|
logger.debug('sendDataChannel() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
@@ -486,7 +482,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
486
482
|
streamId: options.id,
|
|
487
483
|
ordered: options.ordered,
|
|
488
484
|
maxPacketLifeTime: options.maxPacketLifeTime,
|
|
489
|
-
maxRetransmits: options.maxRetransmits
|
|
485
|
+
maxRetransmits: options.maxRetransmits,
|
|
490
486
|
};
|
|
491
487
|
return { dataChannel, sctpStreamParameters };
|
|
492
488
|
}
|
|
@@ -505,7 +501,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
505
501
|
kind,
|
|
506
502
|
offerRtpParameters: rtpParameters,
|
|
507
503
|
streamId: streamId || rtpParameters.rtcp.cname,
|
|
508
|
-
trackId
|
|
504
|
+
trackId,
|
|
509
505
|
});
|
|
510
506
|
}
|
|
511
507
|
const offer = { type: 'offer', sdp: this._remoteSdp.getSdp() };
|
|
@@ -516,20 +512,19 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
516
512
|
for (const options of optionsList) {
|
|
517
513
|
const { trackId, rtpParameters } = options;
|
|
518
514
|
const localId = mapLocalId.get(trackId);
|
|
519
|
-
const answerMediaObject = localSdpObject.media
|
|
520
|
-
.find((m) => String(m.mid) === localId);
|
|
515
|
+
const answerMediaObject = localSdpObject.media.find((m) => String(m.mid) === localId);
|
|
521
516
|
// May need to modify codec parameters in the answer based on codec
|
|
522
517
|
// parameters in the offer.
|
|
523
518
|
sdpCommonUtils.applyCodecParameters({
|
|
524
519
|
offerRtpParameters: rtpParameters,
|
|
525
|
-
answerMediaObject
|
|
520
|
+
answerMediaObject,
|
|
526
521
|
});
|
|
527
522
|
}
|
|
528
523
|
answer = { type: 'answer', sdp: sdpTransform.write(localSdpObject) };
|
|
529
524
|
if (!this._transportReady) {
|
|
530
525
|
await this.setupTransport({
|
|
531
526
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
532
|
-
localSdpObject
|
|
527
|
+
localSdpObject,
|
|
533
528
|
});
|
|
534
529
|
}
|
|
535
530
|
logger.debug('receive() | calling pc.setLocalDescription() [answer:%o]', answer);
|
|
@@ -537,7 +532,8 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
537
532
|
for (const options of optionsList) {
|
|
538
533
|
const { trackId } = options;
|
|
539
534
|
const localId = mapLocalId.get(trackId);
|
|
540
|
-
const transceiver = this._pc
|
|
535
|
+
const transceiver = this._pc
|
|
536
|
+
.getTransceivers()
|
|
541
537
|
.find((t) => t.mid === localId);
|
|
542
538
|
if (!transceiver) {
|
|
543
539
|
throw new Error('new RTCRtpTransceiver not found');
|
|
@@ -547,7 +543,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
547
543
|
results.push({
|
|
548
544
|
localId,
|
|
549
545
|
track: transceiver.receiver.track,
|
|
550
|
-
rtpReceiver: transceiver.receiver
|
|
546
|
+
rtpReceiver: transceiver.receiver,
|
|
551
547
|
});
|
|
552
548
|
}
|
|
553
549
|
return results;
|
|
@@ -622,17 +618,17 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
622
618
|
}
|
|
623
619
|
return transceiver.receiver.getStats();
|
|
624
620
|
}
|
|
625
|
-
async receiveDataChannel({ sctpStreamParameters, label, protocol }) {
|
|
621
|
+
async receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
|
|
626
622
|
this.assertNotClosed();
|
|
627
623
|
this.assertRecvDirection();
|
|
628
|
-
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
624
|
+
const { streamId, ordered, maxPacketLifeTime, maxRetransmits, } = sctpStreamParameters;
|
|
629
625
|
const options = {
|
|
630
626
|
negotiated: true,
|
|
631
627
|
id: streamId,
|
|
632
628
|
ordered,
|
|
633
629
|
maxPacketLifeTime,
|
|
634
630
|
maxRetransmits,
|
|
635
|
-
protocol
|
|
631
|
+
protocol,
|
|
636
632
|
};
|
|
637
633
|
logger.debug('receiveDataChannel() [options:%o]', options);
|
|
638
634
|
const dataChannel = this._pc.createDataChannel(label, options);
|
|
@@ -648,7 +644,7 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
648
644
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
649
645
|
await this.setupTransport({
|
|
650
646
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
651
|
-
localSdpObject
|
|
647
|
+
localSdpObject,
|
|
652
648
|
});
|
|
653
649
|
}
|
|
654
650
|
logger.debug('receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]', answer);
|
|
@@ -657,12 +653,14 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
657
653
|
}
|
|
658
654
|
return { dataChannel };
|
|
659
655
|
}
|
|
660
|
-
async setupTransport({ localDtlsRole, localSdpObject }) {
|
|
656
|
+
async setupTransport({ localDtlsRole, localSdpObject, }) {
|
|
661
657
|
if (!localSdpObject) {
|
|
662
658
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
663
659
|
}
|
|
664
660
|
// Get our local DTLS parameters.
|
|
665
|
-
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
661
|
+
const dtlsParameters = sdpCommonUtils.extractDtlsParameters({
|
|
662
|
+
sdpObject: localSdpObject,
|
|
663
|
+
});
|
|
666
664
|
// Set our DTLS role.
|
|
667
665
|
dtlsParameters.role = localDtlsRole;
|
|
668
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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"}
|