livekit-client 1.9.0 → 1.9.1
Sign up to get free protection for your applications and to get access to all the features.
- 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":"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"}
|
@@ -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 {
|