@livekit/rtc-node 0.12.1 → 0.13.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 (223) hide show
  1. package/dist/audio_frame.cjs +2 -2
  2. package/dist/audio_frame.cjs.map +1 -1
  3. package/dist/audio_frame.d.cts +31 -0
  4. package/dist/audio_frame.d.ts +11 -5
  5. package/dist/audio_frame.d.ts.map +1 -1
  6. package/dist/audio_frame.js +3 -3
  7. package/dist/audio_frame.js.map +1 -1
  8. package/dist/audio_resampler.cjs +10 -7
  9. package/dist/audio_resampler.cjs.map +1 -1
  10. package/dist/audio_resampler.d.cts +59 -0
  11. package/dist/audio_resampler.d.ts +11 -3
  12. package/dist/audio_resampler.d.ts.map +1 -1
  13. package/dist/audio_resampler.js +13 -10
  14. package/dist/audio_resampler.js.map +1 -1
  15. package/dist/audio_source.cjs +6 -4
  16. package/dist/audio_source.cjs.map +1 -1
  17. package/dist/audio_source.d.cts +37 -0
  18. package/dist/audio_source.d.ts +13 -5
  19. package/dist/audio_source.d.ts.map +1 -1
  20. package/dist/audio_source.js +9 -7
  21. package/dist/audio_source.js.map +1 -1
  22. package/dist/audio_stream.cjs +1 -2
  23. package/dist/audio_stream.cjs.map +1 -1
  24. package/dist/audio_stream.d.cts +37 -0
  25. package/dist/audio_stream.d.ts +16 -5
  26. package/dist/audio_stream.d.ts.map +1 -1
  27. package/dist/audio_stream.js +2 -3
  28. package/dist/audio_stream.js.map +1 -1
  29. package/dist/e2ee.cjs +19 -20
  30. package/dist/e2ee.cjs.map +1 -1
  31. package/dist/e2ee.d.cts +47 -0
  32. package/dist/e2ee.d.ts +11 -8
  33. package/dist/e2ee.d.ts.map +1 -1
  34. package/dist/e2ee.js +29 -30
  35. package/dist/e2ee.js.map +1 -1
  36. package/dist/ffi_client.cjs +6 -5
  37. package/dist/ffi_client.cjs.map +1 -1
  38. package/dist/ffi_client.d.cts +35 -0
  39. package/dist/ffi_client.d.ts +23 -11
  40. package/dist/ffi_client.d.ts.map +1 -1
  41. package/dist/ffi_client.js +6 -10
  42. package/dist/ffi_client.js.map +1 -1
  43. package/dist/index.cjs +16 -49
  44. package/dist/index.cjs.map +1 -1
  45. package/dist/index.d.cts +28 -0
  46. package/dist/index.d.ts +20 -41
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +7 -46
  49. package/dist/index.js.map +1 -1
  50. package/dist/napi/native.d.cjs.map +1 -1
  51. package/dist/napi/native.d.d.cts +21 -0
  52. package/dist/napi/native.d.d.ts +21 -0
  53. package/dist/napi/native.d.ts +5 -5
  54. package/dist/native.d.ts +5 -5
  55. package/dist/participant.cjs +57 -34
  56. package/dist/participant.cjs.map +1 -1
  57. package/dist/participant.d.cts +126 -0
  58. package/dist/participant.d.ts +34 -20
  59. package/dist/participant.d.ts.map +1 -1
  60. package/dist/participant.js +75 -50
  61. package/dist/participant.js.map +1 -1
  62. package/dist/proto/audio_frame_pb.cjs +977 -125
  63. package/dist/proto/audio_frame_pb.cjs.map +1 -1
  64. package/dist/proto/audio_frame_pb.d.cts +898 -0
  65. package/dist/proto/audio_frame_pb.d.ts +506 -417
  66. package/dist/proto/audio_frame_pb.d.ts.map +1 -1
  67. package/dist/proto/audio_frame_pb.js +943 -85
  68. package/dist/proto/audio_frame_pb.js.map +1 -1
  69. package/dist/proto/e2ee_pb.cjs +700 -85
  70. package/dist/proto/e2ee_pb.cjs.map +1 -1
  71. package/dist/proto/e2ee_pb.d.cts +653 -0
  72. package/dist/proto/e2ee_pb.d.ts +333 -263
  73. package/dist/proto/e2ee_pb.d.ts.map +1 -1
  74. package/dist/proto/e2ee_pb.js +675 -57
  75. package/dist/proto/e2ee_pb.js.map +1 -1
  76. package/dist/proto/ffi_pb.cjs +369 -36
  77. package/dist/proto/ffi_pb.cjs.map +1 -1
  78. package/dist/proto/ffi_pb.d.cts +898 -0
  79. package/dist/proto/ffi_pb.d.ts +164 -112
  80. package/dist/proto/ffi_pb.d.ts.map +1 -1
  81. package/dist/proto/ffi_pb.js +364 -29
  82. package/dist/proto/ffi_pb.js.map +1 -1
  83. package/dist/proto/handle_pb.cjs +27 -7
  84. package/dist/proto/handle_pb.cjs.map +1 -1
  85. package/dist/proto/handle_pb.d.cts +31 -0
  86. package/dist/proto/handle_pb.d.ts +15 -15
  87. package/dist/proto/handle_pb.d.ts.map +1 -1
  88. package/dist/proto/handle_pb.js +26 -5
  89. package/dist/proto/handle_pb.js.map +1 -1
  90. package/dist/proto/participant_pb.cjs +112 -15
  91. package/dist/proto/participant_pb.cjs.map +1 -1
  92. package/dist/proto/participant_pb.d.cts +181 -0
  93. package/dist/proto/participant_pb.d.ts +143 -53
  94. package/dist/proto/participant_pb.d.ts.map +1 -1
  95. package/dist/proto/participant_pb.js +109 -11
  96. package/dist/proto/participant_pb.js.map +1 -1
  97. package/dist/proto/room_pb.cjs +2693 -302
  98. package/dist/proto/room_pb.cjs.map +1 -1
  99. package/dist/proto/room_pb.d.cts +2475 -0
  100. package/dist/proto/room_pb.d.ts +1269 -864
  101. package/dist/proto/room_pb.d.ts.map +1 -1
  102. package/dist/proto/room_pb.js +2603 -210
  103. package/dist/proto/room_pb.js.map +1 -1
  104. package/dist/proto/rpc_pb.cjs +302 -37
  105. package/dist/proto/rpc_pb.cjs.map +1 -1
  106. package/dist/proto/rpc_pb.d.cts +267 -0
  107. package/dist/proto/rpc_pb.d.ts +140 -108
  108. package/dist/proto/rpc_pb.d.ts.map +1 -1
  109. package/dist/proto/rpc_pb.js +291 -25
  110. package/dist/proto/rpc_pb.js.map +1 -1
  111. package/dist/proto/stats_pb.cjs +1253 -139
  112. package/dist/proto/stats_pb.cjs.map +1 -1
  113. package/dist/proto/stats_pb.d.cts +1764 -0
  114. package/dist/proto/stats_pb.d.ts +806 -693
  115. package/dist/proto/stats_pb.d.ts.map +1 -1
  116. package/dist/proto/stats_pb.js +1216 -93
  117. package/dist/proto/stats_pb.js.map +1 -1
  118. package/dist/proto/track_pb.cjs +462 -64
  119. package/dist/proto/track_pb.cjs.map +1 -1
  120. package/dist/proto/track_pb.d.cts +434 -0
  121. package/dist/proto/track_pb.d.ts +254 -220
  122. package/dist/proto/track_pb.d.ts.map +1 -1
  123. package/dist/proto/track_pb.js +447 -45
  124. package/dist/proto/track_pb.js.map +1 -1
  125. package/dist/proto/track_publication_pb.cjs +130 -0
  126. package/dist/proto/track_publication_pb.cjs.map +1 -0
  127. package/dist/proto/track_publication_pb.d.cts +80 -0
  128. package/dist/proto/track_publication_pb.d.ts +80 -0
  129. package/dist/proto/track_publication_pb.d.ts.map +1 -0
  130. package/dist/proto/track_publication_pb.js +103 -0
  131. package/dist/proto/track_publication_pb.js.map +1 -0
  132. package/dist/proto/video_frame_pb.cjs +648 -88
  133. package/dist/proto/video_frame_pb.cjs.map +1 -1
  134. package/dist/proto/video_frame_pb.d.cts +660 -0
  135. package/dist/proto/video_frame_pb.d.ts +375 -328
  136. package/dist/proto/video_frame_pb.d.ts.map +1 -1
  137. package/dist/proto/video_frame_pb.js +626 -60
  138. package/dist/proto/video_frame_pb.js.map +1 -1
  139. package/dist/room.cjs +93 -125
  140. package/dist/room.cjs.map +1 -1
  141. package/dist/room.d.cts +123 -0
  142. package/dist/room.d.ts +37 -34
  143. package/dist/room.d.ts.map +1 -1
  144. package/dist/room.js +92 -122
  145. package/dist/room.js.map +1 -1
  146. package/dist/rpc.cjs.map +1 -1
  147. package/dist/rpc.d.cts +81 -0
  148. package/dist/rpc.d.ts +10 -7
  149. package/dist/rpc.js.map +1 -1
  150. package/dist/track.cjs +12 -8
  151. package/dist/track.cjs.map +1 -1
  152. package/dist/track.d.cts +45 -0
  153. package/dist/track.d.ts +30 -20
  154. package/dist/track.d.ts.map +1 -1
  155. package/dist/track.js +13 -9
  156. package/dist/track.js.map +1 -1
  157. package/dist/track_publication.cjs +21 -12
  158. package/dist/track_publication.cjs.map +1 -1
  159. package/dist/track_publication.d.cts +47 -0
  160. package/dist/track_publication.d.ts +30 -19
  161. package/dist/track_publication.d.ts.map +1 -1
  162. package/dist/track_publication.js +22 -13
  163. package/dist/track_publication.js.map +1 -1
  164. package/dist/transcription.d.cts +15 -0
  165. package/dist/transcription.d.ts +4 -3
  166. package/dist/types.d.cts +9 -0
  167. package/dist/types.d.ts +3 -2
  168. package/dist/version.cjs +1 -1
  169. package/dist/version.cjs.map +1 -1
  170. package/dist/version.d.cts +3 -0
  171. package/dist/version.d.ts +3 -2
  172. package/dist/version.js +1 -1
  173. package/dist/version.js.map +1 -1
  174. package/dist/video_frame.cjs +26 -45
  175. package/dist/video_frame.cjs.map +1 -1
  176. package/dist/video_frame.d.cts +24 -0
  177. package/dist/video_frame.d.ts +10 -4
  178. package/dist/video_frame.d.ts.map +1 -1
  179. package/dist/video_frame.js +29 -48
  180. package/dist/video_frame.js.map +1 -1
  181. package/dist/video_source.cjs +7 -4
  182. package/dist/video_source.cjs.map +1 -1
  183. package/dist/video_source.d.cts +22 -0
  184. package/dist/video_source.d.ts +14 -7
  185. package/dist/video_source.d.ts.map +1 -1
  186. package/dist/video_source.js +9 -6
  187. package/dist/video_source.js.map +1 -1
  188. package/dist/video_stream.cjs +16 -5
  189. package/dist/video_stream.cjs.map +1 -1
  190. package/dist/video_stream.d.cts +40 -0
  191. package/dist/video_stream.d.ts +18 -7
  192. package/dist/video_stream.d.ts.map +1 -1
  193. package/dist/video_stream.js +17 -6
  194. package/dist/video_stream.js.map +1 -1
  195. package/package.json +17 -12
  196. package/src/audio_frame.ts +10 -10
  197. package/src/audio_resampler.ts +15 -13
  198. package/src/audio_source.ts +11 -8
  199. package/src/audio_stream.ts +3 -4
  200. package/src/e2ee.ts +36 -37
  201. package/src/ffi_client.ts +8 -16
  202. package/src/index.ts +5 -68
  203. package/src/napi/native.d.ts +5 -5
  204. package/src/participant.ts +100 -72
  205. package/src/proto/audio_frame_pb.ts +1220 -496
  206. package/src/proto/e2ee_pb.ts +858 -337
  207. package/src/proto/ffi_pb.ts +442 -135
  208. package/src/proto/handle_pb.ts +33 -19
  209. package/src/proto/participant_pb.ts +225 -60
  210. package/src/proto/room_pb.ts +3149 -1013
  211. package/src/proto/rpc_pb.ts +358 -129
  212. package/src/proto/stats_pb.ts +1891 -877
  213. package/src/proto/track_pb.ts +587 -253
  214. package/src/proto/track_publication_pb.ts +180 -0
  215. package/src/proto/video_frame_pb.ts +861 -394
  216. package/src/room.ts +143 -188
  217. package/src/rpc.ts +1 -1
  218. package/src/track.ts +16 -17
  219. package/src/track_publication.ts +25 -26
  220. package/src/version.ts +1 -1
  221. package/src/video_frame.ts +48 -72
  222. package/src/video_source.ts +11 -8
  223. package/src/video_stream.ts +18 -8
@@ -1,41 +1,50 @@
1
- import { create } from "@bufbuild/protobuf";
2
1
  import { FfiClient } from "./ffi_client.js";
3
2
  import { FfiHandle } from "./napi/native.js";
4
- import { SetSubscribedRequestSchema } from "./proto/room_pb.js";
3
+ import { SetSubscribedRequest } from "./proto/room_pb.js";
5
4
  class TrackPublication {
6
5
  constructor(ownedInfo) {
7
6
  this.info = ownedInfo.info;
8
7
  this.ffiHandle = new FfiHandle(ownedInfo.handle.id);
9
8
  }
10
9
  get sid() {
11
- return this.info.sid;
10
+ var _a;
11
+ return (_a = this.info) == null ? void 0 : _a.sid;
12
12
  }
13
13
  get name() {
14
- return this.info.name;
14
+ var _a;
15
+ return (_a = this.info) == null ? void 0 : _a.name;
15
16
  }
16
17
  get kind() {
17
- return this.info.kind;
18
+ var _a;
19
+ return (_a = this.info) == null ? void 0 : _a.kind;
18
20
  }
19
21
  get source() {
20
- return this.info.source;
22
+ var _a;
23
+ return (_a = this.info) == null ? void 0 : _a.source;
21
24
  }
22
25
  get simulcasted() {
23
- return this.info.simulcasted;
26
+ var _a;
27
+ return (_a = this.info) == null ? void 0 : _a.simulcasted;
24
28
  }
25
29
  get width() {
26
- return this.info.width;
30
+ var _a;
31
+ return (_a = this.info) == null ? void 0 : _a.width;
27
32
  }
28
33
  get height() {
29
- return this.info.height;
34
+ var _a;
35
+ return (_a = this.info) == null ? void 0 : _a.height;
30
36
  }
31
37
  get mimeType() {
32
- return this.info.mimeType;
38
+ var _a;
39
+ return (_a = this.info) == null ? void 0 : _a.mimeType;
33
40
  }
34
41
  get muted() {
35
- return this.info.muted;
42
+ var _a;
43
+ return (_a = this.info) == null ? void 0 : _a.muted;
36
44
  }
37
45
  get encryptionType() {
38
- return this.info.encryptionType;
46
+ var _a;
47
+ return (_a = this.info) == null ? void 0 : _a.encryptionType;
39
48
  }
40
49
  }
41
50
  class LocalTrackPublication extends TrackPublication {
@@ -63,7 +72,7 @@ class RemoteTrackPublication extends TrackPublication {
63
72
  this.subscribed = false;
64
73
  }
65
74
  setSubscribed(subscribed) {
66
- const req = create(SetSubscribedRequestSchema, {
75
+ const req = new SetSubscribedRequest({
67
76
  subscribe: subscribed,
68
77
  publicationHandle: this.ffiHandle.handle
69
78
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/track_publication.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { create } from '@bufbuild/protobuf';\nimport { FfiClient } from './ffi_client.js';\nimport { FfiHandle } from './napi/native.js';\nimport type { EncryptionType } from './proto/e2ee_pb.js';\nimport type { SetSubscribedResponse } from './proto/room_pb.js';\nimport { SetSubscribedRequestSchema } from './proto/room_pb.js';\nimport type {\n OwnedTrackPublication,\n TrackKind,\n TrackPublicationInfo,\n TrackSource,\n} from './proto/track_pb.js';\nimport type { Track } from './track.js';\n\nexport abstract class TrackPublication {\n /** @internal */\n ffiHandle: FfiHandle;\n\n /** @internal */\n info: TrackPublicationInfo;\n track?: Track;\n\n constructor(ownedInfo: OwnedTrackPublication) {\n this.info = ownedInfo.info!;\n this.ffiHandle = new FfiHandle(ownedInfo!.handle!.id);\n }\n\n get sid(): string {\n return this.info.sid;\n }\n\n get name(): string {\n return this.info.name;\n }\n\n get kind(): TrackKind {\n return this.info.kind;\n }\n\n get source(): TrackSource {\n return this.info.source;\n }\n\n get simulcasted(): boolean {\n return this.info.simulcasted;\n }\n\n get width(): number {\n return this.info.width;\n }\n\n get height(): number {\n return this.info.height;\n }\n\n get mimeType(): string {\n return this.info.mimeType;\n }\n\n get muted(): boolean {\n return this.info.muted;\n }\n\n get encryptionType(): EncryptionType {\n return this.info.encryptionType;\n }\n}\n\nexport class LocalTrackPublication extends TrackPublication {\n private firstSubscription: Promise<void>;\n private firstSubscriptionResolver: (() => void) | null = null;\n\n constructor(ownedInfo: OwnedTrackPublication) {\n super(ownedInfo);\n this.firstSubscription = new Promise<void>((resolve) => {\n this.firstSubscriptionResolver = resolve;\n });\n }\n\n async waitForSubscription(): Promise<void> {\n await this.firstSubscription;\n }\n\n /** @internal */\n resolveFirstSubscription(): void {\n if (this.firstSubscriptionResolver) {\n this.firstSubscriptionResolver();\n this.firstSubscriptionResolver = null;\n }\n }\n}\n\nexport class RemoteTrackPublication extends TrackPublication {\n subscribed: boolean = false;\n\n constructor(ownedInfo: OwnedTrackPublication) {\n super(ownedInfo);\n }\n\n setSubscribed(subscribed: boolean) {\n const req = create(SetSubscribedRequestSchema, {\n subscribe: subscribed,\n publicationHandle: this.ffiHandle.handle,\n });\n\n FfiClient.instance.request<SetSubscribedResponse>({\n message: { case: 'setSubscribed', value: req },\n });\n }\n}\n"],"mappings":"AAGA,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAG1B,SAAS,kCAAkC;AASpC,MAAe,iBAAiB;AAAA,EAQrC,YAAY,WAAkC;AAC5C,SAAK,OAAO,UAAU;AACtB,SAAK,YAAY,IAAI,UAAU,UAAW,OAAQ,EAAE;AAAA,EACtD;AAAA,EAEA,IAAI,MAAc;AAChB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,OAAe;AACjB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,OAAkB;AACpB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,SAAsB;AACxB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,cAAuB;AACzB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,QAAgB;AAClB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,WAAmB;AACrB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,QAAiB;AACnB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAI,iBAAiC;AACnC,WAAO,KAAK,KAAK;AAAA,EACnB;AACF;AAEO,MAAM,8BAA8B,iBAAiB;AAAA,EAI1D,YAAY,WAAkC;AAC5C,UAAM,SAAS;AAHjB,SAAQ,4BAAiD;AAIvD,SAAK,oBAAoB,IAAI,QAAc,CAAC,YAAY;AACtD,WAAK,4BAA4B;AAAA,IACnC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,sBAAqC;AACzC,UAAM,KAAK;AAAA,EACb;AAAA;AAAA,EAGA,2BAAiC;AAC/B,QAAI,KAAK,2BAA2B;AAClC,WAAK,0BAA0B;AAC/B,WAAK,4BAA4B;AAAA,IACnC;AAAA,EACF;AACF;AAEO,MAAM,+BAA+B,iBAAiB;AAAA,EAG3D,YAAY,WAAkC;AAC5C,UAAM,SAAS;AAHjB,sBAAsB;AAAA,EAItB;AAAA,EAEA,cAAc,YAAqB;AACjC,UAAM,MAAM,OAAO,4BAA4B;AAAA,MAC7C,WAAW;AAAA,MACX,mBAAmB,KAAK,UAAU;AAAA,IACpC,CAAC;AAED,cAAU,SAAS,QAA+B;AAAA,MAChD,SAAS,EAAE,MAAM,iBAAiB,OAAO,IAAI;AAAA,IAC/C,CAAC;AAAA,EACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/track_publication.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { FfiClient } from './ffi_client.js';\nimport { FfiHandle } from './napi/native.js';\nimport type { EncryptionType } from './proto/e2ee_pb.js';\nimport type { SetSubscribedResponse } from './proto/room_pb.js';\nimport { SetSubscribedRequest } from './proto/room_pb.js';\nimport type {\n OwnedTrackPublication,\n TrackKind,\n TrackPublicationInfo,\n TrackSource,\n} from './proto/track_pb.js';\nimport type { Track } from './track.js';\n\nexport abstract class TrackPublication {\n /** @internal */\n ffiHandle: FfiHandle;\n\n /** @internal */\n info?: TrackPublicationInfo;\n track?: Track;\n\n constructor(ownedInfo: OwnedTrackPublication) {\n this.info = ownedInfo.info;\n this.ffiHandle = new FfiHandle(ownedInfo.handle!.id!);\n }\n\n get sid(): string | undefined {\n return this.info?.sid;\n }\n\n get name(): string | undefined {\n return this.info?.name;\n }\n\n get kind(): TrackKind | undefined {\n return this.info?.kind;\n }\n\n get source(): TrackSource | undefined {\n return this.info?.source;\n }\n\n get simulcasted(): boolean | undefined {\n return this.info?.simulcasted;\n }\n\n get width(): number | undefined {\n return this.info?.width;\n }\n\n get height(): number | undefined {\n return this.info?.height;\n }\n\n get mimeType(): string | undefined {\n return this.info?.mimeType;\n }\n\n get muted(): boolean | undefined {\n return this.info?.muted;\n }\n\n get encryptionType(): EncryptionType | undefined {\n return this.info?.encryptionType;\n }\n}\n\nexport class LocalTrackPublication extends TrackPublication {\n private firstSubscription: Promise<void>;\n private firstSubscriptionResolver: (() => void) | null = null;\n\n constructor(ownedInfo: OwnedTrackPublication) {\n super(ownedInfo);\n this.firstSubscription = new Promise<void>((resolve) => {\n this.firstSubscriptionResolver = resolve;\n });\n }\n\n async waitForSubscription(): Promise<void> {\n await this.firstSubscription;\n }\n\n /** @internal */\n resolveFirstSubscription(): void {\n if (this.firstSubscriptionResolver) {\n this.firstSubscriptionResolver();\n this.firstSubscriptionResolver = null;\n }\n }\n}\n\nexport class RemoteTrackPublication extends TrackPublication {\n subscribed: boolean = false;\n\n constructor(ownedInfo: OwnedTrackPublication) {\n super(ownedInfo);\n }\n\n setSubscribed(subscribed: boolean) {\n const req = new SetSubscribedRequest({\n subscribe: subscribed,\n publicationHandle: this.ffiHandle.handle,\n });\n\n FfiClient.instance.request<SetSubscribedResponse>({\n message: { case: 'setSubscribed', value: req },\n });\n }\n}\n"],"mappings":"AAGA,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAG1B,SAAS,4BAA4B;AAS9B,MAAe,iBAAiB;AAAA,EAQrC,YAAY,WAAkC;AAC5C,SAAK,OAAO,UAAU;AACtB,SAAK,YAAY,IAAI,UAAU,UAAU,OAAQ,EAAG;AAAA,EACtD;AAAA,EAEA,IAAI,MAA0B;AA7BhC;AA8BI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,OAA2B;AAjCjC;AAkCI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,OAA8B;AArCpC;AAsCI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,SAAkC;AAzCxC;AA0CI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,cAAmC;AA7CzC;AA8CI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,QAA4B;AAjDlC;AAkDI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,SAA6B;AArDnC;AAsDI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,WAA+B;AAzDrC;AA0DI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,QAA6B;AA7DnC;AA8DI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AAAA,EAEA,IAAI,iBAA6C;AAjEnD;AAkEI,YAAO,UAAK,SAAL,mBAAW;AAAA,EACpB;AACF;AAEO,MAAM,8BAA8B,iBAAiB;AAAA,EAI1D,YAAY,WAAkC;AAC5C,UAAM,SAAS;AAHjB,SAAQ,4BAAiD;AAIvD,SAAK,oBAAoB,IAAI,QAAc,CAAC,YAAY;AACtD,WAAK,4BAA4B;AAAA,IACnC,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,sBAAqC;AACzC,UAAM,KAAK;AAAA,EACb;AAAA;AAAA,EAGA,2BAAiC;AAC/B,QAAI,KAAK,2BAA2B;AAClC,WAAK,0BAA0B;AAC/B,WAAK,4BAA4B;AAAA,IACnC;AAAA,EACF;AACF;AAEO,MAAM,+BAA+B,iBAAiB;AAAA,EAG3D,YAAY,WAAkC;AAC5C,UAAM,SAAS;AAHjB,sBAAsB;AAAA,EAItB;AAAA,EAEA,cAAc,YAAqB;AACjC,UAAM,MAAM,IAAI,qBAAqB;AAAA,MACnC,WAAW;AAAA,MACX,mBAAmB,KAAK,UAAU;AAAA,IACpC,CAAC;AAED,cAAU,SAAS,QAA+B;AAAA,MAChD,SAAS,EAAE,MAAM,iBAAiB,OAAO,IAAI;AAAA,IAC/C,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,15 @@
1
+ interface TranscriptionSegment {
2
+ id: string;
3
+ text: string;
4
+ startTime: bigint;
5
+ endTime: bigint;
6
+ language: string;
7
+ final: boolean;
8
+ }
9
+ interface Transcription {
10
+ participantIdentity: string;
11
+ trackSid: string;
12
+ segments: TranscriptionSegment[];
13
+ }
14
+
15
+ export type { Transcription, TranscriptionSegment };
@@ -1,4 +1,4 @@
1
- export interface TranscriptionSegment {
1
+ interface TranscriptionSegment {
2
2
  id: string;
3
3
  text: string;
4
4
  startTime: bigint;
@@ -6,9 +6,10 @@ export interface TranscriptionSegment {
6
6
  language: string;
7
7
  final: boolean;
8
8
  }
9
- export interface Transcription {
9
+ interface Transcription {
10
10
  participantIdentity: string;
11
11
  trackSid: string;
12
12
  segments: TranscriptionSegment[];
13
13
  }
14
- //# sourceMappingURL=transcription.d.ts.map
14
+
15
+ export type { Transcription, TranscriptionSegment };
@@ -0,0 +1,9 @@
1
+ interface ChatMessage {
2
+ id: string;
3
+ timestamp: number;
4
+ message: string;
5
+ editTimestamp?: number;
6
+ generated?: boolean;
7
+ }
8
+
9
+ export type { ChatMessage };
package/dist/types.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- export interface ChatMessage {
1
+ interface ChatMessage {
2
2
  id: string;
3
3
  timestamp: number;
4
4
  message: string;
5
5
  editTimestamp?: number;
6
6
  generated?: boolean;
7
7
  }
8
- //# sourceMappingURL=types.d.ts.map
8
+
9
+ export type { ChatMessage };
package/dist/version.cjs CHANGED
@@ -21,7 +21,7 @@ __export(version_exports, {
21
21
  SDK_VERSION: () => SDK_VERSION
22
22
  });
23
23
  module.exports = __toCommonJS(version_exports);
24
- const SDK_VERSION = "0.12.1";
24
+ const SDK_VERSION = "0.13.0";
25
25
  // Annotate the CommonJS export names for ESM import in node:
26
26
  0 && (module.exports = {
27
27
  SDK_VERSION
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.12.1\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.13.0\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare const SDK_VERSION = "0.13.0";
2
+
3
+ export { SDK_VERSION };
package/dist/version.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export declare const SDK_VERSION = "0.12.1";
2
- //# sourceMappingURL=version.d.ts.map
1
+ declare const SDK_VERSION = "0.13.0";
2
+
3
+ export { SDK_VERSION };
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
- const SDK_VERSION = "0.12.1";
1
+ const SDK_VERSION = "0.13.0";
2
2
  export {
3
3
  SDK_VERSION
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.12.1\";\n"],"mappings":"AAAO,MAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.13.0\";\n"],"mappings":"AAAO,MAAM,cAAc;","names":[]}
@@ -21,9 +21,7 @@ __export(video_frame_exports, {
21
21
  VideoFrame: () => VideoFrame
22
22
  });
23
23
  module.exports = __toCommonJS(video_frame_exports);
24
- var import_protobuf = require("@bufbuild/protobuf");
25
24
  var import_ffi_client = require("./ffi_client.cjs");
26
- var import_ffi_pb = require("./proto/ffi_pb.cjs");
27
25
  var import_video_frame_pb = require("./proto/video_frame_pb.cjs");
28
26
  class VideoFrame {
29
27
  constructor(data, width, height, type) {
@@ -38,7 +36,7 @@ class VideoFrame {
38
36
  }
39
37
  /** @internal */
40
38
  protoInfo() {
41
- const info = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfoSchema, {
39
+ const info = new import_video_frame_pb.VideoBufferInfo({
42
40
  width: this.width,
43
41
  height: this.height,
44
42
  type: this.type,
@@ -78,7 +76,7 @@ class VideoFrame {
78
76
  return import_ffi_client.FfiClient.instance.copyBuffer(planeInfo.dataPtr, planeInfo.size);
79
77
  }
80
78
  convert(dstType, flipY = false) {
81
- const req = (0, import_protobuf.create)(import_ffi_pb.FfiRequestSchema, {
79
+ const req = new import_ffi_client.FfiRequest({
82
80
  message: {
83
81
  case: "videoConvert",
84
82
  value: {
@@ -89,10 +87,13 @@ class VideoFrame {
89
87
  }
90
88
  });
91
89
  const resp = import_ffi_client.FfiClient.instance.request(req);
92
- if (resp.message.case !== "buffer") {
93
- throw new Error(resp.message.value ?? "Unknown Error");
90
+ switch (resp.message.case) {
91
+ case "buffer":
92
+ return VideoFrame.fromOwnedInfo(resp.message.value);
93
+ case "error":
94
+ default:
95
+ throw resp.message.value;
94
96
  }
95
- return VideoFrame.fromOwnedInfo(resp.message.value);
96
97
  }
97
98
  }
98
99
  const getPlaneLength = (type, width, height) => {
@@ -124,17 +125,13 @@ const getPlaneInfos = (dataPtr, type, width, height) => {
124
125
  const chromaHeight = Math.trunc((height + 1) / 2);
125
126
  switch (type) {
126
127
  case import_video_frame_pb.VideoBufferType.I420: {
127
- const y = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
128
- dataPtr,
129
- stride: width,
130
- size: width * height
131
- });
132
- const u = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
128
+ const y = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
129
+ const u = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
133
130
  dataPtr: y.dataPtr + BigInt(y.size),
134
131
  stride: chromaWidth,
135
132
  size: chromaWidth * chromaHeight
136
133
  });
137
- const v = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
134
+ const v = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
138
135
  dataPtr: u.dataPtr + BigInt(u.size),
139
136
  stride: chromaWidth,
140
137
  size: chromaWidth * chromaHeight
@@ -142,22 +139,18 @@ const getPlaneInfos = (dataPtr, type, width, height) => {
142
139
  return [y, u, v];
143
140
  }
144
141
  case import_video_frame_pb.VideoBufferType.I420A: {
145
- const y = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
146
- dataPtr,
147
- stride: width,
148
- size: width * height
149
- });
150
- const u = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
142
+ const y = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
143
+ const u = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
151
144
  dataPtr: y.dataPtr + BigInt(y.size),
152
145
  stride: chromaWidth,
153
146
  size: chromaWidth * chromaHeight
154
147
  });
155
- const v = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
148
+ const v = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
156
149
  dataPtr: u.dataPtr + BigInt(u.size),
157
150
  stride: chromaWidth,
158
151
  size: chromaWidth * chromaHeight
159
152
  });
160
- const a = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
153
+ const a = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
161
154
  dataPtr: v.dataPtr + BigInt(v.size),
162
155
  stride: width,
163
156
  size: width * height
@@ -165,17 +158,13 @@ const getPlaneInfos = (dataPtr, type, width, height) => {
165
158
  return [y, u, v, a];
166
159
  }
167
160
  case import_video_frame_pb.VideoBufferType.I422: {
168
- const y = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
169
- dataPtr,
170
- stride: width,
171
- size: width * height
172
- });
173
- const u = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
161
+ const y = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
162
+ const u = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
174
163
  dataPtr: y.dataPtr + BigInt(y.size),
175
164
  stride: chromaWidth,
176
165
  size: chromaWidth * height
177
166
  });
178
- const v = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
167
+ const v = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
179
168
  dataPtr: u.dataPtr + BigInt(u.size),
180
169
  stride: chromaWidth,
181
170
  size: chromaWidth * height
@@ -183,17 +172,13 @@ const getPlaneInfos = (dataPtr, type, width, height) => {
183
172
  return [y, u, v];
184
173
  }
185
174
  case import_video_frame_pb.VideoBufferType.I444: {
186
- const y = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
187
- dataPtr,
188
- stride: width,
189
- size: width * height
190
- });
191
- const u = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
175
+ const y = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
176
+ const u = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
192
177
  dataPtr: y.dataPtr + BigInt(y.size),
193
178
  stride: width,
194
179
  size: width * height
195
180
  });
196
- const v = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
181
+ const v = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
197
182
  dataPtr: u.dataPtr + BigInt(u.size),
198
183
  stride: width,
199
184
  size: width * height
@@ -201,17 +186,17 @@ const getPlaneInfos = (dataPtr, type, width, height) => {
201
186
  return [y, u, v];
202
187
  }
203
188
  case import_video_frame_pb.VideoBufferType.I010: {
204
- const y = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
189
+ const y = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
205
190
  dataPtr,
206
191
  stride: width * 2,
207
192
  size: width * height * 2
208
193
  });
209
- const u = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
194
+ const u = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
210
195
  dataPtr: y.dataPtr + BigInt(y.size),
211
196
  stride: chromaWidth * 2,
212
197
  size: chromaWidth * chromaHeight * 2
213
198
  });
214
- const v = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
199
+ const v = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
215
200
  dataPtr: u.dataPtr + BigInt(u.size),
216
201
  stride: chromaWidth * 2,
217
202
  size: chromaWidth * chromaHeight * 2
@@ -219,12 +204,8 @@ const getPlaneInfos = (dataPtr, type, width, height) => {
219
204
  return [y, u, v];
220
205
  }
221
206
  case import_video_frame_pb.VideoBufferType.NV12: {
222
- const y = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
223
- dataPtr,
224
- stride: width,
225
- size: width * height
226
- });
227
- const uv = (0, import_protobuf.create)(import_video_frame_pb.VideoBufferInfo_ComponentInfoSchema, {
207
+ const y = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });
208
+ const uv = new import_video_frame_pb.VideoBufferInfo_ComponentInfo({
228
209
  dataPtr: y.dataPtr + BigInt(y.size),
229
210
  stride: chromaWidth * 2,
230
211
  size: chromaWidth * chromaHeight * 2
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/video_frame.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { create } from '@bufbuild/protobuf';\nimport { FfiClient } from './ffi_client.js';\nimport { FfiRequestSchema } from './proto/ffi_pb.js';\nimport type {\n OwnedVideoBuffer,\n VideoBufferInfo,\n VideoBufferInfo_ComponentInfo,\n VideoConvertResponse,\n} from './proto/video_frame_pb.js';\nimport {\n VideoBufferInfoSchema,\n VideoBufferInfo_ComponentInfoSchema,\n VideoBufferType,\n} from './proto/video_frame_pb.js';\n\nexport class VideoFrame {\n data: Uint8Array;\n width: number;\n height: number;\n type: VideoBufferType;\n\n constructor(data: Uint8Array, width: number, height: number, type: VideoBufferType) {\n this.data = data;\n this.width = width;\n this.height = height;\n this.type = type;\n }\n\n /** @internal */\n get dataPtr(): bigint {\n return FfiClient.instance.retrievePtr(new Uint8Array(this.data.buffer));\n }\n\n /** @internal */\n protoInfo(): VideoBufferInfo {\n const info = create(VideoBufferInfoSchema, {\n width: this.width,\n height: this.height,\n type: this.type,\n dataPtr: this.dataPtr,\n });\n\n switch (this.type) {\n case VideoBufferType.ARGB:\n case VideoBufferType.RGBA:\n case VideoBufferType.ABGR:\n case VideoBufferType.BGRA:\n info.stride = this.width * 4;\n break;\n case VideoBufferType.RGB24:\n info.stride = this.width * 3;\n break;\n }\n\n info.components.push(...getPlaneInfos(this.dataPtr, this.type, this.width, this.height));\n\n return info;\n }\n\n /** @internal */\n static fromOwnedInfo(owned: OwnedVideoBuffer): VideoFrame {\n const info = owned.info!;\n return new VideoFrame(\n FfiClient.instance.copyBuffer(\n info.dataPtr,\n getPlaneLength(info.type, info.width, info.height),\n ),\n info.width,\n info.height,\n info.type,\n );\n }\n\n getPlane(planeNth: number): Uint8Array | void {\n const planeInfos = getPlaneInfos(this.dataPtr, this.type, this.width, this.height);\n if (planeNth >= planeInfos.length) return;\n\n const planeInfo = planeInfos[planeNth]!;\n return FfiClient.instance.copyBuffer(planeInfo.dataPtr, planeInfo.size);\n }\n\n convert(dstType: VideoBufferType, flipY = false): VideoFrame {\n const req = create(FfiRequestSchema, {\n message: {\n case: 'videoConvert',\n value: {\n flipY,\n dstType,\n buffer: this.protoInfo(),\n },\n },\n });\n const resp = FfiClient.instance.request<VideoConvertResponse>(req);\n if (resp.message.case !== 'buffer') {\n throw new Error(resp.message.value ?? 'Unknown Error');\n }\n\n return VideoFrame.fromOwnedInfo(resp.message.value);\n }\n}\n\nconst getPlaneLength = (type: VideoBufferType, width: number, height: number): number => {\n const chromaWidth = Math.trunc((width + 1) / 2);\n const chromaHeight = Math.trunc((height + 1) / 2);\n switch (type) {\n case VideoBufferType.ARGB:\n case VideoBufferType.RGBA:\n case VideoBufferType.ABGR:\n case VideoBufferType.BGRA:\n return width * height * 4;\n case VideoBufferType.RGB24:\n case VideoBufferType.I444:\n return width * height * 3;\n case VideoBufferType.I420:\n return width * height + chromaWidth * chromaHeight * 2;\n case VideoBufferType.I420A:\n return width * height * 2 + chromaWidth * chromaWidth * 2;\n case VideoBufferType.I422:\n return width * height + chromaWidth * height * 2;\n case VideoBufferType.I010:\n return width * height * 2 + chromaWidth * chromaHeight * 4;\n case VideoBufferType.NV12:\n return width * height + chromaWidth * chromaWidth * 2;\n }\n};\n\nconst getPlaneInfos = (\n dataPtr: bigint,\n type: VideoBufferType,\n width: number,\n height: number,\n): VideoBufferInfo_ComponentInfo[] => {\n const chromaWidth = Math.trunc((width + 1) / 2);\n const chromaHeight = Math.trunc((height + 1) / 2);\n switch (type) {\n case VideoBufferType.I420: {\n const y = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr,\n stride: width,\n size: width * height,\n });\n const u = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: y.dataPtr + BigInt(y.size),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n const v = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: u.dataPtr + BigInt(u.size),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n return [y, u, v];\n }\n case VideoBufferType.I420A: {\n const y = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr,\n stride: width,\n size: width * height,\n });\n const u = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: y.dataPtr + BigInt(y.size),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n const v = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: u.dataPtr + BigInt(u.size),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n const a = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: v.dataPtr + BigInt(v.size),\n stride: width,\n size: width * height,\n });\n return [y, u, v, a];\n }\n case VideoBufferType.I422: {\n const y = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr,\n stride: width,\n size: width * height,\n });\n const u = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: y.dataPtr + BigInt(y.size),\n stride: chromaWidth,\n size: chromaWidth * height,\n });\n const v = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: u.dataPtr + BigInt(u.size),\n stride: chromaWidth,\n size: chromaWidth * height,\n });\n return [y, u, v];\n }\n case VideoBufferType.I444: {\n const y = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr,\n stride: width,\n size: width * height,\n });\n const u = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: y.dataPtr + BigInt(y.size),\n stride: width,\n size: width * height,\n });\n const v = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: u.dataPtr + BigInt(u.size),\n stride: width,\n size: width * height,\n });\n return [y, u, v];\n }\n case VideoBufferType.I010: {\n const y = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr,\n stride: width * 2,\n size: width * height * 2,\n });\n const u = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: y.dataPtr + BigInt(y.size),\n stride: chromaWidth * 2,\n size: chromaWidth * chromaHeight * 2,\n });\n const v = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: u.dataPtr + BigInt(u.size),\n stride: chromaWidth * 2,\n size: chromaWidth * chromaHeight * 2,\n });\n return [y, u, v];\n }\n case VideoBufferType.NV12: {\n const y = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr,\n stride: width,\n size: width * height,\n });\n const uv = create(VideoBufferInfo_ComponentInfoSchema, {\n dataPtr: y.dataPtr + BigInt(y.size),\n stride: chromaWidth * 2,\n size: chromaWidth * chromaHeight * 2,\n });\n return [y, uv];\n }\n default:\n return [];\n }\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/video_frame.ts"],"sourcesContent":["// SPDX-FileCopyrightText: 2024 LiveKit, Inc.\n//\n// SPDX-License-Identifier: Apache-2.0\nimport { FfiClient, FfiRequest } from './ffi_client.js';\nimport type { OwnedVideoBuffer, VideoConvertResponse } from './proto/video_frame_pb.js';\nimport {\n VideoBufferInfo,\n VideoBufferInfo_ComponentInfo,\n VideoBufferType,\n} from './proto/video_frame_pb.js';\n\nexport class VideoFrame {\n data: Uint8Array;\n width: number;\n height: number;\n type: VideoBufferType;\n\n constructor(data: Uint8Array, width: number, height: number, type: VideoBufferType) {\n this.data = data;\n this.width = width;\n this.height = height;\n this.type = type;\n }\n\n /** @internal */\n get dataPtr(): bigint {\n return FfiClient.instance.retrievePtr(new Uint8Array(this.data.buffer));\n }\n\n /** @internal */\n protoInfo(): VideoBufferInfo {\n const info = new VideoBufferInfo({\n width: this.width,\n height: this.height,\n type: this.type,\n dataPtr: this.dataPtr,\n });\n\n switch (this.type) {\n case VideoBufferType.ARGB:\n case VideoBufferType.RGBA:\n case VideoBufferType.ABGR:\n case VideoBufferType.BGRA:\n info.stride = this.width * 4;\n break;\n case VideoBufferType.RGB24:\n info.stride = this.width * 3;\n break;\n }\n\n info.components.push(...getPlaneInfos(this.dataPtr, this.type, this.width, this.height));\n\n return info;\n }\n\n /** @internal */\n static fromOwnedInfo(owned: OwnedVideoBuffer): VideoFrame {\n const info = owned.info!;\n return new VideoFrame(\n FfiClient.instance.copyBuffer(\n info.dataPtr!,\n getPlaneLength(info.type!, info.width!, info.height!),\n ),\n info.width!,\n info.height!,\n info.type!,\n );\n }\n\n getPlane(planeNth: number): Uint8Array | void {\n const planeInfos = getPlaneInfos(this.dataPtr, this.type, this.width, this.height);\n if (planeNth >= planeInfos.length) return;\n\n const planeInfo = planeInfos[planeNth]!;\n return FfiClient.instance.copyBuffer(planeInfo.dataPtr!, planeInfo.size!);\n }\n\n convert(dstType: VideoBufferType, flipY = false): VideoFrame {\n const req = new FfiRequest({\n message: {\n case: 'videoConvert',\n value: {\n flipY,\n dstType,\n buffer: this.protoInfo(),\n },\n },\n });\n const resp = FfiClient.instance.request<VideoConvertResponse>(req);\n\n switch (resp.message.case) {\n case 'buffer':\n return VideoFrame.fromOwnedInfo(resp.message.value);\n case 'error':\n default:\n throw resp.message.value;\n }\n }\n}\n\nconst getPlaneLength = (type: VideoBufferType, width: number, height: number): number => {\n const chromaWidth = Math.trunc((width + 1) / 2);\n const chromaHeight = Math.trunc((height + 1) / 2);\n switch (type) {\n case VideoBufferType.ARGB:\n case VideoBufferType.RGBA:\n case VideoBufferType.ABGR:\n case VideoBufferType.BGRA:\n return width * height * 4;\n case VideoBufferType.RGB24:\n case VideoBufferType.I444:\n return width * height * 3;\n case VideoBufferType.I420:\n return width * height + chromaWidth * chromaHeight * 2;\n case VideoBufferType.I420A:\n return width * height * 2 + chromaWidth * chromaWidth * 2;\n case VideoBufferType.I422:\n return width * height + chromaWidth * height * 2;\n case VideoBufferType.I010:\n return width * height * 2 + chromaWidth * chromaHeight * 4;\n case VideoBufferType.NV12:\n return width * height + chromaWidth * chromaWidth * 2;\n }\n};\n\nconst getPlaneInfos = (\n dataPtr: bigint,\n type: VideoBufferType,\n width: number,\n height: number,\n): VideoBufferInfo_ComponentInfo[] => {\n const chromaWidth = Math.trunc((width + 1) / 2);\n const chromaHeight = Math.trunc((height + 1) / 2);\n switch (type) {\n case VideoBufferType.I420: {\n const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });\n const u = new VideoBufferInfo_ComponentInfo({\n dataPtr: y.dataPtr! + BigInt(y.size!),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n const v = new VideoBufferInfo_ComponentInfo({\n dataPtr: u.dataPtr! + BigInt(u.size!),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n return [y, u, v];\n }\n case VideoBufferType.I420A: {\n const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });\n const u = new VideoBufferInfo_ComponentInfo({\n dataPtr: y.dataPtr! + BigInt(y.size!),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n const v = new VideoBufferInfo_ComponentInfo({\n dataPtr: u.dataPtr! + BigInt(u.size!),\n stride: chromaWidth,\n size: chromaWidth * chromaHeight,\n });\n const a = new VideoBufferInfo_ComponentInfo({\n dataPtr: v.dataPtr! + BigInt(v.size!),\n stride: width,\n size: width * height,\n });\n return [y, u, v, a];\n }\n case VideoBufferType.I422: {\n const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });\n const u = new VideoBufferInfo_ComponentInfo({\n dataPtr: y.dataPtr! + BigInt(y.size!),\n stride: chromaWidth,\n size: chromaWidth * height,\n });\n const v = new VideoBufferInfo_ComponentInfo({\n dataPtr: u.dataPtr! + BigInt(u.size!),\n stride: chromaWidth,\n size: chromaWidth * height,\n });\n return [y, u, v];\n }\n case VideoBufferType.I444: {\n const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });\n const u = new VideoBufferInfo_ComponentInfo({\n dataPtr: y.dataPtr! + BigInt(y.size!),\n stride: width,\n size: width * height,\n });\n const v = new VideoBufferInfo_ComponentInfo({\n dataPtr: u.dataPtr! + BigInt(u.size!),\n stride: width,\n size: width * height,\n });\n return [y, u, v];\n }\n case VideoBufferType.I010: {\n const y = new VideoBufferInfo_ComponentInfo({\n dataPtr,\n stride: width * 2,\n size: width * height * 2,\n });\n const u = new VideoBufferInfo_ComponentInfo({\n dataPtr: y.dataPtr! + BigInt(y.size!),\n stride: chromaWidth * 2,\n size: chromaWidth * chromaHeight * 2,\n });\n const v = new VideoBufferInfo_ComponentInfo({\n dataPtr: u.dataPtr! + BigInt(u.size!),\n stride: chromaWidth * 2,\n size: chromaWidth * chromaHeight * 2,\n });\n return [y, u, v];\n }\n case VideoBufferType.NV12: {\n const y = new VideoBufferInfo_ComponentInfo({ dataPtr, stride: width, size: width * height });\n const uv = new VideoBufferInfo_ComponentInfo({\n dataPtr: y.dataPtr! + BigInt(y.size!),\n stride: chromaWidth * 2,\n size: chromaWidth * chromaHeight * 2,\n });\n return [y, uv];\n }\n default:\n return [];\n }\n};\n"],"mappings":"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","names":[]}
@@ -0,0 +1,24 @@
1
+ import { VideoBufferType, VideoBufferInfo, OwnedVideoBuffer } from './proto/video_frame_pb.cjs';
2
+ import '@bufbuild/protobuf';
3
+ import './proto/track_pb.cjs';
4
+ import './proto/stats_pb.cjs';
5
+ import './proto/e2ee_pb.cjs';
6
+ import './proto/handle_pb.cjs';
7
+
8
+ declare class VideoFrame {
9
+ data: Uint8Array;
10
+ width: number;
11
+ height: number;
12
+ type: VideoBufferType;
13
+ constructor(data: Uint8Array, width: number, height: number, type: VideoBufferType);
14
+ /** @internal */
15
+ get dataPtr(): bigint;
16
+ /** @internal */
17
+ protoInfo(): VideoBufferInfo;
18
+ /** @internal */
19
+ static fromOwnedInfo(owned: OwnedVideoBuffer): VideoFrame;
20
+ getPlane(planeNth: number): Uint8Array | void;
21
+ convert(dstType: VideoBufferType, flipY?: boolean): VideoFrame;
22
+ }
23
+
24
+ export { VideoFrame };
@@ -1,6 +1,11 @@
1
- import type { OwnedVideoBuffer, VideoBufferInfo } from './proto/video_frame_pb.js';
2
- import { VideoBufferType } from './proto/video_frame_pb.js';
3
- export declare class VideoFrame {
1
+ import { VideoBufferType, VideoBufferInfo, OwnedVideoBuffer } from './proto/video_frame_pb.js';
2
+ import '@bufbuild/protobuf';
3
+ import './proto/track_pb.js';
4
+ import './proto/stats_pb.js';
5
+ import './proto/e2ee_pb.js';
6
+ import './proto/handle_pb.js';
7
+
8
+ declare class VideoFrame {
4
9
  data: Uint8Array;
5
10
  width: number;
6
11
  height: number;
@@ -15,4 +20,5 @@ export declare class VideoFrame {
15
20
  getPlane(planeNth: number): Uint8Array | void;
16
21
  convert(dstType: VideoBufferType, flipY?: boolean): VideoFrame;
17
22
  }
18
- //# sourceMappingURL=video_frame.d.ts.map
23
+
24
+ export { VideoFrame };
@@ -1 +1 @@
1
- {"version":3,"file":"video_frame.d.ts","sourceRoot":"","sources":["../src/video_frame.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAGhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,UAAU;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;gBAEV,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe;IAOlF,gBAAgB;IAChB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gBAAgB;IAChB,SAAS,IAAI,eAAe;IAyB5B,gBAAgB;IAChB,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU;IAazD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAQ7C,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,UAAQ,GAAG,UAAU;CAkB7D"}
1
+ {"version":3,"file":"video_frame.d.ts","sourceRoot":"","sources":["../src/video_frame.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,2BAA2B,CAAC;AACxF,OAAO,EACL,eAAe,EAEf,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAEnC,qBAAa,UAAU;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;gBAEV,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe;IAOlF,gBAAgB;IAChB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,gBAAgB;IAChB,SAAS,IAAI,eAAe;IAyB5B,gBAAgB;IAChB,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU;IAazD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAQ7C,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,UAAQ,GAAG,UAAU;CAqB7D"}