livekit-client 2.18.9 → 2.19.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/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +5609 -644
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +3553 -2813
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.pt.worker.js +2 -0
- package/dist/livekit-client.pt.worker.js.map +1 -0
- package/dist/livekit-client.pt.worker.mjs +5834 -0
- package/dist/livekit-client.pt.worker.mjs.map +1 -0
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/api/SignalClient.d.ts +2 -1
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts +8 -7
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/types.d.ts +35 -8
- package/dist/src/e2ee/types.d.ts.map +1 -1
- package/dist/src/e2ee/utils.d.ts +5 -5
- package/dist/src/e2ee/utils.d.ts.map +1 -1
- package/dist/src/e2ee/worker/DataCryptor.d.ts +5 -5
- package/dist/src/e2ee/worker/DataCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts +21 -4
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/naluUtils.d.ts +1 -1
- package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
- package/dist/src/e2ee/worker/sifPayload.d.ts +7 -7
- package/dist/src/e2ee/worker/sifPayload.d.ts.map +1 -1
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/options.d.ts +7 -0
- package/dist/src/options.d.ts.map +1 -1
- package/dist/src/packetTrailer/PacketTrailerManager.d.ts +49 -0
- package/dist/src/packetTrailer/PacketTrailerManager.d.ts.map +1 -0
- package/dist/src/packetTrailer/packetTrailer.d.ts +32 -0
- package/dist/src/packetTrailer/packetTrailer.d.ts.map +1 -0
- package/dist/src/packetTrailer/types.d.ts +57 -0
- package/dist/src/packetTrailer/types.d.ts.map +1 -0
- package/dist/src/packetTrailer/utils.d.ts +9 -0
- package/dist/src/packetTrailer/utils.d.ts.map +1 -0
- package/dist/src/packetTrailer/worker/packetTrailer.worker.d.ts +2 -0
- package/dist/src/packetTrailer/worker/packetTrailer.worker.d.ts.map +1 -0
- package/dist/src/room/RTCEngine.d.ts +2 -4
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +7 -3
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/data-track/RemoteDataTrack.d.ts +5 -1
- package/dist/src/room/data-track/RemoteDataTrack.d.ts.map +1 -1
- package/dist/src/room/data-track/depacketizer.d.ts +12 -4
- package/dist/src/room/data-track/depacketizer.d.ts.map +1 -1
- package/dist/src/room/data-track/frame.d.ts +3 -3
- package/dist/src/room/data-track/frame.d.ts.map +1 -1
- package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts +3 -1
- package/dist/src/room/data-track/incoming/IncomingDataTrackManager.d.ts.map +1 -1
- package/dist/src/room/data-track/incoming/pipeline.d.ts +4 -1
- package/dist/src/room/data-track/incoming/pipeline.d.ts.map +1 -1
- package/dist/src/room/data-track/outgoing/types.d.ts +2 -2
- package/dist/src/room/data-track/outgoing/types.d.ts.map +1 -1
- package/dist/src/room/data-track/packet/extensions.d.ts +4 -4
- package/dist/src/room/data-track/packet/extensions.d.ts.map +1 -1
- package/dist/src/room/data-track/packet/index.d.ts +5 -5
- package/dist/src/room/data-track/packet/index.d.ts.map +1 -1
- package/dist/src/room/data-track/packet/serializable.d.ts +1 -1
- package/dist/src/room/data-track/packet/serializable.d.ts.map +1 -1
- package/dist/src/room/data-track/types.d.ts +7 -0
- package/dist/src/room/data-track/types.d.ts.map +1 -1
- package/dist/src/room/events.d.ts +2 -2
- package/dist/src/room/participant/LocalParticipant.d.ts +8 -14
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts +1 -1
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/participant/RemoteParticipant.d.ts +5 -1
- package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -1
- package/dist/src/room/rpc/client/RpcClientManager.d.ts +39 -0
- package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -0
- package/dist/src/room/rpc/client/events.d.ts +8 -0
- package/dist/src/room/rpc/client/events.d.ts.map +1 -0
- package/dist/src/room/rpc/index.d.ts +6 -0
- package/dist/src/room/rpc/index.d.ts.map +1 -0
- package/dist/src/room/rpc/server/RpcServerManager.d.ts +44 -0
- package/dist/src/room/rpc/server/RpcServerManager.d.ts.map +1 -0
- package/dist/src/room/rpc/server/events.d.ts +8 -0
- package/dist/src/room/rpc/server/events.d.ts.map +1 -0
- package/dist/src/room/{rpc.d.ts → rpc/utils.d.ts} +34 -4
- package/dist/src/room/rpc/utils.d.ts.map +1 -0
- package/dist/src/room/track/PacketTrailerExtractor.d.ts +19 -0
- package/dist/src/room/track/PacketTrailerExtractor.d.ts.map +1 -0
- package/dist/src/room/track/RemoteVideoTrack.d.ts +16 -0
- package/dist/src/room/track/RemoteVideoTrack.d.ts.map +1 -1
- package/dist/src/room/track/Track.d.ts +1 -1
- package/dist/src/room/track/Track.d.ts.map +1 -1
- package/dist/src/room/track/create.d.ts.map +1 -1
- package/dist/src/room/track/options.d.ts +10 -0
- package/dist/src/room/track/options.d.ts.map +1 -1
- package/dist/src/room/track/utils.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +4 -3
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/src/test/MockMediaStreamTrack.d.ts.map +1 -1
- package/dist/src/utils/dataPacketBuffer.d.ts +1 -1
- package/dist/src/utils/dataPacketBuffer.d.ts.map +1 -1
- package/dist/src/version.d.ts +9 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/ts4.2/api/SignalClient.d.ts +2 -1
- package/dist/ts4.2/e2ee/E2eeManager.d.ts +8 -7
- package/dist/ts4.2/e2ee/types.d.ts +35 -8
- package/dist/ts4.2/e2ee/utils.d.ts +5 -5
- package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +5 -5
- package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +21 -4
- package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +1 -1
- package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +7 -7
- package/dist/ts4.2/index.d.ts +5 -1
- package/dist/ts4.2/options.d.ts +7 -0
- package/dist/ts4.2/packetTrailer/PacketTrailerManager.d.ts +49 -0
- package/dist/ts4.2/packetTrailer/packetTrailer.d.ts +32 -0
- package/dist/ts4.2/packetTrailer/types.d.ts +57 -0
- package/dist/ts4.2/packetTrailer/utils.d.ts +9 -0
- package/dist/ts4.2/packetTrailer/worker/packetTrailer.worker.d.ts +2 -0
- package/dist/ts4.2/room/RTCEngine.d.ts +2 -4
- package/dist/ts4.2/room/Room.d.ts +7 -3
- package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +5 -1
- package/dist/ts4.2/room/data-track/depacketizer.d.ts +12 -4
- package/dist/ts4.2/room/data-track/frame.d.ts +3 -3
- package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +3 -1
- package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +4 -1
- package/dist/ts4.2/room/data-track/outgoing/types.d.ts +2 -2
- package/dist/ts4.2/room/data-track/packet/extensions.d.ts +4 -4
- package/dist/ts4.2/room/data-track/packet/index.d.ts +5 -5
- package/dist/ts4.2/room/data-track/packet/serializable.d.ts +1 -1
- package/dist/ts4.2/room/data-track/types.d.ts +7 -0
- package/dist/ts4.2/room/events.d.ts +2 -2
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +8 -14
- package/dist/ts4.2/room/participant/Participant.d.ts +1 -1
- package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +5 -1
- package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -0
- package/dist/ts4.2/room/rpc/client/events.d.ts +8 -0
- package/dist/ts4.2/room/rpc/index.d.ts +7 -0
- package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -0
- package/dist/ts4.2/room/rpc/server/events.d.ts +8 -0
- package/dist/ts4.2/room/{rpc.d.ts → rpc/utils.d.ts} +34 -4
- package/dist/ts4.2/room/track/PacketTrailerExtractor.d.ts +19 -0
- package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +16 -0
- package/dist/ts4.2/room/track/Track.d.ts +1 -1
- package/dist/ts4.2/room/track/options.d.ts +10 -0
- package/dist/ts4.2/room/utils.d.ts +4 -3
- package/dist/ts4.2/utils/dataPacketBuffer.d.ts +1 -1
- package/dist/ts4.2/version.d.ts +9 -1
- package/package.json +24 -16
- package/src/api/SignalClient.test.ts +102 -10
- package/src/api/SignalClient.ts +4 -2
- package/src/api/WebSocketStream.test.ts +0 -1
- package/src/e2ee/E2eeManager.ts +82 -30
- package/src/e2ee/types.ts +37 -8
- package/src/e2ee/utils.ts +7 -6
- package/src/e2ee/worker/DataCryptor.ts +6 -6
- package/src/e2ee/worker/FrameCryptor.test.ts +177 -4
- package/src/e2ee/worker/FrameCryptor.ts +94 -14
- package/src/e2ee/worker/ParticipantKeyHandler.test.ts +4 -4
- package/src/e2ee/worker/e2ee.worker.ts +13 -5
- package/src/e2ee/worker/naluUtils.ts +4 -4
- package/src/e2ee/worker/sifPayload.ts +10 -8
- package/src/index.ts +7 -0
- package/src/options.ts +8 -0
- package/src/packetTrailer/PacketTrailerManager.test.ts +172 -0
- package/src/packetTrailer/PacketTrailerManager.ts +250 -0
- package/src/packetTrailer/packetTrailer.test.ts +174 -0
- package/src/packetTrailer/packetTrailer.ts +276 -0
- package/src/packetTrailer/types.ts +75 -0
- package/src/packetTrailer/utils.test.ts +105 -0
- package/src/packetTrailer/utils.ts +50 -0
- package/src/packetTrailer/worker/packetTrailer.worker.ts +155 -0
- package/src/packetTrailer/worker/tsconfig.json +14 -0
- package/src/room/BackOffStrategy.test.ts +1 -1
- package/src/room/RTCEngine.test.ts +219 -0
- package/src/room/RTCEngine.ts +86 -46
- package/src/room/Room.test.ts +62 -1
- package/src/room/Room.ts +111 -86
- package/src/room/data-track/RemoteDataTrack.ts +8 -1
- package/src/room/data-track/depacketizer.test.ts +433 -1
- package/src/room/data-track/depacketizer.ts +79 -61
- package/src/room/data-track/frame.ts +2 -2
- package/src/room/data-track/incoming/IncomingDataTrackManager.test.ts +194 -0
- package/src/room/data-track/incoming/IncomingDataTrackManager.ts +21 -1
- package/src/room/data-track/incoming/pipeline.ts +13 -2
- package/src/room/data-track/outgoing/types.ts +3 -2
- package/src/room/data-track/packet/extensions.ts +2 -2
- package/src/room/data-track/packet/index.ts +6 -6
- package/src/room/data-track/packet/serializable.ts +1 -1
- package/src/room/data-track/types.ts +8 -0
- package/src/room/events.ts +2 -2
- package/src/room/participant/LocalParticipant.test.ts +81 -0
- package/src/room/participant/LocalParticipant.ts +64 -187
- package/src/room/participant/Participant.ts +1 -1
- package/src/room/participant/RemoteParticipant.ts +9 -0
- package/src/room/participant/publishUtils.ts +1 -1
- package/src/room/rpc/client/RpcClientManager.test.ts +430 -0
- package/src/room/rpc/client/RpcClientManager.ts +269 -0
- package/src/room/rpc/client/events.ts +9 -0
- package/src/room/rpc/index.ts +14 -0
- package/src/room/rpc/server/RpcServerManager.test.ts +471 -0
- package/src/room/rpc/server/RpcServerManager.ts +293 -0
- package/src/room/rpc/server/events.ts +9 -0
- package/src/room/{rpc.ts → rpc/utils.ts} +49 -8
- package/src/room/track/PacketTrailerExtractor.ts +43 -0
- package/src/room/track/RemoteVideoTrack.ts +23 -2
- package/src/room/track/Track.ts +1 -1
- package/src/room/track/create.ts +0 -4
- package/src/room/track/options.ts +11 -0
- package/src/room/track/record.ts +1 -1
- package/src/room/track/utils.ts +4 -1
- package/src/room/utils.test.ts +14 -1
- package/src/room/utils.ts +19 -4
- package/src/test/MockMediaStreamTrack.ts +0 -1
- package/src/type-polyfills/non-shared-typed-arrays.d.ts +6 -0
- package/src/utils/dataPacketBuffer.ts +1 -1
- package/src/version.ts +11 -1
- package/dist/src/room/rpc.d.ts.map +0 -1
- package/src/room/rpc.test.ts +0 -301
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,gBAAgB,EAC/B,UAAU,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockMediaStreamTrack.d.ts","sourceRoot":"","sources":["../../../src/test/MockMediaStreamTrack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MockMediaStreamTrack.d.ts","sourceRoot":"","sources":["../../../src/test/MockMediaStreamTrack.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,OAAO,oBAAqB,YAAW,gBAAgB;IACnE,WAAW,EAAE,MAAM,CAAM;IAEzB,OAAO,EAAE,OAAO,CAAQ;IAExB,EAAE,EAAE,MAAM,CAAQ;IAElB,IAAI,EAAE,MAAM,CAAW;IAEvB,KAAK,EAAE,MAAM,CAAW;IAExB,KAAK,EAAE,OAAO,CAAS;IAEvB,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAEpE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAEnE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAErE,UAAU,EAAE,qBAAqB,CAAU;IAE3C,QAAQ,EAAE,OAAO,CAAS;IAE1B,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,CAAQ;IAG9E,gBAAgB,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,KAAK,IAAI,gBAAgB;IAIzB,eAAe,IAAI,sBAAsB;IAIzC,cAAc,IAAI,qBAAqB;IAIvC,WAAW,IAAI,kBAAkB;IAIjC,IAAI,IAAI,IAAI;IAIZ,gBAAgB,CAAC,CAAC,SAAS,MAAM,wBAAwB,EACvD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC1E,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IAKP,mBAAmB,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAC1D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,GAAG,EAC1E,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI;IACP,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI;IAKP,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;CAGrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataPacketBuffer.d.ts","sourceRoot":"","sources":["../../../src/utils/dataPacketBuffer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"dataPacketBuffer.d.ts","sourceRoot":"","sources":["../../../src/utils/dataPacketBuffer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAwB;IAEtC,OAAO,CAAC,UAAU,CAAK;IAEvB,IAAI,CAAC,IAAI,EAAE,cAAc;IAKzB,GAAG,IAAI,cAAc,GAAG,SAAS;IAQjC,MAAM,IAAI,cAAc,EAAE;IAI1B,aAAa,CAAC,QAAQ,EAAE,MAAM;IAW9B,mBAAmB,CAAC,cAAc,EAAE,MAAM;IAU1C,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
export declare const version: string;
|
|
2
|
-
export declare const protocolVersion =
|
|
2
|
+
export declare const protocolVersion = 17;
|
|
3
|
+
/** Initial client protocol. */
|
|
4
|
+
export declare const CLIENT_PROTOCOL_DEFAULT = 0;
|
|
5
|
+
/** Replaces RPC v1 protocol with a v2 data streams based one to support unlimited request /
|
|
6
|
+
* response payload length. */
|
|
7
|
+
export declare const CLIENT_PROTOCOL_DATA_STREAM_RPC = 1;
|
|
8
|
+
/** The client protocol version indicates what level of support that the client has for
|
|
9
|
+
* client <-> client api interactions. */
|
|
10
|
+
export declare const clientProtocol = 1;
|
|
3
11
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAAI,CAAC;AACzB,eAAO,MAAM,eAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAAI,CAAC;AACzB,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,+BAA+B;AAC/B,eAAO,MAAM,uBAAuB,IAAI,CAAC;AACzC;8BAC8B;AAC9B,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD;yCACyC;AACzC,eAAO,MAAM,cAAc,IAAkC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AddTrackRequest, AudioTrackFeature, ConnectionQualityUpdate, DataTrackSubscriberHandles, JoinResponse, LeaveRequest, MediaSectionsRequirement, ParticipantInfo, PublishDataTrackResponse, ReconnectReason, ReconnectResponse, RequestResponse, Room, RoomMovedResponse, SessionDescription, SignalResponse, SignalTarget, SimulateScenario, SpeakerInfo, StreamStateUpdate, SubscribedQualityUpdate, SubscriptionPermissionUpdate, SubscriptionResponse, SyncState, TrackPermission, TrackPublishedResponse, TrackUnpublishedResponse, UnpublishDataTrackResponse, UpdateSubscription, UpdateTrackSettings, VideoLayer } from '@livekit/protocol';
|
|
1
|
+
import { AddTrackRequest, AudioTrackFeature, ClientInfo_Capability, ConnectionQualityUpdate, DataTrackSubscriberHandles, JoinResponse, LeaveRequest, MediaSectionsRequirement, ParticipantInfo, PublishDataTrackResponse, ReconnectReason, ReconnectResponse, RequestResponse, Room, RoomMovedResponse, SessionDescription, SignalResponse, SignalTarget, SimulateScenario, SpeakerInfo, StreamStateUpdate, SubscribedQualityUpdate, SubscriptionPermissionUpdate, SubscriptionResponse, SyncState, TrackPermission, TrackPublishedResponse, TrackUnpublishedResponse, UnpublishDataTrackResponse, UpdateSubscription, UpdateTrackSettings, VideoLayer } from '@livekit/protocol';
|
|
2
2
|
import type { DataTrackHandle } from '../room/data-track/handle';
|
|
3
3
|
import type { DataTrackSid } from '../room/data-track/types';
|
|
4
4
|
import type { LoggerOptions } from '../room/types';
|
|
@@ -15,6 +15,7 @@ interface ConnectOpts extends SignalOptions {
|
|
|
15
15
|
export interface SignalOptions {
|
|
16
16
|
autoSubscribe: boolean;
|
|
17
17
|
adaptiveStream?: boolean;
|
|
18
|
+
clientInfoCapabilities?: ClientInfo_Capability[];
|
|
18
19
|
maxRetries: number;
|
|
19
20
|
e2eeEnabled: boolean;
|
|
20
21
|
websocketTimeout: number;
|
|
@@ -9,9 +9,9 @@ export interface BaseE2EEManager {
|
|
|
9
9
|
isEnabled: boolean;
|
|
10
10
|
isDataChannelEncryptionEnabled: boolean;
|
|
11
11
|
setParticipantCryptorEnabled(enabled: boolean, participantIdentity: string): void;
|
|
12
|
-
setSifTrailer(trailer:
|
|
13
|
-
encryptData(data:
|
|
14
|
-
handleEncryptedData(payload:
|
|
12
|
+
setSifTrailer(trailer: NonSharedUint8Array): void;
|
|
13
|
+
encryptData(data: NonSharedUint8Array): Promise<EncryptDataResponseMessage['data']>;
|
|
14
|
+
handleEncryptedData(payload: NonSharedUint8Array, iv: NonSharedUint8Array, participantIdentity: string, keyIndex: number): Promise<DecryptDataResponseMessage['data']>;
|
|
15
15
|
on<E extends keyof E2EEManagerCallbacks>(event: E, listener: E2EEManagerCallbacks[E]): this;
|
|
16
16
|
}
|
|
17
17
|
declare const E2EEManager_base: new () => TypedEventEmitter<E2EEManagerCallbacks>;
|
|
@@ -40,15 +40,16 @@ export declare class E2EEManager extends E2EEManager_base implements BaseE2EEMan
|
|
|
40
40
|
/**
|
|
41
41
|
* @internal
|
|
42
42
|
*/
|
|
43
|
-
setSifTrailer(trailer:
|
|
43
|
+
setSifTrailer(trailer: NonSharedUint8Array): void;
|
|
44
44
|
private onWorkerMessage;
|
|
45
45
|
private onWorkerError;
|
|
46
|
+
private handlePacketTrailerMetadata;
|
|
46
47
|
setupEngine(engine: RTCEngine): void;
|
|
47
48
|
private setupEventListeners;
|
|
48
|
-
encryptData(data:
|
|
49
|
-
handleEncryptedData(payload:
|
|
49
|
+
encryptData(data: NonSharedUint8Array): Promise<EncryptDataResponseMessage['data']>;
|
|
50
|
+
handleEncryptedData(payload: NonSharedUint8Array, iv: NonSharedUint8Array, participantIdentity: string, keyIndex: number): Promise<{
|
|
50
51
|
uuid: string;
|
|
51
|
-
payload:
|
|
52
|
+
payload: NonSharedUint8Array;
|
|
52
53
|
} & {
|
|
53
54
|
readonly __throws?: Error | undefined;
|
|
54
55
|
}>;
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { LogLevel } from '../logger';
|
|
2
|
+
import type { PacketTrailerFramePayload } from '../packetTrailer/packetTrailer';
|
|
3
|
+
import type { PacketTrailerPublishOptions } from '../packetTrailer/types';
|
|
2
4
|
import type { VideoCodec } from '../room/track/options';
|
|
3
5
|
import type { BaseE2EEManager } from './E2eeManager';
|
|
4
6
|
import type { BaseKeyProvider } from './KeyProvider';
|
|
@@ -33,7 +35,7 @@ export interface RTPVideoMapMessage extends BaseMessage {
|
|
|
33
35
|
export interface SifTrailerMessage extends BaseMessage {
|
|
34
36
|
kind: 'setSifTrailer';
|
|
35
37
|
data: {
|
|
36
|
-
trailer:
|
|
38
|
+
trailer: NonSharedUint8Array;
|
|
37
39
|
};
|
|
38
40
|
}
|
|
39
41
|
export interface EncodeMessage extends BaseMessage {
|
|
@@ -45,6 +47,16 @@ export interface EncodeMessage extends BaseMessage {
|
|
|
45
47
|
trackId: string;
|
|
46
48
|
codec?: VideoCodec;
|
|
47
49
|
isReuse: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Whether the published track advertises packet trailer features.
|
|
52
|
+
* When false, the cryptor skips the per-frame trailer extraction path
|
|
53
|
+
* entirely on decode.
|
|
54
|
+
*/
|
|
55
|
+
hasPacketTrailer: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Packet trailer metadata to append on published video frames.
|
|
58
|
+
*/
|
|
59
|
+
packetTrailer?: PacketTrailerPublishOptions;
|
|
48
60
|
};
|
|
49
61
|
}
|
|
50
62
|
export interface RemoveTransformMessage extends BaseMessage {
|
|
@@ -60,6 +72,7 @@ export interface UpdateCodecMessage extends BaseMessage {
|
|
|
60
72
|
participantIdentity: string;
|
|
61
73
|
trackId: string;
|
|
62
74
|
codec: VideoCodec;
|
|
75
|
+
hasPacketTrailer: boolean;
|
|
63
76
|
};
|
|
64
77
|
}
|
|
65
78
|
export interface RatchetRequestMessage extends BaseMessage {
|
|
@@ -102,8 +115,8 @@ export interface DecryptDataRequestMessage extends BaseMessage {
|
|
|
102
115
|
kind: 'decryptDataRequest';
|
|
103
116
|
data: {
|
|
104
117
|
uuid: string;
|
|
105
|
-
payload:
|
|
106
|
-
iv:
|
|
118
|
+
payload: NonSharedUint8Array;
|
|
119
|
+
iv: NonSharedUint8Array;
|
|
107
120
|
participantIdentity: string;
|
|
108
121
|
keyIndex: number;
|
|
109
122
|
};
|
|
@@ -112,14 +125,14 @@ export interface DecryptDataResponseMessage extends BaseMessage {
|
|
|
112
125
|
kind: 'decryptDataResponse';
|
|
113
126
|
data: {
|
|
114
127
|
uuid: string;
|
|
115
|
-
payload:
|
|
128
|
+
payload: NonSharedUint8Array;
|
|
116
129
|
};
|
|
117
130
|
}
|
|
118
131
|
export interface EncryptDataRequestMessage extends BaseMessage {
|
|
119
132
|
kind: 'encryptDataRequest';
|
|
120
133
|
data: {
|
|
121
134
|
uuid: string;
|
|
122
|
-
payload:
|
|
135
|
+
payload: NonSharedUint8Array;
|
|
123
136
|
participantIdentity: string;
|
|
124
137
|
};
|
|
125
138
|
}
|
|
@@ -127,12 +140,16 @@ export interface EncryptDataResponseMessage extends BaseMessage {
|
|
|
127
140
|
kind: 'encryptDataResponse';
|
|
128
141
|
data: {
|
|
129
142
|
uuid: string;
|
|
130
|
-
payload:
|
|
131
|
-
iv:
|
|
143
|
+
payload: NonSharedUint8Array;
|
|
144
|
+
iv: NonSharedUint8Array;
|
|
132
145
|
keyIndex: number;
|
|
133
146
|
};
|
|
134
147
|
}
|
|
135
|
-
export
|
|
148
|
+
export interface PTMetadataFromE2EEMessage extends BaseMessage {
|
|
149
|
+
kind: 'packetTrailerMetadata';
|
|
150
|
+
data: PacketTrailerFramePayload;
|
|
151
|
+
}
|
|
152
|
+
export type E2EEWorkerMessage = InitMessage | SetKeyMessage | EncodeMessage | ErrorMessage | EnableMessage | RemoveTransformMessage | RTPVideoMapMessage | UpdateCodecMessage | RatchetRequestMessage | RatchetMessage | SifTrailerMessage | InitAck | DecryptDataRequestMessage | DecryptDataResponseMessage | EncryptDataRequestMessage | EncryptDataResponseMessage | PTMetadataFromE2EEMessage;
|
|
136
153
|
export type KeySet = {
|
|
137
154
|
material: CryptoKey;
|
|
138
155
|
encryptionKey: CryptoKey;
|
|
@@ -178,5 +195,15 @@ export type ScriptTransformOptions = {
|
|
|
178
195
|
participantIdentity: string;
|
|
179
196
|
trackId: string;
|
|
180
197
|
codec?: VideoCodec;
|
|
198
|
+
/**
|
|
199
|
+
* Whether the published track advertises packet trailer features.
|
|
200
|
+
* When false, the cryptor skips the per-frame trailer extraction path
|
|
201
|
+
* entirely on decode.
|
|
202
|
+
*/
|
|
203
|
+
hasPacketTrailer: boolean;
|
|
204
|
+
/**
|
|
205
|
+
* Packet trailer metadata to append on published video frames.
|
|
206
|
+
*/
|
|
207
|
+
packetTrailer?: PacketTrailerPublishOptions;
|
|
181
208
|
};
|
|
182
209
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -5,7 +5,7 @@ export declare function isE2EESupported(): boolean;
|
|
|
5
5
|
export declare function isScriptTransformSupported(): boolean;
|
|
6
6
|
export declare function isInsertableStreamSupported(): boolean;
|
|
7
7
|
export declare function isVideoFrame(frame: RTCEncodedAudioFrame | RTCEncodedVideoFrame): frame is RTCEncodedVideoFrame;
|
|
8
|
-
export declare function importKey(keyBytes:
|
|
8
|
+
export declare function importKey(keyBytes: NonSharedUint8Array | ArrayBuffer, algorithm?: string | {
|
|
9
9
|
name: string;
|
|
10
10
|
}, usage?: 'derive' | 'encrypt'): Promise<CryptoKey>;
|
|
11
11
|
export declare function createKeyMaterialFromString(password: string): Promise<CryptoKey>;
|
|
@@ -18,14 +18,14 @@ export declare function deriveKeys(material: CryptoKey, options: KeyProviderOpti
|
|
|
18
18
|
material: CryptoKey;
|
|
19
19
|
encryptionKey: CryptoKey;
|
|
20
20
|
}>;
|
|
21
|
-
export declare function createE2EEKey():
|
|
21
|
+
export declare function createE2EEKey(): NonSharedUint8Array;
|
|
22
22
|
/**
|
|
23
23
|
* Ratchets a key. See
|
|
24
24
|
* https://tools.ietf.org/html/draft-omara-sframe-00#section-4.3.5.1
|
|
25
25
|
*/
|
|
26
26
|
export declare function ratchet(material: CryptoKey, salt: string): Promise<ArrayBuffer>;
|
|
27
|
-
export declare function needsRbspUnescaping(frameData:
|
|
28
|
-
export declare function parseRbsp(stream:
|
|
29
|
-
export declare function writeRbsp(data_in:
|
|
27
|
+
export declare function needsRbspUnescaping(frameData: NonSharedUint8Array): boolean;
|
|
28
|
+
export declare function parseRbsp(stream: NonSharedUint8Array): NonSharedUint8Array;
|
|
29
|
+
export declare function writeRbsp(data_in: NonSharedUint8Array): NonSharedUint8Array;
|
|
30
30
|
export declare function asEncryptablePacket(packet: DataPacket): EncryptedPacketPayload | undefined;
|
|
31
31
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -3,13 +3,13 @@ import type { ParticipantKeyHandler } from './ParticipantKeyHandler';
|
|
|
3
3
|
export declare class DataCryptor {
|
|
4
4
|
private static sendCount;
|
|
5
5
|
private static makeIV;
|
|
6
|
-
static encrypt(data:
|
|
7
|
-
payload:
|
|
8
|
-
iv:
|
|
6
|
+
static encrypt(data: NonSharedUint8Array, keys: ParticipantKeyHandler): Promise<{
|
|
7
|
+
payload: NonSharedUint8Array;
|
|
8
|
+
iv: NonSharedUint8Array;
|
|
9
9
|
keyIndex: number;
|
|
10
10
|
}>;
|
|
11
|
-
static decrypt(data:
|
|
12
|
-
payload:
|
|
11
|
+
static decrypt(data: NonSharedUint8Array, iv: NonSharedUint8Array, keys: ParticipantKeyHandler, keyIndex?: number, initialMaterial?: KeySet, ratchetOpts?: DecodeRatchetOptions): Promise<{
|
|
12
|
+
payload: NonSharedUint8Array;
|
|
13
13
|
}>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=DataCryptor.d.ts.map
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type TypedEventEmitter from 'typed-emitter';
|
|
2
|
+
import type { PacketTrailerPublishOptions } from '../../packetTrailer/types';
|
|
2
3
|
import type { VideoCodec } from '../../room/track/options';
|
|
3
4
|
import type { CryptorCallbacks } from '../events';
|
|
4
5
|
import type { KeyProviderOptions } from '../types';
|
|
@@ -37,6 +38,14 @@ export declare class FrameCryptor extends BaseFrameCryptor {
|
|
|
37
38
|
private sifTrailer;
|
|
38
39
|
private detectedCodec?;
|
|
39
40
|
private currentTransform?;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the subscribed track advertises packet trailer features.
|
|
43
|
+
* When false, we skip the per-frame trailer extraction path entirely
|
|
44
|
+
* on decode to avoid unnecessary work on tracks that don't use it.
|
|
45
|
+
*/
|
|
46
|
+
private hasPacketTrailer;
|
|
47
|
+
private packetTrailer?;
|
|
48
|
+
private packetTrailerFrameId;
|
|
40
49
|
/**
|
|
41
50
|
* Throttling mechanism for decryption errors to prevent memory leaks
|
|
42
51
|
*/
|
|
@@ -49,7 +58,7 @@ export declare class FrameCryptor extends BaseFrameCryptor {
|
|
|
49
58
|
keys: ParticipantKeyHandler;
|
|
50
59
|
participantIdentity: string;
|
|
51
60
|
keyProviderOptions: KeyProviderOptions;
|
|
52
|
-
sifTrailer?:
|
|
61
|
+
sifTrailer?: NonSharedUint8Array;
|
|
53
62
|
});
|
|
54
63
|
private get logContext();
|
|
55
64
|
/**
|
|
@@ -73,8 +82,15 @@ export declare class FrameCryptor extends BaseFrameCryptor {
|
|
|
73
82
|
* @param map
|
|
74
83
|
*/
|
|
75
84
|
setRtpMap(map: Map<number, VideoCodec>): void;
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Sets whether the track associated with this cryptor carries packet
|
|
87
|
+
* trailer data. When false, {@link decodeFunction} skips the per-frame
|
|
88
|
+
* trailer extraction branch entirely.
|
|
89
|
+
*/
|
|
90
|
+
setHasPacketTrailer(hasPacketTrailer: boolean): void;
|
|
91
|
+
setPacketTrailer(packetTrailer?: PacketTrailerPublishOptions): void;
|
|
92
|
+
setupTransform(operation: 'encode' | 'decode', readable: ReadableStream<RTCEncodedVideoFrame | RTCEncodedAudioFrame>, writable: WritableStream<RTCEncodedVideoFrame | RTCEncodedAudioFrame>, trackId: string, isReuse: boolean, codec?: VideoCodec, packetTrailer?: PacketTrailerPublishOptions): void;
|
|
93
|
+
setSifTrailer(trailer: NonSharedUint8Array): void;
|
|
78
94
|
/**
|
|
79
95
|
* Checks if we should emit an error based on throttling rules to prevent memory leaks
|
|
80
96
|
* @param errorKey - unique key identifying the error context
|
|
@@ -109,6 +125,7 @@ export declare class FrameCryptor extends BaseFrameCryptor {
|
|
|
109
125
|
* 9) Enqueue the encrypted frame for sending.
|
|
110
126
|
*/
|
|
111
127
|
protected encodeFunction(encodedFrame: RTCEncodedVideoFrame | RTCEncodedAudioFrame, controller: TransformStreamDefaultController): Promise<void>;
|
|
128
|
+
private appendPacketTrailer;
|
|
112
129
|
/**
|
|
113
130
|
* Function that will be injected in a stream and will decrypt the given encoded frames.
|
|
114
131
|
*
|
|
@@ -152,6 +169,6 @@ export declare class FrameCryptor extends BaseFrameCryptor {
|
|
|
152
169
|
* by the livekit server and thus to be treated as unencrypted
|
|
153
170
|
* @internal
|
|
154
171
|
*/
|
|
155
|
-
export declare function isFrameServerInjected(frameData: ArrayBuffer, trailerBytes:
|
|
172
|
+
export declare function isFrameServerInjected(frameData: ArrayBuffer, trailerBytes: NonSharedUint8Array): boolean;
|
|
156
173
|
export {};
|
|
157
174
|
//# sourceMappingURL=FrameCryptor.d.ts.map
|
|
@@ -23,5 +23,5 @@ export interface NALUProcessingResult {
|
|
|
23
23
|
* @param knownCodec Known codec from other sources (optional)
|
|
24
24
|
* @returns NALU processing result
|
|
25
25
|
*/
|
|
26
|
-
export declare function processNALUsForEncryption(data:
|
|
26
|
+
export declare function processNALUsForEncryption(data: NonSharedUint8Array, knownCodec?: 'h264' | 'h265'): NALUProcessingResult;
|
|
27
27
|
//# sourceMappingURL=naluUtils.d.ts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { VideoCodec } from '../..';
|
|
2
|
-
export declare const VP8KeyFrame8x8:
|
|
3
|
-
export declare const H264KeyFrame2x2SPS:
|
|
4
|
-
export declare const H264KeyFrame2x2PPS:
|
|
5
|
-
export declare const H264KeyFrame2x2IDR:
|
|
6
|
-
export declare const H264KeyFrame2x2:
|
|
7
|
-
export declare const OpusSilenceFrame:
|
|
2
|
+
export declare const VP8KeyFrame8x8: NonSharedUint8Array;
|
|
3
|
+
export declare const H264KeyFrame2x2SPS: NonSharedUint8Array;
|
|
4
|
+
export declare const H264KeyFrame2x2PPS: NonSharedUint8Array;
|
|
5
|
+
export declare const H264KeyFrame2x2IDR: NonSharedUint8Array;
|
|
6
|
+
export declare const H264KeyFrame2x2: NonSharedUint8Array[];
|
|
7
|
+
export declare const OpusSilenceFrame: NonSharedUint8Array;
|
|
8
8
|
/**
|
|
9
9
|
* Pre-computed SHA-256 hashes for secure comparison operations
|
|
10
10
|
*/
|
|
@@ -18,5 +18,5 @@ export declare const CryptoHashes: {
|
|
|
18
18
|
/**
|
|
19
19
|
* Check if a byte array matches any of the known SIF payload frame types using secure crypto hashes
|
|
20
20
|
*/
|
|
21
|
-
export declare function identifySifPayload(data:
|
|
21
|
+
export declare function identifySifPayload(data: NonSharedUint8Array | ArrayBuffer): Promise<VideoCodec | 'opus' | null>;
|
|
22
22
|
//# sourceMappingURL=sifPayload.d.ts.map
|
package/dist/ts4.2/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import Room, { ConnectionState } from './room/Room';
|
|
|
8
8
|
import * as attributes from './room/attribute-typings';
|
|
9
9
|
import LocalDataTrack from './room/data-track/LocalDataTrack';
|
|
10
10
|
import type RemoteDataTrack, { DataTrackSubscribeOptions } from './room/data-track/RemoteDataTrack';
|
|
11
|
+
import type { RemoteDataTrackPipelineOptions } from './room/data-track/types';
|
|
11
12
|
import LocalParticipant from './room/participant/LocalParticipant';
|
|
12
13
|
import type Participant, { ParticipantEventCallbacks } from './room/participant/Participant';
|
|
13
14
|
import Participant, { ConnectionQuality, ParticipantKind } from './room/participant/Participant';
|
|
@@ -32,6 +33,9 @@ import { compareVersions, createAudioAnalyser, getEmptyAudioStreamTrack, getEmpt
|
|
|
32
33
|
import { getBrowser } from './utils/browserParser';
|
|
33
34
|
export type { RpcInvocationData, PerformRpcParams } from './room/rpc';
|
|
34
35
|
export { RpcError } from './room/rpc';
|
|
36
|
+
export type { PacketTrailerMetadata, PacketTrailerPublishOptions } from './packetTrailer/types';
|
|
37
|
+
export type { PacketTrailerOptions } from './packetTrailer/PacketTrailerManager';
|
|
38
|
+
export { PacketTrailerManager } from './packetTrailer/PacketTrailerManager';
|
|
35
39
|
export * from './connectionHelper/ConnectionCheck';
|
|
36
40
|
export * from './connectionHelper/checks/Checker';
|
|
37
41
|
export * from './e2ee';
|
|
@@ -54,7 +58,7 @@ export * from './version';
|
|
|
54
58
|
export {
|
|
55
59
|
/** @internal */
|
|
56
60
|
attributes, ConnectionQuality, ConnectionState, CriticalTimers, DataPacket_Kind, Encryption_Type, DefaultReconnectPolicy, DisconnectReason, LocalAudioTrack, LocalParticipant, LocalTrack, LocalTrackPublication, LocalVideoTrack, LogLevel, LoggerNames, Participant, RemoteAudioTrack, RemoteParticipant, ParticipantKind, RemoteTrack, RemoteTrackPublication, RemoteVideoTrack, Room, SubscriptionError, TrackPublication, TrackType, compareVersions, createAudioAnalyser, getBrowser, getEmptyAudioStreamTrack, getEmptyVideoStreamTrack, getLogger, isBrowserSupported, setLogExtension, setLogLevel, supportsAV1, supportsAdaptiveStream, supportsAudioOutputSelection, supportsDynacast, supportsVP9, Mutex, isAudioCodec, isAudioTrack, isLocalTrack, isRemoteTrack, isVideoCodec, isVideoTrack, isLocalParticipant, isRemoteParticipant, LocalDataTrack, RemoteDataTrack, };
|
|
57
|
-
export type { AudioAnalyserOptions, ElementInfo, LiveKitReactNativeInfo, TextStreamInfo, ParticipantTrackPermission, AudioReceiverStats, AudioSenderStats, VideoReceiverStats, VideoSenderStats, ReconnectContext, ReconnectPolicy, RoomEventCallbacks, ParticipantEventCallbacks, PublicationEventCallbacks, DataTrackSubscribeOptions, };
|
|
61
|
+
export type { AudioAnalyserOptions, ElementInfo, LiveKitReactNativeInfo, TextStreamInfo, ParticipantTrackPermission, AudioReceiverStats, AudioSenderStats, VideoReceiverStats, VideoSenderStats, ReconnectContext, ReconnectPolicy, RoomEventCallbacks, ParticipantEventCallbacks, PublicationEventCallbacks, DataTrackSubscribeOptions, RemoteDataTrackPipelineOptions, };
|
|
58
62
|
export type { DataTrackPacketHeader } from './room/data-track/packet';
|
|
59
63
|
export { DataTrackPacket } from './room/data-track/packet';
|
|
60
64
|
export type { DataTrackExtensions, DataTrackUserTimestampExtension, DataTrackE2eeExtension } from './room/data-track/packet/extensions';
|
package/dist/ts4.2/options.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { E2EEOptions } from './e2ee/types';
|
|
2
|
+
import type { PacketTrailerOptions } from './packetTrailer/PacketTrailerManager';
|
|
2
3
|
import type { ReconnectPolicy } from './room/ReconnectPolicy';
|
|
3
4
|
import type { AudioCaptureOptions, AudioOutputOptions, TrackPublishDefaults, VideoCaptureOptions } from './room/track/options';
|
|
4
5
|
import type { AdaptiveStreamSettings } from './room/track/types';
|
|
@@ -78,6 +79,12 @@ export interface InternalRoomOptions {
|
|
|
78
79
|
*/
|
|
79
80
|
encryption?: E2EEOptions;
|
|
80
81
|
loggerName?: string;
|
|
82
|
+
/**
|
|
83
|
+
* @experimental
|
|
84
|
+
* Options for enabling packet trailers on video tracks.
|
|
85
|
+
* Packet trailers carry frame-level metadata such as user timestamps and frame IDs.
|
|
86
|
+
*/
|
|
87
|
+
packetTrailer?: PacketTrailerOptions;
|
|
81
88
|
/**
|
|
82
89
|
* will attempt to connect via single peer connection mode.
|
|
83
90
|
* falls back to dual peer connection mode if not available.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type Room from '../room/Room';
|
|
2
|
+
export interface PacketTrailerOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Dedicated worker for extracting packet trailers off the main thread.
|
|
5
|
+
*
|
|
6
|
+
* Encoded video streams are transferred to the worker for processing, which
|
|
7
|
+
* avoids per-frame work on the main thread.
|
|
8
|
+
*/
|
|
9
|
+
worker: Worker;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Manages packet trailer extraction for received video tracks.
|
|
13
|
+
*
|
|
14
|
+
* When a track's TrackInfo indicates packet trailer features, the manager
|
|
15
|
+
* wires up an encoded frame transform to strip the trailer from encoded frames
|
|
16
|
+
* and cache the metadata for lookup.
|
|
17
|
+
*
|
|
18
|
+
* Packet trailer extraction is worker-only. If no worker is configured, the
|
|
19
|
+
* SDK does not advertise packet trailer support and skips extraction.
|
|
20
|
+
*
|
|
21
|
+
* When E2EE is active, the E2EE FrameCryptor worker handles trailer
|
|
22
|
+
* extraction directly (before decryption), so this manager only creates
|
|
23
|
+
* the extractor/metadata cache — no separate pipeline is installed.
|
|
24
|
+
*
|
|
25
|
+
* @experimental
|
|
26
|
+
*/
|
|
27
|
+
export declare class PacketTrailerManager {
|
|
28
|
+
private worker?;
|
|
29
|
+
private room?;
|
|
30
|
+
private extractors;
|
|
31
|
+
/**
|
|
32
|
+
* Tracks the trackId associated with each receiver that has had its
|
|
33
|
+
* encoded streams handed off to the worker. Used to detect receiver
|
|
34
|
+
* reuse (transceiver recycling) so we can remap trackIds instead of
|
|
35
|
+
* re-transferring already-consumed streams.
|
|
36
|
+
*/
|
|
37
|
+
private workerPipelines;
|
|
38
|
+
constructor(options?: PacketTrailerOptions);
|
|
39
|
+
/** @internal */
|
|
40
|
+
setup(room: Room): void;
|
|
41
|
+
private setupReceiver;
|
|
42
|
+
private setupPassthroughReceiver;
|
|
43
|
+
private setupWorkerReceiver;
|
|
44
|
+
private teardownTrack;
|
|
45
|
+
private cleanup;
|
|
46
|
+
private onWorkerMessage;
|
|
47
|
+
private onWorkerError;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=PacketTrailerManager.d.ts.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { PacketTrailerMetadata, PacketTrailerPublishOptions } from './types';
|
|
2
|
+
export declare const PACKET_TRAILER_MAGIC: Uint8Array<ArrayBuffer>;
|
|
3
|
+
export declare const PACKET_TRAILER_TIMESTAMP_TAG = 1;
|
|
4
|
+
export declare const PACKET_TRAILER_FRAME_ID_TAG = 2;
|
|
5
|
+
export declare const PACKET_TRAILER_ENVELOPE_SIZE = 5;
|
|
6
|
+
export interface ExtractPacketTrailerResult {
|
|
7
|
+
data: Uint8Array;
|
|
8
|
+
metadata?: PacketTrailerMetadata;
|
|
9
|
+
}
|
|
10
|
+
export declare function appendPacketTrailer(data: Uint8Array, userTimestamp: bigint, frameId: number): Uint8Array;
|
|
11
|
+
export declare function appendPacketTrailerToEncodedFrame(frame: RTCEncodedVideoFrame, options: PacketTrailerPublishOptions | undefined, frameId: number): boolean;
|
|
12
|
+
export declare function extractPacketTrailer(data: ArrayBuffer | Uint8Array): ExtractPacketTrailerResult;
|
|
13
|
+
export declare function getFrameRtpTimestamp(frame: RTCEncodedVideoFrame | RTCEncodedAudioFrame): number | undefined;
|
|
14
|
+
export declare function getFrameSsrc(frame: RTCEncodedVideoFrame | RTCEncodedAudioFrame): number;
|
|
15
|
+
export interface PacketTrailerFramePayload {
|
|
16
|
+
trackId: string;
|
|
17
|
+
rtpTimestamp: number;
|
|
18
|
+
ssrc: number;
|
|
19
|
+
metadata: PacketTrailerMetadata;
|
|
20
|
+
}
|
|
21
|
+
export interface ProcessPacketTrailerResult {
|
|
22
|
+
data?: ArrayBuffer;
|
|
23
|
+
payload?: PacketTrailerFramePayload;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Extracts a packet trailer from an encoded frame and returns the stripped
|
|
27
|
+
* frame data (if any) along with a ready-to-post metadata payload. Returns an
|
|
28
|
+
* empty object when no trailer is present, an RTP timestamp can't be read, or
|
|
29
|
+
* a trackId isn't available.
|
|
30
|
+
*/
|
|
31
|
+
export declare function processPacketTrailer(frame: RTCEncodedVideoFrame | RTCEncodedAudioFrame, trackId: string | undefined): ProcessPacketTrailerResult;
|
|
32
|
+
//# sourceMappingURL=packetTrailer.d.ts.map
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { PacketTrailerFramePayload } from './packetTrailer';
|
|
2
|
+
export interface PacketTrailerMetadata {
|
|
3
|
+
userTimestamp: bigint;
|
|
4
|
+
frameId: number;
|
|
5
|
+
}
|
|
6
|
+
export interface PacketTrailerPublishOptions {
|
|
7
|
+
timestamp?: boolean;
|
|
8
|
+
frameId?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface PTBaseMessage {
|
|
11
|
+
kind: string;
|
|
12
|
+
data?: unknown;
|
|
13
|
+
}
|
|
14
|
+
export interface PTInitMessage extends PTBaseMessage {
|
|
15
|
+
kind: 'init';
|
|
16
|
+
}
|
|
17
|
+
export interface PTInitAck extends PTBaseMessage {
|
|
18
|
+
kind: 'initAck';
|
|
19
|
+
}
|
|
20
|
+
export interface PTDecodeMessage extends PTBaseMessage {
|
|
21
|
+
kind: 'decode';
|
|
22
|
+
data: {
|
|
23
|
+
readableStream: ReadableStream;
|
|
24
|
+
writableStream: WritableStream;
|
|
25
|
+
trackId: string;
|
|
26
|
+
hasPacketTrailer: boolean;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface PTEncodeMessage extends PTBaseMessage {
|
|
30
|
+
kind: 'encode';
|
|
31
|
+
data: {
|
|
32
|
+
readableStream: ReadableStream;
|
|
33
|
+
writableStream: WritableStream;
|
|
34
|
+
packetTrailer?: PacketTrailerPublishOptions;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export type PTScriptTransformOptions = {
|
|
38
|
+
kind: 'decode';
|
|
39
|
+
trackId: string;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'encode';
|
|
42
|
+
packetTrailer?: PacketTrailerPublishOptions;
|
|
43
|
+
};
|
|
44
|
+
export interface PTMetadataMessage extends PTBaseMessage {
|
|
45
|
+
kind: 'metadata';
|
|
46
|
+
data: PacketTrailerFramePayload;
|
|
47
|
+
}
|
|
48
|
+
export interface PTUpdateTrackIdMessage extends PTBaseMessage {
|
|
49
|
+
kind: 'updateTrackId';
|
|
50
|
+
data: {
|
|
51
|
+
oldTrackId: string;
|
|
52
|
+
newTrackId: string;
|
|
53
|
+
hasPacketTrailer: boolean;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export type PTWorkerMessage = PTInitMessage | PTInitAck | PTDecodeMessage | PTEncodeMessage | PTUpdateTrackIdMessage | PTMetadataMessage;
|
|
57
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PacketTrailerFeature } from '@livekit/protocol';
|
|
2
|
+
import type { PacketTrailerOptions } from './PacketTrailerManager';
|
|
3
|
+
import type { PacketTrailerPublishOptions } from './types';
|
|
4
|
+
export declare function shouldUsePacketTrailerScriptTransform(): boolean;
|
|
5
|
+
export declare function isPacketTrailerSupported(options?: PacketTrailerOptions): boolean;
|
|
6
|
+
export declare function hasPacketTrailerPublishOptions(options?: PacketTrailerPublishOptions): boolean;
|
|
7
|
+
export declare function getPacketTrailerFeatures(options?: PacketTrailerPublishOptions): PacketTrailerFeature[];
|
|
8
|
+
export declare function getPacketTrailerPublishOptions(features?: PacketTrailerFeature[]): PacketTrailerPublishOptions | undefined;
|
|
9
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -8,7 +8,6 @@ import type { InternalRoomOptions } from '../options';
|
|
|
8
8
|
import PCTransport from './PCTransport';
|
|
9
9
|
import { PCTransportManager } from './PCTransportManager';
|
|
10
10
|
import { DataTrackInfo } from './data-track/types';
|
|
11
|
-
import { RpcError } from './rpc';
|
|
12
11
|
import type LocalTrack from './track/LocalTrack';
|
|
13
12
|
import type LocalTrackPublication from './track/LocalTrackPublication';
|
|
14
13
|
import LocalVideoTrack from './track/LocalVideoTrack';
|
|
@@ -130,6 +129,7 @@ export default class RTCEngine extends RTCEngine_base {
|
|
|
130
129
|
private handleBufferedAmountLow;
|
|
131
130
|
createSender(track: LocalTrack, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender>;
|
|
132
131
|
createSimulcastSender(track: LocalVideoTrack, simulcastTrack: SimulcastTrackInfo, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender | undefined>;
|
|
132
|
+
private setupPacketTrailerSender;
|
|
133
133
|
private createTransceiverRTCRtpSender;
|
|
134
134
|
private createSimulcastTransceiverSender;
|
|
135
135
|
private createRTCRtpSender;
|
|
@@ -142,11 +142,9 @@ export default class RTCEngine extends RTCEngine_base {
|
|
|
142
142
|
private waitForPCReconnected;
|
|
143
143
|
waitForRestarted: () => Promise<void>;
|
|
144
144
|
/** @internal */
|
|
145
|
-
publishRpcResponse(destinationIdentity: string, requestId: string, payload: string | null, error: RpcError | null): Promise<void>;
|
|
146
|
-
/** @internal */
|
|
147
145
|
publishRpcAck(destinationIdentity: string, requestId: string): Promise<void>;
|
|
148
146
|
sendDataPacket(packet: DataPacket, kind: DataChannelKind): Promise<void>;
|
|
149
|
-
sendLossyBytes(bytes:
|
|
147
|
+
sendLossyBytes(bytes: NonSharedUint8Array, kind: Exclude<DataChannelKind, DataChannelKind.RELIABLE>, bufferStatusLowBehavior?: 'drop' | 'wait'): Promise<void>;
|
|
150
148
|
private resendReliableMessagesForResume;
|
|
151
149
|
private updateAndEmitDCBufferStatus;
|
|
152
150
|
private isBufferStatusLow;
|