mediasoup-client 3.10.1 → 3.11.0
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.d.ts +2 -1
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts +4 -1
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +53 -22
- package/package.json +8 -8
package/lib/Device.d.ts
CHANGED
|
@@ -77,8 +77,9 @@ export declare class Device {
|
|
|
77
77
|
/**
|
|
78
78
|
* Initialize the Device.
|
|
79
79
|
*/
|
|
80
|
-
load({ routerRtpCapabilities, }: {
|
|
80
|
+
load({ routerRtpCapabilities, preferLocalCodecsOrder, }: {
|
|
81
81
|
routerRtpCapabilities: RtpCapabilities;
|
|
82
|
+
preferLocalCodecsOrder?: boolean;
|
|
82
83
|
}): Promise<void>;
|
|
83
84
|
/**
|
|
84
85
|
* Whether we can produce audio/video.
|
package/lib/Device.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,KAAK,cAAc,EAEnB,MAAM,6BAA6B,CAAC;AAarC,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAIvC,MAAM,MAAM,kBAAkB,GAC3B,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,YAAY,GACZ,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,wBAAwB,GACxB,aAAa,CAAC;AAEjB,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;OAEG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,iBAAiB,CACtC,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAUzC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC3B,SAAS,CAAC,EAAE,MAAM,GAChB,kBAAkB,GAAG,SAAS,CAUhC;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;AAExE,MAAM,MAAM,oBAAoB,GAAG;IAClC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;CAC1B,CAAC;AAEF,qBAAa,MAAM;IAElB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IAEjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,wBAAwB,CAAC,CAAM;IAEvC,OAAO,CAAC,oBAAoB,CAAC,CAAkB;IAG/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IAErD,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAE7C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,cAAc,CACM;IAElD;;;;;OAKG;WACU,OAAO,CAAC,EACpB,WAAW,EACX,cAAc,GACd,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBvC;;;;OAIG;gBACS,EAAE,WAAW,EAAE,cAAc,EAAE,GAAE,aAAkB;IAuH/D;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,eAAe,CAMrC;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,CAMvC;IAED,IAAI,QAAQ,IAAI,cAAc,CAE7B;IAED;;OAEG;IACG,IAAI,CAAC,EACV,qBAAqB,
|
|
1
|
+
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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"}
|
package/lib/Device.js
CHANGED
|
@@ -218,7 +218,7 @@ class Device {
|
|
|
218
218
|
/**
|
|
219
219
|
* Initialize the Device.
|
|
220
220
|
*/
|
|
221
|
-
async load({ routerRtpCapabilities, }) {
|
|
221
|
+
async load({ routerRtpCapabilities, preferLocalCodecsOrder = false, }) {
|
|
222
222
|
logger.debug('load() [routerRtpCapabilities:%o]', routerRtpCapabilities);
|
|
223
223
|
// Temporal handler to get its capabilities.
|
|
224
224
|
let handler;
|
|
@@ -238,7 +238,7 @@ class Device {
|
|
|
238
238
|
// This may throw.
|
|
239
239
|
ortc.validateRtpCapabilities(clonedNativeRtpCapabilities);
|
|
240
240
|
// Get extended RTP capabilities.
|
|
241
|
-
this._extendedRtpCapabilities = ortc.getExtendedRtpCapabilities(clonedNativeRtpCapabilities, clonedRouterRtpCapabilities);
|
|
241
|
+
this._extendedRtpCapabilities = ortc.getExtendedRtpCapabilities(clonedNativeRtpCapabilities, clonedRouterRtpCapabilities, preferLocalCodecsOrder);
|
|
242
242
|
logger.debug('load() | got extended RTP capabilities:%o', this._extendedRtpCapabilities);
|
|
243
243
|
// Check whether we can produce audio/video.
|
|
244
244
|
this._canProduceByKind.audio = ortc.canSend('audio', this._extendedRtpCapabilities);
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/lib/ortc.d.ts
CHANGED
|
@@ -26,8 +26,11 @@ export declare function validateSctpStreamParameters(params: SctpStreamParameter
|
|
|
26
26
|
export declare function validateSctpCapabilities(caps: SctpCapabilities): void;
|
|
27
27
|
/**
|
|
28
28
|
* Generate extended RTP capabilities for sending and receiving.
|
|
29
|
+
*
|
|
30
|
+
* Resulting codecs keep order preferrred by local or remote capabilities
|
|
31
|
+
* depending on `preferLocalCodecsOrder`.
|
|
29
32
|
*/
|
|
30
|
-
export declare function getExtendedRtpCapabilities(localCaps: RtpCapabilities, remoteCaps: RtpCapabilities): any;
|
|
33
|
+
export declare function getExtendedRtpCapabilities(localCaps: RtpCapabilities, remoteCaps: RtpCapabilities, preferLocalCodecsOrder: boolean): any;
|
|
31
34
|
/**
|
|
32
35
|
* Generate RTP capabilities for receiving media based on the given extended
|
|
33
36
|
* RTP capabilities.
|
package/lib/ortc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ortc.d.ts","sourceRoot":"","sources":["../src/ortc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,eAAe,EACf,SAAS,EACT,kBAAkB,EAElB,aAAa,EACb,kBAAkB,EAKlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACX,gBAAgB,EAEhB,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAO1B;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA0BnE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAiDjE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,oBAAoB,GAC1B,IAAI,CA8DN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAWrE;AAED
|
|
1
|
+
{"version":3,"file":"ortc.d.ts","sourceRoot":"","sources":["../src/ortc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,eAAe,EACf,SAAS,EACT,kBAAkB,EAElB,aAAa,EACb,kBAAkB,EAKlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACX,gBAAgB,EAEhB,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAO1B;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA0BnE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAiDjE;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,oBAAoB,GAC1B,IAAI,CA8DN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAWrE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACzC,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,eAAe,EAC3B,sBAAsB,EAAE,OAAO,GAC7B,GAAG,CAiJL;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,uBAAuB,EAAE,GAAG,GAC1B,eAAe,CA6DjB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,EACf,uBAAuB,EAAE,GAAG,GAC1B,aAAa,CA8Df;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC5C,IAAI,EAAE,SAAS,EACf,uBAAuB,EAAE,GAAG,GAC1B,aAAa,CA+Ff;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC3B,MAAM,EAAE,kBAAkB,EAAE,EAC5B,QAAQ,CAAC,EAAE,kBAAkB,GAC3B,kBAAkB,EAAE,CA+BtB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC5C,kBAAkB,EAAE,aAAa,GAC/B,aAAa,CAoBf;AAED;;GAEG;AACH,wBAAgB,OAAO,CACtB,IAAI,EAAE,SAAS,EACf,uBAAuB,EAAE,GAAG,GAC1B,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACzB,aAAa,EAAE,aAAa,EAC5B,uBAAuB,EAAE,GAAG,GAC1B,OAAO,CAaT"}
|
package/lib/ortc.js
CHANGED
|
@@ -164,35 +164,66 @@ function validateSctpCapabilities(caps) {
|
|
|
164
164
|
}
|
|
165
165
|
/**
|
|
166
166
|
* Generate extended RTP capabilities for sending and receiving.
|
|
167
|
+
*
|
|
168
|
+
* Resulting codecs keep order preferrred by local or remote capabilities
|
|
169
|
+
* depending on `preferLocalCodecsOrder`.
|
|
167
170
|
*/
|
|
168
|
-
function getExtendedRtpCapabilities(localCaps, remoteCaps) {
|
|
171
|
+
function getExtendedRtpCapabilities(localCaps, remoteCaps, preferLocalCodecsOrder) {
|
|
169
172
|
const extendedRtpCapabilities = {
|
|
170
173
|
codecs: [],
|
|
171
174
|
headerExtensions: [],
|
|
172
175
|
};
|
|
173
|
-
// Match media codecs and keep the order preferred by
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
// Match media codecs and keep the order preferred by local capabilities.
|
|
177
|
+
if (preferLocalCodecsOrder) {
|
|
178
|
+
for (const localCodec of localCaps.codecs ?? []) {
|
|
179
|
+
if (isRtxCodec(localCodec)) {
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
const matchingRemoteCodec = (remoteCaps.codecs ?? []).find((remoteCodec) => matchCodecs(remoteCodec, localCodec, { strict: true, modify: true }));
|
|
183
|
+
if (!matchingRemoteCodec) {
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
const extendedCodec = {
|
|
187
|
+
mimeType: localCodec.mimeType,
|
|
188
|
+
kind: localCodec.kind,
|
|
189
|
+
clockRate: localCodec.clockRate,
|
|
190
|
+
channels: localCodec.channels,
|
|
191
|
+
localPayloadType: localCodec.preferredPayloadType,
|
|
192
|
+
localRtxPayloadType: undefined,
|
|
193
|
+
remotePayloadType: matchingRemoteCodec.preferredPayloadType,
|
|
194
|
+
remoteRtxPayloadType: undefined,
|
|
195
|
+
localParameters: localCodec.parameters,
|
|
196
|
+
remoteParameters: matchingRemoteCodec.parameters,
|
|
197
|
+
rtcpFeedback: reduceRtcpFeedback(localCodec, matchingRemoteCodec),
|
|
198
|
+
};
|
|
199
|
+
extendedRtpCapabilities.codecs.push(extendedCodec);
|
|
177
200
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
201
|
+
}
|
|
202
|
+
// Match media codecs and keep the order preferred by remote capabilities.
|
|
203
|
+
else {
|
|
204
|
+
for (const remoteCodec of remoteCaps.codecs ?? []) {
|
|
205
|
+
if (isRtxCodec(remoteCodec)) {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const matchingLocalCodec = (localCaps.codecs ?? []).find((localCodec) => matchCodecs(localCodec, remoteCodec, { strict: true, modify: true }));
|
|
209
|
+
if (!matchingLocalCodec) {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
const extendedCodec = {
|
|
213
|
+
mimeType: matchingLocalCodec.mimeType,
|
|
214
|
+
kind: matchingLocalCodec.kind,
|
|
215
|
+
clockRate: matchingLocalCodec.clockRate,
|
|
216
|
+
channels: matchingLocalCodec.channels,
|
|
217
|
+
localPayloadType: matchingLocalCodec.preferredPayloadType,
|
|
218
|
+
localRtxPayloadType: undefined,
|
|
219
|
+
remotePayloadType: remoteCodec.preferredPayloadType,
|
|
220
|
+
remoteRtxPayloadType: undefined,
|
|
221
|
+
localParameters: matchingLocalCodec.parameters,
|
|
222
|
+
remoteParameters: remoteCodec.parameters,
|
|
223
|
+
rtcpFeedback: reduceRtcpFeedback(matchingLocalCodec, remoteCodec),
|
|
224
|
+
};
|
|
225
|
+
extendedRtpCapabilities.codecs.push(extendedCodec);
|
|
181
226
|
}
|
|
182
|
-
const extendedCodec = {
|
|
183
|
-
mimeType: matchingLocalCodec.mimeType,
|
|
184
|
-
kind: matchingLocalCodec.kind,
|
|
185
|
-
clockRate: matchingLocalCodec.clockRate,
|
|
186
|
-
channels: matchingLocalCodec.channels,
|
|
187
|
-
localPayloadType: matchingLocalCodec.preferredPayloadType,
|
|
188
|
-
localRtxPayloadType: undefined,
|
|
189
|
-
remotePayloadType: remoteCodec.preferredPayloadType,
|
|
190
|
-
remoteRtxPayloadType: undefined,
|
|
191
|
-
localParameters: matchingLocalCodec.parameters,
|
|
192
|
-
remoteParameters: remoteCodec.parameters,
|
|
193
|
-
rtcpFeedback: reduceRtcpFeedback(matchingLocalCodec, remoteCodec),
|
|
194
|
-
};
|
|
195
|
-
extendedRtpCapabilities.codecs.push(extendedCodec);
|
|
196
227
|
}
|
|
197
228
|
// Match RTX codecs.
|
|
198
229
|
for (const extendedCodec of extendedRtpCapabilities.codecs) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediasoup-client",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.11.0",
|
|
4
4
|
"description": "mediasoup client side TypeScript library",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@types/debug": "^4.1.12",
|
|
71
71
|
"@types/npm-events-package": "npm:@types/events@^3.0.3",
|
|
72
72
|
"awaitqueue": "^3.2.0",
|
|
73
|
-
"debug": "^4.4.
|
|
73
|
+
"debug": "^4.4.1",
|
|
74
74
|
"fake-mediastreamtrack": "^2.1.0",
|
|
75
75
|
"h264-profile-level-id": "^2.2.0",
|
|
76
76
|
"npm-events-package": "npm:events@^3.3.0",
|
|
@@ -81,21 +81,21 @@
|
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@eslint/js": "^9.26.0",
|
|
83
83
|
"@types/jest": "^29.5.14",
|
|
84
|
-
"@types/node": "^22.15.
|
|
84
|
+
"@types/node": "^22.15.18",
|
|
85
85
|
"@types/sdp-transform": "^2.4.9",
|
|
86
86
|
"@types/ua-parser-js": "^0.7.39",
|
|
87
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
88
|
-
"@typescript-eslint/parser": "^8.
|
|
87
|
+
"@typescript-eslint/eslint-plugin": "^8.32.1",
|
|
88
|
+
"@typescript-eslint/parser": "^8.32.1",
|
|
89
89
|
"eslint": "^9.26.0",
|
|
90
|
-
"eslint-config-prettier": "^10.1.
|
|
90
|
+
"eslint-config-prettier": "^10.1.5",
|
|
91
91
|
"eslint-plugin-jest": "^28.11.0",
|
|
92
92
|
"eslint-plugin-prettier": "^5.4.0",
|
|
93
|
-
"globals": "^16.
|
|
93
|
+
"globals": "^16.1.0",
|
|
94
94
|
"jest": "^29.7.0",
|
|
95
95
|
"open-cli": "^8.0.0",
|
|
96
96
|
"prettier": "^3.5.3",
|
|
97
97
|
"ts-jest": "^29.3.2",
|
|
98
98
|
"typescript": "^5.8.3",
|
|
99
|
-
"typescript-eslint": "^8.
|
|
99
|
+
"typescript-eslint": "^8.32.1"
|
|
100
100
|
}
|
|
101
101
|
}
|