livekit-client 2.19.2 → 2.20.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 +23 -23
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +179 -111
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.fm.worker.js +2 -0
- package/dist/{livekit-client.pt.worker.js.map → livekit-client.fm.worker.js.map} +1 -1
- package/dist/{livekit-client.pt.worker.mjs → livekit-client.fm.worker.mjs} +4 -4
- package/dist/livekit-client.fm.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.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/types.d.ts +5 -5
- package/dist/src/e2ee/types.d.ts.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts +8 -8
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/{packetTrailer/PacketTrailerManager.d.ts → frameMetadata/FrameMetadataManager.d.ts} +8 -4
- package/dist/src/{packetTrailer/PacketTrailerManager.d.ts.map → frameMetadata/FrameMetadataManager.d.ts.map} +1 -1
- package/dist/src/{packetTrailer/packetTrailer.d.ts → frameMetadata/frameMetadata.d.ts} +7 -7
- package/dist/src/frameMetadata/frameMetadata.d.ts.map +1 -0
- package/dist/src/{packetTrailer → frameMetadata}/types.d.ts +10 -6
- package/dist/src/frameMetadata/types.d.ts.map +1 -0
- package/dist/src/frameMetadata/utils.d.ts +9 -0
- package/dist/src/{packetTrailer → frameMetadata}/utils.d.ts.map +1 -1
- package/dist/src/frameMetadata/worker/frameMetadata.worker.d.ts +2 -0
- package/dist/src/frameMetadata/worker/frameMetadata.worker.d.ts.map +1 -0
- package/dist/src/index.d.ts +10 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/options.d.ts +8 -4
- package/dist/src/options.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +1 -0
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/PCTransportManager.d.ts +1 -0
- package/dist/src/room/PCTransportManager.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +3 -1
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +2 -2
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +2 -2
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
- package/dist/src/room/token-source/TokenSource.d.ts.map +1 -1
- package/dist/src/room/token-source/types.d.ts +1 -0
- package/dist/src/room/token-source/types.d.ts.map +1 -1
- package/dist/src/room/token-source/utils.d.ts.map +1 -1
- package/dist/src/room/track/FrameMetadataExtractor.d.ts +19 -0
- package/dist/src/room/track/FrameMetadataExtractor.d.ts.map +1 -0
- package/dist/src/room/track/RemoteVideoTrack.d.ts +7 -7
- package/dist/src/room/track/RemoteVideoTrack.d.ts.map +1 -1
- package/dist/src/room/track/options.d.ts +17 -5
- package/dist/src/room/track/options.d.ts.map +1 -1
- package/dist/ts4.2/e2ee/E2eeManager.d.ts +1 -1
- package/dist/ts4.2/e2ee/types.d.ts +5 -5
- package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +8 -8
- package/dist/ts4.2/{packetTrailer/PacketTrailerManager.d.ts → frameMetadata/FrameMetadataManager.d.ts} +8 -4
- package/dist/ts4.2/{packetTrailer/packetTrailer.d.ts → frameMetadata/frameMetadata.d.ts} +7 -7
- package/dist/ts4.2/{packetTrailer → frameMetadata}/types.d.ts +10 -6
- package/dist/ts4.2/frameMetadata/utils.d.ts +9 -0
- package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -0
- package/dist/ts4.2/index.d.ts +9 -3
- package/dist/ts4.2/options.d.ts +8 -4
- package/dist/ts4.2/room/PCTransport.d.ts +1 -0
- package/dist/ts4.2/room/PCTransportManager.d.ts +1 -0
- package/dist/ts4.2/room/RTCEngine.d.ts +3 -1
- package/dist/ts4.2/room/Room.d.ts +2 -2
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +2 -2
- package/dist/ts4.2/room/token-source/types.d.ts +1 -0
- package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -0
- package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +7 -7
- package/dist/ts4.2/room/track/options.d.ts +17 -5
- package/package.json +23 -18
- package/src/api/SignalClient.test.ts +4 -4
- package/src/api/SignalClient.ts +7 -3
- package/src/api/WebSocketStream.test.ts +7 -7
- package/src/e2ee/E2eeManager.ts +13 -11
- package/src/e2ee/types.ts +5 -5
- package/src/e2ee/worker/FrameCryptor.test.ts +5 -5
- package/src/e2ee/worker/FrameCryptor.ts +27 -23
- package/src/e2ee/worker/e2ee.worker.ts +5 -5
- package/src/e2ee/worker/tsconfig.json +4 -1
- package/src/{packetTrailer/PacketTrailerManager.test.ts → frameMetadata/FrameMetadataManager.test.ts} +10 -8
- package/src/{packetTrailer/PacketTrailerManager.ts → frameMetadata/FrameMetadataManager.ts} +21 -15
- package/src/{packetTrailer/packetTrailer.test.ts → frameMetadata/frameMetadata.test.ts} +1 -1
- package/src/{packetTrailer/packetTrailer.ts → frameMetadata/frameMetadata.ts} +9 -9
- package/src/{packetTrailer → frameMetadata}/types.ts +12 -6
- package/src/{packetTrailer → frameMetadata}/utils.test.ts +19 -19
- package/src/{packetTrailer → frameMetadata}/utils.ts +11 -11
- package/src/{packetTrailer/worker/packetTrailer.worker.ts → frameMetadata/worker/frameMetadata.worker.ts} +5 -5
- package/src/{packetTrailer → frameMetadata}/worker/tsconfig.json +4 -1
- package/src/index.ts +13 -2
- package/src/options.ts +9 -4
- package/src/room/PCTransport.ts +4 -0
- package/src/room/PCTransportManager.ts +4 -0
- package/src/room/RTCEngine.test.ts +143 -9
- package/src/room/RTCEngine.ts +111 -31
- package/src/room/Room.ts +10 -10
- package/src/room/participant/LocalParticipant.test.ts +19 -19
- package/src/room/participant/LocalParticipant.ts +21 -16
- package/src/room/participant/publishUtils.test.ts +6 -0
- package/src/room/participant/publishUtils.ts +4 -1
- package/src/room/rpc/client/RpcClientManager.ts +1 -1
- package/src/room/rpc/server/RpcServerManager.ts +1 -1
- package/src/room/token-source/TokenSource.ts +9 -23
- package/src/room/token-source/types.ts +1 -0
- package/src/room/token-source/utils.ts +1 -0
- package/src/room/track/{PacketTrailerExtractor.ts → FrameMetadataExtractor.ts} +8 -8
- package/src/room/track/RemoteVideoTrack.ts +7 -11
- package/src/room/track/options.ts +19 -5
- package/dist/livekit-client.pt.worker.js +0 -2
- package/dist/livekit-client.pt.worker.mjs.map +0 -1
- package/dist/src/packetTrailer/packetTrailer.d.ts.map +0 -1
- package/dist/src/packetTrailer/types.d.ts.map +0 -1
- package/dist/src/packetTrailer/utils.d.ts +0 -9
- package/dist/src/packetTrailer/worker/packetTrailer.worker.d.ts +0 -2
- package/dist/src/packetTrailer/worker/packetTrailer.worker.d.ts.map +0 -1
- package/dist/src/room/track/PacketTrailerExtractor.d.ts +0 -19
- package/dist/src/room/track/PacketTrailerExtractor.d.ts.map +0 -1
- package/dist/ts4.2/packetTrailer/utils.d.ts +0 -9
- package/dist/ts4.2/packetTrailer/worker/packetTrailer.worker.d.ts +0 -2
- package/dist/ts4.2/room/track/PacketTrailerExtractor.d.ts +0 -19
|
@@ -5939,7 +5939,7 @@ function isWeb() {
|
|
|
5939
5939
|
return typeof document !== 'undefined';
|
|
5940
5940
|
}
|
|
5941
5941
|
|
|
5942
|
-
function
|
|
5942
|
+
function hasFrameMetadataPublishOptions(options) {
|
|
5943
5943
|
return !!((options === null || options === void 0 ? void 0 : options.timestamp) || (options === null || options === void 0 ? void 0 : options.frameId));
|
|
5944
5944
|
}
|
|
5945
5945
|
|
|
@@ -5977,7 +5977,7 @@ function appendPacketTrailer(data, userTimestamp, frameId) {
|
|
|
5977
5977
|
return result;
|
|
5978
5978
|
}
|
|
5979
5979
|
function appendPacketTrailerToEncodedFrame(frame, options, frameId) {
|
|
5980
|
-
if (!
|
|
5980
|
+
if (!hasFrameMetadataPublishOptions(options) || frame.data.byteLength === 0) {
|
|
5981
5981
|
return false;
|
|
5982
5982
|
}
|
|
5983
5983
|
const userTimestamp = (options === null || options === void 0 ? void 0 : options.timestamp) ? BigInt(Date.now()) * BigInt(1000) : BigInt(0);
|
|
@@ -6463,8 +6463,8 @@ class FrameCryptor extends BaseFrameCryptor {
|
|
|
6463
6463
|
* When false, we skip the per-frame trailer extraction path entirely
|
|
6464
6464
|
* on decode to avoid unnecessary work on tracks that don't use it.
|
|
6465
6465
|
*/
|
|
6466
|
-
this.
|
|
6467
|
-
this.
|
|
6466
|
+
this.hasFrameMetadata = false;
|
|
6467
|
+
this.frameMetadataFrameId = 0;
|
|
6468
6468
|
/**
|
|
6469
6469
|
* Throttling mechanism for decryption errors to prevent memory leaks
|
|
6470
6470
|
*/
|
|
@@ -6556,14 +6556,14 @@ class FrameCryptor extends BaseFrameCryptor {
|
|
|
6556
6556
|
* trailer data. When false, {@link decodeFunction} skips the per-frame
|
|
6557
6557
|
* trailer extraction branch entirely.
|
|
6558
6558
|
*/
|
|
6559
|
-
|
|
6560
|
-
this.
|
|
6559
|
+
setHasFrameMetadata(hasFrameMetadata) {
|
|
6560
|
+
this.hasFrameMetadata = hasFrameMetadata;
|
|
6561
6561
|
}
|
|
6562
|
-
|
|
6563
|
-
this.
|
|
6564
|
-
this.
|
|
6562
|
+
setFrameMetadataOpts(frameMetadata) {
|
|
6563
|
+
this.frameMetadataOpts = frameMetadata;
|
|
6564
|
+
this.frameMetadataFrameId = 0;
|
|
6565
6565
|
}
|
|
6566
|
-
setupTransform(operation, readable, writable, trackId, isReuse, codec,
|
|
6566
|
+
setupTransform(operation, readable, writable, trackId, isReuse, codec, frameMetadata) {
|
|
6567
6567
|
if (codec) {
|
|
6568
6568
|
workerLogger.info('setting codec on cryptor to', {
|
|
6569
6569
|
codec
|
|
@@ -6571,7 +6571,7 @@ class FrameCryptor extends BaseFrameCryptor {
|
|
|
6571
6571
|
this.videoCodec = codec;
|
|
6572
6572
|
}
|
|
6573
6573
|
if (operation === 'encode') {
|
|
6574
|
-
this.
|
|
6574
|
+
this.setFrameMetadataOpts(frameMetadata);
|
|
6575
6575
|
}
|
|
6576
6576
|
workerLogger.debug('Setting up frame cryptor transform', Object.assign({
|
|
6577
6577
|
operation,
|
|
@@ -6712,7 +6712,7 @@ class FrameCryptor extends BaseFrameCryptor {
|
|
|
6712
6712
|
return controller.enqueue(encodedFrame);
|
|
6713
6713
|
}
|
|
6714
6714
|
if (!this.isEnabled()) {
|
|
6715
|
-
this.
|
|
6715
|
+
this.appendFrameMetadata(encodedFrame);
|
|
6716
6716
|
return controller.enqueue(encodedFrame);
|
|
6717
6717
|
}
|
|
6718
6718
|
const keySet = this.keys.getKeySet();
|
|
@@ -6755,7 +6755,7 @@ class FrameCryptor extends BaseFrameCryptor {
|
|
|
6755
6755
|
newData.set(frameHeader);
|
|
6756
6756
|
newData.set(newDataWithoutHeader, frameHeader.byteLength);
|
|
6757
6757
|
encodedFrame.data = newData.buffer;
|
|
6758
|
-
this.
|
|
6758
|
+
this.appendFrameMetadata(encodedFrame);
|
|
6759
6759
|
return controller.enqueue(encodedFrame);
|
|
6760
6760
|
} catch (e) {
|
|
6761
6761
|
// TODO: surface this to the app.
|
|
@@ -6767,15 +6767,15 @@ class FrameCryptor extends BaseFrameCryptor {
|
|
|
6767
6767
|
}
|
|
6768
6768
|
});
|
|
6769
6769
|
}
|
|
6770
|
-
|
|
6770
|
+
appendFrameMetadata(encodedFrame) {
|
|
6771
6771
|
var _a;
|
|
6772
|
-
if (!
|
|
6772
|
+
if (!hasFrameMetadataPublishOptions(this.frameMetadataOpts) || !isVideoFrame(encodedFrame)) {
|
|
6773
6773
|
return;
|
|
6774
6774
|
}
|
|
6775
|
-
if ((_a = this.
|
|
6776
|
-
this.
|
|
6775
|
+
if ((_a = this.frameMetadataOpts) === null || _a === void 0 ? void 0 : _a.frameId) {
|
|
6776
|
+
this.frameMetadataFrameId = this.frameMetadataFrameId === 0xffffffff ? 1 : this.frameMetadataFrameId + 1;
|
|
6777
6777
|
}
|
|
6778
|
-
appendPacketTrailerToEncodedFrame(encodedFrame, this.
|
|
6778
|
+
appendPacketTrailerToEncodedFrame(encodedFrame, this.frameMetadataOpts, this.frameMetadataFrameId);
|
|
6779
6779
|
}
|
|
6780
6780
|
/**
|
|
6781
6781
|
* Function that will be injected in a stream and will decrypt the given encoded frames.
|
|
@@ -6785,7 +6785,7 @@ class FrameCryptor extends BaseFrameCryptor {
|
|
|
6785
6785
|
*/
|
|
6786
6786
|
decodeFunction(encodedFrame, controller) {
|
|
6787
6787
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6788
|
-
if (this.
|
|
6788
|
+
if (this.hasFrameMetadata && isVideoFrame(encodedFrame)) {
|
|
6789
6789
|
try {
|
|
6790
6790
|
const ptResult = processPacketTrailer(encodedFrame, this.trackId);
|
|
6791
6791
|
if (ptResult.data) {
|
|
@@ -7305,12 +7305,12 @@ onmessage = ev => {
|
|
|
7305
7305
|
break;
|
|
7306
7306
|
case 'decode':
|
|
7307
7307
|
let cryptor = getTrackCryptor(data.participantIdentity, data.trackId);
|
|
7308
|
-
cryptor.
|
|
7308
|
+
cryptor.setHasFrameMetadata(data.hasPacketTrailer);
|
|
7309
7309
|
cryptor.setupTransform(kind, data.readableStream, data.writableStream, data.trackId, data.isReuse, data.codec);
|
|
7310
7310
|
break;
|
|
7311
7311
|
case 'encode':
|
|
7312
7312
|
let pubCryptor = getTrackCryptor(data.participantIdentity, data.trackId);
|
|
7313
|
-
pubCryptor.
|
|
7313
|
+
pubCryptor.setHasFrameMetadata(data.hasPacketTrailer);
|
|
7314
7314
|
pubCryptor.setupTransform(kind, data.readableStream, data.writableStream, data.trackId, data.isReuse, data.codec, data.packetTrailer);
|
|
7315
7315
|
break;
|
|
7316
7316
|
case 'encryptDataRequest':
|
|
@@ -7376,7 +7376,7 @@ onmessage = ev => {
|
|
|
7376
7376
|
case 'updateCodec':
|
|
7377
7377
|
const trackCryptor = getTrackCryptor(data.participantIdentity, data.trackId);
|
|
7378
7378
|
trackCryptor.setVideoCodec(data.codec);
|
|
7379
|
-
trackCryptor.
|
|
7379
|
+
trackCryptor.setHasFrameMetadata(data.hasPacketTrailer);
|
|
7380
7380
|
workerLogger.info('updated codec', {
|
|
7381
7381
|
participantIdentity: data.participantIdentity,
|
|
7382
7382
|
trackId: data.trackId,
|
|
@@ -7548,7 +7548,7 @@ if (self.RTCTransformEvent) {
|
|
|
7548
7548
|
hasPacketTrailer = options.hasPacketTrailer;
|
|
7549
7549
|
messageQueue.run(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
7550
7550
|
const cryptor = getTrackCryptor(participantIdentity, trackId);
|
|
7551
|
-
cryptor.
|
|
7551
|
+
cryptor.setHasFrameMetadata(hasPacketTrailer);
|
|
7552
7552
|
workerLogger.debug('onrtctransform setup', {
|
|
7553
7553
|
participantIdentity,
|
|
7554
7554
|
trackId,
|