@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
@@ -1,364 +1,184 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ArgbFrame = exports.NV12Buffer = exports.I010Buffer = exports.I444Buffer = exports.I422Buffer = exports.I420ABuffer = exports.I420Buffer = exports.BiplanarYuv8Buffer = exports.PlanarYuv16Buffer = exports.PlanarYuv8Buffer = exports.PlanarYuvBuffer = exports.NativeBuffer = exports.VideoFrameBuffer = exports.VideoFrame = void 0;
4
- const ffi_client_1 = require("./ffi_client");
5
- const video_frame_pb_1 = require("./proto/video_frame_pb");
6
- class VideoFrame {
7
- constructor(timestampUs, rotation, buffer) {
8
- this.timestampUs = timestampUs;
9
- this.rotation = rotation;
10
- this.buffer = buffer;
11
- }
12
- }
13
- exports.VideoFrame = VideoFrame;
14
- class VideoFrameBuffer {
15
- constructor(data, width, height, bufferType) {
1
+ // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ import { FfiClient, FfiRequest } from './ffi_client.js';
5
+ import { VideoBufferInfo, VideoBufferInfo_ComponentInfo, VideoBufferType, } from './proto/video_frame_pb.js';
6
+ export class VideoFrame {
7
+ constructor(data, width, height, type, dataPtr) {
16
8
  this.data = data;
17
9
  this.width = width;
18
10
  this.height = height;
19
- this.bufferType = bufferType;
20
- }
21
- /** @internal */
22
- static fromOwnedInfo(owned) {
23
- let info = owned.info;
24
- switch (info.bufferType) {
25
- case video_frame_pb_1.VideoFrameBufferType.NATIVE:
26
- return NativeBuffer.fromOwnedInfo(owned);
27
- case video_frame_pb_1.VideoFrameBufferType.I420:
28
- return I420Buffer.fromOwnedInfo(owned);
29
- case video_frame_pb_1.VideoFrameBufferType.I420A:
30
- return I420ABuffer.fromOwnedInfo(owned);
31
- case video_frame_pb_1.VideoFrameBufferType.I422:
32
- return I422Buffer.fromOwnedInfo(owned);
33
- case video_frame_pb_1.VideoFrameBufferType.I444:
34
- return I444Buffer.fromOwnedInfo(owned);
35
- case video_frame_pb_1.VideoFrameBufferType.I010:
36
- return I010Buffer.fromOwnedInfo(owned);
37
- case video_frame_pb_1.VideoFrameBufferType.NV12:
38
- return NV12Buffer.fromOwnedInfo(owned);
39
- }
40
- }
41
- }
42
- exports.VideoFrameBuffer = VideoFrameBuffer;
43
- class NativeBuffer extends VideoFrameBuffer {
44
- constructor(ownedInfo) {
45
- super(new Uint8Array(), ownedInfo.info.width, ownedInfo.info.height, ownedInfo.info.bufferType);
46
- this.info = ownedInfo.info;
47
- }
48
- /** @internal */
49
- protoInfo() {
50
- return this.info;
51
- }
52
- }
53
- exports.NativeBuffer = NativeBuffer;
54
- class PlanarYuvBuffer extends VideoFrameBuffer {
55
- constructor(data, width, height, bufferType, strideY, strideU, strideV, chromaWidth, chromaHeight) {
56
- super(data, width, height, bufferType);
57
- this.strideY = strideY;
58
- this.strideU = strideU;
59
- this.strideV = strideV;
60
- this.chromaWidth = chromaWidth;
61
- this.chromaHeight = chromaHeight;
62
- }
63
- /** @internal */
64
- protoInfo() {
65
- let info = new video_frame_pb_1.VideoFrameBufferInfo({
66
- width: this.width,
67
- height: this.height,
68
- bufferType: this.bufferType,
69
- buffer: {
70
- case: 'yuv',
71
- value: new video_frame_pb_1.PlanarYuvBufferInfo({
72
- strideY: this.strideY,
73
- strideU: this.strideU,
74
- strideV: this.strideV,
75
- chromaWidth: this.chromaWidth,
76
- chromaHeight: this.chromaHeight,
77
- }),
78
- },
79
- });
80
- return info;
81
- }
82
- }
83
- exports.PlanarYuvBuffer = PlanarYuvBuffer;
84
- class PlanarYuv8Buffer extends PlanarYuvBuffer {
85
- constructor(data, width, height, bufferType, strideY, strideU, strideV, chromaWidth, chromaHeight) {
86
- super(data, width, height, bufferType, strideY, strideU, strideV, chromaWidth, chromaHeight);
87
- }
88
- /** @internal */
89
- protoInfo() {
90
- let info = super.protoInfo();
91
- let yuv = info.buffer.value;
92
- yuv.dataYPtr = ffi_client_1.FfiClient.instance.retrievePtr(this.dataY());
93
- yuv.dataUPtr = ffi_client_1.FfiClient.instance.retrievePtr(this.dataU());
94
- yuv.dataVPtr = ffi_client_1.FfiClient.instance.retrievePtr(this.dataV());
95
- return info;
96
- }
97
- dataY() {
98
- return this.data.subarray(0, this.strideY * this.height);
99
- }
100
- dataU() {
101
- return this.data.subarray(this.strideY * this.height, this.strideY * this.height + this.strideU * this.chromaHeight);
102
- }
103
- dataV() {
104
- return this.data.subarray(this.strideY * this.height + this.strideU * this.chromaHeight, this.strideY * this.height +
105
- this.strideU * this.chromaHeight +
106
- this.strideV * this.chromaHeight);
107
- }
108
- }
109
- exports.PlanarYuv8Buffer = PlanarYuv8Buffer;
110
- class PlanarYuv16Buffer extends PlanarYuvBuffer {
111
- constructor(data, width, height, bufferType, strideY, strideU, strideV, chromaWidth, chromaHeight) {
112
- super(new Uint8Array(data), width, height, bufferType, strideY, strideU, strideV, chromaWidth, chromaHeight);
113
- }
114
- /** @internal */
115
- protoInfo() {
116
- let info = super.protoInfo();
117
- let yuv = info.buffer.value;
118
- yuv.dataYPtr = ffi_client_1.FfiClient.instance.retrievePtr(new Uint8Array(this.dataY()));
119
- yuv.dataUPtr = ffi_client_1.FfiClient.instance.retrievePtr(new Uint8Array(this.dataU()));
120
- yuv.dataVPtr = ffi_client_1.FfiClient.instance.retrievePtr(new Uint8Array(this.dataV()));
121
- return info;
122
- }
123
- dataY() {
124
- return new Uint16Array(this.data.subarray(0, this.strideY * this.height));
125
- }
126
- dataU() {
127
- return new Uint16Array(this.data.subarray(this.strideY * this.height, this.strideY * this.height + this.strideU * this.chromaHeight));
128
- }
129
- dataV() {
130
- return new Uint16Array(this.data.subarray(this.strideY * this.height + this.strideU * this.chromaHeight, this.strideY * this.height +
131
- this.strideU * this.chromaHeight +
132
- this.strideV * this.chromaHeight));
133
- }
134
- }
135
- exports.PlanarYuv16Buffer = PlanarYuv16Buffer;
136
- class BiplanarYuv8Buffer extends VideoFrameBuffer {
137
- constructor(data, width, height, bufferType, strideY, strideUV, chromaWidth, chromaHeight) {
138
- super(data, width, height, bufferType);
139
- this.strideY = strideY;
140
- this.strideUV = strideUV;
141
- this.chromaWidth = chromaWidth;
142
- this.chromaHeight = chromaHeight;
11
+ this.type = type;
12
+ this.dataPtr = dataPtr;
143
13
  }
144
14
  /** @internal */
145
15
  protoInfo() {
146
- let info = new video_frame_pb_1.VideoFrameBufferInfo({
16
+ const info = new VideoBufferInfo({
147
17
  width: this.width,
148
18
  height: this.height,
149
- bufferType: this.bufferType,
150
- buffer: {
151
- case: 'biYuv',
152
- value: new video_frame_pb_1.BiplanarYuvBufferInfo({
153
- strideY: this.strideY,
154
- strideUv: this.strideUV,
155
- chromaWidth: this.chromaWidth,
156
- chromaHeight: this.chromaHeight,
157
- }),
158
- },
19
+ type: this.type,
20
+ dataPtr: this.dataPtr,
159
21
  });
22
+ switch (this.type) {
23
+ case VideoBufferType.ARGB:
24
+ case VideoBufferType.RGBA:
25
+ case VideoBufferType.ABGR:
26
+ case VideoBufferType.BGRA:
27
+ info.stride = this.width * 4;
28
+ case VideoBufferType.RGB24:
29
+ info.stride = this.width * 3;
30
+ }
31
+ info.components.push(...getPlaneInfos(this.dataPtr, this.type, this.width, this.height));
160
32
  return info;
161
33
  }
162
- dataY() {
163
- return this.data.subarray(0, this.strideY * this.height);
164
- }
165
- dataUV() {
166
- return this.data.subarray(this.strideY * this.height, this.strideY * this.height + this.strideUV * this.chromaHeight);
167
- }
168
- }
169
- exports.BiplanarYuv8Buffer = BiplanarYuv8Buffer;
170
- class I420Buffer extends PlanarYuv8Buffer {
171
- constructor(data, width, height, strideY, strideU, strideV) {
172
- let chromaWidth = ~~((width + 1) / 2);
173
- let chromaHeight = ~~((height + 1) / 2);
174
- super(data, width, height, video_frame_pb_1.VideoFrameBufferType.I420, strideY, strideU, strideV, chromaWidth, chromaHeight);
175
- }
176
34
  /** @internal */
177
35
  static fromOwnedInfo(owned) {
178
36
  let info = owned.info;
179
- let yuv = info.buffer.value;
180
- let strideY = yuv.strideY;
181
- let strideU = yuv.strideU;
182
- let strideV = yuv.strideV;
183
- let nbytes = I420Buffer.calcDataSize(info.height, strideY, strideU, strideV);
184
- let data = ffi_client_1.FfiClient.instance.copyBuffer(yuv.dataYPtr, nbytes);
185
- new ffi_client_1.FfiHandle(owned.handle.id).dispose();
186
- return new I420Buffer(data, info.width, info.height, strideY, strideU, strideV);
187
- }
188
- static calcDataSize(height, strideY, strideU, strideV) {
189
- let chromaHeight = ~~((height + 1) / 2);
190
- return strideY * height + strideU * chromaHeight + strideV * chromaHeight;
37
+ return new VideoFrame(FfiClient.instance.copyBuffer(info.dataPtr, getPlaneLength(info.type, info.width, info.height)), info.width, info.height, info.type, info.dataPtr);
191
38
  }
192
- static create(width, height) {
193
- let strideY = width;
194
- let strideU = ~~((width + 1) / 2);
195
- let strideV = ~~((width + 1) / 2);
196
- let dataSize = I420Buffer.calcDataSize(height, strideY, strideU, strideV);
197
- let data = new Uint8Array(dataSize);
198
- return new I420Buffer(data, width, height, strideY, strideU, strideV);
39
+ getPlane(planeNth) {
40
+ const planeInfos = getPlaneInfos(this.dataPtr, this.type, this.width, this.height);
41
+ if (planeNth >= planeInfos.length)
42
+ return;
43
+ const planeInfo = planeInfos[planeNth];
44
+ return FfiClient.instance.copyBuffer(planeInfo.dataPtr, planeInfo.size);
199
45
  }
200
- }
201
- exports.I420Buffer = I420Buffer;
202
- class I420ABuffer extends PlanarYuv8Buffer {
203
- constructor(data, width, height, strideY, strideU, strideV, strideA) {
204
- let chromaWidth = ~~((width + 1) / 2);
205
- let chromaHeight = ~~((height + 1) / 2);
206
- super(data, width, height, video_frame_pb_1.VideoFrameBufferType.I420A, strideY, strideU, strideV, chromaWidth, chromaHeight);
207
- this.strideA = strideA;
208
- }
209
- /** @internal */
210
- static fromOwnedInfo(owned) {
211
- let info = owned.info;
212
- let yuv = info.buffer.value;
213
- let strideY = yuv.strideY;
214
- let strideU = yuv.strideU;
215
- let strideV = yuv.strideV;
216
- let strideA = yuv.strideA;
217
- let nbytes = I420ABuffer.calcDataSize(info.height, strideY, strideU, strideV, strideA);
218
- let data = ffi_client_1.FfiClient.instance.copyBuffer(yuv.dataYPtr, nbytes);
219
- new ffi_client_1.FfiHandle(owned.handle.id).dispose();
220
- return new I420ABuffer(data, info.width, info.height, strideY, strideU, strideV, strideA);
221
- }
222
- static calcDataSize(height, strideY, strideU, strideV, strideA) {
223
- let chromaHeight = ~~((height + 1) / 2);
224
- return strideY * height + strideU * chromaHeight + strideV * chromaHeight + strideA * height;
225
- }
226
- dataA() {
227
- return this.data.subarray(this.strideY * this.height +
228
- this.strideU * this.chromaHeight +
229
- this.strideV * this.chromaHeight, this.strideY * this.height +
230
- this.strideU * this.chromaHeight +
231
- this.strideV * this.chromaHeight +
232
- this.strideA * this.height);
233
- }
234
- }
235
- exports.I420ABuffer = I420ABuffer;
236
- class I422Buffer extends PlanarYuv8Buffer {
237
- constructor(data, width, height, strideY, strideU, strideV) {
238
- let chromaWidth = ~~((width + 1) / 2);
239
- let chromaHeight = height;
240
- super(data, width, height, video_frame_pb_1.VideoFrameBufferType.I422, strideY, strideU, strideV, chromaWidth, chromaHeight);
241
- }
242
- /** @internal */
243
- static fromOwnedInfo(owned) {
244
- let info = owned.info;
245
- let yuv = info.buffer.value;
246
- let strideY = yuv.strideY;
247
- let strideU = yuv.strideU;
248
- let strideV = yuv.strideV;
249
- let nbytes = I422Buffer.calcDataSize(info.height, strideY, strideU, strideV);
250
- let data = ffi_client_1.FfiClient.instance.copyBuffer(yuv.dataYPtr, nbytes);
251
- new ffi_client_1.FfiHandle(owned.handle.id).dispose();
252
- return new I422Buffer(data, info.width, info.height, strideY, strideU, strideV);
253
- }
254
- static calcDataSize(height, strideY, strideU, strideV) {
255
- return strideY * height + strideU * height + strideV * height;
256
- }
257
- }
258
- exports.I422Buffer = I422Buffer;
259
- class I444Buffer extends PlanarYuv8Buffer {
260
- constructor(data, width, height, strideY, strideU, strideV) {
261
- let chromaWidth = width;
262
- let chromaHeight = height;
263
- super(data, width, height, video_frame_pb_1.VideoFrameBufferType.I444, strideY, strideU, strideV, chromaWidth, chromaHeight);
264
- }
265
- /** @internal */
266
- static fromOwnedInfo(owned) {
267
- let info = owned.info;
268
- let yuv = info.buffer.value;
269
- let strideY = yuv.strideY;
270
- let strideU = yuv.strideU;
271
- let strideV = yuv.strideV;
272
- let nbytes = I444Buffer.calcDataSize(info.height, strideY, strideU, strideV);
273
- let data = ffi_client_1.FfiClient.instance.copyBuffer(yuv.dataYPtr, nbytes);
274
- new ffi_client_1.FfiHandle(owned.handle.id).dispose();
275
- return new I444Buffer(data, info.width, info.height, strideY, strideU, strideV);
276
- }
277
- static calcDataSize(height, strideY, strideU, strideV) {
278
- return strideY * height + strideU * height + strideV * height;
279
- }
280
- }
281
- exports.I444Buffer = I444Buffer;
282
- class I010Buffer extends PlanarYuv16Buffer {
283
- constructor(data, width, height, strideY, strideU, strideV) {
284
- let chromaWidth = ~~((width + 1) / 2);
285
- let chromaHeight = ~~((height + 1) / 2);
286
- super(data, width, height, video_frame_pb_1.VideoFrameBufferType.I010, strideY, strideU, strideV, chromaWidth, chromaHeight);
287
- }
288
- /** @internal */
289
- static fromOwnedInfo(owned) {
290
- let info = owned.info;
291
- let yuv = info.buffer.value;
292
- let strideY = yuv.strideY;
293
- let strideU = yuv.strideU;
294
- let strideV = yuv.strideV;
295
- let nbytes = I010Buffer.calcDataSize(info.height, strideY, strideU, strideV);
296
- let data = ffi_client_1.FfiClient.instance.copyBuffer(yuv.dataYPtr, nbytes);
297
- new ffi_client_1.FfiHandle(owned.handle.id).dispose();
298
- return new I010Buffer(new Uint16Array(data), info.width, info.height, strideY, strideU, strideV);
299
- }
300
- static calcDataSize(height, strideY, strideU, strideV) {
301
- let chromaHeight = ~~((height + 1) / 2);
302
- return (strideY * height + strideU * chromaHeight + strideV * chromaHeight) * 2;
303
- }
304
- }
305
- exports.I010Buffer = I010Buffer;
306
- class NV12Buffer extends BiplanarYuv8Buffer {
307
- constructor(data, width, height, strideY, strideUV) {
308
- let chromaWidth = ~~((width + 1) / 2);
309
- let chromaHeight = ~~((height + 1) / 2);
310
- super(data, width, height, video_frame_pb_1.VideoFrameBufferType.NV12, strideY, strideUV, chromaWidth, chromaHeight);
311
- }
312
- /** @internal */
313
- static fromOwnedInfo(owned) {
314
- let info = owned.info;
315
- let yuv = info.buffer.value;
316
- let strideY = yuv.strideY;
317
- let strideUV = yuv.strideUv;
318
- let nbytes = NV12Buffer.calcDataSize(info.height, strideY, strideUV);
319
- let data = ffi_client_1.FfiClient.instance.copyBuffer(yuv.dataYPtr, nbytes);
320
- new ffi_client_1.FfiHandle(owned.handle.id).dispose();
321
- return new NV12Buffer(data, info.width, info.height, strideY, strideUV);
322
- }
323
- static calcDataSize(height, strideY, strideUV) {
324
- let chromaHeight = ~~((height + 1) / 2);
325
- return strideY * height + strideUV * chromaHeight;
326
- }
327
- }
328
- exports.NV12Buffer = NV12Buffer;
329
- class ArgbFrame {
330
- constructor(data, format, width, height, stride = width * 4) {
331
- this.data = data;
332
- this.format = format;
333
- this.width = width;
334
- this.height = height;
335
- this.stride = stride;
336
- }
337
- static create(format, width, height) {
338
- let data = new Uint8Array(width * height * 4);
339
- return new ArgbFrame(data, format, width, height);
340
- }
341
- toI420() {
342
- let req = new video_frame_pb_1.ToI420Request({
343
- from: {
344
- case: 'argb',
46
+ convert(dstType, flipY = false) {
47
+ const req = new FfiRequest({
48
+ message: {
49
+ case: 'videoConvert',
345
50
  value: {
346
- format: this.format,
347
- width: this.width,
348
- height: this.height,
349
- stride: this.stride,
350
- ptr: ffi_client_1.FfiClient.instance.retrievePtr(this.data),
51
+ flipY,
52
+ dstType,
53
+ buffer: this.protoInfo(),
351
54
  },
352
55
  },
353
56
  });
354
- let resp = ffi_client_1.FfiClient.instance.request({
355
- message: {
356
- case: 'toI420',
357
- value: req,
358
- },
359
- });
360
- return I420Buffer.fromOwnedInfo(resp.buffer);
57
+ const resp = FfiClient.instance.request(req);
58
+ if (resp.error) {
59
+ throw resp.error;
60
+ }
61
+ return VideoFrame.fromOwnedInfo(resp.buffer);
361
62
  }
362
63
  }
363
- exports.ArgbFrame = ArgbFrame;
64
+ const getPlaneLength = (type, width, height) => {
65
+ const chromaWidth = Math.trunc((width + 1) / 2);
66
+ const chromaHeight = Math.trunc((height + 1) / 2);
67
+ switch (type) {
68
+ case VideoBufferType.ARGB:
69
+ case VideoBufferType.RGBA:
70
+ case VideoBufferType.ABGR:
71
+ case VideoBufferType.BGRA:
72
+ return width * height * 4;
73
+ case VideoBufferType.RGB24:
74
+ case VideoBufferType.I444:
75
+ return width * height * 3;
76
+ case VideoBufferType.I420:
77
+ return width * height + chromaWidth * chromaHeight * 2;
78
+ case VideoBufferType.I420A:
79
+ return width * height * 2 + chromaWidth * chromaWidth * 2;
80
+ case VideoBufferType.I422:
81
+ return width * height + chromaWidth * height * 2;
82
+ case VideoBufferType.I010:
83
+ return width * height * 2 + chromaWidth * chromaHeight * 4;
84
+ case VideoBufferType.NV12:
85
+ return width * height + chromaWidth * chromaWidth * 2;
86
+ }
87
+ };
88
+ const getPlaneInfos = (dataPtr, type, width, height) => {
89
+ const chromaWidth = Math.trunc((width + 1) / 2);
90
+ const chromaHeight = Math.trunc((height + 1) / 2);
91
+ switch (type) {
92
+ case VideoBufferType.I420: {
93
+ const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
94
+ const u = new VideoBufferInfo_ComponentInfo({
95
+ dataPtr: y.dataPtr + BigInt(y.size),
96
+ stride: chromaWidth,
97
+ size: chromaWidth * chromaHeight,
98
+ });
99
+ const v = new VideoBufferInfo_ComponentInfo({
100
+ dataPtr: u.dataPtr + BigInt(u.size),
101
+ stride: chromaWidth,
102
+ size: chromaWidth * chromaHeight,
103
+ });
104
+ return [y, u, v];
105
+ }
106
+ case VideoBufferType.I420A: {
107
+ const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
108
+ const u = new VideoBufferInfo_ComponentInfo({
109
+ dataPtr: y.dataPtr + BigInt(y.size),
110
+ stride: chromaWidth,
111
+ size: chromaWidth * chromaHeight,
112
+ });
113
+ const v = new VideoBufferInfo_ComponentInfo({
114
+ dataPtr: u.dataPtr + BigInt(u.size),
115
+ stride: chromaWidth,
116
+ size: chromaWidth * chromaHeight,
117
+ });
118
+ const a = new VideoBufferInfo_ComponentInfo({
119
+ dataPtr: v.dataPtr + BigInt(v.size),
120
+ stride: width,
121
+ size: width * height,
122
+ });
123
+ return [y, u, v, a];
124
+ }
125
+ case VideoBufferType.I422: {
126
+ const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
127
+ const u = new VideoBufferInfo_ComponentInfo({
128
+ dataPtr: y.dataPtr + BigInt(y.size),
129
+ stride: chromaWidth,
130
+ size: chromaWidth * height,
131
+ });
132
+ const v = new VideoBufferInfo_ComponentInfo({
133
+ dataPtr: u.dataPtr + BigInt(u.size),
134
+ stride: chromaWidth,
135
+ size: chromaWidth * height,
136
+ });
137
+ return [y, u, v];
138
+ }
139
+ case VideoBufferType.I444: {
140
+ const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
141
+ const u = new VideoBufferInfo_ComponentInfo({
142
+ dataPtr: y.dataPtr + BigInt(y.size),
143
+ stride: width,
144
+ size: width * height,
145
+ });
146
+ const v = new VideoBufferInfo_ComponentInfo({
147
+ dataPtr: u.dataPtr + BigInt(u.size),
148
+ stride: width,
149
+ size: width * height,
150
+ });
151
+ return [y, u, v];
152
+ }
153
+ case VideoBufferType.I010: {
154
+ const y = new VideoBufferInfo_ComponentInfo({
155
+ dataPtr,
156
+ stride: width * 2,
157
+ size: width * height * 2,
158
+ });
159
+ const u = new VideoBufferInfo_ComponentInfo({
160
+ dataPtr: y.dataPtr + BigInt(y.size),
161
+ stride: chromaWidth * 2,
162
+ size: chromaWidth * chromaHeight * 2,
163
+ });
164
+ const v = new VideoBufferInfo_ComponentInfo({
165
+ dataPtr: u.dataPtr + BigInt(u.size),
166
+ stride: chromaWidth * 2,
167
+ size: chromaWidth * chromaHeight * 2,
168
+ });
169
+ return [y, u, v];
170
+ }
171
+ case VideoBufferType.NV12: {
172
+ const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
173
+ const uv = new VideoBufferInfo_ComponentInfo({
174
+ dataPtr: y.dataPtr + BigInt(y.size),
175
+ stride: chromaWidth * 2,
176
+ size: chromaWidth * chromaHeight * 2,
177
+ });
178
+ return [y, uv];
179
+ }
180
+ default:
181
+ return [];
182
+ }
183
+ };
364
184
  //# sourceMappingURL=video_frame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video_frame.js","sourceRoot":"","sources":["../src/video_frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video_frame.js","sourceRoot":"","sources":["../src/video_frame.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { FfiHandle } from './ffi_client';
2
- import { VideoSourceInfo } from './proto/video_frame_pb';
3
- import { VideoFrame } from './video_frame';
1
+ import { FfiHandle } from './ffi_client.js';
2
+ import { VideoRotation, VideoSourceInfo } from './proto/video_frame_pb.js';
3
+ import { VideoFrame } from './video_frame.js';
4
4
  export declare class VideoSource {
5
5
  /** @internal */
6
6
  info: VideoSourceInfo;
@@ -9,6 +9,6 @@ export declare class VideoSource {
9
9
  width: number;
10
10
  height: number;
11
11
  constructor(width: number, height: number);
12
- captureFrame(frame: VideoFrame): void;
12
+ captureFrame(frame: VideoFrame, timestampUs?: bigint, rotation?: VideoRotation): void;
13
13
  }
14
14
  //# sourceMappingURL=video_source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"video_source.d.ts","sourceRoot":"","sources":["../src/video_source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAc,MAAM,cAAc,CAAC;AAChE,OAAO,EAKL,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,WAAW;IACtB,gBAAgB;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,gBAAgB;IAChB,SAAS,EAAE,SAAS,CAAC;IAErB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAEH,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAuBzC,YAAY,CAAC,KAAK,EAAE,UAAU;CAiB/B"}
1
+ {"version":3,"file":"video_source.d.ts","sourceRoot":"","sources":["../src/video_source.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,SAAS,EAAc,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAKL,aAAa,EACb,eAAe,EAEhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,qBAAa,WAAW;IACtB,gBAAgB;IAChB,IAAI,EAAE,eAAe,CAAC;IACtB,gBAAgB;IAChB,SAAS,EAAE,SAAS,CAAC;IAErB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;gBAEH,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAuBzC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,SAAK,EAAE,QAAQ,gBAAiC;CAY5F"}
@@ -1,44 +1,38 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VideoSource = void 0;
4
- const ffi_client_1 = require("./ffi_client");
5
- const video_frame_pb_1 = require("./proto/video_frame_pb");
6
- class VideoSource {
1
+ // SPDX-FileCopyrightText: 2024 LiveKit, Inc.
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ import { FfiClient, FfiHandle } from './ffi_client.js';
5
+ import { CaptureVideoFrameRequest, NewVideoSourceRequest, VideoRotation, VideoSourceType, } from './proto/video_frame_pb.js';
6
+ export class VideoSource {
7
7
  constructor(width, height) {
8
8
  this.width = width;
9
9
  this.height = height;
10
- let req = new video_frame_pb_1.NewVideoSourceRequest({
11
- type: video_frame_pb_1.VideoSourceType.VIDEO_SOURCE_NATIVE,
10
+ let req = new NewVideoSourceRequest({
11
+ type: VideoSourceType.VIDEO_SOURCE_NATIVE,
12
12
  resolution: {
13
13
  width: width,
14
14
  height: height,
15
15
  },
16
16
  });
17
- let res = ffi_client_1.FfiClient.instance.request({
17
+ let res = FfiClient.instance.request({
18
18
  message: {
19
19
  case: 'newVideoSource',
20
20
  value: req,
21
21
  },
22
22
  });
23
23
  this.info = res.source.info;
24
- this.ffiHandle = new ffi_client_1.FfiHandle(res.source.handle.id);
24
+ this.ffiHandle = new FfiHandle(res.source.handle.id);
25
25
  }
26
- captureFrame(frame) {
27
- let req = new video_frame_pb_1.CaptureVideoFrameRequest({
26
+ captureFrame(frame, timestampUs = 0n, rotation = VideoRotation.VIDEO_ROTATION_0) {
27
+ let req = new CaptureVideoFrameRequest({
28
28
  sourceHandle: this.ffiHandle.handle,
29
- from: {
30
- case: 'info',
31
- value: frame.buffer.protoInfo(),
32
- },
33
- frame: {
34
- rotation: frame.rotation,
35
- timestampUs: BigInt(frame.timestampUs),
36
- },
29
+ buffer: frame.protoInfo(),
30
+ rotation,
31
+ timestampUs,
37
32
  });
38
- ffi_client_1.FfiClient.instance.request({
33
+ FfiClient.instance.request({
39
34
  message: { case: 'captureVideoFrame', value: req },
40
35
  });
41
36
  }
42
37
  }
43
- exports.VideoSource = VideoSource;
44
38
  //# sourceMappingURL=video_source.js.map