From 1616e1850a8c93a7fafca74990bd6d6803f17825 Mon Sep 17 00:00:00 2001 From: lukasIO Date: Fri, 20 Jun 2025 17:52:51 +0200 Subject: [PATCH 01/10] override minimatch version --- package.json | 10 ++++++-- pnpm-lock.yaml | 65 +++++++++++++++++++------------------------------- 2 files changed, 33 insertions(+), 42 deletions(-) diff --git a/package.json b/package.json index 4ed162ee..627cabce 100644 --- a/package.json +++ b/package.json @@ -11,5 +11,11 @@ "@changesets/cli": "^2.29.4", "@livekit/changesets-changelog-github": "^0.0.4", "esbuild": "^0.25.4" - } -} \ No newline at end of file + }, + "pnpm": { + "overrides": { + "minimatch": "10.0.3" + } + }, + "packageManager": "pnpm@9.15.9+sha512.68046141893c66fad01c079231128e9afb89ef87e2691d69e4d40eee228988295fd4682181bae55b58418c3a253bde65a505ec7c5f9403ece5cc3cd37dcf2531" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5d678c16..c9619314 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + minimatch: 10.0.3 + importers: .: @@ -632,6 +635,14 @@ packages: cpu: [x64] os: [win32] + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.0': + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -777,9 +788,6 @@ packages: peerDependencies: postcss: ^8.1.0 - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - better-path-resolve@1.0.0: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} @@ -787,12 +795,6 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -843,9 +845,6 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -1219,12 +1218,9 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + minimatch@10.0.3: + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} mkdist@1.6.0: resolution: {integrity: sha512-nD7J/mx33Lwm4Q4qoPgRBVA9JQNKgyE7fLo5vdPWVDdjz96pXglGERp/fRnGPCTB37Kykfxs5bDdXa9BWOT9nw==} @@ -2220,6 +2216,12 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.0': + dependencies: + '@isaacs/balanced-match': 4.0.1 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -2362,23 +2364,12 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 - balanced-match@1.0.2: {} - better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 boolbase@1.0.0: {} - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.1: - dependencies: - balanced-match: 1.0.2 - braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -2426,8 +2417,6 @@ snapshots: commondir@1.0.1: {} - concat-map@0.0.1: {} - confbox@0.1.8: {} consola@3.2.3: {} @@ -2677,7 +2666,7 @@ snapshots: filelist@1.0.4: dependencies: - minimatch: 5.1.6 + minimatch: 10.0.3 fill-range@7.1.1: dependencies: @@ -2730,7 +2719,7 @@ snapshots: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.3 - minimatch: 5.1.6 + minimatch: 10.0.3 once: 1.4.0 globals@11.12.0: {} @@ -2808,7 +2797,7 @@ snapshots: async: 3.2.6 chalk: 4.1.2 filelist: 1.0.4 - minimatch: 3.1.2 + minimatch: 10.0.3 jiti@1.21.6: {} @@ -2860,13 +2849,9 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@5.1.6: + minimatch@10.0.3: dependencies: - brace-expansion: 2.0.1 + '@isaacs/brace-expansion': 5.0.0 mkdist@1.6.0(typescript@5.8.3): dependencies: From 3bf41eadec95b7098d2ebea885d3d91b6fe503b3 Mon Sep 17 00:00:00 2001 From: lukasIO Date: Wed, 9 Jul 2025 16:01:41 +0200 Subject: [PATCH 02/10] Add encryption metadata for data packets --- protobufs/livekit_models.proto | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/protobufs/livekit_models.proto b/protobufs/livekit_models.proto index f0cff9a4..7387b3e2 100644 --- a/protobufs/livekit_models.proto +++ b/protobufs/livekit_models.proto @@ -315,8 +315,9 @@ message UserPacket { optional uint64 end_time = 10; // added by SDK to enable de-duping of messages, for INTERNAL USE ONLY bytes nonce = 11; - - // NEXT_ID: 12 + Encryption.Type encryption_type = 12; // defaults to NONE + bytes iv = 13; + // NEXT_ID: 14 } message SipDTMF { @@ -357,6 +358,8 @@ message RpcRequest { string payload = 3; uint32 response_timeout_ms = 4; uint32 version = 5; + Encryption.Type encryption_type = 6; // defaults to NONE + bytes iv = 7; } message RpcAck { @@ -369,6 +372,8 @@ message RpcResponse { string payload = 2; RpcError error = 3; } + Encryption.Type encryption_type = 4; // defaults to NONE + bytes iv = 5; } message RpcError { From b2000918ebd0de055cd3944394b554bac41a16a0 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 9 Jul 2025 14:03:05 +0000 Subject: [PATCH 03/10] generated protobuf --- livekit/livekit_models.pb.go | 159 ++++++++++++++++++++++++----------- 1 file changed, 108 insertions(+), 51 deletions(-) diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 8d5af8b2..46327da5 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -2682,9 +2682,11 @@ type UserPacket struct { StartTime *uint64 `protobuf:"varint,9,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` EndTime *uint64 `protobuf:"varint,10,opt,name=end_time,json=endTime,proto3,oneof" json:"end_time,omitempty"` // added by SDK to enable de-duping of messages, for INTERNAL USE ONLY - Nonce []byte `protobuf:"bytes,11,opt,name=nonce,proto3" json:"nonce,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + Nonce []byte `protobuf:"bytes,11,opt,name=nonce,proto3" json:"nonce,omitempty"` + EncryptionType Encryption_Type `protobuf:"varint,12,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE + Iv []byte `protobuf:"bytes,13,opt,name=iv,proto3" json:"iv,omitempty"` // NEXT_ID: 14 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UserPacket) Reset() { @@ -2791,6 +2793,20 @@ func (x *UserPacket) GetNonce() []byte { return nil } +func (x *UserPacket) GetEncryptionType() Encryption_Type { + if x != nil { + return x.EncryptionType + } + return Encryption_NONE +} + +func (x *UserPacket) GetIv() []byte { + if x != nil { + return x.Iv + } + return nil +} + type SipDTMF struct { state protoimpl.MessageState `protogen:"open.v1"` Code uint32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` @@ -3079,6 +3095,8 @@ type RpcRequest struct { Payload string `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` ResponseTimeoutMs uint32 `protobuf:"varint,4,opt,name=response_timeout_ms,json=responseTimeoutMs,proto3" json:"response_timeout_ms,omitempty"` Version uint32 `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"` + EncryptionType Encryption_Type `protobuf:"varint,6,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE + Iv []byte `protobuf:"bytes,7,opt,name=iv,proto3" json:"iv,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3148,6 +3166,20 @@ func (x *RpcRequest) GetVersion() uint32 { return 0 } +func (x *RpcRequest) GetEncryptionType() Encryption_Type { + if x != nil { + return x.EncryptionType + } + return Encryption_NONE +} + +func (x *RpcRequest) GetIv() []byte { + if x != nil { + return x.Iv + } + return nil +} + type RpcAck struct { state protoimpl.MessageState `protogen:"open.v1"` RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` @@ -3199,9 +3231,11 @@ type RpcResponse struct { // // *RpcResponse_Payload // *RpcResponse_Error - Value isRpcResponse_Value `protobuf_oneof:"value"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + Value isRpcResponse_Value `protobuf_oneof:"value"` + EncryptionType Encryption_Type `protobuf:"varint,4,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE + Iv []byte `protobuf:"bytes,5,opt,name=iv,proto3" json:"iv,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RpcResponse) Reset() { @@ -3266,6 +3300,20 @@ func (x *RpcResponse) GetError() *RpcError { return nil } +func (x *RpcResponse) GetEncryptionType() Encryption_Type { + if x != nil { + return x.EncryptionType + } + return Encryption_NONE +} + +func (x *RpcResponse) GetIv() []byte { + if x != nil { + return x.Iv + } + return nil +} + type isRpcResponse_Value interface { isRpcResponse_Value() } @@ -5393,7 +5441,7 @@ const file_livekit_models_proto_rawDesc = "" + "\vSpeakerInfo\x12\x10\n" + "\x03sid\x18\x01 \x01(\tR\x03sid\x12\x14\n" + "\x05level\x18\x02 \x01(\x02R\x05level\x12\x16\n" + - "\x06active\x18\x03 \x01(\bR\x06active\"\xab\x03\n" + + "\x06active\x18\x03 \x01(\bR\x06active\"\xfe\x03\n" + "\n" + "UserPacket\x12+\n" + "\x0fparticipant_sid\x18\x01 \x01(\tB\x02\x18\x01R\x0eparticipantSid\x125\n" + @@ -5407,7 +5455,9 @@ const file_livekit_models_proto_rawDesc = "" + "start_time\x18\t \x01(\x04H\x02R\tstartTime\x88\x01\x01\x12\x1e\n" + "\bend_time\x18\n" + " \x01(\x04H\x03R\aendTime\x88\x01\x01\x12\x14\n" + - "\x05nonce\x18\v \x01(\fR\x05nonceB\b\n" + + "\x05nonce\x18\v \x01(\fR\x05nonce\x12A\n" + + "\x0fencryption_type\x18\f \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + + "\x02iv\x18\r \x01(\fR\x02ivB\b\n" + "\x06_topicB\x05\n" + "\x03_idB\r\n" + "\v_start_timeB\v\n" + @@ -5434,22 +5484,26 @@ const file_livekit_models_proto_rawDesc = "" + "\amessage\x18\x04 \x01(\tR\amessage\x12\x18\n" + "\adeleted\x18\x05 \x01(\bR\adeleted\x12\x1c\n" + "\tgenerated\x18\x06 \x01(\bR\tgeneratedB\x11\n" + - "\x0f_edit_timestamp\"\x98\x01\n" + + "\x0f_edit_timestamp\"\xeb\x01\n" + "\n" + "RpcRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" + "\x06method\x18\x02 \x01(\tR\x06method\x12\x18\n" + "\apayload\x18\x03 \x01(\tR\apayload\x12.\n" + "\x13response_timeout_ms\x18\x04 \x01(\rR\x11responseTimeoutMs\x12\x18\n" + - "\aversion\x18\x05 \x01(\rR\aversion\"'\n" + + "\aversion\x18\x05 \x01(\rR\aversion\x12A\n" + + "\x0fencryption_type\x18\x06 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + + "\x02iv\x18\a \x01(\fR\x02iv\"'\n" + "\x06RpcAck\x12\x1d\n" + "\n" + - "request_id\x18\x01 \x01(\tR\trequestId\"|\n" + + "request_id\x18\x01 \x01(\tR\trequestId\"\xcf\x01\n" + "\vRpcResponse\x12\x1d\n" + "\n" + "request_id\x18\x01 \x01(\tR\trequestId\x12\x1a\n" + "\apayload\x18\x02 \x01(\tH\x00R\apayload\x12)\n" + - "\x05error\x18\x03 \x01(\v2\x11.livekit.RpcErrorH\x00R\x05errorB\a\n" + + "\x05error\x18\x03 \x01(\v2\x11.livekit.RpcErrorH\x00R\x05error\x12A\n" + + "\x0fencryption_type\x18\x04 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + + "\x02iv\x18\x05 \x01(\fR\x02ivB\a\n" + "\x05value\"L\n" + "\bRpcError\x12\x12\n" + "\x04code\x18\x01 \x01(\rR\x04code\x12\x18\n" + @@ -5903,45 +5957,48 @@ var file_livekit_models_proto_depIdxs = []int32{ 64, // 31: livekit.DataPacket.stream_chunk:type_name -> livekit.DataStream.Chunk 65, // 32: livekit.DataPacket.stream_trailer:type_name -> livekit.DataStream.Trailer 34, // 33: livekit.ActiveSpeakerUpdate.speakers:type_name -> livekit.SpeakerInfo - 38, // 34: livekit.Transcription.segments:type_name -> livekit.TranscriptionSegment - 43, // 35: livekit.RpcResponse.error:type_name -> livekit.RpcError - 18, // 36: livekit.ServerInfo.edition:type_name -> livekit.ServerInfo.Edition - 19, // 37: livekit.ClientInfo.sdk:type_name -> livekit.ClientInfo.SDK - 48, // 38: livekit.ClientConfiguration.video:type_name -> livekit.VideoConfiguration - 48, // 39: livekit.ClientConfiguration.screen:type_name -> livekit.VideoConfiguration - 8, // 40: livekit.ClientConfiguration.resume_connection:type_name -> livekit.ClientConfigSetting - 49, // 41: livekit.ClientConfiguration.disabled_codecs:type_name -> livekit.DisabledCodecs - 8, // 42: livekit.ClientConfiguration.force_relay:type_name -> livekit.ClientConfigSetting - 8, // 43: livekit.VideoConfiguration.hardware_encoder:type_name -> livekit.ClientConfigSetting - 24, // 44: livekit.DisabledCodecs.codecs:type_name -> livekit.Codec - 24, // 45: livekit.DisabledCodecs.publish:type_name -> livekit.Codec - 69, // 46: livekit.RTPDrift.start_time:type_name -> google.protobuf.Timestamp - 69, // 47: livekit.RTPDrift.end_time:type_name -> google.protobuf.Timestamp - 69, // 48: livekit.RTPStats.start_time:type_name -> google.protobuf.Timestamp - 69, // 49: livekit.RTPStats.end_time:type_name -> google.protobuf.Timestamp - 60, // 50: livekit.RTPStats.gap_histogram:type_name -> livekit.RTPStats.GapHistogramEntry - 69, // 51: livekit.RTPStats.last_pli:type_name -> google.protobuf.Timestamp - 69, // 52: livekit.RTPStats.last_fir:type_name -> google.protobuf.Timestamp - 69, // 53: livekit.RTPStats.last_key_frame:type_name -> google.protobuf.Timestamp - 69, // 54: livekit.RTPStats.last_layer_lock_pli:type_name -> google.protobuf.Timestamp - 50, // 55: livekit.RTPStats.packet_drift:type_name -> livekit.RTPDrift - 50, // 56: livekit.RTPStats.ntp_report_drift:type_name -> livekit.RTPDrift - 50, // 57: livekit.RTPStats.rebased_report_drift:type_name -> livekit.RTPDrift - 50, // 58: livekit.RTPStats.received_report_drift:type_name -> livekit.RTPDrift - 54, // 59: livekit.RTPForwarderState.rtp_munger:type_name -> livekit.RTPMungerState - 55, // 60: livekit.RTPForwarderState.vp8_munger:type_name -> livekit.VP8MungerState - 52, // 61: livekit.RTPForwarderState.sender_report_state:type_name -> livekit.RTCPSenderReportState - 20, // 62: livekit.DataStream.TextHeader.operation_type:type_name -> livekit.DataStream.OperationType - 16, // 63: livekit.DataStream.Header.encryption_type:type_name -> livekit.Encryption.Type - 66, // 64: livekit.DataStream.Header.attributes:type_name -> livekit.DataStream.Header.AttributesEntry - 61, // 65: livekit.DataStream.Header.text_header:type_name -> livekit.DataStream.TextHeader - 62, // 66: livekit.DataStream.Header.byte_header:type_name -> livekit.DataStream.ByteHeader - 67, // 67: livekit.DataStream.Trailer.attributes:type_name -> livekit.DataStream.Trailer.AttributesEntry - 68, // [68:68] is the sub-list for method output_type - 68, // [68:68] is the sub-list for method input_type - 68, // [68:68] is the sub-list for extension type_name - 68, // [68:68] is the sub-list for extension extendee - 0, // [0:68] is the sub-list for field type_name + 16, // 34: livekit.UserPacket.encryption_type:type_name -> livekit.Encryption.Type + 38, // 35: livekit.Transcription.segments:type_name -> livekit.TranscriptionSegment + 16, // 36: livekit.RpcRequest.encryption_type:type_name -> livekit.Encryption.Type + 43, // 37: livekit.RpcResponse.error:type_name -> livekit.RpcError + 16, // 38: livekit.RpcResponse.encryption_type:type_name -> livekit.Encryption.Type + 18, // 39: livekit.ServerInfo.edition:type_name -> livekit.ServerInfo.Edition + 19, // 40: livekit.ClientInfo.sdk:type_name -> livekit.ClientInfo.SDK + 48, // 41: livekit.ClientConfiguration.video:type_name -> livekit.VideoConfiguration + 48, // 42: livekit.ClientConfiguration.screen:type_name -> livekit.VideoConfiguration + 8, // 43: livekit.ClientConfiguration.resume_connection:type_name -> livekit.ClientConfigSetting + 49, // 44: livekit.ClientConfiguration.disabled_codecs:type_name -> livekit.DisabledCodecs + 8, // 45: livekit.ClientConfiguration.force_relay:type_name -> livekit.ClientConfigSetting + 8, // 46: livekit.VideoConfiguration.hardware_encoder:type_name -> livekit.ClientConfigSetting + 24, // 47: livekit.DisabledCodecs.codecs:type_name -> livekit.Codec + 24, // 48: livekit.DisabledCodecs.publish:type_name -> livekit.Codec + 69, // 49: livekit.RTPDrift.start_time:type_name -> google.protobuf.Timestamp + 69, // 50: livekit.RTPDrift.end_time:type_name -> google.protobuf.Timestamp + 69, // 51: livekit.RTPStats.start_time:type_name -> google.protobuf.Timestamp + 69, // 52: livekit.RTPStats.end_time:type_name -> google.protobuf.Timestamp + 60, // 53: livekit.RTPStats.gap_histogram:type_name -> livekit.RTPStats.GapHistogramEntry + 69, // 54: livekit.RTPStats.last_pli:type_name -> google.protobuf.Timestamp + 69, // 55: livekit.RTPStats.last_fir:type_name -> google.protobuf.Timestamp + 69, // 56: livekit.RTPStats.last_key_frame:type_name -> google.protobuf.Timestamp + 69, // 57: livekit.RTPStats.last_layer_lock_pli:type_name -> google.protobuf.Timestamp + 50, // 58: livekit.RTPStats.packet_drift:type_name -> livekit.RTPDrift + 50, // 59: livekit.RTPStats.ntp_report_drift:type_name -> livekit.RTPDrift + 50, // 60: livekit.RTPStats.rebased_report_drift:type_name -> livekit.RTPDrift + 50, // 61: livekit.RTPStats.received_report_drift:type_name -> livekit.RTPDrift + 54, // 62: livekit.RTPForwarderState.rtp_munger:type_name -> livekit.RTPMungerState + 55, // 63: livekit.RTPForwarderState.vp8_munger:type_name -> livekit.VP8MungerState + 52, // 64: livekit.RTPForwarderState.sender_report_state:type_name -> livekit.RTCPSenderReportState + 20, // 65: livekit.DataStream.TextHeader.operation_type:type_name -> livekit.DataStream.OperationType + 16, // 66: livekit.DataStream.Header.encryption_type:type_name -> livekit.Encryption.Type + 66, // 67: livekit.DataStream.Header.attributes:type_name -> livekit.DataStream.Header.AttributesEntry + 61, // 68: livekit.DataStream.Header.text_header:type_name -> livekit.DataStream.TextHeader + 62, // 69: livekit.DataStream.Header.byte_header:type_name -> livekit.DataStream.ByteHeader + 67, // 70: livekit.DataStream.Trailer.attributes:type_name -> livekit.DataStream.Trailer.AttributesEntry + 71, // [71:71] is the sub-list for method output_type + 71, // [71:71] is the sub-list for method input_type + 71, // [71:71] is the sub-list for extension type_name + 71, // [71:71] is the sub-list for extension extendee + 0, // [0:71] is the sub-list for field type_name } func init() { file_livekit_models_proto_init() } From d81a8ce5cd1ae1eb94bb5883c658ed450c227353 Mon Sep 17 00:00:00 2001 From: lukasIO Date: Fri, 11 Jul 2025 11:33:36 +0200 Subject: [PATCH 04/10] add key index --- protobufs/livekit_models.proto | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/protobufs/livekit_models.proto b/protobufs/livekit_models.proto index 7387b3e2..f944d03d 100644 --- a/protobufs/livekit_models.proto +++ b/protobufs/livekit_models.proto @@ -317,7 +317,8 @@ message UserPacket { bytes nonce = 11; Encryption.Type encryption_type = 12; // defaults to NONE bytes iv = 13; - // NEXT_ID: 14 + uint32 key_index = 14; + // NEXT_ID: 15 } message SipDTMF { @@ -360,6 +361,7 @@ message RpcRequest { uint32 version = 5; Encryption.Type encryption_type = 6; // defaults to NONE bytes iv = 7; + uint32 key_index = 8; } message RpcAck { @@ -374,6 +376,7 @@ message RpcResponse { } Encryption.Type encryption_type = 4; // defaults to NONE bytes iv = 5; + uint32 key_index = 6; } message RpcError { @@ -707,6 +710,7 @@ message DataStream { bytes content = 3; // content as binary (bytes) int32 version = 4; // a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced optional bytes iv = 5; // optional, initialization vector for AES-GCM encryption + uint32 key_index = 6; // key index for AES-GCM encryption } message Trailer { From cb78833a9f92c2ea7577c0cdb81a00cb31e8a992 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 09:34:36 +0000 Subject: [PATCH 05/10] generated protobuf --- livekit/livekit_models.pb.go | 62 ++++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 13 deletions(-) diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 46327da5..e29d6324 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -2684,7 +2684,8 @@ type UserPacket struct { // added by SDK to enable de-duping of messages, for INTERNAL USE ONLY Nonce []byte `protobuf:"bytes,11,opt,name=nonce,proto3" json:"nonce,omitempty"` EncryptionType Encryption_Type `protobuf:"varint,12,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE - Iv []byte `protobuf:"bytes,13,opt,name=iv,proto3" json:"iv,omitempty"` // NEXT_ID: 14 + Iv []byte `protobuf:"bytes,13,opt,name=iv,proto3" json:"iv,omitempty"` + KeyIndex uint32 `protobuf:"varint,14,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` // NEXT_ID: 15 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2807,6 +2808,13 @@ func (x *UserPacket) GetIv() []byte { return nil } +func (x *UserPacket) GetKeyIndex() uint32 { + if x != nil { + return x.KeyIndex + } + return 0 +} + type SipDTMF struct { state protoimpl.MessageState `protogen:"open.v1"` Code uint32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` @@ -3097,6 +3105,7 @@ type RpcRequest struct { Version uint32 `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"` EncryptionType Encryption_Type `protobuf:"varint,6,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE Iv []byte `protobuf:"bytes,7,opt,name=iv,proto3" json:"iv,omitempty"` + KeyIndex uint32 `protobuf:"varint,8,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3180,6 +3189,13 @@ func (x *RpcRequest) GetIv() []byte { return nil } +func (x *RpcRequest) GetKeyIndex() uint32 { + if x != nil { + return x.KeyIndex + } + return 0 +} + type RpcAck struct { state protoimpl.MessageState `protogen:"open.v1"` RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` @@ -3234,6 +3250,7 @@ type RpcResponse struct { Value isRpcResponse_Value `protobuf_oneof:"value"` EncryptionType Encryption_Type `protobuf:"varint,4,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE Iv []byte `protobuf:"bytes,5,opt,name=iv,proto3" json:"iv,omitempty"` + KeyIndex uint32 `protobuf:"varint,6,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3314,6 +3331,13 @@ func (x *RpcResponse) GetIv() []byte { return nil } +func (x *RpcResponse) GetKeyIndex() uint32 { + if x != nil { + return x.KeyIndex + } + return 0 +} + type isRpcResponse_Value interface { isRpcResponse_Value() } @@ -5141,9 +5165,10 @@ type DataStream_Chunk struct { state protoimpl.MessageState `protogen:"open.v1"` StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // unique identifier for this data stream to map it to the correct header ChunkIndex uint64 `protobuf:"varint,2,opt,name=chunk_index,json=chunkIndex,proto3" json:"chunk_index,omitempty"` - Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` // content as binary (bytes) - Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` // a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced - Iv []byte `protobuf:"bytes,5,opt,name=iv,proto3,oneof" json:"iv,omitempty"` // optional, initialization vector for AES-GCM encryption + Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` // content as binary (bytes) + Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` // a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced + Iv []byte `protobuf:"bytes,5,opt,name=iv,proto3,oneof" json:"iv,omitempty"` // optional, initialization vector for AES-GCM encryption + KeyIndex uint32 `protobuf:"varint,6,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` // key index for AES-GCM encryption unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5213,6 +5238,13 @@ func (x *DataStream_Chunk) GetIv() []byte { return nil } +func (x *DataStream_Chunk) GetKeyIndex() uint32 { + if x != nil { + return x.KeyIndex + } + return 0 +} + type DataStream_Trailer struct { state protoimpl.MessageState `protogen:"open.v1"` StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // unique identifier for this data stream @@ -5441,7 +5473,7 @@ const file_livekit_models_proto_rawDesc = "" + "\vSpeakerInfo\x12\x10\n" + "\x03sid\x18\x01 \x01(\tR\x03sid\x12\x14\n" + "\x05level\x18\x02 \x01(\x02R\x05level\x12\x16\n" + - "\x06active\x18\x03 \x01(\bR\x06active\"\xfe\x03\n" + + "\x06active\x18\x03 \x01(\bR\x06active\"\x9b\x04\n" + "\n" + "UserPacket\x12+\n" + "\x0fparticipant_sid\x18\x01 \x01(\tB\x02\x18\x01R\x0eparticipantSid\x125\n" + @@ -5457,7 +5489,8 @@ const file_livekit_models_proto_rawDesc = "" + " \x01(\x04H\x03R\aendTime\x88\x01\x01\x12\x14\n" + "\x05nonce\x18\v \x01(\fR\x05nonce\x12A\n" + "\x0fencryption_type\x18\f \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + - "\x02iv\x18\r \x01(\fR\x02ivB\b\n" + + "\x02iv\x18\r \x01(\fR\x02iv\x12\x1b\n" + + "\tkey_index\x18\x0e \x01(\rR\bkeyIndexB\b\n" + "\x06_topicB\x05\n" + "\x03_idB\r\n" + "\v_start_timeB\v\n" + @@ -5484,7 +5517,7 @@ const file_livekit_models_proto_rawDesc = "" + "\amessage\x18\x04 \x01(\tR\amessage\x12\x18\n" + "\adeleted\x18\x05 \x01(\bR\adeleted\x12\x1c\n" + "\tgenerated\x18\x06 \x01(\bR\tgeneratedB\x11\n" + - "\x0f_edit_timestamp\"\xeb\x01\n" + + "\x0f_edit_timestamp\"\x88\x02\n" + "\n" + "RpcRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" + @@ -5493,17 +5526,19 @@ const file_livekit_models_proto_rawDesc = "" + "\x13response_timeout_ms\x18\x04 \x01(\rR\x11responseTimeoutMs\x12\x18\n" + "\aversion\x18\x05 \x01(\rR\aversion\x12A\n" + "\x0fencryption_type\x18\x06 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + - "\x02iv\x18\a \x01(\fR\x02iv\"'\n" + + "\x02iv\x18\a \x01(\fR\x02iv\x12\x1b\n" + + "\tkey_index\x18\b \x01(\rR\bkeyIndex\"'\n" + "\x06RpcAck\x12\x1d\n" + "\n" + - "request_id\x18\x01 \x01(\tR\trequestId\"\xcf\x01\n" + + "request_id\x18\x01 \x01(\tR\trequestId\"\xec\x01\n" + "\vRpcResponse\x12\x1d\n" + "\n" + "request_id\x18\x01 \x01(\tR\trequestId\x12\x1a\n" + "\apayload\x18\x02 \x01(\tH\x00R\apayload\x12)\n" + "\x05error\x18\x03 \x01(\v2\x11.livekit.RpcErrorH\x00R\x05error\x12A\n" + "\x0fencryption_type\x18\x04 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + - "\x02iv\x18\x05 \x01(\fR\x02ivB\a\n" + + "\x02iv\x18\x05 \x01(\fR\x02iv\x12\x1b\n" + + "\tkey_index\x18\x06 \x01(\rR\bkeyIndexB\a\n" + "\x05value\"L\n" + "\bRpcError\x12\x12\n" + "\x04code\x18\x01 \x01(\rR\x04code\x12\x18\n" + @@ -5684,7 +5719,7 @@ const file_livekit_models_proto_rawDesc = "" + "\fTimedVersion\x12\x1d\n" + "\n" + "unix_micro\x18\x01 \x01(\x03R\tunixMicro\x12\x14\n" + - "\x05ticks\x18\x02 \x01(\x05R\x05ticks\"\xdc\t\n" + + "\x05ticks\x18\x02 \x01(\x05R\x05ticks\"\xf9\t\n" + "\n" + "DataStream\x1a\xeb\x01\n" + "\n" + @@ -5716,14 +5751,15 @@ const file_livekit_models_proto_rawDesc = "" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x10\n" + "\x0econtent_headerB\x0f\n" + - "\r_total_length\x1a\x95\x01\n" + + "\r_total_length\x1a\xb2\x01\n" + "\x05Chunk\x12\x1b\n" + "\tstream_id\x18\x01 \x01(\tR\bstreamId\x12\x1f\n" + "\vchunk_index\x18\x02 \x01(\x04R\n" + "chunkIndex\x12\x18\n" + "\acontent\x18\x03 \x01(\fR\acontent\x12\x18\n" + "\aversion\x18\x04 \x01(\x05R\aversion\x12\x13\n" + - "\x02iv\x18\x05 \x01(\fH\x00R\x02iv\x88\x01\x01B\x05\n" + + "\x02iv\x18\x05 \x01(\fH\x00R\x02iv\x88\x01\x01\x12\x1b\n" + + "\tkey_index\x18\x06 \x01(\rR\bkeyIndexB\x05\n" + "\x03_iv\x1a\xca\x01\n" + "\aTrailer\x12\x1b\n" + "\tstream_id\x18\x01 \x01(\tR\bstreamId\x12\x16\n" + From 329f58242d3109286dbb38c4535942adf3fb51fb Mon Sep 17 00:00:00 2001 From: lukasIO Date: Fri, 11 Jul 2025 12:40:36 +0200 Subject: [PATCH 06/10] encrypt envelope --- protobufs/livekit_models.proto | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/protobufs/livekit_models.proto b/protobufs/livekit_models.proto index f944d03d..cef7f048 100644 --- a/protobufs/livekit_models.proto +++ b/protobufs/livekit_models.proto @@ -281,7 +281,12 @@ message DataPacket { // sid of the user that sent the message string participant_sid = 17; - // NEXT_ID: 18 + Encryption.Type encryption_type = 18; // if encryption is set to other than NONE iv, key_index and encrypted_packet are expected to be set, too + bytes iv = 19; + uint32 key_index = 20; + bytes encrypted_packet = 21; + + // NEXT_ID: 22 } message ActiveSpeakerUpdate { @@ -315,9 +320,7 @@ message UserPacket { optional uint64 end_time = 10; // added by SDK to enable de-duping of messages, for INTERNAL USE ONLY bytes nonce = 11; - Encryption.Type encryption_type = 12; // defaults to NONE - bytes iv = 13; - uint32 key_index = 14; + // NEXT_ID: 15 } @@ -358,10 +361,7 @@ message RpcRequest { string method = 2; string payload = 3; uint32 response_timeout_ms = 4; - uint32 version = 5; - Encryption.Type encryption_type = 6; // defaults to NONE - bytes iv = 7; - uint32 key_index = 8; + uint32 version = 5; } message RpcAck { @@ -374,9 +374,6 @@ message RpcResponse { string payload = 2; RpcError error = 3; } - Encryption.Type encryption_type = 4; // defaults to NONE - bytes iv = 5; - uint32 key_index = 6; } message RpcError { @@ -694,7 +691,7 @@ message DataStream { string topic = 3; string mime_type = 4; optional uint64 total_length = 5; // only populated for finite streams, if it's a stream of unknown size this stays empty - Encryption.Type encryption_type = 7; // defaults to NONE + Encryption.Type encryption_type = 7 [deprecated=true]; // this is set on the DataPacket map attributes = 8; // user defined attributes map that can carry additional info // oneof to choose between specific header types @@ -709,8 +706,7 @@ message DataStream { uint64 chunk_index = 2; bytes content = 3; // content as binary (bytes) int32 version = 4; // a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced - optional bytes iv = 5; // optional, initialization vector for AES-GCM encryption - uint32 key_index = 6; // key index for AES-GCM encryption + optional bytes iv = 5 [deprecated=true]; // this is set on the DataPacket } message Trailer { From 63b075ba1a59a79b94a011797632625243391218 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 10:41:25 +0000 Subject: [PATCH 07/10] generated protobuf --- livekit/livekit_models.pb.go | 288 ++++++++++++++--------------------- 1 file changed, 118 insertions(+), 170 deletions(-) diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index e29d6324..ba5cacbb 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -2286,9 +2286,13 @@ type DataPacket struct { // sequence number of reliable packet Sequence uint32 `protobuf:"varint,16,opt,name=sequence,proto3" json:"sequence,omitempty"` // sid of the user that sent the message - ParticipantSid string `protobuf:"bytes,17,opt,name=participant_sid,json=participantSid,proto3" json:"participant_sid,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + ParticipantSid string `protobuf:"bytes,17,opt,name=participant_sid,json=participantSid,proto3" json:"participant_sid,omitempty"` + EncryptionType Encryption_Type `protobuf:"varint,18,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // if encryption is set to other than NONE iv, key_index and encrypted_packet are expected to be set, too + Iv []byte `protobuf:"bytes,19,opt,name=iv,proto3" json:"iv,omitempty"` + KeyIndex uint32 `protobuf:"varint,20,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` + EncryptedPacket []byte `protobuf:"bytes,21,opt,name=encrypted_packet,json=encryptedPacket,proto3" json:"encrypted_packet,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DataPacket) Reset() { @@ -2473,6 +2477,34 @@ func (x *DataPacket) GetParticipantSid() string { return "" } +func (x *DataPacket) GetEncryptionType() Encryption_Type { + if x != nil { + return x.EncryptionType + } + return Encryption_NONE +} + +func (x *DataPacket) GetIv() []byte { + if x != nil { + return x.Iv + } + return nil +} + +func (x *DataPacket) GetKeyIndex() uint32 { + if x != nil { + return x.KeyIndex + } + return 0 +} + +func (x *DataPacket) GetEncryptedPacket() []byte { + if x != nil { + return x.EncryptedPacket + } + return nil +} + type isDataPacket_Value interface { isDataPacket_Value() } @@ -2682,12 +2714,9 @@ type UserPacket struct { StartTime *uint64 `protobuf:"varint,9,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` EndTime *uint64 `protobuf:"varint,10,opt,name=end_time,json=endTime,proto3,oneof" json:"end_time,omitempty"` // added by SDK to enable de-duping of messages, for INTERNAL USE ONLY - Nonce []byte `protobuf:"bytes,11,opt,name=nonce,proto3" json:"nonce,omitempty"` - EncryptionType Encryption_Type `protobuf:"varint,12,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE - Iv []byte `protobuf:"bytes,13,opt,name=iv,proto3" json:"iv,omitempty"` - KeyIndex uint32 `protobuf:"varint,14,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` // NEXT_ID: 15 - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + Nonce []byte `protobuf:"bytes,11,opt,name=nonce,proto3" json:"nonce,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UserPacket) Reset() { @@ -2794,27 +2823,6 @@ func (x *UserPacket) GetNonce() []byte { return nil } -func (x *UserPacket) GetEncryptionType() Encryption_Type { - if x != nil { - return x.EncryptionType - } - return Encryption_NONE -} - -func (x *UserPacket) GetIv() []byte { - if x != nil { - return x.Iv - } - return nil -} - -func (x *UserPacket) GetKeyIndex() uint32 { - if x != nil { - return x.KeyIndex - } - return 0 -} - type SipDTMF struct { state protoimpl.MessageState `protogen:"open.v1"` Code uint32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` @@ -3103,9 +3111,6 @@ type RpcRequest struct { Payload string `protobuf:"bytes,3,opt,name=payload,proto3" json:"payload,omitempty"` ResponseTimeoutMs uint32 `protobuf:"varint,4,opt,name=response_timeout_ms,json=responseTimeoutMs,proto3" json:"response_timeout_ms,omitempty"` Version uint32 `protobuf:"varint,5,opt,name=version,proto3" json:"version,omitempty"` - EncryptionType Encryption_Type `protobuf:"varint,6,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE - Iv []byte `protobuf:"bytes,7,opt,name=iv,proto3" json:"iv,omitempty"` - KeyIndex uint32 `protobuf:"varint,8,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3175,27 +3180,6 @@ func (x *RpcRequest) GetVersion() uint32 { return 0 } -func (x *RpcRequest) GetEncryptionType() Encryption_Type { - if x != nil { - return x.EncryptionType - } - return Encryption_NONE -} - -func (x *RpcRequest) GetIv() []byte { - if x != nil { - return x.Iv - } - return nil -} - -func (x *RpcRequest) GetKeyIndex() uint32 { - if x != nil { - return x.KeyIndex - } - return 0 -} - type RpcAck struct { state protoimpl.MessageState `protogen:"open.v1"` RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` @@ -3247,12 +3231,9 @@ type RpcResponse struct { // // *RpcResponse_Payload // *RpcResponse_Error - Value isRpcResponse_Value `protobuf_oneof:"value"` - EncryptionType Encryption_Type `protobuf:"varint,4,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE - Iv []byte `protobuf:"bytes,5,opt,name=iv,proto3" json:"iv,omitempty"` - KeyIndex uint32 `protobuf:"varint,6,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + Value isRpcResponse_Value `protobuf_oneof:"value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RpcResponse) Reset() { @@ -3317,27 +3298,6 @@ func (x *RpcResponse) GetError() *RpcError { return nil } -func (x *RpcResponse) GetEncryptionType() Encryption_Type { - if x != nil { - return x.EncryptionType - } - return Encryption_NONE -} - -func (x *RpcResponse) GetIv() []byte { - if x != nil { - return x.Iv - } - return nil -} - -func (x *RpcResponse) GetKeyIndex() uint32 { - if x != nil { - return x.KeyIndex - } - return 0 -} - type isRpcResponse_Value interface { isRpcResponse_Value() } @@ -5022,14 +4982,15 @@ func (x *DataStream_ByteHeader) GetName() string { // main DataStream.Header that contains a oneof for specific headers type DataStream_Header struct { - state protoimpl.MessageState `protogen:"open.v1"` - StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // unique identifier for this data stream - Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // using int64 for Unix timestamp - Topic string `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"` - MimeType string `protobuf:"bytes,4,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` - TotalLength *uint64 `protobuf:"varint,5,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` // only populated for finite streams, if it's a stream of unknown size this stays empty - EncryptionType Encryption_Type `protobuf:"varint,7,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // defaults to NONE - Attributes map[string]string `protobuf:"bytes,8,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // user defined attributes map that can carry additional info + state protoimpl.MessageState `protogen:"open.v1"` + StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // unique identifier for this data stream + Timestamp int64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // using int64 for Unix timestamp + Topic string `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"` + MimeType string `protobuf:"bytes,4,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` + TotalLength *uint64 `protobuf:"varint,5,opt,name=total_length,json=totalLength,proto3,oneof" json:"total_length,omitempty"` // only populated for finite streams, if it's a stream of unknown size this stays empty + // Deprecated: Marked as deprecated in livekit_models.proto. + EncryptionType Encryption_Type `protobuf:"varint,7,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // this is set on the DataPacket + Attributes map[string]string `protobuf:"bytes,8,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // user defined attributes map that can carry additional info // oneof to choose between specific header types // // Types that are valid to be assigned to ContentHeader: @@ -5106,6 +5067,7 @@ func (x *DataStream_Header) GetTotalLength() uint64 { return 0 } +// Deprecated: Marked as deprecated in livekit_models.proto. func (x *DataStream_Header) GetEncryptionType() Encryption_Type { if x != nil { return x.EncryptionType @@ -5162,13 +5124,13 @@ func (*DataStream_Header_TextHeader) isDataStream_Header_ContentHeader() {} func (*DataStream_Header_ByteHeader) isDataStream_Header_ContentHeader() {} type DataStream_Chunk struct { - state protoimpl.MessageState `protogen:"open.v1"` - StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // unique identifier for this data stream to map it to the correct header - ChunkIndex uint64 `protobuf:"varint,2,opt,name=chunk_index,json=chunkIndex,proto3" json:"chunk_index,omitempty"` - Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` // content as binary (bytes) - Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` // a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced - Iv []byte `protobuf:"bytes,5,opt,name=iv,proto3,oneof" json:"iv,omitempty"` // optional, initialization vector for AES-GCM encryption - KeyIndex uint32 `protobuf:"varint,6,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` // key index for AES-GCM encryption + state protoimpl.MessageState `protogen:"open.v1"` + StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // unique identifier for this data stream to map it to the correct header + ChunkIndex uint64 `protobuf:"varint,2,opt,name=chunk_index,json=chunkIndex,proto3" json:"chunk_index,omitempty"` + Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` // content as binary (bytes) + Version int32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` // a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced + // Deprecated: Marked as deprecated in livekit_models.proto. + Iv []byte `protobuf:"bytes,5,opt,name=iv,proto3,oneof" json:"iv,omitempty"` // this is set on the DataPacket unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -5231,6 +5193,7 @@ func (x *DataStream_Chunk) GetVersion() int32 { return 0 } +// Deprecated: Marked as deprecated in livekit_models.proto. func (x *DataStream_Chunk) GetIv() []byte { if x != nil { return x.Iv @@ -5238,13 +5201,6 @@ func (x *DataStream_Chunk) GetIv() []byte { return nil } -func (x *DataStream_Chunk) GetKeyIndex() uint32 { - if x != nil { - return x.KeyIndex - } - return 0 -} - type DataStream_Trailer struct { state protoimpl.MessageState `protogen:"open.v1"` StreamId string `protobuf:"bytes,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` // unique identifier for this data stream @@ -5442,7 +5398,7 @@ const file_livekit_models_proto_rawDesc = "" + "\abitrate\x18\x04 \x01(\rR\abitrate\x12\x12\n" + "\x04ssrc\x18\x05 \x01(\rR\x04ssrc\x12#\n" + "\rspatial_layer\x18\x06 \x01(\x05R\fspatialLayer\x12\x10\n" + - "\x03rid\x18\a \x01(\tR\x03rid\"\xc5\a\n" + + "\x03rid\x18\a \x01(\tR\x03rid\"\xe0\b\n" + "\n" + "DataPacket\x120\n" + "\x04kind\x18\x01 \x01(\x0e2\x18.livekit.DataPacket.KindB\x02\x18\x01R\x04kind\x121\n" + @@ -5463,7 +5419,11 @@ const file_livekit_models_proto_rawDesc = "" + "\fstream_chunk\x18\x0e \x01(\v2\x19.livekit.DataStream.ChunkH\x00R\vstreamChunk\x12D\n" + "\x0estream_trailer\x18\x0f \x01(\v2\x1b.livekit.DataStream.TrailerH\x00R\rstreamTrailer\x12\x1a\n" + "\bsequence\x18\x10 \x01(\rR\bsequence\x12'\n" + - "\x0fparticipant_sid\x18\x11 \x01(\tR\x0eparticipantSid\"\x1f\n" + + "\x0fparticipant_sid\x18\x11 \x01(\tR\x0eparticipantSid\x12A\n" + + "\x0fencryption_type\x18\x12 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + + "\x02iv\x18\x13 \x01(\fR\x02iv\x12\x1b\n" + + "\tkey_index\x18\x14 \x01(\rR\bkeyIndex\x12)\n" + + "\x10encrypted_packet\x18\x15 \x01(\fR\x0fencryptedPacket\"\x1f\n" + "\x04Kind\x12\f\n" + "\bRELIABLE\x10\x00\x12\t\n" + "\x05LOSSY\x10\x01B\a\n" + @@ -5473,7 +5433,7 @@ const file_livekit_models_proto_rawDesc = "" + "\vSpeakerInfo\x12\x10\n" + "\x03sid\x18\x01 \x01(\tR\x03sid\x12\x14\n" + "\x05level\x18\x02 \x01(\x02R\x05level\x12\x16\n" + - "\x06active\x18\x03 \x01(\bR\x06active\"\x9b\x04\n" + + "\x06active\x18\x03 \x01(\bR\x06active\"\xab\x03\n" + "\n" + "UserPacket\x12+\n" + "\x0fparticipant_sid\x18\x01 \x01(\tB\x02\x18\x01R\x0eparticipantSid\x125\n" + @@ -5487,10 +5447,7 @@ const file_livekit_models_proto_rawDesc = "" + "start_time\x18\t \x01(\x04H\x02R\tstartTime\x88\x01\x01\x12\x1e\n" + "\bend_time\x18\n" + " \x01(\x04H\x03R\aendTime\x88\x01\x01\x12\x14\n" + - "\x05nonce\x18\v \x01(\fR\x05nonce\x12A\n" + - "\x0fencryption_type\x18\f \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + - "\x02iv\x18\r \x01(\fR\x02iv\x12\x1b\n" + - "\tkey_index\x18\x0e \x01(\rR\bkeyIndexB\b\n" + + "\x05nonce\x18\v \x01(\fR\x05nonceB\b\n" + "\x06_topicB\x05\n" + "\x03_idB\r\n" + "\v_start_timeB\v\n" + @@ -5517,28 +5474,22 @@ const file_livekit_models_proto_rawDesc = "" + "\amessage\x18\x04 \x01(\tR\amessage\x12\x18\n" + "\adeleted\x18\x05 \x01(\bR\adeleted\x12\x1c\n" + "\tgenerated\x18\x06 \x01(\bR\tgeneratedB\x11\n" + - "\x0f_edit_timestamp\"\x88\x02\n" + + "\x0f_edit_timestamp\"\x98\x01\n" + "\n" + "RpcRequest\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" + "\x06method\x18\x02 \x01(\tR\x06method\x12\x18\n" + "\apayload\x18\x03 \x01(\tR\apayload\x12.\n" + "\x13response_timeout_ms\x18\x04 \x01(\rR\x11responseTimeoutMs\x12\x18\n" + - "\aversion\x18\x05 \x01(\rR\aversion\x12A\n" + - "\x0fencryption_type\x18\x06 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + - "\x02iv\x18\a \x01(\fR\x02iv\x12\x1b\n" + - "\tkey_index\x18\b \x01(\rR\bkeyIndex\"'\n" + + "\aversion\x18\x05 \x01(\rR\aversion\"'\n" + "\x06RpcAck\x12\x1d\n" + "\n" + - "request_id\x18\x01 \x01(\tR\trequestId\"\xec\x01\n" + + "request_id\x18\x01 \x01(\tR\trequestId\"|\n" + "\vRpcResponse\x12\x1d\n" + "\n" + "request_id\x18\x01 \x01(\tR\trequestId\x12\x1a\n" + "\apayload\x18\x02 \x01(\tH\x00R\apayload\x12)\n" + - "\x05error\x18\x03 \x01(\v2\x11.livekit.RpcErrorH\x00R\x05error\x12A\n" + - "\x0fencryption_type\x18\x04 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + - "\x02iv\x18\x05 \x01(\fR\x02iv\x12\x1b\n" + - "\tkey_index\x18\x06 \x01(\rR\bkeyIndexB\a\n" + + "\x05error\x18\x03 \x01(\v2\x11.livekit.RpcErrorH\x00R\x05errorB\a\n" + "\x05value\"L\n" + "\bRpcError\x12\x12\n" + "\x04code\x18\x01 \x01(\rR\x04code\x12\x18\n" + @@ -5719,7 +5670,7 @@ const file_livekit_models_proto_rawDesc = "" + "\fTimedVersion\x12\x1d\n" + "\n" + "unix_micro\x18\x01 \x01(\x03R\tunixMicro\x12\x14\n" + - "\x05ticks\x18\x02 \x01(\x05R\x05ticks\"\xf9\t\n" + + "\x05ticks\x18\x02 \x01(\x05R\x05ticks\"\xe4\t\n" + "\n" + "DataStream\x1a\xeb\x01\n" + "\n" + @@ -5731,14 +5682,14 @@ const file_livekit_models_proto_rawDesc = "" + "\tgenerated\x18\x05 \x01(\bR\tgenerated\x1a \n" + "\n" + "ByteHeader\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x1a\x95\x04\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x1a\x99\x04\n" + "\x06Header\x12\x1b\n" + "\tstream_id\x18\x01 \x01(\tR\bstreamId\x12\x1c\n" + "\ttimestamp\x18\x02 \x01(\x03R\ttimestamp\x12\x14\n" + "\x05topic\x18\x03 \x01(\tR\x05topic\x12\x1b\n" + "\tmime_type\x18\x04 \x01(\tR\bmimeType\x12&\n" + - "\ftotal_length\x18\x05 \x01(\x04H\x01R\vtotalLength\x88\x01\x01\x12A\n" + - "\x0fencryption_type\x18\a \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12J\n" + + "\ftotal_length\x18\x05 \x01(\x04H\x01R\vtotalLength\x88\x01\x01\x12E\n" + + "\x0fencryption_type\x18\a \x01(\x0e2\x18.livekit.Encryption.TypeB\x02\x18\x01R\x0eencryptionType\x12J\n" + "\n" + "attributes\x18\b \x03(\v2*.livekit.DataStream.Header.AttributesEntryR\n" + "attributes\x12A\n" + @@ -5751,15 +5702,14 @@ const file_livekit_models_proto_rawDesc = "" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01B\x10\n" + "\x0econtent_headerB\x0f\n" + - "\r_total_length\x1a\xb2\x01\n" + + "\r_total_length\x1a\x99\x01\n" + "\x05Chunk\x12\x1b\n" + "\tstream_id\x18\x01 \x01(\tR\bstreamId\x12\x1f\n" + "\vchunk_index\x18\x02 \x01(\x04R\n" + "chunkIndex\x12\x18\n" + "\acontent\x18\x03 \x01(\fR\acontent\x12\x18\n" + - "\aversion\x18\x04 \x01(\x05R\aversion\x12\x13\n" + - "\x02iv\x18\x05 \x01(\fH\x00R\x02iv\x88\x01\x01\x12\x1b\n" + - "\tkey_index\x18\x06 \x01(\rR\bkeyIndexB\x05\n" + + "\aversion\x18\x04 \x01(\x05R\aversion\x12\x17\n" + + "\x02iv\x18\x05 \x01(\fB\x02\x18\x01H\x00R\x02iv\x88\x01\x01B\x05\n" + "\x03_iv\x1a\xca\x01\n" + "\aTrailer\x12\x1b\n" + "\tstream_id\x18\x01 \x01(\tR\bstreamId\x12\x16\n" + @@ -5992,49 +5942,47 @@ var file_livekit_models_proto_depIdxs = []int32{ 63, // 30: livekit.DataPacket.stream_header:type_name -> livekit.DataStream.Header 64, // 31: livekit.DataPacket.stream_chunk:type_name -> livekit.DataStream.Chunk 65, // 32: livekit.DataPacket.stream_trailer:type_name -> livekit.DataStream.Trailer - 34, // 33: livekit.ActiveSpeakerUpdate.speakers:type_name -> livekit.SpeakerInfo - 16, // 34: livekit.UserPacket.encryption_type:type_name -> livekit.Encryption.Type + 16, // 33: livekit.DataPacket.encryption_type:type_name -> livekit.Encryption.Type + 34, // 34: livekit.ActiveSpeakerUpdate.speakers:type_name -> livekit.SpeakerInfo 38, // 35: livekit.Transcription.segments:type_name -> livekit.TranscriptionSegment - 16, // 36: livekit.RpcRequest.encryption_type:type_name -> livekit.Encryption.Type - 43, // 37: livekit.RpcResponse.error:type_name -> livekit.RpcError - 16, // 38: livekit.RpcResponse.encryption_type:type_name -> livekit.Encryption.Type - 18, // 39: livekit.ServerInfo.edition:type_name -> livekit.ServerInfo.Edition - 19, // 40: livekit.ClientInfo.sdk:type_name -> livekit.ClientInfo.SDK - 48, // 41: livekit.ClientConfiguration.video:type_name -> livekit.VideoConfiguration - 48, // 42: livekit.ClientConfiguration.screen:type_name -> livekit.VideoConfiguration - 8, // 43: livekit.ClientConfiguration.resume_connection:type_name -> livekit.ClientConfigSetting - 49, // 44: livekit.ClientConfiguration.disabled_codecs:type_name -> livekit.DisabledCodecs - 8, // 45: livekit.ClientConfiguration.force_relay:type_name -> livekit.ClientConfigSetting - 8, // 46: livekit.VideoConfiguration.hardware_encoder:type_name -> livekit.ClientConfigSetting - 24, // 47: livekit.DisabledCodecs.codecs:type_name -> livekit.Codec - 24, // 48: livekit.DisabledCodecs.publish:type_name -> livekit.Codec - 69, // 49: livekit.RTPDrift.start_time:type_name -> google.protobuf.Timestamp - 69, // 50: livekit.RTPDrift.end_time:type_name -> google.protobuf.Timestamp - 69, // 51: livekit.RTPStats.start_time:type_name -> google.protobuf.Timestamp - 69, // 52: livekit.RTPStats.end_time:type_name -> google.protobuf.Timestamp - 60, // 53: livekit.RTPStats.gap_histogram:type_name -> livekit.RTPStats.GapHistogramEntry - 69, // 54: livekit.RTPStats.last_pli:type_name -> google.protobuf.Timestamp - 69, // 55: livekit.RTPStats.last_fir:type_name -> google.protobuf.Timestamp - 69, // 56: livekit.RTPStats.last_key_frame:type_name -> google.protobuf.Timestamp - 69, // 57: livekit.RTPStats.last_layer_lock_pli:type_name -> google.protobuf.Timestamp - 50, // 58: livekit.RTPStats.packet_drift:type_name -> livekit.RTPDrift - 50, // 59: livekit.RTPStats.ntp_report_drift:type_name -> livekit.RTPDrift - 50, // 60: livekit.RTPStats.rebased_report_drift:type_name -> livekit.RTPDrift - 50, // 61: livekit.RTPStats.received_report_drift:type_name -> livekit.RTPDrift - 54, // 62: livekit.RTPForwarderState.rtp_munger:type_name -> livekit.RTPMungerState - 55, // 63: livekit.RTPForwarderState.vp8_munger:type_name -> livekit.VP8MungerState - 52, // 64: livekit.RTPForwarderState.sender_report_state:type_name -> livekit.RTCPSenderReportState - 20, // 65: livekit.DataStream.TextHeader.operation_type:type_name -> livekit.DataStream.OperationType - 16, // 66: livekit.DataStream.Header.encryption_type:type_name -> livekit.Encryption.Type - 66, // 67: livekit.DataStream.Header.attributes:type_name -> livekit.DataStream.Header.AttributesEntry - 61, // 68: livekit.DataStream.Header.text_header:type_name -> livekit.DataStream.TextHeader - 62, // 69: livekit.DataStream.Header.byte_header:type_name -> livekit.DataStream.ByteHeader - 67, // 70: livekit.DataStream.Trailer.attributes:type_name -> livekit.DataStream.Trailer.AttributesEntry - 71, // [71:71] is the sub-list for method output_type - 71, // [71:71] is the sub-list for method input_type - 71, // [71:71] is the sub-list for extension type_name - 71, // [71:71] is the sub-list for extension extendee - 0, // [0:71] is the sub-list for field type_name + 43, // 36: livekit.RpcResponse.error:type_name -> livekit.RpcError + 18, // 37: livekit.ServerInfo.edition:type_name -> livekit.ServerInfo.Edition + 19, // 38: livekit.ClientInfo.sdk:type_name -> livekit.ClientInfo.SDK + 48, // 39: livekit.ClientConfiguration.video:type_name -> livekit.VideoConfiguration + 48, // 40: livekit.ClientConfiguration.screen:type_name -> livekit.VideoConfiguration + 8, // 41: livekit.ClientConfiguration.resume_connection:type_name -> livekit.ClientConfigSetting + 49, // 42: livekit.ClientConfiguration.disabled_codecs:type_name -> livekit.DisabledCodecs + 8, // 43: livekit.ClientConfiguration.force_relay:type_name -> livekit.ClientConfigSetting + 8, // 44: livekit.VideoConfiguration.hardware_encoder:type_name -> livekit.ClientConfigSetting + 24, // 45: livekit.DisabledCodecs.codecs:type_name -> livekit.Codec + 24, // 46: livekit.DisabledCodecs.publish:type_name -> livekit.Codec + 69, // 47: livekit.RTPDrift.start_time:type_name -> google.protobuf.Timestamp + 69, // 48: livekit.RTPDrift.end_time:type_name -> google.protobuf.Timestamp + 69, // 49: livekit.RTPStats.start_time:type_name -> google.protobuf.Timestamp + 69, // 50: livekit.RTPStats.end_time:type_name -> google.protobuf.Timestamp + 60, // 51: livekit.RTPStats.gap_histogram:type_name -> livekit.RTPStats.GapHistogramEntry + 69, // 52: livekit.RTPStats.last_pli:type_name -> google.protobuf.Timestamp + 69, // 53: livekit.RTPStats.last_fir:type_name -> google.protobuf.Timestamp + 69, // 54: livekit.RTPStats.last_key_frame:type_name -> google.protobuf.Timestamp + 69, // 55: livekit.RTPStats.last_layer_lock_pli:type_name -> google.protobuf.Timestamp + 50, // 56: livekit.RTPStats.packet_drift:type_name -> livekit.RTPDrift + 50, // 57: livekit.RTPStats.ntp_report_drift:type_name -> livekit.RTPDrift + 50, // 58: livekit.RTPStats.rebased_report_drift:type_name -> livekit.RTPDrift + 50, // 59: livekit.RTPStats.received_report_drift:type_name -> livekit.RTPDrift + 54, // 60: livekit.RTPForwarderState.rtp_munger:type_name -> livekit.RTPMungerState + 55, // 61: livekit.RTPForwarderState.vp8_munger:type_name -> livekit.VP8MungerState + 52, // 62: livekit.RTPForwarderState.sender_report_state:type_name -> livekit.RTCPSenderReportState + 20, // 63: livekit.DataStream.TextHeader.operation_type:type_name -> livekit.DataStream.OperationType + 16, // 64: livekit.DataStream.Header.encryption_type:type_name -> livekit.Encryption.Type + 66, // 65: livekit.DataStream.Header.attributes:type_name -> livekit.DataStream.Header.AttributesEntry + 61, // 66: livekit.DataStream.Header.text_header:type_name -> livekit.DataStream.TextHeader + 62, // 67: livekit.DataStream.Header.byte_header:type_name -> livekit.DataStream.ByteHeader + 67, // 68: livekit.DataStream.Trailer.attributes:type_name -> livekit.DataStream.Trailer.AttributesEntry + 69, // [69:69] is the sub-list for method output_type + 69, // [69:69] is the sub-list for method input_type + 69, // [69:69] is the sub-list for extension type_name + 69, // [69:69] is the sub-list for extension extendee + 0, // [0:69] is the sub-list for field type_name } func init() { file_livekit_models_proto_init() } From 207e8f93fd5854f1b856932854047217d320784b Mon Sep 17 00:00:00 2001 From: lukasIO Date: Fri, 11 Jul 2025 12:56:59 +0200 Subject: [PATCH 08/10] more explicit encryption messages --- protobufs/livekit_models.proto | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/protobufs/livekit_models.proto b/protobufs/livekit_models.proto index cef7f048..ea03709c 100644 --- a/protobufs/livekit_models.proto +++ b/protobufs/livekit_models.proto @@ -275,20 +275,38 @@ message DataPacket { DataStream.Header stream_header = 13; DataStream.Chunk stream_chunk = 14; DataStream.Trailer stream_trailer = 15; + EncryptedPacket encrypted_packet = 18; } // sequence number of reliable packet uint32 sequence = 16; // sid of the user that sent the message string participant_sid = 17; - Encryption.Type encryption_type = 18; // if encryption is set to other than NONE iv, key_index and encrypted_packet are expected to be set, too - bytes iv = 19; - uint32 key_index = 20; - bytes encrypted_packet = 21; + // NEXT_ID: 19 +} - // NEXT_ID: 22 +message EncryptedPacket { + Encryption.Type encryption_type = 1; + bytes iv = 2; + uint32 key_index = 3; + bytes encrypted_value = 4; // This is an encrypted EncryptedPacketPayload message representation } +message EncryptedPacketPayload { + oneof value { + UserPacket user = 1; + MetricsBatch metrics = 2; + ChatMessage chat_message = 3; + RpcRequest rpc_request = 4; + RpcAck rpc_ack = 5; + RpcResponse rpc_response = 6; + DataStream.Header stream_header = 7; + DataStream.Chunk stream_chunk = 8; + DataStream.Trailer stream_trailer = 9; + } +} + + message ActiveSpeakerUpdate { repeated SpeakerInfo speakers = 1; } @@ -313,7 +331,7 @@ message UserPacket { repeated string destination_identities = 6 [deprecated=true]; // topic under which the message was published optional string topic = 4; - // Unique ID to indentify the message + // Unique ID to identify the message optional string id = 8; // start and end time allow relating the message to specific media time optional uint64 start_time = 9; From 65c0ca8adbbc768d25574c01e1c0ec743b51c2f1 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 10:57:39 +0000 Subject: [PATCH 09/10] generated protobuf --- livekit/livekit_models.pb.go | 766 ++++++++++++++++++++++++----------- 1 file changed, 525 insertions(+), 241 deletions(-) diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index ba5cacbb..f1977d69 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -1065,7 +1065,7 @@ func (x ServerInfo_Edition) Number() protoreflect.EnumNumber { // Deprecated: Use ServerInfo_Edition.Descriptor instead. func (ServerInfo_Edition) EnumDescriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{24, 0} + return file_livekit_models_proto_rawDescGZIP(), []int{26, 0} } type ClientInfo_SDK int32 @@ -1150,7 +1150,7 @@ func (x ClientInfo_SDK) Number() protoreflect.EnumNumber { // Deprecated: Use ClientInfo_SDK.Descriptor instead. func (ClientInfo_SDK) EnumDescriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{25, 0} + return file_livekit_models_proto_rawDescGZIP(), []int{27, 0} } // enum for operation types (specific to TextHeader) @@ -1203,7 +1203,7 @@ func (x DataStream_OperationType) Number() protoreflect.EnumNumber { // Deprecated: Use DataStream_OperationType.Descriptor instead. func (DataStream_OperationType) EnumDescriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{36, 0} + return file_livekit_models_proto_rawDescGZIP(), []int{38, 0} } type Pagination struct { @@ -2282,17 +2282,14 @@ type DataPacket struct { // *DataPacket_StreamHeader // *DataPacket_StreamChunk // *DataPacket_StreamTrailer + // *DataPacket_EncryptedPacket Value isDataPacket_Value `protobuf_oneof:"value"` // sequence number of reliable packet Sequence uint32 `protobuf:"varint,16,opt,name=sequence,proto3" json:"sequence,omitempty"` // sid of the user that sent the message - ParticipantSid string `protobuf:"bytes,17,opt,name=participant_sid,json=participantSid,proto3" json:"participant_sid,omitempty"` - EncryptionType Encryption_Type `protobuf:"varint,18,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` // if encryption is set to other than NONE iv, key_index and encrypted_packet are expected to be set, too - Iv []byte `protobuf:"bytes,19,opt,name=iv,proto3" json:"iv,omitempty"` - KeyIndex uint32 `protobuf:"varint,20,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` - EncryptedPacket []byte `protobuf:"bytes,21,opt,name=encrypted_packet,json=encryptedPacket,proto3" json:"encrypted_packet,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + ParticipantSid string `protobuf:"bytes,17,opt,name=participant_sid,json=participantSid,proto3" json:"participant_sid,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DataPacket) Reset() { @@ -2463,46 +2460,27 @@ func (x *DataPacket) GetStreamTrailer() *DataStream_Trailer { return nil } -func (x *DataPacket) GetSequence() uint32 { - if x != nil { - return x.Sequence - } - return 0 -} - -func (x *DataPacket) GetParticipantSid() string { - if x != nil { - return x.ParticipantSid - } - return "" -} - -func (x *DataPacket) GetEncryptionType() Encryption_Type { - if x != nil { - return x.EncryptionType - } - return Encryption_NONE -} - -func (x *DataPacket) GetIv() []byte { +func (x *DataPacket) GetEncryptedPacket() *EncryptedPacket { if x != nil { - return x.Iv + if x, ok := x.Value.(*DataPacket_EncryptedPacket); ok { + return x.EncryptedPacket + } } return nil } -func (x *DataPacket) GetKeyIndex() uint32 { +func (x *DataPacket) GetSequence() uint32 { if x != nil { - return x.KeyIndex + return x.Sequence } return 0 } -func (x *DataPacket) GetEncryptedPacket() []byte { +func (x *DataPacket) GetParticipantSid() string { if x != nil { - return x.EncryptedPacket + return x.ParticipantSid } - return nil + return "" } type isDataPacket_Value interface { @@ -2558,6 +2536,10 @@ type DataPacket_StreamTrailer struct { StreamTrailer *DataStream_Trailer `protobuf:"bytes,15,opt,name=stream_trailer,json=streamTrailer,proto3,oneof"` } +type DataPacket_EncryptedPacket struct { + EncryptedPacket *EncryptedPacket `protobuf:"bytes,18,opt,name=encrypted_packet,json=encryptedPacket,proto3,oneof"` +} + func (*DataPacket_User) isDataPacket_Value() {} func (*DataPacket_Speaker) isDataPacket_Value() {} @@ -2582,6 +2564,270 @@ func (*DataPacket_StreamChunk) isDataPacket_Value() {} func (*DataPacket_StreamTrailer) isDataPacket_Value() {} +func (*DataPacket_EncryptedPacket) isDataPacket_Value() {} + +type EncryptedPacket struct { + state protoimpl.MessageState `protogen:"open.v1"` + EncryptionType Encryption_Type `protobuf:"varint,1,opt,name=encryption_type,json=encryptionType,proto3,enum=livekit.Encryption_Type" json:"encryption_type,omitempty"` + Iv []byte `protobuf:"bytes,2,opt,name=iv,proto3" json:"iv,omitempty"` + KeyIndex uint32 `protobuf:"varint,3,opt,name=key_index,json=keyIndex,proto3" json:"key_index,omitempty"` + EncryptedValue []byte `protobuf:"bytes,4,opt,name=encrypted_value,json=encryptedValue,proto3" json:"encrypted_value,omitempty"` // This is an encrypted EncryptedPacketPayload message representation + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EncryptedPacket) Reset() { + *x = EncryptedPacket{} + mi := &file_livekit_models_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EncryptedPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EncryptedPacket) ProtoMessage() {} + +func (x *EncryptedPacket) ProtoReflect() protoreflect.Message { + mi := &file_livekit_models_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EncryptedPacket.ProtoReflect.Descriptor instead. +func (*EncryptedPacket) Descriptor() ([]byte, []int) { + return file_livekit_models_proto_rawDescGZIP(), []int{12} +} + +func (x *EncryptedPacket) GetEncryptionType() Encryption_Type { + if x != nil { + return x.EncryptionType + } + return Encryption_NONE +} + +func (x *EncryptedPacket) GetIv() []byte { + if x != nil { + return x.Iv + } + return nil +} + +func (x *EncryptedPacket) GetKeyIndex() uint32 { + if x != nil { + return x.KeyIndex + } + return 0 +} + +func (x *EncryptedPacket) GetEncryptedValue() []byte { + if x != nil { + return x.EncryptedValue + } + return nil +} + +type EncryptedPacketPayload struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Value: + // + // *EncryptedPacketPayload_User + // *EncryptedPacketPayload_Metrics + // *EncryptedPacketPayload_ChatMessage + // *EncryptedPacketPayload_RpcRequest + // *EncryptedPacketPayload_RpcAck + // *EncryptedPacketPayload_RpcResponse + // *EncryptedPacketPayload_StreamHeader + // *EncryptedPacketPayload_StreamChunk + // *EncryptedPacketPayload_StreamTrailer + Value isEncryptedPacketPayload_Value `protobuf_oneof:"value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *EncryptedPacketPayload) Reset() { + *x = EncryptedPacketPayload{} + mi := &file_livekit_models_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *EncryptedPacketPayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EncryptedPacketPayload) ProtoMessage() {} + +func (x *EncryptedPacketPayload) ProtoReflect() protoreflect.Message { + mi := &file_livekit_models_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EncryptedPacketPayload.ProtoReflect.Descriptor instead. +func (*EncryptedPacketPayload) Descriptor() ([]byte, []int) { + return file_livekit_models_proto_rawDescGZIP(), []int{13} +} + +func (x *EncryptedPacketPayload) GetValue() isEncryptedPacketPayload_Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *EncryptedPacketPayload) GetUser() *UserPacket { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_User); ok { + return x.User + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetMetrics() *MetricsBatch { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_Metrics); ok { + return x.Metrics + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetChatMessage() *ChatMessage { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_ChatMessage); ok { + return x.ChatMessage + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetRpcRequest() *RpcRequest { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_RpcRequest); ok { + return x.RpcRequest + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetRpcAck() *RpcAck { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_RpcAck); ok { + return x.RpcAck + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetRpcResponse() *RpcResponse { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_RpcResponse); ok { + return x.RpcResponse + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetStreamHeader() *DataStream_Header { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_StreamHeader); ok { + return x.StreamHeader + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetStreamChunk() *DataStream_Chunk { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_StreamChunk); ok { + return x.StreamChunk + } + } + return nil +} + +func (x *EncryptedPacketPayload) GetStreamTrailer() *DataStream_Trailer { + if x != nil { + if x, ok := x.Value.(*EncryptedPacketPayload_StreamTrailer); ok { + return x.StreamTrailer + } + } + return nil +} + +type isEncryptedPacketPayload_Value interface { + isEncryptedPacketPayload_Value() +} + +type EncryptedPacketPayload_User struct { + User *UserPacket `protobuf:"bytes,1,opt,name=user,proto3,oneof"` +} + +type EncryptedPacketPayload_Metrics struct { + Metrics *MetricsBatch `protobuf:"bytes,2,opt,name=metrics,proto3,oneof"` +} + +type EncryptedPacketPayload_ChatMessage struct { + ChatMessage *ChatMessage `protobuf:"bytes,3,opt,name=chat_message,json=chatMessage,proto3,oneof"` +} + +type EncryptedPacketPayload_RpcRequest struct { + RpcRequest *RpcRequest `protobuf:"bytes,4,opt,name=rpc_request,json=rpcRequest,proto3,oneof"` +} + +type EncryptedPacketPayload_RpcAck struct { + RpcAck *RpcAck `protobuf:"bytes,5,opt,name=rpc_ack,json=rpcAck,proto3,oneof"` +} + +type EncryptedPacketPayload_RpcResponse struct { + RpcResponse *RpcResponse `protobuf:"bytes,6,opt,name=rpc_response,json=rpcResponse,proto3,oneof"` +} + +type EncryptedPacketPayload_StreamHeader struct { + StreamHeader *DataStream_Header `protobuf:"bytes,7,opt,name=stream_header,json=streamHeader,proto3,oneof"` +} + +type EncryptedPacketPayload_StreamChunk struct { + StreamChunk *DataStream_Chunk `protobuf:"bytes,8,opt,name=stream_chunk,json=streamChunk,proto3,oneof"` +} + +type EncryptedPacketPayload_StreamTrailer struct { + StreamTrailer *DataStream_Trailer `protobuf:"bytes,9,opt,name=stream_trailer,json=streamTrailer,proto3,oneof"` +} + +func (*EncryptedPacketPayload_User) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_Metrics) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_ChatMessage) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_RpcRequest) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_RpcAck) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_RpcResponse) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_StreamHeader) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_StreamChunk) isEncryptedPacketPayload_Value() {} + +func (*EncryptedPacketPayload_StreamTrailer) isEncryptedPacketPayload_Value() {} + type ActiveSpeakerUpdate struct { state protoimpl.MessageState `protogen:"open.v1"` Speakers []*SpeakerInfo `protobuf:"bytes,1,rep,name=speakers,proto3" json:"speakers,omitempty"` @@ -2591,7 +2837,7 @@ type ActiveSpeakerUpdate struct { func (x *ActiveSpeakerUpdate) Reset() { *x = ActiveSpeakerUpdate{} - mi := &file_livekit_models_proto_msgTypes[12] + mi := &file_livekit_models_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2603,7 +2849,7 @@ func (x *ActiveSpeakerUpdate) String() string { func (*ActiveSpeakerUpdate) ProtoMessage() {} func (x *ActiveSpeakerUpdate) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[12] + mi := &file_livekit_models_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2616,7 +2862,7 @@ func (x *ActiveSpeakerUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use ActiveSpeakerUpdate.ProtoReflect.Descriptor instead. func (*ActiveSpeakerUpdate) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{12} + return file_livekit_models_proto_rawDescGZIP(), []int{14} } func (x *ActiveSpeakerUpdate) GetSpeakers() []*SpeakerInfo { @@ -2639,7 +2885,7 @@ type SpeakerInfo struct { func (x *SpeakerInfo) Reset() { *x = SpeakerInfo{} - mi := &file_livekit_models_proto_msgTypes[13] + mi := &file_livekit_models_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2651,7 +2897,7 @@ func (x *SpeakerInfo) String() string { func (*SpeakerInfo) ProtoMessage() {} func (x *SpeakerInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[13] + mi := &file_livekit_models_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2664,7 +2910,7 @@ func (x *SpeakerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SpeakerInfo.ProtoReflect.Descriptor instead. func (*SpeakerInfo) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{13} + return file_livekit_models_proto_rawDescGZIP(), []int{15} } func (x *SpeakerInfo) GetSid() string { @@ -2708,7 +2954,7 @@ type UserPacket struct { DestinationIdentities []string `protobuf:"bytes,6,rep,name=destination_identities,json=destinationIdentities,proto3" json:"destination_identities,omitempty"` // topic under which the message was published Topic *string `protobuf:"bytes,4,opt,name=topic,proto3,oneof" json:"topic,omitempty"` - // Unique ID to indentify the message + // Unique ID to identify the message Id *string `protobuf:"bytes,8,opt,name=id,proto3,oneof" json:"id,omitempty"` // start and end time allow relating the message to specific media time StartTime *uint64 `protobuf:"varint,9,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` @@ -2721,7 +2967,7 @@ type UserPacket struct { func (x *UserPacket) Reset() { *x = UserPacket{} - mi := &file_livekit_models_proto_msgTypes[14] + mi := &file_livekit_models_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2733,7 +2979,7 @@ func (x *UserPacket) String() string { func (*UserPacket) ProtoMessage() {} func (x *UserPacket) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[14] + mi := &file_livekit_models_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2746,7 +2992,7 @@ func (x *UserPacket) ProtoReflect() protoreflect.Message { // Deprecated: Use UserPacket.ProtoReflect.Descriptor instead. func (*UserPacket) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{14} + return file_livekit_models_proto_rawDescGZIP(), []int{16} } // Deprecated: Marked as deprecated in livekit_models.proto. @@ -2833,7 +3079,7 @@ type SipDTMF struct { func (x *SipDTMF) Reset() { *x = SipDTMF{} - mi := &file_livekit_models_proto_msgTypes[15] + mi := &file_livekit_models_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2845,7 +3091,7 @@ func (x *SipDTMF) String() string { func (*SipDTMF) ProtoMessage() {} func (x *SipDTMF) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[15] + mi := &file_livekit_models_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2858,7 +3104,7 @@ func (x *SipDTMF) ProtoReflect() protoreflect.Message { // Deprecated: Use SipDTMF.ProtoReflect.Descriptor instead. func (*SipDTMF) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{15} + return file_livekit_models_proto_rawDescGZIP(), []int{17} } func (x *SipDTMF) GetCode() uint32 { @@ -2887,7 +3133,7 @@ type Transcription struct { func (x *Transcription) Reset() { *x = Transcription{} - mi := &file_livekit_models_proto_msgTypes[16] + mi := &file_livekit_models_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2899,7 +3145,7 @@ func (x *Transcription) String() string { func (*Transcription) ProtoMessage() {} func (x *Transcription) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[16] + mi := &file_livekit_models_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2912,7 +3158,7 @@ func (x *Transcription) ProtoReflect() protoreflect.Message { // Deprecated: Use Transcription.ProtoReflect.Descriptor instead. func (*Transcription) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{16} + return file_livekit_models_proto_rawDescGZIP(), []int{18} } func (x *Transcription) GetTranscribedParticipantIdentity() string { @@ -2950,7 +3196,7 @@ type TranscriptionSegment struct { func (x *TranscriptionSegment) Reset() { *x = TranscriptionSegment{} - mi := &file_livekit_models_proto_msgTypes[17] + mi := &file_livekit_models_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2962,7 +3208,7 @@ func (x *TranscriptionSegment) String() string { func (*TranscriptionSegment) ProtoMessage() {} func (x *TranscriptionSegment) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[17] + mi := &file_livekit_models_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2975,7 +3221,7 @@ func (x *TranscriptionSegment) ProtoReflect() protoreflect.Message { // Deprecated: Use TranscriptionSegment.ProtoReflect.Descriptor instead. func (*TranscriptionSegment) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{17} + return file_livekit_models_proto_rawDescGZIP(), []int{19} } func (x *TranscriptionSegment) GetId() string { @@ -3034,7 +3280,7 @@ type ChatMessage struct { func (x *ChatMessage) Reset() { *x = ChatMessage{} - mi := &file_livekit_models_proto_msgTypes[18] + mi := &file_livekit_models_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3046,7 +3292,7 @@ func (x *ChatMessage) String() string { func (*ChatMessage) ProtoMessage() {} func (x *ChatMessage) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[18] + mi := &file_livekit_models_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3059,7 +3305,7 @@ func (x *ChatMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatMessage.ProtoReflect.Descriptor instead. func (*ChatMessage) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{18} + return file_livekit_models_proto_rawDescGZIP(), []int{20} } func (x *ChatMessage) GetId() string { @@ -3117,7 +3363,7 @@ type RpcRequest struct { func (x *RpcRequest) Reset() { *x = RpcRequest{} - mi := &file_livekit_models_proto_msgTypes[19] + mi := &file_livekit_models_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3129,7 +3375,7 @@ func (x *RpcRequest) String() string { func (*RpcRequest) ProtoMessage() {} func (x *RpcRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[19] + mi := &file_livekit_models_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3142,7 +3388,7 @@ func (x *RpcRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcRequest.ProtoReflect.Descriptor instead. func (*RpcRequest) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{19} + return file_livekit_models_proto_rawDescGZIP(), []int{21} } func (x *RpcRequest) GetId() string { @@ -3189,7 +3435,7 @@ type RpcAck struct { func (x *RpcAck) Reset() { *x = RpcAck{} - mi := &file_livekit_models_proto_msgTypes[20] + mi := &file_livekit_models_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3201,7 +3447,7 @@ func (x *RpcAck) String() string { func (*RpcAck) ProtoMessage() {} func (x *RpcAck) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[20] + mi := &file_livekit_models_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3214,7 +3460,7 @@ func (x *RpcAck) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcAck.ProtoReflect.Descriptor instead. func (*RpcAck) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{20} + return file_livekit_models_proto_rawDescGZIP(), []int{22} } func (x *RpcAck) GetRequestId() string { @@ -3238,7 +3484,7 @@ type RpcResponse struct { func (x *RpcResponse) Reset() { *x = RpcResponse{} - mi := &file_livekit_models_proto_msgTypes[21] + mi := &file_livekit_models_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3250,7 +3496,7 @@ func (x *RpcResponse) String() string { func (*RpcResponse) ProtoMessage() {} func (x *RpcResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[21] + mi := &file_livekit_models_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3263,7 +3509,7 @@ func (x *RpcResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcResponse.ProtoReflect.Descriptor instead. func (*RpcResponse) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{21} + return file_livekit_models_proto_rawDescGZIP(), []int{23} } func (x *RpcResponse) GetRequestId() string { @@ -3325,7 +3571,7 @@ type RpcError struct { func (x *RpcError) Reset() { *x = RpcError{} - mi := &file_livekit_models_proto_msgTypes[22] + mi := &file_livekit_models_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3337,7 +3583,7 @@ func (x *RpcError) String() string { func (*RpcError) ProtoMessage() {} func (x *RpcError) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[22] + mi := &file_livekit_models_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3350,7 +3596,7 @@ func (x *RpcError) ProtoReflect() protoreflect.Message { // Deprecated: Use RpcError.ProtoReflect.Descriptor instead. func (*RpcError) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{22} + return file_livekit_models_proto_rawDescGZIP(), []int{24} } func (x *RpcError) GetCode() uint32 { @@ -3385,7 +3631,7 @@ type ParticipantTracks struct { func (x *ParticipantTracks) Reset() { *x = ParticipantTracks{} - mi := &file_livekit_models_proto_msgTypes[23] + mi := &file_livekit_models_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3397,7 +3643,7 @@ func (x *ParticipantTracks) String() string { func (*ParticipantTracks) ProtoMessage() {} func (x *ParticipantTracks) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[23] + mi := &file_livekit_models_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3410,7 +3656,7 @@ func (x *ParticipantTracks) ProtoReflect() protoreflect.Message { // Deprecated: Use ParticipantTracks.ProtoReflect.Descriptor instead. func (*ParticipantTracks) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{23} + return file_livekit_models_proto_rawDescGZIP(), []int{25} } func (x *ParticipantTracks) GetParticipantSid() string { @@ -3444,7 +3690,7 @@ type ServerInfo struct { func (x *ServerInfo) Reset() { *x = ServerInfo{} - mi := &file_livekit_models_proto_msgTypes[24] + mi := &file_livekit_models_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3456,7 +3702,7 @@ func (x *ServerInfo) String() string { func (*ServerInfo) ProtoMessage() {} func (x *ServerInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[24] + mi := &file_livekit_models_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3469,7 +3715,7 @@ func (x *ServerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerInfo.ProtoReflect.Descriptor instead. func (*ServerInfo) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{24} + return file_livekit_models_proto_rawDescGZIP(), []int{26} } func (x *ServerInfo) GetEdition() ServerInfo_Edition { @@ -3544,7 +3790,7 @@ type ClientInfo struct { func (x *ClientInfo) Reset() { *x = ClientInfo{} - mi := &file_livekit_models_proto_msgTypes[25] + mi := &file_livekit_models_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3556,7 +3802,7 @@ func (x *ClientInfo) String() string { func (*ClientInfo) ProtoMessage() {} func (x *ClientInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[25] + mi := &file_livekit_models_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3569,7 +3815,7 @@ func (x *ClientInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientInfo.ProtoReflect.Descriptor instead. func (*ClientInfo) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{25} + return file_livekit_models_proto_rawDescGZIP(), []int{27} } func (x *ClientInfo) GetSdk() ClientInfo_SDK { @@ -3663,7 +3909,7 @@ type ClientConfiguration struct { func (x *ClientConfiguration) Reset() { *x = ClientConfiguration{} - mi := &file_livekit_models_proto_msgTypes[26] + mi := &file_livekit_models_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3675,7 +3921,7 @@ func (x *ClientConfiguration) String() string { func (*ClientConfiguration) ProtoMessage() {} func (x *ClientConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[26] + mi := &file_livekit_models_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3688,7 +3934,7 @@ func (x *ClientConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientConfiguration.ProtoReflect.Descriptor instead. func (*ClientConfiguration) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{26} + return file_livekit_models_proto_rawDescGZIP(), []int{28} } func (x *ClientConfiguration) GetVideo() *VideoConfiguration { @@ -3735,7 +3981,7 @@ type VideoConfiguration struct { func (x *VideoConfiguration) Reset() { *x = VideoConfiguration{} - mi := &file_livekit_models_proto_msgTypes[27] + mi := &file_livekit_models_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3747,7 +3993,7 @@ func (x *VideoConfiguration) String() string { func (*VideoConfiguration) ProtoMessage() {} func (x *VideoConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[27] + mi := &file_livekit_models_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3760,7 +4006,7 @@ func (x *VideoConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoConfiguration.ProtoReflect.Descriptor instead. func (*VideoConfiguration) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{27} + return file_livekit_models_proto_rawDescGZIP(), []int{29} } func (x *VideoConfiguration) GetHardwareEncoder() ClientConfigSetting { @@ -3782,7 +4028,7 @@ type DisabledCodecs struct { func (x *DisabledCodecs) Reset() { *x = DisabledCodecs{} - mi := &file_livekit_models_proto_msgTypes[28] + mi := &file_livekit_models_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3794,7 +4040,7 @@ func (x *DisabledCodecs) String() string { func (*DisabledCodecs) ProtoMessage() {} func (x *DisabledCodecs) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[28] + mi := &file_livekit_models_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3807,7 +4053,7 @@ func (x *DisabledCodecs) ProtoReflect() protoreflect.Message { // Deprecated: Use DisabledCodecs.ProtoReflect.Descriptor instead. func (*DisabledCodecs) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{28} + return file_livekit_models_proto_rawDescGZIP(), []int{30} } func (x *DisabledCodecs) GetCodecs() []*Codec { @@ -3841,7 +4087,7 @@ type RTPDrift struct { func (x *RTPDrift) Reset() { *x = RTPDrift{} - mi := &file_livekit_models_proto_msgTypes[29] + mi := &file_livekit_models_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3853,7 +4099,7 @@ func (x *RTPDrift) String() string { func (*RTPDrift) ProtoMessage() {} func (x *RTPDrift) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[29] + mi := &file_livekit_models_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3866,7 +4112,7 @@ func (x *RTPDrift) ProtoReflect() protoreflect.Message { // Deprecated: Use RTPDrift.ProtoReflect.Descriptor instead. func (*RTPDrift) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{29} + return file_livekit_models_proto_rawDescGZIP(), []int{31} } func (x *RTPDrift) GetStartTime() *timestamppb.Timestamp { @@ -3985,7 +4231,7 @@ type RTPStats struct { func (x *RTPStats) Reset() { *x = RTPStats{} - mi := &file_livekit_models_proto_msgTypes[30] + mi := &file_livekit_models_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3997,7 +4243,7 @@ func (x *RTPStats) String() string { func (*RTPStats) ProtoMessage() {} func (x *RTPStats) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[30] + mi := &file_livekit_models_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4010,7 +4256,7 @@ func (x *RTPStats) ProtoReflect() protoreflect.Message { // Deprecated: Use RTPStats.ProtoReflect.Descriptor instead. func (*RTPStats) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{30} + return file_livekit_models_proto_rawDescGZIP(), []int{32} } func (x *RTPStats) GetStartTime() *timestamppb.Timestamp { @@ -4343,7 +4589,7 @@ type RTCPSenderReportState struct { func (x *RTCPSenderReportState) Reset() { *x = RTCPSenderReportState{} - mi := &file_livekit_models_proto_msgTypes[31] + mi := &file_livekit_models_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4355,7 +4601,7 @@ func (x *RTCPSenderReportState) String() string { func (*RTCPSenderReportState) ProtoMessage() {} func (x *RTCPSenderReportState) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[31] + mi := &file_livekit_models_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4368,7 +4614,7 @@ func (x *RTCPSenderReportState) ProtoReflect() protoreflect.Message { // Deprecated: Use RTCPSenderReportState.ProtoReflect.Descriptor instead. func (*RTCPSenderReportState) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{31} + return file_livekit_models_proto_rawDescGZIP(), []int{33} } func (x *RTCPSenderReportState) GetRtpTimestamp() uint32 { @@ -4439,7 +4685,7 @@ type RTPForwarderState struct { func (x *RTPForwarderState) Reset() { *x = RTPForwarderState{} - mi := &file_livekit_models_proto_msgTypes[32] + mi := &file_livekit_models_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4451,7 +4697,7 @@ func (x *RTPForwarderState) String() string { func (*RTPForwarderState) ProtoMessage() {} func (x *RTPForwarderState) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[32] + mi := &file_livekit_models_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4464,7 +4710,7 @@ func (x *RTPForwarderState) ProtoReflect() protoreflect.Message { // Deprecated: Use RTPForwarderState.ProtoReflect.Descriptor instead. func (*RTPForwarderState) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{32} + return file_livekit_models_proto_rawDescGZIP(), []int{34} } func (x *RTPForwarderState) GetStarted() bool { @@ -4556,7 +4802,7 @@ type RTPMungerState struct { func (x *RTPMungerState) Reset() { *x = RTPMungerState{} - mi := &file_livekit_models_proto_msgTypes[33] + mi := &file_livekit_models_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4568,7 +4814,7 @@ func (x *RTPMungerState) String() string { func (*RTPMungerState) ProtoMessage() {} func (x *RTPMungerState) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[33] + mi := &file_livekit_models_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4581,7 +4827,7 @@ func (x *RTPMungerState) ProtoReflect() protoreflect.Message { // Deprecated: Use RTPMungerState.ProtoReflect.Descriptor instead. func (*RTPMungerState) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{33} + return file_livekit_models_proto_rawDescGZIP(), []int{35} } func (x *RTPMungerState) GetExtLastSequenceNumber() uint64 { @@ -4641,7 +4887,7 @@ type VP8MungerState struct { func (x *VP8MungerState) Reset() { *x = VP8MungerState{} - mi := &file_livekit_models_proto_msgTypes[34] + mi := &file_livekit_models_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4653,7 +4899,7 @@ func (x *VP8MungerState) String() string { func (*VP8MungerState) ProtoMessage() {} func (x *VP8MungerState) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[34] + mi := &file_livekit_models_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4666,7 +4912,7 @@ func (x *VP8MungerState) ProtoReflect() protoreflect.Message { // Deprecated: Use VP8MungerState.ProtoReflect.Descriptor instead. func (*VP8MungerState) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{34} + return file_livekit_models_proto_rawDescGZIP(), []int{36} } func (x *VP8MungerState) GetExtLastPictureId() int32 { @@ -4728,7 +4974,7 @@ type TimedVersion struct { func (x *TimedVersion) Reset() { *x = TimedVersion{} - mi := &file_livekit_models_proto_msgTypes[35] + mi := &file_livekit_models_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4740,7 +4986,7 @@ func (x *TimedVersion) String() string { func (*TimedVersion) ProtoMessage() {} func (x *TimedVersion) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[35] + mi := &file_livekit_models_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4753,7 +4999,7 @@ func (x *TimedVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use TimedVersion.ProtoReflect.Descriptor instead. func (*TimedVersion) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{35} + return file_livekit_models_proto_rawDescGZIP(), []int{37} } func (x *TimedVersion) GetUnixMicro() int64 { @@ -4778,7 +5024,7 @@ type DataStream struct { func (x *DataStream) Reset() { *x = DataStream{} - mi := &file_livekit_models_proto_msgTypes[36] + mi := &file_livekit_models_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4790,7 +5036,7 @@ func (x *DataStream) String() string { func (*DataStream) ProtoMessage() {} func (x *DataStream) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[36] + mi := &file_livekit_models_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4803,7 +5049,7 @@ func (x *DataStream) ProtoReflect() protoreflect.Message { // Deprecated: Use DataStream.ProtoReflect.Descriptor instead. func (*DataStream) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{36} + return file_livekit_models_proto_rawDescGZIP(), []int{38} } type WebhookConfig struct { @@ -4816,7 +5062,7 @@ type WebhookConfig struct { func (x *WebhookConfig) Reset() { *x = WebhookConfig{} - mi := &file_livekit_models_proto_msgTypes[37] + mi := &file_livekit_models_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4828,7 +5074,7 @@ func (x *WebhookConfig) String() string { func (*WebhookConfig) ProtoMessage() {} func (x *WebhookConfig) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[37] + mi := &file_livekit_models_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4841,7 +5087,7 @@ func (x *WebhookConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use WebhookConfig.ProtoReflect.Descriptor instead. func (*WebhookConfig) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{37} + return file_livekit_models_proto_rawDescGZIP(), []int{39} } func (x *WebhookConfig) GetUrl() string { @@ -4872,7 +5118,7 @@ type DataStream_TextHeader struct { func (x *DataStream_TextHeader) Reset() { *x = DataStream_TextHeader{} - mi := &file_livekit_models_proto_msgTypes[40] + mi := &file_livekit_models_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4884,7 +5130,7 @@ func (x *DataStream_TextHeader) String() string { func (*DataStream_TextHeader) ProtoMessage() {} func (x *DataStream_TextHeader) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[40] + mi := &file_livekit_models_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4897,7 +5143,7 @@ func (x *DataStream_TextHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use DataStream_TextHeader.ProtoReflect.Descriptor instead. func (*DataStream_TextHeader) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{36, 0} + return file_livekit_models_proto_rawDescGZIP(), []int{38, 0} } func (x *DataStream_TextHeader) GetOperationType() DataStream_OperationType { @@ -4945,7 +5191,7 @@ type DataStream_ByteHeader struct { func (x *DataStream_ByteHeader) Reset() { *x = DataStream_ByteHeader{} - mi := &file_livekit_models_proto_msgTypes[41] + mi := &file_livekit_models_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4957,7 +5203,7 @@ func (x *DataStream_ByteHeader) String() string { func (*DataStream_ByteHeader) ProtoMessage() {} func (x *DataStream_ByteHeader) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[41] + mi := &file_livekit_models_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4970,7 +5216,7 @@ func (x *DataStream_ByteHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use DataStream_ByteHeader.ProtoReflect.Descriptor instead. func (*DataStream_ByteHeader) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{36, 1} + return file_livekit_models_proto_rawDescGZIP(), []int{38, 1} } func (x *DataStream_ByteHeader) GetName() string { @@ -5004,7 +5250,7 @@ type DataStream_Header struct { func (x *DataStream_Header) Reset() { *x = DataStream_Header{} - mi := &file_livekit_models_proto_msgTypes[42] + mi := &file_livekit_models_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5016,7 +5262,7 @@ func (x *DataStream_Header) String() string { func (*DataStream_Header) ProtoMessage() {} func (x *DataStream_Header) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[42] + mi := &file_livekit_models_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5029,7 +5275,7 @@ func (x *DataStream_Header) ProtoReflect() protoreflect.Message { // Deprecated: Use DataStream_Header.ProtoReflect.Descriptor instead. func (*DataStream_Header) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{36, 2} + return file_livekit_models_proto_rawDescGZIP(), []int{38, 2} } func (x *DataStream_Header) GetStreamId() string { @@ -5137,7 +5383,7 @@ type DataStream_Chunk struct { func (x *DataStream_Chunk) Reset() { *x = DataStream_Chunk{} - mi := &file_livekit_models_proto_msgTypes[43] + mi := &file_livekit_models_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5149,7 +5395,7 @@ func (x *DataStream_Chunk) String() string { func (*DataStream_Chunk) ProtoMessage() {} func (x *DataStream_Chunk) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[43] + mi := &file_livekit_models_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5162,7 +5408,7 @@ func (x *DataStream_Chunk) ProtoReflect() protoreflect.Message { // Deprecated: Use DataStream_Chunk.ProtoReflect.Descriptor instead. func (*DataStream_Chunk) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{36, 3} + return file_livekit_models_proto_rawDescGZIP(), []int{38, 3} } func (x *DataStream_Chunk) GetStreamId() string { @@ -5212,7 +5458,7 @@ type DataStream_Trailer struct { func (x *DataStream_Trailer) Reset() { *x = DataStream_Trailer{} - mi := &file_livekit_models_proto_msgTypes[44] + mi := &file_livekit_models_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5224,7 +5470,7 @@ func (x *DataStream_Trailer) String() string { func (*DataStream_Trailer) ProtoMessage() {} func (x *DataStream_Trailer) ProtoReflect() protoreflect.Message { - mi := &file_livekit_models_proto_msgTypes[44] + mi := &file_livekit_models_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5237,7 +5483,7 @@ func (x *DataStream_Trailer) ProtoReflect() protoreflect.Message { // Deprecated: Use DataStream_Trailer.ProtoReflect.Descriptor instead. func (*DataStream_Trailer) Descriptor() ([]byte, []int) { - return file_livekit_models_proto_rawDescGZIP(), []int{36, 4} + return file_livekit_models_proto_rawDescGZIP(), []int{38, 4} } func (x *DataStream_Trailer) GetStreamId() string { @@ -5398,7 +5644,7 @@ const file_livekit_models_proto_rawDesc = "" + "\abitrate\x18\x04 \x01(\rR\abitrate\x12\x12\n" + "\x04ssrc\x18\x05 \x01(\rR\x04ssrc\x12#\n" + "\rspatial_layer\x18\x06 \x01(\x05R\fspatialLayer\x12\x10\n" + - "\x03rid\x18\a \x01(\tR\x03rid\"\xe0\b\n" + + "\x03rid\x18\a \x01(\tR\x03rid\"\x8c\b\n" + "\n" + "DataPacket\x120\n" + "\x04kind\x18\x01 \x01(\x0e2\x18.livekit.DataPacket.KindB\x02\x18\x01R\x04kind\x121\n" + @@ -5417,16 +5663,30 @@ const file_livekit_models_proto_rawDesc = "" + "\frpc_response\x18\f \x01(\v2\x14.livekit.RpcResponseH\x00R\vrpcResponse\x12A\n" + "\rstream_header\x18\r \x01(\v2\x1a.livekit.DataStream.HeaderH\x00R\fstreamHeader\x12>\n" + "\fstream_chunk\x18\x0e \x01(\v2\x19.livekit.DataStream.ChunkH\x00R\vstreamChunk\x12D\n" + - "\x0estream_trailer\x18\x0f \x01(\v2\x1b.livekit.DataStream.TrailerH\x00R\rstreamTrailer\x12\x1a\n" + + "\x0estream_trailer\x18\x0f \x01(\v2\x1b.livekit.DataStream.TrailerH\x00R\rstreamTrailer\x12E\n" + + "\x10encrypted_packet\x18\x12 \x01(\v2\x18.livekit.EncryptedPacketH\x00R\x0fencryptedPacket\x12\x1a\n" + "\bsequence\x18\x10 \x01(\rR\bsequence\x12'\n" + - "\x0fparticipant_sid\x18\x11 \x01(\tR\x0eparticipantSid\x12A\n" + - "\x0fencryption_type\x18\x12 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + - "\x02iv\x18\x13 \x01(\fR\x02iv\x12\x1b\n" + - "\tkey_index\x18\x14 \x01(\rR\bkeyIndex\x12)\n" + - "\x10encrypted_packet\x18\x15 \x01(\fR\x0fencryptedPacket\"\x1f\n" + + "\x0fparticipant_sid\x18\x11 \x01(\tR\x0eparticipantSid\"\x1f\n" + "\x04Kind\x12\f\n" + "\bRELIABLE\x10\x00\x12\t\n" + "\x05LOSSY\x10\x01B\a\n" + + "\x05value\"\xaa\x01\n" + + "\x0fEncryptedPacket\x12A\n" + + "\x0fencryption_type\x18\x01 \x01(\x0e2\x18.livekit.Encryption.TypeR\x0eencryptionType\x12\x0e\n" + + "\x02iv\x18\x02 \x01(\fR\x02iv\x12\x1b\n" + + "\tkey_index\x18\x03 \x01(\rR\bkeyIndex\x12'\n" + + "\x0fencrypted_value\x18\x04 \x01(\fR\x0eencryptedValue\"\xa2\x04\n" + + "\x16EncryptedPacketPayload\x12)\n" + + "\x04user\x18\x01 \x01(\v2\x13.livekit.UserPacketH\x00R\x04user\x121\n" + + "\ametrics\x18\x02 \x01(\v2\x15.livekit.MetricsBatchH\x00R\ametrics\x129\n" + + "\fchat_message\x18\x03 \x01(\v2\x14.livekit.ChatMessageH\x00R\vchatMessage\x126\n" + + "\vrpc_request\x18\x04 \x01(\v2\x13.livekit.RpcRequestH\x00R\n" + + "rpcRequest\x12*\n" + + "\arpc_ack\x18\x05 \x01(\v2\x0f.livekit.RpcAckH\x00R\x06rpcAck\x129\n" + + "\frpc_response\x18\x06 \x01(\v2\x14.livekit.RpcResponseH\x00R\vrpcResponse\x12A\n" + + "\rstream_header\x18\a \x01(\v2\x1a.livekit.DataStream.HeaderH\x00R\fstreamHeader\x12>\n" + + "\fstream_chunk\x18\b \x01(\v2\x19.livekit.DataStream.ChunkH\x00R\vstreamChunk\x12D\n" + + "\x0estream_trailer\x18\t \x01(\v2\x1b.livekit.DataStream.TrailerH\x00R\rstreamTrailerB\a\n" + "\x05value\"G\n" + "\x13ActiveSpeakerUpdate\x120\n" + "\bspeakers\x18\x01 \x03(\v2\x14.livekit.SpeakerInfoR\bspeakers\"M\n" + @@ -5835,7 +6095,7 @@ func file_livekit_models_proto_rawDescGZIP() []byte { } var file_livekit_models_proto_enumTypes = make([]protoimpl.EnumInfo, 21) -var file_livekit_models_proto_msgTypes = make([]protoimpl.MessageInfo, 47) +var file_livekit_models_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_livekit_models_proto_goTypes = []any{ (AudioCodec)(0), // 0: livekit.AudioCodec (VideoCodec)(0), // 1: livekit.VideoCodec @@ -5870,53 +6130,55 @@ var file_livekit_models_proto_goTypes = []any{ (*TrackInfo)(nil), // 30: livekit.TrackInfo (*VideoLayer)(nil), // 31: livekit.VideoLayer (*DataPacket)(nil), // 32: livekit.DataPacket - (*ActiveSpeakerUpdate)(nil), // 33: livekit.ActiveSpeakerUpdate - (*SpeakerInfo)(nil), // 34: livekit.SpeakerInfo - (*UserPacket)(nil), // 35: livekit.UserPacket - (*SipDTMF)(nil), // 36: livekit.SipDTMF - (*Transcription)(nil), // 37: livekit.Transcription - (*TranscriptionSegment)(nil), // 38: livekit.TranscriptionSegment - (*ChatMessage)(nil), // 39: livekit.ChatMessage - (*RpcRequest)(nil), // 40: livekit.RpcRequest - (*RpcAck)(nil), // 41: livekit.RpcAck - (*RpcResponse)(nil), // 42: livekit.RpcResponse - (*RpcError)(nil), // 43: livekit.RpcError - (*ParticipantTracks)(nil), // 44: livekit.ParticipantTracks - (*ServerInfo)(nil), // 45: livekit.ServerInfo - (*ClientInfo)(nil), // 46: livekit.ClientInfo - (*ClientConfiguration)(nil), // 47: livekit.ClientConfiguration - (*VideoConfiguration)(nil), // 48: livekit.VideoConfiguration - (*DisabledCodecs)(nil), // 49: livekit.DisabledCodecs - (*RTPDrift)(nil), // 50: livekit.RTPDrift - (*RTPStats)(nil), // 51: livekit.RTPStats - (*RTCPSenderReportState)(nil), // 52: livekit.RTCPSenderReportState - (*RTPForwarderState)(nil), // 53: livekit.RTPForwarderState - (*RTPMungerState)(nil), // 54: livekit.RTPMungerState - (*VP8MungerState)(nil), // 55: livekit.VP8MungerState - (*TimedVersion)(nil), // 56: livekit.TimedVersion - (*DataStream)(nil), // 57: livekit.DataStream - (*WebhookConfig)(nil), // 58: livekit.WebhookConfig - nil, // 59: livekit.ParticipantInfo.AttributesEntry - nil, // 60: livekit.RTPStats.GapHistogramEntry - (*DataStream_TextHeader)(nil), // 61: livekit.DataStream.TextHeader - (*DataStream_ByteHeader)(nil), // 62: livekit.DataStream.ByteHeader - (*DataStream_Header)(nil), // 63: livekit.DataStream.Header - (*DataStream_Chunk)(nil), // 64: livekit.DataStream.Chunk - (*DataStream_Trailer)(nil), // 65: livekit.DataStream.Trailer - nil, // 66: livekit.DataStream.Header.AttributesEntry - nil, // 67: livekit.DataStream.Trailer.AttributesEntry - (*MetricsBatch)(nil), // 68: livekit.MetricsBatch - (*timestamppb.Timestamp)(nil), // 69: google.protobuf.Timestamp + (*EncryptedPacket)(nil), // 33: livekit.EncryptedPacket + (*EncryptedPacketPayload)(nil), // 34: livekit.EncryptedPacketPayload + (*ActiveSpeakerUpdate)(nil), // 35: livekit.ActiveSpeakerUpdate + (*SpeakerInfo)(nil), // 36: livekit.SpeakerInfo + (*UserPacket)(nil), // 37: livekit.UserPacket + (*SipDTMF)(nil), // 38: livekit.SipDTMF + (*Transcription)(nil), // 39: livekit.Transcription + (*TranscriptionSegment)(nil), // 40: livekit.TranscriptionSegment + (*ChatMessage)(nil), // 41: livekit.ChatMessage + (*RpcRequest)(nil), // 42: livekit.RpcRequest + (*RpcAck)(nil), // 43: livekit.RpcAck + (*RpcResponse)(nil), // 44: livekit.RpcResponse + (*RpcError)(nil), // 45: livekit.RpcError + (*ParticipantTracks)(nil), // 46: livekit.ParticipantTracks + (*ServerInfo)(nil), // 47: livekit.ServerInfo + (*ClientInfo)(nil), // 48: livekit.ClientInfo + (*ClientConfiguration)(nil), // 49: livekit.ClientConfiguration + (*VideoConfiguration)(nil), // 50: livekit.VideoConfiguration + (*DisabledCodecs)(nil), // 51: livekit.DisabledCodecs + (*RTPDrift)(nil), // 52: livekit.RTPDrift + (*RTPStats)(nil), // 53: livekit.RTPStats + (*RTCPSenderReportState)(nil), // 54: livekit.RTCPSenderReportState + (*RTPForwarderState)(nil), // 55: livekit.RTPForwarderState + (*RTPMungerState)(nil), // 56: livekit.RTPMungerState + (*VP8MungerState)(nil), // 57: livekit.VP8MungerState + (*TimedVersion)(nil), // 58: livekit.TimedVersion + (*DataStream)(nil), // 59: livekit.DataStream + (*WebhookConfig)(nil), // 60: livekit.WebhookConfig + nil, // 61: livekit.ParticipantInfo.AttributesEntry + nil, // 62: livekit.RTPStats.GapHistogramEntry + (*DataStream_TextHeader)(nil), // 63: livekit.DataStream.TextHeader + (*DataStream_ByteHeader)(nil), // 64: livekit.DataStream.ByteHeader + (*DataStream_Header)(nil), // 65: livekit.DataStream.Header + (*DataStream_Chunk)(nil), // 66: livekit.DataStream.Chunk + (*DataStream_Trailer)(nil), // 67: livekit.DataStream.Trailer + nil, // 68: livekit.DataStream.Header.AttributesEntry + nil, // 69: livekit.DataStream.Trailer.AttributesEntry + (*MetricsBatch)(nil), // 70: livekit.MetricsBatch + (*timestamppb.Timestamp)(nil), // 71: google.protobuf.Timestamp } var file_livekit_models_proto_depIdxs = []int32{ 24, // 0: livekit.Room.enabled_codecs:type_name -> livekit.Codec - 56, // 1: livekit.Room.version:type_name -> livekit.TimedVersion + 58, // 1: livekit.Room.version:type_name -> livekit.TimedVersion 5, // 2: livekit.ParticipantPermission.can_publish_sources:type_name -> livekit.TrackSource 13, // 3: livekit.ParticipantInfo.state:type_name -> livekit.ParticipantInfo.State 30, // 4: livekit.ParticipantInfo.tracks:type_name -> livekit.TrackInfo 26, // 5: livekit.ParticipantInfo.permission:type_name -> livekit.ParticipantPermission 14, // 6: livekit.ParticipantInfo.kind:type_name -> livekit.ParticipantInfo.Kind - 59, // 7: livekit.ParticipantInfo.attributes:type_name -> livekit.ParticipantInfo.AttributesEntry + 61, // 7: livekit.ParticipantInfo.attributes:type_name -> livekit.ParticipantInfo.AttributesEntry 9, // 8: livekit.ParticipantInfo.disconnect_reason:type_name -> livekit.DisconnectReason 15, // 9: livekit.ParticipantInfo.kind_details:type_name -> livekit.ParticipantInfo.KindDetail 31, // 10: livekit.SimulcastCodecInfo.layers:type_name -> livekit.VideoLayer @@ -5925,64 +6187,74 @@ var file_livekit_models_proto_depIdxs = []int32{ 31, // 13: livekit.TrackInfo.layers:type_name -> livekit.VideoLayer 29, // 14: livekit.TrackInfo.codecs:type_name -> livekit.SimulcastCodecInfo 16, // 15: livekit.TrackInfo.encryption:type_name -> livekit.Encryption.Type - 56, // 16: livekit.TrackInfo.version:type_name -> livekit.TimedVersion + 58, // 16: livekit.TrackInfo.version:type_name -> livekit.TimedVersion 12, // 17: livekit.TrackInfo.audio_features:type_name -> livekit.AudioTrackFeature 3, // 18: livekit.TrackInfo.backup_codec_policy:type_name -> livekit.BackupCodecPolicy 6, // 19: livekit.VideoLayer.quality:type_name -> livekit.VideoQuality 17, // 20: livekit.DataPacket.kind:type_name -> livekit.DataPacket.Kind - 35, // 21: livekit.DataPacket.user:type_name -> livekit.UserPacket - 33, // 22: livekit.DataPacket.speaker:type_name -> livekit.ActiveSpeakerUpdate - 36, // 23: livekit.DataPacket.sip_dtmf:type_name -> livekit.SipDTMF - 37, // 24: livekit.DataPacket.transcription:type_name -> livekit.Transcription - 68, // 25: livekit.DataPacket.metrics:type_name -> livekit.MetricsBatch - 39, // 26: livekit.DataPacket.chat_message:type_name -> livekit.ChatMessage - 40, // 27: livekit.DataPacket.rpc_request:type_name -> livekit.RpcRequest - 41, // 28: livekit.DataPacket.rpc_ack:type_name -> livekit.RpcAck - 42, // 29: livekit.DataPacket.rpc_response:type_name -> livekit.RpcResponse - 63, // 30: livekit.DataPacket.stream_header:type_name -> livekit.DataStream.Header - 64, // 31: livekit.DataPacket.stream_chunk:type_name -> livekit.DataStream.Chunk - 65, // 32: livekit.DataPacket.stream_trailer:type_name -> livekit.DataStream.Trailer - 16, // 33: livekit.DataPacket.encryption_type:type_name -> livekit.Encryption.Type - 34, // 34: livekit.ActiveSpeakerUpdate.speakers:type_name -> livekit.SpeakerInfo - 38, // 35: livekit.Transcription.segments:type_name -> livekit.TranscriptionSegment - 43, // 36: livekit.RpcResponse.error:type_name -> livekit.RpcError - 18, // 37: livekit.ServerInfo.edition:type_name -> livekit.ServerInfo.Edition - 19, // 38: livekit.ClientInfo.sdk:type_name -> livekit.ClientInfo.SDK - 48, // 39: livekit.ClientConfiguration.video:type_name -> livekit.VideoConfiguration - 48, // 40: livekit.ClientConfiguration.screen:type_name -> livekit.VideoConfiguration - 8, // 41: livekit.ClientConfiguration.resume_connection:type_name -> livekit.ClientConfigSetting - 49, // 42: livekit.ClientConfiguration.disabled_codecs:type_name -> livekit.DisabledCodecs - 8, // 43: livekit.ClientConfiguration.force_relay:type_name -> livekit.ClientConfigSetting - 8, // 44: livekit.VideoConfiguration.hardware_encoder:type_name -> livekit.ClientConfigSetting - 24, // 45: livekit.DisabledCodecs.codecs:type_name -> livekit.Codec - 24, // 46: livekit.DisabledCodecs.publish:type_name -> livekit.Codec - 69, // 47: livekit.RTPDrift.start_time:type_name -> google.protobuf.Timestamp - 69, // 48: livekit.RTPDrift.end_time:type_name -> google.protobuf.Timestamp - 69, // 49: livekit.RTPStats.start_time:type_name -> google.protobuf.Timestamp - 69, // 50: livekit.RTPStats.end_time:type_name -> google.protobuf.Timestamp - 60, // 51: livekit.RTPStats.gap_histogram:type_name -> livekit.RTPStats.GapHistogramEntry - 69, // 52: livekit.RTPStats.last_pli:type_name -> google.protobuf.Timestamp - 69, // 53: livekit.RTPStats.last_fir:type_name -> google.protobuf.Timestamp - 69, // 54: livekit.RTPStats.last_key_frame:type_name -> google.protobuf.Timestamp - 69, // 55: livekit.RTPStats.last_layer_lock_pli:type_name -> google.protobuf.Timestamp - 50, // 56: livekit.RTPStats.packet_drift:type_name -> livekit.RTPDrift - 50, // 57: livekit.RTPStats.ntp_report_drift:type_name -> livekit.RTPDrift - 50, // 58: livekit.RTPStats.rebased_report_drift:type_name -> livekit.RTPDrift - 50, // 59: livekit.RTPStats.received_report_drift:type_name -> livekit.RTPDrift - 54, // 60: livekit.RTPForwarderState.rtp_munger:type_name -> livekit.RTPMungerState - 55, // 61: livekit.RTPForwarderState.vp8_munger:type_name -> livekit.VP8MungerState - 52, // 62: livekit.RTPForwarderState.sender_report_state:type_name -> livekit.RTCPSenderReportState - 20, // 63: livekit.DataStream.TextHeader.operation_type:type_name -> livekit.DataStream.OperationType - 16, // 64: livekit.DataStream.Header.encryption_type:type_name -> livekit.Encryption.Type - 66, // 65: livekit.DataStream.Header.attributes:type_name -> livekit.DataStream.Header.AttributesEntry - 61, // 66: livekit.DataStream.Header.text_header:type_name -> livekit.DataStream.TextHeader - 62, // 67: livekit.DataStream.Header.byte_header:type_name -> livekit.DataStream.ByteHeader - 67, // 68: livekit.DataStream.Trailer.attributes:type_name -> livekit.DataStream.Trailer.AttributesEntry - 69, // [69:69] is the sub-list for method output_type - 69, // [69:69] is the sub-list for method input_type - 69, // [69:69] is the sub-list for extension type_name - 69, // [69:69] is the sub-list for extension extendee - 0, // [0:69] is the sub-list for field type_name + 37, // 21: livekit.DataPacket.user:type_name -> livekit.UserPacket + 35, // 22: livekit.DataPacket.speaker:type_name -> livekit.ActiveSpeakerUpdate + 38, // 23: livekit.DataPacket.sip_dtmf:type_name -> livekit.SipDTMF + 39, // 24: livekit.DataPacket.transcription:type_name -> livekit.Transcription + 70, // 25: livekit.DataPacket.metrics:type_name -> livekit.MetricsBatch + 41, // 26: livekit.DataPacket.chat_message:type_name -> livekit.ChatMessage + 42, // 27: livekit.DataPacket.rpc_request:type_name -> livekit.RpcRequest + 43, // 28: livekit.DataPacket.rpc_ack:type_name -> livekit.RpcAck + 44, // 29: livekit.DataPacket.rpc_response:type_name -> livekit.RpcResponse + 65, // 30: livekit.DataPacket.stream_header:type_name -> livekit.DataStream.Header + 66, // 31: livekit.DataPacket.stream_chunk:type_name -> livekit.DataStream.Chunk + 67, // 32: livekit.DataPacket.stream_trailer:type_name -> livekit.DataStream.Trailer + 33, // 33: livekit.DataPacket.encrypted_packet:type_name -> livekit.EncryptedPacket + 16, // 34: livekit.EncryptedPacket.encryption_type:type_name -> livekit.Encryption.Type + 37, // 35: livekit.EncryptedPacketPayload.user:type_name -> livekit.UserPacket + 70, // 36: livekit.EncryptedPacketPayload.metrics:type_name -> livekit.MetricsBatch + 41, // 37: livekit.EncryptedPacketPayload.chat_message:type_name -> livekit.ChatMessage + 42, // 38: livekit.EncryptedPacketPayload.rpc_request:type_name -> livekit.RpcRequest + 43, // 39: livekit.EncryptedPacketPayload.rpc_ack:type_name -> livekit.RpcAck + 44, // 40: livekit.EncryptedPacketPayload.rpc_response:type_name -> livekit.RpcResponse + 65, // 41: livekit.EncryptedPacketPayload.stream_header:type_name -> livekit.DataStream.Header + 66, // 42: livekit.EncryptedPacketPayload.stream_chunk:type_name -> livekit.DataStream.Chunk + 67, // 43: livekit.EncryptedPacketPayload.stream_trailer:type_name -> livekit.DataStream.Trailer + 36, // 44: livekit.ActiveSpeakerUpdate.speakers:type_name -> livekit.SpeakerInfo + 40, // 45: livekit.Transcription.segments:type_name -> livekit.TranscriptionSegment + 45, // 46: livekit.RpcResponse.error:type_name -> livekit.RpcError + 18, // 47: livekit.ServerInfo.edition:type_name -> livekit.ServerInfo.Edition + 19, // 48: livekit.ClientInfo.sdk:type_name -> livekit.ClientInfo.SDK + 50, // 49: livekit.ClientConfiguration.video:type_name -> livekit.VideoConfiguration + 50, // 50: livekit.ClientConfiguration.screen:type_name -> livekit.VideoConfiguration + 8, // 51: livekit.ClientConfiguration.resume_connection:type_name -> livekit.ClientConfigSetting + 51, // 52: livekit.ClientConfiguration.disabled_codecs:type_name -> livekit.DisabledCodecs + 8, // 53: livekit.ClientConfiguration.force_relay:type_name -> livekit.ClientConfigSetting + 8, // 54: livekit.VideoConfiguration.hardware_encoder:type_name -> livekit.ClientConfigSetting + 24, // 55: livekit.DisabledCodecs.codecs:type_name -> livekit.Codec + 24, // 56: livekit.DisabledCodecs.publish:type_name -> livekit.Codec + 71, // 57: livekit.RTPDrift.start_time:type_name -> google.protobuf.Timestamp + 71, // 58: livekit.RTPDrift.end_time:type_name -> google.protobuf.Timestamp + 71, // 59: livekit.RTPStats.start_time:type_name -> google.protobuf.Timestamp + 71, // 60: livekit.RTPStats.end_time:type_name -> google.protobuf.Timestamp + 62, // 61: livekit.RTPStats.gap_histogram:type_name -> livekit.RTPStats.GapHistogramEntry + 71, // 62: livekit.RTPStats.last_pli:type_name -> google.protobuf.Timestamp + 71, // 63: livekit.RTPStats.last_fir:type_name -> google.protobuf.Timestamp + 71, // 64: livekit.RTPStats.last_key_frame:type_name -> google.protobuf.Timestamp + 71, // 65: livekit.RTPStats.last_layer_lock_pli:type_name -> google.protobuf.Timestamp + 52, // 66: livekit.RTPStats.packet_drift:type_name -> livekit.RTPDrift + 52, // 67: livekit.RTPStats.ntp_report_drift:type_name -> livekit.RTPDrift + 52, // 68: livekit.RTPStats.rebased_report_drift:type_name -> livekit.RTPDrift + 52, // 69: livekit.RTPStats.received_report_drift:type_name -> livekit.RTPDrift + 56, // 70: livekit.RTPForwarderState.rtp_munger:type_name -> livekit.RTPMungerState + 57, // 71: livekit.RTPForwarderState.vp8_munger:type_name -> livekit.VP8MungerState + 54, // 72: livekit.RTPForwarderState.sender_report_state:type_name -> livekit.RTCPSenderReportState + 20, // 73: livekit.DataStream.TextHeader.operation_type:type_name -> livekit.DataStream.OperationType + 16, // 74: livekit.DataStream.Header.encryption_type:type_name -> livekit.Encryption.Type + 68, // 75: livekit.DataStream.Header.attributes:type_name -> livekit.DataStream.Header.AttributesEntry + 63, // 76: livekit.DataStream.Header.text_header:type_name -> livekit.DataStream.TextHeader + 64, // 77: livekit.DataStream.Header.byte_header:type_name -> livekit.DataStream.ByteHeader + 69, // 78: livekit.DataStream.Trailer.attributes:type_name -> livekit.DataStream.Trailer.AttributesEntry + 79, // [79:79] is the sub-list for method output_type + 79, // [79:79] is the sub-list for method input_type + 79, // [79:79] is the sub-list for extension type_name + 79, // [79:79] is the sub-list for extension extendee + 0, // [0:79] is the sub-list for field type_name } func init() { file_livekit_models_proto_init() } @@ -6004,28 +6276,40 @@ func file_livekit_models_proto_init() { (*DataPacket_StreamHeader)(nil), (*DataPacket_StreamChunk)(nil), (*DataPacket_StreamTrailer)(nil), - } - file_livekit_models_proto_msgTypes[14].OneofWrappers = []any{} - file_livekit_models_proto_msgTypes[18].OneofWrappers = []any{} - file_livekit_models_proto_msgTypes[21].OneofWrappers = []any{ + (*DataPacket_EncryptedPacket)(nil), + } + file_livekit_models_proto_msgTypes[13].OneofWrappers = []any{ + (*EncryptedPacketPayload_User)(nil), + (*EncryptedPacketPayload_Metrics)(nil), + (*EncryptedPacketPayload_ChatMessage)(nil), + (*EncryptedPacketPayload_RpcRequest)(nil), + (*EncryptedPacketPayload_RpcAck)(nil), + (*EncryptedPacketPayload_RpcResponse)(nil), + (*EncryptedPacketPayload_StreamHeader)(nil), + (*EncryptedPacketPayload_StreamChunk)(nil), + (*EncryptedPacketPayload_StreamTrailer)(nil), + } + file_livekit_models_proto_msgTypes[16].OneofWrappers = []any{} + file_livekit_models_proto_msgTypes[20].OneofWrappers = []any{} + file_livekit_models_proto_msgTypes[23].OneofWrappers = []any{ (*RpcResponse_Payload)(nil), (*RpcResponse_Error)(nil), } - file_livekit_models_proto_msgTypes[32].OneofWrappers = []any{ + file_livekit_models_proto_msgTypes[34].OneofWrappers = []any{ (*RTPForwarderState_Vp8Munger)(nil), } - file_livekit_models_proto_msgTypes[42].OneofWrappers = []any{ + file_livekit_models_proto_msgTypes[44].OneofWrappers = []any{ (*DataStream_Header_TextHeader)(nil), (*DataStream_Header_ByteHeader)(nil), } - file_livekit_models_proto_msgTypes[43].OneofWrappers = []any{} + file_livekit_models_proto_msgTypes[45].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_livekit_models_proto_rawDesc), len(file_livekit_models_proto_rawDesc)), NumEnums: 21, - NumMessages: 47, + NumMessages: 49, NumExtensions: 0, NumServices: 0, }, From 3cfd63903e43a2e7d05ba5cd23296dd0804195ef Mon Sep 17 00:00:00 2001 From: lukasIO Date: Fri, 11 Jul 2025 12:58:25 +0200 Subject: [PATCH 10/10] whitespace --- protobufs/livekit_models.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protobufs/livekit_models.proto b/protobufs/livekit_models.proto index ea03709c..6495d1d8 100644 --- a/protobufs/livekit_models.proto +++ b/protobufs/livekit_models.proto @@ -379,7 +379,7 @@ message RpcRequest { string method = 2; string payload = 3; uint32 response_timeout_ms = 4; - uint32 version = 5; + uint32 version = 5; } message RpcAck {