mediasoup-client 3.15.4 → 3.15.6
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 +7 -7
- package/lib/Device.d.ts.map +1 -1
- package/lib/Device.js +59 -59
- package/lib/Transport.js +3 -3
- package/lib/handlers/Chrome111.d.ts.map +1 -1
- package/lib/handlers/Chrome111.js +2 -0
- package/lib/handlers/Chrome74.d.ts.map +1 -1
- package/lib/handlers/Chrome74.js +2 -0
- package/lib/handlers/FakeHandler.d.ts.map +1 -1
- package/lib/handlers/FakeHandler.js +2 -0
- package/lib/handlers/Firefox120.d.ts.map +1 -1
- package/lib/handlers/Firefox120.js +2 -0
- package/lib/handlers/ReactNative106.d.ts.map +1 -1
- package/lib/handlers/ReactNative106.js +2 -0
- package/lib/handlers/Safari12.d.ts.map +1 -1
- package/lib/handlers/Safari12.js +2 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/ortc.d.ts +3 -3
- package/lib/ortc.d.ts.map +1 -1
- package/lib/ortc.js +21 -21
- package/lib/test/fakeParameters.d.ts.map +1 -1
- package/lib/test/fakeParameters.js +5 -2
- package/lib/test/uaTestCases.d.ts.map +1 -1
- package/lib/test/uaTestCases.js +20 -5
- package/package.json +5 -5
package/lib/Device.d.ts
CHANGED
|
@@ -16,17 +16,17 @@ export type DeviceOptions = {
|
|
|
16
16
|
handlerFactory?: HandlerFactory;
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
|
-
* `detectDevice()`.
|
|
19
|
+
* Sync mediasoup-client Handler detection.
|
|
21
20
|
*/
|
|
22
|
-
export declare function
|
|
21
|
+
export declare function detectDevice(userAgent?: string): BuiltinHandlerName | undefined;
|
|
23
22
|
/**
|
|
24
|
-
*
|
|
23
|
+
* Async mediasoup-client Handler detection.
|
|
25
24
|
*
|
|
26
|
-
* @
|
|
27
|
-
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* - Currently it runs same logic than `detectDevice()`.
|
|
27
|
+
* - In the future this function could give better results than `detectDevice()`.
|
|
28
28
|
*/
|
|
29
|
-
export declare function
|
|
29
|
+
export declare function detectDeviceAsync(userAgent?: string): Promise<BuiltinHandlerName | undefined>;
|
|
30
30
|
export type DeviceObserver = EnhancedEventEmitter<DeviceObserverEvents>;
|
|
31
31
|
export type DeviceObserverEvents = {
|
|
32
32
|
newtransport: [Transport];
|
package/lib/Device.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../src/Device.ts"],"names":[],"mappings":"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"}
|
package/lib/Device.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Device = void 0;
|
|
4
|
-
exports.detectDeviceAsync = detectDeviceAsync;
|
|
5
4
|
exports.detectDevice = detectDevice;
|
|
6
|
-
|
|
5
|
+
exports.detectDeviceAsync = detectDeviceAsync;
|
|
6
|
+
const browser_dtector_1 = require("browser-dtector");
|
|
7
7
|
const Logger_1 = require("./Logger");
|
|
8
8
|
const enhancedEvents_1 = require("./enhancedEvents");
|
|
9
9
|
const errors_1 = require("./errors");
|
|
@@ -17,30 +17,30 @@ const Safari12_1 = require("./handlers/Safari12");
|
|
|
17
17
|
const ReactNative106_1 = require("./handlers/ReactNative106");
|
|
18
18
|
const logger = new Logger_1.Logger('Device');
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
* `detectDevice()`.
|
|
20
|
+
* Sync mediasoup-client Handler detection.
|
|
22
21
|
*/
|
|
23
|
-
|
|
24
|
-
logger.debug('
|
|
22
|
+
function detectDevice(userAgent) {
|
|
23
|
+
logger.debug('detectDevice() [userAgent:%s]', userAgent);
|
|
25
24
|
if (!userAgent && typeof navigator === 'object') {
|
|
26
25
|
userAgent = navigator.userAgent;
|
|
27
26
|
}
|
|
28
|
-
const
|
|
29
|
-
return detectDeviceImpl(
|
|
27
|
+
const browserDetector = new browser_dtector_1.default(userAgent);
|
|
28
|
+
return detectDeviceImpl(browserDetector);
|
|
30
29
|
}
|
|
31
30
|
/**
|
|
32
|
-
*
|
|
31
|
+
* Async mediasoup-client Handler detection.
|
|
33
32
|
*
|
|
34
|
-
* @
|
|
35
|
-
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* - Currently it runs same logic than `detectDevice()`.
|
|
35
|
+
* - In the future this function could give better results than `detectDevice()`.
|
|
36
36
|
*/
|
|
37
|
-
function
|
|
38
|
-
logger.debug('
|
|
37
|
+
async function detectDeviceAsync(userAgent) {
|
|
38
|
+
logger.debug('detectDeviceAsync() [userAgent:%s]', userAgent);
|
|
39
39
|
if (!userAgent && typeof navigator === 'object') {
|
|
40
40
|
userAgent = navigator.userAgent;
|
|
41
41
|
}
|
|
42
|
-
const
|
|
43
|
-
return detectDeviceImpl(
|
|
42
|
+
const browserDetector = new browser_dtector_1.default(userAgent);
|
|
43
|
+
return detectDeviceImpl(browserDetector);
|
|
44
44
|
}
|
|
45
45
|
class Device {
|
|
46
46
|
// RTC handler factory.
|
|
@@ -184,11 +184,11 @@ class Device {
|
|
|
184
184
|
// Clone given router RTP capabilities to not modify input data.
|
|
185
185
|
const clonedRouterRtpCapabilities = utils.clone(routerRtpCapabilities);
|
|
186
186
|
// This may throw.
|
|
187
|
-
ortc.
|
|
187
|
+
ortc.validateAndNormalizeRtpCapabilities(clonedRouterRtpCapabilities);
|
|
188
188
|
const { getNativeRtpCapabilities, getNativeSctpCapabilities } = this._handlerFactory;
|
|
189
189
|
const clonedNativeRtpCapabilities = utils.clone(await getNativeRtpCapabilities());
|
|
190
190
|
// This may throw.
|
|
191
|
-
ortc.
|
|
191
|
+
ortc.validateAndNormalizeRtpCapabilities(clonedNativeRtpCapabilities);
|
|
192
192
|
logger.debug('load() | got native RTP capabilities:%o', clonedNativeRtpCapabilities);
|
|
193
193
|
this._getSendExtendedRtpCapabilities = (nativeRtpCapabilities) => {
|
|
194
194
|
return utils.clone(ortc.getExtendedRtpCapabilities(nativeRtpCapabilities, clonedRouterRtpCapabilities, preferLocalCodecsOrder));
|
|
@@ -198,7 +198,7 @@ class Device {
|
|
|
198
198
|
// Generate our receiving RTP capabilities for receiving media.
|
|
199
199
|
this._recvRtpCapabilities = ortc.getRecvRtpCapabilities(recvExtendedRtpCapabilities);
|
|
200
200
|
// This may throw.
|
|
201
|
-
ortc.
|
|
201
|
+
ortc.validateAndNormalizeRtpCapabilities(this._recvRtpCapabilities);
|
|
202
202
|
logger.debug('load() | got receiving RTP capabilities:%o', this._recvRtpCapabilities);
|
|
203
203
|
// Check whether we can produce audio/video.
|
|
204
204
|
this._canProduceByKind.audio = ortc.canSend('audio', this._recvRtpCapabilities);
|
|
@@ -313,7 +313,7 @@ class Device {
|
|
|
313
313
|
}
|
|
314
314
|
}
|
|
315
315
|
exports.Device = Device;
|
|
316
|
-
function detectDeviceImpl(
|
|
316
|
+
function detectDeviceImpl(browserDetector) {
|
|
317
317
|
// React-Native.
|
|
318
318
|
if (typeof navigator === 'object' && navigator.product === 'ReactNative') {
|
|
319
319
|
logger.debug('detectDeviceImpl() | React-Native detected');
|
|
@@ -326,64 +326,64 @@ function detectDeviceImpl(uaParserResult) {
|
|
|
326
326
|
}
|
|
327
327
|
// Browser.
|
|
328
328
|
else {
|
|
329
|
-
|
|
330
|
-
const
|
|
331
|
-
const
|
|
332
|
-
const
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
const
|
|
339
|
-
const
|
|
340
|
-
const
|
|
341
|
-
const
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
329
|
+
const parsed = browserDetector.parseUserAgent();
|
|
330
|
+
const browserMajorVersionMatch = /^\d+/.exec(parsed?.shortVersion ?? '0');
|
|
331
|
+
const browserMajorVersion = parseInt(browserMajorVersionMatch?.[0] ?? '0', 10);
|
|
332
|
+
const isIOS = parsed.platform === browser_dtector_1.KnownPlatforms.iphone ||
|
|
333
|
+
parsed.platform === browser_dtector_1.KnownPlatforms.ipad ||
|
|
334
|
+
(parsed.platform === browser_dtector_1.KnownPlatforms.mac &&
|
|
335
|
+
(parsed.isMobile ||
|
|
336
|
+
parsed.isTablet ||
|
|
337
|
+
(typeof navigator === 'object' && navigator?.maxTouchPoints >= 2)));
|
|
338
|
+
const isChrome = parsed.isChrome;
|
|
339
|
+
const isFirefox = parsed.isFireFox;
|
|
340
|
+
const isSafari = parsed.isSafari;
|
|
341
|
+
const isEdge = parsed.isEdge;
|
|
342
|
+
const isElectron = parsed.isDesktop && parsed.name === browser_dtector_1.KnownBrowsers.electron;
|
|
343
|
+
const isWebkit = parsed.isWebkit;
|
|
344
|
+
// For logging purposes.
|
|
345
|
+
const result = {
|
|
346
|
+
browserMajorVersion,
|
|
347
|
+
isIOS,
|
|
348
|
+
isChrome,
|
|
349
|
+
isFirefox,
|
|
350
|
+
isSafari,
|
|
351
|
+
isElectron,
|
|
352
|
+
isWebkit,
|
|
353
|
+
};
|
|
354
|
+
logger.debug('detectDeviceImpl() | detected browser [userAgent:%s, parsed:%o, result:%o]', parsed.userAgent, parsed, result);
|
|
353
355
|
// Chrome, Chromium, and Edge.
|
|
354
|
-
if ((isChrome || isEdge) && !isIOS &&
|
|
356
|
+
if ((isChrome || isEdge) && !isIOS && browserMajorVersion >= 111) {
|
|
355
357
|
return 'Chrome111';
|
|
356
358
|
}
|
|
357
|
-
else if ((isChrome && !isIOS &&
|
|
358
|
-
(isEdge && !isIOS &&
|
|
359
|
+
else if ((isChrome && !isIOS && browserMajorVersion >= 74) ||
|
|
360
|
+
(isEdge && !isIOS && browserMajorVersion >= 88)) {
|
|
359
361
|
return 'Chrome74';
|
|
360
362
|
}
|
|
363
|
+
// Electron.
|
|
364
|
+
else if (isElectron) {
|
|
365
|
+
return 'Chrome111';
|
|
366
|
+
}
|
|
361
367
|
// Firefox.
|
|
362
|
-
else if (isFirefox && !isIOS &&
|
|
368
|
+
else if (isFirefox && !isIOS && browserMajorVersion >= 120) {
|
|
363
369
|
return 'Firefox120';
|
|
364
370
|
}
|
|
365
|
-
//
|
|
366
|
-
else if (isFirefox && isIOS && osVersion >= 14.3) {
|
|
367
|
-
return 'Safari12';
|
|
368
|
-
}
|
|
369
|
-
// Safari with Unified-Plan support enabled.
|
|
371
|
+
// Safari.
|
|
370
372
|
else if (isSafari &&
|
|
371
|
-
|
|
373
|
+
browserMajorVersion >= 12 &&
|
|
372
374
|
typeof RTCRtpTransceiver !== 'undefined' &&
|
|
373
375
|
RTCRtpTransceiver.prototype.hasOwnProperty('currentDirection')) {
|
|
374
376
|
return 'Safari12';
|
|
375
377
|
}
|
|
376
378
|
// Best effort for WebKit based browsers in iOS.
|
|
377
|
-
else if (
|
|
378
|
-
isIOS &&
|
|
379
|
+
else if (isIOS &&
|
|
379
380
|
typeof RTCRtpTransceiver !== 'undefined' &&
|
|
380
381
|
RTCRtpTransceiver.prototype.hasOwnProperty('currentDirection')) {
|
|
381
382
|
return 'Safari12';
|
|
382
383
|
}
|
|
383
384
|
// Best effort for Chromium based browsers.
|
|
384
|
-
else if (
|
|
385
|
-
|
|
386
|
-
const match = uaParserResult.ua.match(/(?:(?:Chrome|Chromium))[ /](\w+)/i);
|
|
385
|
+
else if (isWebkit) {
|
|
386
|
+
const match = browserDetector.userAgent?.match(/(?:(?:Chrome|Chromium))[ /](\w+)/i);
|
|
387
387
|
if (match) {
|
|
388
388
|
const version = Number(match[1]);
|
|
389
389
|
if (version >= 111) {
|
|
@@ -399,7 +399,7 @@ function detectDeviceImpl(uaParserResult) {
|
|
|
399
399
|
}
|
|
400
400
|
// Unsupported browser.
|
|
401
401
|
else {
|
|
402
|
-
logger.warn('detectDeviceImpl() | browser not supported [
|
|
402
|
+
logger.warn('detectDeviceImpl() | browser not supported [userAgent:%s, parsed:%o, result:%o]', parsed.userAgent, parsed, result);
|
|
403
403
|
return undefined;
|
|
404
404
|
}
|
|
405
405
|
}
|
package/lib/Transport.js
CHANGED
|
@@ -328,7 +328,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
328
328
|
});
|
|
329
329
|
try {
|
|
330
330
|
// This will fill rtpParameters's missing fields with default values.
|
|
331
|
-
ortc.
|
|
331
|
+
ortc.validateAndNormalizeRtpParameters(rtpParameters);
|
|
332
332
|
const { id } = await new Promise((resolve, reject) => {
|
|
333
333
|
this.safeEmit('produce', {
|
|
334
334
|
kind: track.kind,
|
|
@@ -463,7 +463,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
463
463
|
protocol,
|
|
464
464
|
});
|
|
465
465
|
// This will fill sctpStreamParameters's missing fields with default values.
|
|
466
|
-
ortc.
|
|
466
|
+
ortc.validateAndNormalizeSctpStreamParameters(sctpStreamParameters);
|
|
467
467
|
const { id } = await new Promise((resolve, reject) => {
|
|
468
468
|
this.safeEmit('producedata', {
|
|
469
469
|
sctpStreamParameters,
|
|
@@ -515,7 +515,7 @@ class Transport extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
515
515
|
// Clone given SCTP stream parameters to not modify input data.
|
|
516
516
|
const clonedSctpStreamParameters = utils.clone(sctpStreamParameters);
|
|
517
517
|
// This may throw.
|
|
518
|
-
ortc.
|
|
518
|
+
ortc.validateAndNormalizeSctpStreamParameters(clonedSctpStreamParameters);
|
|
519
519
|
// Enqueue command.
|
|
520
520
|
return this._awaitQueue.push(async () => {
|
|
521
521
|
const { dataChannel } = await this._handler.receiveDataChannel({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAU5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAQ5B,qBAAa,SACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,+BAA+B,CAEV;IAG7B,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,IAAI,cAAc;IAuDtC,OAAO,CAAC,MAAM,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"Chrome111.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome111.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,8 @@ class Chrome111 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
91
91
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
92
92
|
sdpObject: localSdpObject,
|
|
93
93
|
});
|
|
94
|
+
// Need to validate and normalize native RTP capabilities.
|
|
95
|
+
ortc.validateAndNormalizeRtpCapabilities(nativeRtpCapabilities);
|
|
94
96
|
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
95
97
|
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
96
98
|
return nativeRtpCapabilities;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAIzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAW5D,OAAO,KAAK,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAEhB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAQ5B,qBAAa,QACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,+BAA+B,CAEV;IAG7B,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,IAAI,cAAc;IAmDtC,OAAO,CAAC,MAAM,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"Chrome74.d.ts","sourceRoot":"","sources":["../../src/handlers/Chrome74.ts"],"names":[],"mappings":"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"}
|
package/lib/handlers/Chrome74.js
CHANGED
|
@@ -87,6 +87,8 @@ class Chrome74 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
87
87
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
88
88
|
sdpObject: localSdpObject,
|
|
89
89
|
});
|
|
90
|
+
// Need to validate and normalize native RTP capabilities.
|
|
91
|
+
ortc.validateAndNormalizeRtpCapabilities(nativeRtpCapabilities);
|
|
90
92
|
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
91
93
|
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
92
94
|
return nativeRtpCapabilities;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EACX,aAAa,EACb,cAAc,EAEd,iBAAiB,EACjB,eAAe,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACX,eAAe,EAIf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAa5B,MAAM,MAAM,cAAc,GAAG;IAC5B,6BAA6B,EAAE,MAAM,eAAe,CAAC;IACrD,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;IACvD,2BAA2B,EAAE,MAAM,cAAc,CAAC;CAClD,CAAC;AAEF,qBAAa,WACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,eAAe,CAAiB;IAExC,OAAO,CAAC,+BAA+B,CAEV;IAE7B,OAAO,CAAC,MAAM,CAA2C;IAEzD,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,OAAO,CAAmD;IAElE,OAAO,CAAC,iBAAiB,CAAK;IAE9B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,GAAG,cAAc;IAkBpE,OAAO,CAAC,MAAM,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"FakeHandler.d.ts","sourceRoot":"","sources":["../../src/handlers/FakeHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,6 +46,8 @@ class FakeHandler extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
46
46
|
}
|
|
47
47
|
static getLocalRtpCapabilities(fakeParameters) {
|
|
48
48
|
const nativeRtpCapabilities = fakeParameters.generateNativeRtpCapabilities();
|
|
49
|
+
// Need to validate and normalize native RTP capabilities.
|
|
50
|
+
ortc.validateAndNormalizeRtpCapabilities(nativeRtpCapabilities);
|
|
49
51
|
return nativeRtpCapabilities;
|
|
50
52
|
}
|
|
51
53
|
constructor({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAU5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAQ5B,qBAAa,UACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,+BAA+B,CAEV;IAE7B,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,IAAI,cAAc;IAoFtC,OAAO,CAAC,MAAM,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"Firefox120.d.ts","sourceRoot":"","sources":["../../src/handlers/Firefox120.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,8 @@ class Firefox120 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
112
112
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
113
113
|
sdpObject: localSdpObject,
|
|
114
114
|
});
|
|
115
|
+
// Need to validate and normalize native RTP capabilities.
|
|
116
|
+
ortc.validateAndNormalizeRtpCapabilities(nativeRtpCapabilities);
|
|
115
117
|
return nativeRtpCapabilities;
|
|
116
118
|
}
|
|
117
119
|
constructor({ direction, iceParameters, iceCandidates, dtlsParameters, sctpParameters, iceServers, iceTransportPolicy, additionalSettings, getSendExtendedRtpCapabilities, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKzD,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AAQ5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAW5B,qBAAa,cACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,+BAA+B,CAEV;IAG7B,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,IAAI,cAAc;IAoDtC,OAAO,CAAC,MAAM,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"ReactNative106.d.ts","sourceRoot":"","sources":["../../src/handlers/ReactNative106.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,6 +87,8 @@ class ReactNative106 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
87
87
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
88
88
|
sdpObject: localSdpObject,
|
|
89
89
|
});
|
|
90
|
+
// Need to validate and normalize native RTP capabilities.
|
|
91
|
+
ortc.validateAndNormalizeRtpCapabilities(nativeRtpCapabilities);
|
|
90
92
|
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
91
93
|
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
92
94
|
return nativeRtpCapabilities;
|
|
@@ -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;AAO5D,OAAO,KAAK,EACX,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,oBAAoB,CAAC;AAW5B,qBAAa,QACZ,SAAQ,oBAAoB,CAAC,aAAa,CAC1C,YAAW,gBAAgB;IAG3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,UAAU,CAAY;IAE9B,OAAO,CAAC,+BAA+B,CAEV;IAG7B,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,IAAI,cAAc;IAmDtC,OAAO,CAAC,MAAM,CAAC,uBAAuB;
|
|
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
|
@@ -87,6 +87,8 @@ class Safari12 extends enhancedEvents_1.EnhancedEventEmitter {
|
|
|
87
87
|
const nativeRtpCapabilities = sdpCommonUtils.extractRtpCapabilities({
|
|
88
88
|
sdpObject: localSdpObject,
|
|
89
89
|
});
|
|
90
|
+
// Need to validate and normalize native RTP capabilities.
|
|
91
|
+
ortc.validateAndNormalizeRtpCapabilities(nativeRtpCapabilities);
|
|
90
92
|
// libwebrtc supports NACK for OPUS but doesn't announce it.
|
|
91
93
|
ortcUtils.addNackSupportForOpus(nativeRtpCapabilities);
|
|
92
94
|
return nativeRtpCapabilities;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
package/lib/ortc.d.ts
CHANGED
|
@@ -5,19 +5,19 @@ import type { SctpCapabilities, SctpStreamParameters } from './SctpParameters';
|
|
|
5
5
|
* fields with default values.
|
|
6
6
|
* It throws if invalid.
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function validateAndNormalizeRtpCapabilities(caps: RtpCapabilities): void;
|
|
9
9
|
/**
|
|
10
10
|
* Validates RtpParameters. It may modify given data by adding missing
|
|
11
11
|
* fields with default values.
|
|
12
12
|
* It throws if invalid.
|
|
13
13
|
*/
|
|
14
|
-
export declare function
|
|
14
|
+
export declare function validateAndNormalizeRtpParameters(params: RtpParameters): void;
|
|
15
15
|
/**
|
|
16
16
|
* Validates SctpStreamParameters. It may modify given data by adding missing
|
|
17
17
|
* fields with default values.
|
|
18
18
|
* It throws if invalid.
|
|
19
19
|
*/
|
|
20
|
-
export declare function
|
|
20
|
+
export declare function validateAndNormalizeSctpStreamParameters(params: SctpStreamParameters): void;
|
|
21
21
|
/**
|
|
22
22
|
* Validates SctpCapabilities.
|
|
23
23
|
* It throws if invalid.
|
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,uBAAuB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACX,gBAAgB,EAEhB,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAO1B;;;;GAIG;AACH,wBAAgB,
|
|
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,uBAAuB,EAGvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EACX,gBAAgB,EAEhB,oBAAoB,EACpB,MAAM,kBAAkB,CAAC;AAO1B;;;;GAIG;AACH,wBAAgB,mCAAmC,CAClD,IAAI,EAAE,eAAe,GACnB,IAAI,CA0BN;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAiD7E;AAED;;;;GAIG;AACH,wBAAgB,wCAAwC,CACvD,MAAM,EAAE,oBAAoB,GAC1B,IAAI,CA8DN;AAED;;;GAGG;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,uBAAuB,CAiJzB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,uBAAuB,EAAE,uBAAuB,GAC9C,eAAe,CA6DjB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,SAAS,EACf,uBAAuB,EAAE,uBAAuB,GAC9C,aAAa,CA8Df;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC5C,IAAI,EAAE,SAAS,EACf,uBAAuB,EAAE,uBAAuB,GAC9C,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,eAAe,EAAE,eAAe,GAC9B,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACzB,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,GAC9B,OAAO,CAaT"}
|
package/lib/ortc.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
3
|
+
exports.validateAndNormalizeRtpCapabilities = validateAndNormalizeRtpCapabilities;
|
|
4
|
+
exports.validateAndNormalizeRtpParameters = validateAndNormalizeRtpParameters;
|
|
5
|
+
exports.validateAndNormalizeSctpStreamParameters = validateAndNormalizeSctpStreamParameters;
|
|
6
6
|
exports.validateSctpCapabilities = validateSctpCapabilities;
|
|
7
7
|
exports.getExtendedRtpCapabilities = getExtendedRtpCapabilities;
|
|
8
8
|
exports.getRecvRtpCapabilities = getRecvRtpCapabilities;
|
|
@@ -22,7 +22,7 @@ const RTP_PROBATOR_CODEC_PAYLOAD_TYPE = 127;
|
|
|
22
22
|
* fields with default values.
|
|
23
23
|
* It throws if invalid.
|
|
24
24
|
*/
|
|
25
|
-
function
|
|
25
|
+
function validateAndNormalizeRtpCapabilities(caps) {
|
|
26
26
|
if (typeof caps !== 'object') {
|
|
27
27
|
throw new TypeError('caps is not an object');
|
|
28
28
|
}
|
|
@@ -34,7 +34,7 @@ function validateRtpCapabilities(caps) {
|
|
|
34
34
|
caps.codecs = [];
|
|
35
35
|
}
|
|
36
36
|
for (const codec of caps.codecs) {
|
|
37
|
-
|
|
37
|
+
validateAndNormalizeRtpCodecCapability(codec);
|
|
38
38
|
}
|
|
39
39
|
// headerExtensions is optional. If unset, fill with an empty array.
|
|
40
40
|
if (caps.headerExtensions && !Array.isArray(caps.headerExtensions)) {
|
|
@@ -44,7 +44,7 @@ function validateRtpCapabilities(caps) {
|
|
|
44
44
|
caps.headerExtensions = [];
|
|
45
45
|
}
|
|
46
46
|
for (const ext of caps.headerExtensions) {
|
|
47
|
-
|
|
47
|
+
validateAndNormalizeRtpHeaderExtension(ext);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
@@ -52,7 +52,7 @@ function validateRtpCapabilities(caps) {
|
|
|
52
52
|
* fields with default values.
|
|
53
53
|
* It throws if invalid.
|
|
54
54
|
*/
|
|
55
|
-
function
|
|
55
|
+
function validateAndNormalizeRtpParameters(params) {
|
|
56
56
|
if (typeof params !== 'object') {
|
|
57
57
|
throw new TypeError('params is not an object');
|
|
58
58
|
}
|
|
@@ -65,7 +65,7 @@ function validateRtpParameters(params) {
|
|
|
65
65
|
throw new TypeError('missing params.codecs');
|
|
66
66
|
}
|
|
67
67
|
for (const codec of params.codecs) {
|
|
68
|
-
|
|
68
|
+
validateAndNormalizeRtpCodecParameters(codec);
|
|
69
69
|
}
|
|
70
70
|
// headerExtensions is optional. If unset, fill with an empty array.
|
|
71
71
|
if (params.headerExtensions && !Array.isArray(params.headerExtensions)) {
|
|
@@ -85,7 +85,7 @@ function validateRtpParameters(params) {
|
|
|
85
85
|
params.encodings = [];
|
|
86
86
|
}
|
|
87
87
|
for (const encoding of params.encodings) {
|
|
88
|
-
|
|
88
|
+
validateAndNormalizeRtpEncodingParameters(encoding);
|
|
89
89
|
}
|
|
90
90
|
// rtcp is optional. If unset, fill with an empty object.
|
|
91
91
|
if (params.rtcp && typeof params.rtcp !== 'object') {
|
|
@@ -94,14 +94,14 @@ function validateRtpParameters(params) {
|
|
|
94
94
|
else if (!params.rtcp) {
|
|
95
95
|
params.rtcp = {};
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
validateAndNormalizeRtcpParameters(params.rtcp);
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* Validates SctpStreamParameters. It may modify given data by adding missing
|
|
101
101
|
* fields with default values.
|
|
102
102
|
* It throws if invalid.
|
|
103
103
|
*/
|
|
104
|
-
function
|
|
104
|
+
function validateAndNormalizeSctpStreamParameters(params) {
|
|
105
105
|
if (typeof params !== 'object') {
|
|
106
106
|
throw new TypeError('params is not an object');
|
|
107
107
|
}
|
|
@@ -498,7 +498,7 @@ function generateProbatorRtpParameters(videoRtpParameters) {
|
|
|
498
498
|
// Clone given reference video RTP parameters.
|
|
499
499
|
videoRtpParameters = utils.clone(videoRtpParameters);
|
|
500
500
|
// This may throw.
|
|
501
|
-
|
|
501
|
+
validateAndNormalizeRtpParameters(videoRtpParameters);
|
|
502
502
|
const rtpParameters = {
|
|
503
503
|
mid: RTP_PROBATOR_MID,
|
|
504
504
|
codecs: [],
|
|
@@ -523,7 +523,7 @@ function canSend(kind, rtpCapabilities) {
|
|
|
523
523
|
*/
|
|
524
524
|
function canReceive(rtpParameters, rtpCapabilities) {
|
|
525
525
|
// This may throw.
|
|
526
|
-
|
|
526
|
+
validateAndNormalizeRtpParameters(rtpParameters);
|
|
527
527
|
if (rtpParameters.codecs.length === 0) {
|
|
528
528
|
return false;
|
|
529
529
|
}
|
|
@@ -535,7 +535,7 @@ function canReceive(rtpParameters, rtpCapabilities) {
|
|
|
535
535
|
* fields with default values.
|
|
536
536
|
* It throws if invalid.
|
|
537
537
|
*/
|
|
538
|
-
function
|
|
538
|
+
function validateAndNormalizeRtpCodecCapability(codec) {
|
|
539
539
|
const MimeTypeRegex = new RegExp('^(audio|video)/(.+)', 'i');
|
|
540
540
|
if (typeof codec !== 'object') {
|
|
541
541
|
throw new TypeError('codec is not an object');
|
|
@@ -592,7 +592,7 @@ function validateRtpCodecCapability(codec) {
|
|
|
592
592
|
codec.rtcpFeedback = [];
|
|
593
593
|
}
|
|
594
594
|
for (const fb of codec.rtcpFeedback) {
|
|
595
|
-
|
|
595
|
+
validateAndNormalizeRtcpFeedback(fb);
|
|
596
596
|
}
|
|
597
597
|
}
|
|
598
598
|
/**
|
|
@@ -600,7 +600,7 @@ function validateRtpCodecCapability(codec) {
|
|
|
600
600
|
* fields with default values.
|
|
601
601
|
* It throws if invalid.
|
|
602
602
|
*/
|
|
603
|
-
function
|
|
603
|
+
function validateAndNormalizeRtcpFeedback(fb) {
|
|
604
604
|
if (typeof fb !== 'object') {
|
|
605
605
|
throw new TypeError('fb is not an object');
|
|
606
606
|
}
|
|
@@ -618,7 +618,7 @@ function validateRtcpFeedback(fb) {
|
|
|
618
618
|
* fields with default values.
|
|
619
619
|
* It throws if invalid.
|
|
620
620
|
*/
|
|
621
|
-
function
|
|
621
|
+
function validateAndNormalizeRtpHeaderExtension(ext) {
|
|
622
622
|
if (typeof ext !== 'object') {
|
|
623
623
|
throw new TypeError('ext is not an object');
|
|
624
624
|
}
|
|
@@ -654,7 +654,7 @@ function validateRtpHeaderExtension(ext) {
|
|
|
654
654
|
* fields with default values.
|
|
655
655
|
* It throws if invalid.
|
|
656
656
|
*/
|
|
657
|
-
function
|
|
657
|
+
function validateAndNormalizeRtpCodecParameters(codec) {
|
|
658
658
|
const MimeTypeRegex = new RegExp('^(audio|video)/(.+)', 'i');
|
|
659
659
|
if (typeof codec !== 'object') {
|
|
660
660
|
throw new TypeError('codec is not an object');
|
|
@@ -710,7 +710,7 @@ function validateRtpCodecParameters(codec) {
|
|
|
710
710
|
codec.rtcpFeedback = [];
|
|
711
711
|
}
|
|
712
712
|
for (const fb of codec.rtcpFeedback) {
|
|
713
|
-
|
|
713
|
+
validateAndNormalizeRtcpFeedback(fb);
|
|
714
714
|
}
|
|
715
715
|
}
|
|
716
716
|
/**
|
|
@@ -757,7 +757,7 @@ function validateRtpHeaderExtensionParameters(ext) {
|
|
|
757
757
|
* fields with default values.
|
|
758
758
|
* It throws if invalid.
|
|
759
759
|
*/
|
|
760
|
-
function
|
|
760
|
+
function validateAndNormalizeRtpEncodingParameters(encoding) {
|
|
761
761
|
if (typeof encoding !== 'object') {
|
|
762
762
|
throw new TypeError('encoding is not an object');
|
|
763
763
|
}
|
|
@@ -794,7 +794,7 @@ function validateRtpEncodingParameters(encoding) {
|
|
|
794
794
|
* fields with default values.
|
|
795
795
|
* It throws if invalid.
|
|
796
796
|
*/
|
|
797
|
-
function
|
|
797
|
+
function validateAndNormalizeRtcpParameters(rtcp) {
|
|
798
798
|
if (typeof rtcp !== 'object') {
|
|
799
799
|
throw new TypeError('rtcp is not an object');
|
|
800
800
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fakeParameters.d.ts","sourceRoot":"","sources":["../../src/test/fakeParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,UAAU,CAAC;AAO5C,wBAAgB,6BAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,CAiLrF;
|
|
1
|
+
{"version":3,"file":"fakeParameters.d.ts","sourceRoot":"","sources":["../../src/test/fakeParameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,UAAU,CAAC;AAO5C,wBAAgB,6BAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,CAiLrF;AAKD,wBAAgB,6BAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,eAAe,CAkLrF;AAED,wBAAgB,8BAA8B,IAAI,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAIvF;AAED,wBAAgB,2BAA2B,IAAI,eAAe,CAAC,KAAK,CAAC,cAAc,CAWlF;AAED,wBAAgB,iCAAiC,IAAI,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAyD1F;AAED,wBAAgB,gCAAgC,IAAI;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAIjE;AAED,wBAAgB,gCAAgC,CAAC,EAChD,EAAE,EACF,aAAa,GACb,GAAE;IACF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,eAAe,CAAC,KAAK,CAAC,eAAe,CA6O7C;AAED,wBAAgB,oCAAoC,IAAI;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAIrE;AAED,wBAAgB,oCAAoC,CAAC,EACpD,EAAE,GACF,GAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAWlE"}
|
|
@@ -191,8 +191,11 @@ function generateRouterRtpCapabilities() {
|
|
|
191
191
|
],
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
|
+
// NOTE: We don't freeze these RTP capabilities because we do need to normalize
|
|
195
|
+
// them as we do in real browser handlers (this is an object supposed to be
|
|
196
|
+
// generated internally so it's ok).
|
|
194
197
|
function generateNativeRtpCapabilities() {
|
|
195
|
-
return
|
|
198
|
+
return {
|
|
196
199
|
codecs: [
|
|
197
200
|
{
|
|
198
201
|
mimeType: 'audio/opus',
|
|
@@ -368,7 +371,7 @@ function generateNativeRtpCapabilities() {
|
|
|
368
371
|
preferredId: 10,
|
|
369
372
|
},
|
|
370
373
|
],
|
|
371
|
-
}
|
|
374
|
+
};
|
|
372
375
|
}
|
|
373
376
|
function generateNativeSctpCapabilities() {
|
|
374
377
|
return utils.deepFreeze({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uaTestCases.d.ts","sourceRoot":"","sources":["../../src/test/uaTestCases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,KAAK,UAAU,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"uaTestCases.d.ts","sourceRoot":"","sources":["../../src/test/uaTestCases.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,KAAK,UAAU,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,UAAU,EAkFnC,CAAC"}
|
package/lib/test/uaTestCases.js
CHANGED
|
@@ -12,6 +12,11 @@ exports.uaTestCases = [
|
|
|
12
12
|
ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
|
|
13
13
|
expect: 'Chrome111',
|
|
14
14
|
},
|
|
15
|
+
{
|
|
16
|
+
desc: 'iPhone iOS 16',
|
|
17
|
+
ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_6_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.4 Mobile/15E148 Safari/604.1',
|
|
18
|
+
expect: 'Safari12',
|
|
19
|
+
},
|
|
15
20
|
{
|
|
16
21
|
desc: 'Generic Android Chrome 112',
|
|
17
22
|
ua: 'Mozilla/5.0 (Linux; Android 13; M2012K11AG) AppleWebKit/537.36 (KHTML, like Gecko) Soul/4.0 Chrome/112.0.5615.135 Mobile Safari/537.36',
|
|
@@ -38,9 +43,9 @@ exports.uaTestCases = [
|
|
|
38
43
|
expect: 'Chrome74',
|
|
39
44
|
},
|
|
40
45
|
{
|
|
41
|
-
desc: 'Firefox (iOS)
|
|
42
|
-
ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS
|
|
43
|
-
expect:
|
|
46
|
+
desc: 'Firefox (iOS)',
|
|
47
|
+
ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 18_6_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/142.0.1 Mobile/15E148 Safari/605.1.15',
|
|
48
|
+
expect: 'Safari12',
|
|
44
49
|
},
|
|
45
50
|
{
|
|
46
51
|
desc: 'In-app WKWebView (iOS) (TikTok)',
|
|
@@ -52,20 +57,30 @@ exports.uaTestCases = [
|
|
|
52
57
|
ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.37(0x1800252f) NetType/WIFI Language/zh_CN',
|
|
53
58
|
expect: 'Safari12',
|
|
54
59
|
},
|
|
60
|
+
{
|
|
61
|
+
desc: 'Custom Webview in iPad',
|
|
62
|
+
ua: 'Mozilla/5.0 (iPad; CPU iPadOS 16_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Mobile/15E148 Safari/604.1 MyApp/1.0',
|
|
63
|
+
expect: 'Safari12',
|
|
64
|
+
},
|
|
55
65
|
{
|
|
56
66
|
desc: 'Chrome Mobile (iOS)',
|
|
57
67
|
ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/114.0.5735.124 Mobile/15E148 Safari/604.1',
|
|
58
68
|
expect: 'Safari12',
|
|
59
69
|
},
|
|
60
70
|
{
|
|
61
|
-
desc: 'Fake Foo Invalid Browser',
|
|
71
|
+
desc: 'Fake Foo Invalid Browser - Unsupported',
|
|
62
72
|
ua: 'Fake/5.0 (Foo; Bar Lalala OS_19.5) Foo/22.2',
|
|
63
73
|
expect: undefined,
|
|
64
74
|
},
|
|
65
75
|
{
|
|
66
76
|
// Zoom App Marketplace browser.
|
|
67
|
-
desc: 'Zoom App Marketplace browser',
|
|
77
|
+
desc: 'Zoom App Marketplace browser - Unsupported',
|
|
68
78
|
ua: 'Mozilla/5.0 ZoomWebKit/537.36 (KHTML, like Gecko) ZoomApps/1.0',
|
|
69
79
|
expect: undefined,
|
|
70
80
|
},
|
|
81
|
+
{
|
|
82
|
+
desc: 'Electron in Windows',
|
|
83
|
+
ua: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Electron/37.4.0 Chrome/138.0.7204.243 Safari/537.36',
|
|
84
|
+
expect: 'Chrome111',
|
|
85
|
+
},
|
|
71
86
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mediasoup-client",
|
|
3
|
-
"version": "3.15.
|
|
3
|
+
"version": "3.15.6",
|
|
4
4
|
"description": "mediasoup client side TypeScript library",
|
|
5
5
|
"contributors": [
|
|
6
6
|
"Iñaki Baz Castillo <ibc@aliax.net> (https://inakibaz.me)",
|
|
@@ -74,13 +74,13 @@
|
|
|
74
74
|
"@types/debug": "^4.1.12",
|
|
75
75
|
"@types/events-alias": "npm:@types/events@^3.0.3",
|
|
76
76
|
"awaitqueue": "^3.2.4",
|
|
77
|
+
"browser-dtector": "^4.1.0",
|
|
77
78
|
"debug": "^4.4.1",
|
|
78
79
|
"events-alias": "npm:events@^3.3.0",
|
|
79
80
|
"fake-mediastreamtrack": "^2.1.4",
|
|
80
81
|
"h264-profile-level-id": "^2.2.3",
|
|
81
82
|
"sdp-transform": "^2.15.0",
|
|
82
|
-
"supports-color": "^10.2.0"
|
|
83
|
-
"ua-parser-js": "^2.0.4"
|
|
83
|
+
"supports-color": "^10.2.0"
|
|
84
84
|
},
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@eslint/js": "^9.34.0",
|
|
@@ -93,11 +93,11 @@
|
|
|
93
93
|
"eslint-plugin-jest": "^29.0.1",
|
|
94
94
|
"eslint-plugin-prettier": "^5.5.4",
|
|
95
95
|
"globals": "^16.3.0",
|
|
96
|
-
"jest": "^30.1.
|
|
96
|
+
"jest": "^30.1.3",
|
|
97
97
|
"open-cli": "^8.0.0",
|
|
98
98
|
"prettier": "^3.6.2",
|
|
99
99
|
"ts-jest": "^29.4.1",
|
|
100
100
|
"typescript": "^5.9.2",
|
|
101
|
-
"typescript-eslint": "^8.
|
|
101
|
+
"typescript-eslint": "^8.42.0"
|
|
102
102
|
}
|
|
103
103
|
}
|