@livekit/protocol 1.45.1 → 1.45.3

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.
@@ -18,7 +18,36 @@
18
18
  // @ts-nocheck
19
19
 
20
20
  import { proto3 } from "@bufbuild/protobuf";
21
- import { AudioCodec, ImageCodec, VideoCodec, WebhookConfig } from "./livekit_models_pb.js";
21
+ import { AudioCodec, ImageCodec, ParticipantInfo_Kind, VideoCodec, WebhookConfig } from "./livekit_models_pb.js";
22
+
23
+ /**
24
+ * @generated from enum livekit.AudioChannel
25
+ */
26
+ export const AudioChannel = /*@__PURE__*/ proto3.makeEnum(
27
+ "livekit.AudioChannel",
28
+ [
29
+ {no: 0, name: "AUDIO_CHANNEL_BOTH", localName: "BOTH"},
30
+ {no: 1, name: "AUDIO_CHANNEL_LEFT", localName: "LEFT"},
31
+ {no: 2, name: "AUDIO_CHANNEL_RIGHT", localName: "RIGHT"},
32
+ ],
33
+ );
34
+
35
+ /**
36
+ * @generated from enum livekit.EncodingOptionsPreset
37
+ */
38
+ export const EncodingOptionsPreset = /*@__PURE__*/ proto3.makeEnum(
39
+ "livekit.EncodingOptionsPreset",
40
+ [
41
+ {no: 0, name: "H264_720P_30"},
42
+ {no: 1, name: "H264_720P_60"},
43
+ {no: 2, name: "H264_1080P_30"},
44
+ {no: 3, name: "H264_1080P_60"},
45
+ {no: 4, name: "PORTRAIT_H264_720P_30"},
46
+ {no: 5, name: "PORTRAIT_H264_720P_60"},
47
+ {no: 6, name: "PORTRAIT_H264_1080P_30"},
48
+ {no: 7, name: "PORTRAIT_H264_1080P_60"},
49
+ ],
50
+ );
22
51
 
23
52
  /**
24
53
  * @generated from enum livekit.EncodedFileType
@@ -33,6 +62,19 @@ export const EncodedFileType = /*@__PURE__*/ proto3.makeEnum(
33
62
  ],
34
63
  );
35
64
 
65
+ /**
66
+ * @generated from enum livekit.StreamProtocol
67
+ */
68
+ export const StreamProtocol = /*@__PURE__*/ proto3.makeEnum(
69
+ "livekit.StreamProtocol",
70
+ [
71
+ {no: 0, name: "DEFAULT_PROTOCOL"},
72
+ {no: 1, name: "RTMP"},
73
+ {no: 2, name: "SRT"},
74
+ {no: 3, name: "WEBSOCKET"},
75
+ ],
76
+ );
77
+
36
78
  /**
37
79
  * @generated from enum livekit.SegmentedFileProtocol
38
80
  */
@@ -68,43 +110,13 @@ export const ImageFileSuffix = /*@__PURE__*/ proto3.makeEnum(
68
110
  );
69
111
 
70
112
  /**
71
- * @generated from enum livekit.StreamProtocol
72
- */
73
- export const StreamProtocol = /*@__PURE__*/ proto3.makeEnum(
74
- "livekit.StreamProtocol",
75
- [
76
- {no: 0, name: "DEFAULT_PROTOCOL"},
77
- {no: 1, name: "RTMP"},
78
- {no: 2, name: "SRT"},
79
- ],
80
- );
81
-
82
- /**
83
- * @generated from enum livekit.AudioMixing
84
- */
85
- export const AudioMixing = /*@__PURE__*/ proto3.makeEnum(
86
- "livekit.AudioMixing",
87
- [
88
- {no: 0, name: "DEFAULT_MIXING"},
89
- {no: 1, name: "DUAL_CHANNEL_AGENT"},
90
- {no: 2, name: "DUAL_CHANNEL_ALTERNATE"},
91
- ],
92
- );
93
-
94
- /**
95
- * @generated from enum livekit.EncodingOptionsPreset
113
+ * @generated from enum livekit.EgressSourceType
96
114
  */
97
- export const EncodingOptionsPreset = /*@__PURE__*/ proto3.makeEnum(
98
- "livekit.EncodingOptionsPreset",
115
+ export const EgressSourceType = /*@__PURE__*/ proto3.makeEnum(
116
+ "livekit.EgressSourceType",
99
117
  [
100
- {no: 0, name: "H264_720P_30"},
101
- {no: 1, name: "H264_720P_60"},
102
- {no: 2, name: "H264_1080P_30"},
103
- {no: 3, name: "H264_1080P_60"},
104
- {no: 4, name: "PORTRAIT_H264_720P_30"},
105
- {no: 5, name: "PORTRAIT_H264_720P_60"},
106
- {no: 6, name: "PORTRAIT_H264_1080P_30"},
107
- {no: 7, name: "PORTRAIT_H264_1080P_60"},
118
+ {no: 0, name: "EGRESS_SOURCE_TYPE_WEB", localName: "WEB"},
119
+ {no: 1, name: "EGRESS_SOURCE_TYPE_SDK", localName: "SDK"},
108
120
  ],
109
121
  );
110
122
 
@@ -125,142 +137,199 @@ export const EgressStatus = /*@__PURE__*/ proto3.makeEnum(
125
137
  );
126
138
 
127
139
  /**
128
- * @generated from enum livekit.EgressSourceType
140
+ * @generated from enum livekit.AudioMixing
129
141
  */
130
- export const EgressSourceType = /*@__PURE__*/ proto3.makeEnum(
131
- "livekit.EgressSourceType",
142
+ export const AudioMixing = /*@__PURE__*/ proto3.makeEnum(
143
+ "livekit.AudioMixing",
132
144
  [
133
- {no: 0, name: "EGRESS_SOURCE_TYPE_WEB", localName: "WEB"},
134
- {no: 1, name: "EGRESS_SOURCE_TYPE_SDK", localName: "SDK"},
145
+ {no: 0, name: "DEFAULT_MIXING"},
146
+ {no: 1, name: "DUAL_CHANNEL_AGENT"},
147
+ {no: 2, name: "DUAL_CHANNEL_ALTERNATE"},
135
148
  ],
136
149
  );
137
150
 
138
151
  /**
139
- * composite using a web browser
140
- *
141
- * @generated from message livekit.RoomCompositeEgressRequest
152
+ * @generated from message livekit.StartEgressRequest
142
153
  */
143
- export const RoomCompositeEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
144
- "livekit.RoomCompositeEgressRequest",
154
+ export const StartEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
155
+ "livekit.StartEgressRequest",
145
156
  () => [
146
157
  { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
147
- { no: 2, name: "layout", kind: "scalar", T: 9 /* ScalarType.STRING */ },
148
- { no: 3, name: "audio_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
149
- { no: 15, name: "audio_mixing", kind: "enum", T: proto3.getEnumType(AudioMixing) },
150
- { no: 4, name: "video_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
151
- { no: 5, name: "custom_base_url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
152
- { no: 6, name: "file", kind: "message", T: EncodedFileOutput, oneof: "output" },
153
- { no: 7, name: "stream", kind: "message", T: StreamOutput, oneof: "output" },
154
- { no: 10, name: "segments", kind: "message", T: SegmentedFileOutput, oneof: "output" },
155
- { no: 8, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
156
- { no: 9, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
157
- { no: 11, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
158
- { no: 12, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
159
- { no: 13, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
160
- { no: 14, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
161
- { no: 16, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
158
+ { no: 2, name: "template", kind: "message", T: TemplateSource, oneof: "source" },
159
+ { no: 3, name: "web", kind: "message", T: WebSource, oneof: "source" },
160
+ { no: 4, name: "media", kind: "message", T: MediaSource, oneof: "source" },
161
+ { no: 5, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "encoding" },
162
+ { no: 6, name: "advanced", kind: "message", T: EncodingOptions, oneof: "encoding" },
163
+ { no: 7, name: "outputs", kind: "message", T: Output, repeated: true },
164
+ { no: 8, name: "storage", kind: "message", T: StorageConfig },
165
+ { no: 9, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
162
166
  ],
163
167
  );
164
168
 
165
169
  /**
166
- * record any website
170
+ * Room composite recording via layout template.
171
+ * Service generates token, constructs recorder URL, awaits start signal.
167
172
  *
168
- * @generated from message livekit.WebEgressRequest
173
+ * @generated from message livekit.TemplateSource
169
174
  */
170
- export const WebEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
171
- "livekit.WebEgressRequest",
175
+ export const TemplateSource = /*@__PURE__*/ proto3.makeMessageType(
176
+ "livekit.TemplateSource",
172
177
  () => [
173
- { no: 1, name: "url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
178
+ { no: 1, name: "layout", kind: "scalar", T: 9 /* ScalarType.STRING */ },
174
179
  { no: 2, name: "audio_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
175
180
  { no: 3, name: "video_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
176
- { no: 12, name: "await_start_signal", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
177
- { no: 4, name: "file", kind: "message", T: EncodedFileOutput, oneof: "output" },
178
- { no: 5, name: "stream", kind: "message", T: StreamOutput, oneof: "output" },
179
- { no: 6, name: "segments", kind: "message", T: SegmentedFileOutput, oneof: "output" },
180
- { no: 7, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
181
- { no: 8, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
182
- { no: 9, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
183
- { no: 10, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
184
- { no: 11, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
185
- { no: 13, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
186
- { no: 14, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
181
+ { no: 4, name: "custom_base_url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
187
182
  ],
188
183
  );
189
184
 
190
185
  /**
191
- * record audio and video from a single participant
186
+ * Record a custom URL via headless browser.
192
187
  *
193
- * @generated from message livekit.ParticipantEgressRequest
188
+ * @generated from message livekit.WebSource
194
189
  */
195
- export const ParticipantEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
196
- "livekit.ParticipantEgressRequest",
190
+ export const WebSource = /*@__PURE__*/ proto3.makeMessageType(
191
+ "livekit.WebSource",
197
192
  () => [
198
- { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
199
- { no: 2, name: "identity", kind: "scalar", T: 9 /* ScalarType.STRING */ },
200
- { no: 3, name: "screen_share", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
201
- { no: 4, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
202
- { no: 5, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
203
- { no: 6, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
204
- { no: 7, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
205
- { no: 8, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
206
- { no: 9, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
207
- { no: 10, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
193
+ { no: 1, name: "url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
194
+ { no: 2, name: "audio_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
195
+ { no: 3, name: "video_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
196
+ { no: 4, name: "await_start_signal", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
208
197
  ],
209
198
  );
210
199
 
211
200
  /**
212
- * containerize up to one audio and one video track
201
+ * Capture tracks directly from a room via SDK.
202
+ * Unifies deprecated Participant, TrackComposite, and Track egress.
213
203
  *
214
- * @generated from message livekit.TrackCompositeEgressRequest
204
+ * @generated from message livekit.MediaSource
215
205
  */
216
- export const TrackCompositeEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
217
- "livekit.TrackCompositeEgressRequest",
206
+ export const MediaSource = /*@__PURE__*/ proto3.makeMessageType(
207
+ "livekit.MediaSource",
218
208
  () => [
219
- { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
220
- { no: 2, name: "audio_track_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
221
- { no: 3, name: "video_track_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
222
- { no: 4, name: "file", kind: "message", T: EncodedFileOutput, oneof: "output" },
223
- { no: 5, name: "stream", kind: "message", T: StreamOutput, oneof: "output" },
224
- { no: 8, name: "segments", kind: "message", T: SegmentedFileOutput, oneof: "output" },
225
- { no: 6, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
226
- { no: 7, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
227
- { no: 11, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
228
- { no: 12, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
229
- { no: 13, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
230
- { no: 14, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
231
- { no: 15, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
209
+ { no: 1, name: "video_track_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "video" },
210
+ { no: 2, name: "participant_video", kind: "message", T: ParticipantVideo, oneof: "video" },
211
+ { no: 3, name: "audio", kind: "message", T: AudioConfig },
212
+ { no: 4, name: "data", kind: "message", T: DataConfig },
232
213
  ],
233
214
  );
234
215
 
235
216
  /**
236
- * record tracks individually, without transcoding
217
+ * @generated from message livekit.ParticipantVideo
218
+ */
219
+ export const ParticipantVideo = /*@__PURE__*/ proto3.makeMessageType(
220
+ "livekit.ParticipantVideo",
221
+ () => [
222
+ { no: 1, name: "identity", kind: "scalar", T: 9 /* ScalarType.STRING */ },
223
+ { no: 2, name: "prefer_screen_share", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
224
+ ],
225
+ );
226
+
227
+ /**
228
+ * Unified audio selection and channel routing.
229
+ * Each route specifies both which audio to capture and which channel to output to.
237
230
  *
238
- * @generated from message livekit.TrackEgressRequest
231
+ * @generated from message livekit.AudioConfig
239
232
  */
240
- export const TrackEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
241
- "livekit.TrackEgressRequest",
233
+ export const AudioConfig = /*@__PURE__*/ proto3.makeMessageType(
234
+ "livekit.AudioConfig",
242
235
  () => [
243
- { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
244
- { no: 2, name: "track_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
245
- { no: 3, name: "file", kind: "message", T: DirectFileOutput, oneof: "output" },
246
- { no: 4, name: "websocket_url", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "output" },
247
- { no: 5, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
236
+ { no: 1, name: "routes", kind: "message", T: AudioRoute, repeated: true },
248
237
  ],
249
238
  );
250
239
 
251
240
  /**
252
- * @generated from message livekit.EncodedFileOutput
241
+ * @generated from message livekit.AudioRoute
253
242
  */
254
- export const EncodedFileOutput = /*@__PURE__*/ proto3.makeMessageType(
255
- "livekit.EncodedFileOutput",
243
+ export const AudioRoute = /*@__PURE__*/ proto3.makeMessageType(
244
+ "livekit.AudioRoute",
245
+ () => [
246
+ { no: 1, name: "track_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "match" },
247
+ { no: 2, name: "participant_identity", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "match" },
248
+ { no: 3, name: "participant_kind", kind: "enum", T: proto3.getEnumType(ParticipantInfo_Kind), oneof: "match" },
249
+ { no: 4, name: "channel", kind: "enum", T: proto3.getEnumType(AudioChannel) },
250
+ ],
251
+ );
252
+
253
+ /**
254
+ * @generated from message livekit.DataConfig
255
+ */
256
+ export const DataConfig = /*@__PURE__*/ proto3.makeMessageType(
257
+ "livekit.DataConfig",
258
+ () => [
259
+ { no: 1, name: "selectors", kind: "message", T: DataSelector, repeated: true },
260
+ ],
261
+ );
262
+
263
+ /**
264
+ * @generated from message livekit.DataSelector
265
+ */
266
+ export const DataSelector = /*@__PURE__*/ proto3.makeMessageType(
267
+ "livekit.DataSelector",
268
+ () => [
269
+ { no: 1, name: "track_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "match" },
270
+ { no: 2, name: "participant_identity", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "match" },
271
+ { no: 3, name: "topic", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "match" },
272
+ ],
273
+ );
274
+
275
+ /**
276
+ * @generated from message livekit.EncodingOptions
277
+ */
278
+ export const EncodingOptions = /*@__PURE__*/ proto3.makeMessageType(
279
+ "livekit.EncodingOptions",
280
+ () => [
281
+ { no: 1, name: "width", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
282
+ { no: 2, name: "height", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
283
+ { no: 3, name: "depth", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
284
+ { no: 4, name: "framerate", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
285
+ { no: 5, name: "audio_codec", kind: "enum", T: proto3.getEnumType(AudioCodec) },
286
+ { no: 6, name: "audio_bitrate", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
287
+ { no: 7, name: "audio_frequency", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
288
+ { no: 8, name: "video_codec", kind: "enum", T: proto3.getEnumType(VideoCodec) },
289
+ { no: 9, name: "video_bitrate", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
290
+ { no: 10, name: "key_frame_interval", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
291
+ { no: 11, name: "audio_quality", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
292
+ { no: 12, name: "video_quality", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
293
+ ],
294
+ );
295
+
296
+ /**
297
+ * @generated from message livekit.Output
298
+ */
299
+ export const Output = /*@__PURE__*/ proto3.makeMessageType(
300
+ "livekit.Output",
301
+ () => [
302
+ { no: 1, name: "file", kind: "message", T: FileOutput, oneof: "config" },
303
+ { no: 2, name: "stream", kind: "message", T: StreamOutput, oneof: "config" },
304
+ { no: 3, name: "segments", kind: "message", T: SegmentedFileOutput, oneof: "config" },
305
+ { no: 4, name: "images", kind: "message", T: ImageOutput, oneof: "config" },
306
+ { no: 6, name: "storage", kind: "message", T: StorageConfig },
307
+ ],
308
+ );
309
+
310
+ /**
311
+ * Unified file output — replaces v1 EncodedFileOutput and DirectFileOutput.
312
+ * Whether transcoded depends on encoding options on the request.
313
+ *
314
+ * @generated from message livekit.FileOutput
315
+ */
316
+ export const FileOutput = /*@__PURE__*/ proto3.makeMessageType(
317
+ "livekit.FileOutput",
256
318
  () => [
257
319
  { no: 1, name: "file_type", kind: "enum", T: proto3.getEnumType(EncodedFileType) },
258
320
  { no: 2, name: "filepath", kind: "scalar", T: 9 /* ScalarType.STRING */ },
259
- { no: 6, name: "disable_manifest", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
260
- { no: 3, name: "s3", kind: "message", T: S3Upload, oneof: "output" },
261
- { no: 4, name: "gcp", kind: "message", T: GCPUpload, oneof: "output" },
262
- { no: 5, name: "azure", kind: "message", T: AzureBlobUpload, oneof: "output" },
263
- { no: 7, name: "aliOSS", kind: "message", T: AliOSSUpload, oneof: "output" },
321
+ { no: 3, name: "disable_manifest", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
322
+ ],
323
+ );
324
+
325
+ /**
326
+ * @generated from message livekit.StreamOutput
327
+ */
328
+ export const StreamOutput = /*@__PURE__*/ proto3.makeMessageType(
329
+ "livekit.StreamOutput",
330
+ () => [
331
+ { no: 1, name: "protocol", kind: "enum", T: proto3.getEnumType(StreamProtocol) },
332
+ { no: 2, name: "urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
264
333
  ],
265
334
  );
266
335
 
@@ -287,21 +356,8 @@ export const SegmentedFileOutput = /*@__PURE__*/ proto3.makeMessageType(
287
356
  );
288
357
 
289
358
  /**
290
- * @generated from message livekit.DirectFileOutput
291
- */
292
- export const DirectFileOutput = /*@__PURE__*/ proto3.makeMessageType(
293
- "livekit.DirectFileOutput",
294
- () => [
295
- { no: 1, name: "filepath", kind: "scalar", T: 9 /* ScalarType.STRING */ },
296
- { no: 5, name: "disable_manifest", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
297
- { no: 2, name: "s3", kind: "message", T: S3Upload, oneof: "output" },
298
- { no: 3, name: "gcp", kind: "message", T: GCPUpload, oneof: "output" },
299
- { no: 4, name: "azure", kind: "message", T: AzureBlobUpload, oneof: "output" },
300
- { no: 6, name: "aliOSS", kind: "message", T: AliOSSUpload, oneof: "output" },
301
- ],
302
- );
303
-
304
- /**
359
+ * Capture images at a specified interval
360
+ *
305
361
  * @generated from message livekit.ImageOutput
306
362
  */
307
363
  export const ImageOutput = /*@__PURE__*/ proto3.makeMessageType(
@@ -321,6 +377,19 @@ export const ImageOutput = /*@__PURE__*/ proto3.makeMessageType(
321
377
  ],
322
378
  );
323
379
 
380
+ /**
381
+ * @generated from message livekit.StorageConfig
382
+ */
383
+ export const StorageConfig = /*@__PURE__*/ proto3.makeMessageType(
384
+ "livekit.StorageConfig",
385
+ () => [
386
+ { no: 1, name: "s3", kind: "message", T: S3Upload, oneof: "provider" },
387
+ { no: 2, name: "gcp", kind: "message", T: GCPUpload, oneof: "provider" },
388
+ { no: 3, name: "azure", kind: "message", T: AzureBlobUpload, oneof: "provider" },
389
+ { no: 4, name: "aliOSS", kind: "message", T: AliOSSUpload, oneof: "provider" },
390
+ ],
391
+ );
392
+
324
393
  /**
325
394
  * @generated from message livekit.S3Upload
326
395
  */
@@ -393,61 +462,6 @@ export const ProxyConfig = /*@__PURE__*/ proto3.makeMessageType(
393
462
  ],
394
463
  );
395
464
 
396
- /**
397
- * @generated from message livekit.StreamOutput
398
- */
399
- export const StreamOutput = /*@__PURE__*/ proto3.makeMessageType(
400
- "livekit.StreamOutput",
401
- () => [
402
- { no: 1, name: "protocol", kind: "enum", T: proto3.getEnumType(StreamProtocol) },
403
- { no: 2, name: "urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
404
- ],
405
- );
406
-
407
- /**
408
- * @generated from message livekit.EncodingOptions
409
- */
410
- export const EncodingOptions = /*@__PURE__*/ proto3.makeMessageType(
411
- "livekit.EncodingOptions",
412
- () => [
413
- { no: 1, name: "width", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
414
- { no: 2, name: "height", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
415
- { no: 3, name: "depth", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
416
- { no: 4, name: "framerate", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
417
- { no: 5, name: "audio_codec", kind: "enum", T: proto3.getEnumType(AudioCodec) },
418
- { no: 6, name: "audio_bitrate", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
419
- { no: 11, name: "audio_quality", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
420
- { no: 7, name: "audio_frequency", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
421
- { no: 8, name: "video_codec", kind: "enum", T: proto3.getEnumType(VideoCodec) },
422
- { no: 9, name: "video_bitrate", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
423
- { no: 12, name: "video_quality", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
424
- { no: 10, name: "key_frame_interval", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ },
425
- ],
426
- );
427
-
428
- /**
429
- * @generated from message livekit.UpdateLayoutRequest
430
- */
431
- export const UpdateLayoutRequest = /*@__PURE__*/ proto3.makeMessageType(
432
- "livekit.UpdateLayoutRequest",
433
- () => [
434
- { no: 1, name: "egress_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
435
- { no: 2, name: "layout", kind: "scalar", T: 9 /* ScalarType.STRING */ },
436
- ],
437
- );
438
-
439
- /**
440
- * @generated from message livekit.UpdateStreamRequest
441
- */
442
- export const UpdateStreamRequest = /*@__PURE__*/ proto3.makeMessageType(
443
- "livekit.UpdateStreamRequest",
444
- () => [
445
- { no: 1, name: "egress_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
446
- { no: 2, name: "add_output_urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
447
- { no: 3, name: "remove_output_urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
448
- ],
449
- );
450
-
451
465
  /**
452
466
  * @generated from message livekit.ListEgressRequest
453
467
  */
@@ -470,6 +484,20 @@ export const ListEgressResponse = /*@__PURE__*/ proto3.makeMessageType(
470
484
  ],
471
485
  );
472
486
 
487
+ /**
488
+ * @generated from message livekit.UpdateEgressRequest
489
+ */
490
+ export const UpdateEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
491
+ "livekit.UpdateEgressRequest",
492
+ () => [
493
+ { no: 1, name: "egress_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
494
+ { no: 2, name: "url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
495
+ { no: 3, name: "layout", kind: "scalar", T: 9 /* ScalarType.STRING */ },
496
+ { no: 4, name: "add_stream_urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
497
+ { no: 5, name: "remove_stream_urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
498
+ ],
499
+ );
500
+
473
501
  /**
474
502
  * @generated from message livekit.StopEgressRequest
475
503
  */
@@ -494,35 +522,25 @@ export const EgressInfo = /*@__PURE__*/ proto3.makeMessageType(
494
522
  { no: 10, name: "started_at", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
495
523
  { no: 11, name: "ended_at", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
496
524
  { no: 18, name: "updated_at", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
497
- { no: 21, name: "details", kind: "scalar", T: 9 /* ScalarType.STRING */ },
498
- { no: 9, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */ },
499
- { no: 22, name: "error_code", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
525
+ { no: 30, name: "replay", kind: "message", T: ExportReplayRequest, oneof: "request" },
500
526
  { no: 4, name: "room_composite", kind: "message", T: RoomCompositeEgressRequest, oneof: "request" },
501
527
  { no: 14, name: "web", kind: "message", T: WebEgressRequest, oneof: "request" },
502
528
  { no: 19, name: "participant", kind: "message", T: ParticipantEgressRequest, oneof: "request" },
503
529
  { no: 5, name: "track_composite", kind: "message", T: TrackCompositeEgressRequest, oneof: "request" },
504
530
  { no: 6, name: "track", kind: "message", T: TrackEgressRequest, oneof: "request" },
505
- { no: 7, name: "stream", kind: "message", T: StreamInfoList, oneof: "result" },
506
- { no: 8, name: "file", kind: "message", T: FileInfo, oneof: "result" },
507
- { no: 12, name: "segments", kind: "message", T: SegmentsInfo, oneof: "result" },
508
531
  { no: 15, name: "stream_results", kind: "message", T: StreamInfo, repeated: true },
509
532
  { no: 16, name: "file_results", kind: "message", T: FileInfo, repeated: true },
510
533
  { no: 17, name: "segment_results", kind: "message", T: SegmentsInfo, repeated: true },
511
534
  { no: 20, name: "image_results", kind: "message", T: ImagesInfo, repeated: true },
535
+ { no: 9, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */ },
536
+ { no: 22, name: "error_code", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
537
+ { no: 21, name: "details", kind: "scalar", T: 9 /* ScalarType.STRING */ },
512
538
  { no: 23, name: "manifest_location", kind: "scalar", T: 9 /* ScalarType.STRING */ },
513
539
  { no: 25, name: "backup_storage_used", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
514
540
  { no: 27, name: "retry_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
515
- ],
516
- );
517
-
518
- /**
519
- * @generated from message livekit.StreamInfoList
520
- * @deprecated
521
- */
522
- export const StreamInfoList = /*@__PURE__*/ proto3.makeMessageType(
523
- "livekit.StreamInfoList",
524
- () => [
525
- { no: 1, name: "info", kind: "message", T: StreamInfo, repeated: true },
541
+ { no: 7, name: "stream", kind: "message", T: StreamInfoList, oneof: "result" },
542
+ { no: 8, name: "file", kind: "message", T: FileInfo, oneof: "result" },
543
+ { no: 12, name: "segments", kind: "message", T: SegmentsInfo, oneof: "result" },
526
544
  ],
527
545
  );
528
546
 
@@ -629,3 +647,190 @@ export const AutoTrackEgress = /*@__PURE__*/ proto3.makeMessageType(
629
647
  ],
630
648
  );
631
649
 
650
+ /**
651
+ * @generated from message livekit.ExportReplayRequest
652
+ */
653
+ export const ExportReplayRequest = /*@__PURE__*/ proto3.makeMessageType(
654
+ "livekit.ExportReplayRequest",
655
+ () => [
656
+ { no: 1, name: "replay_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
657
+ { no: 2, name: "start_offset_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
658
+ { no: 3, name: "end_offset_ms", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
659
+ { no: 4, name: "template", kind: "message", T: TemplateSource, oneof: "source" },
660
+ { no: 5, name: "web", kind: "message", T: WebSource, oneof: "source" },
661
+ { no: 6, name: "media", kind: "message", T: MediaSource, oneof: "source" },
662
+ { no: 7, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "encoding" },
663
+ { no: 8, name: "advanced", kind: "message", T: EncodingOptions, oneof: "encoding" },
664
+ { no: 9, name: "outputs", kind: "message", T: Output, repeated: true },
665
+ { no: 10, name: "storage", kind: "message", T: StorageConfig },
666
+ { no: 11, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
667
+ ],
668
+ );
669
+
670
+ /**
671
+ * @generated from message livekit.RoomCompositeEgressRequest
672
+ */
673
+ export const RoomCompositeEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
674
+ "livekit.RoomCompositeEgressRequest",
675
+ () => [
676
+ { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
677
+ { no: 2, name: "layout", kind: "scalar", T: 9 /* ScalarType.STRING */ },
678
+ { no: 3, name: "audio_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
679
+ { no: 15, name: "audio_mixing", kind: "enum", T: proto3.getEnumType(AudioMixing) },
680
+ { no: 4, name: "video_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
681
+ { no: 5, name: "custom_base_url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
682
+ { no: 6, name: "file", kind: "message", T: EncodedFileOutput, oneof: "output" },
683
+ { no: 7, name: "stream", kind: "message", T: StreamOutput, oneof: "output" },
684
+ { no: 10, name: "segments", kind: "message", T: SegmentedFileOutput, oneof: "output" },
685
+ { no: 8, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
686
+ { no: 9, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
687
+ { no: 11, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
688
+ { no: 12, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
689
+ { no: 13, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
690
+ { no: 14, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
691
+ { no: 16, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
692
+ ],
693
+ );
694
+
695
+ /**
696
+ * @generated from message livekit.WebEgressRequest
697
+ */
698
+ export const WebEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
699
+ "livekit.WebEgressRequest",
700
+ () => [
701
+ { no: 1, name: "url", kind: "scalar", T: 9 /* ScalarType.STRING */ },
702
+ { no: 2, name: "audio_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
703
+ { no: 3, name: "video_only", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
704
+ { no: 12, name: "await_start_signal", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
705
+ { no: 4, name: "file", kind: "message", T: EncodedFileOutput, oneof: "output" },
706
+ { no: 5, name: "stream", kind: "message", T: StreamOutput, oneof: "output" },
707
+ { no: 6, name: "segments", kind: "message", T: SegmentedFileOutput, oneof: "output" },
708
+ { no: 7, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
709
+ { no: 8, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
710
+ { no: 9, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
711
+ { no: 10, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
712
+ { no: 11, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
713
+ { no: 13, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
714
+ { no: 14, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
715
+ ],
716
+ );
717
+
718
+ /**
719
+ * @generated from message livekit.ParticipantEgressRequest
720
+ */
721
+ export const ParticipantEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
722
+ "livekit.ParticipantEgressRequest",
723
+ () => [
724
+ { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
725
+ { no: 2, name: "identity", kind: "scalar", T: 9 /* ScalarType.STRING */ },
726
+ { no: 3, name: "screen_share", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
727
+ { no: 4, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
728
+ { no: 5, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
729
+ { no: 6, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
730
+ { no: 7, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
731
+ { no: 8, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
732
+ { no: 9, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
733
+ { no: 10, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
734
+ ],
735
+ );
736
+
737
+ /**
738
+ * @generated from message livekit.TrackCompositeEgressRequest
739
+ */
740
+ export const TrackCompositeEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
741
+ "livekit.TrackCompositeEgressRequest",
742
+ () => [
743
+ { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
744
+ { no: 2, name: "audio_track_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
745
+ { no: 3, name: "video_track_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
746
+ { no: 4, name: "file", kind: "message", T: EncodedFileOutput, oneof: "output" },
747
+ { no: 5, name: "stream", kind: "message", T: StreamOutput, oneof: "output" },
748
+ { no: 8, name: "segments", kind: "message", T: SegmentedFileOutput, oneof: "output" },
749
+ { no: 6, name: "preset", kind: "enum", T: proto3.getEnumType(EncodingOptionsPreset), oneof: "options" },
750
+ { no: 7, name: "advanced", kind: "message", T: EncodingOptions, oneof: "options" },
751
+ { no: 11, name: "file_outputs", kind: "message", T: EncodedFileOutput, repeated: true },
752
+ { no: 12, name: "stream_outputs", kind: "message", T: StreamOutput, repeated: true },
753
+ { no: 13, name: "segment_outputs", kind: "message", T: SegmentedFileOutput, repeated: true },
754
+ { no: 14, name: "image_outputs", kind: "message", T: ImageOutput, repeated: true },
755
+ { no: 15, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
756
+ ],
757
+ );
758
+
759
+ /**
760
+ * @generated from message livekit.TrackEgressRequest
761
+ */
762
+ export const TrackEgressRequest = /*@__PURE__*/ proto3.makeMessageType(
763
+ "livekit.TrackEgressRequest",
764
+ () => [
765
+ { no: 1, name: "room_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
766
+ { no: 2, name: "track_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
767
+ { no: 3, name: "file", kind: "message", T: DirectFileOutput, oneof: "output" },
768
+ { no: 4, name: "websocket_url", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "output" },
769
+ { no: 5, name: "webhooks", kind: "message", T: WebhookConfig, repeated: true },
770
+ ],
771
+ );
772
+
773
+ /**
774
+ * @generated from message livekit.DirectFileOutput
775
+ */
776
+ export const DirectFileOutput = /*@__PURE__*/ proto3.makeMessageType(
777
+ "livekit.DirectFileOutput",
778
+ () => [
779
+ { no: 1, name: "filepath", kind: "scalar", T: 9 /* ScalarType.STRING */ },
780
+ { no: 5, name: "disable_manifest", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
781
+ { no: 2, name: "s3", kind: "message", T: S3Upload, oneof: "output" },
782
+ { no: 3, name: "gcp", kind: "message", T: GCPUpload, oneof: "output" },
783
+ { no: 4, name: "azure", kind: "message", T: AzureBlobUpload, oneof: "output" },
784
+ { no: 6, name: "aliOSS", kind: "message", T: AliOSSUpload, oneof: "output" },
785
+ ],
786
+ );
787
+
788
+ /**
789
+ * @generated from message livekit.EncodedFileOutput
790
+ */
791
+ export const EncodedFileOutput = /*@__PURE__*/ proto3.makeMessageType(
792
+ "livekit.EncodedFileOutput",
793
+ () => [
794
+ { no: 1, name: "file_type", kind: "enum", T: proto3.getEnumType(EncodedFileType) },
795
+ { no: 2, name: "filepath", kind: "scalar", T: 9 /* ScalarType.STRING */ },
796
+ { no: 6, name: "disable_manifest", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
797
+ { no: 3, name: "s3", kind: "message", T: S3Upload, oneof: "output" },
798
+ { no: 4, name: "gcp", kind: "message", T: GCPUpload, oneof: "output" },
799
+ { no: 5, name: "azure", kind: "message", T: AzureBlobUpload, oneof: "output" },
800
+ { no: 7, name: "aliOSS", kind: "message", T: AliOSSUpload, oneof: "output" },
801
+ ],
802
+ );
803
+
804
+ /**
805
+ * @generated from message livekit.UpdateLayoutRequest
806
+ */
807
+ export const UpdateLayoutRequest = /*@__PURE__*/ proto3.makeMessageType(
808
+ "livekit.UpdateLayoutRequest",
809
+ () => [
810
+ { no: 1, name: "egress_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
811
+ { no: 2, name: "layout", kind: "scalar", T: 9 /* ScalarType.STRING */ },
812
+ ],
813
+ );
814
+
815
+ /**
816
+ * @generated from message livekit.UpdateStreamRequest
817
+ */
818
+ export const UpdateStreamRequest = /*@__PURE__*/ proto3.makeMessageType(
819
+ "livekit.UpdateStreamRequest",
820
+ () => [
821
+ { no: 1, name: "egress_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
822
+ { no: 2, name: "add_output_urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
823
+ { no: 3, name: "remove_output_urls", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
824
+ ],
825
+ );
826
+
827
+ /**
828
+ * @generated from message livekit.StreamInfoList
829
+ */
830
+ export const StreamInfoList = /*@__PURE__*/ proto3.makeMessageType(
831
+ "livekit.StreamInfoList",
832
+ () => [
833
+ { no: 1, name: "info", kind: "message", T: StreamInfo, repeated: true },
834
+ ],
835
+ );
836
+