mediasoup-client 3.24.3 → 3.24.5
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/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +41 -44
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAW5D,OAAO,KAAK,EACX,qBAAqB,EAErB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EAEd,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAM5B,qBAAa,QACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,0BAA0B,CAAC,CAAS;IAE5C,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,+BAA+B,CAEV;IAC7B,OAAO,CAAC,oBAAoB,CAAC,CAA6B;IAG1D,OAAO,CAAC,oBAAoB,CAAC,CAAW;IAExC,OAAO,CAAC,GAAG,CAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CACxB;IAEX,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,OAAO,CAAC,2BAA2B,CAAS;IAE5C,OAAO,CAAC,qBAAqB,CAAK;IAElC,OAAO,CAAC,eAAe,CAAS;IAEhC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,EACpB,mBAAmB,GACnB,EAAE,qBAAqB,GAAG,cAAc;IA+DzC,OAAO,CAAC,MAAM,CAAC,uBAAuB;gBAgB1B,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,mBAAmB,GACnB,EAAE,cAAc;IAqEjB,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEQ,KAAK,IAAI,IAAI;IAqChB,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3D,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDvD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM5C,IAAI,CAAC,EACV,KAAK,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,KAAK,EACL,WAAW,GACX,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Safari12.d.ts","sourceRoot":"","sources":["../../src/handlers/Safari12.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Safari12.js
CHANGED
|
@@ -238,6 +238,26 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
238
238
|
this.assertNotClosed();
|
|
239
239
|
this.assertSendDirection();
|
|
240
240
|
logger.debug('send() [kind:%s, track.id:%s, streamId:%s]', track.kind, track.id, streamId);
|
|
241
|
+
if (encodings && encodings.length > 1) {
|
|
242
|
+
// Set rid and verify scalabilityMode in each encoding.
|
|
243
|
+
// NOTE: Even if WebRTC allows different scalabilityMode (different number
|
|
244
|
+
// of temporal layers) per simulcast stream, we need that those are the
|
|
245
|
+
// same in all them, so let's pick up the highest value.
|
|
246
|
+
// NOTE: If scalabilityMode is not given, Safari will use L1T3.
|
|
247
|
+
let maxTemporalLayers = 1;
|
|
248
|
+
for (const encoding of encodings) {
|
|
249
|
+
const temporalLayers = encoding.scalabilityMode
|
|
250
|
+
? (0, scalabilityModes_1.parse)(encoding.scalabilityMode).temporalLayers
|
|
251
|
+
: 3;
|
|
252
|
+
if (temporalLayers > maxTemporalLayers) {
|
|
253
|
+
maxTemporalLayers = temporalLayers;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
encodings.forEach((encoding, idx) => {
|
|
257
|
+
encoding.rid = `r${idx}`;
|
|
258
|
+
encoding.scalabilityMode = `L1T${maxTemporalLayers}`;
|
|
259
|
+
});
|
|
260
|
+
}
|
|
241
261
|
const mediaSectionIdx = this._remoteSdp.getNextMediaSectionIdx();
|
|
242
262
|
const transceiver = this._pc.addTransceiver(track, {
|
|
243
263
|
direction: 'sendonly',
|
|
@@ -251,7 +271,7 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
251
271
|
if (onRtpSender) {
|
|
252
272
|
onRtpSender(transceiver.sender);
|
|
253
273
|
}
|
|
254
|
-
|
|
274
|
+
const offer = await this._pc.createOffer();
|
|
255
275
|
let localSdpObject = sdpTransform.parse(offer.sdp);
|
|
256
276
|
if (localSdpObject.extmapAllowMixed) {
|
|
257
277
|
this._remoteSdp.setSessionExtmapAllowMixed();
|
|
@@ -266,27 +286,12 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
266
286
|
const sendingRemoteRtpParameters = ortc.getSendingRemoteRtpParameters(track.kind, sendExtendedRtpCapabilities);
|
|
267
287
|
// This may throw.
|
|
268
288
|
sendingRemoteRtpParameters.codecs = ortc.reduceCodecs(sendingRemoteRtpParameters.codecs, codec);
|
|
269
|
-
let offerMediaObject;
|
|
270
289
|
if (!this._transportReady) {
|
|
271
290
|
await this.setupTransport({
|
|
272
291
|
localDtlsRole: this._forcedLocalDtlsRole ?? 'client',
|
|
273
292
|
localSdpObject,
|
|
274
293
|
});
|
|
275
294
|
}
|
|
276
|
-
const layers = (0, scalabilityModes_1.parse)((encodings ?? [{}])[0].scalabilityMode);
|
|
277
|
-
if (encodings && encodings.length > 1) {
|
|
278
|
-
logger.debug('send() | enabling legacy simulcast');
|
|
279
|
-
localSdpObject = sdpTransform.parse(offer.sdp);
|
|
280
|
-
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
281
|
-
sdpUnifiedPlanUtils.addLegacySimulcast({
|
|
282
|
-
offerMediaObject,
|
|
283
|
-
numStreams: encodings.length,
|
|
284
|
-
});
|
|
285
|
-
offer = {
|
|
286
|
-
type: 'offer',
|
|
287
|
-
sdp: sdpTransform.write(localSdpObject),
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
295
|
logger.debug('send() | calling pc.setLocalDescription() [offer:%o]', offer);
|
|
291
296
|
await this._pc.setLocalDescription(offer);
|
|
292
297
|
// We can now get the transceiver.mid.
|
|
@@ -294,41 +299,33 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
294
299
|
// Set MID.
|
|
295
300
|
sendingRtpParameters.mid = localId;
|
|
296
301
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
297
|
-
offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
302
|
+
const offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
298
303
|
// Set RTCP CNAME.
|
|
299
304
|
sendingRtpParameters.rtcp.cname = sdpCommonUtils.getCname({
|
|
300
305
|
offerMediaObject,
|
|
301
306
|
});
|
|
302
307
|
// Set msid.
|
|
303
308
|
sendingRtpParameters.msid = `${streamId ?? this._sendStream.id} ${track.id}`;
|
|
304
|
-
// Set RTP encodings.
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
if (encodings) {
|
|
311
|
-
for (let idx = 0; idx < sendingRtpParameters.encodings.length; ++idx) {
|
|
312
|
-
if (encodings[idx]) {
|
|
313
|
-
Object.assign(sendingRtpParameters.encodings[idx], encodings[idx]);
|
|
314
|
-
}
|
|
315
|
-
}
|
|
309
|
+
// Set RTP encodings by parsing the SDP offer if no encodings are given.
|
|
310
|
+
if (!encodings) {
|
|
311
|
+
sendingRtpParameters.encodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
312
|
+
offerMediaObject,
|
|
313
|
+
codecs: sendingRtpParameters.codecs,
|
|
314
|
+
});
|
|
316
315
|
}
|
|
317
|
-
//
|
|
318
|
-
//
|
|
319
|
-
if (
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
sendingRtpParameters.codecs
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
}
|
|
331
|
-
}
|
|
316
|
+
// Set RTP encodings by parsing the SDP offer and complete them with given
|
|
317
|
+
// one if just a single encoding has been given.
|
|
318
|
+
else if (encodings.length === 1) {
|
|
319
|
+
const newEncodings = sdpUnifiedPlanUtils.getRtpEncodings({
|
|
320
|
+
offerMediaObject,
|
|
321
|
+
codecs: sendingRtpParameters.codecs,
|
|
322
|
+
});
|
|
323
|
+
Object.assign(newEncodings[0], encodings[0]);
|
|
324
|
+
sendingRtpParameters.encodings = newEncodings;
|
|
325
|
+
}
|
|
326
|
+
// Otherwise if more than 1 encoding are given use them verbatim.
|
|
327
|
+
else {
|
|
328
|
+
sendingRtpParameters.encodings = encodings;
|
|
332
329
|
}
|
|
333
330
|
this._remoteSdp.send({
|
|
334
331
|
offerMediaObject,
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediasoup-client",
|
|
3
|
-
"version": "3.24.
|
|
3
|
+
"version": "3.24.5",
|
|
4
4
|
"description": "mediasoup client side TypeScript library",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
|
|
@@ -87,17 +87,17 @@
|
|
|
87
87
|
"@eslint/js": "^10.0.1",
|
|
88
88
|
"@types/jest": "^30.0.0",
|
|
89
89
|
"@types/sdp-transform": "^3.0.0",
|
|
90
|
-
"eslint": "^10.
|
|
90
|
+
"eslint": "^10.12.0",
|
|
91
91
|
"eslint-config-prettier": "^10.1.8",
|
|
92
92
|
"eslint-plugin-jest": "^29.16.6",
|
|
93
93
|
"eslint-plugin-prettier": "^5.5.6",
|
|
94
|
-
"globals": "^17.
|
|
94
|
+
"globals": "^17.13.0",
|
|
95
95
|
"jest": "^30.5.2",
|
|
96
|
-
"knip": "^6.
|
|
96
|
+
"knip": "^6.40.0",
|
|
97
97
|
"open-cli": "^9.0.0",
|
|
98
98
|
"prettier": "^3.9.9",
|
|
99
99
|
"ts-jest": "^29.4.14",
|
|
100
100
|
"typescript": "^6.0.3",
|
|
101
|
-
"typescript-eslint": "^8.71.
|
|
101
|
+
"typescript-eslint": "^8.71.1"
|
|
102
102
|
}
|
|
103
103
|
}
|