@livekit/rtc-node 0.7.0 → 0.8.0

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.
Files changed (48) hide show
  1. package/dist/audio_stream.d.ts +3 -1
  2. package/dist/audio_stream.d.ts.map +1 -1
  3. package/dist/audio_stream.js +5 -1
  4. package/dist/audio_stream.js.map +1 -1
  5. package/dist/index.d.ts +3 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/napi/native.d.ts +8 -5
  10. package/dist/participant.d.ts +2 -0
  11. package/dist/participant.d.ts.map +1 -1
  12. package/dist/participant.js +25 -1
  13. package/dist/participant.js.map +1 -1
  14. package/dist/proto/audio_frame_pb.d.ts +59 -0
  15. package/dist/proto/audio_frame_pb.d.ts.map +1 -1
  16. package/dist/proto/audio_frame_pb.js +83 -0
  17. package/dist/proto/audio_frame_pb.js.map +1 -1
  18. package/dist/proto/ffi_pb.d.ts +73 -25
  19. package/dist/proto/ffi_pb.d.ts.map +1 -1
  20. package/dist/proto/ffi_pb.js +33 -25
  21. package/dist/proto/ffi_pb.js.map +1 -1
  22. package/dist/proto/participant_pb.d.ts +29 -0
  23. package/dist/proto/participant_pb.d.ts.map +1 -1
  24. package/dist/proto/participant_pb.js +39 -0
  25. package/dist/proto/participant_pb.js.map +1 -1
  26. package/dist/proto/track_pb.d.ts +80 -0
  27. package/dist/proto/track_pb.d.ts.map +1 -1
  28. package/dist/proto/track_pb.js +134 -0
  29. package/dist/proto/track_pb.js.map +1 -1
  30. package/dist/proto/video_frame_pb.d.ts +53 -0
  31. package/dist/proto/video_frame_pb.d.ts.map +1 -1
  32. package/dist/proto/video_frame_pb.js +75 -0
  33. package/dist/proto/video_frame_pb.js.map +1 -1
  34. package/dist/transcription.d.ts +14 -0
  35. package/dist/transcription.d.ts.map +1 -0
  36. package/dist/transcription.js +2 -0
  37. package/dist/transcription.js.map +1 -0
  38. package/package.json +6 -6
  39. package/src/audio_stream.ts +7 -1
  40. package/src/index.ts +3 -2
  41. package/src/napi/native.d.ts +8 -5
  42. package/src/participant.ts +36 -0
  43. package/src/proto/audio_frame_pb.ts +111 -0
  44. package/src/proto/ffi_pb.ts +103 -47
  45. package/src/proto/participant_pb.ts +44 -0
  46. package/src/proto/track_pb.ts +164 -0
  47. package/src/proto/video_frame_pb.ts +101 -0
  48. package/src/transcription.ts +17 -0
@@ -20,9 +20,9 @@
20
20
  import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
21
21
  import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
22
22
  import { ConnectCallback, ConnectRequest, ConnectResponse, DisconnectCallback, DisconnectRequest, DisconnectResponse, GetSessionStatsCallback, GetSessionStatsRequest, GetSessionStatsResponse, PublishDataCallback, PublishDataRequest, PublishDataResponse, PublishSipDtmfCallback, PublishSipDtmfRequest, PublishSipDtmfResponse, PublishTrackCallback, PublishTrackRequest, PublishTrackResponse, PublishTranscriptionCallback, PublishTranscriptionRequest, PublishTranscriptionResponse, RoomEvent, SetLocalAttributesCallback, SetLocalAttributesRequest, SetLocalAttributesResponse, SetLocalMetadataCallback, SetLocalMetadataRequest, SetLocalMetadataResponse, SetLocalNameCallback, SetLocalNameRequest, SetLocalNameResponse, SetSubscribedRequest, SetSubscribedResponse, UnpublishTrackCallback, UnpublishTrackRequest, UnpublishTrackResponse } from "./room_pb.js";
23
- import { CreateAudioTrackRequest, CreateAudioTrackResponse, CreateVideoTrackRequest, CreateVideoTrackResponse, GetStatsCallback, GetStatsRequest, GetStatsResponse, TrackEvent } from "./track_pb.js";
24
- import { CaptureVideoFrameRequest, CaptureVideoFrameResponse, NewVideoSourceRequest, NewVideoSourceResponse, NewVideoStreamRequest, NewVideoStreamResponse, VideoConvertRequest, VideoConvertResponse, VideoStreamEvent } from "./video_frame_pb.js";
25
- import { AudioStreamEvent, CaptureAudioFrameCallback, CaptureAudioFrameRequest, CaptureAudioFrameResponse, NewAudioResamplerRequest, NewAudioResamplerResponse, NewAudioSourceRequest, NewAudioSourceResponse, NewAudioStreamRequest, NewAudioStreamResponse, RemixAndResampleRequest, RemixAndResampleResponse } from "./audio_frame_pb.js";
23
+ import { CreateAudioTrackRequest, CreateAudioTrackResponse, CreateVideoTrackRequest, CreateVideoTrackResponse, EnableRemoteTrackRequest, EnableRemoteTrackResponse, GetStatsCallback, GetStatsRequest, GetStatsResponse, LocalTrackMuteRequest, LocalTrackMuteResponse, TrackEvent } from "./track_pb.js";
24
+ import { CaptureVideoFrameRequest, CaptureVideoFrameResponse, NewVideoSourceRequest, NewVideoSourceResponse, NewVideoStreamRequest, NewVideoStreamResponse, VideoConvertRequest, VideoConvertResponse, VideoStreamEvent, VideoStreamFromParticipantRequest, VideoStreamFromParticipantResponse } from "./video_frame_pb.js";
25
+ import { AudioStreamEvent, AudioStreamFromParticipantRequest, AudioStreamFromParticipantResponse, CaptureAudioFrameCallback, CaptureAudioFrameRequest, CaptureAudioFrameResponse, NewAudioResamplerRequest, NewAudioResamplerResponse, NewAudioSourceRequest, NewAudioSourceResponse, NewAudioStreamRequest, NewAudioStreamResponse, RemixAndResampleRequest, RemixAndResampleResponse } from "./audio_frame_pb.js";
26
26
  import { E2eeRequest, E2eeResponse } from "./e2ee_pb.js";
27
27
 
28
28
  /**
@@ -169,7 +169,19 @@ export class FfiRequest extends Message<FfiRequest> {
169
169
  case: "createAudioTrack";
170
170
  } | {
171
171
  /**
172
- * @generated from field: livekit.proto.GetStatsRequest get_stats = 17;
172
+ * @generated from field: livekit.proto.LocalTrackMuteRequest local_track_mute = 17;
173
+ */
174
+ value: LocalTrackMuteRequest;
175
+ case: "localTrackMute";
176
+ } | {
177
+ /**
178
+ * @generated from field: livekit.proto.EnableRemoteTrackRequest enable_remote_track = 18;
179
+ */
180
+ value: EnableRemoteTrackRequest;
181
+ case: "enableRemoteTrack";
182
+ } | {
183
+ /**
184
+ * @generated from field: livekit.proto.GetStatsRequest get_stats = 19;
173
185
  */
174
186
  value: GetStatsRequest;
175
187
  case: "getStats";
@@ -177,66 +189,78 @@ export class FfiRequest extends Message<FfiRequest> {
177
189
  /**
178
190
  * Video
179
191
  *
180
- * @generated from field: livekit.proto.NewVideoStreamRequest new_video_stream = 18;
192
+ * @generated from field: livekit.proto.NewVideoStreamRequest new_video_stream = 20;
181
193
  */
182
194
  value: NewVideoStreamRequest;
183
195
  case: "newVideoStream";
184
196
  } | {
185
197
  /**
186
- * @generated from field: livekit.proto.NewVideoSourceRequest new_video_source = 19;
198
+ * @generated from field: livekit.proto.NewVideoSourceRequest new_video_source = 21;
187
199
  */
188
200
  value: NewVideoSourceRequest;
189
201
  case: "newVideoSource";
190
202
  } | {
191
203
  /**
192
- * @generated from field: livekit.proto.CaptureVideoFrameRequest capture_video_frame = 20;
204
+ * @generated from field: livekit.proto.CaptureVideoFrameRequest capture_video_frame = 22;
193
205
  */
194
206
  value: CaptureVideoFrameRequest;
195
207
  case: "captureVideoFrame";
196
208
  } | {
197
209
  /**
198
- * @generated from field: livekit.proto.VideoConvertRequest video_convert = 21;
210
+ * @generated from field: livekit.proto.VideoConvertRequest video_convert = 23;
199
211
  */
200
212
  value: VideoConvertRequest;
201
213
  case: "videoConvert";
214
+ } | {
215
+ /**
216
+ * @generated from field: livekit.proto.VideoStreamFromParticipantRequest video_stream_from_participant = 24;
217
+ */
218
+ value: VideoStreamFromParticipantRequest;
219
+ case: "videoStreamFromParticipant";
202
220
  } | {
203
221
  /**
204
222
  * Audio
205
223
  *
206
- * @generated from field: livekit.proto.NewAudioStreamRequest new_audio_stream = 23;
224
+ * @generated from field: livekit.proto.NewAudioStreamRequest new_audio_stream = 25;
207
225
  */
208
226
  value: NewAudioStreamRequest;
209
227
  case: "newAudioStream";
210
228
  } | {
211
229
  /**
212
- * @generated from field: livekit.proto.NewAudioSourceRequest new_audio_source = 24;
230
+ * @generated from field: livekit.proto.NewAudioSourceRequest new_audio_source = 26;
213
231
  */
214
232
  value: NewAudioSourceRequest;
215
233
  case: "newAudioSource";
216
234
  } | {
217
235
  /**
218
- * @generated from field: livekit.proto.CaptureAudioFrameRequest capture_audio_frame = 25;
236
+ * @generated from field: livekit.proto.CaptureAudioFrameRequest capture_audio_frame = 27;
219
237
  */
220
238
  value: CaptureAudioFrameRequest;
221
239
  case: "captureAudioFrame";
222
240
  } | {
223
241
  /**
224
- * @generated from field: livekit.proto.NewAudioResamplerRequest new_audio_resampler = 26;
242
+ * @generated from field: livekit.proto.NewAudioResamplerRequest new_audio_resampler = 28;
225
243
  */
226
244
  value: NewAudioResamplerRequest;
227
245
  case: "newAudioResampler";
228
246
  } | {
229
247
  /**
230
- * @generated from field: livekit.proto.RemixAndResampleRequest remix_and_resample = 27;
248
+ * @generated from field: livekit.proto.RemixAndResampleRequest remix_and_resample = 29;
231
249
  */
232
250
  value: RemixAndResampleRequest;
233
251
  case: "remixAndResample";
234
252
  } | {
235
253
  /**
236
- * @generated from field: livekit.proto.E2eeRequest e2ee = 28;
254
+ * @generated from field: livekit.proto.E2eeRequest e2ee = 30;
237
255
  */
238
256
  value: E2eeRequest;
239
257
  case: "e2ee";
258
+ } | {
259
+ /**
260
+ * @generated from field: livekit.proto.AudioStreamFromParticipantRequest audio_stream_from_participant = 31;
261
+ */
262
+ value: AudioStreamFromParticipantRequest;
263
+ case: "audioStreamFromParticipant";
240
264
  } | { case: undefined; value?: undefined } = { case: undefined };
241
265
 
242
266
  constructor(data?: PartialMessage<FfiRequest>) {
@@ -262,17 +286,21 @@ export class FfiRequest extends Message<FfiRequest> {
262
286
  { no: 14, name: "publish_sip_dtmf", kind: "message", T: PublishSipDtmfRequest, oneof: "message" },
263
287
  { no: 15, name: "create_video_track", kind: "message", T: CreateVideoTrackRequest, oneof: "message" },
264
288
  { no: 16, name: "create_audio_track", kind: "message", T: CreateAudioTrackRequest, oneof: "message" },
265
- { no: 17, name: "get_stats", kind: "message", T: GetStatsRequest, oneof: "message" },
266
- { no: 18, name: "new_video_stream", kind: "message", T: NewVideoStreamRequest, oneof: "message" },
267
- { no: 19, name: "new_video_source", kind: "message", T: NewVideoSourceRequest, oneof: "message" },
268
- { no: 20, name: "capture_video_frame", kind: "message", T: CaptureVideoFrameRequest, oneof: "message" },
269
- { no: 21, name: "video_convert", kind: "message", T: VideoConvertRequest, oneof: "message" },
270
- { no: 23, name: "new_audio_stream", kind: "message", T: NewAudioStreamRequest, oneof: "message" },
271
- { no: 24, name: "new_audio_source", kind: "message", T: NewAudioSourceRequest, oneof: "message" },
272
- { no: 25, name: "capture_audio_frame", kind: "message", T: CaptureAudioFrameRequest, oneof: "message" },
273
- { no: 26, name: "new_audio_resampler", kind: "message", T: NewAudioResamplerRequest, oneof: "message" },
274
- { no: 27, name: "remix_and_resample", kind: "message", T: RemixAndResampleRequest, oneof: "message" },
275
- { no: 28, name: "e2ee", kind: "message", T: E2eeRequest, oneof: "message" },
289
+ { no: 17, name: "local_track_mute", kind: "message", T: LocalTrackMuteRequest, oneof: "message" },
290
+ { no: 18, name: "enable_remote_track", kind: "message", T: EnableRemoteTrackRequest, oneof: "message" },
291
+ { no: 19, name: "get_stats", kind: "message", T: GetStatsRequest, oneof: "message" },
292
+ { no: 20, name: "new_video_stream", kind: "message", T: NewVideoStreamRequest, oneof: "message" },
293
+ { no: 21, name: "new_video_source", kind: "message", T: NewVideoSourceRequest, oneof: "message" },
294
+ { no: 22, name: "capture_video_frame", kind: "message", T: CaptureVideoFrameRequest, oneof: "message" },
295
+ { no: 23, name: "video_convert", kind: "message", T: VideoConvertRequest, oneof: "message" },
296
+ { no: 24, name: "video_stream_from_participant", kind: "message", T: VideoStreamFromParticipantRequest, oneof: "message" },
297
+ { no: 25, name: "new_audio_stream", kind: "message", T: NewAudioStreamRequest, oneof: "message" },
298
+ { no: 26, name: "new_audio_source", kind: "message", T: NewAudioSourceRequest, oneof: "message" },
299
+ { no: 27, name: "capture_audio_frame", kind: "message", T: CaptureAudioFrameRequest, oneof: "message" },
300
+ { no: 28, name: "new_audio_resampler", kind: "message", T: NewAudioResamplerRequest, oneof: "message" },
301
+ { no: 29, name: "remix_and_resample", kind: "message", T: RemixAndResampleRequest, oneof: "message" },
302
+ { no: 30, name: "e2ee", kind: "message", T: E2eeRequest, oneof: "message" },
303
+ { no: 31, name: "audio_stream_from_participant", kind: "message", T: AudioStreamFromParticipantRequest, oneof: "message" },
276
304
  ]);
277
305
 
278
306
  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiRequest {
@@ -397,7 +425,19 @@ export class FfiResponse extends Message<FfiResponse> {
397
425
  case: "createAudioTrack";
398
426
  } | {
399
427
  /**
400
- * @generated from field: livekit.proto.GetStatsResponse get_stats = 17;
428
+ * @generated from field: livekit.proto.LocalTrackMuteResponse local_track_mute = 17;
429
+ */
430
+ value: LocalTrackMuteResponse;
431
+ case: "localTrackMute";
432
+ } | {
433
+ /**
434
+ * @generated from field: livekit.proto.EnableRemoteTrackResponse enable_remote_track = 18;
435
+ */
436
+ value: EnableRemoteTrackResponse;
437
+ case: "enableRemoteTrack";
438
+ } | {
439
+ /**
440
+ * @generated from field: livekit.proto.GetStatsResponse get_stats = 19;
401
441
  */
402
442
  value: GetStatsResponse;
403
443
  case: "getStats";
@@ -405,63 +445,75 @@ export class FfiResponse extends Message<FfiResponse> {
405
445
  /**
406
446
  * Video
407
447
  *
408
- * @generated from field: livekit.proto.NewVideoStreamResponse new_video_stream = 18;
448
+ * @generated from field: livekit.proto.NewVideoStreamResponse new_video_stream = 20;
409
449
  */
410
450
  value: NewVideoStreamResponse;
411
451
  case: "newVideoStream";
412
452
  } | {
413
453
  /**
414
- * @generated from field: livekit.proto.NewVideoSourceResponse new_video_source = 19;
454
+ * @generated from field: livekit.proto.NewVideoSourceResponse new_video_source = 21;
415
455
  */
416
456
  value: NewVideoSourceResponse;
417
457
  case: "newVideoSource";
418
458
  } | {
419
459
  /**
420
- * @generated from field: livekit.proto.CaptureVideoFrameResponse capture_video_frame = 20;
460
+ * @generated from field: livekit.proto.CaptureVideoFrameResponse capture_video_frame = 22;
421
461
  */
422
462
  value: CaptureVideoFrameResponse;
423
463
  case: "captureVideoFrame";
424
464
  } | {
425
465
  /**
426
- * @generated from field: livekit.proto.VideoConvertResponse video_convert = 21;
466
+ * @generated from field: livekit.proto.VideoConvertResponse video_convert = 23;
427
467
  */
428
468
  value: VideoConvertResponse;
429
469
  case: "videoConvert";
470
+ } | {
471
+ /**
472
+ * @generated from field: livekit.proto.VideoStreamFromParticipantResponse video_stream_from_participant = 24;
473
+ */
474
+ value: VideoStreamFromParticipantResponse;
475
+ case: "videoStreamFromParticipant";
430
476
  } | {
431
477
  /**
432
478
  * Audio
433
479
  *
434
- * @generated from field: livekit.proto.NewAudioStreamResponse new_audio_stream = 22;
480
+ * @generated from field: livekit.proto.NewAudioStreamResponse new_audio_stream = 25;
435
481
  */
436
482
  value: NewAudioStreamResponse;
437
483
  case: "newAudioStream";
438
484
  } | {
439
485
  /**
440
- * @generated from field: livekit.proto.NewAudioSourceResponse new_audio_source = 23;
486
+ * @generated from field: livekit.proto.NewAudioSourceResponse new_audio_source = 26;
441
487
  */
442
488
  value: NewAudioSourceResponse;
443
489
  case: "newAudioSource";
444
490
  } | {
445
491
  /**
446
- * @generated from field: livekit.proto.CaptureAudioFrameResponse capture_audio_frame = 24;
492
+ * @generated from field: livekit.proto.CaptureAudioFrameResponse capture_audio_frame = 27;
447
493
  */
448
494
  value: CaptureAudioFrameResponse;
449
495
  case: "captureAudioFrame";
450
496
  } | {
451
497
  /**
452
- * @generated from field: livekit.proto.NewAudioResamplerResponse new_audio_resampler = 25;
498
+ * @generated from field: livekit.proto.NewAudioResamplerResponse new_audio_resampler = 28;
453
499
  */
454
500
  value: NewAudioResamplerResponse;
455
501
  case: "newAudioResampler";
456
502
  } | {
457
503
  /**
458
- * @generated from field: livekit.proto.RemixAndResampleResponse remix_and_resample = 26;
504
+ * @generated from field: livekit.proto.RemixAndResampleResponse remix_and_resample = 29;
459
505
  */
460
506
  value: RemixAndResampleResponse;
461
507
  case: "remixAndResample";
462
508
  } | {
463
509
  /**
464
- * @generated from field: livekit.proto.E2eeResponse e2ee = 27;
510
+ * @generated from field: livekit.proto.AudioStreamFromParticipantResponse audio_stream_from_participant = 30;
511
+ */
512
+ value: AudioStreamFromParticipantResponse;
513
+ case: "audioStreamFromParticipant";
514
+ } | {
515
+ /**
516
+ * @generated from field: livekit.proto.E2eeResponse e2ee = 31;
465
517
  */
466
518
  value: E2eeResponse;
467
519
  case: "e2ee";
@@ -490,17 +542,21 @@ export class FfiResponse extends Message<FfiResponse> {
490
542
  { no: 14, name: "publish_sip_dtmf", kind: "message", T: PublishSipDtmfResponse, oneof: "message" },
491
543
  { no: 15, name: "create_video_track", kind: "message", T: CreateVideoTrackResponse, oneof: "message" },
492
544
  { no: 16, name: "create_audio_track", kind: "message", T: CreateAudioTrackResponse, oneof: "message" },
493
- { no: 17, name: "get_stats", kind: "message", T: GetStatsResponse, oneof: "message" },
494
- { no: 18, name: "new_video_stream", kind: "message", T: NewVideoStreamResponse, oneof: "message" },
495
- { no: 19, name: "new_video_source", kind: "message", T: NewVideoSourceResponse, oneof: "message" },
496
- { no: 20, name: "capture_video_frame", kind: "message", T: CaptureVideoFrameResponse, oneof: "message" },
497
- { no: 21, name: "video_convert", kind: "message", T: VideoConvertResponse, oneof: "message" },
498
- { no: 22, name: "new_audio_stream", kind: "message", T: NewAudioStreamResponse, oneof: "message" },
499
- { no: 23, name: "new_audio_source", kind: "message", T: NewAudioSourceResponse, oneof: "message" },
500
- { no: 24, name: "capture_audio_frame", kind: "message", T: CaptureAudioFrameResponse, oneof: "message" },
501
- { no: 25, name: "new_audio_resampler", kind: "message", T: NewAudioResamplerResponse, oneof: "message" },
502
- { no: 26, name: "remix_and_resample", kind: "message", T: RemixAndResampleResponse, oneof: "message" },
503
- { no: 27, name: "e2ee", kind: "message", T: E2eeResponse, oneof: "message" },
545
+ { no: 17, name: "local_track_mute", kind: "message", T: LocalTrackMuteResponse, oneof: "message" },
546
+ { no: 18, name: "enable_remote_track", kind: "message", T: EnableRemoteTrackResponse, oneof: "message" },
547
+ { no: 19, name: "get_stats", kind: "message", T: GetStatsResponse, oneof: "message" },
548
+ { no: 20, name: "new_video_stream", kind: "message", T: NewVideoStreamResponse, oneof: "message" },
549
+ { no: 21, name: "new_video_source", kind: "message", T: NewVideoSourceResponse, oneof: "message" },
550
+ { no: 22, name: "capture_video_frame", kind: "message", T: CaptureVideoFrameResponse, oneof: "message" },
551
+ { no: 23, name: "video_convert", kind: "message", T: VideoConvertResponse, oneof: "message" },
552
+ { no: 24, name: "video_stream_from_participant", kind: "message", T: VideoStreamFromParticipantResponse, oneof: "message" },
553
+ { no: 25, name: "new_audio_stream", kind: "message", T: NewAudioStreamResponse, oneof: "message" },
554
+ { no: 26, name: "new_audio_source", kind: "message", T: NewAudioSourceResponse, oneof: "message" },
555
+ { no: 27, name: "capture_audio_frame", kind: "message", T: CaptureAudioFrameResponse, oneof: "message" },
556
+ { no: 28, name: "new_audio_resampler", kind: "message", T: NewAudioResamplerResponse, oneof: "message" },
557
+ { no: 29, name: "remix_and_resample", kind: "message", T: RemixAndResampleResponse, oneof: "message" },
558
+ { no: 30, name: "audio_stream_from_participant", kind: "message", T: AudioStreamFromParticipantResponse, oneof: "message" },
559
+ { no: 31, name: "e2ee", kind: "message", T: E2eeResponse, oneof: "message" },
504
560
  ]);
505
561
 
506
562
  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FfiResponse {
@@ -21,6 +21,44 @@ import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialM
21
21
  import { Message, proto3 } from "@bufbuild/protobuf";
22
22
  import { FfiOwnedHandle } from "./handle_pb.js";
23
23
 
24
+ /**
25
+ * @generated from enum livekit.proto.ParticipantKind
26
+ */
27
+ export enum ParticipantKind {
28
+ /**
29
+ * @generated from enum value: PARTICIPANT_KIND_STANDARD = 0;
30
+ */
31
+ STANDARD = 0,
32
+
33
+ /**
34
+ * @generated from enum value: PARTICIPANT_KIND_INGRESS = 1;
35
+ */
36
+ INGRESS = 1,
37
+
38
+ /**
39
+ * @generated from enum value: PARTICIPANT_KIND_EGRESS = 2;
40
+ */
41
+ EGRESS = 2,
42
+
43
+ /**
44
+ * @generated from enum value: PARTICIPANT_KIND_SIP = 3;
45
+ */
46
+ SIP = 3,
47
+
48
+ /**
49
+ * @generated from enum value: PARTICIPANT_KIND_AGENT = 4;
50
+ */
51
+ AGENT = 4,
52
+ }
53
+ // Retrieve enum metadata with: proto3.getEnumType(ParticipantKind)
54
+ proto3.util.setEnumType(ParticipantKind, "livekit.proto.ParticipantKind", [
55
+ { no: 0, name: "PARTICIPANT_KIND_STANDARD" },
56
+ { no: 1, name: "PARTICIPANT_KIND_INGRESS" },
57
+ { no: 2, name: "PARTICIPANT_KIND_EGRESS" },
58
+ { no: 3, name: "PARTICIPANT_KIND_SIP" },
59
+ { no: 4, name: "PARTICIPANT_KIND_AGENT" },
60
+ ]);
61
+
24
62
  /**
25
63
  * @generated from message livekit.proto.ParticipantInfo
26
64
  */
@@ -50,6 +88,11 @@ export class ParticipantInfo extends Message<ParticipantInfo> {
50
88
  */
51
89
  attributes: { [key: string]: string } = {};
52
90
 
91
+ /**
92
+ * @generated from field: livekit.proto.ParticipantKind kind = 6;
93
+ */
94
+ kind = ParticipantKind.STANDARD;
95
+
53
96
  constructor(data?: PartialMessage<ParticipantInfo>) {
54
97
  super();
55
98
  proto3.util.initPartial(data, this);
@@ -63,6 +106,7 @@ export class ParticipantInfo extends Message<ParticipantInfo> {
63
106
  { no: 3, name: "identity", kind: "scalar", T: 9 /* ScalarType.STRING */ },
64
107
  { no: 4, name: "metadata", kind: "scalar", T: 9 /* ScalarType.STRING */ },
65
108
  { no: 5, name: "attributes", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
109
+ { no: 6, name: "kind", kind: "enum", T: proto3.getEnumType(ParticipantKind) },
66
110
  ]);
67
111
 
68
112
  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ParticipantInfo {
@@ -681,3 +681,167 @@ export class OwnedTrack extends Message<OwnedTrack> {
681
681
  }
682
682
  }
683
683
 
684
+ /**
685
+ * Mute/UnMute a track
686
+ *
687
+ * @generated from message livekit.proto.LocalTrackMuteRequest
688
+ */
689
+ export class LocalTrackMuteRequest extends Message<LocalTrackMuteRequest> {
690
+ /**
691
+ * @generated from field: uint64 track_handle = 1;
692
+ */
693
+ trackHandle = protoInt64.zero;
694
+
695
+ /**
696
+ * @generated from field: bool mute = 2;
697
+ */
698
+ mute = false;
699
+
700
+ constructor(data?: PartialMessage<LocalTrackMuteRequest>) {
701
+ super();
702
+ proto3.util.initPartial(data, this);
703
+ }
704
+
705
+ static readonly runtime: typeof proto3 = proto3;
706
+ static readonly typeName = "livekit.proto.LocalTrackMuteRequest";
707
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
708
+ { no: 1, name: "track_handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
709
+ { no: 2, name: "mute", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
710
+ ]);
711
+
712
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LocalTrackMuteRequest {
713
+ return new LocalTrackMuteRequest().fromBinary(bytes, options);
714
+ }
715
+
716
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LocalTrackMuteRequest {
717
+ return new LocalTrackMuteRequest().fromJson(jsonValue, options);
718
+ }
719
+
720
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LocalTrackMuteRequest {
721
+ return new LocalTrackMuteRequest().fromJsonString(jsonString, options);
722
+ }
723
+
724
+ static equals(a: LocalTrackMuteRequest | PlainMessage<LocalTrackMuteRequest> | undefined, b: LocalTrackMuteRequest | PlainMessage<LocalTrackMuteRequest> | undefined): boolean {
725
+ return proto3.util.equals(LocalTrackMuteRequest, a, b);
726
+ }
727
+ }
728
+
729
+ /**
730
+ * @generated from message livekit.proto.LocalTrackMuteResponse
731
+ */
732
+ export class LocalTrackMuteResponse extends Message<LocalTrackMuteResponse> {
733
+ /**
734
+ * @generated from field: bool muted = 1;
735
+ */
736
+ muted = false;
737
+
738
+ constructor(data?: PartialMessage<LocalTrackMuteResponse>) {
739
+ super();
740
+ proto3.util.initPartial(data, this);
741
+ }
742
+
743
+ static readonly runtime: typeof proto3 = proto3;
744
+ static readonly typeName = "livekit.proto.LocalTrackMuteResponse";
745
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
746
+ { no: 1, name: "muted", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
747
+ ]);
748
+
749
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): LocalTrackMuteResponse {
750
+ return new LocalTrackMuteResponse().fromBinary(bytes, options);
751
+ }
752
+
753
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): LocalTrackMuteResponse {
754
+ return new LocalTrackMuteResponse().fromJson(jsonValue, options);
755
+ }
756
+
757
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): LocalTrackMuteResponse {
758
+ return new LocalTrackMuteResponse().fromJsonString(jsonString, options);
759
+ }
760
+
761
+ static equals(a: LocalTrackMuteResponse | PlainMessage<LocalTrackMuteResponse> | undefined, b: LocalTrackMuteResponse | PlainMessage<LocalTrackMuteResponse> | undefined): boolean {
762
+ return proto3.util.equals(LocalTrackMuteResponse, a, b);
763
+ }
764
+ }
765
+
766
+ /**
767
+ * Enable/Disable a remote track
768
+ *
769
+ * @generated from message livekit.proto.EnableRemoteTrackRequest
770
+ */
771
+ export class EnableRemoteTrackRequest extends Message<EnableRemoteTrackRequest> {
772
+ /**
773
+ * @generated from field: uint64 track_handle = 1;
774
+ */
775
+ trackHandle = protoInt64.zero;
776
+
777
+ /**
778
+ * @generated from field: bool enabled = 2;
779
+ */
780
+ enabled = false;
781
+
782
+ constructor(data?: PartialMessage<EnableRemoteTrackRequest>) {
783
+ super();
784
+ proto3.util.initPartial(data, this);
785
+ }
786
+
787
+ static readonly runtime: typeof proto3 = proto3;
788
+ static readonly typeName = "livekit.proto.EnableRemoteTrackRequest";
789
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
790
+ { no: 1, name: "track_handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
791
+ { no: 2, name: "enabled", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
792
+ ]);
793
+
794
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): EnableRemoteTrackRequest {
795
+ return new EnableRemoteTrackRequest().fromBinary(bytes, options);
796
+ }
797
+
798
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): EnableRemoteTrackRequest {
799
+ return new EnableRemoteTrackRequest().fromJson(jsonValue, options);
800
+ }
801
+
802
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): EnableRemoteTrackRequest {
803
+ return new EnableRemoteTrackRequest().fromJsonString(jsonString, options);
804
+ }
805
+
806
+ static equals(a: EnableRemoteTrackRequest | PlainMessage<EnableRemoteTrackRequest> | undefined, b: EnableRemoteTrackRequest | PlainMessage<EnableRemoteTrackRequest> | undefined): boolean {
807
+ return proto3.util.equals(EnableRemoteTrackRequest, a, b);
808
+ }
809
+ }
810
+
811
+ /**
812
+ * @generated from message livekit.proto.EnableRemoteTrackResponse
813
+ */
814
+ export class EnableRemoteTrackResponse extends Message<EnableRemoteTrackResponse> {
815
+ /**
816
+ * @generated from field: bool enabled = 1;
817
+ */
818
+ enabled = false;
819
+
820
+ constructor(data?: PartialMessage<EnableRemoteTrackResponse>) {
821
+ super();
822
+ proto3.util.initPartial(data, this);
823
+ }
824
+
825
+ static readonly runtime: typeof proto3 = proto3;
826
+ static readonly typeName = "livekit.proto.EnableRemoteTrackResponse";
827
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
828
+ { no: 1, name: "enabled", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
829
+ ]);
830
+
831
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): EnableRemoteTrackResponse {
832
+ return new EnableRemoteTrackResponse().fromBinary(bytes, options);
833
+ }
834
+
835
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): EnableRemoteTrackResponse {
836
+ return new EnableRemoteTrackResponse().fromJson(jsonValue, options);
837
+ }
838
+
839
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): EnableRemoteTrackResponse {
840
+ return new EnableRemoteTrackResponse().fromJsonString(jsonString, options);
841
+ }
842
+
843
+ static equals(a: EnableRemoteTrackResponse | PlainMessage<EnableRemoteTrackResponse> | undefined, b: EnableRemoteTrackResponse | PlainMessage<EnableRemoteTrackResponse> | undefined): boolean {
844
+ return proto3.util.equals(EnableRemoteTrackResponse, a, b);
845
+ }
846
+ }
847
+
@@ -19,6 +19,7 @@
19
19
 
20
20
  import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
21
21
  import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
22
+ import { TrackSource } from "./track_pb.js";
22
23
  import { FfiOwnedHandle } from "./handle_pb.js";
23
24
 
24
25
  /**
@@ -298,6 +299,106 @@ export class NewVideoStreamResponse extends Message<NewVideoStreamResponse> {
298
299
  }
299
300
  }
300
301
 
302
+ /**
303
+ * Request a video stream from a participant
304
+ *
305
+ * @generated from message livekit.proto.VideoStreamFromParticipantRequest
306
+ */
307
+ export class VideoStreamFromParticipantRequest extends Message<VideoStreamFromParticipantRequest> {
308
+ /**
309
+ * @generated from field: uint64 participant_handle = 1;
310
+ */
311
+ participantHandle = protoInt64.zero;
312
+
313
+ /**
314
+ * @generated from field: livekit.proto.VideoStreamType type = 2;
315
+ */
316
+ type = VideoStreamType.VIDEO_STREAM_NATIVE;
317
+
318
+ /**
319
+ * @generated from field: livekit.proto.TrackSource track_source = 3;
320
+ */
321
+ trackSource = TrackSource.SOURCE_UNKNOWN;
322
+
323
+ /**
324
+ * @generated from field: optional livekit.proto.VideoBufferType format = 4;
325
+ */
326
+ format?: VideoBufferType;
327
+
328
+ /**
329
+ * @generated from field: bool normalize_stride = 5;
330
+ */
331
+ normalizeStride = false;
332
+
333
+ constructor(data?: PartialMessage<VideoStreamFromParticipantRequest>) {
334
+ super();
335
+ proto3.util.initPartial(data, this);
336
+ }
337
+
338
+ static readonly runtime: typeof proto3 = proto3;
339
+ static readonly typeName = "livekit.proto.VideoStreamFromParticipantRequest";
340
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
341
+ { no: 1, name: "participant_handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
342
+ { no: 2, name: "type", kind: "enum", T: proto3.getEnumType(VideoStreamType) },
343
+ { no: 3, name: "track_source", kind: "enum", T: proto3.getEnumType(TrackSource) },
344
+ { no: 4, name: "format", kind: "enum", T: proto3.getEnumType(VideoBufferType), opt: true },
345
+ { no: 5, name: "normalize_stride", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
346
+ ]);
347
+
348
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoStreamFromParticipantRequest {
349
+ return new VideoStreamFromParticipantRequest().fromBinary(bytes, options);
350
+ }
351
+
352
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoStreamFromParticipantRequest {
353
+ return new VideoStreamFromParticipantRequest().fromJson(jsonValue, options);
354
+ }
355
+
356
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoStreamFromParticipantRequest {
357
+ return new VideoStreamFromParticipantRequest().fromJsonString(jsonString, options);
358
+ }
359
+
360
+ static equals(a: VideoStreamFromParticipantRequest | PlainMessage<VideoStreamFromParticipantRequest> | undefined, b: VideoStreamFromParticipantRequest | PlainMessage<VideoStreamFromParticipantRequest> | undefined): boolean {
361
+ return proto3.util.equals(VideoStreamFromParticipantRequest, a, b);
362
+ }
363
+ }
364
+
365
+ /**
366
+ * @generated from message livekit.proto.VideoStreamFromParticipantResponse
367
+ */
368
+ export class VideoStreamFromParticipantResponse extends Message<VideoStreamFromParticipantResponse> {
369
+ /**
370
+ * @generated from field: livekit.proto.OwnedVideoStream stream = 1;
371
+ */
372
+ stream?: OwnedVideoStream;
373
+
374
+ constructor(data?: PartialMessage<VideoStreamFromParticipantResponse>) {
375
+ super();
376
+ proto3.util.initPartial(data, this);
377
+ }
378
+
379
+ static readonly runtime: typeof proto3 = proto3;
380
+ static readonly typeName = "livekit.proto.VideoStreamFromParticipantResponse";
381
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
382
+ { no: 1, name: "stream", kind: "message", T: OwnedVideoStream },
383
+ ]);
384
+
385
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoStreamFromParticipantResponse {
386
+ return new VideoStreamFromParticipantResponse().fromBinary(bytes, options);
387
+ }
388
+
389
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoStreamFromParticipantResponse {
390
+ return new VideoStreamFromParticipantResponse().fromJson(jsonValue, options);
391
+ }
392
+
393
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoStreamFromParticipantResponse {
394
+ return new VideoStreamFromParticipantResponse().fromJsonString(jsonString, options);
395
+ }
396
+
397
+ static equals(a: VideoStreamFromParticipantResponse | PlainMessage<VideoStreamFromParticipantResponse> | undefined, b: VideoStreamFromParticipantResponse | PlainMessage<VideoStreamFromParticipantResponse> | undefined): boolean {
398
+ return proto3.util.equals(VideoStreamFromParticipantResponse, a, b);
399
+ }
400
+ }
401
+
301
402
  /**
302
403
  * Create a new VideoSource
303
404
  * VideoSource is used to send video frame to a track
@@ -0,0 +1,17 @@
1
+ // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ export interface TranscriptionSegment {
5
+ id: string;
6
+ text: string;
7
+ startTime: bigint;
8
+ endTime: bigint;
9
+ language: string;
10
+ final: boolean;
11
+ }
12
+
13
+ export interface Transcription {
14
+ participantIdentity: string;
15
+ trackSid: string;
16
+ segments: TranscriptionSegment[];
17
+ }