livekit-client 1.9.6 → 1.9.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"publishUtils.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/publishUtils.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,eAAe,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAsB,WAAW,EAAgC,MAAM,kBAAkB,CAAC;AACjG,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACd,MAAM,kBAAkB,CAAC;AAG1B,gBAAgB;AAChB,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,CAAC,EAAE,qBAAqB,GAClC,eAAe,GAAG,eAAe,CASnC;AAGD,eAAO,MAAM,UAAU,eAA8B,CAAC;AAGtD,eAAO,MAAM,SAAS,eAAgC,CAAC;AAGvD,eAAO,MAAM,kBAAkB,eAAoC,CAAC;AAGpE,eAAO,MAAM,0BAA0B,eAAyC,CAAC;AAGjF,eAAO,MAAM,yBAAyB,eAA6C,CAAC;AAGpF,eAAO,MAAM,yCAAyC,eAAgB,WAAW,kBAkBhF,CAAC;AAwBF,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,OAAO,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,mBAAmB,GAC5B,wBAAwB,EAAE,CAgG5B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,mBAAmB,0CA4B1B;AAGD,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,UAAU,GACjB,aAAa,CAiCf;AAGD,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,WAAW,EAAE,CASf;AAGD,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,WAAW,GACpB,WAAW,EAAE,CAUf;AAgCD,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,6BAelE"}
1
+ {"version":3,"file":"publishUtils.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/publishUtils.ts"],"names":[],"mappings":"AAEA,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,eAAe,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAsB,WAAW,EAAgC,MAAM,kBAAkB,CAAC;AACjG,OAAO,KAAK,EACV,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACd,MAAM,kBAAkB,CAAC;AAG1B,gBAAgB;AAChB,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,CAAC,EAAE,qBAAqB,GAClC,eAAe,GAAG,eAAe,CASnC;AAGD,eAAO,MAAM,UAAU,eAA8B,CAAC;AAGtD,eAAO,MAAM,SAAS,eAAgC,CAAC;AAGvD,eAAO,MAAM,kBAAkB,eAAoC,CAAC;AAGpE,eAAO,MAAM,0BAA0B,eAAyC,CAAC;AAGjF,eAAO,MAAM,yBAAyB,eAA6C,CAAC;AAGpF,eAAO,MAAM,yCAAyC,eAAgB,WAAW,kBAkBhF,CAAC;AAwBF,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,OAAO,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,mBAAmB,GAC5B,wBAAwB,EAAE,CAgG5B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,gBAAgB,EAC5B,IAAI,EAAE,mBAAmB,0CA4B1B;AAGD,wBAAgB,4BAA4B,CAC1C,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,UAAU,GACjB,aAAa,CAiCf;AAGD,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,WAAW,EAAE,CASf;AAGD,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,WAAW,GACpB,WAAW,EAAE,CAUf;AA2DD,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,6BAelE"}
@@ -1 +1 @@
1
- {"version":3,"file":"browserParser.d.ts","sourceRoot":"","sources":["../../../src/utils/browserParser.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,UAAO,8BAa1D"}
1
+ {"version":3,"file":"browserParser.d.ts","sourceRoot":"","sources":["../../../src/utils/browserParser.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,UAAO,8BAU1D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livekit-client",
3
- "version": "1.9.6",
3
+ "version": "1.9.7",
4
4
  "description": "JavaScript/TypeScript client SDK for LiveKit",
5
5
  "main": "./dist/livekit-client.umd.js",
6
6
  "unpkg": "./dist/livekit-client.umd.js",
@@ -77,6 +77,7 @@
77
77
  "eslint-plugin-import": "2.27.5",
78
78
  "gh-pages": "5.0.0",
79
79
  "jest": "29.5.0",
80
+ "jest-environment-jsdom": "^29.5.0",
80
81
  "prettier": "^2.8.8",
81
82
  "rollup": "3.21.3",
82
83
  "rollup-plugin-delete": "^2.0.0",
@@ -10,7 +10,7 @@ import type {
10
10
  VideoCodec,
11
11
  VideoEncoding,
12
12
  } from '../track/options';
13
- import { isSVCCodec } from '../utils';
13
+ import { getReactNativeOs, isReactNative, isSVCCodec } from '../utils';
14
14
 
15
15
  /** @internal */
16
16
  export function mediaTrackToLocalTrack(
@@ -321,6 +321,33 @@ function encodingsFromPresets(
321
321
  }
322
322
  encodings.push(encoding);
323
323
  });
324
+
325
+ // RN ios simulcast requires all same framerates.
326
+ if (isReactNative() && getReactNativeOs() === 'ios') {
327
+ let topFramerate: number | undefined = undefined;
328
+ encodings.forEach((encoding) => {
329
+ if (!topFramerate) {
330
+ topFramerate = encoding.maxFramerate;
331
+ } else if (encoding.maxFramerate && encoding.maxFramerate > topFramerate) {
332
+ topFramerate = encoding.maxFramerate;
333
+ }
334
+ });
335
+
336
+ let notifyOnce = true;
337
+ encodings.forEach((encoding) => {
338
+ if (encoding.maxFramerate != topFramerate) {
339
+ if (notifyOnce) {
340
+ notifyOnce = false;
341
+ log.info(
342
+ `Simulcast on iOS React-Native requires all encodings to share the same framerate.`,
343
+ );
344
+ }
345
+ log.info(`Setting framerate of encoding \"${encoding.rid ?? ''}\" to ${topFramerate}`);
346
+ encoding.maxFramerate = topFramerate;
347
+ }
348
+ });
349
+ }
350
+
324
351
  return encodings;
325
352
  }
326
353
 
@@ -16,10 +16,7 @@ let browserDetails: BrowserDetails | undefined;
16
16
  * @internal
17
17
  */
18
18
  export function getBrowser(userAgent?: string, force = true) {
19
- if (
20
- userAgent === undefined &&
21
- (typeof document !== 'undefined' || typeof navigator === 'undefined')
22
- ) {
19
+ if (typeof userAgent === 'undefined' && typeof navigator === 'undefined') {
23
20
  return;
24
21
  }
25
22
  const ua = (userAgent ?? navigator.userAgent).toLowerCase();