@livekit/rtc-node 0.13.21 → 0.13.23
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/dist/async_queue.cjs +80 -0
- package/dist/async_queue.cjs.map +1 -0
- package/dist/async_queue.d.cts +30 -0
- package/dist/async_queue.d.ts +30 -0
- package/dist/async_queue.d.ts.map +1 -0
- package/dist/async_queue.js +56 -0
- package/dist/async_queue.js.map +1 -0
- package/dist/audio_frame.cjs +5 -0
- package/dist/audio_frame.cjs.map +1 -1
- package/dist/audio_frame.d.cts +3 -0
- package/dist/audio_frame.d.ts +3 -0
- package/dist/audio_frame.d.ts.map +1 -1
- package/dist/audio_frame.js +5 -0
- package/dist/audio_frame.js.map +1 -1
- package/dist/audio_mixer.cjs +281 -0
- package/dist/audio_mixer.cjs.map +1 -0
- package/dist/audio_mixer.d.cts +121 -0
- package/dist/audio_mixer.d.ts +121 -0
- package/dist/audio_mixer.d.ts.map +1 -0
- package/dist/audio_mixer.js +256 -0
- package/dist/audio_mixer.js.map +1 -0
- package/dist/audio_stream.cjs +18 -5
- package/dist/audio_stream.cjs.map +1 -1
- package/dist/audio_stream.d.cts +4 -3
- package/dist/audio_stream.d.ts +4 -3
- package/dist/audio_stream.d.ts.map +1 -1
- package/dist/audio_stream.js +18 -5
- package/dist/audio_stream.js.map +1 -1
- package/dist/data_streams/stream_reader.cjs.map +1 -1
- package/dist/data_streams/stream_reader.js.map +1 -1
- package/dist/frame_processor.cjs +38 -0
- package/dist/frame_processor.cjs.map +1 -0
- package/dist/frame_processor.d.cts +29 -0
- package/dist/frame_processor.d.ts +29 -0
- package/dist/frame_processor.d.ts.map +1 -0
- package/dist/frame_processor.js +14 -0
- package/dist/frame_processor.js.map +1 -0
- package/dist/index.cjs +6 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/participant.cjs +4 -4
- package/dist/participant.cjs.map +1 -1
- package/dist/participant.d.cts +2 -2
- package/dist/participant.d.ts +2 -2
- package/dist/participant.d.ts.map +1 -1
- package/dist/participant.js +4 -4
- package/dist/participant.js.map +1 -1
- package/dist/proto/audio_frame_pb.cjs.map +1 -1
- package/dist/proto/audio_frame_pb.js.map +1 -1
- package/dist/proto/e2ee_pb.cjs.map +1 -1
- package/dist/proto/e2ee_pb.js.map +1 -1
- package/dist/proto/ffi_pb.cjs +4 -2
- package/dist/proto/ffi_pb.cjs.map +1 -1
- package/dist/proto/ffi_pb.d.cts +13 -1
- package/dist/proto/ffi_pb.d.ts +13 -1
- package/dist/proto/ffi_pb.d.ts.map +1 -1
- package/dist/proto/ffi_pb.js +5 -3
- package/dist/proto/ffi_pb.js.map +1 -1
- package/dist/proto/handle_pb.cjs.map +1 -1
- package/dist/proto/handle_pb.js.map +1 -1
- package/dist/proto/participant_pb.cjs +26 -4
- package/dist/proto/participant_pb.cjs.map +1 -1
- package/dist/proto/participant_pb.d.cts +31 -2
- package/dist/proto/participant_pb.d.ts +31 -2
- package/dist/proto/participant_pb.d.ts.map +1 -1
- package/dist/proto/participant_pb.js +24 -3
- package/dist/proto/participant_pb.js.map +1 -1
- package/dist/proto/room_pb.cjs +29 -2
- package/dist/proto/room_pb.cjs.map +1 -1
- package/dist/proto/room_pb.d.cts +30 -7
- package/dist/proto/room_pb.d.ts +30 -7
- package/dist/proto/room_pb.d.ts.map +1 -1
- package/dist/proto/room_pb.js +28 -2
- package/dist/proto/room_pb.js.map +1 -1
- package/dist/proto/rpc_pb.cjs.map +1 -1
- package/dist/proto/rpc_pb.js.map +1 -1
- package/dist/proto/stats_pb.cjs.map +1 -1
- package/dist/proto/stats_pb.js.map +1 -1
- package/dist/proto/track_pb.cjs.map +1 -1
- package/dist/proto/track_pb.js.map +1 -1
- package/dist/proto/track_publication_pb.cjs +66 -2
- package/dist/proto/track_publication_pb.cjs.map +1 -1
- package/dist/proto/track_publication_pb.d.cts +56 -1
- package/dist/proto/track_publication_pb.d.ts +56 -1
- package/dist/proto/track_publication_pb.d.ts.map +1 -1
- package/dist/proto/track_publication_pb.js +62 -1
- package/dist/proto/track_publication_pb.js.map +1 -1
- package/dist/proto/video_frame_pb.cjs +3 -1
- package/dist/proto/video_frame_pb.cjs.map +1 -1
- package/dist/proto/video_frame_pb.d.cts +5 -1
- package/dist/proto/video_frame_pb.d.ts +5 -1
- package/dist/proto/video_frame_pb.d.ts.map +1 -1
- package/dist/proto/video_frame_pb.js +3 -1
- package/dist/proto/video_frame_pb.js.map +1 -1
- package/dist/room.cjs +286 -288
- package/dist/room.cjs.map +1 -1
- package/dist/room.d.cts +11 -11
- package/dist/room.d.ts +11 -11
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +287 -289
- package/dist/room.js.map +1 -1
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.cts +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +9 -8
- package/src/async_queue.test.ts +250 -0
- package/src/async_queue.ts +80 -0
- package/src/audio_frame.ts +7 -0
- package/src/audio_mixer.test.ts +167 -0
- package/src/audio_mixer.ts +407 -0
- package/src/audio_stream.ts +22 -7
- package/src/data_streams/stream_reader.ts +4 -4
- package/src/frame_processor.ts +29 -0
- package/src/index.ts +6 -0
- package/src/participant.ts +5 -5
- package/src/proto/audio_frame_pb.ts +1 -1
- package/src/proto/e2ee_pb.ts +1 -1
- package/src/proto/ffi_pb.ts +16 -2
- package/src/proto/handle_pb.ts +1 -1
- package/src/proto/participant_pb.ts +45 -1
- package/src/proto/room_pb.ts +52 -8
- package/src/proto/rpc_pb.ts +1 -1
- package/src/proto/stats_pb.ts +1 -1
- package/src/proto/track_pb.ts +1 -1
- package/src/proto/track_publication_pb.ts +105 -1
- package/src/proto/video_frame_pb.ts +7 -1
- package/src/room.ts +297 -300
- package/src/version.ts +1 -1
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { type AudioFrame } from './audio_frame.js';
|
|
5
|
+
import { type VideoFrame } from './video_frame.js';
|
|
6
|
+
|
|
7
|
+
export type FrameProcessorStreamInfo = {
|
|
8
|
+
roomName: string;
|
|
9
|
+
participantIdentity: string;
|
|
10
|
+
publicationSid: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type FrameProcessorCredentials = {
|
|
14
|
+
token: string;
|
|
15
|
+
url: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export abstract class FrameProcessor<Frame extends VideoFrame | AudioFrame> {
|
|
19
|
+
abstract isEnabled(): boolean;
|
|
20
|
+
abstract setEnabled(enabled: boolean): void;
|
|
21
|
+
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
23
|
+
onStreamInfoUpdated(_info: FrameProcessorStreamInfo): void {}
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
25
|
+
onCredentialsUpdated(_credentials: FrameProcessorCredentials): void {}
|
|
26
|
+
|
|
27
|
+
abstract process(frame: Frame): Frame;
|
|
28
|
+
abstract close(): void;
|
|
29
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { AudioSource } from './audio_source.js';
|
|
|
8
8
|
export { AudioStream } from './audio_stream.js';
|
|
9
9
|
export type { NoiseCancellationOptions } from './audio_stream.js';
|
|
10
10
|
export { AudioFilter } from './audio_filter.js';
|
|
11
|
+
export { AudioMixer, type AudioMixerOptions } from './audio_mixer.js';
|
|
11
12
|
export * from './data_streams/index.js';
|
|
12
13
|
export { E2EEManager, FrameCryptor, KeyProvider } from './e2ee.js';
|
|
13
14
|
export type { E2EEOptions, KeyProviderOptions } from './e2ee.js';
|
|
@@ -49,3 +50,8 @@ export type { ChatMessage } from './types.js';
|
|
|
49
50
|
export { VideoFrame } from './video_frame.js';
|
|
50
51
|
export { VideoSource } from './video_source.js';
|
|
51
52
|
export { VideoStream, type VideoFrameEvent } from './video_stream.js';
|
|
53
|
+
export {
|
|
54
|
+
FrameProcessor,
|
|
55
|
+
type FrameProcessorStreamInfo,
|
|
56
|
+
type FrameProcessorCredentials,
|
|
57
|
+
} from './frame_processor.js';
|
package/src/participant.ts
CHANGED
|
@@ -155,13 +155,13 @@ export type DataPublishOptions = {
|
|
|
155
155
|
export class LocalParticipant extends Participant {
|
|
156
156
|
private rpcHandlers: Map<string, (data: RpcInvocationData) => Promise<string>> = new Map();
|
|
157
157
|
|
|
158
|
-
private
|
|
158
|
+
private ffiEventLock: Mutex;
|
|
159
159
|
|
|
160
160
|
trackPublications: Map<string, LocalTrackPublication> = new Map();
|
|
161
161
|
|
|
162
|
-
constructor(info: OwnedParticipant,
|
|
162
|
+
constructor(info: OwnedParticipant, ffiEventLock: Mutex) {
|
|
163
163
|
super(info);
|
|
164
|
-
this.
|
|
164
|
+
this.ffiEventLock = ffiEventLock;
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
async publishData(data: Uint8Array, options: DataPublishOptions) {
|
|
@@ -662,7 +662,7 @@ export class LocalParticipant extends Participant {
|
|
|
662
662
|
options: options,
|
|
663
663
|
});
|
|
664
664
|
|
|
665
|
-
const unlock = await this.
|
|
665
|
+
const unlock = await this.ffiEventLock.lock();
|
|
666
666
|
|
|
667
667
|
const res = FfiClient.instance.request<PublishTrackResponse>({
|
|
668
668
|
message: { case: 'publishTrack', value: req },
|
|
@@ -690,7 +690,7 @@ export class LocalParticipant extends Participant {
|
|
|
690
690
|
}
|
|
691
691
|
|
|
692
692
|
async unpublishTrack(trackSid: string, stopOnUnpublish?: boolean) {
|
|
693
|
-
const unlock = await this.
|
|
693
|
+
const unlock = await this.ffiEventLock.lock();
|
|
694
694
|
try {
|
|
695
695
|
const req = new UnpublishTrackRequest({
|
|
696
696
|
localParticipantHandle: this.ffi_handle.handle,
|
package/src/proto/e2ee_pb.ts
CHANGED
package/src/proto/ffi_pb.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -25,7 +25,7 @@ import { CaptureVideoFrameRequest, CaptureVideoFrameResponse, NewVideoSourceRequ
|
|
|
25
25
|
import { ApmProcessReverseStreamRequest, ApmProcessReverseStreamResponse, ApmProcessStreamRequest, ApmProcessStreamResponse, ApmSetStreamDelayRequest, ApmSetStreamDelayResponse, AudioStreamEvent, AudioStreamFromParticipantRequest, AudioStreamFromParticipantResponse, CaptureAudioFrameCallback, CaptureAudioFrameRequest, CaptureAudioFrameResponse, ClearAudioBufferRequest, ClearAudioBufferResponse, FlushSoxResamplerRequest, FlushSoxResamplerResponse, LoadAudioFilterPluginRequest, LoadAudioFilterPluginResponse, NewApmRequest, NewApmResponse, NewAudioResamplerRequest, NewAudioResamplerResponse, NewAudioSourceRequest, NewAudioSourceResponse, NewAudioStreamRequest, NewAudioStreamResponse, NewSoxResamplerRequest, NewSoxResamplerResponse, PushSoxResamplerRequest, PushSoxResamplerResponse, RemixAndResampleRequest, RemixAndResampleResponse } from "./audio_frame_pb.js";
|
|
26
26
|
import { E2eeRequest, E2eeResponse } from "./e2ee_pb.js";
|
|
27
27
|
import { PerformRpcCallback, PerformRpcRequest, PerformRpcResponse, RegisterRpcMethodRequest, RegisterRpcMethodResponse, RpcMethodInvocationEvent, RpcMethodInvocationResponseRequest, RpcMethodInvocationResponseResponse, UnregisterRpcMethodRequest, UnregisterRpcMethodResponse } from "./rpc_pb.js";
|
|
28
|
-
import { EnableRemoteTrackPublicationRequest, EnableRemoteTrackPublicationResponse, UpdateRemoteTrackPublicationDimensionRequest, UpdateRemoteTrackPublicationDimensionResponse } from "./track_publication_pb.js";
|
|
28
|
+
import { EnableRemoteTrackPublicationRequest, EnableRemoteTrackPublicationResponse, SetRemoteTrackPublicationQualityRequest, SetRemoteTrackPublicationQualityResponse, UpdateRemoteTrackPublicationDimensionRequest, UpdateRemoteTrackPublicationDimensionResponse } from "./track_publication_pb.js";
|
|
29
29
|
import { ByteStreamOpenCallback, ByteStreamOpenRequest, ByteStreamOpenResponse, ByteStreamReaderEvent, ByteStreamReaderReadAllCallback, ByteStreamReaderReadAllRequest, ByteStreamReaderReadAllResponse, ByteStreamReaderReadIncrementalRequest, ByteStreamReaderReadIncrementalResponse, ByteStreamReaderWriteToFileCallback, ByteStreamReaderWriteToFileRequest, ByteStreamReaderWriteToFileResponse, ByteStreamWriterCloseCallback, ByteStreamWriterCloseRequest, ByteStreamWriterCloseResponse, ByteStreamWriterWriteCallback, ByteStreamWriterWriteRequest, ByteStreamWriterWriteResponse, StreamSendBytesCallback, StreamSendBytesRequest, StreamSendBytesResponse, StreamSendFileCallback, StreamSendFileRequest, StreamSendFileResponse, StreamSendTextCallback, StreamSendTextRequest, StreamSendTextResponse, TextStreamOpenCallback, TextStreamOpenRequest, TextStreamOpenResponse, TextStreamReaderEvent, TextStreamReaderReadAllCallback, TextStreamReaderReadAllRequest, TextStreamReaderReadAllResponse, TextStreamReaderReadIncrementalRequest, TextStreamReaderReadIncrementalResponse, TextStreamWriterCloseCallback, TextStreamWriterCloseRequest, TextStreamWriterCloseResponse, TextStreamWriterWriteCallback, TextStreamWriterWriteRequest, TextStreamWriterWriteResponse } from "./data_stream_pb.js";
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -492,6 +492,12 @@ export class FfiRequest extends Message<FfiRequest> {
|
|
|
492
492
|
*/
|
|
493
493
|
value: StreamSendBytesRequest;
|
|
494
494
|
case: "sendBytes";
|
|
495
|
+
} | {
|
|
496
|
+
/**
|
|
497
|
+
* @generated from field: livekit.proto.SetRemoteTrackPublicationQualityRequest set_remote_track_publication_quality = 68;
|
|
498
|
+
*/
|
|
499
|
+
value: SetRemoteTrackPublicationQualityRequest;
|
|
500
|
+
case: "setRemoteTrackPublicationQuality";
|
|
495
501
|
} | { case: undefined; value?: undefined } = { case: undefined };
|
|
496
502
|
|
|
497
503
|
constructor(data?: PartialMessage<FfiRequest>) {
|
|
@@ -568,6 +574,7 @@ export class FfiRequest extends Message<FfiRequest> {
|
|
|
568
574
|
{ no: 65, name: "text_stream_write", kind: "message", T: TextStreamWriterWriteRequest, oneof: "message" },
|
|
569
575
|
{ no: 66, name: "text_stream_close", kind: "message", T: TextStreamWriterCloseRequest, oneof: "message" },
|
|
570
576
|
{ no: 67, name: "send_bytes", kind: "message", T: StreamSendBytesRequest, oneof: "message" },
|
|
577
|
+
{ no: 68, name: "set_remote_track_publication_quality", kind: "message", T: SetRemoteTrackPublicationQualityRequest, oneof: "message" },
|
|
571
578
|
]);
|
|
572
579
|
|
|
573
580
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiRequest {
|
|
@@ -1006,6 +1013,12 @@ export class FfiResponse extends Message<FfiResponse> {
|
|
|
1006
1013
|
*/
|
|
1007
1014
|
value: StreamSendBytesResponse;
|
|
1008
1015
|
case: "sendBytes";
|
|
1016
|
+
} | {
|
|
1017
|
+
/**
|
|
1018
|
+
* @generated from field: livekit.proto.SetRemoteTrackPublicationQualityResponse set_remote_track_publication_quality = 67;
|
|
1019
|
+
*/
|
|
1020
|
+
value: SetRemoteTrackPublicationQualityResponse;
|
|
1021
|
+
case: "setRemoteTrackPublicationQuality";
|
|
1009
1022
|
} | { case: undefined; value?: undefined } = { case: undefined };
|
|
1010
1023
|
|
|
1011
1024
|
constructor(data?: PartialMessage<FfiResponse>) {
|
|
@@ -1081,6 +1094,7 @@ export class FfiResponse extends Message<FfiResponse> {
|
|
|
1081
1094
|
{ no: 64, name: "text_stream_write", kind: "message", T: TextStreamWriterWriteResponse, oneof: "message" },
|
|
1082
1095
|
{ no: 65, name: "text_stream_close", kind: "message", T: TextStreamWriterCloseResponse, oneof: "message" },
|
|
1083
1096
|
{ no: 66, name: "send_bytes", kind: "message", T: StreamSendBytesResponse, oneof: "message" },
|
|
1097
|
+
{ no: 67, name: "set_remote_track_publication_quality", kind: "message", T: SetRemoteTrackPublicationQualityResponse, oneof: "message" },
|
|
1084
1098
|
]);
|
|
1085
1099
|
|
|
1086
1100
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiResponse {
|
package/src/proto/handle_pb.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -49,6 +49,11 @@ export enum ParticipantKind {
|
|
|
49
49
|
* @generated from enum value: PARTICIPANT_KIND_AGENT = 4;
|
|
50
50
|
*/
|
|
51
51
|
AGENT = 4,
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @generated from enum value: PARTICIPANT_KIND_CONNECTOR = 5;
|
|
55
|
+
*/
|
|
56
|
+
CONNECTOR = 5,
|
|
52
57
|
}
|
|
53
58
|
// Retrieve enum metadata with: proto2.getEnumType(ParticipantKind)
|
|
54
59
|
proto2.util.setEnumType(ParticipantKind, "livekit.proto.ParticipantKind", [
|
|
@@ -57,6 +62,39 @@ proto2.util.setEnumType(ParticipantKind, "livekit.proto.ParticipantKind", [
|
|
|
57
62
|
{ no: 2, name: "PARTICIPANT_KIND_EGRESS" },
|
|
58
63
|
{ no: 3, name: "PARTICIPANT_KIND_SIP" },
|
|
59
64
|
{ no: 4, name: "PARTICIPANT_KIND_AGENT" },
|
|
65
|
+
{ no: 5, name: "PARTICIPANT_KIND_CONNECTOR" },
|
|
66
|
+
]);
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @generated from enum livekit.proto.ParticipantKindDetail
|
|
70
|
+
*/
|
|
71
|
+
export enum ParticipantKindDetail {
|
|
72
|
+
/**
|
|
73
|
+
* @generated from enum value: PARTICIPANT_KIND_DETAIL_CLOUD_AGENT = 0;
|
|
74
|
+
*/
|
|
75
|
+
CLOUD_AGENT = 0,
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @generated from enum value: PARTICIPANT_KIND_DETAIL_FORWARDED = 1;
|
|
79
|
+
*/
|
|
80
|
+
FORWARDED = 1,
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @generated from enum value: PARTICIPANT_KIND_DETAIL_CONNECTOR_WHATSAPP = 2;
|
|
84
|
+
*/
|
|
85
|
+
CONNECTOR_WHATSAPP = 2,
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* @generated from enum value: PARTICIPANT_KIND_DETAIL_CONNECTOR_TWILIO = 3;
|
|
89
|
+
*/
|
|
90
|
+
CONNECTOR_TWILIO = 3,
|
|
91
|
+
}
|
|
92
|
+
// Retrieve enum metadata with: proto2.getEnumType(ParticipantKindDetail)
|
|
93
|
+
proto2.util.setEnumType(ParticipantKindDetail, "livekit.proto.ParticipantKindDetail", [
|
|
94
|
+
{ no: 0, name: "PARTICIPANT_KIND_DETAIL_CLOUD_AGENT" },
|
|
95
|
+
{ no: 1, name: "PARTICIPANT_KIND_DETAIL_FORWARDED" },
|
|
96
|
+
{ no: 2, name: "PARTICIPANT_KIND_DETAIL_CONNECTOR_WHATSAPP" },
|
|
97
|
+
{ no: 3, name: "PARTICIPANT_KIND_DETAIL_CONNECTOR_TWILIO" },
|
|
60
98
|
]);
|
|
61
99
|
|
|
62
100
|
/**
|
|
@@ -228,6 +266,11 @@ export class ParticipantInfo extends Message<ParticipantInfo> {
|
|
|
228
266
|
*/
|
|
229
267
|
disconnectReason?: DisconnectReason;
|
|
230
268
|
|
|
269
|
+
/**
|
|
270
|
+
* @generated from field: repeated livekit.proto.ParticipantKindDetail kind_details = 8;
|
|
271
|
+
*/
|
|
272
|
+
kindDetails: ParticipantKindDetail[] = [];
|
|
273
|
+
|
|
231
274
|
constructor(data?: PartialMessage<ParticipantInfo>) {
|
|
232
275
|
super();
|
|
233
276
|
proto2.util.initPartial(data, this);
|
|
@@ -243,6 +286,7 @@ export class ParticipantInfo extends Message<ParticipantInfo> {
|
|
|
243
286
|
{ no: 5, name: "attributes", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
|
|
244
287
|
{ no: 6, name: "kind", kind: "enum", T: proto2.getEnumType(ParticipantKind), req: true },
|
|
245
288
|
{ no: 7, name: "disconnect_reason", kind: "enum", T: proto2.getEnumType(DisconnectReason), req: true },
|
|
289
|
+
{ no: 8, name: "kind_details", kind: "enum", T: proto2.getEnumType(ParticipantKindDetail), repeated: true },
|
|
246
290
|
]);
|
|
247
291
|
|
|
248
292
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ParticipantInfo {
|
package/src/proto/room_pb.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -2700,12 +2700,6 @@ export class RoomEvent extends Message<RoomEvent> {
|
|
|
2700
2700
|
*/
|
|
2701
2701
|
value: ParticipantAttributesChanged;
|
|
2702
2702
|
case: "participantAttributesChanged";
|
|
2703
|
-
} | {
|
|
2704
|
-
/**
|
|
2705
|
-
* @generated from field: livekit.proto.ParticipantEncryptionStatusChanged participant_encryption_status_changed = 39;
|
|
2706
|
-
*/
|
|
2707
|
-
value: ParticipantEncryptionStatusChanged;
|
|
2708
|
-
case: "participantEncryptionStatusChanged";
|
|
2709
2703
|
} | {
|
|
2710
2704
|
/**
|
|
2711
2705
|
* @generated from field: livekit.proto.ConnectionQualityChanged connection_quality_changed = 20;
|
|
@@ -2834,6 +2828,18 @@ export class RoomEvent extends Message<RoomEvent> {
|
|
|
2834
2828
|
*/
|
|
2835
2829
|
value: ParticipantsUpdated;
|
|
2836
2830
|
case: "participantsUpdated";
|
|
2831
|
+
} | {
|
|
2832
|
+
/**
|
|
2833
|
+
* @generated from field: livekit.proto.ParticipantEncryptionStatusChanged participant_encryption_status_changed = 39;
|
|
2834
|
+
*/
|
|
2835
|
+
value: ParticipantEncryptionStatusChanged;
|
|
2836
|
+
case: "participantEncryptionStatusChanged";
|
|
2837
|
+
} | {
|
|
2838
|
+
/**
|
|
2839
|
+
* @generated from field: livekit.proto.TokenRefreshed token_refreshed = 40;
|
|
2840
|
+
*/
|
|
2841
|
+
value: TokenRefreshed;
|
|
2842
|
+
case: "tokenRefreshed";
|
|
2837
2843
|
} | { case: undefined; value?: undefined } = { case: undefined };
|
|
2838
2844
|
|
|
2839
2845
|
constructor(data?: PartialMessage<RoomEvent>) {
|
|
@@ -2863,7 +2869,6 @@ export class RoomEvent extends Message<RoomEvent> {
|
|
|
2863
2869
|
{ no: 17, name: "participant_metadata_changed", kind: "message", T: ParticipantMetadataChanged, oneof: "message" },
|
|
2864
2870
|
{ no: 18, name: "participant_name_changed", kind: "message", T: ParticipantNameChanged, oneof: "message" },
|
|
2865
2871
|
{ no: 19, name: "participant_attributes_changed", kind: "message", T: ParticipantAttributesChanged, oneof: "message" },
|
|
2866
|
-
{ no: 39, name: "participant_encryption_status_changed", kind: "message", T: ParticipantEncryptionStatusChanged, oneof: "message" },
|
|
2867
2872
|
{ no: 20, name: "connection_quality_changed", kind: "message", T: ConnectionQualityChanged, oneof: "message" },
|
|
2868
2873
|
{ no: 21, name: "connection_state_changed", kind: "message", T: ConnectionStateChanged, oneof: "message" },
|
|
2869
2874
|
{ no: 22, name: "disconnected", kind: "message", T: Disconnected, oneof: "message" },
|
|
@@ -2883,6 +2888,8 @@ export class RoomEvent extends Message<RoomEvent> {
|
|
|
2883
2888
|
{ no: 36, name: "room_updated", kind: "message", T: RoomInfo, oneof: "message" },
|
|
2884
2889
|
{ no: 37, name: "moved", kind: "message", T: RoomInfo, oneof: "message" },
|
|
2885
2890
|
{ no: 38, name: "participants_updated", kind: "message", T: ParticipantsUpdated, oneof: "message" },
|
|
2891
|
+
{ no: 39, name: "participant_encryption_status_changed", kind: "message", T: ParticipantEncryptionStatusChanged, oneof: "message" },
|
|
2892
|
+
{ no: 40, name: "token_refreshed", kind: "message", T: TokenRefreshed, oneof: "message" },
|
|
2886
2893
|
]);
|
|
2887
2894
|
|
|
2888
2895
|
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RoomEvent {
|
|
@@ -4444,6 +4451,43 @@ export class Reconnected extends Message<Reconnected> {
|
|
|
4444
4451
|
}
|
|
4445
4452
|
}
|
|
4446
4453
|
|
|
4454
|
+
/**
|
|
4455
|
+
* @generated from message livekit.proto.TokenRefreshed
|
|
4456
|
+
*/
|
|
4457
|
+
export class TokenRefreshed extends Message<TokenRefreshed> {
|
|
4458
|
+
/**
|
|
4459
|
+
* @generated from field: required string token = 1;
|
|
4460
|
+
*/
|
|
4461
|
+
token?: string;
|
|
4462
|
+
|
|
4463
|
+
constructor(data?: PartialMessage<TokenRefreshed>) {
|
|
4464
|
+
super();
|
|
4465
|
+
proto2.util.initPartial(data, this);
|
|
4466
|
+
}
|
|
4467
|
+
|
|
4468
|
+
static readonly runtime: typeof proto2 = proto2;
|
|
4469
|
+
static readonly typeName = "livekit.proto.TokenRefreshed";
|
|
4470
|
+
static readonly fields: FieldList = proto2.util.newFieldList(() => [
|
|
4471
|
+
{ no: 1, name: "token", kind: "scalar", T: 9 /* ScalarType.STRING */, req: true },
|
|
4472
|
+
]);
|
|
4473
|
+
|
|
4474
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): TokenRefreshed {
|
|
4475
|
+
return new TokenRefreshed().fromBinary(bytes, options);
|
|
4476
|
+
}
|
|
4477
|
+
|
|
4478
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): TokenRefreshed {
|
|
4479
|
+
return new TokenRefreshed().fromJson(jsonValue, options);
|
|
4480
|
+
}
|
|
4481
|
+
|
|
4482
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): TokenRefreshed {
|
|
4483
|
+
return new TokenRefreshed().fromJsonString(jsonString, options);
|
|
4484
|
+
}
|
|
4485
|
+
|
|
4486
|
+
static equals(a: TokenRefreshed | PlainMessage<TokenRefreshed> | undefined, b: TokenRefreshed | PlainMessage<TokenRefreshed> | undefined): boolean {
|
|
4487
|
+
return proto2.util.equals(TokenRefreshed, a, b);
|
|
4488
|
+
}
|
|
4489
|
+
}
|
|
4490
|
+
|
|
4447
4491
|
/**
|
|
4448
4492
|
* @generated from message livekit.proto.RoomEOS
|
|
4449
4493
|
*/
|
package/src/proto/rpc_pb.ts
CHANGED
package/src/proto/stats_pb.ts
CHANGED
package/src/proto/track_pb.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -20,6 +20,34 @@
|
|
|
20
20
|
import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
|
|
21
21
|
import { Message, proto2 } from "@bufbuild/protobuf";
|
|
22
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Video quality for simulcasted tracks.
|
|
25
|
+
*
|
|
26
|
+
* @generated from enum livekit.proto.VideoQuality
|
|
27
|
+
*/
|
|
28
|
+
export enum VideoQuality {
|
|
29
|
+
/**
|
|
30
|
+
* @generated from enum value: VIDEO_QUALITY_LOW = 0;
|
|
31
|
+
*/
|
|
32
|
+
LOW = 0,
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @generated from enum value: VIDEO_QUALITY_MEDIUM = 1;
|
|
36
|
+
*/
|
|
37
|
+
MEDIUM = 1,
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* @generated from enum value: VIDEO_QUALITY_HIGH = 2;
|
|
41
|
+
*/
|
|
42
|
+
HIGH = 2,
|
|
43
|
+
}
|
|
44
|
+
// Retrieve enum metadata with: proto2.getEnumType(VideoQuality)
|
|
45
|
+
proto2.util.setEnumType(VideoQuality, "livekit.proto.VideoQuality", [
|
|
46
|
+
{ no: 0, name: "VIDEO_QUALITY_LOW" },
|
|
47
|
+
{ no: 1, name: "VIDEO_QUALITY_MEDIUM" },
|
|
48
|
+
{ no: 2, name: "VIDEO_QUALITY_HIGH" },
|
|
49
|
+
]);
|
|
50
|
+
|
|
23
51
|
/**
|
|
24
52
|
* Enable/Disable a remote track publication
|
|
25
53
|
*
|
|
@@ -178,3 +206,79 @@ export class UpdateRemoteTrackPublicationDimensionResponse extends Message<Updat
|
|
|
178
206
|
}
|
|
179
207
|
}
|
|
180
208
|
|
|
209
|
+
/**
|
|
210
|
+
* For tracks that support simulcasting, adjust subscribed quality.
|
|
211
|
+
*
|
|
212
|
+
* @generated from message livekit.proto.SetRemoteTrackPublicationQualityRequest
|
|
213
|
+
*/
|
|
214
|
+
export class SetRemoteTrackPublicationQualityRequest extends Message<SetRemoteTrackPublicationQualityRequest> {
|
|
215
|
+
/**
|
|
216
|
+
* @generated from field: required uint64 track_publication_handle = 1;
|
|
217
|
+
*/
|
|
218
|
+
trackPublicationHandle?: bigint;
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* @generated from field: required livekit.proto.VideoQuality quality = 2;
|
|
222
|
+
*/
|
|
223
|
+
quality?: VideoQuality;
|
|
224
|
+
|
|
225
|
+
constructor(data?: PartialMessage<SetRemoteTrackPublicationQualityRequest>) {
|
|
226
|
+
super();
|
|
227
|
+
proto2.util.initPartial(data, this);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
static readonly runtime: typeof proto2 = proto2;
|
|
231
|
+
static readonly typeName = "livekit.proto.SetRemoteTrackPublicationQualityRequest";
|
|
232
|
+
static readonly fields: FieldList = proto2.util.newFieldList(() => [
|
|
233
|
+
{ no: 1, name: "track_publication_handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */, req: true },
|
|
234
|
+
{ no: 2, name: "quality", kind: "enum", T: proto2.getEnumType(VideoQuality), req: true },
|
|
235
|
+
]);
|
|
236
|
+
|
|
237
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SetRemoteTrackPublicationQualityRequest {
|
|
238
|
+
return new SetRemoteTrackPublicationQualityRequest().fromBinary(bytes, options);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SetRemoteTrackPublicationQualityRequest {
|
|
242
|
+
return new SetRemoteTrackPublicationQualityRequest().fromJson(jsonValue, options);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SetRemoteTrackPublicationQualityRequest {
|
|
246
|
+
return new SetRemoteTrackPublicationQualityRequest().fromJsonString(jsonString, options);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
static equals(a: SetRemoteTrackPublicationQualityRequest | PlainMessage<SetRemoteTrackPublicationQualityRequest> | undefined, b: SetRemoteTrackPublicationQualityRequest | PlainMessage<SetRemoteTrackPublicationQualityRequest> | undefined): boolean {
|
|
250
|
+
return proto2.util.equals(SetRemoteTrackPublicationQualityRequest, a, b);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* @generated from message livekit.proto.SetRemoteTrackPublicationQualityResponse
|
|
256
|
+
*/
|
|
257
|
+
export class SetRemoteTrackPublicationQualityResponse extends Message<SetRemoteTrackPublicationQualityResponse> {
|
|
258
|
+
constructor(data?: PartialMessage<SetRemoteTrackPublicationQualityResponse>) {
|
|
259
|
+
super();
|
|
260
|
+
proto2.util.initPartial(data, this);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
static readonly runtime: typeof proto2 = proto2;
|
|
264
|
+
static readonly typeName = "livekit.proto.SetRemoteTrackPublicationQualityResponse";
|
|
265
|
+
static readonly fields: FieldList = proto2.util.newFieldList(() => [
|
|
266
|
+
]);
|
|
267
|
+
|
|
268
|
+
static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SetRemoteTrackPublicationQualityResponse {
|
|
269
|
+
return new SetRemoteTrackPublicationQualityResponse().fromBinary(bytes, options);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SetRemoteTrackPublicationQualityResponse {
|
|
273
|
+
return new SetRemoteTrackPublicationQualityResponse().fromJson(jsonValue, options);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SetRemoteTrackPublicationQualityResponse {
|
|
277
|
+
return new SetRemoteTrackPublicationQualityResponse().fromJsonString(jsonString, options);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
static equals(a: SetRemoteTrackPublicationQualityResponse | PlainMessage<SetRemoteTrackPublicationQualityResponse> | undefined, b: SetRemoteTrackPublicationQualityResponse | PlainMessage<SetRemoteTrackPublicationQualityResponse> | undefined): boolean {
|
|
281
|
+
return proto2.util.equals(SetRemoteTrackPublicationQualityResponse, a, b);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
// you may not use this file except in compliance with the License.
|
|
@@ -45,6 +45,11 @@ export enum VideoCodec {
|
|
|
45
45
|
* @generated from enum value: VP9 = 3;
|
|
46
46
|
*/
|
|
47
47
|
VP9 = 3,
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @generated from enum value: H265 = 4;
|
|
51
|
+
*/
|
|
52
|
+
H265 = 4,
|
|
48
53
|
}
|
|
49
54
|
// Retrieve enum metadata with: proto2.getEnumType(VideoCodec)
|
|
50
55
|
proto2.util.setEnumType(VideoCodec, "livekit.proto.VideoCodec", [
|
|
@@ -52,6 +57,7 @@ proto2.util.setEnumType(VideoCodec, "livekit.proto.VideoCodec", [
|
|
|
52
57
|
{ no: 1, name: "H264" },
|
|
53
58
|
{ no: 2, name: "AV1" },
|
|
54
59
|
{ no: 3, name: "VP9" },
|
|
60
|
+
{ no: 4, name: "H265" },
|
|
55
61
|
]);
|
|
56
62
|
|
|
57
63
|
/**
|