@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.
- package/dist/audio_frame.cjs +2 -2
- package/dist/audio_frame.cjs.map +1 -1
- package/dist/audio_frame.d.cts +31 -0
- package/dist/audio_frame.d.ts +11 -5
- package/dist/audio_frame.d.ts.map +1 -1
- package/dist/audio_frame.js +3 -3
- package/dist/audio_frame.js.map +1 -1
- package/dist/audio_resampler.cjs +10 -7
- package/dist/audio_resampler.cjs.map +1 -1
- package/dist/audio_resampler.d.cts +59 -0
- package/dist/audio_resampler.d.ts +11 -3
- package/dist/audio_resampler.d.ts.map +1 -1
- package/dist/audio_resampler.js +13 -10
- package/dist/audio_resampler.js.map +1 -1
- package/dist/audio_source.cjs +6 -4
- package/dist/audio_source.cjs.map +1 -1
- package/dist/audio_source.d.cts +37 -0
- package/dist/audio_source.d.ts +13 -5
- package/dist/audio_source.d.ts.map +1 -1
- package/dist/audio_source.js +9 -7
- package/dist/audio_source.js.map +1 -1
- package/dist/audio_stream.cjs +1 -2
- package/dist/audio_stream.cjs.map +1 -1
- package/dist/audio_stream.d.cts +37 -0
- package/dist/audio_stream.d.ts +16 -5
- package/dist/audio_stream.d.ts.map +1 -1
- package/dist/audio_stream.js +2 -3
- package/dist/audio_stream.js.map +1 -1
- package/dist/e2ee.cjs +19 -20
- package/dist/e2ee.cjs.map +1 -1
- package/dist/e2ee.d.cts +47 -0
- package/dist/e2ee.d.ts +11 -8
- package/dist/e2ee.d.ts.map +1 -1
- package/dist/e2ee.js +29 -30
- package/dist/e2ee.js.map +1 -1
- package/dist/ffi_client.cjs +6 -5
- package/dist/ffi_client.cjs.map +1 -1
- package/dist/ffi_client.d.cts +35 -0
- package/dist/ffi_client.d.ts +23 -11
- package/dist/ffi_client.d.ts.map +1 -1
- package/dist/ffi_client.js +6 -10
- package/dist/ffi_client.js.map +1 -1
- package/dist/index.cjs +16 -49
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +28 -0
- package/dist/index.d.ts +20 -41
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -46
- package/dist/index.js.map +1 -1
- package/dist/napi/native.d.cjs.map +1 -1
- package/dist/napi/native.d.d.cts +21 -0
- package/dist/napi/native.d.d.ts +21 -0
- package/dist/napi/native.d.ts +5 -5
- package/dist/native.d.ts +5 -5
- package/dist/participant.cjs +57 -34
- package/dist/participant.cjs.map +1 -1
- package/dist/participant.d.cts +126 -0
- package/dist/participant.d.ts +34 -20
- package/dist/participant.d.ts.map +1 -1
- package/dist/participant.js +75 -50
- package/dist/participant.js.map +1 -1
- package/dist/proto/audio_frame_pb.cjs +977 -125
- package/dist/proto/audio_frame_pb.cjs.map +1 -1
- package/dist/proto/audio_frame_pb.d.cts +898 -0
- package/dist/proto/audio_frame_pb.d.ts +506 -417
- package/dist/proto/audio_frame_pb.d.ts.map +1 -1
- package/dist/proto/audio_frame_pb.js +943 -85
- package/dist/proto/audio_frame_pb.js.map +1 -1
- package/dist/proto/e2ee_pb.cjs +700 -85
- package/dist/proto/e2ee_pb.cjs.map +1 -1
- package/dist/proto/e2ee_pb.d.cts +653 -0
- package/dist/proto/e2ee_pb.d.ts +333 -263
- package/dist/proto/e2ee_pb.d.ts.map +1 -1
- package/dist/proto/e2ee_pb.js +675 -57
- package/dist/proto/e2ee_pb.js.map +1 -1
- package/dist/proto/ffi_pb.cjs +369 -36
- package/dist/proto/ffi_pb.cjs.map +1 -1
- package/dist/proto/ffi_pb.d.cts +898 -0
- package/dist/proto/ffi_pb.d.ts +164 -112
- package/dist/proto/ffi_pb.d.ts.map +1 -1
- package/dist/proto/ffi_pb.js +364 -29
- package/dist/proto/ffi_pb.js.map +1 -1
- package/dist/proto/handle_pb.cjs +27 -7
- package/dist/proto/handle_pb.cjs.map +1 -1
- package/dist/proto/handle_pb.d.cts +31 -0
- package/dist/proto/handle_pb.d.ts +15 -15
- package/dist/proto/handle_pb.d.ts.map +1 -1
- package/dist/proto/handle_pb.js +26 -5
- package/dist/proto/handle_pb.js.map +1 -1
- package/dist/proto/participant_pb.cjs +112 -15
- package/dist/proto/participant_pb.cjs.map +1 -1
- package/dist/proto/participant_pb.d.cts +181 -0
- package/dist/proto/participant_pb.d.ts +143 -53
- package/dist/proto/participant_pb.d.ts.map +1 -1
- package/dist/proto/participant_pb.js +109 -11
- package/dist/proto/participant_pb.js.map +1 -1
- package/dist/proto/room_pb.cjs +2693 -302
- package/dist/proto/room_pb.cjs.map +1 -1
- package/dist/proto/room_pb.d.cts +2475 -0
- package/dist/proto/room_pb.d.ts +1269 -864
- package/dist/proto/room_pb.d.ts.map +1 -1
- package/dist/proto/room_pb.js +2603 -210
- package/dist/proto/room_pb.js.map +1 -1
- package/dist/proto/rpc_pb.cjs +302 -37
- package/dist/proto/rpc_pb.cjs.map +1 -1
- package/dist/proto/rpc_pb.d.cts +267 -0
- package/dist/proto/rpc_pb.d.ts +140 -108
- package/dist/proto/rpc_pb.d.ts.map +1 -1
- package/dist/proto/rpc_pb.js +291 -25
- package/dist/proto/rpc_pb.js.map +1 -1
- package/dist/proto/stats_pb.cjs +1253 -139
- package/dist/proto/stats_pb.cjs.map +1 -1
- package/dist/proto/stats_pb.d.cts +1764 -0
- package/dist/proto/stats_pb.d.ts +806 -693
- package/dist/proto/stats_pb.d.ts.map +1 -1
- package/dist/proto/stats_pb.js +1216 -93
- package/dist/proto/stats_pb.js.map +1 -1
- package/dist/proto/track_pb.cjs +462 -64
- package/dist/proto/track_pb.cjs.map +1 -1
- package/dist/proto/track_pb.d.cts +434 -0
- package/dist/proto/track_pb.d.ts +254 -220
- package/dist/proto/track_pb.d.ts.map +1 -1
- package/dist/proto/track_pb.js +447 -45
- package/dist/proto/track_pb.js.map +1 -1
- package/dist/proto/track_publication_pb.cjs +130 -0
- package/dist/proto/track_publication_pb.cjs.map +1 -0
- package/dist/proto/track_publication_pb.d.cts +80 -0
- package/dist/proto/track_publication_pb.d.ts +80 -0
- package/dist/proto/track_publication_pb.d.ts.map +1 -0
- package/dist/proto/track_publication_pb.js +103 -0
- package/dist/proto/track_publication_pb.js.map +1 -0
- package/dist/proto/video_frame_pb.cjs +648 -88
- package/dist/proto/video_frame_pb.cjs.map +1 -1
- package/dist/proto/video_frame_pb.d.cts +660 -0
- package/dist/proto/video_frame_pb.d.ts +375 -328
- package/dist/proto/video_frame_pb.d.ts.map +1 -1
- package/dist/proto/video_frame_pb.js +626 -60
- package/dist/proto/video_frame_pb.js.map +1 -1
- package/dist/room.cjs +93 -125
- package/dist/room.cjs.map +1 -1
- package/dist/room.d.cts +123 -0
- package/dist/room.d.ts +37 -34
- package/dist/room.d.ts.map +1 -1
- package/dist/room.js +92 -122
- package/dist/room.js.map +1 -1
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.cts +81 -0
- package/dist/rpc.d.ts +10 -7
- package/dist/rpc.js.map +1 -1
- package/dist/track.cjs +12 -8
- package/dist/track.cjs.map +1 -1
- package/dist/track.d.cts +45 -0
- package/dist/track.d.ts +30 -20
- package/dist/track.d.ts.map +1 -1
- package/dist/track.js +13 -9
- package/dist/track.js.map +1 -1
- package/dist/track_publication.cjs +21 -12
- package/dist/track_publication.cjs.map +1 -1
- package/dist/track_publication.d.cts +47 -0
- package/dist/track_publication.d.ts +30 -19
- package/dist/track_publication.d.ts.map +1 -1
- package/dist/track_publication.js +22 -13
- package/dist/track_publication.js.map +1 -1
- package/dist/transcription.d.cts +15 -0
- package/dist/transcription.d.ts +4 -3
- package/dist/types.d.cts +9 -0
- package/dist/types.d.ts +3 -2
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.d.cts +3 -0
- package/dist/version.d.ts +3 -2
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/video_frame.cjs +26 -45
- package/dist/video_frame.cjs.map +1 -1
- package/dist/video_frame.d.cts +24 -0
- package/dist/video_frame.d.ts +10 -4
- package/dist/video_frame.d.ts.map +1 -1
- package/dist/video_frame.js +29 -48
- package/dist/video_frame.js.map +1 -1
- package/dist/video_source.cjs +7 -4
- package/dist/video_source.cjs.map +1 -1
- package/dist/video_source.d.cts +22 -0
- package/dist/video_source.d.ts +14 -7
- package/dist/video_source.d.ts.map +1 -1
- package/dist/video_source.js +9 -6
- package/dist/video_source.js.map +1 -1
- package/dist/video_stream.cjs +16 -5
- package/dist/video_stream.cjs.map +1 -1
- package/dist/video_stream.d.cts +40 -0
- package/dist/video_stream.d.ts +18 -7
- package/dist/video_stream.d.ts.map +1 -1
- package/dist/video_stream.js +17 -6
- package/dist/video_stream.js.map +1 -1
- package/package.json +17 -12
- package/src/audio_frame.ts +10 -10
- package/src/audio_resampler.ts +15 -13
- package/src/audio_source.ts +11 -8
- package/src/audio_stream.ts +3 -4
- package/src/e2ee.ts +36 -37
- package/src/ffi_client.ts +8 -16
- package/src/index.ts +5 -68
- package/src/napi/native.d.ts +5 -5
- package/src/participant.ts +100 -72
- package/src/proto/audio_frame_pb.ts +1220 -496
- package/src/proto/e2ee_pb.ts +858 -337
- package/src/proto/ffi_pb.ts +442 -135
- package/src/proto/handle_pb.ts +33 -19
- package/src/proto/participant_pb.ts +225 -60
- package/src/proto/room_pb.ts +3149 -1013
- package/src/proto/rpc_pb.ts +358 -129
- package/src/proto/stats_pb.ts +1891 -877
- package/src/proto/track_pb.ts +587 -253
- package/src/proto/track_publication_pb.ts +180 -0
- package/src/proto/video_frame_pb.ts +861 -394
- package/src/room.ts +143 -188
- package/src/rpc.ts +1 -1
- package/src/track.ts +16 -17
- package/src/track_publication.ts +25 -26
- package/src/version.ts +1 -1
- package/src/video_frame.ts +48 -72
- package/src/video_source.ts +11 -8
- 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 {
|
|
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
|
-
|
|
10
|
+
var _a;
|
|
11
|
+
return (_a = this.info) == null ? void 0 : _a.sid;
|
|
12
12
|
}
|
|
13
13
|
get name() {
|
|
14
|
-
|
|
14
|
+
var _a;
|
|
15
|
+
return (_a = this.info) == null ? void 0 : _a.name;
|
|
15
16
|
}
|
|
16
17
|
get kind() {
|
|
17
|
-
|
|
18
|
+
var _a;
|
|
19
|
+
return (_a = this.info) == null ? void 0 : _a.kind;
|
|
18
20
|
}
|
|
19
21
|
get source() {
|
|
20
|
-
|
|
22
|
+
var _a;
|
|
23
|
+
return (_a = this.info) == null ? void 0 : _a.source;
|
|
21
24
|
}
|
|
22
25
|
get simulcasted() {
|
|
23
|
-
|
|
26
|
+
var _a;
|
|
27
|
+
return (_a = this.info) == null ? void 0 : _a.simulcasted;
|
|
24
28
|
}
|
|
25
29
|
get width() {
|
|
26
|
-
|
|
30
|
+
var _a;
|
|
31
|
+
return (_a = this.info) == null ? void 0 : _a.width;
|
|
27
32
|
}
|
|
28
33
|
get height() {
|
|
29
|
-
|
|
34
|
+
var _a;
|
|
35
|
+
return (_a = this.info) == null ? void 0 : _a.height;
|
|
30
36
|
}
|
|
31
37
|
get mimeType() {
|
|
32
|
-
|
|
38
|
+
var _a;
|
|
39
|
+
return (_a = this.info) == null ? void 0 : _a.mimeType;
|
|
33
40
|
}
|
|
34
41
|
get muted() {
|
|
35
|
-
|
|
42
|
+
var _a;
|
|
43
|
+
return (_a = this.info) == null ? void 0 : _a.muted;
|
|
36
44
|
}
|
|
37
45
|
get encryptionType() {
|
|
38
|
-
|
|
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 =
|
|
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 {
|
|
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 };
|
package/dist/transcription.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
9
|
+
interface Transcription {
|
|
10
10
|
participantIdentity: string;
|
|
11
11
|
trackSid: string;
|
|
12
12
|
segments: TranscriptionSegment[];
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
export type { Transcription, TranscriptionSegment };
|
package/dist/types.d.cts
ADDED
package/dist/types.d.ts
CHANGED
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.
|
|
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
|
package/dist/version.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.
|
|
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":[]}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
declare const SDK_VERSION = "0.13.0";
|
|
2
|
+
|
|
3
|
+
export { SDK_VERSION };
|
package/dist/version.js
CHANGED
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.
|
|
1
|
+
{"version":3,"sources":["../src/version.ts"],"sourcesContent":["export const SDK_VERSION = \"0.13.0\";\n"],"mappings":"AAAO,MAAM,cAAc;","names":[]}
|
package/dist/video_frame.cjs
CHANGED
|
@@ -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 =
|
|
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 =
|
|
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
|
-
|
|
93
|
-
|
|
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 =
|
|
128
|
-
|
|
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 =
|
|
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 =
|
|
146
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
169
|
-
|
|
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 =
|
|
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 =
|
|
187
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
223
|
-
|
|
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
|
package/dist/video_frame.cjs.map
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAAsC;AAEtC,4BAIO;AAEA,MAAM,WAAW;AAAA,EAMtB,YAAY,MAAkB,OAAe,QAAgB,MAAuB;AAClF,SAAK,OAAO;AACZ,SAAK,QAAQ;AACb,SAAK,SAAS;AACd,SAAK,OAAO;AAAA,EACd;AAAA;AAAA,EAGA,IAAI,UAAkB;AACpB,WAAO,4BAAU,SAAS,YAAY,IAAI,WAAW,KAAK,KAAK,MAAM,CAAC;AAAA,EACxE;AAAA;AAAA,EAGA,YAA6B;AAC3B,UAAM,OAAO,IAAI,sCAAgB;AAAA,MAC/B,OAAO,KAAK;AAAA,MACZ,QAAQ,KAAK;AAAA,MACb,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,IAChB,CAAC;AAED,YAAQ,KAAK,MAAM;AAAA,MACjB,KAAK,sCAAgB;AAAA,MACrB,KAAK,sCAAgB;AAAA,MACrB,KAAK,sCAAgB;AAAA,MACrB,KAAK,sCAAgB;AACnB,aAAK,SAAS,KAAK,QAAQ;AAC3B;AAAA,MACF,KAAK,sCAAgB;AACnB,aAAK,SAAS,KAAK,QAAQ;AAC3B;AAAA,IACJ;AAEA,SAAK,WAAW,KAAK,GAAG,cAAc,KAAK,SAAS,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,CAAC;AAEvF,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,OAAO,cAAc,OAAqC;AACxD,UAAM,OAAO,MAAM;AACnB,WAAO,IAAI;AAAA,MACT,4BAAU,SAAS;AAAA,QACjB,KAAK;AAAA,QACL,eAAe,KAAK,MAAO,KAAK,OAAQ,KAAK,MAAO;AAAA,MACtD;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EAEA,SAAS,UAAqC;AAC5C,UAAM,aAAa,cAAc,KAAK,SAAS,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM;AACjF,QAAI,YAAY,WAAW,OAAQ;AAEnC,UAAM,YAAY,WAAW,QAAQ;AACrC,WAAO,4BAAU,SAAS,WAAW,UAAU,SAAU,UAAU,IAAK;AAAA,EAC1E;AAAA,EAEA,QAAQ,SAA0B,QAAQ,OAAmB;AAC3D,UAAM,MAAM,IAAI,6BAAW;AAAA,MACzB,SAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA,QAAQ,KAAK,UAAU;AAAA,QACzB;AAAA,MACF;AAAA,IACF,CAAC;AACD,UAAM,OAAO,4BAAU,SAAS,QAA8B,GAAG;AAEjE,YAAQ,KAAK,QAAQ,MAAM;AAAA,MACzB,KAAK;AACH,eAAO,WAAW,cAAc,KAAK,QAAQ,KAAK;AAAA,MACpD,KAAK;AAAA,MACL;AACE,cAAM,KAAK,QAAQ;AAAA,IACvB;AAAA,EACF;AACF;AAEA,MAAM,iBAAiB,CAAC,MAAuB,OAAe,WAA2B;AACvF,QAAM,cAAc,KAAK,OAAO,QAAQ,KAAK,CAAC;AAC9C,QAAM,eAAe,KAAK,OAAO,SAAS,KAAK,CAAC;AAChD,UAAQ,MAAM;AAAA,IACZ,KAAK,sCAAgB;AAAA,IACrB,KAAK,sCAAgB;AAAA,IACrB,KAAK,sCAAgB;AAAA,IACrB,KAAK,sCAAgB;AACnB,aAAO,QAAQ,SAAS;AAAA,IAC1B,KAAK,sCAAgB;AAAA,IACrB,KAAK,sCAAgB;AACnB,aAAO,QAAQ,SAAS;AAAA,IAC1B,KAAK,sCAAgB;AACnB,aAAO,QAAQ,SAAS,cAAc,eAAe;AAAA,IACvD,KAAK,sCAAgB;AACnB,aAAO,QAAQ,SAAS,IAAI,cAAc,cAAc;AAAA,IAC1D,KAAK,sCAAgB;AACnB,aAAO,QAAQ,SAAS,cAAc,SAAS;AAAA,IACjD,KAAK,sCAAgB;AACnB,aAAO,QAAQ,SAAS,IAAI,cAAc,eAAe;AAAA,IAC3D,KAAK,sCAAgB;AACnB,aAAO,QAAQ,SAAS,cAAc,cAAc;AAAA,EACxD;AACF;AAEA,MAAM,gBAAgB,CACpB,SACA,MACA,OACA,WACoC;AACpC,QAAM,cAAc,KAAK,OAAO,QAAQ,KAAK,CAAC;AAC9C,QAAM,eAAe,KAAK,OAAO,SAAS,KAAK,CAAC;AAChD,UAAQ,MAAM;AAAA,IACZ,KAAK,sCAAgB,MAAM;AACzB,YAAM,IAAI,IAAI,oDAA8B,EAAE,SAAS,QAAQ,OAAO,MAAM,QAAQ,OAAO,CAAC;AAC5F,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,cAAc;AAAA,MACtB,CAAC;AACD,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,cAAc;AAAA,MACtB,CAAC;AACD,aAAO,CAAC,GAAG,GAAG,CAAC;AAAA,IACjB;AAAA,IACA,KAAK,sCAAgB,OAAO;AAC1B,YAAM,IAAI,IAAI,oDAA8B,EAAE,SAAS,QAAQ,OAAO,MAAM,QAAQ,OAAO,CAAC;AAC5F,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,cAAc;AAAA,MACtB,CAAC;AACD,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,cAAc;AAAA,MACtB,CAAC;AACD,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,QAAQ;AAAA,MAChB,CAAC;AACD,aAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AAAA,IACpB;AAAA,IACA,KAAK,sCAAgB,MAAM;AACzB,YAAM,IAAI,IAAI,oDAA8B,EAAE,SAAS,QAAQ,OAAO,MAAM,QAAQ,OAAO,CAAC;AAC5F,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,cAAc;AAAA,MACtB,CAAC;AACD,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,cAAc;AAAA,MACtB,CAAC;AACD,aAAO,CAAC,GAAG,GAAG,CAAC;AAAA,IACjB;AAAA,IACA,KAAK,sCAAgB,MAAM;AACzB,YAAM,IAAI,IAAI,oDAA8B,EAAE,SAAS,QAAQ,OAAO,MAAM,QAAQ,OAAO,CAAC;AAC5F,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,QAAQ;AAAA,MAChB,CAAC;AACD,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ;AAAA,QACR,MAAM,QAAQ;AAAA,MAChB,CAAC;AACD,aAAO,CAAC,GAAG,GAAG,CAAC;AAAA,IACjB;AAAA,IACA,KAAK,sCAAgB,MAAM;AACzB,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C;AAAA,QACA,QAAQ,QAAQ;AAAA,QAChB,MAAM,QAAQ,SAAS;AAAA,MACzB,CAAC;AACD,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ,cAAc;AAAA,QACtB,MAAM,cAAc,eAAe;AAAA,MACrC,CAAC;AACD,YAAM,IAAI,IAAI,oDAA8B;AAAA,QAC1C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ,cAAc;AAAA,QACtB,MAAM,cAAc,eAAe;AAAA,MACrC,CAAC;AACD,aAAO,CAAC,GAAG,GAAG,CAAC;AAAA,IACjB;AAAA,IACA,KAAK,sCAAgB,MAAM;AACzB,YAAM,IAAI,IAAI,oDAA8B,EAAE,SAAS,QAAQ,OAAO,MAAM,QAAQ,OAAO,CAAC;AAC5F,YAAM,KAAK,IAAI,oDAA8B;AAAA,QAC3C,SAAS,EAAE,UAAW,OAAO,EAAE,IAAK;AAAA,QACpC,QAAQ,cAAc;AAAA,QACtB,MAAM,cAAc,eAAe;AAAA,MACrC,CAAC;AACD,aAAO,CAAC,GAAG,EAAE;AAAA,IACf;AAAA,IACA;AACE,aAAO,CAAC;AAAA,EACZ;AACF;","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 };
|
package/dist/video_frame.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
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
|
-
|
|
23
|
+
|
|
24
|
+
export { VideoFrame };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"video_frame.d.ts","sourceRoot":"","sources":["../src/video_frame.ts"],"names":[],"mappings":"
|
|
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"}
|