mediasoup-client 3.6.99 → 3.6.101
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/lib/Device.js +1 -1
- package/lib/Transport.js +3 -3
- package/lib/handlers/Chrome111.js +2 -2
- package/lib/handlers/Chrome55.js +2 -2
- package/lib/handlers/Chrome67.js +2 -2
- package/lib/handlers/Chrome70.js +2 -2
- package/lib/handlers/Chrome74.js +2 -2
- package/lib/handlers/Edge11.js +1 -1
- package/lib/handlers/FakeHandler.js +2 -2
- package/lib/handlers/Firefox60.d.ts.map +1 -1
- package/lib/handlers/Firefox60.js +3 -3
- package/lib/handlers/ReactNative.js +2 -2
- package/lib/handlers/ReactNativeUnifiedPlan.js +2 -2
- package/lib/handlers/Safari11.js +2 -2
- package/lib/handlers/Safari12.js +2 -2
- package/lib/handlers/ortc/edgeUtils.d.ts.map +1 -1
- package/lib/handlers/ortc/edgeUtils.js +11 -3
- package/lib/handlers/sdp/MediaSection.js +2 -2
- package/lib/handlers/sdp/commonUtils.d.ts.map +1 -1
- package/lib/handlers/sdp/commonUtils.js +16 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.js +1 -1
- package/lib/tests/test.js +2 -1
- package/lib/utils.d.ts +2 -2
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +14 -5
- package/package.json +13 -10
package/lib/Device.js
CHANGED
|
@@ -313,7 +313,7 @@ class Device {
|
|
|
313
313
|
*/
|
|
314
314
|
async load({ routerRtpCapabilities }) {
|
|
315
315
|
logger.debug('load() [routerRtpCapabilities:%o]', routerRtpCapabilities);
|
|
316
|
-
routerRtpCapabilities = utils.clone(routerRtpCapabilities
|
|
316
|
+
routerRtpCapabilities = utils.clone(routerRtpCapabilities);
|
|
317
317
|
// Temporal handler to get its capabilities.
|
|
318
318
|
let handler;
|
|
319
319
|
try {
|
package/lib/Transport.js
CHANGED
|
@@ -95,7 +95,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
95
95
|
this._maxSctpMessageSize =
|
|
96
96
|
sctpParameters ? sctpParameters.maxMessageSize : null;
|
|
97
97
|
// Clone and sanitize additionalSettings.
|
|
98
|
-
additionalSettings = utils.clone(additionalSettings
|
|
98
|
+
additionalSettings = utils.clone(additionalSettings) || {};
|
|
99
99
|
delete additionalSettings.iceServers;
|
|
100
100
|
delete additionalSettings.iceTransportPolicy;
|
|
101
101
|
delete additionalSettings.bundlePolicy;
|
|
@@ -374,7 +374,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
374
374
|
*/
|
|
375
375
|
async consume({ id, producerId, kind, rtpParameters, streamId, appData = {} }) {
|
|
376
376
|
logger.debug('consume()');
|
|
377
|
-
rtpParameters = utils.clone(rtpParameters
|
|
377
|
+
rtpParameters = utils.clone(rtpParameters);
|
|
378
378
|
if (this._closed) {
|
|
379
379
|
throw new errors_1.InvalidStateError('closed');
|
|
380
380
|
}
|
|
@@ -485,7 +485,7 @@ class Transport extends EnhancedEventEmitter_1.EnhancedEventEmitter {
|
|
|
485
485
|
*/
|
|
486
486
|
async consumeData({ id, dataProducerId, sctpStreamParameters, label = '', protocol = '', appData = {} }) {
|
|
487
487
|
logger.debug('consumeData()');
|
|
488
|
-
sctpStreamParameters = utils.clone(sctpStreamParameters
|
|
488
|
+
sctpStreamParameters = utils.clone(sctpStreamParameters);
|
|
489
489
|
if (this._closed) {
|
|
490
490
|
throw new errors_1.InvalidStateError('closed');
|
|
491
491
|
}
|
|
@@ -243,11 +243,11 @@ class Chrome111 extends HandlerInterface_1.HandlerInterface {
|
|
|
243
243
|
encoding.scalabilityMode = `L1T${maxTemporalLayers}`;
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
246
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
247
247
|
// This may throw.
|
|
248
248
|
sendingRtpParameters.codecs =
|
|
249
249
|
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
250
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
250
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
251
251
|
// This may throw.
|
|
252
252
|
sendingRemoteRtpParameters.codecs =
|
|
253
253
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
package/lib/handlers/Chrome55.js
CHANGED
|
@@ -219,10 +219,10 @@ class Chrome55 extends HandlerInterface_1.HandlerInterface {
|
|
|
219
219
|
let offer = await this._pc.createOffer();
|
|
220
220
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
221
221
|
let offerMediaObject;
|
|
222
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
222
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
223
223
|
sendingRtpParameters.codecs =
|
|
224
224
|
ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
225
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
225
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
226
226
|
sendingRemoteRtpParameters.codecs =
|
|
227
227
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
228
228
|
if (!this._transportReady) {
|
package/lib/handlers/Chrome67.js
CHANGED
|
@@ -218,10 +218,10 @@ class Chrome67 extends HandlerInterface_1.HandlerInterface {
|
|
|
218
218
|
let offer = await this._pc.createOffer();
|
|
219
219
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
220
220
|
let offerMediaObject;
|
|
221
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
221
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
222
222
|
sendingRtpParameters.codecs =
|
|
223
223
|
ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
224
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
224
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
225
225
|
sendingRemoteRtpParameters.codecs =
|
|
226
226
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
227
227
|
if (!this._transportReady) {
|
package/lib/handlers/Chrome70.js
CHANGED
|
@@ -204,11 +204,11 @@ class Chrome70 extends HandlerInterface_1.HandlerInterface {
|
|
|
204
204
|
async send({ track, encodings, codecOptions, codec }) {
|
|
205
205
|
this.assertSendDirection();
|
|
206
206
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
207
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
207
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
208
208
|
// This may throw.
|
|
209
209
|
sendingRtpParameters.codecs =
|
|
210
210
|
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
211
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
211
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
212
212
|
// This may throw.
|
|
213
213
|
sendingRemoteRtpParameters.codecs =
|
|
214
214
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -223,11 +223,11 @@ class Chrome74 extends HandlerInterface_1.HandlerInterface {
|
|
|
223
223
|
encoding.rid = `r${idx}`;
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
226
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
227
227
|
// This may throw.
|
|
228
228
|
sendingRtpParameters.codecs =
|
|
229
229
|
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
230
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
230
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
231
231
|
// This may throw.
|
|
232
232
|
sendingRemoteRtpParameters.codecs =
|
|
233
233
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
package/lib/handlers/Edge11.js
CHANGED
|
@@ -145,7 +145,7 @@ class Edge11 extends HandlerInterface_1.HandlerInterface {
|
|
|
145
145
|
}
|
|
146
146
|
logger.debug('send() | calling new RTCRtpSender()');
|
|
147
147
|
const rtpSender = new RTCRtpSender(track, this._dtlsTransport);
|
|
148
|
-
const rtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
148
|
+
const rtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
149
149
|
rtpParameters.codecs = ortc.reduceCodecs(rtpParameters.codecs, codec);
|
|
150
150
|
const useRtx = rtpParameters.codecs
|
|
151
151
|
.some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
|
|
@@ -139,7 +139,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
139
139
|
if (!this._transportReady) {
|
|
140
140
|
await this.setupTransport({ localDtlsRole: 'server' });
|
|
141
141
|
}
|
|
142
|
-
const rtpParameters = utils.clone(this._rtpParametersByKind[track.kind]
|
|
142
|
+
const rtpParameters = utils.clone(this._rtpParametersByKind[track.kind]);
|
|
143
143
|
const useRtx = rtpParameters.codecs
|
|
144
144
|
.some((_codec) => /.+\/rtx$/i.test(_codec.mimeType));
|
|
145
145
|
rtpParameters.mid = `mid-${utils.generateRandomNumber()}`;
|
|
@@ -293,7 +293,7 @@ class FakeHandler extends HandlerInterface_1.HandlerInterface {
|
|
|
293
293
|
async setupTransport({ localDtlsRole,
|
|
294
294
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
295
295
|
localSdpObject }) {
|
|
296
|
-
const dtlsParameters = utils.clone(this.fakeParameters.generateLocalDtlsParameters()
|
|
296
|
+
const dtlsParameters = utils.clone(this.fakeParameters.generateLocalDtlsParameters());
|
|
297
297
|
// Set our DTLS role.
|
|
298
298
|
if (localDtlsRole) {
|
|
299
299
|
dtlsParameters.role = localDtlsRole;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Firefox60.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox60.ts"],"names":[],"mappings":"AAOA,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,
|
|
1
|
+
{"version":3,"file":"Firefox60.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox60.ts"],"names":[],"mappings":"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"}
|
|
@@ -238,7 +238,7 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
|
|
|
238
238
|
this.assertSendDirection();
|
|
239
239
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
240
240
|
if (encodings) {
|
|
241
|
-
encodings = utils.clone(encodings
|
|
241
|
+
encodings = utils.clone(encodings);
|
|
242
242
|
if (encodings.length > 1) {
|
|
243
243
|
encodings.forEach((encoding, idx) => {
|
|
244
244
|
encoding.rid = `r${idx}`;
|
|
@@ -248,11 +248,11 @@ class Firefox60 extends HandlerInterface_1.HandlerInterface {
|
|
|
248
248
|
encodings.reverse();
|
|
249
249
|
}
|
|
250
250
|
}
|
|
251
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
251
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
252
252
|
// This may throw.
|
|
253
253
|
sendingRtpParameters.codecs =
|
|
254
254
|
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
255
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
255
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
256
256
|
// This may throw.
|
|
257
257
|
sendingRemoteRtpParameters.codecs =
|
|
258
258
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
@@ -223,10 +223,10 @@ class ReactNative extends HandlerInterface_1.HandlerInterface {
|
|
|
223
223
|
let offer = await this._pc.createOffer();
|
|
224
224
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
225
225
|
let offerMediaObject;
|
|
226
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
226
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
227
227
|
sendingRtpParameters.codecs =
|
|
228
228
|
ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
229
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
229
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
230
230
|
sendingRemoteRtpParameters.codecs =
|
|
231
231
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
232
232
|
if (!this._transportReady) {
|
|
@@ -228,11 +228,11 @@ class ReactNativeUnifiedPlan extends HandlerInterface_1.HandlerInterface {
|
|
|
228
228
|
encoding.rid = `r${idx}`;
|
|
229
229
|
});
|
|
230
230
|
}
|
|
231
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
231
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
232
232
|
// This may throw.
|
|
233
233
|
sendingRtpParameters.codecs =
|
|
234
234
|
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
235
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
235
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
236
236
|
// This may throw.
|
|
237
237
|
sendingRemoteRtpParameters.codecs =
|
|
238
238
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
package/lib/handlers/Safari11.js
CHANGED
|
@@ -217,10 +217,10 @@ class Safari11 extends HandlerInterface_1.HandlerInterface {
|
|
|
217
217
|
let offer = await this._pc.createOffer();
|
|
218
218
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
219
219
|
let offerMediaObject;
|
|
220
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
220
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
221
221
|
sendingRtpParameters.codecs =
|
|
222
222
|
ortc.reduceCodecs(sendingRtpParameters.codecs);
|
|
223
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
223
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
224
224
|
sendingRemoteRtpParameters.codecs =
|
|
225
225
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs);
|
|
226
226
|
if (!this._transportReady) {
|
package/lib/handlers/Safari12.js
CHANGED
|
@@ -217,11 +217,11 @@ class Safari12 extends HandlerInterface_1.HandlerInterface {
|
|
|
217
217
|
this.assertNotClosed();
|
|
218
218
|
this.assertSendDirection();
|
|
219
219
|
logger.debug('send() [kind:%s, track.id:%s]', track.kind, track.id);
|
|
220
|
-
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]
|
|
220
|
+
const sendingRtpParameters = utils.clone(this._sendingRtpParametersByKind[track.kind]);
|
|
221
221
|
// This may throw.
|
|
222
222
|
sendingRtpParameters.codecs =
|
|
223
223
|
ortc.reduceCodecs(sendingRtpParameters.codecs, codec);
|
|
224
|
-
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]
|
|
224
|
+
const sendingRemoteRtpParameters = utils.clone(this._sendingRemoteRtpParametersByKind[track.kind]);
|
|
225
225
|
// This may throw.
|
|
226
226
|
sendingRemoteRtpParameters.codecs =
|
|
227
227
|
ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
@@ -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,CA4CjD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,CAoC/E"}
|
|
@@ -31,12 +31,15 @@ const utils = __importStar(require("../../utils"));
|
|
|
31
31
|
*/
|
|
32
32
|
function getCapabilities() {
|
|
33
33
|
const nativeCaps = RTCRtpReceiver.getCapabilities();
|
|
34
|
-
const caps = utils.clone(nativeCaps
|
|
35
|
-
for (const codec of caps.codecs) {
|
|
34
|
+
const caps = utils.clone(nativeCaps);
|
|
35
|
+
for (const codec of caps.codecs ?? []) {
|
|
36
36
|
// Rename numChannels to channels.
|
|
37
|
+
// @ts-ignore
|
|
37
38
|
codec.channels = codec.numChannels;
|
|
39
|
+
// @ts-ignore
|
|
38
40
|
delete codec.numChannels;
|
|
39
41
|
// Add mimeType.
|
|
42
|
+
// @ts-ignore (due to codec.name).
|
|
40
43
|
codec.mimeType = codec.mimeType || `${codec.kind}/${codec.name}`;
|
|
41
44
|
// NOTE: Edge sets some numeric parameters as string rather than number. Fix them.
|
|
42
45
|
if (codec.parameters) {
|
|
@@ -62,23 +65,28 @@ exports.getCapabilities = getCapabilities;
|
|
|
62
65
|
* Generate RTCRtpParameters as ORTC based Edge likes.
|
|
63
66
|
*/
|
|
64
67
|
function mangleRtpParameters(rtpParameters) {
|
|
65
|
-
const params = utils.clone(rtpParameters
|
|
68
|
+
const params = utils.clone(rtpParameters);
|
|
66
69
|
// Rename mid to muxId.
|
|
67
70
|
if (params.mid) {
|
|
71
|
+
// @ts-ignore (due to muxId).
|
|
68
72
|
params.muxId = params.mid;
|
|
69
73
|
delete params.mid;
|
|
70
74
|
}
|
|
71
75
|
for (const codec of params.codecs) {
|
|
72
76
|
// Rename channels to numChannels.
|
|
73
77
|
if (codec.channels) {
|
|
78
|
+
// @ts-ignore.
|
|
74
79
|
codec.numChannels = codec.channels;
|
|
75
80
|
delete codec.channels;
|
|
76
81
|
}
|
|
77
82
|
// Add codec.name (requried by Edge).
|
|
83
|
+
// @ts-ignore (due to name).
|
|
78
84
|
if (codec.mimeType && !codec.name) {
|
|
85
|
+
// @ts-ignore (due to name).
|
|
79
86
|
codec.name = codec.mimeType.split('/')[1];
|
|
80
87
|
}
|
|
81
88
|
// Remove mimeType.
|
|
89
|
+
// @ts-ignore
|
|
82
90
|
delete codec.mimeType;
|
|
83
91
|
}
|
|
84
92
|
return params;
|
|
@@ -126,8 +126,8 @@ class AnswerMediaSection extends MediaSection {
|
|
|
126
126
|
rtp.encoding = codec.channels;
|
|
127
127
|
}
|
|
128
128
|
this._mediaObject.rtp.push(rtp);
|
|
129
|
-
const codecParameters = utils.clone(codec.parameters
|
|
130
|
-
let codecRtcpFeedback = utils.clone(codec.rtcpFeedback
|
|
129
|
+
const codecParameters = utils.clone(codec.parameters) ?? {};
|
|
130
|
+
let codecRtcpFeedback = utils.clone(codec.rtcpFeedback) ?? [];
|
|
131
131
|
if (codecOptions) {
|
|
132
132
|
const { opusStereo, opusFec, opusDtx, opusMaxPlaybackRate, opusMaxAverageBitrate, opusPtime, opusNack, videoGoogleStartBitrate, videoGoogleMaxBitrate, videoGoogleMinBitrate } = codecOptions;
|
|
133
133
|
const offerCodec = offerRtpParameters.codecs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/commonUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACN,eAAe,EAGf,aAAa,EAEb,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,EAAE,SAAS,EAAE,EACb;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,GAChB,eAAe,CAqJjB;AAED,wBAAgB,qBAAqB,CACpC,EAAE,SAAS,EAAE,EACb;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,GAChB,cAAc,
|
|
1
|
+
{"version":3,"file":"commonUtils.d.ts","sourceRoot":"","sources":["../../../src/handlers/sdp/commonUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EACN,eAAe,EAGf,aAAa,EAEb,MAAM,qBAAqB,CAAC;AAE7B;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,EAAE,SAAS,EAAE,EACb;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,GAChB,eAAe,CAqJjB;AAED,wBAAgB,qBAAqB,CACpC,EAAE,SAAS,EAAE,EACb;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,GAChB,cAAc,CAsDhB;AAED,wBAAgB,QAAQ,CACvB,EAAE,gBAAgB,EAAE,EACpB;IAAE,gBAAgB,EAAE,GAAG,CAAA;CAAE,GACvB,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,EACC,kBAAkB,EAClB,iBAAiB,EACjB,EACD;IACC,kBAAkB,EAAE,aAAa,CAAC;IAClC,iBAAiB,EAAE,GAAG,CAAC;CACvB,GACC,IAAI,CA8DN"}
|
|
@@ -137,14 +137,24 @@ function extractRtpCapabilities({ sdpObject }) {
|
|
|
137
137
|
}
|
|
138
138
|
exports.extractRtpCapabilities = extractRtpCapabilities;
|
|
139
139
|
function extractDtlsParameters({ sdpObject }) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (!
|
|
143
|
-
|
|
140
|
+
let setup = sdpObject.setup;
|
|
141
|
+
let fingerprint = sdpObject.fingerprint;
|
|
142
|
+
if (!setup || !fingerprint) {
|
|
143
|
+
const mediaObject = (sdpObject.media || [])
|
|
144
|
+
.find((m) => (m.port !== 0));
|
|
145
|
+
if (mediaObject) {
|
|
146
|
+
setup ?? (setup = mediaObject.setup);
|
|
147
|
+
fingerprint ?? (fingerprint = mediaObject.fingerprint);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (!setup) {
|
|
151
|
+
throw new Error('no a=setup found at SDP session or media level');
|
|
152
|
+
}
|
|
153
|
+
else if (!fingerprint) {
|
|
154
|
+
throw new Error('no a=fingerprint found at SDP session or media level');
|
|
144
155
|
}
|
|
145
|
-
const fingerprint = mediaObject.fingerprint || sdpObject.fingerprint;
|
|
146
156
|
let role;
|
|
147
|
-
switch (
|
|
157
|
+
switch (setup) {
|
|
148
158
|
case 'active':
|
|
149
159
|
role = 'client';
|
|
150
160
|
break;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/lib/ortc.js
CHANGED
|
@@ -815,7 +815,7 @@ exports.reduceCodecs = reduceCodecs;
|
|
|
815
815
|
*/
|
|
816
816
|
function generateProbatorRtpParameters(videoRtpParameters) {
|
|
817
817
|
// Clone given reference video RTP parameters.
|
|
818
|
-
videoRtpParameters = utils.clone(videoRtpParameters
|
|
818
|
+
videoRtpParameters = utils.clone(videoRtpParameters);
|
|
819
819
|
// This may throw.
|
|
820
820
|
validateRtpParameters(videoRtpParameters);
|
|
821
821
|
const rtpParameters = {
|
package/lib/tests/test.js
CHANGED
|
@@ -99,8 +99,9 @@ test('device.load() without routerRtpCapabilities rejects with TypeError', async
|
|
|
99
99
|
}, 500);
|
|
100
100
|
test('device.load() with invalid routerRtpCapabilities rejects with TypeError', async () => {
|
|
101
101
|
// Clonse fake router RTP capabilities to make them invalid.
|
|
102
|
-
const routerRtpCapabilities = utils.clone(fakeParameters.generateRouterRtpCapabilities()
|
|
102
|
+
const routerRtpCapabilities = utils.clone(fakeParameters.generateRouterRtpCapabilities());
|
|
103
103
|
for (const codec of routerRtpCapabilities.codecs) {
|
|
104
|
+
// @ts-ignore
|
|
104
105
|
delete codec.mimeType;
|
|
105
106
|
}
|
|
106
107
|
await expect(device.load({ routerRtpCapabilities }))
|
package/lib/utils.d.ts
CHANGED
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAmBpC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C"}
|
package/lib/utils.js
CHANGED
|
@@ -2,13 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateRandomNumber = exports.clone = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* Clones the given
|
|
5
|
+
* Clones the given value.
|
|
6
6
|
*/
|
|
7
|
-
function clone(
|
|
8
|
-
if (
|
|
9
|
-
return
|
|
7
|
+
function clone(value) {
|
|
8
|
+
if (value === undefined) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
else if (Number.isNaN(value)) {
|
|
12
|
+
return NaN;
|
|
13
|
+
}
|
|
14
|
+
else if (typeof structuredClone === 'function') {
|
|
15
|
+
// Available in Node >= 18.
|
|
16
|
+
return structuredClone(value);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return JSON.parse(JSON.stringify(value));
|
|
10
20
|
}
|
|
11
|
-
return JSON.parse(JSON.stringify(data));
|
|
12
21
|
}
|
|
13
22
|
exports.clone = clone;
|
|
14
23
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediasoup-client",
|
|
3
|
-
"version": "3.6.
|
|
3
|
+
"version": "3.6.101",
|
|
4
4
|
"description": "mediasoup client side JavaScript library",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
|
|
@@ -58,6 +58,9 @@
|
|
|
58
58
|
}
|
|
59
59
|
]
|
|
60
60
|
},
|
|
61
|
+
"coveragePathIgnorePatterns": [
|
|
62
|
+
"src/tests"
|
|
63
|
+
],
|
|
61
64
|
"cacheDirectory": ".cache/jest"
|
|
62
65
|
},
|
|
63
66
|
"dependencies": {
|
|
@@ -70,20 +73,20 @@
|
|
|
70
73
|
"queue-microtask": "^1.2.3",
|
|
71
74
|
"sdp-transform": "^2.14.1",
|
|
72
75
|
"supports-color": "^9.4.0",
|
|
73
|
-
"ua-parser-js": "^1.0.
|
|
76
|
+
"ua-parser-js": "^1.0.36"
|
|
74
77
|
},
|
|
75
78
|
"devDependencies": {
|
|
76
79
|
"@types/events": "^3.0.0",
|
|
77
|
-
"@types/jest": "^29.5.
|
|
80
|
+
"@types/jest": "^29.5.5",
|
|
78
81
|
"@types/sdp-transform": "^2.4.6",
|
|
79
|
-
"@types/ua-parser-js": "^0.7.
|
|
80
|
-
"@typescript-eslint/eslint-plugin": "^6.
|
|
81
|
-
"@typescript-eslint/parser": "^6.
|
|
82
|
-
"eslint": "^8.
|
|
83
|
-
"eslint-plugin-jest": "^27.
|
|
84
|
-
"jest": "^29.
|
|
82
|
+
"@types/ua-parser-js": "^0.7.37",
|
|
83
|
+
"@typescript-eslint/eslint-plugin": "^6.7.2",
|
|
84
|
+
"@typescript-eslint/parser": "^6.7.2",
|
|
85
|
+
"eslint": "^8.49.0",
|
|
86
|
+
"eslint-plugin-jest": "^27.4.0",
|
|
87
|
+
"jest": "^29.7.0",
|
|
85
88
|
"open-cli": "^7.2.0",
|
|
86
89
|
"ts-jest": "^29.1.1",
|
|
87
|
-
"typescript": "^5.
|
|
90
|
+
"typescript": "^5.2.2"
|
|
88
91
|
}
|
|
89
92
|
}
|