@livekit/rtc-node 0.0.7 → 0.2.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 (113) hide show
  1. package/build.rs +4 -0
  2. package/dist/audio_frame.d.ts +1 -1
  3. package/dist/audio_frame.d.ts.map +1 -1
  4. package/dist/audio_frame.js +10 -11
  5. package/dist/audio_frame.js.map +1 -1
  6. package/dist/audio_source.d.ts +3 -3
  7. package/dist/audio_source.d.ts.map +1 -1
  8. package/dist/audio_source.js +14 -15
  9. package/dist/audio_source.js.map +1 -1
  10. package/dist/audio_stream.d.ts +8 -5
  11. package/dist/audio_stream.d.ts.map +1 -1
  12. package/dist/audio_stream.js +18 -22
  13. package/dist/audio_stream.js.map +1 -1
  14. package/dist/e2ee.d.ts +1 -1
  15. package/dist/e2ee.d.ts.map +1 -1
  16. package/dist/e2ee.js +42 -45
  17. package/dist/e2ee.js.map +1 -1
  18. package/dist/ffi_client.d.ts +2 -2
  19. package/dist/ffi_client.d.ts.map +1 -1
  20. package/dist/ffi_client.js +17 -24
  21. package/dist/ffi_client.js.map +1 -1
  22. package/dist/index.d.ts +15 -15
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +18 -70
  25. package/dist/index.js.map +1 -1
  26. package/{src/native.js → dist/napi/native.cjs} +12 -0
  27. package/dist/napi/native.js +15 -0
  28. package/dist/participant.d.ts +24 -9
  29. package/dist/participant.d.ts.map +1 -1
  30. package/dist/participant.js +45 -45
  31. package/dist/participant.js.map +1 -1
  32. package/dist/proto/audio_frame_pb.d.ts +0 -46
  33. package/dist/proto/audio_frame_pb.d.ts.map +1 -1
  34. package/dist/proto/audio_frame_pb.js +138 -236
  35. package/dist/proto/audio_frame_pb.js.map +1 -1
  36. package/dist/proto/e2ee_pb.js +134 -162
  37. package/dist/proto/e2ee_pb.js.map +1 -1
  38. package/dist/proto/ffi_pb.d.ts +31 -44
  39. package/dist/proto/ffi_pb.d.ts.map +1 -1
  40. package/dist/proto/ffi_pb.js +140 -126
  41. package/dist/proto/ffi_pb.js.map +1 -1
  42. package/dist/proto/handle_pb.js +7 -11
  43. package/dist/proto/handle_pb.js.map +1 -1
  44. package/dist/proto/participant_pb.js +13 -18
  45. package/dist/proto/participant_pb.js.map +1 -1
  46. package/dist/proto/room_pb.d.ts +5 -1
  47. package/dist/proto/room_pb.d.ts.map +1 -1
  48. package/dist/proto/room_pb.js +393 -454
  49. package/dist/proto/room_pb.js.map +1 -1
  50. package/dist/proto/stats_pb.js +265 -303
  51. package/dist/proto/stats_pb.js.map +1 -1
  52. package/dist/proto/track_pb.js +87 -102
  53. package/dist/proto/track_pb.js.map +1 -1
  54. package/dist/proto/video_frame_pb.d.ts +124 -390
  55. package/dist/proto/video_frame_pb.d.ts.map +1 -1
  56. package/dist/proto/video_frame_pb.js +252 -620
  57. package/dist/proto/video_frame_pb.js.map +1 -1
  58. package/dist/room.d.ts +10 -9
  59. package/dist/room.d.ts.map +1 -1
  60. package/dist/room.js +74 -76
  61. package/dist/room.js.map +1 -1
  62. package/dist/track.d.ts +4 -4
  63. package/dist/track.d.ts.map +1 -1
  64. package/dist/track.js +15 -20
  65. package/dist/track.js.map +1 -1
  66. package/dist/track_publication.d.ts +4 -4
  67. package/dist/track_publication.d.ts.map +1 -1
  68. package/dist/track_publication.js +12 -15
  69. package/dist/track_publication.js.map +1 -1
  70. package/dist/video_frame.d.ts +8 -103
  71. package/dist/video_frame.d.ts.map +1 -1
  72. package/dist/video_frame.js +161 -341
  73. package/dist/video_frame.js.map +1 -1
  74. package/dist/video_source.d.ts +4 -4
  75. package/dist/video_source.d.ts.map +1 -1
  76. package/dist/video_source.js +16 -22
  77. package/dist/video_source.js.map +1 -1
  78. package/dist/video_stream.d.ts +10 -5
  79. package/dist/video_stream.d.ts.map +1 -1
  80. package/dist/video_stream.js +20 -24
  81. package/dist/video_stream.js.map +1 -1
  82. package/package.json +14 -14
  83. package/src/audio_frame.ts +6 -2
  84. package/src/audio_source.ts +8 -4
  85. package/src/audio_stream.ts +15 -7
  86. package/src/e2ee.ts +6 -2
  87. package/src/ffi_client.ts +6 -2
  88. package/src/index.ts +19 -28
  89. package/src/lib.rs +4 -0
  90. package/src/napi/native.cjs +281 -0
  91. package/src/napi/native.js +15 -0
  92. package/src/nodejs.rs +4 -0
  93. package/src/participant.ts +45 -22
  94. package/src/proto/audio_frame_pb.ts +1 -91
  95. package/src/proto/e2ee_pb.ts +1 -1
  96. package/src/proto/ffi_pb.ts +55 -53
  97. package/src/proto/handle_pb.ts +1 -1
  98. package/src/proto/participant_pb.ts +1 -1
  99. package/src/proto/room_pb.ts +7 -1
  100. package/src/proto/stats_pb.ts +1 -1
  101. package/src/proto/track_pb.ts +1 -1
  102. package/src/proto/video_frame_pb.ts +186 -641
  103. package/src/room.ts +56 -48
  104. package/src/track.ts +8 -4
  105. package/src/track_publication.ts +10 -6
  106. package/src/video_frame.ts +186 -579
  107. package/src/video_source.ts +12 -12
  108. package/src/video_stream.ts +21 -10
  109. package/dist/native.d.ts.map +0 -1
  110. package/dist/native.js +0 -297
  111. package/dist/native.js.map +0 -1
  112. /package/dist/{native.d.ts → napi/native.d.ts} +0 -0
  113. /package/src/{native.d.ts → napi/native.d.ts} +0 -0
@@ -12,7 +12,7 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
 
15
- // @generated by protoc-gen-es v1.4.2 with parameter "target=ts"
15
+ // @generated by protoc-gen-es v1.7.2 with parameter "target=ts"
16
16
  // @generated from file video_frame.proto (package livekit.proto, syntax proto3)
17
17
  /* eslint-disable */
18
18
  // @ts-nocheck
@@ -86,85 +86,77 @@ proto3.util.setEnumType(VideoRotation, "livekit.proto.VideoRotation", [
86
86
  ]);
87
87
 
88
88
  /**
89
- * @generated from enum livekit.proto.VideoFormatType
89
+ * @generated from enum livekit.proto.VideoBufferType
90
90
  */
91
- export enum VideoFormatType {
91
+ export enum VideoBufferType {
92
92
  /**
93
- * @generated from enum value: FORMAT_ARGB = 0;
93
+ * @generated from enum value: RGBA = 0;
94
94
  */
95
- FORMAT_ARGB = 0,
95
+ RGBA = 0,
96
96
 
97
97
  /**
98
- * @generated from enum value: FORMAT_BGRA = 1;
98
+ * @generated from enum value: ABGR = 1;
99
99
  */
100
- FORMAT_BGRA = 1,
100
+ ABGR = 1,
101
101
 
102
102
  /**
103
- * @generated from enum value: FORMAT_ABGR = 2;
103
+ * @generated from enum value: ARGB = 2;
104
104
  */
105
- FORMAT_ABGR = 2,
105
+ ARGB = 2,
106
106
 
107
107
  /**
108
- * @generated from enum value: FORMAT_RGBA = 3;
108
+ * @generated from enum value: BGRA = 3;
109
109
  */
110
- FORMAT_RGBA = 3,
111
- }
112
- // Retrieve enum metadata with: proto3.getEnumType(VideoFormatType)
113
- proto3.util.setEnumType(VideoFormatType, "livekit.proto.VideoFormatType", [
114
- { no: 0, name: "FORMAT_ARGB" },
115
- { no: 1, name: "FORMAT_BGRA" },
116
- { no: 2, name: "FORMAT_ABGR" },
117
- { no: 3, name: "FORMAT_RGBA" },
118
- ]);
110
+ BGRA = 3,
119
111
 
120
- /**
121
- * @generated from enum livekit.proto.VideoFrameBufferType
122
- */
123
- export enum VideoFrameBufferType {
124
112
  /**
125
- * @generated from enum value: NATIVE = 0;
113
+ * @generated from enum value: RGB24 = 4;
126
114
  */
127
- NATIVE = 0,
115
+ RGB24 = 4,
128
116
 
129
117
  /**
130
- * @generated from enum value: I420 = 1;
118
+ * @generated from enum value: I420 = 5;
131
119
  */
132
- I420 = 1,
120
+ I420 = 5,
133
121
 
134
122
  /**
135
- * @generated from enum value: I420A = 2;
123
+ * @generated from enum value: I420A = 6;
136
124
  */
137
- I420A = 2,
125
+ I420A = 6,
138
126
 
139
127
  /**
140
- * @generated from enum value: I422 = 3;
128
+ * @generated from enum value: I422 = 7;
141
129
  */
142
- I422 = 3,
130
+ I422 = 7,
143
131
 
144
132
  /**
145
- * @generated from enum value: I444 = 4;
133
+ * @generated from enum value: I444 = 8;
146
134
  */
147
- I444 = 4,
135
+ I444 = 8,
148
136
 
149
137
  /**
150
- * @generated from enum value: I010 = 5;
138
+ * @generated from enum value: I010 = 9;
151
139
  */
152
- I010 = 5,
140
+ I010 = 9,
153
141
 
154
142
  /**
155
- * @generated from enum value: NV12 = 6;
143
+ * @generated from enum value: NV12 = 10;
156
144
  */
157
- NV12 = 6,
145
+ NV12 = 10,
158
146
  }
159
- // Retrieve enum metadata with: proto3.getEnumType(VideoFrameBufferType)
160
- proto3.util.setEnumType(VideoFrameBufferType, "livekit.proto.VideoFrameBufferType", [
161
- { no: 0, name: "NATIVE" },
162
- { no: 1, name: "I420" },
163
- { no: 2, name: "I420A" },
164
- { no: 3, name: "I422" },
165
- { no: 4, name: "I444" },
166
- { no: 5, name: "I010" },
167
- { no: 6, name: "NV12" },
147
+ // Retrieve enum metadata with: proto3.getEnumType(VideoBufferType)
148
+ proto3.util.setEnumType(VideoBufferType, "livekit.proto.VideoBufferType", [
149
+ { no: 0, name: "RGBA" },
150
+ { no: 1, name: "ABGR" },
151
+ { no: 2, name: "ARGB" },
152
+ { no: 3, name: "BGRA" },
153
+ { no: 4, name: "RGB24" },
154
+ { no: 5, name: "I420" },
155
+ { no: 6, name: "I420A" },
156
+ { no: 7, name: "I422" },
157
+ { no: 8, name: "I444" },
158
+ { no: 9, name: "I010" },
159
+ { no: 10, name: "NV12" },
168
160
  ]);
169
161
 
170
162
  /**
@@ -207,96 +199,6 @@ proto3.util.setEnumType(VideoSourceType, "livekit.proto.VideoSourceType", [
207
199
  { no: 0, name: "VIDEO_SOURCE_NATIVE" },
208
200
  ]);
209
201
 
210
- /**
211
- * Allocate a new VideoFrameBuffer
212
- *
213
- * @generated from message livekit.proto.AllocVideoBufferRequest
214
- */
215
- export class AllocVideoBufferRequest extends Message<AllocVideoBufferRequest> {
216
- /**
217
- * Only I420 is supported atm
218
- *
219
- * @generated from field: livekit.proto.VideoFrameBufferType type = 1;
220
- */
221
- type = VideoFrameBufferType.NATIVE;
222
-
223
- /**
224
- * @generated from field: uint32 width = 2;
225
- */
226
- width = 0;
227
-
228
- /**
229
- * @generated from field: uint32 height = 3;
230
- */
231
- height = 0;
232
-
233
- constructor(data?: PartialMessage<AllocVideoBufferRequest>) {
234
- super();
235
- proto3.util.initPartial(data, this);
236
- }
237
-
238
- static readonly runtime: typeof proto3 = proto3;
239
- static readonly typeName = "livekit.proto.AllocVideoBufferRequest";
240
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
241
- { no: 1, name: "type", kind: "enum", T: proto3.getEnumType(VideoFrameBufferType) },
242
- { no: 2, name: "width", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
243
- { no: 3, name: "height", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
244
- ]);
245
-
246
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AllocVideoBufferRequest {
247
- return new AllocVideoBufferRequest().fromBinary(bytes, options);
248
- }
249
-
250
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AllocVideoBufferRequest {
251
- return new AllocVideoBufferRequest().fromJson(jsonValue, options);
252
- }
253
-
254
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AllocVideoBufferRequest {
255
- return new AllocVideoBufferRequest().fromJsonString(jsonString, options);
256
- }
257
-
258
- static equals(a: AllocVideoBufferRequest | PlainMessage<AllocVideoBufferRequest> | undefined, b: AllocVideoBufferRequest | PlainMessage<AllocVideoBufferRequest> | undefined): boolean {
259
- return proto3.util.equals(AllocVideoBufferRequest, a, b);
260
- }
261
- }
262
-
263
- /**
264
- * @generated from message livekit.proto.AllocVideoBufferResponse
265
- */
266
- export class AllocVideoBufferResponse extends Message<AllocVideoBufferResponse> {
267
- /**
268
- * @generated from field: livekit.proto.OwnedVideoFrameBuffer buffer = 1;
269
- */
270
- buffer?: OwnedVideoFrameBuffer;
271
-
272
- constructor(data?: PartialMessage<AllocVideoBufferResponse>) {
273
- super();
274
- proto3.util.initPartial(data, this);
275
- }
276
-
277
- static readonly runtime: typeof proto3 = proto3;
278
- static readonly typeName = "livekit.proto.AllocVideoBufferResponse";
279
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
280
- { no: 1, name: "buffer", kind: "message", T: OwnedVideoFrameBuffer },
281
- ]);
282
-
283
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AllocVideoBufferResponse {
284
- return new AllocVideoBufferResponse().fromBinary(bytes, options);
285
- }
286
-
287
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AllocVideoBufferResponse {
288
- return new AllocVideoBufferResponse().fromJson(jsonValue, options);
289
- }
290
-
291
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AllocVideoBufferResponse {
292
- return new AllocVideoBufferResponse().fromJsonString(jsonString, options);
293
- }
294
-
295
- static equals(a: AllocVideoBufferResponse | PlainMessage<AllocVideoBufferResponse> | undefined, b: AllocVideoBufferResponse | PlainMessage<AllocVideoBufferResponse> | undefined): boolean {
296
- return proto3.util.equals(AllocVideoBufferResponse, a, b);
297
- }
298
- }
299
-
300
202
  /**
301
203
  * Create a new VideoStream
302
204
  * VideoStream is used to receive video frames from a track
@@ -314,6 +216,20 @@ export class NewVideoStreamRequest extends Message<NewVideoStreamRequest> {
314
216
  */
315
217
  type = VideoStreamType.VIDEO_STREAM_NATIVE;
316
218
 
219
+ /**
220
+ * Get the frame on a specific format
221
+ *
222
+ * @generated from field: optional livekit.proto.VideoBufferType format = 3;
223
+ */
224
+ format?: VideoBufferType;
225
+
226
+ /**
227
+ * if true, stride will be set to width/chroma_width
228
+ *
229
+ * @generated from field: bool normalize_stride = 4;
230
+ */
231
+ normalizeStride = false;
232
+
317
233
  constructor(data?: PartialMessage<NewVideoStreamRequest>) {
318
234
  super();
319
235
  proto3.util.initPartial(data, this);
@@ -324,6 +240,8 @@ export class NewVideoStreamRequest extends Message<NewVideoStreamRequest> {
324
240
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
325
241
  { no: 1, name: "track_handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
326
242
  { no: 2, name: "type", kind: "enum", T: proto3.getEnumType(VideoStreamType) },
243
+ { no: 3, name: "format", kind: "enum", T: proto3.getEnumType(VideoBufferType), opt: true },
244
+ { no: 4, name: "normalize_stride", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
327
245
  ]);
328
246
 
329
247
  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): NewVideoStreamRequest {
@@ -478,26 +396,21 @@ export class CaptureVideoFrameRequest extends Message<CaptureVideoFrameRequest>
478
396
  sourceHandle = protoInt64.zero;
479
397
 
480
398
  /**
481
- * @generated from field: livekit.proto.VideoFrameInfo frame = 2;
399
+ * @generated from field: livekit.proto.VideoBufferInfo buffer = 2;
482
400
  */
483
- frame?: VideoFrameInfo;
401
+ buffer?: VideoBufferInfo;
484
402
 
485
403
  /**
486
- * @generated from oneof livekit.proto.CaptureVideoFrameRequest.from
404
+ * In microseconds
405
+ *
406
+ * @generated from field: int64 timestamp_us = 3;
487
407
  */
488
- from: {
489
- /**
490
- * @generated from field: livekit.proto.VideoFrameBufferInfo info = 3;
491
- */
492
- value: VideoFrameBufferInfo;
493
- case: "info";
494
- } | {
495
- /**
496
- * @generated from field: uint64 handle = 4;
497
- */
498
- value: bigint;
499
- case: "handle";
500
- } | { case: undefined; value?: undefined } = { case: undefined };
408
+ timestampUs = protoInt64.zero;
409
+
410
+ /**
411
+ * @generated from field: livekit.proto.VideoRotation rotation = 4;
412
+ */
413
+ rotation = VideoRotation.VIDEO_ROTATION_0;
501
414
 
502
415
  constructor(data?: PartialMessage<CaptureVideoFrameRequest>) {
503
416
  super();
@@ -508,9 +421,9 @@ export class CaptureVideoFrameRequest extends Message<CaptureVideoFrameRequest>
508
421
  static readonly typeName = "livekit.proto.CaptureVideoFrameRequest";
509
422
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
510
423
  { no: 1, name: "source_handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
511
- { no: 2, name: "frame", kind: "message", T: VideoFrameInfo },
512
- { no: 3, name: "info", kind: "message", T: VideoFrameBufferInfo, oneof: "from" },
513
- { no: 4, name: "handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */, oneof: "from" },
424
+ { no: 2, name: "buffer", kind: "message", T: VideoBufferInfo },
425
+ { no: 3, name: "timestamp_us", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
426
+ { no: 4, name: "rotation", kind: "enum", T: proto3.getEnumType(VideoRotation) },
514
427
  ]);
515
428
 
516
429
  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CaptureVideoFrameRequest {
@@ -562,212 +475,94 @@ export class CaptureVideoFrameResponse extends Message<CaptureVideoFrameResponse
562
475
  }
563
476
 
564
477
  /**
565
- * Convert a RGBA frame to a I420 YUV frame
566
- * Or convert another YUV frame format to I420
567
- *
568
- * @generated from message livekit.proto.ToI420Request
478
+ * @generated from message livekit.proto.VideoConvertRequest
569
479
  */
570
- export class ToI420Request extends Message<ToI420Request> {
480
+ export class VideoConvertRequest extends Message<VideoConvertRequest> {
571
481
  /**
572
482
  * @generated from field: bool flip_y = 1;
573
483
  */
574
484
  flipY = false;
575
485
 
576
486
  /**
577
- * @generated from oneof livekit.proto.ToI420Request.from
487
+ * @generated from field: livekit.proto.VideoBufferInfo buffer = 2;
578
488
  */
579
- from: {
580
- /**
581
- * @generated from field: livekit.proto.ArgbBufferInfo argb = 2;
582
- */
583
- value: ArgbBufferInfo;
584
- case: "argb";
585
- } | {
586
- /**
587
- * @generated from field: livekit.proto.VideoFrameBufferInfo buffer = 3;
588
- */
589
- value: VideoFrameBufferInfo;
590
- case: "buffer";
591
- } | {
592
- /**
593
- * @generated from field: uint64 handle = 4;
594
- */
595
- value: bigint;
596
- case: "handle";
597
- } | { case: undefined; value?: undefined } = { case: undefined };
598
-
599
- constructor(data?: PartialMessage<ToI420Request>) {
600
- super();
601
- proto3.util.initPartial(data, this);
602
- }
603
-
604
- static readonly runtime: typeof proto3 = proto3;
605
- static readonly typeName = "livekit.proto.ToI420Request";
606
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
607
- { no: 1, name: "flip_y", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
608
- { no: 2, name: "argb", kind: "message", T: ArgbBufferInfo, oneof: "from" },
609
- { no: 3, name: "buffer", kind: "message", T: VideoFrameBufferInfo, oneof: "from" },
610
- { no: 4, name: "handle", kind: "scalar", T: 4 /* ScalarType.UINT64 */, oneof: "from" },
611
- ]);
612
-
613
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ToI420Request {
614
- return new ToI420Request().fromBinary(bytes, options);
615
- }
616
-
617
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ToI420Request {
618
- return new ToI420Request().fromJson(jsonValue, options);
619
- }
620
-
621
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ToI420Request {
622
- return new ToI420Request().fromJsonString(jsonString, options);
623
- }
624
-
625
- static equals(a: ToI420Request | PlainMessage<ToI420Request> | undefined, b: ToI420Request | PlainMessage<ToI420Request> | undefined): boolean {
626
- return proto3.util.equals(ToI420Request, a, b);
627
- }
628
- }
489
+ buffer?: VideoBufferInfo;
629
490
 
630
- /**
631
- * @generated from message livekit.proto.ToI420Response
632
- */
633
- export class ToI420Response extends Message<ToI420Response> {
634
491
  /**
635
- * @generated from field: livekit.proto.OwnedVideoFrameBuffer buffer = 1;
492
+ * @generated from field: livekit.proto.VideoBufferType dst_type = 3;
636
493
  */
637
- buffer?: OwnedVideoFrameBuffer;
494
+ dstType = VideoBufferType.RGBA;
638
495
 
639
- constructor(data?: PartialMessage<ToI420Response>) {
496
+ constructor(data?: PartialMessage<VideoConvertRequest>) {
640
497
  super();
641
498
  proto3.util.initPartial(data, this);
642
499
  }
643
500
 
644
501
  static readonly runtime: typeof proto3 = proto3;
645
- static readonly typeName = "livekit.proto.ToI420Response";
502
+ static readonly typeName = "livekit.proto.VideoConvertRequest";
646
503
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
647
- { no: 1, name: "buffer", kind: "message", T: OwnedVideoFrameBuffer },
504
+ { no: 1, name: "flip_y", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
505
+ { no: 2, name: "buffer", kind: "message", T: VideoBufferInfo },
506
+ { no: 3, name: "dst_type", kind: "enum", T: proto3.getEnumType(VideoBufferType) },
648
507
  ]);
649
508
 
650
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ToI420Response {
651
- return new ToI420Response().fromBinary(bytes, options);
509
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoConvertRequest {
510
+ return new VideoConvertRequest().fromBinary(bytes, options);
652
511
  }
653
512
 
654
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ToI420Response {
655
- return new ToI420Response().fromJson(jsonValue, options);
513
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoConvertRequest {
514
+ return new VideoConvertRequest().fromJson(jsonValue, options);
656
515
  }
657
516
 
658
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ToI420Response {
659
- return new ToI420Response().fromJsonString(jsonString, options);
517
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoConvertRequest {
518
+ return new VideoConvertRequest().fromJsonString(jsonString, options);
660
519
  }
661
520
 
662
- static equals(a: ToI420Response | PlainMessage<ToI420Response> | undefined, b: ToI420Response | PlainMessage<ToI420Response> | undefined): boolean {
663
- return proto3.util.equals(ToI420Response, a, b);
521
+ static equals(a: VideoConvertRequest | PlainMessage<VideoConvertRequest> | undefined, b: VideoConvertRequest | PlainMessage<VideoConvertRequest> | undefined): boolean {
522
+ return proto3.util.equals(VideoConvertRequest, a, b);
664
523
  }
665
524
  }
666
525
 
667
526
  /**
668
- * Convert a YUV frame to a RGBA frame
669
- * Only I420 is supported atm
670
- *
671
- * @generated from message livekit.proto.ToArgbRequest
527
+ * @generated from message livekit.proto.VideoConvertResponse
672
528
  */
673
- export class ToArgbRequest extends Message<ToArgbRequest> {
674
- /**
675
- * @generated from field: livekit.proto.VideoFrameBufferInfo buffer = 1;
676
- */
677
- buffer?: VideoFrameBufferInfo;
678
-
679
- /**
680
- * @generated from field: uint64 dst_ptr = 2;
681
- */
682
- dstPtr = protoInt64.zero;
683
-
684
- /**
685
- * @generated from field: livekit.proto.VideoFormatType dst_format = 3;
686
- */
687
- dstFormat = VideoFormatType.FORMAT_ARGB;
688
-
689
- /**
690
- * @generated from field: uint32 dst_stride = 4;
691
- */
692
- dstStride = 0;
693
-
694
- /**
695
- * @generated from field: uint32 dst_width = 5;
696
- */
697
- dstWidth = 0;
698
-
529
+ export class VideoConvertResponse extends Message<VideoConvertResponse> {
699
530
  /**
700
- * @generated from field: uint32 dst_height = 6;
531
+ * @generated from field: optional string error = 1;
701
532
  */
702
- dstHeight = 0;
533
+ error?: string;
703
534
 
704
535
  /**
705
- * @generated from field: bool flip_y = 7;
536
+ * @generated from field: livekit.proto.OwnedVideoBuffer buffer = 2;
706
537
  */
707
- flipY = false;
708
-
709
- constructor(data?: PartialMessage<ToArgbRequest>) {
710
- super();
711
- proto3.util.initPartial(data, this);
712
- }
713
-
714
- static readonly runtime: typeof proto3 = proto3;
715
- static readonly typeName = "livekit.proto.ToArgbRequest";
716
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
717
- { no: 1, name: "buffer", kind: "message", T: VideoFrameBufferInfo },
718
- { no: 2, name: "dst_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
719
- { no: 3, name: "dst_format", kind: "enum", T: proto3.getEnumType(VideoFormatType) },
720
- { no: 4, name: "dst_stride", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
721
- { no: 5, name: "dst_width", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
722
- { no: 6, name: "dst_height", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
723
- { no: 7, name: "flip_y", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
724
- ]);
725
-
726
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ToArgbRequest {
727
- return new ToArgbRequest().fromBinary(bytes, options);
728
- }
729
-
730
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ToArgbRequest {
731
- return new ToArgbRequest().fromJson(jsonValue, options);
732
- }
733
-
734
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ToArgbRequest {
735
- return new ToArgbRequest().fromJsonString(jsonString, options);
736
- }
538
+ buffer?: OwnedVideoBuffer;
737
539
 
738
- static equals(a: ToArgbRequest | PlainMessage<ToArgbRequest> | undefined, b: ToArgbRequest | PlainMessage<ToArgbRequest> | undefined): boolean {
739
- return proto3.util.equals(ToArgbRequest, a, b);
740
- }
741
- }
742
-
743
- /**
744
- * @generated from message livekit.proto.ToArgbResponse
745
- */
746
- export class ToArgbResponse extends Message<ToArgbResponse> {
747
- constructor(data?: PartialMessage<ToArgbResponse>) {
540
+ constructor(data?: PartialMessage<VideoConvertResponse>) {
748
541
  super();
749
542
  proto3.util.initPartial(data, this);
750
543
  }
751
544
 
752
545
  static readonly runtime: typeof proto3 = proto3;
753
- static readonly typeName = "livekit.proto.ToArgbResponse";
546
+ static readonly typeName = "livekit.proto.VideoConvertResponse";
754
547
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
548
+ { no: 1, name: "error", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
549
+ { no: 2, name: "buffer", kind: "message", T: OwnedVideoBuffer },
755
550
  ]);
756
551
 
757
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ToArgbResponse {
758
- return new ToArgbResponse().fromBinary(bytes, options);
552
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoConvertResponse {
553
+ return new VideoConvertResponse().fromBinary(bytes, options);
759
554
  }
760
555
 
761
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ToArgbResponse {
762
- return new ToArgbResponse().fromJson(jsonValue, options);
556
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoConvertResponse {
557
+ return new VideoConvertResponse().fromJson(jsonValue, options);
763
558
  }
764
559
 
765
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ToArgbResponse {
766
- return new ToArgbResponse().fromJsonString(jsonString, options);
560
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoConvertResponse {
561
+ return new VideoConvertResponse().fromJsonString(jsonString, options);
767
562
  }
768
563
 
769
- static equals(a: ToArgbResponse | PlainMessage<ToArgbResponse> | undefined, b: ToArgbResponse | PlainMessage<ToArgbResponse> | undefined): boolean {
770
- return proto3.util.equals(ToArgbResponse, a, b);
564
+ static equals(a: VideoConvertResponse | PlainMessage<VideoConvertResponse> | undefined, b: VideoConvertResponse | PlainMessage<VideoConvertResponse> | undefined): boolean {
565
+ return proto3.util.equals(VideoConvertResponse, a, b);
771
566
  }
772
567
  }
773
568
 
@@ -821,119 +616,13 @@ export class VideoResolution extends Message<VideoResolution> {
821
616
  }
822
617
 
823
618
  /**
824
- * @generated from message livekit.proto.ArgbBufferInfo
619
+ * @generated from message livekit.proto.VideoBufferInfo
825
620
  */
826
- export class ArgbBufferInfo extends Message<ArgbBufferInfo> {
621
+ export class VideoBufferInfo extends Message<VideoBufferInfo> {
827
622
  /**
828
- * @generated from field: uint64 ptr = 1;
623
+ * @generated from field: livekit.proto.VideoBufferType type = 1;
829
624
  */
830
- ptr = protoInt64.zero;
831
-
832
- /**
833
- * @generated from field: livekit.proto.VideoFormatType format = 2;
834
- */
835
- format = VideoFormatType.FORMAT_ARGB;
836
-
837
- /**
838
- * @generated from field: uint32 stride = 3;
839
- */
840
- stride = 0;
841
-
842
- /**
843
- * @generated from field: uint32 width = 4;
844
- */
845
- width = 0;
846
-
847
- /**
848
- * @generated from field: uint32 height = 5;
849
- */
850
- height = 0;
851
-
852
- constructor(data?: PartialMessage<ArgbBufferInfo>) {
853
- super();
854
- proto3.util.initPartial(data, this);
855
- }
856
-
857
- static readonly runtime: typeof proto3 = proto3;
858
- static readonly typeName = "livekit.proto.ArgbBufferInfo";
859
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
860
- { no: 1, name: "ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
861
- { no: 2, name: "format", kind: "enum", T: proto3.getEnumType(VideoFormatType) },
862
- { no: 3, name: "stride", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
863
- { no: 4, name: "width", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
864
- { no: 5, name: "height", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
865
- ]);
866
-
867
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ArgbBufferInfo {
868
- return new ArgbBufferInfo().fromBinary(bytes, options);
869
- }
870
-
871
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ArgbBufferInfo {
872
- return new ArgbBufferInfo().fromJson(jsonValue, options);
873
- }
874
-
875
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ArgbBufferInfo {
876
- return new ArgbBufferInfo().fromJsonString(jsonString, options);
877
- }
878
-
879
- static equals(a: ArgbBufferInfo | PlainMessage<ArgbBufferInfo> | undefined, b: ArgbBufferInfo | PlainMessage<ArgbBufferInfo> | undefined): boolean {
880
- return proto3.util.equals(ArgbBufferInfo, a, b);
881
- }
882
- }
883
-
884
- /**
885
- * @generated from message livekit.proto.VideoFrameInfo
886
- */
887
- export class VideoFrameInfo extends Message<VideoFrameInfo> {
888
- /**
889
- * In microseconds
890
- *
891
- * @generated from field: int64 timestamp_us = 1;
892
- */
893
- timestampUs = protoInt64.zero;
894
-
895
- /**
896
- * @generated from field: livekit.proto.VideoRotation rotation = 2;
897
- */
898
- rotation = VideoRotation.VIDEO_ROTATION_0;
899
-
900
- constructor(data?: PartialMessage<VideoFrameInfo>) {
901
- super();
902
- proto3.util.initPartial(data, this);
903
- }
904
-
905
- static readonly runtime: typeof proto3 = proto3;
906
- static readonly typeName = "livekit.proto.VideoFrameInfo";
907
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
908
- { no: 1, name: "timestamp_us", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
909
- { no: 2, name: "rotation", kind: "enum", T: proto3.getEnumType(VideoRotation) },
910
- ]);
911
-
912
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoFrameInfo {
913
- return new VideoFrameInfo().fromBinary(bytes, options);
914
- }
915
-
916
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoFrameInfo {
917
- return new VideoFrameInfo().fromJson(jsonValue, options);
918
- }
919
-
920
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoFrameInfo {
921
- return new VideoFrameInfo().fromJsonString(jsonString, options);
922
- }
923
-
924
- static equals(a: VideoFrameInfo | PlainMessage<VideoFrameInfo> | undefined, b: VideoFrameInfo | PlainMessage<VideoFrameInfo> | undefined): boolean {
925
- return proto3.util.equals(VideoFrameInfo, a, b);
926
- }
927
- }
928
-
929
- /**
930
- * @generated from message livekit.proto.VideoFrameBufferInfo
931
- */
932
- export class VideoFrameBufferInfo extends Message<VideoFrameBufferInfo> {
933
- /**
934
- * @generated from field: livekit.proto.VideoFrameBufferType buffer_type = 1;
935
- */
936
- bufferType = VideoFrameBufferType.NATIVE;
625
+ type = VideoBufferType.RGBA;
937
626
 
938
627
  /**
939
628
  * @generated from field: uint32 width = 2;
@@ -946,296 +635,144 @@ export class VideoFrameBufferInfo extends Message<VideoFrameBufferInfo> {
946
635
  height = 0;
947
636
 
948
637
  /**
949
- * @generated from oneof livekit.proto.VideoFrameBufferInfo.buffer
638
+ * @generated from field: uint64 data_ptr = 4;
950
639
  */
951
- buffer: {
952
- /**
953
- * @generated from field: livekit.proto.PlanarYuvBufferInfo yuv = 4;
954
- */
955
- value: PlanarYuvBufferInfo;
956
- case: "yuv";
957
- } | {
958
- /**
959
- * @generated from field: livekit.proto.BiplanarYuvBufferInfo bi_yuv = 5;
960
- */
961
- value: BiplanarYuvBufferInfo;
962
- case: "biYuv";
963
- } | {
964
- /**
965
- * @generated from field: livekit.proto.NativeBufferInfo native = 6;
966
- */
967
- value: NativeBufferInfo;
968
- case: "native";
969
- } | { case: undefined; value?: undefined } = { case: undefined };
970
-
971
- constructor(data?: PartialMessage<VideoFrameBufferInfo>) {
972
- super();
973
- proto3.util.initPartial(data, this);
974
- }
975
-
976
- static readonly runtime: typeof proto3 = proto3;
977
- static readonly typeName = "livekit.proto.VideoFrameBufferInfo";
978
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
979
- { no: 1, name: "buffer_type", kind: "enum", T: proto3.getEnumType(VideoFrameBufferType) },
980
- { no: 2, name: "width", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
981
- { no: 3, name: "height", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
982
- { no: 4, name: "yuv", kind: "message", T: PlanarYuvBufferInfo, oneof: "buffer" },
983
- { no: 5, name: "bi_yuv", kind: "message", T: BiplanarYuvBufferInfo, oneof: "buffer" },
984
- { no: 6, name: "native", kind: "message", T: NativeBufferInfo, oneof: "buffer" },
985
- ]);
640
+ dataPtr = protoInt64.zero;
986
641
 
987
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoFrameBufferInfo {
988
- return new VideoFrameBufferInfo().fromBinary(bytes, options);
989
- }
990
-
991
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoFrameBufferInfo {
992
- return new VideoFrameBufferInfo().fromJson(jsonValue, options);
993
- }
994
-
995
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoFrameBufferInfo {
996
- return new VideoFrameBufferInfo().fromJsonString(jsonString, options);
997
- }
998
-
999
- static equals(a: VideoFrameBufferInfo | PlainMessage<VideoFrameBufferInfo> | undefined, b: VideoFrameBufferInfo | PlainMessage<VideoFrameBufferInfo> | undefined): boolean {
1000
- return proto3.util.equals(VideoFrameBufferInfo, a, b);
1001
- }
1002
- }
1003
-
1004
- /**
1005
- * @generated from message livekit.proto.OwnedVideoFrameBuffer
1006
- */
1007
- export class OwnedVideoFrameBuffer extends Message<OwnedVideoFrameBuffer> {
1008
642
  /**
1009
- * @generated from field: livekit.proto.FfiOwnedHandle handle = 1;
643
+ * only for packed formats
644
+ *
645
+ * @generated from field: uint32 stride = 6;
1010
646
  */
1011
- handle?: FfiOwnedHandle;
647
+ stride = 0;
1012
648
 
1013
649
  /**
1014
- * @generated from field: livekit.proto.VideoFrameBufferInfo info = 2;
650
+ * @generated from field: repeated livekit.proto.VideoBufferInfo.ComponentInfo components = 7;
1015
651
  */
1016
- info?: VideoFrameBufferInfo;
652
+ components: VideoBufferInfo_ComponentInfo[] = [];
1017
653
 
1018
- constructor(data?: PartialMessage<OwnedVideoFrameBuffer>) {
654
+ constructor(data?: PartialMessage<VideoBufferInfo>) {
1019
655
  super();
1020
656
  proto3.util.initPartial(data, this);
1021
657
  }
1022
658
 
1023
659
  static readonly runtime: typeof proto3 = proto3;
1024
- static readonly typeName = "livekit.proto.OwnedVideoFrameBuffer";
660
+ static readonly typeName = "livekit.proto.VideoBufferInfo";
1025
661
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
1026
- { no: 1, name: "handle", kind: "message", T: FfiOwnedHandle },
1027
- { no: 2, name: "info", kind: "message", T: VideoFrameBufferInfo },
662
+ { no: 1, name: "type", kind: "enum", T: proto3.getEnumType(VideoBufferType) },
663
+ { no: 2, name: "width", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
664
+ { no: 3, name: "height", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
665
+ { no: 4, name: "data_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
666
+ { no: 6, name: "stride", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
667
+ { no: 7, name: "components", kind: "message", T: VideoBufferInfo_ComponentInfo, repeated: true },
1028
668
  ]);
1029
669
 
1030
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OwnedVideoFrameBuffer {
1031
- return new OwnedVideoFrameBuffer().fromBinary(bytes, options);
670
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoBufferInfo {
671
+ return new VideoBufferInfo().fromBinary(bytes, options);
1032
672
  }
1033
673
 
1034
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OwnedVideoFrameBuffer {
1035
- return new OwnedVideoFrameBuffer().fromJson(jsonValue, options);
674
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoBufferInfo {
675
+ return new VideoBufferInfo().fromJson(jsonValue, options);
1036
676
  }
1037
677
 
1038
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OwnedVideoFrameBuffer {
1039
- return new OwnedVideoFrameBuffer().fromJsonString(jsonString, options);
678
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoBufferInfo {
679
+ return new VideoBufferInfo().fromJsonString(jsonString, options);
1040
680
  }
1041
681
 
1042
- static equals(a: OwnedVideoFrameBuffer | PlainMessage<OwnedVideoFrameBuffer> | undefined, b: OwnedVideoFrameBuffer | PlainMessage<OwnedVideoFrameBuffer> | undefined): boolean {
1043
- return proto3.util.equals(OwnedVideoFrameBuffer, a, b);
682
+ static equals(a: VideoBufferInfo | PlainMessage<VideoBufferInfo> | undefined, b: VideoBufferInfo | PlainMessage<VideoBufferInfo> | undefined): boolean {
683
+ return proto3.util.equals(VideoBufferInfo, a, b);
1044
684
  }
1045
685
  }
1046
686
 
1047
687
  /**
1048
- * @generated from message livekit.proto.PlanarYuvBufferInfo
688
+ * @generated from message livekit.proto.VideoBufferInfo.ComponentInfo
1049
689
  */
1050
- export class PlanarYuvBufferInfo extends Message<PlanarYuvBufferInfo> {
1051
- /**
1052
- * @generated from field: uint32 chroma_width = 1;
1053
- */
1054
- chromaWidth = 0;
1055
-
1056
- /**
1057
- * @generated from field: uint32 chroma_height = 2;
1058
- */
1059
- chromaHeight = 0;
1060
-
1061
- /**
1062
- * @generated from field: uint32 stride_y = 3;
1063
- */
1064
- strideY = 0;
1065
-
1066
- /**
1067
- * @generated from field: uint32 stride_u = 4;
1068
- */
1069
- strideU = 0;
1070
-
1071
- /**
1072
- * @generated from field: uint32 stride_v = 5;
1073
- */
1074
- strideV = 0;
1075
-
1076
- /**
1077
- * @generated from field: uint32 stride_a = 6;
1078
- */
1079
- strideA = 0;
1080
-
1081
- /**
1082
- * *const u8 or *const u16
1083
- *
1084
- * @generated from field: uint64 data_y_ptr = 7;
1085
- */
1086
- dataYPtr = protoInt64.zero;
1087
-
690
+ export class VideoBufferInfo_ComponentInfo extends Message<VideoBufferInfo_ComponentInfo> {
1088
691
  /**
1089
- * @generated from field: uint64 data_u_ptr = 8;
692
+ * @generated from field: uint64 data_ptr = 1;
1090
693
  */
1091
- dataUPtr = protoInt64.zero;
694
+ dataPtr = protoInt64.zero;
1092
695
 
1093
696
  /**
1094
- * @generated from field: uint64 data_v_ptr = 9;
697
+ * @generated from field: uint32 stride = 2;
1095
698
  */
1096
- dataVPtr = protoInt64.zero;
699
+ stride = 0;
1097
700
 
1098
701
  /**
1099
- * nullptr = no alpha
1100
- *
1101
- * @generated from field: uint64 data_a_ptr = 10;
702
+ * @generated from field: uint32 size = 3;
1102
703
  */
1103
- dataAPtr = protoInt64.zero;
704
+ size = 0;
1104
705
 
1105
- constructor(data?: PartialMessage<PlanarYuvBufferInfo>) {
706
+ constructor(data?: PartialMessage<VideoBufferInfo_ComponentInfo>) {
1106
707
  super();
1107
708
  proto3.util.initPartial(data, this);
1108
709
  }
1109
710
 
1110
711
  static readonly runtime: typeof proto3 = proto3;
1111
- static readonly typeName = "livekit.proto.PlanarYuvBufferInfo";
712
+ static readonly typeName = "livekit.proto.VideoBufferInfo.ComponentInfo";
1112
713
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
1113
- { no: 1, name: "chroma_width", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1114
- { no: 2, name: "chroma_height", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1115
- { no: 3, name: "stride_y", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1116
- { no: 4, name: "stride_u", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1117
- { no: 5, name: "stride_v", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1118
- { no: 6, name: "stride_a", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1119
- { no: 7, name: "data_y_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
1120
- { no: 8, name: "data_u_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
1121
- { no: 9, name: "data_v_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
1122
- { no: 10, name: "data_a_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
714
+ { no: 1, name: "data_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
715
+ { no: 2, name: "stride", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
716
+ { no: 3, name: "size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1123
717
  ]);
1124
718
 
1125
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PlanarYuvBufferInfo {
1126
- return new PlanarYuvBufferInfo().fromBinary(bytes, options);
719
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoBufferInfo_ComponentInfo {
720
+ return new VideoBufferInfo_ComponentInfo().fromBinary(bytes, options);
1127
721
  }
1128
722
 
1129
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PlanarYuvBufferInfo {
1130
- return new PlanarYuvBufferInfo().fromJson(jsonValue, options);
723
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoBufferInfo_ComponentInfo {
724
+ return new VideoBufferInfo_ComponentInfo().fromJson(jsonValue, options);
1131
725
  }
1132
726
 
1133
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PlanarYuvBufferInfo {
1134
- return new PlanarYuvBufferInfo().fromJsonString(jsonString, options);
727
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoBufferInfo_ComponentInfo {
728
+ return new VideoBufferInfo_ComponentInfo().fromJsonString(jsonString, options);
1135
729
  }
1136
730
 
1137
- static equals(a: PlanarYuvBufferInfo | PlainMessage<PlanarYuvBufferInfo> | undefined, b: PlanarYuvBufferInfo | PlainMessage<PlanarYuvBufferInfo> | undefined): boolean {
1138
- return proto3.util.equals(PlanarYuvBufferInfo, a, b);
731
+ static equals(a: VideoBufferInfo_ComponentInfo | PlainMessage<VideoBufferInfo_ComponentInfo> | undefined, b: VideoBufferInfo_ComponentInfo | PlainMessage<VideoBufferInfo_ComponentInfo> | undefined): boolean {
732
+ return proto3.util.equals(VideoBufferInfo_ComponentInfo, a, b);
1139
733
  }
1140
734
  }
1141
735
 
1142
736
  /**
1143
- * @generated from message livekit.proto.BiplanarYuvBufferInfo
737
+ * @generated from message livekit.proto.OwnedVideoBuffer
1144
738
  */
1145
- export class BiplanarYuvBufferInfo extends Message<BiplanarYuvBufferInfo> {
1146
- /**
1147
- * @generated from field: uint32 chroma_width = 1;
1148
- */
1149
- chromaWidth = 0;
1150
-
739
+ export class OwnedVideoBuffer extends Message<OwnedVideoBuffer> {
1151
740
  /**
1152
- * @generated from field: uint32 chroma_height = 2;
1153
- */
1154
- chromaHeight = 0;
1155
-
1156
- /**
1157
- * @generated from field: uint32 stride_y = 3;
1158
- */
1159
- strideY = 0;
1160
-
1161
- /**
1162
- * @generated from field: uint32 stride_uv = 4;
1163
- */
1164
- strideUv = 0;
1165
-
1166
- /**
1167
- * @generated from field: uint64 data_y_ptr = 5;
741
+ * @generated from field: livekit.proto.FfiOwnedHandle handle = 1;
1168
742
  */
1169
- dataYPtr = protoInt64.zero;
743
+ handle?: FfiOwnedHandle;
1170
744
 
1171
745
  /**
1172
- * @generated from field: uint64 data_uv_ptr = 6;
746
+ * @generated from field: livekit.proto.VideoBufferInfo info = 2;
1173
747
  */
1174
- dataUvPtr = protoInt64.zero;
748
+ info?: VideoBufferInfo;
1175
749
 
1176
- constructor(data?: PartialMessage<BiplanarYuvBufferInfo>) {
750
+ constructor(data?: PartialMessage<OwnedVideoBuffer>) {
1177
751
  super();
1178
752
  proto3.util.initPartial(data, this);
1179
753
  }
1180
754
 
1181
755
  static readonly runtime: typeof proto3 = proto3;
1182
- static readonly typeName = "livekit.proto.BiplanarYuvBufferInfo";
1183
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1184
- { no: 1, name: "chroma_width", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1185
- { no: 2, name: "chroma_height", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1186
- { no: 3, name: "stride_y", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1187
- { no: 4, name: "stride_uv", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1188
- { no: 5, name: "data_y_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
1189
- { no: 6, name: "data_uv_ptr", kind: "scalar", T: 4 /* ScalarType.UINT64 */ },
1190
- ]);
1191
-
1192
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BiplanarYuvBufferInfo {
1193
- return new BiplanarYuvBufferInfo().fromBinary(bytes, options);
1194
- }
1195
-
1196
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BiplanarYuvBufferInfo {
1197
- return new BiplanarYuvBufferInfo().fromJson(jsonValue, options);
1198
- }
1199
-
1200
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BiplanarYuvBufferInfo {
1201
- return new BiplanarYuvBufferInfo().fromJsonString(jsonString, options);
1202
- }
1203
-
1204
- static equals(a: BiplanarYuvBufferInfo | PlainMessage<BiplanarYuvBufferInfo> | undefined, b: BiplanarYuvBufferInfo | PlainMessage<BiplanarYuvBufferInfo> | undefined): boolean {
1205
- return proto3.util.equals(BiplanarYuvBufferInfo, a, b);
1206
- }
1207
- }
1208
-
1209
- /**
1210
- * TODO(theomonnom): Expose graphic context?
1211
- *
1212
- * @generated from message livekit.proto.NativeBufferInfo
1213
- */
1214
- export class NativeBufferInfo extends Message<NativeBufferInfo> {
1215
- constructor(data?: PartialMessage<NativeBufferInfo>) {
1216
- super();
1217
- proto3.util.initPartial(data, this);
1218
- }
1219
-
1220
- static readonly runtime: typeof proto3 = proto3;
1221
- static readonly typeName = "livekit.proto.NativeBufferInfo";
756
+ static readonly typeName = "livekit.proto.OwnedVideoBuffer";
1222
757
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
758
+ { no: 1, name: "handle", kind: "message", T: FfiOwnedHandle },
759
+ { no: 2, name: "info", kind: "message", T: VideoBufferInfo },
1223
760
  ]);
1224
761
 
1225
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): NativeBufferInfo {
1226
- return new NativeBufferInfo().fromBinary(bytes, options);
762
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OwnedVideoBuffer {
763
+ return new OwnedVideoBuffer().fromBinary(bytes, options);
1227
764
  }
1228
765
 
1229
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): NativeBufferInfo {
1230
- return new NativeBufferInfo().fromJson(jsonValue, options);
766
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OwnedVideoBuffer {
767
+ return new OwnedVideoBuffer().fromJson(jsonValue, options);
1231
768
  }
1232
769
 
1233
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): NativeBufferInfo {
1234
- return new NativeBufferInfo().fromJsonString(jsonString, options);
770
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OwnedVideoBuffer {
771
+ return new OwnedVideoBuffer().fromJsonString(jsonString, options);
1235
772
  }
1236
773
 
1237
- static equals(a: NativeBufferInfo | PlainMessage<NativeBufferInfo> | undefined, b: NativeBufferInfo | PlainMessage<NativeBufferInfo> | undefined): boolean {
1238
- return proto3.util.equals(NativeBufferInfo, a, b);
774
+ static equals(a: OwnedVideoBuffer | PlainMessage<OwnedVideoBuffer> | undefined, b: OwnedVideoBuffer | PlainMessage<OwnedVideoBuffer> | undefined): boolean {
775
+ return proto3.util.equals(OwnedVideoBuffer, a, b);
1239
776
  }
1240
777
  }
1241
778
 
@@ -1380,14 +917,21 @@ export class VideoStreamEvent extends Message<VideoStreamEvent> {
1380
917
  */
1381
918
  export class VideoFrameReceived extends Message<VideoFrameReceived> {
1382
919
  /**
1383
- * @generated from field: livekit.proto.VideoFrameInfo frame = 1;
920
+ * @generated from field: livekit.proto.OwnedVideoBuffer buffer = 1;
1384
921
  */
1385
- frame?: VideoFrameInfo;
922
+ buffer?: OwnedVideoBuffer;
1386
923
 
1387
924
  /**
1388
- * @generated from field: livekit.proto.OwnedVideoFrameBuffer buffer = 2;
925
+ * In microseconds
926
+ *
927
+ * @generated from field: int64 timestamp_us = 2;
1389
928
  */
1390
- buffer?: OwnedVideoFrameBuffer;
929
+ timestampUs = protoInt64.zero;
930
+
931
+ /**
932
+ * @generated from field: livekit.proto.VideoRotation rotation = 3;
933
+ */
934
+ rotation = VideoRotation.VIDEO_ROTATION_0;
1391
935
 
1392
936
  constructor(data?: PartialMessage<VideoFrameReceived>) {
1393
937
  super();
@@ -1397,8 +941,9 @@ export class VideoFrameReceived extends Message<VideoFrameReceived> {
1397
941
  static readonly runtime: typeof proto3 = proto3;
1398
942
  static readonly typeName = "livekit.proto.VideoFrameReceived";
1399
943
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
1400
- { no: 1, name: "frame", kind: "message", T: VideoFrameInfo },
1401
- { no: 2, name: "buffer", kind: "message", T: OwnedVideoFrameBuffer },
944
+ { no: 1, name: "buffer", kind: "message", T: OwnedVideoBuffer },
945
+ { no: 2, name: "timestamp_us", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
946
+ { no: 3, name: "rotation", kind: "enum", T: proto3.getEnumType(VideoRotation) },
1402
947
  ]);
1403
948
 
1404
949
  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoFrameReceived {