livekit-client 1.9.0 → 1.9.1
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/README.md +6 -5
- package/dist/livekit-client.esm.mjs +96 -17
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +1 -0
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
- package/dist/src/room/track/options.d.ts +7 -1
- package/dist/src/room/track/options.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +3 -0
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/ts4.2/src/room/Room.d.ts +1 -0
- package/dist/ts4.2/src/room/track/options.d.ts +7 -0
- package/dist/ts4.2/src/room/utils.d.ts +3 -0
- package/package.json +1 -1
- package/src/room/PCTransport.ts +40 -1
- package/src/room/Room.ts +12 -0
- package/src/room/participant/LocalParticipant.ts +35 -4
- package/src/room/participant/publishUtils.ts +13 -5
- package/src/room/track/options.ts +14 -1
- package/src/room/utils.ts +18 -8
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PCTransport.d.ts","sourceRoot":"","sources":["../../../src/room/PCTransport.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;
|
1
|
+
{"version":3,"file":"PCTransport.d.ts","sourceRoot":"","sources":["../../../src/room/PCTransport.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAOlC,gBAAgB;AAChB,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,QAAQ;;;CAGX,CAAC;AAEX,gBAAgB;AAChB,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;IACnD,EAAE,EAAE,iBAAiB,CAAC;IAEtB,iBAAiB,EAAE,mBAAmB,EAAE,CAAM;IAE9C,aAAa,EAAE,OAAO,CAAS;IAE/B,WAAW,EAAE,OAAO,CAAS;IAE7B,aAAa,EAAE,gBAAgB,EAAE,CAAM;IAEvC,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhC,cAAc,EAAE,MAAM,EAAE,CAAM;IAE9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;gBAEzC,MAAM,CAAC,EAAE,gBAAgB;IAKrC,IAAI,cAAc,IAAI,OAAO,CAE5B;IAEK,eAAe,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,oBAAoB,CAAC,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxE,SAAS;iDAA2B,KAAK,KAAK,IAAI;;MAW1C;IAEF,kBAAkB,CAAC,OAAO,CAAC,EAAE,eAAe;IAwF5C,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAY9D,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAQ9D,KAAK;YAMS,yBAAyB;CA4BxC"}
|
package/dist/src/room/Room.d.ts
CHANGED
@@ -55,6 +55,7 @@ declare class Room extends Room_base {
|
|
55
55
|
/** future holding client initiated connection attempt */
|
56
56
|
private connectFuture?;
|
57
57
|
private disconnectLock;
|
58
|
+
private cachedParticipantSids;
|
58
59
|
/**
|
59
60
|
* Creates a new Room, the primary construct for a LiveKit session.
|
60
61
|
* @param options
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EAEV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,qBAAqB,EAQtB,MAAM,yBAAyB,CAAC;AASjC,OAAO,SAAS,MAAM,aAAa,CAAC;AAWpC,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,KAAK,WAAW,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAEhE,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAYrE,oBAAY,eAAe;IACzB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,YAAY,iBAAiB;CAC9B;AAED,oEAAoE;AACpE,eAAO,MAAM,SAAS,wBAAkB,CAAC;mCAUK,aAAa,kBAAkB,CAAC;AAR9E;;;;;;;GAOG;AACH,cAAM,IAAK,SAAQ,SAA4D;IAC7E,KAAK,EAAE,eAAe,CAAgC;IAEtD,wCAAwC;IACxC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE7C;;;OAGG;IACH,cAAc,EAAE,WAAW,EAAE,CAAM;IAEnC,gBAAgB;IAChB,MAAM,EAAG,SAAS,CAAC;IAEnB,8BAA8B;IAC9B,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,sBAAsB;IACtB,OAAO,EAAE,mBAAmB,CAAC;IAE7B,OAAO,CAAC,QAAQ,CAAC,CAAY;IAE7B,OAAO,CAAC,aAAa,CAAsB;IAE3C,8BAA8B;IAC9B,OAAO,CAAC,WAAW,CAAC,CAA6B;IAEjD,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC,gEAAgE;IAChE,OAAO,CAAC,eAAe,CAAC,CAAkB;IAE1C,yDAAyD;IACzD,OAAO,CAAC,aAAa,CAAC,CAAe;IAErC,OAAO,CAAC,cAAc,CAAQ;IAE9B;;;OAGG;gBACS,OAAO,CAAC,EAAE,WAAW;
|
1
|
+
{"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAc,eAAe,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAEL,eAAe,EAGf,sBAAsB,EAEvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAI1C,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EAEzB,mBAAmB,EACnB,mBAAmB,
|
1
|
+
{"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"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"}
|
@@ -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,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,WAAW,EAGZ,MAAM,kBAAkB,CAAC;
|
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,EACL,gBAAgB,EAEhB,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,WAAW,EAGZ,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,kBAiBhF,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;AA4BD,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,6BAelE"}
|
@@ -122,6 +122,11 @@ export interface ScreenShareCaptureOptions {
|
|
122
122
|
surfaceSwitching?: 'include' | 'exclude';
|
123
123
|
/** specifies whether the browser should include the system audio among the possible audio sources offered to the user */
|
124
124
|
systemAudio?: 'include' | 'exclude';
|
125
|
+
/**
|
126
|
+
* Experimental option to control whether the audio playing in a tab will continue to be played out of a user's
|
127
|
+
* local speakers when the tab is captured.
|
128
|
+
*/
|
129
|
+
suppressLocalAudioPlayback?: boolean;
|
125
130
|
}
|
126
131
|
export interface AudioCaptureOptions {
|
127
132
|
/**
|
@@ -186,11 +191,12 @@ export declare class VideoPreset {
|
|
186
191
|
export interface AudioPreset {
|
187
192
|
maxBitrate: number;
|
188
193
|
}
|
189
|
-
declare const codecs: readonly ["vp8", "h264", "av1"];
|
194
|
+
declare const codecs: readonly ["vp8", "h264", "vp9", "av1"];
|
190
195
|
declare const backupCodecs: readonly ["vp8", "h264"];
|
191
196
|
export type VideoCodec = (typeof codecs)[number];
|
192
197
|
export type BackupVideoCodec = (typeof backupCodecs)[number];
|
193
198
|
export declare function isBackupCodec(codec: string): codec is BackupVideoCodec;
|
199
|
+
export declare function isCodecEqual(c1: string | undefined, c2: string | undefined): boolean;
|
194
200
|
/**
|
195
201
|
* scalability modes for svc, only supprot l3t3 now.
|
196
202
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/room/track/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,GAAG,KAAK,CAAC;IAE3E;;OAEG;IACH,mBAAmB,CAAC,EAAE,aAAa,CAAC;IAEpC;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAE1C;;;OAGG;IACH,0BAA0B,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAEhD;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAEtC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;CACvC;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;IAEvD,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAEtC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC;IAE7B,qIAAqI;IACrI,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,gGAAgG;IAChG,kBAAkB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAE3C,2IAA2I;IAC3I,gBAAgB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAEzC,yHAAyH;IACzH,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/room/track/options.ts"],"names":[],"mappings":"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"}
|
package/dist/src/room/utils.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ClientInfo } from '../proto/livekit_models';
|
2
2
|
import type LocalAudioTrack from './track/LocalAudioTrack';
|
3
3
|
import type RemoteAudioTrack from './track/RemoteAudioTrack';
|
4
|
+
export declare const ddExtensionURI = "https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";
|
4
5
|
export declare function unpackStreamId(packed: string): string[];
|
5
6
|
export declare function sleep(duration: number): Promise<void>;
|
6
7
|
/** @internal */
|
@@ -10,6 +11,8 @@ export declare function supportsAddTrack(): boolean;
|
|
10
11
|
export declare function supportsAdaptiveStream(): boolean;
|
11
12
|
export declare function supportsDynacast(): boolean;
|
12
13
|
export declare function supportsAV1(): boolean;
|
14
|
+
export declare function supportsVP9(): boolean;
|
15
|
+
export declare function isSVCCodec(codec?: string): boolean;
|
13
16
|
export declare function supportsSetSinkId(elm?: HTMLMediaElement): boolean;
|
14
17
|
export declare function supportsSetCodecPreferences(transceiver: RTCRtpTransceiver): boolean;
|
15
18
|
export declare function isBrowserSupported(): boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,gBAAgB,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,gBAAgB,MAAM,0BAA0B,CAAC;AAK7D,eAAO,MAAM,cAAc,4FACgE,CAAC;AAE5F,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,YAElC;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,YAE/B;AAED,wBAAgB,sBAAsB,YAErC;AAED,wBAAgB,gBAAgB,YAE/B;AAED,wBAAgB,WAAW,IAAI,OAAO,CAYrC;AAED,wBAAgB,WAAW,IAAI,OAAO,CAYrC;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAQjE;AAWD,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAiBnF;AAED,wBAAgB,kBAAkB,YAEjC;AAED,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAGlC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAGlC;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED,wBAAgB,aAAa,IAAI,OAAO,CAGvC;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,GAAG,WAErC;AAaD,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAWrD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAa5C;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAW9D;AAeD,eAAO,MAAM,iBAAiB,sBAG7B,CAAC;AAGF,eAAO,MAAM,uBAAuB,4BAOnC,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,YAAY,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,uBAAuB,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACrE;AAED,wBAAgB,aAAa,IAAI,UAAU,CAW1C;AAID,wBAAgB,wBAAwB,qBAKvC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,GAAE,MAAW,EAClB,MAAM,GAAE,MAAW,EACnB,OAAO,GAAE,OAAe,EACxB,YAAY,GAAE,OAAe,oBAwB9B;AAID,wBAAgB,wBAAwB,qBAevC;AAED,qBAAa,MAAM,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAE3B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;gBAGrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,EAC1E,SAAS,CAAC,EAAE,MAAM,IAAI;CAWzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,GAAG,gBAAgB,EACzC,OAAO,CAAC,EAAE,oBAAoB;;;;EA+C/B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAgB;IAEhC,OAAO,CAAC,MAAM,CAAS;;IAOvB,QAAQ;IAIR,IAAI,kBAGoB,IAAI;CAgB7B"}
|
@@ -55,6 +55,7 @@ declare class Room extends Room_base {
|
|
55
55
|
/** future holding client initiated connection attempt */
|
56
56
|
private connectFuture?;
|
57
57
|
private disconnectLock;
|
58
|
+
private cachedParticipantSids;
|
58
59
|
/**
|
59
60
|
* Creates a new Room, the primary construct for a LiveKit session.
|
60
61
|
* @param options
|
@@ -122,6 +122,11 @@ export interface ScreenShareCaptureOptions {
|
|
122
122
|
surfaceSwitching?: 'include' | 'exclude';
|
123
123
|
/** specifies whether the browser should include the system audio among the possible audio sources offered to the user */
|
124
124
|
systemAudio?: 'include' | 'exclude';
|
125
|
+
/**
|
126
|
+
* Experimental option to control whether the audio playing in a tab will continue to be played out of a user's
|
127
|
+
* local speakers when the tab is captured.
|
128
|
+
*/
|
129
|
+
suppressLocalAudioPlayback?: boolean;
|
125
130
|
}
|
126
131
|
export interface AudioCaptureOptions {
|
127
132
|
/**
|
@@ -189,6 +194,7 @@ export interface AudioPreset {
|
|
189
194
|
declare const codecs: readonly [
|
190
195
|
"vp8",
|
191
196
|
"h264",
|
197
|
+
"vp9",
|
192
198
|
"av1"
|
193
199
|
];
|
194
200
|
declare const backupCodecs: readonly [
|
@@ -198,6 +204,7 @@ declare const backupCodecs: readonly [
|
|
198
204
|
export type VideoCodec = (typeof codecs)[number];
|
199
205
|
export type BackupVideoCodec = (typeof backupCodecs)[number];
|
200
206
|
export declare function isBackupCodec(codec: string): codec is BackupVideoCodec;
|
207
|
+
export declare function isCodecEqual(c1: string | undefined, c2: string | undefined): boolean;
|
201
208
|
/**
|
202
209
|
* scalability modes for svc, only supprot l3t3 now.
|
203
210
|
*/
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ClientInfo } from '../proto/livekit_models';
|
2
2
|
import type LocalAudioTrack from './track/LocalAudioTrack';
|
3
3
|
import type RemoteAudioTrack from './track/RemoteAudioTrack';
|
4
|
+
export declare const ddExtensionURI = "https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";
|
4
5
|
export declare function unpackStreamId(packed: string): string[];
|
5
6
|
export declare function sleep(duration: number): Promise<void>;
|
6
7
|
/** @internal */
|
@@ -10,6 +11,8 @@ export declare function supportsAddTrack(): boolean;
|
|
10
11
|
export declare function supportsAdaptiveStream(): boolean;
|
11
12
|
export declare function supportsDynacast(): boolean;
|
12
13
|
export declare function supportsAV1(): boolean;
|
14
|
+
export declare function supportsVP9(): boolean;
|
15
|
+
export declare function isSVCCodec(codec?: string): boolean;
|
13
16
|
export declare function supportsSetSinkId(elm?: HTMLMediaElement): boolean;
|
14
17
|
export declare function supportsSetCodecPreferences(transceiver: RTCRtpTransceiver): boolean;
|
15
18
|
export declare function isBrowserSupported(): boolean;
|
package/package.json
CHANGED
package/src/room/PCTransport.ts
CHANGED
@@ -3,6 +3,7 @@ import { MediaDescription, parse, write } from 'sdp-transform';
|
|
3
3
|
import { debounce } from 'ts-debounce';
|
4
4
|
import log from '../logger';
|
5
5
|
import { NegotiationError } from './errors';
|
6
|
+
import { ddExtensionURI, isSVCCodec } from './utils';
|
6
7
|
|
7
8
|
/** @internal */
|
8
9
|
interface TrackBitrateInfo {
|
@@ -122,6 +123,7 @@ export default class PCTransport extends EventEmitter {
|
|
122
123
|
if (media.type === 'audio') {
|
123
124
|
ensureAudioNackAndStereo(media, [], []);
|
124
125
|
} else if (media.type === 'video') {
|
126
|
+
ensureVideoDDExtensionForSVC(media);
|
125
127
|
// mung sdp for codec bitrate setting that can't apply by sendEncoding
|
126
128
|
this.trackBitrates.some((trackbr): boolean => {
|
127
129
|
if (!media.msid || !media.msid.includes(trackbr.sid)) {
|
@@ -142,6 +144,9 @@ export default class PCTransport extends EventEmitter {
|
|
142
144
|
if (
|
143
145
|
!media.fmtp.some((fmtp): boolean => {
|
144
146
|
if (fmtp.payload === codecPayload) {
|
147
|
+
if (!fmtp.config.includes('x-google-start-bitrate')) {
|
148
|
+
fmtp.config += `;x-google-start-bitrate=${trackbr.maxbr * 0.7}`;
|
149
|
+
}
|
145
150
|
if (!fmtp.config.includes('x-google-max-bitrate')) {
|
146
151
|
fmtp.config += `;x-google-max-bitrate=${trackbr.maxbr}`;
|
147
152
|
}
|
@@ -152,7 +157,9 @@ export default class PCTransport extends EventEmitter {
|
|
152
157
|
) {
|
153
158
|
media.fmtp.push({
|
154
159
|
payload: codecPayload,
|
155
|
-
config: `x-google-
|
160
|
+
config: `x-google-start-bitrate=${trackbr.maxbr * 0.7};x-google-max-bitrate=${
|
161
|
+
trackbr.maxbr
|
162
|
+
}`,
|
156
163
|
});
|
157
164
|
}
|
158
165
|
}
|
@@ -274,6 +281,38 @@ function ensureAudioNackAndStereo(
|
|
274
281
|
}
|
275
282
|
}
|
276
283
|
|
284
|
+
function ensureVideoDDExtensionForSVC(
|
285
|
+
media: {
|
286
|
+
type: string;
|
287
|
+
port: number;
|
288
|
+
protocol: string;
|
289
|
+
payloads?: string | undefined;
|
290
|
+
} & MediaDescription,
|
291
|
+
) {
|
292
|
+
const codec = media.rtp.at(0)?.codec?.toLowerCase();
|
293
|
+
if (!isSVCCodec(codec)) {
|
294
|
+
return;
|
295
|
+
}
|
296
|
+
|
297
|
+
let maxID = 0;
|
298
|
+
const ddFound = media.ext?.some((ext): boolean => {
|
299
|
+
if (ext.uri === ddExtensionURI) {
|
300
|
+
return true;
|
301
|
+
}
|
302
|
+
if (ext.value > maxID) {
|
303
|
+
maxID = ext.value;
|
304
|
+
}
|
305
|
+
return false;
|
306
|
+
});
|
307
|
+
|
308
|
+
if (!ddFound) {
|
309
|
+
media.ext?.push({
|
310
|
+
value: maxID + 1,
|
311
|
+
uri: ddExtensionURI,
|
312
|
+
});
|
313
|
+
}
|
314
|
+
}
|
315
|
+
|
277
316
|
function extractStereoAndNackAudioFromOffer(offer: RTCSessionDescriptionInit): {
|
278
317
|
stereoMids: string[];
|
279
318
|
nackMids: string[];
|
package/src/room/Room.ts
CHANGED
@@ -124,6 +124,8 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
124
124
|
|
125
125
|
private disconnectLock: Mutex;
|
126
126
|
|
127
|
+
private cachedParticipantSids: Array<string>;
|
128
|
+
|
127
129
|
/**
|
128
130
|
* Creates a new Room, the primary construct for a LiveKit session.
|
129
131
|
* @param options
|
@@ -132,6 +134,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
132
134
|
super();
|
133
135
|
this.setMaxListeners(100);
|
134
136
|
this.participants = new Map();
|
137
|
+
this.cachedParticipantSids = [];
|
135
138
|
this.identityToSid = new Map();
|
136
139
|
this.options = { ...roomOptionDefaults, ...options };
|
137
140
|
|
@@ -215,11 +218,19 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
215
218
|
if (this.setAndEmitConnectionState(ConnectionState.Reconnecting)) {
|
216
219
|
this.emit(RoomEvent.Reconnecting);
|
217
220
|
}
|
221
|
+
this.cachedParticipantSids = Array.from(this.participants.keys());
|
218
222
|
})
|
219
223
|
.on(EngineEvent.Resumed, () => {
|
220
224
|
this.setAndEmitConnectionState(ConnectionState.Connected);
|
221
225
|
this.emit(RoomEvent.Reconnected);
|
222
226
|
this.updateSubscriptions();
|
227
|
+
|
228
|
+
// once reconnected, figure out if any participants connected during reconnect and emit events for it
|
229
|
+
const diffParticipants = Array.from(this.participants.values()).filter(
|
230
|
+
(p) => !this.cachedParticipantSids.includes(p.sid),
|
231
|
+
);
|
232
|
+
diffParticipants.forEach((p) => this.emit(RoomEvent.ParticipantConnected, p));
|
233
|
+
this.cachedParticipantSids = [];
|
223
234
|
})
|
224
235
|
.on(EngineEvent.SignalResumed, () => {
|
225
236
|
if (this.state === ConnectionState.Reconnecting) {
|
@@ -833,6 +844,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
833
844
|
region: joinResponse.serverRegion,
|
834
845
|
});
|
835
846
|
|
847
|
+
this.cachedParticipantSids = [];
|
836
848
|
this.applyJoinResponse(joinResponse);
|
837
849
|
|
838
850
|
try {
|
@@ -27,10 +27,11 @@ import {
|
|
27
27
|
TrackPublishOptions,
|
28
28
|
VideoCaptureOptions,
|
29
29
|
isBackupCodec,
|
30
|
+
isCodecEqual,
|
30
31
|
} from '../track/options';
|
31
32
|
import { constraintsForOptions, mergeDefaultOptions } from '../track/utils';
|
32
33
|
import type { DataPublishOptions } from '../types';
|
33
|
-
import { Future, isFireFox, isSafari, isWeb, supportsAV1 } from '../utils';
|
34
|
+
import { Future, isFireFox, isSVCCodec, isSafari, isWeb, supportsAV1, supportsVP9 } from '../utils';
|
34
35
|
import Participant from './Participant';
|
35
36
|
import { ParticipantTrackPermission, trackPermissionToProto } from './ParticipantTrackPermission';
|
36
37
|
import RemoteParticipant from './RemoteParticipant';
|
@@ -570,10 +571,13 @@ export default class LocalParticipant extends Participant {
|
|
570
571
|
opts.simulcast = false;
|
571
572
|
}
|
572
573
|
|
573
|
-
// require full AV1 SVC support prior to using it
|
574
|
+
// require full AV1/VP9 SVC support prior to using it
|
574
575
|
if (opts.videoCodec === 'av1' && !supportsAV1()) {
|
575
576
|
opts.videoCodec = undefined;
|
576
577
|
}
|
578
|
+
if (opts.videoCodec === 'vp9' && !supportsVP9()) {
|
579
|
+
opts.videoCodec = undefined;
|
580
|
+
}
|
577
581
|
|
578
582
|
// handle track actions
|
579
583
|
track.on(TrackEvent.Muted, this.onTrackMuted);
|
@@ -614,7 +618,7 @@ export default class LocalParticipant extends Participant {
|
|
614
618
|
req.height = dims.height;
|
615
619
|
// for svc codecs, disable simulcast and use vp8 for backup codec
|
616
620
|
if (track instanceof LocalVideoTrack) {
|
617
|
-
if (opts
|
621
|
+
if (isSVCCodec(opts.videoCodec)) {
|
618
622
|
// set scalabilityMode to 'L3T3' by default
|
619
623
|
opts.scalabilityMode = opts.scalabilityMode ?? 'L3T3';
|
620
624
|
}
|
@@ -660,6 +664,33 @@ export default class LocalParticipant extends Participant {
|
|
660
664
|
}
|
661
665
|
|
662
666
|
const ti = await this.engine.addTrack(req);
|
667
|
+
let primaryCodecSupported = false;
|
668
|
+
let backupCodecSupported = false;
|
669
|
+
ti.codecs.forEach((c) => {
|
670
|
+
if (isCodecEqual(c.mimeType, opts.videoCodec)) {
|
671
|
+
primaryCodecSupported = true;
|
672
|
+
} else if (opts.backupCodec && isCodecEqual(c.mimeType, opts.backupCodec.codec)) {
|
673
|
+
backupCodecSupported = true;
|
674
|
+
}
|
675
|
+
});
|
676
|
+
|
677
|
+
if (req.simulcastCodecs.length > 0) {
|
678
|
+
if (!primaryCodecSupported && !backupCodecSupported) {
|
679
|
+
throw Error('cannot publish track, codec not supported by server');
|
680
|
+
}
|
681
|
+
|
682
|
+
if (!primaryCodecSupported && opts.backupCodec) {
|
683
|
+
const backupCodec = opts.backupCodec;
|
684
|
+
opts = { ...opts };
|
685
|
+
log.debug(
|
686
|
+
`primary codec ${opts.videoCodec} not supported, fallback to ${backupCodec.codec}`,
|
687
|
+
);
|
688
|
+
opts.videoCodec = backupCodec.codec;
|
689
|
+
opts.videoEncoding = backupCodec.encoding;
|
690
|
+
encodings = simEncodings;
|
691
|
+
}
|
692
|
+
}
|
693
|
+
|
663
694
|
const publication = new LocalTrackPublication(track.kind, ti, track);
|
664
695
|
// save options for when it needs to be republished again
|
665
696
|
publication.options = opts;
|
@@ -673,7 +704,7 @@ export default class LocalParticipant extends Participant {
|
|
673
704
|
// store RTPSender
|
674
705
|
track.sender = await this.engine.createSender(track, opts, encodings);
|
675
706
|
|
676
|
-
if (track.codec
|
707
|
+
if (track.codec && isSVCCodec(track.codec) && encodings && encodings[0]?.maxBitrate) {
|
677
708
|
this.engine.publisher.setTrackCodecBitrate(
|
678
709
|
req.cid,
|
679
710
|
track.codec,
|
@@ -13,6 +13,7 @@ import {
|
|
13
13
|
VideoPresets,
|
14
14
|
VideoPresets43,
|
15
15
|
} from '../track/options';
|
16
|
+
import { isSVCCodec } from '../utils';
|
16
17
|
|
17
18
|
/** @internal */
|
18
19
|
export function mediaTrackToLocalTrack(
|
@@ -121,7 +122,7 @@ export function computeVideoEncodings(
|
|
121
122
|
videoEncoding.maxFramerate,
|
122
123
|
);
|
123
124
|
|
124
|
-
if (scalabilityMode && videoCodec
|
125
|
+
if (scalabilityMode && isSVCCodec(videoCodec)) {
|
125
126
|
log.debug(`using svc with scalabilityMode ${scalabilityMode}`);
|
126
127
|
|
127
128
|
const encodings: RTCRtpEncodingParameters[] = [];
|
@@ -248,8 +249,13 @@ export function determineAppropriateEncoding(
|
|
248
249
|
if (codec) {
|
249
250
|
switch (codec) {
|
250
251
|
case 'av1':
|
252
|
+
encoding = { ...encoding };
|
251
253
|
encoding.maxBitrate = encoding.maxBitrate * 0.7;
|
252
254
|
break;
|
255
|
+
case 'vp9':
|
256
|
+
encoding = { ...encoding };
|
257
|
+
encoding.maxBitrate = encoding.maxBitrate * 0.85;
|
258
|
+
break;
|
253
259
|
default:
|
254
260
|
break;
|
255
261
|
}
|
@@ -303,13 +309,15 @@ function encodingsFromPresets(
|
|
303
309
|
}
|
304
310
|
const size = Math.min(width, height);
|
305
311
|
const rid = videoRids[idx];
|
306
|
-
|
312
|
+
const encoding: RTCRtpEncodingParameters = {
|
307
313
|
rid,
|
308
314
|
scaleResolutionDownBy: Math.max(1, size / Math.min(preset.width, preset.height)),
|
309
315
|
maxBitrate: preset.encoding.maxBitrate,
|
310
|
-
|
311
|
-
|
312
|
-
|
316
|
+
};
|
317
|
+
if (preset.encoding.maxFramerate) {
|
318
|
+
encoding.maxFramerate = preset.encoding.maxFramerate;
|
319
|
+
}
|
320
|
+
encodings.push(encoding);
|
313
321
|
});
|
314
322
|
return encodings;
|
315
323
|
}
|
@@ -145,6 +145,12 @@ export interface ScreenShareCaptureOptions {
|
|
145
145
|
|
146
146
|
/** specifies whether the browser should include the system audio among the possible audio sources offered to the user */
|
147
147
|
systemAudio?: 'include' | 'exclude';
|
148
|
+
|
149
|
+
/**
|
150
|
+
* Experimental option to control whether the audio playing in a tab will continue to be played out of a user's
|
151
|
+
* local speakers when the tab is captured.
|
152
|
+
*/
|
153
|
+
suppressLocalAudioPlayback?: boolean;
|
148
154
|
}
|
149
155
|
|
150
156
|
export interface AudioCaptureOptions {
|
@@ -241,7 +247,7 @@ export interface AudioPreset {
|
|
241
247
|
maxBitrate: number;
|
242
248
|
}
|
243
249
|
|
244
|
-
const codecs = ['vp8', 'h264', 'av1'] as const;
|
250
|
+
const codecs = ['vp8', 'h264', 'vp9', 'av1'] as const;
|
245
251
|
const backupCodecs = ['vp8', 'h264'] as const;
|
246
252
|
|
247
253
|
export type VideoCodec = (typeof codecs)[number];
|
@@ -252,6 +258,13 @@ export function isBackupCodec(codec: string): codec is BackupVideoCodec {
|
|
252
258
|
return !!backupCodecs.find((backup) => backup === codec);
|
253
259
|
}
|
254
260
|
|
261
|
+
export function isCodecEqual(c1: string | undefined, c2: string | undefined): boolean {
|
262
|
+
return (
|
263
|
+
c1?.toLowerCase().replace(/audio\/|video\//y, '') ===
|
264
|
+
c2?.toLowerCase().replace(/audio\/|video\//y, '')
|
265
|
+
);
|
266
|
+
}
|
267
|
+
|
255
268
|
/**
|
256
269
|
* scalability modes for svc, only supprot l3t3 now.
|
257
270
|
*/
|
package/src/room/utils.ts
CHANGED
@@ -7,6 +7,8 @@ import { getNewAudioContext } from './track/utils';
|
|
7
7
|
import type { LiveKitReactNativeInfo } from './types';
|
8
8
|
|
9
9
|
const separator = '|';
|
10
|
+
export const ddExtensionURI =
|
11
|
+
'https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension';
|
10
12
|
|
11
13
|
export function unpackStreamId(packed: string): string[] {
|
12
14
|
const parts = packed.split(separator);
|
@@ -41,7 +43,6 @@ export function supportsDynacast() {
|
|
41
43
|
export function supportsAV1(): boolean {
|
42
44
|
const capabilities = RTCRtpReceiver.getCapabilities('video');
|
43
45
|
let hasAV1 = false;
|
44
|
-
let hasDDExt = false;
|
45
46
|
if (capabilities) {
|
46
47
|
for (const codec of capabilities.codecs) {
|
47
48
|
if (codec.mimeType === 'video/AV1') {
|
@@ -49,17 +50,26 @@ export function supportsAV1(): boolean {
|
|
49
50
|
break;
|
50
51
|
}
|
51
52
|
}
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
}
|
54
|
+
return hasAV1;
|
55
|
+
}
|
56
|
+
|
57
|
+
export function supportsVP9(): boolean {
|
58
|
+
const capabilities = RTCRtpReceiver.getCapabilities('video');
|
59
|
+
let hasVP9 = false;
|
60
|
+
if (capabilities) {
|
61
|
+
for (const codec of capabilities.codecs) {
|
62
|
+
if (codec.mimeType === 'video/VP9') {
|
63
|
+
hasVP9 = true;
|
58
64
|
break;
|
59
65
|
}
|
60
66
|
}
|
61
67
|
}
|
62
|
-
return
|
68
|
+
return hasVP9;
|
69
|
+
}
|
70
|
+
|
71
|
+
export function isSVCCodec(codec?: string): boolean {
|
72
|
+
return codec === 'av1' || codec === 'vp9';
|
63
73
|
}
|
64
74
|
|
65
75
|
export function supportsSetSinkId(elm?: HTMLMediaElement): boolean {
|