From d94856640a96e4909ae97f86d339cd2b8db8e060 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Fri, 12 Jul 2024 08:42:32 -0700 Subject: [PATCH 01/23] Update rust ffi --- livekit-protocol/livekit/protocol/agent.py | 96 ++++--- livekit-protocol/livekit/protocol/agent.pyi | 155 +++++++---- livekit-protocol/livekit/protocol/egress.py | 44 ++-- livekit-protocol/livekit/protocol/egress.pyi | 6 +- livekit-protocol/livekit/protocol/room.py | 87 ++++--- livekit-protocol/livekit/protocol/room.pyi | 39 ++- livekit-protocol/protocol | 2 +- .../livekit/rtc/_proto/audio_frame_pb2.py | 92 +++---- .../livekit/rtc/_proto/audio_frame_pb2.pyi | 10 +- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 244 +++++++++--------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 50 +++- livekit-rtc/rust-sdks | 2 +- 12 files changed, 492 insertions(+), 335 deletions(-) diff --git a/livekit-protocol/livekit/protocol/agent.py b/livekit-protocol/livekit/protocol/agent.py index b83ff034..327e4cd9 100644 --- a/livekit-protocol/livekit/protocol/agent.py +++ b/livekit-protocol/livekit/protocol/agent.py @@ -15,7 +15,7 @@ from . import models as _models_ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\"\xa7\x01\n\nWorkerInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tnamespace\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x1e\n\x04type\x18\x05 \x01(\x0e\x32\x10.livekit.JobType\x12;\n\x13\x61llowed_permissions\x18\x06 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\"6\n\tAgentInfo\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\"\xa5\x01\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x11\n\tnamespace\x18\x05 \x01(\tB\x0e\n\x0c_participant\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\xd8\x01\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xd0\x01\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermissionB\x0c\n\n_namespace\"U\n\x16RegisterWorkerResponse\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\"#\n\x11MigrateJobRequest\x12\x0e\n\x06job_id\x18\x01 \x01(\t\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xa8\x01\n\x14\x41vailabilityResponse\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\"\x96\x01\n\x0fUpdateJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\'\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatusH\x00\x88\x01\x01\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x15\n\x08metadata\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x0c\n\x04load\x18\x05 \x01(\x02\x42\t\n\x07_statusB\x0b\n\t_metadata\"}\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x15\n\x08metadata\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x42\t\n\x07_statusB\x0b\n\t_metadata\"S\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05token\x18\x03 \x01(\tB\x06\n\x04_url*(\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*:\n\tJobStatus\x12\x0e\n\nJS_UNKNOWN\x10\x00\x12\x0e\n\nJS_SUCCESS\x10\x01\x12\r\n\tJS_FAILED\x10\x02\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\"P\n\x1a\x43reateAgentDispatchRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\"9\n\x11RoomAgentDispatch\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"1\n\x1a\x44\x65leteAgentDispatchRequest\x12\x13\n\x0b\x64ispatch_id\x18\x01 \x01(\t\">\n\x19ListAgentDispatchRequesst\x12\x13\n\x0b\x64ispatch_id\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\"M\n\x19ListAgentDispatchResponse\x12\x30\n\x10\x61gent_dispatches\x18\x01 \x03(\x0b\x32\x16.livekit.AgentDispatch\"{\n\rAgentDispatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0c\n\x04room\x18\x03 \x01(\t\x12\x10\n\x08metadata\x18\x04 \x01(\t\x12*\n\x05state\x18\x05 \x01(\x0b\x32\x1b.livekit.AgentDispatchState\"X\n\x12\x41gentDispatchState\x12\x1a\n\x04jobs\x18\x01 \x03(\x0b\x32\x0c.livekit.Job\x12\x12\n\ncreated_at\x18\x02 \x01(\x03\x12\x12\n\ndeleted_at\x18\x03 \x01(\x03\"\xf1\x01\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x15\n\tnamespace\x18\x05 \x01(\tB\x02\x18\x01\x12\x10\n\x08metadata\x18\x06 \x01(\t\x12\x12\n\nagent_name\x18\x07 \x01(\t\x12 \n\x05state\x18\x08 \x01(\x0b\x32\x11.livekit.JobStateB\x0e\n\x0c_participant\"w\n\x08JobState\x12\"\n\x06status\x18\x01 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x04 \x01(\x03\x12\x12\n\nupdated_at\x18\x05 \x01(\x03\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\x88\x02\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12.\n\x0btermination\x18\x05 \x01(\x0b\x32\x17.livekit.JobTerminationH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xe4\x01\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x12\n\nagent_name\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermissionB\x0c\n\n_namespace\"U\n\x16RegisterWorkerResponse\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\"$\n\x11MigrateJobRequest\x12\x0f\n\x07job_ids\x18\x02 \x03(\t\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xa8\x01\n\x14\x41vailabilityResponse\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\"T\n\x0fUpdateJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\"\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"l\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x12\x11\n\tjob_count\x18\x04 \x01(\x05\x42\t\n\x07_status\"S\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05token\x18\x03 \x01(\tB\x06\n\x04_url\" \n\x0eJobTermination\x12\x0e\n\x06job_id\x18\x01 \x01(\t*(\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*J\n\tJobStatus\x12\x0e\n\nJS_PENDING\x10\x00\x12\x0e\n\nJS_RUNNING\x10\x01\x12\x0e\n\nJS_SUCCESS\x10\x02\x12\r\n\tJS_FAILED\x10\x03\x32\x84\x02\n\x0c\x41gentService\x12M\n\x0e\x43reateDispatch\x12#.livekit.CreateAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12M\n\x0e\x44\x65leteDispatch\x12#.livekit.DeleteAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12V\n\x0cListDispatch\x12\".livekit.ListAgentDispatchRequesst\x1a\".livekit.ListAgentDispatchResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,42 +23,60 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' - _globals['_JOBTYPE']._serialized_start=2206 - _globals['_JOBTYPE']._serialized_end=2246 - _globals['_WORKERSTATUS']._serialized_start=2248 - _globals['_WORKERSTATUS']._serialized_end=2293 - _globals['_JOBSTATUS']._serialized_start=2295 - _globals['_JOBSTATUS']._serialized_end=2353 - _globals['_WORKERINFO']._serialized_start=55 - _globals['_WORKERINFO']._serialized_end=222 - _globals['_AGENTINFO']._serialized_start=224 - _globals['_AGENTINFO']._serialized_end=278 - _globals['_JOB']._serialized_start=281 - _globals['_JOB']._serialized_end=446 - _globals['_WORKERMESSAGE']._serialized_start=449 - _globals['_WORKERMESSAGE']._serialized_end=825 - _globals['_SERVERMESSAGE']._serialized_start=828 - _globals['_SERVERMESSAGE']._serialized_end=1044 - _globals['_SIMULATEJOBREQUEST']._serialized_start=1047 - _globals['_SIMULATEJOBREQUEST']._serialized_end=1175 - _globals['_WORKERPING']._serialized_start=1177 - _globals['_WORKERPING']._serialized_end=1208 - _globals['_WORKERPONG']._serialized_start=1210 - _globals['_WORKERPONG']._serialized_end=1265 - _globals['_REGISTERWORKERREQUEST']._serialized_start=1268 - _globals['_REGISTERWORKERREQUEST']._serialized_end=1476 - _globals['_REGISTERWORKERRESPONSE']._serialized_start=1478 - _globals['_REGISTERWORKERRESPONSE']._serialized_end=1563 - _globals['_MIGRATEJOBREQUEST']._serialized_start=1565 - _globals['_MIGRATEJOBREQUEST']._serialized_end=1600 - _globals['_AVAILABILITYREQUEST']._serialized_start=1602 - _globals['_AVAILABILITYREQUEST']._serialized_end=1668 - _globals['_AVAILABILITYRESPONSE']._serialized_start=1671 - _globals['_AVAILABILITYRESPONSE']._serialized_end=1839 - _globals['_UPDATEJOBSTATUS']._serialized_start=1842 - _globals['_UPDATEJOBSTATUS']._serialized_end=1992 - _globals['_UPDATEWORKERSTATUS']._serialized_start=1994 - _globals['_UPDATEWORKERSTATUS']._serialized_end=2119 - _globals['_JOBASSIGNMENT']._serialized_start=2121 - _globals['_JOBASSIGNMENT']._serialized_end=2204 + _globals['_JOB'].fields_by_name['namespace']._options = None + _globals['_JOB'].fields_by_name['namespace']._serialized_options = b'\030\001' + _globals['_JOBTYPE']._serialized_start=2746 + _globals['_JOBTYPE']._serialized_end=2786 + _globals['_WORKERSTATUS']._serialized_start=2788 + _globals['_WORKERSTATUS']._serialized_end=2833 + _globals['_JOBSTATUS']._serialized_start=2835 + _globals['_JOBSTATUS']._serialized_end=2909 + _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_start=54 + _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_end=134 + _globals['_ROOMAGENTDISPATCH']._serialized_start=136 + _globals['_ROOMAGENTDISPATCH']._serialized_end=193 + _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_start=195 + _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_end=244 + _globals['_LISTAGENTDISPATCHREQUESST']._serialized_start=246 + _globals['_LISTAGENTDISPATCHREQUESST']._serialized_end=308 + _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_start=310 + _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_end=387 + _globals['_AGENTDISPATCH']._serialized_start=389 + _globals['_AGENTDISPATCH']._serialized_end=512 + _globals['_AGENTDISPATCHSTATE']._serialized_start=514 + _globals['_AGENTDISPATCHSTATE']._serialized_end=602 + _globals['_JOB']._serialized_start=605 + _globals['_JOB']._serialized_end=846 + _globals['_JOBSTATE']._serialized_start=848 + _globals['_JOBSTATE']._serialized_end=967 + _globals['_WORKERMESSAGE']._serialized_start=970 + _globals['_WORKERMESSAGE']._serialized_end=1346 + _globals['_SERVERMESSAGE']._serialized_start=1349 + _globals['_SERVERMESSAGE']._serialized_end=1613 + _globals['_SIMULATEJOBREQUEST']._serialized_start=1616 + _globals['_SIMULATEJOBREQUEST']._serialized_end=1744 + _globals['_WORKERPING']._serialized_start=1746 + _globals['_WORKERPING']._serialized_end=1777 + _globals['_WORKERPONG']._serialized_start=1779 + _globals['_WORKERPONG']._serialized_end=1834 + _globals['_REGISTERWORKERREQUEST']._serialized_start=1837 + _globals['_REGISTERWORKERREQUEST']._serialized_end=2065 + _globals['_REGISTERWORKERRESPONSE']._serialized_start=2067 + _globals['_REGISTERWORKERRESPONSE']._serialized_end=2152 + _globals['_MIGRATEJOBREQUEST']._serialized_start=2154 + _globals['_MIGRATEJOBREQUEST']._serialized_end=2190 + _globals['_AVAILABILITYREQUEST']._serialized_start=2192 + _globals['_AVAILABILITYREQUEST']._serialized_end=2258 + _globals['_AVAILABILITYRESPONSE']._serialized_start=2261 + _globals['_AVAILABILITYRESPONSE']._serialized_end=2429 + _globals['_UPDATEJOBSTATUS']._serialized_start=2431 + _globals['_UPDATEJOBSTATUS']._serialized_end=2515 + _globals['_UPDATEWORKERSTATUS']._serialized_start=2517 + _globals['_UPDATEWORKERSTATUS']._serialized_end=2625 + _globals['_JOBASSIGNMENT']._serialized_start=2627 + _globals['_JOBASSIGNMENT']._serialized_end=2710 + _globals['_JOBTERMINATION']._serialized_start=2712 + _globals['_JOBTERMINATION']._serialized_end=2744 + _globals['_AGENTSERVICE']._serialized_start=2912 + _globals['_AGENTSERVICE']._serialized_end=3172 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent.pyi b/livekit-protocol/livekit/protocol/agent.pyi index 502f695b..fee3b5a9 100644 --- a/livekit-protocol/livekit/protocol/agent.pyi +++ b/livekit-protocol/livekit/protocol/agent.pyi @@ -1,8 +1,9 @@ from . import models as _models +from google.protobuf.internal import containers as _containers from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor @@ -18,56 +19,114 @@ class WorkerStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): class JobStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () - JS_UNKNOWN: _ClassVar[JobStatus] + JS_PENDING: _ClassVar[JobStatus] + JS_RUNNING: _ClassVar[JobStatus] JS_SUCCESS: _ClassVar[JobStatus] JS_FAILED: _ClassVar[JobStatus] JT_ROOM: JobType JT_PUBLISHER: JobType WS_AVAILABLE: WorkerStatus WS_FULL: WorkerStatus -JS_UNKNOWN: JobStatus +JS_PENDING: JobStatus +JS_RUNNING: JobStatus JS_SUCCESS: JobStatus JS_FAILED: JobStatus -class WorkerInfo(_message.Message): - __slots__ = ("id", "namespace", "version", "name", "type", "allowed_permissions") - ID_FIELD_NUMBER: _ClassVar[int] - NAMESPACE_FIELD_NUMBER: _ClassVar[int] - VERSION_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - ALLOWED_PERMISSIONS_FIELD_NUMBER: _ClassVar[int] - id: str - namespace: str - version: str - name: str - type: JobType - allowed_permissions: _models.ParticipantPermission - def __init__(self, id: _Optional[str] = ..., namespace: _Optional[str] = ..., version: _Optional[str] = ..., name: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., allowed_permissions: _Optional[_Union[_models.ParticipantPermission, _Mapping]] = ...) -> None: ... +class CreateAgentDispatchRequest(_message.Message): + __slots__ = ("agent_name", "room", "metadata") + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + ROOM_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + agent_name: str + room: str + metadata: str + def __init__(self, agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ... -class AgentInfo(_message.Message): - __slots__ = ("id", "name", "version") +class RoomAgentDispatch(_message.Message): + __slots__ = ("agent_name", "metadata") + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + agent_name: str + metadata: str + def __init__(self, agent_name: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ... + +class DeleteAgentDispatchRequest(_message.Message): + __slots__ = ("dispatch_id",) + DISPATCH_ID_FIELD_NUMBER: _ClassVar[int] + dispatch_id: str + def __init__(self, dispatch_id: _Optional[str] = ...) -> None: ... + +class ListAgentDispatchRequesst(_message.Message): + __slots__ = ("dispatch_id", "room") + DISPATCH_ID_FIELD_NUMBER: _ClassVar[int] + ROOM_FIELD_NUMBER: _ClassVar[int] + dispatch_id: str + room: str + def __init__(self, dispatch_id: _Optional[str] = ..., room: _Optional[str] = ...) -> None: ... + +class ListAgentDispatchResponse(_message.Message): + __slots__ = ("agent_dispatches",) + AGENT_DISPATCHES_FIELD_NUMBER: _ClassVar[int] + agent_dispatches: _containers.RepeatedCompositeFieldContainer[AgentDispatch] + def __init__(self, agent_dispatches: _Optional[_Iterable[_Union[AgentDispatch, _Mapping]]] = ...) -> None: ... + +class AgentDispatch(_message.Message): + __slots__ = ("id", "agent_name", "room", "metadata", "state") ID_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - VERSION_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + ROOM_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] id: str - name: str - version: str - def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + agent_name: str + room: str + metadata: str + state: AgentDispatchState + def __init__(self, id: _Optional[str] = ..., agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ..., state: _Optional[_Union[AgentDispatchState, _Mapping]] = ...) -> None: ... + +class AgentDispatchState(_message.Message): + __slots__ = ("jobs", "created_at", "deleted_at") + JOBS_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + DELETED_AT_FIELD_NUMBER: _ClassVar[int] + jobs: _containers.RepeatedCompositeFieldContainer[Job] + created_at: int + deleted_at: int + def __init__(self, jobs: _Optional[_Iterable[_Union[Job, _Mapping]]] = ..., created_at: _Optional[int] = ..., deleted_at: _Optional[int] = ...) -> None: ... class Job(_message.Message): - __slots__ = ("id", "type", "room", "participant", "namespace") + __slots__ = ("id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state") ID_FIELD_NUMBER: _ClassVar[int] TYPE_FIELD_NUMBER: _ClassVar[int] ROOM_FIELD_NUMBER: _ClassVar[int] PARTICIPANT_FIELD_NUMBER: _ClassVar[int] NAMESPACE_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] id: str type: JobType room: _models.Room participant: _models.ParticipantInfo namespace: str - def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ...) -> None: ... + metadata: str + agent_name: str + state: JobState + def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ..., metadata: _Optional[str] = ..., agent_name: _Optional[str] = ..., state: _Optional[_Union[JobState, _Mapping]] = ...) -> None: ... + +class JobState(_message.Message): + __slots__ = ("status", "error", "started_at", "ended_at", "updated_at") + STATUS_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + STARTED_AT_FIELD_NUMBER: _ClassVar[int] + ENDED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + status: JobStatus + error: str + started_at: int + ended_at: int + updated_at: int + def __init__(self, status: _Optional[_Union[JobStatus, str]] = ..., error: _Optional[str] = ..., started_at: _Optional[int] = ..., ended_at: _Optional[int] = ..., updated_at: _Optional[int] = ...) -> None: ... class WorkerMessage(_message.Message): __slots__ = ("register", "availability", "update_worker", "update_job", "ping", "simulate_job", "migrate_job") @@ -88,16 +147,18 @@ class WorkerMessage(_message.Message): def __init__(self, register: _Optional[_Union[RegisterWorkerRequest, _Mapping]] = ..., availability: _Optional[_Union[AvailabilityResponse, _Mapping]] = ..., update_worker: _Optional[_Union[UpdateWorkerStatus, _Mapping]] = ..., update_job: _Optional[_Union[UpdateJobStatus, _Mapping]] = ..., ping: _Optional[_Union[WorkerPing, _Mapping]] = ..., simulate_job: _Optional[_Union[SimulateJobRequest, _Mapping]] = ..., migrate_job: _Optional[_Union[MigrateJobRequest, _Mapping]] = ...) -> None: ... class ServerMessage(_message.Message): - __slots__ = ("register", "availability", "assignment", "pong") + __slots__ = ("register", "availability", "assignment", "termination", "pong") REGISTER_FIELD_NUMBER: _ClassVar[int] AVAILABILITY_FIELD_NUMBER: _ClassVar[int] ASSIGNMENT_FIELD_NUMBER: _ClassVar[int] + TERMINATION_FIELD_NUMBER: _ClassVar[int] PONG_FIELD_NUMBER: _ClassVar[int] register: RegisterWorkerResponse availability: AvailabilityRequest assignment: JobAssignment + termination: JobTermination pong: WorkerPong - def __init__(self, register: _Optional[_Union[RegisterWorkerResponse, _Mapping]] = ..., availability: _Optional[_Union[AvailabilityRequest, _Mapping]] = ..., assignment: _Optional[_Union[JobAssignment, _Mapping]] = ..., pong: _Optional[_Union[WorkerPong, _Mapping]] = ...) -> None: ... + def __init__(self, register: _Optional[_Union[RegisterWorkerResponse, _Mapping]] = ..., availability: _Optional[_Union[AvailabilityRequest, _Mapping]] = ..., assignment: _Optional[_Union[JobAssignment, _Mapping]] = ..., termination: _Optional[_Union[JobTermination, _Mapping]] = ..., pong: _Optional[_Union[WorkerPong, _Mapping]] = ...) -> None: ... class SimulateJobRequest(_message.Message): __slots__ = ("type", "room", "participant") @@ -124,20 +185,22 @@ class WorkerPong(_message.Message): def __init__(self, last_timestamp: _Optional[int] = ..., timestamp: _Optional[int] = ...) -> None: ... class RegisterWorkerRequest(_message.Message): - __slots__ = ("type", "version", "name", "ping_interval", "namespace", "allowed_permissions") + __slots__ = ("type", "agent_name", "version", "name", "ping_interval", "namespace", "allowed_permissions") TYPE_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] VERSION_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] PING_INTERVAL_FIELD_NUMBER: _ClassVar[int] NAMESPACE_FIELD_NUMBER: _ClassVar[int] ALLOWED_PERMISSIONS_FIELD_NUMBER: _ClassVar[int] type: JobType + agent_name: str version: str name: str ping_interval: int namespace: str allowed_permissions: _models.ParticipantPermission - def __init__(self, type: _Optional[_Union[JobType, str]] = ..., version: _Optional[str] = ..., name: _Optional[str] = ..., ping_interval: _Optional[int] = ..., namespace: _Optional[str] = ..., allowed_permissions: _Optional[_Union[_models.ParticipantPermission, _Mapping]] = ...) -> None: ... + def __init__(self, type: _Optional[_Union[JobType, str]] = ..., agent_name: _Optional[str] = ..., version: _Optional[str] = ..., name: _Optional[str] = ..., ping_interval: _Optional[int] = ..., namespace: _Optional[str] = ..., allowed_permissions: _Optional[_Union[_models.ParticipantPermission, _Mapping]] = ...) -> None: ... class RegisterWorkerResponse(_message.Message): __slots__ = ("worker_id", "server_info") @@ -148,10 +211,10 @@ class RegisterWorkerResponse(_message.Message): def __init__(self, worker_id: _Optional[str] = ..., server_info: _Optional[_Union[_models.ServerInfo, _Mapping]] = ...) -> None: ... class MigrateJobRequest(_message.Message): - __slots__ = ("job_id",) - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... + __slots__ = ("job_ids",) + JOB_IDS_FIELD_NUMBER: _ClassVar[int] + job_ids: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, job_ids: _Optional[_Iterable[str]] = ...) -> None: ... class AvailabilityRequest(_message.Message): __slots__ = ("job", "resuming") @@ -178,28 +241,24 @@ class AvailabilityResponse(_message.Message): def __init__(self, job_id: _Optional[str] = ..., available: bool = ..., supports_resume: bool = ..., participant_name: _Optional[str] = ..., participant_identity: _Optional[str] = ..., participant_metadata: _Optional[str] = ...) -> None: ... class UpdateJobStatus(_message.Message): - __slots__ = ("job_id", "status", "error", "metadata", "load") + __slots__ = ("job_id", "status", "error") JOB_ID_FIELD_NUMBER: _ClassVar[int] STATUS_FIELD_NUMBER: _ClassVar[int] ERROR_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - LOAD_FIELD_NUMBER: _ClassVar[int] job_id: str status: JobStatus error: str - metadata: str - load: float - def __init__(self, job_id: _Optional[str] = ..., status: _Optional[_Union[JobStatus, str]] = ..., error: _Optional[str] = ..., metadata: _Optional[str] = ..., load: _Optional[float] = ...) -> None: ... + def __init__(self, job_id: _Optional[str] = ..., status: _Optional[_Union[JobStatus, str]] = ..., error: _Optional[str] = ...) -> None: ... class UpdateWorkerStatus(_message.Message): - __slots__ = ("status", "metadata", "load") + __slots__ = ("status", "load", "job_count") STATUS_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] LOAD_FIELD_NUMBER: _ClassVar[int] + JOB_COUNT_FIELD_NUMBER: _ClassVar[int] status: WorkerStatus - metadata: str load: float - def __init__(self, status: _Optional[_Union[WorkerStatus, str]] = ..., metadata: _Optional[str] = ..., load: _Optional[float] = ...) -> None: ... + job_count: int + def __init__(self, status: _Optional[_Union[WorkerStatus, str]] = ..., load: _Optional[float] = ..., job_count: _Optional[int] = ...) -> None: ... class JobAssignment(_message.Message): __slots__ = ("job", "url", "token") @@ -210,3 +269,9 @@ class JobAssignment(_message.Message): url: str token: str def __init__(self, job: _Optional[_Union[Job, _Mapping]] = ..., url: _Optional[str] = ..., token: _Optional[str] = ...) -> None: ... + +class JobTermination(_message.Message): + __slots__ = ("job_id",) + JOB_ID_FIELD_NUMBER: _ClassVar[int] + job_id: str + def __init__(self, job_id: _Optional[str] = ...) -> None: ... diff --git a/livekit-protocol/livekit/protocol/egress.py b/livekit-protocol/livekit/protocol/egress.py index 1fc90211..4ae32165 100644 --- a/livekit-protocol/livekit/protocol/egress.py +++ b/livekit-protocol/livekit/protocol/egress.py @@ -15,7 +15,7 @@ from . import models as _models_ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14livekit_egress.proto\x12\x07livekit\x1a\x14livekit_models.proto\"\xcd\x04\n\x1aRoomCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\x12\x12\n\naudio_only\x18\x03 \x01(\x08\x12\x12\n\nvideo_only\x18\x04 \x01(\x08\x12\x17\n\x0f\x63ustom_base_url\x18\x05 \x01(\t\x12.\n\x04\x66ile\x18\x06 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x07 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\n \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x08 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\t \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\xb0\x04\n\x10WebEgressRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x1a\n\x12\x61wait_start_signal\x18\x0c \x01(\x08\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x06 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x07 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\t \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\n \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x0b \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\r \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\x85\x03\n\x18ParticipantEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x14\n\x0cscreen_share\x18\x03 \x01(\x08\x12\x30\n\x06preset\x18\x04 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x06 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x07 \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x08 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\t \x03(\x0b\x32\x14.livekit.ImageOutputB\t\n\x07options\"\xad\x04\n\x1bTrackCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x16\n\x0e\x61udio_track_id\x18\x02 \x01(\t\x12\x16\n\x0evideo_track_id\x18\x03 \x01(\t\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x08 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x06 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\x87\x01\n\x12TrackEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08track_id\x18\x02 \x01(\t\x12)\n\x04\x66ile\x18\x03 \x01(\x0b\x32\x19.livekit.DirectFileOutputH\x00\x12\x17\n\rwebsocket_url\x18\x04 \x01(\tH\x00\x42\x08\n\x06output\"\x8e\x02\n\x11\x45ncodedFileOutput\x12+\n\tfile_type\x18\x01 \x01(\x0e\x32\x18.livekit.EncodedFileType\x12\x10\n\x08\x66ilepath\x18\x02 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x06 \x01(\x08\x12\x1f\n\x02s3\x18\x03 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x04 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x05 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x07 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xa0\x03\n\x13SegmentedFileOutput\x12\x30\n\x08protocol\x18\x01 \x01(\x0e\x32\x1e.livekit.SegmentedFileProtocol\x12\x17\n\x0f\x66ilename_prefix\x18\x02 \x01(\t\x12\x15\n\rplaylist_name\x18\x03 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x0b \x01(\t\x12\x18\n\x10segment_duration\x18\x04 \x01(\r\x12\x35\n\x0f\x66ilename_suffix\x18\n \x01(\x0e\x32\x1c.livekit.SegmentedFileSuffix\x12\x18\n\x10\x64isable_manifest\x18\x08 \x01(\x08\x12\x1f\n\x02s3\x18\x05 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x06 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x07 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\t \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xe0\x01\n\x10\x44irectFileOutput\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xf8\x02\n\x0bImageOutput\x12\x18\n\x10\x63\x61pture_interval\x18\x01 \x01(\r\x12\r\n\x05width\x18\x02 \x01(\x05\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x31\n\x0f\x66ilename_suffix\x18\x05 \x01(\x0e\x32\x18.livekit.ImageFileSuffix\x12(\n\x0bimage_codec\x18\x06 \x01(\x0e\x32\x13.livekit.ImageCodec\x12\x18\n\x10\x64isable_manifest\x18\x07 \x01(\x08\x12\x1f\n\x02s3\x18\x08 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\t \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\n \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x0b \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xc8\x02\n\x08S3Upload\x12\x12\n\naccess_key\x18\x01 \x01(\t\x12\x0e\n\x06secret\x18\x02 \x01(\t\x12\x15\n\rsession_token\x18\x0b \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\x12\x18\n\x10\x66orce_path_style\x18\x06 \x01(\x08\x12\x31\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.livekit.S3Upload.MetadataEntry\x12\x0f\n\x07tagging\x18\x08 \x01(\t\x12\x1b\n\x13\x63ontent_disposition\x18\t \x01(\t\x12#\n\x05proxy\x18\n \x01(\x0b\x32\x14.livekit.ProxyConfig\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"U\n\tGCPUpload\x12\x13\n\x0b\x63redentials\x18\x01 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12#\n\x05proxy\x18\x03 \x01(\x0b\x32\x14.livekit.ProxyConfig\"T\n\x0f\x41zureBlobUpload\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63\x63ount_key\x18\x02 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x03 \x01(\t\"d\n\x0c\x41liOSSUpload\x12\x12\n\naccess_key\x18\x01 \x01(\t\x12\x0e\n\x06secret\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\">\n\x0bProxyConfig\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"G\n\x0cStreamOutput\x12)\n\x08protocol\x18\x01 \x01(\x0e\x32\x17.livekit.StreamProtocol\x12\x0c\n\x04urls\x18\x02 \x03(\t\"\xb7\x02\n\x0f\x45ncodingOptions\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\x05\x12\x11\n\tframerate\x18\x04 \x01(\x05\x12(\n\x0b\x61udio_codec\x18\x05 \x01(\x0e\x32\x13.livekit.AudioCodec\x12\x15\n\raudio_bitrate\x18\x06 \x01(\x05\x12\x15\n\raudio_quality\x18\x0b \x01(\x05\x12\x17\n\x0f\x61udio_frequency\x18\x07 \x01(\x05\x12(\n\x0bvideo_codec\x18\x08 \x01(\x0e\x32\x13.livekit.VideoCodec\x12\x15\n\rvideo_bitrate\x18\t \x01(\x05\x12\x15\n\rvideo_quality\x18\x0c \x01(\x05\x12\x1a\n\x12key_frame_interval\x18\n \x01(\x01\"8\n\x13UpdateLayoutRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\"]\n\x13UpdateStreamRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x17\n\x0f\x61\x64\x64_output_urls\x18\x02 \x03(\t\x12\x1a\n\x12remove_output_urls\x18\x03 \x03(\t\"I\n\x11ListEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x11\n\tegress_id\x18\x02 \x01(\t\x12\x0e\n\x06\x61\x63tive\x18\x03 \x01(\x08\"8\n\x12ListEgressResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.livekit.EgressInfo\"&\n\x11StopEgressRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\"\xb6\x06\n\nEgressInfo\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x0f\n\x07room_id\x18\x02 \x01(\t\x12\x11\n\troom_name\x18\r \x01(\t\x12%\n\x06status\x18\x03 \x01(\x0e\x32\x15.livekit.EgressStatus\x12\x12\n\nstarted_at\x18\n \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x0b \x01(\x03\x12\x12\n\nupdated_at\x18\x12 \x01(\x03\x12\x0f\n\x07\x64\x65tails\x18\x15 \x01(\t\x12\r\n\x05\x65rror\x18\t \x01(\t\x12\x12\n\nerror_code\x18\x16 \x01(\x05\x12=\n\x0eroom_composite\x18\x04 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequestH\x00\x12(\n\x03web\x18\x0e \x01(\x0b\x32\x19.livekit.WebEgressRequestH\x00\x12\x38\n\x0bparticipant\x18\x13 \x01(\x0b\x32!.livekit.ParticipantEgressRequestH\x00\x12?\n\x0ftrack_composite\x18\x05 \x01(\x0b\x32$.livekit.TrackCompositeEgressRequestH\x00\x12,\n\x05track\x18\x06 \x01(\x0b\x32\x1b.livekit.TrackEgressRequestH\x00\x12-\n\x06stream\x18\x07 \x01(\x0b\x32\x17.livekit.StreamInfoListB\x02\x18\x01H\x01\x12%\n\x04\x66ile\x18\x08 \x01(\x0b\x32\x11.livekit.FileInfoB\x02\x18\x01H\x01\x12-\n\x08segments\x18\x0c \x01(\x0b\x32\x15.livekit.SegmentsInfoB\x02\x18\x01H\x01\x12+\n\x0estream_results\x18\x0f \x03(\x0b\x32\x13.livekit.StreamInfo\x12\'\n\x0c\x66ile_results\x18\x10 \x03(\x0b\x32\x11.livekit.FileInfo\x12.\n\x0fsegment_results\x18\x11 \x03(\x0b\x32\x15.livekit.SegmentsInfo\x12*\n\rimage_results\x18\x14 \x03(\x0b\x32\x13.livekit.ImagesInfoB\t\n\x07requestB\x08\n\x06result\"7\n\x0eStreamInfoList\x12!\n\x04info\x18\x01 \x03(\x0b\x32\x13.livekit.StreamInfo:\x02\x18\x01\"\xbc\x01\n\nStreamInfo\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12*\n\x06status\x18\x05 \x01(\x0e\x32\x1a.livekit.StreamInfo.Status\x12\r\n\x05\x65rror\x18\x06 \x01(\t\".\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"t\n\x08\x46ileInfo\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x06 \x01(\x03\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x10\n\x08location\x18\x05 \x01(\t\"\xd9\x01\n\x0cSegmentsInfo\x12\x15\n\rplaylist_name\x18\x01 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x08 \x01(\t\x12\x10\n\x08\x64uration\x18\x02 \x01(\x03\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x19\n\x11playlist_location\x18\x04 \x01(\t\x12\x1e\n\x16live_playlist_location\x18\t \x01(\t\x12\x15\n\rsegment_count\x18\x05 \x01(\x03\x12\x12\n\nstarted_at\x18\x06 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x07 \x01(\x03\"G\n\nImagesInfo\x12\x13\n\x0bimage_count\x18\x01 \x01(\x03\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\"\xeb\x01\n\x15\x41utoParticipantEgress\x12\x30\n\x06preset\x18\x01 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x02 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x03 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12\x35\n\x0fsegment_outputs\x18\x04 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutputB\t\n\x07options\"\xdf\x01\n\x0f\x41utoTrackEgress\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output*9\n\x0f\x45ncodedFileType\x12\x14\n\x10\x44\x45\x46\x41ULT_FILETYPE\x10\x00\x12\x07\n\x03MP4\x10\x01\x12\x07\n\x03OGG\x10\x02*N\n\x15SegmentedFileProtocol\x12#\n\x1f\x44\x45\x46\x41ULT_SEGMENTED_FILE_PROTOCOL\x10\x00\x12\x10\n\x0cHLS_PROTOCOL\x10\x01*/\n\x13SegmentedFileSuffix\x12\t\n\x05INDEX\x10\x00\x12\r\n\tTIMESTAMP\x10\x01*E\n\x0fImageFileSuffix\x12\x16\n\x12IMAGE_SUFFIX_INDEX\x10\x00\x12\x1a\n\x16IMAGE_SUFFIX_TIMESTAMP\x10\x01*0\n\x0eStreamProtocol\x12\x14\n\x10\x44\x45\x46\x41ULT_PROTOCOL\x10\x00\x12\x08\n\x04RTMP\x10\x01*\xcf\x01\n\x15\x45ncodingOptionsPreset\x12\x10\n\x0cH264_720P_30\x10\x00\x12\x10\n\x0cH264_720P_60\x10\x01\x12\x11\n\rH264_1080P_30\x10\x02\x12\x11\n\rH264_1080P_60\x10\x03\x12\x19\n\x15PORTRAIT_H264_720P_30\x10\x04\x12\x19\n\x15PORTRAIT_H264_720P_60\x10\x05\x12\x1a\n\x16PORTRAIT_H264_1080P_30\x10\x06\x12\x1a\n\x16PORTRAIT_H264_1080P_60\x10\x07*\x9f\x01\n\x0c\x45gressStatus\x12\x13\n\x0f\x45GRESS_STARTING\x10\x00\x12\x11\n\rEGRESS_ACTIVE\x10\x01\x12\x11\n\rEGRESS_ENDING\x10\x02\x12\x13\n\x0f\x45GRESS_COMPLETE\x10\x03\x12\x11\n\rEGRESS_FAILED\x10\x04\x12\x12\n\x0e\x45GRESS_ABORTED\x10\x05\x12\x18\n\x14\x45GRESS_LIMIT_REACHED\x10\x06\x32\x9c\x05\n\x06\x45gress\x12T\n\x18StartRoomCompositeEgress\x12#.livekit.RoomCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12@\n\x0eStartWebEgress\x12\x19.livekit.WebEgressRequest\x1a\x13.livekit.EgressInfo\x12P\n\x16StartParticipantEgress\x12!.livekit.ParticipantEgressRequest\x1a\x13.livekit.EgressInfo\x12V\n\x19StartTrackCompositeEgress\x12$.livekit.TrackCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12\x44\n\x10StartTrackEgress\x12\x1b.livekit.TrackEgressRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateLayout\x12\x1c.livekit.UpdateLayoutRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateStream\x12\x1c.livekit.UpdateStreamRequest\x1a\x13.livekit.EgressInfo\x12\x45\n\nListEgress\x12\x1a.livekit.ListEgressRequest\x1a\x1b.livekit.ListEgressResponse\x12=\n\nStopEgress\x12\x1a.livekit.StopEgressRequest\x1a\x13.livekit.EgressInfoBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14livekit_egress.proto\x12\x07livekit\x1a\x14livekit_models.proto\"\xcd\x04\n\x1aRoomCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\x12\x12\n\naudio_only\x18\x03 \x01(\x08\x12\x12\n\nvideo_only\x18\x04 \x01(\x08\x12\x17\n\x0f\x63ustom_base_url\x18\x05 \x01(\t\x12.\n\x04\x66ile\x18\x06 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x07 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\n \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x08 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\t \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\xb0\x04\n\x10WebEgressRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x1a\n\x12\x61wait_start_signal\x18\x0c \x01(\x08\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x06 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x07 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\t \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\n \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x0b \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\r \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\x85\x03\n\x18ParticipantEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x14\n\x0cscreen_share\x18\x03 \x01(\x08\x12\x30\n\x06preset\x18\x04 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x06 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x07 \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x08 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\t \x03(\x0b\x32\x14.livekit.ImageOutputB\t\n\x07options\"\xad\x04\n\x1bTrackCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x16\n\x0e\x61udio_track_id\x18\x02 \x01(\t\x12\x16\n\x0evideo_track_id\x18\x03 \x01(\t\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x08 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x06 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutputB\x08\n\x06outputB\t\n\x07options\"\x87\x01\n\x12TrackEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08track_id\x18\x02 \x01(\t\x12)\n\x04\x66ile\x18\x03 \x01(\x0b\x32\x19.livekit.DirectFileOutputH\x00\x12\x17\n\rwebsocket_url\x18\x04 \x01(\tH\x00\x42\x08\n\x06output\"\x8e\x02\n\x11\x45ncodedFileOutput\x12+\n\tfile_type\x18\x01 \x01(\x0e\x32\x18.livekit.EncodedFileType\x12\x10\n\x08\x66ilepath\x18\x02 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x06 \x01(\x08\x12\x1f\n\x02s3\x18\x03 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x04 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x05 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x07 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xa0\x03\n\x13SegmentedFileOutput\x12\x30\n\x08protocol\x18\x01 \x01(\x0e\x32\x1e.livekit.SegmentedFileProtocol\x12\x17\n\x0f\x66ilename_prefix\x18\x02 \x01(\t\x12\x15\n\rplaylist_name\x18\x03 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x0b \x01(\t\x12\x18\n\x10segment_duration\x18\x04 \x01(\r\x12\x35\n\x0f\x66ilename_suffix\x18\n \x01(\x0e\x32\x1c.livekit.SegmentedFileSuffix\x12\x18\n\x10\x64isable_manifest\x18\x08 \x01(\x08\x12\x1f\n\x02s3\x18\x05 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x06 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x07 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\t \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xe0\x01\n\x10\x44irectFileOutput\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xf8\x02\n\x0bImageOutput\x12\x18\n\x10\x63\x61pture_interval\x18\x01 \x01(\r\x12\r\n\x05width\x18\x02 \x01(\x05\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x31\n\x0f\x66ilename_suffix\x18\x05 \x01(\x0e\x32\x18.livekit.ImageFileSuffix\x12(\n\x0bimage_codec\x18\x06 \x01(\x0e\x32\x13.livekit.ImageCodec\x12\x18\n\x10\x64isable_manifest\x18\x07 \x01(\x08\x12\x1f\n\x02s3\x18\x08 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\t \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\n \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x0b \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xc8\x02\n\x08S3Upload\x12\x12\n\naccess_key\x18\x01 \x01(\t\x12\x0e\n\x06secret\x18\x02 \x01(\t\x12\x15\n\rsession_token\x18\x0b \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\x12\x18\n\x10\x66orce_path_style\x18\x06 \x01(\x08\x12\x31\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.livekit.S3Upload.MetadataEntry\x12\x0f\n\x07tagging\x18\x08 \x01(\t\x12\x1b\n\x13\x63ontent_disposition\x18\t \x01(\t\x12#\n\x05proxy\x18\n \x01(\x0b\x32\x14.livekit.ProxyConfig\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"U\n\tGCPUpload\x12\x13\n\x0b\x63redentials\x18\x01 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12#\n\x05proxy\x18\x03 \x01(\x0b\x32\x14.livekit.ProxyConfig\"T\n\x0f\x41zureBlobUpload\x12\x14\n\x0c\x61\x63\x63ount_name\x18\x01 \x01(\t\x12\x13\n\x0b\x61\x63\x63ount_key\x18\x02 \x01(\t\x12\x16\n\x0e\x63ontainer_name\x18\x03 \x01(\t\"d\n\x0c\x41liOSSUpload\x12\x12\n\naccess_key\x18\x01 \x01(\t\x12\x0e\n\x06secret\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\">\n\x0bProxyConfig\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"G\n\x0cStreamOutput\x12)\n\x08protocol\x18\x01 \x01(\x0e\x32\x17.livekit.StreamProtocol\x12\x0c\n\x04urls\x18\x02 \x03(\t\"\xb7\x02\n\x0f\x45ncodingOptions\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\x05\x12\x11\n\tframerate\x18\x04 \x01(\x05\x12(\n\x0b\x61udio_codec\x18\x05 \x01(\x0e\x32\x13.livekit.AudioCodec\x12\x15\n\raudio_bitrate\x18\x06 \x01(\x05\x12\x15\n\raudio_quality\x18\x0b \x01(\x05\x12\x17\n\x0f\x61udio_frequency\x18\x07 \x01(\x05\x12(\n\x0bvideo_codec\x18\x08 \x01(\x0e\x32\x13.livekit.VideoCodec\x12\x15\n\rvideo_bitrate\x18\t \x01(\x05\x12\x15\n\rvideo_quality\x18\x0c \x01(\x05\x12\x1a\n\x12key_frame_interval\x18\n \x01(\x01\"8\n\x13UpdateLayoutRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\"]\n\x13UpdateStreamRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x17\n\x0f\x61\x64\x64_output_urls\x18\x02 \x03(\t\x12\x1a\n\x12remove_output_urls\x18\x03 \x03(\t\"I\n\x11ListEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x11\n\tegress_id\x18\x02 \x01(\t\x12\x0e\n\x06\x61\x63tive\x18\x03 \x01(\x08\"8\n\x12ListEgressResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.livekit.EgressInfo\"&\n\x11StopEgressRequest\x12\x11\n\tegress_id\x18\x01 \x01(\t\"\xb6\x06\n\nEgressInfo\x12\x11\n\tegress_id\x18\x01 \x01(\t\x12\x0f\n\x07room_id\x18\x02 \x01(\t\x12\x11\n\troom_name\x18\r \x01(\t\x12%\n\x06status\x18\x03 \x01(\x0e\x32\x15.livekit.EgressStatus\x12\x12\n\nstarted_at\x18\n \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x0b \x01(\x03\x12\x12\n\nupdated_at\x18\x12 \x01(\x03\x12\x0f\n\x07\x64\x65tails\x18\x15 \x01(\t\x12\r\n\x05\x65rror\x18\t \x01(\t\x12\x12\n\nerror_code\x18\x16 \x01(\x05\x12=\n\x0eroom_composite\x18\x04 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequestH\x00\x12(\n\x03web\x18\x0e \x01(\x0b\x32\x19.livekit.WebEgressRequestH\x00\x12\x38\n\x0bparticipant\x18\x13 \x01(\x0b\x32!.livekit.ParticipantEgressRequestH\x00\x12?\n\x0ftrack_composite\x18\x05 \x01(\x0b\x32$.livekit.TrackCompositeEgressRequestH\x00\x12,\n\x05track\x18\x06 \x01(\x0b\x32\x1b.livekit.TrackEgressRequestH\x00\x12-\n\x06stream\x18\x07 \x01(\x0b\x32\x17.livekit.StreamInfoListB\x02\x18\x01H\x01\x12%\n\x04\x66ile\x18\x08 \x01(\x0b\x32\x11.livekit.FileInfoB\x02\x18\x01H\x01\x12-\n\x08segments\x18\x0c \x01(\x0b\x32\x15.livekit.SegmentsInfoB\x02\x18\x01H\x01\x12+\n\x0estream_results\x18\x0f \x03(\x0b\x32\x13.livekit.StreamInfo\x12\'\n\x0c\x66ile_results\x18\x10 \x03(\x0b\x32\x11.livekit.FileInfo\x12.\n\x0fsegment_results\x18\x11 \x03(\x0b\x32\x15.livekit.SegmentsInfo\x12*\n\rimage_results\x18\x14 \x03(\x0b\x32\x13.livekit.ImagesInfoB\t\n\x07requestB\x08\n\x06result\"7\n\x0eStreamInfoList\x12!\n\x04info\x18\x01 \x03(\x0b\x32\x13.livekit.StreamInfo:\x02\x18\x01\"\xbc\x01\n\nStreamInfo\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12*\n\x06status\x18\x05 \x01(\x0e\x32\x1a.livekit.StreamInfo.Status\x12\r\n\x05\x65rror\x18\x06 \x01(\t\".\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"t\n\x08\x46ileInfo\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x06 \x01(\x03\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x10\n\x08location\x18\x05 \x01(\t\"\xd9\x01\n\x0cSegmentsInfo\x12\x15\n\rplaylist_name\x18\x01 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x08 \x01(\t\x12\x10\n\x08\x64uration\x18\x02 \x01(\x03\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x19\n\x11playlist_location\x18\x04 \x01(\t\x12\x1e\n\x16live_playlist_location\x18\t \x01(\t\x12\x15\n\rsegment_count\x18\x05 \x01(\x03\x12\x12\n\nstarted_at\x18\x06 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x07 \x01(\x03\"`\n\nImagesInfo\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x13\n\x0bimage_count\x18\x01 \x01(\x03\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\"\xeb\x01\n\x15\x41utoParticipantEgress\x12\x30\n\x06preset\x18\x01 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x02 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x03 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12\x35\n\x0fsegment_outputs\x18\x04 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutputB\t\n\x07options\"\xdf\x01\n\x0f\x41utoTrackEgress\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output*9\n\x0f\x45ncodedFileType\x12\x14\n\x10\x44\x45\x46\x41ULT_FILETYPE\x10\x00\x12\x07\n\x03MP4\x10\x01\x12\x07\n\x03OGG\x10\x02*N\n\x15SegmentedFileProtocol\x12#\n\x1f\x44\x45\x46\x41ULT_SEGMENTED_FILE_PROTOCOL\x10\x00\x12\x10\n\x0cHLS_PROTOCOL\x10\x01*/\n\x13SegmentedFileSuffix\x12\t\n\x05INDEX\x10\x00\x12\r\n\tTIMESTAMP\x10\x01*E\n\x0fImageFileSuffix\x12\x16\n\x12IMAGE_SUFFIX_INDEX\x10\x00\x12\x1a\n\x16IMAGE_SUFFIX_TIMESTAMP\x10\x01*0\n\x0eStreamProtocol\x12\x14\n\x10\x44\x45\x46\x41ULT_PROTOCOL\x10\x00\x12\x08\n\x04RTMP\x10\x01*\xcf\x01\n\x15\x45ncodingOptionsPreset\x12\x10\n\x0cH264_720P_30\x10\x00\x12\x10\n\x0cH264_720P_60\x10\x01\x12\x11\n\rH264_1080P_30\x10\x02\x12\x11\n\rH264_1080P_60\x10\x03\x12\x19\n\x15PORTRAIT_H264_720P_30\x10\x04\x12\x19\n\x15PORTRAIT_H264_720P_60\x10\x05\x12\x1a\n\x16PORTRAIT_H264_1080P_30\x10\x06\x12\x1a\n\x16PORTRAIT_H264_1080P_60\x10\x07*\x9f\x01\n\x0c\x45gressStatus\x12\x13\n\x0f\x45GRESS_STARTING\x10\x00\x12\x11\n\rEGRESS_ACTIVE\x10\x01\x12\x11\n\rEGRESS_ENDING\x10\x02\x12\x13\n\x0f\x45GRESS_COMPLETE\x10\x03\x12\x11\n\rEGRESS_FAILED\x10\x04\x12\x12\n\x0e\x45GRESS_ABORTED\x10\x05\x12\x18\n\x14\x45GRESS_LIMIT_REACHED\x10\x06\x32\x9c\x05\n\x06\x45gress\x12T\n\x18StartRoomCompositeEgress\x12#.livekit.RoomCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12@\n\x0eStartWebEgress\x12\x19.livekit.WebEgressRequest\x1a\x13.livekit.EgressInfo\x12P\n\x16StartParticipantEgress\x12!.livekit.ParticipantEgressRequest\x1a\x13.livekit.EgressInfo\x12V\n\x19StartTrackCompositeEgress\x12$.livekit.TrackCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12\x44\n\x10StartTrackEgress\x12\x1b.livekit.TrackEgressRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateLayout\x12\x1c.livekit.UpdateLayoutRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateStream\x12\x1c.livekit.UpdateStreamRequest\x1a\x13.livekit.EgressInfo\x12\x45\n\nListEgress\x12\x1a.livekit.ListEgressRequest\x1a\x1b.livekit.ListEgressResponse\x12=\n\nStopEgress\x12\x1a.livekit.StopEgressRequest\x1a\x13.livekit.EgressInfoBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -51,20 +51,20 @@ _globals['_EGRESSINFO'].fields_by_name['segments']._serialized_options = b'\030\001' _globals['_STREAMINFOLIST']._options = None _globals['_STREAMINFOLIST']._serialized_options = b'\030\001' - _globals['_ENCODEDFILETYPE']._serialized_start=6929 - _globals['_ENCODEDFILETYPE']._serialized_end=6986 - _globals['_SEGMENTEDFILEPROTOCOL']._serialized_start=6988 - _globals['_SEGMENTEDFILEPROTOCOL']._serialized_end=7066 - _globals['_SEGMENTEDFILESUFFIX']._serialized_start=7068 - _globals['_SEGMENTEDFILESUFFIX']._serialized_end=7115 - _globals['_IMAGEFILESUFFIX']._serialized_start=7117 - _globals['_IMAGEFILESUFFIX']._serialized_end=7186 - _globals['_STREAMPROTOCOL']._serialized_start=7188 - _globals['_STREAMPROTOCOL']._serialized_end=7236 - _globals['_ENCODINGOPTIONSPRESET']._serialized_start=7239 - _globals['_ENCODINGOPTIONSPRESET']._serialized_end=7446 - _globals['_EGRESSSTATUS']._serialized_start=7449 - _globals['_EGRESSSTATUS']._serialized_end=7608 + _globals['_ENCODEDFILETYPE']._serialized_start=6954 + _globals['_ENCODEDFILETYPE']._serialized_end=7011 + _globals['_SEGMENTEDFILEPROTOCOL']._serialized_start=7013 + _globals['_SEGMENTEDFILEPROTOCOL']._serialized_end=7091 + _globals['_SEGMENTEDFILESUFFIX']._serialized_start=7093 + _globals['_SEGMENTEDFILESUFFIX']._serialized_end=7140 + _globals['_IMAGEFILESUFFIX']._serialized_start=7142 + _globals['_IMAGEFILESUFFIX']._serialized_end=7211 + _globals['_STREAMPROTOCOL']._serialized_start=7213 + _globals['_STREAMPROTOCOL']._serialized_end=7261 + _globals['_ENCODINGOPTIONSPRESET']._serialized_start=7264 + _globals['_ENCODINGOPTIONSPRESET']._serialized_end=7471 + _globals['_EGRESSSTATUS']._serialized_start=7474 + _globals['_EGRESSSTATUS']._serialized_end=7633 _globals['_ROOMCOMPOSITEEGRESSREQUEST']._serialized_start=56 _globals['_ROOMCOMPOSITEEGRESSREQUEST']._serialized_end=645 _globals['_WEBEGRESSREQUEST']._serialized_start=648 @@ -122,11 +122,11 @@ _globals['_SEGMENTSINFO']._serialized_start=6173 _globals['_SEGMENTSINFO']._serialized_end=6390 _globals['_IMAGESINFO']._serialized_start=6392 - _globals['_IMAGESINFO']._serialized_end=6463 - _globals['_AUTOPARTICIPANTEGRESS']._serialized_start=6466 - _globals['_AUTOPARTICIPANTEGRESS']._serialized_end=6701 - _globals['_AUTOTRACKEGRESS']._serialized_start=6704 - _globals['_AUTOTRACKEGRESS']._serialized_end=6927 - _globals['_EGRESS']._serialized_start=7611 - _globals['_EGRESS']._serialized_end=8279 + _globals['_IMAGESINFO']._serialized_end=6488 + _globals['_AUTOPARTICIPANTEGRESS']._serialized_start=6491 + _globals['_AUTOPARTICIPANTEGRESS']._serialized_end=6726 + _globals['_AUTOTRACKEGRESS']._serialized_start=6729 + _globals['_AUTOTRACKEGRESS']._serialized_end=6952 + _globals['_EGRESS']._serialized_start=7636 + _globals['_EGRESS']._serialized_end=8304 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/egress.pyi b/livekit-protocol/livekit/protocol/egress.pyi index 50d0ed2f..bdfa9dec 100644 --- a/livekit-protocol/livekit/protocol/egress.pyi +++ b/livekit-protocol/livekit/protocol/egress.pyi @@ -560,14 +560,16 @@ class SegmentsInfo(_message.Message): def __init__(self, playlist_name: _Optional[str] = ..., live_playlist_name: _Optional[str] = ..., duration: _Optional[int] = ..., size: _Optional[int] = ..., playlist_location: _Optional[str] = ..., live_playlist_location: _Optional[str] = ..., segment_count: _Optional[int] = ..., started_at: _Optional[int] = ..., ended_at: _Optional[int] = ...) -> None: ... class ImagesInfo(_message.Message): - __slots__ = ("image_count", "started_at", "ended_at") + __slots__ = ("filename_prefix", "image_count", "started_at", "ended_at") + FILENAME_PREFIX_FIELD_NUMBER: _ClassVar[int] IMAGE_COUNT_FIELD_NUMBER: _ClassVar[int] STARTED_AT_FIELD_NUMBER: _ClassVar[int] ENDED_AT_FIELD_NUMBER: _ClassVar[int] + filename_prefix: str image_count: int started_at: int ended_at: int - def __init__(self, image_count: _Optional[int] = ..., started_at: _Optional[int] = ..., ended_at: _Optional[int] = ...) -> None: ... + def __init__(self, filename_prefix: _Optional[str] = ..., image_count: _Optional[int] = ..., started_at: _Optional[int] = ..., ended_at: _Optional[int] = ...) -> None: ... class AutoParticipantEgress(_message.Message): __slots__ = ("preset", "advanced", "file_outputs", "segment_outputs") diff --git a/livekit-protocol/livekit/protocol/room.py b/livekit-protocol/livekit/protocol/room.py index 2caebeb8..2bb3b2f3 100644 --- a/livekit-protocol/livekit/protocol/room.py +++ b/livekit-protocol/livekit/protocol/room.py @@ -14,9 +14,10 @@ from . import models as _models_ from . import egress as _egress_ +from . import agent as _agent_ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12livekit_room.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14livekit_egress.proto\"\x81\x02\n\x11\x43reateRoomRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\n \x01(\r\x12\x18\n\x10max_participants\x18\x03 \x01(\r\x12\x0f\n\x07node_id\x18\x04 \x01(\t\x12\x10\n\x08metadata\x18\x05 \x01(\t\x12#\n\x06\x65gress\x18\x06 \x01(\x0b\x32\x13.livekit.RoomEgress\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\"\x9e\x01\n\nRoomEgress\x12\x31\n\x04room\x18\x01 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequest\x12\x33\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x1e.livekit.AutoParticipantEgress\x12(\n\x06tracks\x18\x02 \x01(\x0b\x32\x18.livekit.AutoTrackEgress\"!\n\x10ListRoomsRequest\x12\r\n\x05names\x18\x01 \x03(\t\"1\n\x11ListRoomsResponse\x12\x1c\n\x05rooms\x18\x01 \x03(\x0b\x32\r.livekit.Room\"!\n\x11\x44\x65leteRoomRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteRoomResponse\"\'\n\x17ListParticipantsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"J\n\x18ListParticipantsResponse\x12.\n\x0cparticipants\x18\x01 \x03(\x0b\x32\x18.livekit.ParticipantInfo\"9\n\x17RoomParticipantIdentity\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\"\x1b\n\x19RemoveParticipantResponse\"X\n\x14MuteRoomTrackRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x11\n\ttrack_sid\x18\x03 \x01(\t\x12\r\n\x05muted\x18\x04 \x01(\x08\":\n\x15MuteRoomTrackResponse\x12!\n\x05track\x18\x01 \x01(\x0b\x32\x12.livekit.TrackInfo\"\x88\x02\n\x18UpdateParticipantRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\x12\x32\n\npermission\x18\x04 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x45\n\nattributes\x18\x06 \x03(\x0b\x32\x31.livekit.UpdateParticipantRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9b\x01\n\x1aUpdateSubscriptionsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntrack_sids\x18\x03 \x03(\t\x12\x11\n\tsubscribe\x18\x04 \x01(\x08\x12\x36\n\x12participant_tracks\x18\x05 \x03(\x0b\x32\x1a.livekit.ParticipantTracks\"\x1d\n\x1bUpdateSubscriptionsResponse\"\xb1\x01\n\x0fSendDataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.DataPacket.Kind\x12\x1c\n\x10\x64\x65stination_sids\x18\x04 \x03(\tB\x02\x18\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x06 \x03(\t\x12\x12\n\x05topic\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"\x12\n\x10SendDataResponse\";\n\x19UpdateRoomMetadataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t2\xe6\x06\n\x0bRoomService\x12\x37\n\nCreateRoom\x12\x1a.livekit.CreateRoomRequest\x1a\r.livekit.Room\x12\x42\n\tListRooms\x12\x19.livekit.ListRoomsRequest\x1a\x1a.livekit.ListRoomsResponse\x12\x45\n\nDeleteRoom\x12\x1a.livekit.DeleteRoomRequest\x1a\x1b.livekit.DeleteRoomResponse\x12W\n\x10ListParticipants\x12 .livekit.ListParticipantsRequest\x1a!.livekit.ListParticipantsResponse\x12L\n\x0eGetParticipant\x12 .livekit.RoomParticipantIdentity\x1a\x18.livekit.ParticipantInfo\x12Y\n\x11RemoveParticipant\x12 .livekit.RoomParticipantIdentity\x1a\".livekit.RemoveParticipantResponse\x12S\n\x12MutePublishedTrack\x12\x1d.livekit.MuteRoomTrackRequest\x1a\x1e.livekit.MuteRoomTrackResponse\x12P\n\x11UpdateParticipant\x12!.livekit.UpdateParticipantRequest\x1a\x18.livekit.ParticipantInfo\x12`\n\x13UpdateSubscriptions\x12#.livekit.UpdateSubscriptionsRequest\x1a$.livekit.UpdateSubscriptionsResponse\x12?\n\x08SendData\x12\x18.livekit.SendDataRequest\x1a\x19.livekit.SendDataResponse\x12G\n\x12UpdateRoomMetadata\x12\".livekit.UpdateRoomMetadataRequest\x1a\r.livekit.RoomBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12livekit_room.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14livekit_egress.proto\x1a\x13livekit_agent.proto\"\xd1\x02\n\x11\x43reateRoomRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x63onfig_name\x18\x0c \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\n \x01(\r\x12\x18\n\x10max_participants\x18\x03 \x01(\r\x12\x0f\n\x07node_id\x18\x04 \x01(\t\x12\x10\n\x08metadata\x18\x05 \x01(\t\x12#\n\x06\x65gress\x18\x06 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x0b \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x12\x16\n\x0ereplay_enabled\x18\r \x01(\x08\"\x9e\x01\n\nRoomEgress\x12\x31\n\x04room\x18\x01 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequest\x12\x33\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x1e.livekit.AutoParticipantEgress\x12(\n\x06tracks\x18\x02 \x01(\x0b\x32\x18.livekit.AutoTrackEgress\";\n\tRoomAgent\x12.\n\ndispatches\x18\x01 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\"!\n\x10ListRoomsRequest\x12\r\n\x05names\x18\x01 \x03(\t\"1\n\x11ListRoomsResponse\x12\x1c\n\x05rooms\x18\x01 \x03(\x0b\x32\r.livekit.Room\"!\n\x11\x44\x65leteRoomRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteRoomResponse\"\'\n\x17ListParticipantsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"J\n\x18ListParticipantsResponse\x12.\n\x0cparticipants\x18\x01 \x03(\x0b\x32\x18.livekit.ParticipantInfo\"9\n\x17RoomParticipantIdentity\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\"\x1b\n\x19RemoveParticipantResponse\"X\n\x14MuteRoomTrackRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x11\n\ttrack_sid\x18\x03 \x01(\t\x12\r\n\x05muted\x18\x04 \x01(\x08\":\n\x15MuteRoomTrackResponse\x12!\n\x05track\x18\x01 \x01(\x0b\x32\x12.livekit.TrackInfo\"\x88\x02\n\x18UpdateParticipantRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\x12\x32\n\npermission\x18\x04 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x45\n\nattributes\x18\x06 \x03(\x0b\x32\x31.livekit.UpdateParticipantRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9b\x01\n\x1aUpdateSubscriptionsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntrack_sids\x18\x03 \x03(\t\x12\x11\n\tsubscribe\x18\x04 \x01(\x08\x12\x36\n\x12participant_tracks\x18\x05 \x03(\x0b\x32\x1a.livekit.ParticipantTracks\"\x1d\n\x1bUpdateSubscriptionsResponse\"\xb1\x01\n\x0fSendDataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.DataPacket.Kind\x12\x1c\n\x10\x64\x65stination_sids\x18\x04 \x03(\tB\x02\x18\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x06 \x03(\t\x12\x12\n\x05topic\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"\x12\n\x10SendDataResponse\";\n\x19UpdateRoomMetadataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\x81\x02\n\x11RoomConfiguration\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\x03 \x01(\r\x12\x18\n\x10max_participants\x18\x04 \x01(\r\x12#\n\x06\x65gress\x18\x05 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x06 \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x32\xe6\x06\n\x0bRoomService\x12\x37\n\nCreateRoom\x12\x1a.livekit.CreateRoomRequest\x1a\r.livekit.Room\x12\x42\n\tListRooms\x12\x19.livekit.ListRoomsRequest\x1a\x1a.livekit.ListRoomsResponse\x12\x45\n\nDeleteRoom\x12\x1a.livekit.DeleteRoomRequest\x1a\x1b.livekit.DeleteRoomResponse\x12W\n\x10ListParticipants\x12 .livekit.ListParticipantsRequest\x1a!.livekit.ListParticipantsResponse\x12L\n\x0eGetParticipant\x12 .livekit.RoomParticipantIdentity\x1a\x18.livekit.ParticipantInfo\x12Y\n\x11RemoveParticipant\x12 .livekit.RoomParticipantIdentity\x1a\".livekit.RemoveParticipantResponse\x12S\n\x12MutePublishedTrack\x12\x1d.livekit.MuteRoomTrackRequest\x1a\x1e.livekit.MuteRoomTrackResponse\x12P\n\x11UpdateParticipant\x12!.livekit.UpdateParticipantRequest\x1a\x18.livekit.ParticipantInfo\x12`\n\x13UpdateSubscriptions\x12#.livekit.UpdateSubscriptionsRequest\x1a$.livekit.UpdateSubscriptionsResponse\x12?\n\x08SendData\x12\x18.livekit.SendDataRequest\x1a\x19.livekit.SendDataResponse\x12G\n\x12UpdateRoomMetadata\x12\".livekit.UpdateRoomMetadataRequest\x1a\r.livekit.RoomBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -28,44 +29,48 @@ _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_SENDDATAREQUEST'].fields_by_name['destination_sids']._options = None _globals['_SENDDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' - _globals['_CREATEROOMREQUEST']._serialized_start=76 - _globals['_CREATEROOMREQUEST']._serialized_end=333 - _globals['_ROOMEGRESS']._serialized_start=336 - _globals['_ROOMEGRESS']._serialized_end=494 - _globals['_LISTROOMSREQUEST']._serialized_start=496 - _globals['_LISTROOMSREQUEST']._serialized_end=529 - _globals['_LISTROOMSRESPONSE']._serialized_start=531 - _globals['_LISTROOMSRESPONSE']._serialized_end=580 - _globals['_DELETEROOMREQUEST']._serialized_start=582 - _globals['_DELETEROOMREQUEST']._serialized_end=615 - _globals['_DELETEROOMRESPONSE']._serialized_start=617 - _globals['_DELETEROOMRESPONSE']._serialized_end=637 - _globals['_LISTPARTICIPANTSREQUEST']._serialized_start=639 - _globals['_LISTPARTICIPANTSREQUEST']._serialized_end=678 - _globals['_LISTPARTICIPANTSRESPONSE']._serialized_start=680 - _globals['_LISTPARTICIPANTSRESPONSE']._serialized_end=754 - _globals['_ROOMPARTICIPANTIDENTITY']._serialized_start=756 - _globals['_ROOMPARTICIPANTIDENTITY']._serialized_end=813 - _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_start=815 - _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_end=842 - _globals['_MUTEROOMTRACKREQUEST']._serialized_start=844 - _globals['_MUTEROOMTRACKREQUEST']._serialized_end=932 - _globals['_MUTEROOMTRACKRESPONSE']._serialized_start=934 - _globals['_MUTEROOMTRACKRESPONSE']._serialized_end=992 - _globals['_UPDATEPARTICIPANTREQUEST']._serialized_start=995 - _globals['_UPDATEPARTICIPANTREQUEST']._serialized_end=1259 - _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_start=1210 - _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_end=1259 - _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_start=1262 - _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_end=1417 - _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_start=1419 - _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_end=1448 - _globals['_SENDDATAREQUEST']._serialized_start=1451 - _globals['_SENDDATAREQUEST']._serialized_end=1628 - _globals['_SENDDATARESPONSE']._serialized_start=1630 - _globals['_SENDDATARESPONSE']._serialized_end=1648 - _globals['_UPDATEROOMMETADATAREQUEST']._serialized_start=1650 - _globals['_UPDATEROOMMETADATAREQUEST']._serialized_end=1709 - _globals['_ROOMSERVICE']._serialized_start=1712 - _globals['_ROOMSERVICE']._serialized_end=2582 + _globals['_CREATEROOMREQUEST']._serialized_start=97 + _globals['_CREATEROOMREQUEST']._serialized_end=434 + _globals['_ROOMEGRESS']._serialized_start=437 + _globals['_ROOMEGRESS']._serialized_end=595 + _globals['_ROOMAGENT']._serialized_start=597 + _globals['_ROOMAGENT']._serialized_end=656 + _globals['_LISTROOMSREQUEST']._serialized_start=658 + _globals['_LISTROOMSREQUEST']._serialized_end=691 + _globals['_LISTROOMSRESPONSE']._serialized_start=693 + _globals['_LISTROOMSRESPONSE']._serialized_end=742 + _globals['_DELETEROOMREQUEST']._serialized_start=744 + _globals['_DELETEROOMREQUEST']._serialized_end=777 + _globals['_DELETEROOMRESPONSE']._serialized_start=779 + _globals['_DELETEROOMRESPONSE']._serialized_end=799 + _globals['_LISTPARTICIPANTSREQUEST']._serialized_start=801 + _globals['_LISTPARTICIPANTSREQUEST']._serialized_end=840 + _globals['_LISTPARTICIPANTSRESPONSE']._serialized_start=842 + _globals['_LISTPARTICIPANTSRESPONSE']._serialized_end=916 + _globals['_ROOMPARTICIPANTIDENTITY']._serialized_start=918 + _globals['_ROOMPARTICIPANTIDENTITY']._serialized_end=975 + _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_start=977 + _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_end=1004 + _globals['_MUTEROOMTRACKREQUEST']._serialized_start=1006 + _globals['_MUTEROOMTRACKREQUEST']._serialized_end=1094 + _globals['_MUTEROOMTRACKRESPONSE']._serialized_start=1096 + _globals['_MUTEROOMTRACKRESPONSE']._serialized_end=1154 + _globals['_UPDATEPARTICIPANTREQUEST']._serialized_start=1157 + _globals['_UPDATEPARTICIPANTREQUEST']._serialized_end=1421 + _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_start=1372 + _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_end=1421 + _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_start=1424 + _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_end=1579 + _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_start=1581 + _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_end=1610 + _globals['_SENDDATAREQUEST']._serialized_start=1613 + _globals['_SENDDATAREQUEST']._serialized_end=1790 + _globals['_SENDDATARESPONSE']._serialized_start=1792 + _globals['_SENDDATARESPONSE']._serialized_end=1810 + _globals['_UPDATEROOMMETADATAREQUEST']._serialized_start=1812 + _globals['_UPDATEROOMMETADATAREQUEST']._serialized_end=1871 + _globals['_ROOMCONFIGURATION']._serialized_start=1874 + _globals['_ROOMCONFIGURATION']._serialized_end=2131 + _globals['_ROOMSERVICE']._serialized_start=2134 + _globals['_ROOMSERVICE']._serialized_end=3004 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/room.pyi b/livekit-protocol/livekit/protocol/room.pyi index 2ba90dd9..c2029123 100644 --- a/livekit-protocol/livekit/protocol/room.pyi +++ b/livekit-protocol/livekit/protocol/room.pyi @@ -1,5 +1,6 @@ from . import models as _models from . import egress as _egress +from . import agent as _agent from google.protobuf.internal import containers as _containers from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -8,28 +9,34 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map DESCRIPTOR: _descriptor.FileDescriptor class CreateRoomRequest(_message.Message): - __slots__ = ("name", "empty_timeout", "departure_timeout", "max_participants", "node_id", "metadata", "egress", "min_playout_delay", "max_playout_delay", "sync_streams") + __slots__ = ("name", "config_name", "empty_timeout", "departure_timeout", "max_participants", "node_id", "metadata", "egress", "agent", "min_playout_delay", "max_playout_delay", "sync_streams", "replay_enabled") NAME_FIELD_NUMBER: _ClassVar[int] + CONFIG_NAME_FIELD_NUMBER: _ClassVar[int] EMPTY_TIMEOUT_FIELD_NUMBER: _ClassVar[int] DEPARTURE_TIMEOUT_FIELD_NUMBER: _ClassVar[int] MAX_PARTICIPANTS_FIELD_NUMBER: _ClassVar[int] NODE_ID_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] EGRESS_FIELD_NUMBER: _ClassVar[int] + AGENT_FIELD_NUMBER: _ClassVar[int] MIN_PLAYOUT_DELAY_FIELD_NUMBER: _ClassVar[int] MAX_PLAYOUT_DELAY_FIELD_NUMBER: _ClassVar[int] SYNC_STREAMS_FIELD_NUMBER: _ClassVar[int] + REPLAY_ENABLED_FIELD_NUMBER: _ClassVar[int] name: str + config_name: str empty_timeout: int departure_timeout: int max_participants: int node_id: str metadata: str egress: RoomEgress + agent: RoomAgent min_playout_delay: int max_playout_delay: int sync_streams: bool - def __init__(self, name: _Optional[str] = ..., empty_timeout: _Optional[int] = ..., departure_timeout: _Optional[int] = ..., max_participants: _Optional[int] = ..., node_id: _Optional[str] = ..., metadata: _Optional[str] = ..., egress: _Optional[_Union[RoomEgress, _Mapping]] = ..., min_playout_delay: _Optional[int] = ..., max_playout_delay: _Optional[int] = ..., sync_streams: bool = ...) -> None: ... + replay_enabled: bool + def __init__(self, name: _Optional[str] = ..., config_name: _Optional[str] = ..., empty_timeout: _Optional[int] = ..., departure_timeout: _Optional[int] = ..., max_participants: _Optional[int] = ..., node_id: _Optional[str] = ..., metadata: _Optional[str] = ..., egress: _Optional[_Union[RoomEgress, _Mapping]] = ..., agent: _Optional[_Union[RoomAgent, _Mapping]] = ..., min_playout_delay: _Optional[int] = ..., max_playout_delay: _Optional[int] = ..., sync_streams: bool = ..., replay_enabled: bool = ...) -> None: ... class RoomEgress(_message.Message): __slots__ = ("room", "participant", "tracks") @@ -41,6 +48,12 @@ class RoomEgress(_message.Message): tracks: _egress.AutoTrackEgress def __init__(self, room: _Optional[_Union[_egress.RoomCompositeEgressRequest, _Mapping]] = ..., participant: _Optional[_Union[_egress.AutoParticipantEgress, _Mapping]] = ..., tracks: _Optional[_Union[_egress.AutoTrackEgress, _Mapping]] = ...) -> None: ... +class RoomAgent(_message.Message): + __slots__ = ("dispatches",) + DISPATCHES_FIELD_NUMBER: _ClassVar[int] + dispatches: _containers.RepeatedCompositeFieldContainer[_agent.RoomAgentDispatch] + def __init__(self, dispatches: _Optional[_Iterable[_Union[_agent.RoomAgentDispatch, _Mapping]]] = ...) -> None: ... + class ListRoomsRequest(_message.Message): __slots__ = ("names",) NAMES_FIELD_NUMBER: _ClassVar[int] @@ -173,3 +186,25 @@ class UpdateRoomMetadataRequest(_message.Message): room: str metadata: str def __init__(self, room: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ... + +class RoomConfiguration(_message.Message): + __slots__ = ("name", "empty_timeout", "departure_timeout", "max_participants", "egress", "agent", "min_playout_delay", "max_playout_delay", "sync_streams") + NAME_FIELD_NUMBER: _ClassVar[int] + EMPTY_TIMEOUT_FIELD_NUMBER: _ClassVar[int] + DEPARTURE_TIMEOUT_FIELD_NUMBER: _ClassVar[int] + MAX_PARTICIPANTS_FIELD_NUMBER: _ClassVar[int] + EGRESS_FIELD_NUMBER: _ClassVar[int] + AGENT_FIELD_NUMBER: _ClassVar[int] + MIN_PLAYOUT_DELAY_FIELD_NUMBER: _ClassVar[int] + MAX_PLAYOUT_DELAY_FIELD_NUMBER: _ClassVar[int] + SYNC_STREAMS_FIELD_NUMBER: _ClassVar[int] + name: str + empty_timeout: int + departure_timeout: int + max_participants: int + egress: RoomEgress + agent: RoomAgent + min_playout_delay: int + max_playout_delay: int + sync_streams: bool + def __init__(self, name: _Optional[str] = ..., empty_timeout: _Optional[int] = ..., departure_timeout: _Optional[int] = ..., max_participants: _Optional[int] = ..., egress: _Optional[_Union[RoomEgress, _Mapping]] = ..., agent: _Optional[_Union[RoomAgent, _Mapping]] = ..., min_playout_delay: _Optional[int] = ..., max_playout_delay: _Optional[int] = ..., sync_streams: bool = ...) -> None: ... diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 79b5ea9e..9e23fdbd 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 79b5ea9ea9a29991ca6819323173e080aae9cfd3 +Subproject commit 9e23fdbd08859769a29ea4319a973e35ac01d0bc diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index 7bf9939a..2684629a 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -15,7 +15,7 @@ from . import handle_pb2 as handle__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"[\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xb5\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x37\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptionsH\x00\x88\x01\x01\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\rB\n\n\x08_options\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"K\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x13\n\x0bsample_rate\x18\x04 \x01(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x01(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x01(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x01(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x01(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioResamplerInfo*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x61udio_frame.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"[\n\x15NewAudioStreamRequest\x12\x14\n\x0ctrack_handle\x18\x01 \x01(\x04\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\"I\n\x16NewAudioStreamResponse\x12/\n\x06stream\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioStream\"\xe1\x01\n\x15NewAudioSourceRequest\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\x12\x37\n\x07options\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioSourceOptionsH\x00\x88\x01\x01\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x14\n\x0cnum_channels\x18\x04 \x01(\r\x12\x19\n\x0c\x65nable_queue\x18\x05 \x01(\x08H\x01\x88\x01\x01\x42\n\n\x08_optionsB\x0f\n\r_enable_queue\"I\n\x16NewAudioSourceResponse\x12/\n\x06source\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedAudioSource\"f\n\x18\x43\x61ptureAudioFrameRequest\x12\x15\n\rsource_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"-\n\x19\x43\x61ptureAudioFrameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"K\n\x19\x43\x61ptureAudioFrameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\x1a\n\x18NewAudioResamplerRequest\"R\n\x19NewAudioResamplerResponse\x12\x35\n\tresampler\x18\x01 \x01(\x0b\x32\".livekit.proto.OwnedAudioResampler\"\x93\x01\n\x17RemixAndResampleRequest\x12\x18\n\x10resampler_handle\x18\x01 \x01(\x04\x12\x33\n\x06\x62uffer\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x13\n\x0bsample_rate\x18\x04 \x01(\r\"P\n\x18RemixAndResampleResponse\x12\x34\n\x06\x62uffer\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"p\n\x14\x41udioFrameBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x14\n\x0cnum_channels\x18\x02 \x01(\r\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\"y\n\x15OwnedAudioFrameBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\x31\n\x04info\x18\x02 \x01(\x0b\x32#.livekit.proto.AudioFrameBufferInfo\"?\n\x0f\x41udioStreamInfo\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.AudioStreamType\"o\n\x10OwnedAudioStream\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioStreamInfo\"\x9f\x01\n\x10\x41udioStreamEvent\x12\x15\n\rstream_handle\x18\x01 \x01(\x04\x12;\n\x0e\x66rame_received\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioFrameReceivedH\x00\x12,\n\x03\x65os\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.AudioStreamEOSH\x00\x42\t\n\x07message\"I\n\x12\x41udioFrameReceived\x12\x33\n\x05\x66rame\x18\x01 \x01(\x0b\x32$.livekit.proto.OwnedAudioFrameBuffer\"\x10\n\x0e\x41udioStreamEOS\"e\n\x12\x41udioSourceOptions\x12\x19\n\x11\x65\x63ho_cancellation\x18\x01 \x01(\x08\x12\x19\n\x11noise_suppression\x18\x02 \x01(\x08\x12\x19\n\x11\x61uto_gain_control\x18\x03 \x01(\x08\"?\n\x0f\x41udioSourceInfo\x12,\n\x04type\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.AudioSourceType\"o\n\x10OwnedAudioSource\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.AudioSourceInfo\"\x14\n\x12\x41udioResamplerInfo\"u\n\x13OwnedAudioResampler\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12/\n\x04info\x18\x02 \x01(\x0b\x32!.livekit.proto.AudioResamplerInfo*A\n\x0f\x41udioStreamType\x12\x17\n\x13\x41UDIO_STREAM_NATIVE\x10\x00\x12\x15\n\x11\x41UDIO_STREAM_HTML\x10\x01**\n\x0f\x41udioSourceType\x12\x17\n\x13\x41UDIO_SOURCE_NATIVE\x10\x00\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,54 +23,54 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_AUDIOSTREAMTYPE']._serialized_start=2141 - _globals['_AUDIOSTREAMTYPE']._serialized_end=2206 - _globals['_AUDIOSOURCETYPE']._serialized_start=2208 - _globals['_AUDIOSOURCETYPE']._serialized_end=2250 + _globals['_AUDIOSTREAMTYPE']._serialized_start=2185 + _globals['_AUDIOSTREAMTYPE']._serialized_end=2250 + _globals['_AUDIOSOURCETYPE']._serialized_start=2252 + _globals['_AUDIOSOURCETYPE']._serialized_end=2294 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_start=50 _globals['_NEWAUDIOSTREAMREQUEST']._serialized_end=141 _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_start=143 _globals['_NEWAUDIOSTREAMRESPONSE']._serialized_end=216 _globals['_NEWAUDIOSOURCEREQUEST']._serialized_start=219 - _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=400 - _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=402 - _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=475 - _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=477 - _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=579 - _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=581 - _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=626 - _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=628 - _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=703 - _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=705 - _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=731 - _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=733 - _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=815 - _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=818 - _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=965 - _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=967 - _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1047 - _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=1049 - _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=1161 - _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=1163 - _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=1284 - _globals['_AUDIOSTREAMINFO']._serialized_start=1286 - _globals['_AUDIOSTREAMINFO']._serialized_end=1349 - _globals['_OWNEDAUDIOSTREAM']._serialized_start=1351 - _globals['_OWNEDAUDIOSTREAM']._serialized_end=1462 - _globals['_AUDIOSTREAMEVENT']._serialized_start=1465 - _globals['_AUDIOSTREAMEVENT']._serialized_end=1624 - _globals['_AUDIOFRAMERECEIVED']._serialized_start=1626 - _globals['_AUDIOFRAMERECEIVED']._serialized_end=1699 - _globals['_AUDIOSTREAMEOS']._serialized_start=1701 - _globals['_AUDIOSTREAMEOS']._serialized_end=1717 - _globals['_AUDIOSOURCEOPTIONS']._serialized_start=1719 - _globals['_AUDIOSOURCEOPTIONS']._serialized_end=1820 - _globals['_AUDIOSOURCEINFO']._serialized_start=1822 - _globals['_AUDIOSOURCEINFO']._serialized_end=1885 - _globals['_OWNEDAUDIOSOURCE']._serialized_start=1887 - _globals['_OWNEDAUDIOSOURCE']._serialized_end=1998 - _globals['_AUDIORESAMPLERINFO']._serialized_start=2000 - _globals['_AUDIORESAMPLERINFO']._serialized_end=2020 - _globals['_OWNEDAUDIORESAMPLER']._serialized_start=2022 - _globals['_OWNEDAUDIORESAMPLER']._serialized_end=2139 + _globals['_NEWAUDIOSOURCEREQUEST']._serialized_end=444 + _globals['_NEWAUDIOSOURCERESPONSE']._serialized_start=446 + _globals['_NEWAUDIOSOURCERESPONSE']._serialized_end=519 + _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_start=521 + _globals['_CAPTUREAUDIOFRAMEREQUEST']._serialized_end=623 + _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_start=625 + _globals['_CAPTUREAUDIOFRAMERESPONSE']._serialized_end=670 + _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_start=672 + _globals['_CAPTUREAUDIOFRAMECALLBACK']._serialized_end=747 + _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_start=749 + _globals['_NEWAUDIORESAMPLERREQUEST']._serialized_end=775 + _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_start=777 + _globals['_NEWAUDIORESAMPLERRESPONSE']._serialized_end=859 + _globals['_REMIXANDRESAMPLEREQUEST']._serialized_start=862 + _globals['_REMIXANDRESAMPLEREQUEST']._serialized_end=1009 + _globals['_REMIXANDRESAMPLERESPONSE']._serialized_start=1011 + _globals['_REMIXANDRESAMPLERESPONSE']._serialized_end=1091 + _globals['_AUDIOFRAMEBUFFERINFO']._serialized_start=1093 + _globals['_AUDIOFRAMEBUFFERINFO']._serialized_end=1205 + _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_start=1207 + _globals['_OWNEDAUDIOFRAMEBUFFER']._serialized_end=1328 + _globals['_AUDIOSTREAMINFO']._serialized_start=1330 + _globals['_AUDIOSTREAMINFO']._serialized_end=1393 + _globals['_OWNEDAUDIOSTREAM']._serialized_start=1395 + _globals['_OWNEDAUDIOSTREAM']._serialized_end=1506 + _globals['_AUDIOSTREAMEVENT']._serialized_start=1509 + _globals['_AUDIOSTREAMEVENT']._serialized_end=1668 + _globals['_AUDIOFRAMERECEIVED']._serialized_start=1670 + _globals['_AUDIOFRAMERECEIVED']._serialized_end=1743 + _globals['_AUDIOSTREAMEOS']._serialized_start=1745 + _globals['_AUDIOSTREAMEOS']._serialized_end=1761 + _globals['_AUDIOSOURCEOPTIONS']._serialized_start=1763 + _globals['_AUDIOSOURCEOPTIONS']._serialized_end=1864 + _globals['_AUDIOSOURCEINFO']._serialized_start=1866 + _globals['_AUDIOSOURCEINFO']._serialized_end=1929 + _globals['_OWNEDAUDIOSOURCE']._serialized_start=1931 + _globals['_OWNEDAUDIOSOURCE']._serialized_end=2042 + _globals['_AUDIORESAMPLERINFO']._serialized_start=2044 + _globals['_AUDIORESAMPLERINFO']._serialized_end=2064 + _globals['_OWNEDAUDIORESAMPLER']._serialized_start=2066 + _globals['_OWNEDAUDIORESAMPLER']._serialized_end=2183 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi index a5097d6b..a96c61c0 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.pyi @@ -110,11 +110,13 @@ class NewAudioSourceRequest(google.protobuf.message.Message): OPTIONS_FIELD_NUMBER: builtins.int SAMPLE_RATE_FIELD_NUMBER: builtins.int NUM_CHANNELS_FIELD_NUMBER: builtins.int + ENABLE_QUEUE_FIELD_NUMBER: builtins.int type: global___AudioSourceType.ValueType @property def options(self) -> global___AudioSourceOptions: ... sample_rate: builtins.int num_channels: builtins.int + enable_queue: builtins.bool def __init__( self, *, @@ -122,9 +124,13 @@ class NewAudioSourceRequest(google.protobuf.message.Message): options: global___AudioSourceOptions | None = ..., sample_rate: builtins.int = ..., num_channels: builtins.int = ..., + enable_queue: builtins.bool | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_options", b"_options", "options", b"options"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_options", b"_options", "num_channels", b"num_channels", "options", b"options", "sample_rate", b"sample_rate", "type", b"type"]) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_enable_queue", b"_enable_queue", "_options", b"_options", "enable_queue", b"enable_queue", "options", b"options"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_enable_queue", b"_enable_queue", "_options", b"_options", "enable_queue", b"enable_queue", "num_channels", b"num_channels", "options", b"options", "sample_rate", b"sample_rate", "type", b"type"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_enable_queue", b"_enable_queue"]) -> typing_extensions.Literal["enable_queue"] | None: ... + @typing.overload def WhichOneof(self, oneof_group: typing_extensions.Literal["_options", b"_options"]) -> typing_extensions.Literal["options"] | None: ... global___NewAudioSourceRequest = NewAudioSourceRequest diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index b320a2f4..fa97be84 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -20,7 +20,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbf\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12+\n\x04kind\x18\x04 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x18\n\x10\x64\x65stination_sids\x18\x05 \x03(\t\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xb8\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\x12\x10\n\x08language\x18\x05 \x01(\t\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"P\n\x1aUpdateLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\"/\n\x1bUpdateLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"/\n\x1bUpdateLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UpdateLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"+\n\x17UpdateLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"+\n\x17UpdateLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"e\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\x80\x0c\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x0f \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x10 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x11 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x13 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x15 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x17 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x18 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x19 \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1a \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"7\n\x08RoomInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"2\n\x17ParticipantDisconnected\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"d\n\x0eTrackPublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"D\n\x10TrackUnpublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"T\n\x0fTrackSubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"?\n\x11TrackUnsubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"T\n\x17TrackSubscriptionFailed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"8\n\nTrackMuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\":\n\x0cTrackUnmuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Z\n\x10\x45\x32\x65\x65StateChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"1\n\x15\x41\x63tiveSpeakersChanged\x12\x18\n\x10participant_sids\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"G\n\x1aParticipantMetadataChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"?\n\x16ParticipantNameChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"f\n\x18\x43onnectionQualityChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xf5\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12 \n\x0fparticipant_sid\x18\x03 \x01(\tB\x02\x18\x01H\x01\x88\x01\x01\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05valueB\x12\n\x10_participant_sid\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"P\n\x1aUpdateLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\"/\n\x1bUpdateLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"/\n\x1bUpdateLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UpdateLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"+\n\x17UpdateLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"+\n\x17UpdateLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\xbb\x0c\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x12 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x13 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x15 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x17 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x18 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x19 \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1a \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"7\n\x08RoomInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"2\n\x17ParticipantDisconnected\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"d\n\x0eTrackPublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"D\n\x10TrackUnpublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"T\n\x0fTrackSubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"?\n\x11TrackUnsubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"T\n\x17TrackSubscriptionFailed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"8\n\nTrackMuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\":\n\x0cTrackUnmuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Z\n\x10\x45\x32\x65\x65StateChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"1\n\x15\x41\x63tiveSpeakersChanged\x12\x18\n\x10participant_sids\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"G\n\x1aParticipantMetadataChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"?\n\x16ParticipantNameChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"f\n\x18\x43onnectionQualityChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xf5\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12 \n\x0fparticipant_sid\x18\x03 \x01(\tB\x02\x18\x01H\x01\x88\x01\x01\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05valueB\x12\n\x10_participant_sid\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -28,18 +28,20 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' + _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._options = None + _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' _globals['_DATAPACKETRECEIVED'].fields_by_name['participant_sid']._options = None _globals['_DATAPACKETRECEIVED'].fields_by_name['participant_sid']._serialized_options = b'\030\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=7188 - _globals['_ICETRANSPORTTYPE']._serialized_end=7268 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=7270 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=7337 - _globals['_CONNECTIONQUALITY']._serialized_start=7339 - _globals['_CONNECTIONQUALITY']._serialized_end=7435 - _globals['_CONNECTIONSTATE']._serialized_start=7437 - _globals['_CONNECTIONSTATE']._serialized_end=7520 - _globals['_DATAPACKETKIND']._serialized_start=7522 - _globals['_DATAPACKETKIND']._serialized_end=7573 + _globals['_ICETRANSPORTTYPE']._serialized_start=7287 + _globals['_ICETRANSPORTTYPE']._serialized_end=7367 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=7369 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=7436 + _globals['_CONNECTIONQUALITY']._serialized_start=7438 + _globals['_CONNECTIONQUALITY']._serialized_end=7534 + _globals['_CONNECTIONSTATE']._serialized_start=7536 + _globals['_CONNECTIONSTATE']._serialized_end=7619 + _globals['_DATAPACKETKIND']._serialized_start=7621 + _globals['_DATAPACKETKIND']._serialized_end=7672 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -67,113 +69,115 @@ _globals['_UNPUBLISHTRACKCALLBACK']._serialized_start=1209 _globals['_UNPUBLISHTRACKCALLBACK']._serialized_end=1281 _globals['_PUBLISHDATAREQUEST']._serialized_start=1284 - _globals['_PUBLISHDATAREQUEST']._serialized_end=1475 - _globals['_PUBLISHDATARESPONSE']._serialized_start=1477 - _globals['_PUBLISHDATARESPONSE']._serialized_end=1516 - _globals['_PUBLISHDATACALLBACK']._serialized_start=1518 - _globals['_PUBLISHDATACALLBACK']._serialized_end=1587 - _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_start=1590 - _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_end=1774 - _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_start=1776 - _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_end=1824 - _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_start=1826 - _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_end=1904 - _globals['_UPDATELOCALMETADATAREQUEST']._serialized_start=1906 - _globals['_UPDATELOCALMETADATAREQUEST']._serialized_end=1986 - _globals['_UPDATELOCALMETADATARESPONSE']._serialized_start=1988 - _globals['_UPDATELOCALMETADATARESPONSE']._serialized_end=2035 - _globals['_UPDATELOCALMETADATACALLBACK']._serialized_start=2037 - _globals['_UPDATELOCALMETADATACALLBACK']._serialized_end=2084 - _globals['_UPDATELOCALNAMEREQUEST']._serialized_start=2086 - _globals['_UPDATELOCALNAMEREQUEST']._serialized_end=2158 - _globals['_UPDATELOCALNAMERESPONSE']._serialized_start=2160 - _globals['_UPDATELOCALNAMERESPONSE']._serialized_end=2203 - _globals['_UPDATELOCALNAMECALLBACK']._serialized_start=2205 - _globals['_UPDATELOCALNAMECALLBACK']._serialized_end=2248 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=2250 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=2319 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=2321 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=2344 - _globals['_GETSESSIONSTATSREQUEST']._serialized_start=2346 - _globals['_GETSESSIONSTATSREQUEST']._serialized_end=2391 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=2393 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=2436 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=2439 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=2613 - _globals['_VIDEOENCODING']._serialized_start=2615 - _globals['_VIDEOENCODING']._serialized_end=2674 - _globals['_AUDIOENCODING']._serialized_start=2676 - _globals['_AUDIOENCODING']._serialized_end=2712 - _globals['_TRACKPUBLISHOPTIONS']._serialized_start=2715 - _globals['_TRACKPUBLISHOPTIONS']._serialized_end=2981 - _globals['_ICESERVER']._serialized_start=2983 - _globals['_ICESERVER']._serialized_end=3044 - _globals['_RTCCONFIG']._serialized_start=3047 - _globals['_RTCCONFIG']._serialized_end=3307 - _globals['_ROOMOPTIONS']._serialized_start=3310 - _globals['_ROOMOPTIONS']._serialized_end=3534 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=3536 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=3637 - _globals['_BUFFERINFO']._serialized_start=3639 - _globals['_BUFFERINFO']._serialized_end=3687 - _globals['_OWNEDBUFFER']._serialized_start=3689 - _globals['_OWNEDBUFFER']._serialized_end=3790 - _globals['_ROOMEVENT']._serialized_start=3793 - _globals['_ROOMEVENT']._serialized_end=5329 - _globals['_ROOMINFO']._serialized_start=5331 - _globals['_ROOMINFO']._serialized_end=5386 - _globals['_OWNEDROOM']._serialized_start=5388 - _globals['_OWNEDROOM']._serialized_end=5485 - _globals['_PARTICIPANTCONNECTED']._serialized_start=5487 - _globals['_PARTICIPANTCONNECTED']._serialized_end=5556 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=5558 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=5608 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=5610 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=5650 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=5652 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=5700 - _globals['_TRACKPUBLISHED']._serialized_start=5702 - _globals['_TRACKPUBLISHED']._serialized_end=5802 - _globals['_TRACKUNPUBLISHED']._serialized_start=5804 - _globals['_TRACKUNPUBLISHED']._serialized_end=5872 - _globals['_TRACKSUBSCRIBED']._serialized_start=5874 - _globals['_TRACKSUBSCRIBED']._serialized_end=5958 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=5960 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=6023 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6025 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6109 - _globals['_TRACKMUTED']._serialized_start=6111 - _globals['_TRACKMUTED']._serialized_end=6167 - _globals['_TRACKUNMUTED']._serialized_start=6169 - _globals['_TRACKUNMUTED']._serialized_end=6227 - _globals['_E2EESTATECHANGED']._serialized_start=6229 - _globals['_E2EESTATECHANGED']._serialized_end=6319 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=6321 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=6370 - _globals['_ROOMMETADATACHANGED']._serialized_start=6372 - _globals['_ROOMMETADATACHANGED']._serialized_end=6411 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=6413 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=6484 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=6486 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=6549 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=6551 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=6653 - _globals['_USERPACKET']._serialized_start=6655 - _globals['_USERPACKET']._serialized_end=6739 - _globals['_SIPDTMF']._serialized_start=6741 - _globals['_SIPDTMF']._serialized_end=6794 - _globals['_DATAPACKETRECEIVED']._serialized_start=6797 - _globals['_DATAPACKETRECEIVED']._serialized_end=7042 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=7044 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=7115 - _globals['_CONNECTED']._serialized_start=7117 - _globals['_CONNECTED']._serialized_end=7128 - _globals['_DISCONNECTED']._serialized_start=7130 - _globals['_DISCONNECTED']._serialized_end=7144 - _globals['_RECONNECTING']._serialized_start=7146 - _globals['_RECONNECTING']._serialized_end=7160 - _globals['_RECONNECTED']._serialized_start=7162 - _globals['_RECONNECTED']._serialized_end=7175 - _globals['_ROOMEOS']._serialized_start=7177 - _globals['_ROOMEOS']._serialized_end=7186 + _globals['_PUBLISHDATAREQUEST']._serialized_end=1484 + _globals['_PUBLISHDATARESPONSE']._serialized_start=1486 + _globals['_PUBLISHDATARESPONSE']._serialized_end=1525 + _globals['_PUBLISHDATACALLBACK']._serialized_start=1527 + _globals['_PUBLISHDATACALLBACK']._serialized_end=1596 + _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_start=1599 + _globals['_PUBLISHTRANSCRIPTIONREQUEST']._serialized_end=1765 + _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_start=1767 + _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_end=1815 + _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_start=1817 + _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_end=1895 + _globals['_UPDATELOCALMETADATAREQUEST']._serialized_start=1897 + _globals['_UPDATELOCALMETADATAREQUEST']._serialized_end=1977 + _globals['_UPDATELOCALMETADATARESPONSE']._serialized_start=1979 + _globals['_UPDATELOCALMETADATARESPONSE']._serialized_end=2026 + _globals['_UPDATELOCALMETADATACALLBACK']._serialized_start=2028 + _globals['_UPDATELOCALMETADATACALLBACK']._serialized_end=2075 + _globals['_UPDATELOCALNAMEREQUEST']._serialized_start=2077 + _globals['_UPDATELOCALNAMEREQUEST']._serialized_end=2149 + _globals['_UPDATELOCALNAMERESPONSE']._serialized_start=2151 + _globals['_UPDATELOCALNAMERESPONSE']._serialized_end=2194 + _globals['_UPDATELOCALNAMECALLBACK']._serialized_start=2196 + _globals['_UPDATELOCALNAMECALLBACK']._serialized_end=2239 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=2241 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=2310 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=2312 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=2335 + _globals['_GETSESSIONSTATSREQUEST']._serialized_start=2337 + _globals['_GETSESSIONSTATSREQUEST']._serialized_end=2382 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=2384 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=2427 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=2430 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=2604 + _globals['_VIDEOENCODING']._serialized_start=2606 + _globals['_VIDEOENCODING']._serialized_end=2665 + _globals['_AUDIOENCODING']._serialized_start=2667 + _globals['_AUDIOENCODING']._serialized_end=2703 + _globals['_TRACKPUBLISHOPTIONS']._serialized_start=2706 + _globals['_TRACKPUBLISHOPTIONS']._serialized_end=2972 + _globals['_ICESERVER']._serialized_start=2974 + _globals['_ICESERVER']._serialized_end=3035 + _globals['_RTCCONFIG']._serialized_start=3038 + _globals['_RTCCONFIG']._serialized_end=3298 + _globals['_ROOMOPTIONS']._serialized_start=3301 + _globals['_ROOMOPTIONS']._serialized_end=3525 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=3527 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=3646 + _globals['_BUFFERINFO']._serialized_start=3648 + _globals['_BUFFERINFO']._serialized_end=3696 + _globals['_OWNEDBUFFER']._serialized_start=3698 + _globals['_OWNEDBUFFER']._serialized_end=3799 + _globals['_ROOMEVENT']._serialized_start=3802 + _globals['_ROOMEVENT']._serialized_end=5397 + _globals['_ROOMINFO']._serialized_start=5399 + _globals['_ROOMINFO']._serialized_end=5454 + _globals['_OWNEDROOM']._serialized_start=5456 + _globals['_OWNEDROOM']._serialized_end=5553 + _globals['_PARTICIPANTCONNECTED']._serialized_start=5555 + _globals['_PARTICIPANTCONNECTED']._serialized_end=5624 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=5626 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=5676 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=5678 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=5718 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=5720 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=5768 + _globals['_TRACKPUBLISHED']._serialized_start=5770 + _globals['_TRACKPUBLISHED']._serialized_end=5870 + _globals['_TRACKUNPUBLISHED']._serialized_start=5872 + _globals['_TRACKUNPUBLISHED']._serialized_end=5940 + _globals['_TRACKSUBSCRIBED']._serialized_start=5942 + _globals['_TRACKSUBSCRIBED']._serialized_end=6026 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=6028 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=6091 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6093 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6177 + _globals['_TRACKMUTED']._serialized_start=6179 + _globals['_TRACKMUTED']._serialized_end=6235 + _globals['_TRACKUNMUTED']._serialized_start=6237 + _globals['_TRACKUNMUTED']._serialized_end=6295 + _globals['_E2EESTATECHANGED']._serialized_start=6297 + _globals['_E2EESTATECHANGED']._serialized_end=6387 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=6389 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=6438 + _globals['_ROOMMETADATACHANGED']._serialized_start=6440 + _globals['_ROOMMETADATACHANGED']._serialized_end=6479 + _globals['_ROOMSIDCHANGED']._serialized_start=6481 + _globals['_ROOMSIDCHANGED']._serialized_end=6510 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=6512 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=6583 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=6585 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=6648 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=6650 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=6752 + _globals['_USERPACKET']._serialized_start=6754 + _globals['_USERPACKET']._serialized_end=6838 + _globals['_SIPDTMF']._serialized_start=6840 + _globals['_SIPDTMF']._serialized_end=6893 + _globals['_DATAPACKETRECEIVED']._serialized_start=6896 + _globals['_DATAPACKETRECEIVED']._serialized_end=7141 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=7143 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=7214 + _globals['_CONNECTED']._serialized_start=7216 + _globals['_CONNECTED']._serialized_end=7227 + _globals['_DISCONNECTED']._serialized_start=7229 + _globals['_DISCONNECTED']._serialized_end=7243 + _globals['_RECONNECTING']._serialized_start=7245 + _globals['_RECONNECTING']._serialized_end=7259 + _globals['_RECONNECTED']._serialized_start=7261 + _globals['_RECONNECTED']._serialized_end=7274 + _globals['_ROOMEOS']._serialized_start=7276 + _globals['_ROOMEOS']._serialized_end=7285 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi index e2d2ca05..c6e2a9dc 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -395,29 +395,32 @@ class PublishDataRequest(google.protobuf.message.Message): LOCAL_PARTICIPANT_HANDLE_FIELD_NUMBER: builtins.int DATA_PTR_FIELD_NUMBER: builtins.int DATA_LEN_FIELD_NUMBER: builtins.int - KIND_FIELD_NUMBER: builtins.int + RELIABLE_FIELD_NUMBER: builtins.int DESTINATION_SIDS_FIELD_NUMBER: builtins.int TOPIC_FIELD_NUMBER: builtins.int + DESTINATION_IDENTITIES_FIELD_NUMBER: builtins.int local_participant_handle: builtins.int data_ptr: builtins.int data_len: builtins.int - kind: global___DataPacketKind.ValueType + reliable: builtins.bool @property - def destination_sids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - """destination""" + def destination_sids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... topic: builtins.str + @property + def destination_identities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... def __init__( self, *, local_participant_handle: builtins.int = ..., data_ptr: builtins.int = ..., data_len: builtins.int = ..., - kind: global___DataPacketKind.ValueType = ..., + reliable: builtins.bool = ..., destination_sids: collections.abc.Iterable[builtins.str] | None = ..., topic: builtins.str | None = ..., + destination_identities: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... def HasField(self, field_name: typing_extensions.Literal["_topic", b"_topic", "topic", b"topic"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_topic", b"_topic", "data_len", b"data_len", "data_ptr", b"data_ptr", "destination_sids", b"destination_sids", "kind", b"kind", "local_participant_handle", b"local_participant_handle", "topic", b"topic"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["_topic", b"_topic", "data_len", b"data_len", "data_ptr", b"data_ptr", "destination_identities", b"destination_identities", "destination_sids", b"destination_sids", "local_participant_handle", b"local_participant_handle", "reliable", b"reliable", "topic", b"topic"]) -> None: ... def WhichOneof(self, oneof_group: typing_extensions.Literal["_topic", b"_topic"]) -> typing_extensions.Literal["topic"] | None: ... global___PublishDataRequest = PublishDataRequest @@ -467,13 +470,11 @@ class PublishTranscriptionRequest(google.protobuf.message.Message): PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int TRACK_ID_FIELD_NUMBER: builtins.int SEGMENTS_FIELD_NUMBER: builtins.int - LANGUAGE_FIELD_NUMBER: builtins.int local_participant_handle: builtins.int participant_identity: builtins.str track_id: builtins.str @property def segments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TranscriptionSegment]: ... - language: builtins.str def __init__( self, *, @@ -481,9 +482,8 @@ class PublishTranscriptionRequest(google.protobuf.message.Message): participant_identity: builtins.str = ..., track_id: builtins.str = ..., segments: collections.abc.Iterable[global___TranscriptionSegment] | None = ..., - language: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["language", b"language", "local_participant_handle", b"local_participant_handle", "participant_identity", b"participant_identity", "segments", b"segments", "track_id", b"track_id"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["local_participant_handle", b"local_participant_handle", "participant_identity", b"participant_identity", "segments", b"segments", "track_id", b"track_id"]) -> None: ... global___PublishTranscriptionRequest = PublishTranscriptionRequest @@ -881,11 +881,13 @@ class TranscriptionSegment(google.protobuf.message.Message): START_TIME_FIELD_NUMBER: builtins.int END_TIME_FIELD_NUMBER: builtins.int FINAL_FIELD_NUMBER: builtins.int + LANGUAGE_FIELD_NUMBER: builtins.int id: builtins.str text: builtins.str start_time: builtins.int end_time: builtins.int final: builtins.bool + language: builtins.str def __init__( self, *, @@ -894,8 +896,9 @@ class TranscriptionSegment(google.protobuf.message.Message): start_time: builtins.int = ..., end_time: builtins.int = ..., final: builtins.bool = ..., + language: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "final", b"final", "id", b"id", "start_time", b"start_time", "text", b"text"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["end_time", b"end_time", "final", b"final", "id", b"id", "language", b"language", "start_time", b"start_time", "text", b"text"]) -> None: ... global___TranscriptionSegment = TranscriptionSegment @@ -956,6 +959,7 @@ class RoomEvent(google.protobuf.message.Message): TRACK_UNMUTED_FIELD_NUMBER: builtins.int ACTIVE_SPEAKERS_CHANGED_FIELD_NUMBER: builtins.int ROOM_METADATA_CHANGED_FIELD_NUMBER: builtins.int + ROOM_SID_CHANGED_FIELD_NUMBER: builtins.int PARTICIPANT_METADATA_CHANGED_FIELD_NUMBER: builtins.int PARTICIPANT_NAME_CHANGED_FIELD_NUMBER: builtins.int CONNECTION_QUALITY_CHANGED_FIELD_NUMBER: builtins.int @@ -994,6 +998,8 @@ class RoomEvent(google.protobuf.message.Message): @property def room_metadata_changed(self) -> global___RoomMetadataChanged: ... @property + def room_sid_changed(self) -> global___RoomSidChanged: ... + @property def participant_metadata_changed(self) -> global___ParticipantMetadataChanged: ... @property def participant_name_changed(self) -> global___ParticipantNameChanged: ... @@ -1032,6 +1038,7 @@ class RoomEvent(google.protobuf.message.Message): track_unmuted: global___TrackUnmuted | None = ..., active_speakers_changed: global___ActiveSpeakersChanged | None = ..., room_metadata_changed: global___RoomMetadataChanged | None = ..., + room_sid_changed: global___RoomSidChanged | None = ..., participant_metadata_changed: global___ParticipantMetadataChanged | None = ..., participant_name_changed: global___ParticipantNameChanged | None = ..., connection_quality_changed: global___ConnectionQualityChanged | None = ..., @@ -1043,9 +1050,9 @@ class RoomEvent(google.protobuf.message.Message): eos: global___RoomEOS | None = ..., data_packet_received: global___DataPacketReceived | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_metadata_changed", b"room_metadata_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_handle", b"room_handle", "room_metadata_changed", b"room_metadata_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "track_published", "track_unpublished", "track_subscribed", "track_unsubscribed", "track_subscription_failed", "track_muted", "track_unmuted", "active_speakers_changed", "room_metadata_changed", "participant_metadata_changed", "participant_name_changed", "connection_quality_changed", "connection_state_changed", "disconnected", "reconnecting", "reconnected", "e2ee_state_changed", "eos", "data_packet_received"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_handle", b"room_handle", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "track_published", "track_unpublished", "track_subscribed", "track_unsubscribed", "track_subscription_failed", "track_muted", "track_unmuted", "active_speakers_changed", "room_metadata_changed", "room_sid_changed", "participant_metadata_changed", "participant_name_changed", "connection_quality_changed", "connection_state_changed", "disconnected", "reconnecting", "reconnected", "e2ee_state_changed", "eos", "data_packet_received"] | None: ... global___RoomEvent = RoomEvent @@ -1344,6 +1351,21 @@ class RoomMetadataChanged(google.protobuf.message.Message): global___RoomMetadataChanged = RoomMetadataChanged +@typing_extensions.final +class RoomSidChanged(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + SID_FIELD_NUMBER: builtins.int + sid: builtins.str + def __init__( + self, + *, + sid: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["sid", b"sid"]) -> None: ... + +global___RoomSidChanged = RoomSidChanged + @typing_extensions.final class ParticipantMetadataChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index ea0bc400..4865f375 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit ea0bc40093ebcc7d308b2c4e8d088340557bdf46 +Subproject commit 4865f375463c0c0b6c6e5a080c36b4c31e2480e4 From ed28ba7fdb954927e05685c6dda5046421e6558b Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Fri, 12 Jul 2024 09:21:12 -0700 Subject: [PATCH 02/23] language --- livekit-rtc/livekit/rtc/participant.py | 7 +++---- livekit-rtc/livekit/rtc/transcription.py | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index 7d7351f9..3e307fea 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -21,7 +21,6 @@ from ._proto import ffi_pb2 as proto_ffi from ._proto import participant_pb2 as proto_participant from ._proto.room_pb2 import ( - DataPacketKind, TrackPublishOptions, ) from ._proto.room_pb2 import ( @@ -93,7 +92,7 @@ def __init__( async def publish_data( self, payload: Union[bytes, str], - kind: DataPacketKind.ValueType = DataPacketKind.KIND_RELIABLE, + reliable: bool = True, destination_sids: List[Union[str, "RemoteParticipant"]] = [], topic: str = "", ) -> None: @@ -107,7 +106,7 @@ async def publish_data( req.publish_data.local_participant_handle = self._ffi_handle.handle req.publish_data.data_ptr = ctypes.addressof(cdata) req.publish_data.data_len = data_len - req.publish_data.kind = kind + req.publish_data.reliable = reliable req.publish_data.topic = topic sids = [] @@ -140,6 +139,7 @@ async def publish_transcription(self, transcription: Transcription) -> None: start_time=s.start_time, end_time=s.end_time, final=s.final, + language=s.language, ) for s in transcription.segments ] @@ -148,7 +148,6 @@ async def publish_transcription(self, transcription: Transcription) -> None: req.publish_transcription.participant_identity = transcription.participant_identity req.publish_transcription.segments.extend(proto_segments) req.publish_transcription.track_id = transcription.track_id - req.publish_transcription.language = transcription.language # fmt: on queue = FfiClient.instance.queue.subscribe() try: diff --git a/livekit-rtc/livekit/rtc/transcription.py b/livekit-rtc/livekit/rtc/transcription.py index 3694e0d0..c36e56b0 100644 --- a/livekit-rtc/livekit/rtc/transcription.py +++ b/livekit-rtc/livekit/rtc/transcription.py @@ -7,7 +7,6 @@ class Transcription: participant_identity: str track_id: str segments: List["TranscriptionSegment"] - language: str @dataclass @@ -16,4 +15,5 @@ class TranscriptionSegment: text: str start_time: int end_time: int + language: str final: bool From cb748b8b01ab26ebd91e182205d4ec25da73f7ec Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Fri, 12 Jul 2024 09:30:46 -0700 Subject: [PATCH 03/23] room sid changed --- livekit-rtc/livekit/rtc/participant.py | 6 +++--- livekit-rtc/livekit/rtc/room.py | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index 3e307fea..e3f1d171 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -93,7 +93,7 @@ async def publish_data( self, payload: Union[bytes, str], reliable: bool = True, - destination_sids: List[Union[str, "RemoteParticipant"]] = [], + destination_identities: List[Union[str, "RemoteParticipant"]] = [], topic: str = "", ) -> None: if isinstance(payload, str): @@ -110,13 +110,13 @@ async def publish_data( req.publish_data.topic = topic sids = [] - for p in destination_sids: + for p in destination_identities: if isinstance(p, RemoteParticipant): sids.append(p.sid) else: sids.append(p) - req.publish_data.destination_sids.extend(sids) + req.publish_data.destination_identities.extend(sids) queue = FfiClient.instance.queue.subscribe() try: diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 1ad57c38..81aeb81e 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -45,6 +45,7 @@ "track_unmuted", "active_speakers_changed", "room_metadata_changed", + "room_sid_changed", "participant_metadata_changed", "participant_name_changed", "connection_quality_changed", @@ -360,6 +361,10 @@ def _on_room_event(self, event: proto_room.RoomEvent): old_metadata = self.metadata self._info.metadata = event.room_metadata_changed.metadata self.emit("room_metadata_changed", old_metadata, self.metadata) + elif which == "room_sid_changed": + old_sid = self.sid + self._info.sid = event.room_sid_changed.sid + self.emit("room_sid_changed", old_sid, self.sid) elif which == "participant_metadata_changed": sid = event.participant_metadata_changed.participant_sid # TODO: pass participant identity From fdf64bf89ad91c24d55b503e823368b2be14c501 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Fri, 12 Jul 2024 09:39:00 -0700 Subject: [PATCH 04/23] reliable --- livekit-rtc/livekit/rtc/chat.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/livekit-rtc/livekit/rtc/chat.py b/livekit-rtc/livekit/rtc/chat.py index 5bcae348..66436ead 100644 --- a/livekit-rtc/livekit/rtc/chat.py +++ b/livekit-rtc/livekit/rtc/chat.py @@ -61,7 +61,7 @@ async def send_message(self, message: str) -> "ChatMessage": ) await self._lp.publish_data( payload=json.dumps(msg.asjsondict()), - kind=DataPacketKind.KIND_RELIABLE, + reliable=True, topic=_CHAT_TOPIC, ) return msg @@ -74,7 +74,7 @@ async def update_message(self, message: "ChatMessage"): """ await self._lp.publish_data( payload=json.dumps(message.asjsondict()), - kind=DataPacketKind.KIND_RELIABLE, + reliable=True, topic=_CHAT_UPDATE_TOPIC, ) From ff1eee7f3e43cd92f80cb8a4220ad8b157c3fd3d Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Fri, 12 Jul 2024 09:54:52 -0700 Subject: [PATCH 05/23] remove unused --- livekit-rtc/livekit/rtc/chat.py | 1 - 1 file changed, 1 deletion(-) diff --git a/livekit-rtc/livekit/rtc/chat.py b/livekit-rtc/livekit/rtc/chat.py index 66436ead..a8b6e7ad 100644 --- a/livekit-rtc/livekit/rtc/chat.py +++ b/livekit-rtc/livekit/rtc/chat.py @@ -20,7 +20,6 @@ from .room import Room, Participant, DataPacket from ._event_emitter import EventEmitter -from ._proto.room_pb2 import DataPacketKind from ._utils import generate_random_base62 _CHAT_TOPIC = "lk-chat-topic" From 1aeb38f07f24834ad93fa004da3b13f2d085c39c Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 15 Jul 2024 14:24:54 -0700 Subject: [PATCH 06/23] update rust sdk --- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 40 +-- livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi | 54 ++-- .../livekit/rtc/_proto/participant_pb2.py | 14 +- .../livekit/rtc/_proto/participant_pb2.pyi | 24 +- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 242 ++++++++++-------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 181 +++++++++++-- livekit-rtc/livekit/rtc/participant.py | 4 + livekit-rtc/livekit/rtc/room.py | 4 + livekit-rtc/rust-sdks | 2 +- 9 files changed, 387 insertions(+), 178 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index e414f0ca..8c514643 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -19,7 +19,7 @@ from . import audio_frame_pb2 as audio__frame__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\x9c\x0c\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12J\n\x15update_local_metadata\x18\t \x01(\x0b\x32).livekit.proto.UpdateLocalMetadataRequestH\x00\x12\x42\n\x11update_local_name\x18\n \x01(\x0b\x32%.livekit.proto.UpdateLocalNameRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0b \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\x0c \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\r \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x0e \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12\x33\n\tget_stats\x18\x0f \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x10 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x11 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x12 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x13 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x17 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xb5\x0c\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12K\n\x15update_local_metadata\x18\t \x01(\x0b\x32*.livekit.proto.UpdateLocalMetadataResponseH\x00\x12\x43\n\x11update_local_name\x18\n \x01(\x0b\x32&.livekit.proto.UpdateLocalNameResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0b \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\r \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x0e \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x34\n\tget_stats\x18\x0f \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x10 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x11 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x12 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x13 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x17 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\xc4\x08\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x06 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x07 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\x08 \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\t \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\n \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0b \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x0c \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12K\n\x15update_local_metadata\x18\r \x01(\x0b\x32*.livekit.proto.UpdateLocalMetadataCallbackH\x00\x12\x43\n\x11update_local_name\x18\x0e \x01(\x0b\x32&.livekit.proto.UpdateLocalNameCallbackH\x00\x12\x34\n\tget_stats\x18\x0f \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x10 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x11 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x12 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\xe3\x0c\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12G\n\x15update_local_metadata\x18\t \x01(\x0b\x32&.livekit.proto.SetLocalMetadataRequestH\x00\x12?\n\x11update_local_name\x18\n \x01(\x0b\x32\".livekit.proto.SetLocalNameRequestH\x00\x12K\n\x17update_local_attributes\x18\x0b \x01(\x0b\x32(.livekit.proto.SetLocalAttributesRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0c \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\r \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12\x33\n\tget_stats\x18\x11 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x12 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x13 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x15 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x17 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x18 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x19 \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1a \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1b \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1c \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xfd\x0c\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12H\n\x15update_local_metadata\x18\t \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataResponseH\x00\x12@\n\x11update_local_name\x18\n \x01(\x0b\x32#.livekit.proto.SetLocalNameResponseH\x00\x12L\n\x17update_local_attributes\x18\x0b \x01(\x0b\x32).livekit.proto.SetLocalAttributesResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0c \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\r \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x12 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x13 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x15 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x17 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\x8c\t\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12H\n\x15update_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12@\n\x11update_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12L\n\x17update_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,24 +27,24 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_LOGLEVEL']._serialized_start=4748 - _globals['_LOGLEVEL']._serialized_end=4831 + _globals['_LOGLEVEL']._serialized_start=4963 + _globals['_LOGLEVEL']._serialized_end=5046 _globals['_FFIREQUEST']._serialized_start=104 - _globals['_FFIREQUEST']._serialized_end=1668 - _globals['_FFIRESPONSE']._serialized_start=1671 - _globals['_FFIRESPONSE']._serialized_end=3260 - _globals['_FFIEVENT']._serialized_start=3263 - _globals['_FFIEVENT']._serialized_end=4355 - _globals['_DISPOSEREQUEST']._serialized_start=4357 - _globals['_DISPOSEREQUEST']._serialized_end=4388 - _globals['_DISPOSERESPONSE']._serialized_start=4390 - _globals['_DISPOSERESPONSE']._serialized_end=4443 - _globals['_DISPOSECALLBACK']._serialized_start=4445 - _globals['_DISPOSECALLBACK']._serialized_end=4480 - _globals['_LOGRECORD']._serialized_start=4483 - _globals['_LOGRECORD']._serialized_end=4665 - _globals['_LOGBATCH']._serialized_start=4667 - _globals['_LOGBATCH']._serialized_end=4720 - _globals['_PANIC']._serialized_start=4722 - _globals['_PANIC']._serialized_end=4746 + _globals['_FFIREQUEST']._serialized_end=1739 + _globals['_FFIRESPONSE']._serialized_start=1742 + _globals['_FFIRESPONSE']._serialized_end=3403 + _globals['_FFIEVENT']._serialized_start=3406 + _globals['_FFIEVENT']._serialized_end=4570 + _globals['_DISPOSEREQUEST']._serialized_start=4572 + _globals['_DISPOSEREQUEST']._serialized_end=4603 + _globals['_DISPOSERESPONSE']._serialized_start=4605 + _globals['_DISPOSERESPONSE']._serialized_end=4658 + _globals['_DISPOSECALLBACK']._serialized_start=4660 + _globals['_DISPOSECALLBACK']._serialized_end=4695 + _globals['_LOGRECORD']._serialized_start=4698 + _globals['_LOGRECORD']._serialized_end=4880 + _globals['_LOGBATCH']._serialized_start=4882 + _globals['_LOGBATCH']._serialized_end=4935 + _globals['_PANIC']._serialized_start=4937 + _globals['_PANIC']._serialized_end=4961 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi index 259880ab..2c8d78cf 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi @@ -100,6 +100,7 @@ class FfiRequest(google.protobuf.message.Message): SET_SUBSCRIBED_FIELD_NUMBER: builtins.int UPDATE_LOCAL_METADATA_FIELD_NUMBER: builtins.int UPDATE_LOCAL_NAME_FIELD_NUMBER: builtins.int + UPDATE_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int PUBLISH_TRANSCRIPTION_FIELD_NUMBER: builtins.int CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int @@ -131,9 +132,11 @@ class FfiRequest(google.protobuf.message.Message): @property def set_subscribed(self) -> room_pb2.SetSubscribedRequest: ... @property - def update_local_metadata(self) -> room_pb2.UpdateLocalMetadataRequest: ... + def update_local_metadata(self) -> room_pb2.SetLocalMetadataRequest: ... @property - def update_local_name(self) -> room_pb2.UpdateLocalNameRequest: ... + def update_local_name(self) -> room_pb2.SetLocalNameRequest: ... + @property + def update_local_attributes(self) -> room_pb2.SetLocalAttributesRequest: ... @property def get_session_stats(self) -> room_pb2.GetSessionStatsRequest: ... @property @@ -177,8 +180,9 @@ class FfiRequest(google.protobuf.message.Message): unpublish_track: room_pb2.UnpublishTrackRequest | None = ..., publish_data: room_pb2.PublishDataRequest | None = ..., set_subscribed: room_pb2.SetSubscribedRequest | None = ..., - update_local_metadata: room_pb2.UpdateLocalMetadataRequest | None = ..., - update_local_name: room_pb2.UpdateLocalNameRequest | None = ..., + update_local_metadata: room_pb2.SetLocalMetadataRequest | None = ..., + update_local_name: room_pb2.SetLocalNameRequest | None = ..., + update_local_attributes: room_pb2.SetLocalAttributesRequest | None = ..., get_session_stats: room_pb2.GetSessionStatsRequest | None = ..., publish_transcription: room_pb2.PublishTranscriptionRequest | None = ..., create_video_track: track_pb2.CreateVideoTrackRequest | None = ..., @@ -195,9 +199,9 @@ class FfiRequest(google.protobuf.message.Message): remix_and_resample: audio_frame_pb2.RemixAndResampleRequest | None = ..., e2ee: e2ee_pb2.E2eeRequest | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "update_local_metadata", "update_local_name", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "update_local_metadata", "update_local_name", "update_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... global___FfiRequest = FfiRequest @@ -216,6 +220,7 @@ class FfiResponse(google.protobuf.message.Message): SET_SUBSCRIBED_FIELD_NUMBER: builtins.int UPDATE_LOCAL_METADATA_FIELD_NUMBER: builtins.int UPDATE_LOCAL_NAME_FIELD_NUMBER: builtins.int + UPDATE_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int PUBLISH_TRANSCRIPTION_FIELD_NUMBER: builtins.int CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int @@ -247,9 +252,11 @@ class FfiResponse(google.protobuf.message.Message): @property def set_subscribed(self) -> room_pb2.SetSubscribedResponse: ... @property - def update_local_metadata(self) -> room_pb2.UpdateLocalMetadataResponse: ... + def update_local_metadata(self) -> room_pb2.SetLocalMetadataResponse: ... + @property + def update_local_name(self) -> room_pb2.SetLocalNameResponse: ... @property - def update_local_name(self) -> room_pb2.UpdateLocalNameResponse: ... + def update_local_attributes(self) -> room_pb2.SetLocalAttributesResponse: ... @property def get_session_stats(self) -> room_pb2.GetSessionStatsResponse: ... @property @@ -293,8 +300,9 @@ class FfiResponse(google.protobuf.message.Message): unpublish_track: room_pb2.UnpublishTrackResponse | None = ..., publish_data: room_pb2.PublishDataResponse | None = ..., set_subscribed: room_pb2.SetSubscribedResponse | None = ..., - update_local_metadata: room_pb2.UpdateLocalMetadataResponse | None = ..., - update_local_name: room_pb2.UpdateLocalNameResponse | None = ..., + update_local_metadata: room_pb2.SetLocalMetadataResponse | None = ..., + update_local_name: room_pb2.SetLocalNameResponse | None = ..., + update_local_attributes: room_pb2.SetLocalAttributesResponse | None = ..., get_session_stats: room_pb2.GetSessionStatsResponse | None = ..., publish_transcription: room_pb2.PublishTranscriptionResponse | None = ..., create_video_track: track_pb2.CreateVideoTrackResponse | None = ..., @@ -311,9 +319,9 @@ class FfiResponse(google.protobuf.message.Message): remix_and_resample: audio_frame_pb2.RemixAndResampleResponse | None = ..., e2ee: e2ee_pb2.E2eeResponse | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "update_local_metadata", "update_local_name", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "update_local_metadata", "update_local_name", "update_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... global___FfiResponse = FfiResponse @@ -340,6 +348,7 @@ class FfiEvent(google.protobuf.message.Message): CAPTURE_AUDIO_FRAME_FIELD_NUMBER: builtins.int UPDATE_LOCAL_METADATA_FIELD_NUMBER: builtins.int UPDATE_LOCAL_NAME_FIELD_NUMBER: builtins.int + UPDATE_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_STATS_FIELD_NUMBER: builtins.int LOGS_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int @@ -369,9 +378,11 @@ class FfiEvent(google.protobuf.message.Message): @property def capture_audio_frame(self) -> audio_frame_pb2.CaptureAudioFrameCallback: ... @property - def update_local_metadata(self) -> room_pb2.UpdateLocalMetadataCallback: ... + def update_local_metadata(self) -> room_pb2.SetLocalMetadataCallback: ... + @property + def update_local_name(self) -> room_pb2.SetLocalNameCallback: ... @property - def update_local_name(self) -> room_pb2.UpdateLocalNameCallback: ... + def update_local_attributes(self) -> room_pb2.SetLocalAttributesCallback: ... @property def get_stats(self) -> track_pb2.GetStatsCallback: ... @property @@ -395,16 +406,17 @@ class FfiEvent(google.protobuf.message.Message): publish_data: room_pb2.PublishDataCallback | None = ..., publish_transcription: room_pb2.PublishTranscriptionCallback | None = ..., capture_audio_frame: audio_frame_pb2.CaptureAudioFrameCallback | None = ..., - update_local_metadata: room_pb2.UpdateLocalMetadataCallback | None = ..., - update_local_name: room_pb2.UpdateLocalNameCallback | None = ..., + update_local_metadata: room_pb2.SetLocalMetadataCallback | None = ..., + update_local_name: room_pb2.SetLocalNameCallback | None = ..., + update_local_attributes: room_pb2.SetLocalAttributesCallback | None = ..., get_stats: track_pb2.GetStatsCallback | None = ..., logs: global___LogBatch | None = ..., get_session_stats: room_pb2.GetSessionStatsCallback | None = ..., panic: global___Panic | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_stream_event", b"video_stream_event"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "update_local_metadata", "update_local_name", "get_stats", "logs", "get_session_stats", "panic"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_stream_event", b"video_stream_event"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "update_local_metadata", "update_local_name", "update_local_attributes", "get_stats", "logs", "get_session_stats", "panic"] | None: ... global___FfiEvent = FfiEvent diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index 0141671d..062ca89a 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -15,7 +15,7 @@ from . import handle_pb2 as handle__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11participant.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"P\n\x0fParticipantInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x10\n\x08metadata\x18\x04 \x01(\t\"o\n\x10OwnedParticipant\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.ParticipantInfoB\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11participant.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"\xc7\x01\n\x0fParticipantInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08identity\x18\x03 \x01(\t\x12\x10\n\x08metadata\x18\x04 \x01(\t\x12\x42\n\nattributes\x18\x05 \x03(\x0b\x32..livekit.proto.ParticipantInfo.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"o\n\x10OwnedParticipant\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.ParticipantInfoB\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,8 +23,12 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_PARTICIPANTINFO']._serialized_start=50 - _globals['_PARTICIPANTINFO']._serialized_end=130 - _globals['_OWNEDPARTICIPANT']._serialized_start=132 - _globals['_OWNEDPARTICIPANT']._serialized_end=243 + _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._options = None + _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_PARTICIPANTINFO']._serialized_start=51 + _globals['_PARTICIPANTINFO']._serialized_end=250 + _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_start=201 + _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_end=250 + _globals['_OWNEDPARTICIPANT']._serialized_start=252 + _globals['_OWNEDPARTICIPANT']._serialized_end=363 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/participant_pb2.pyi index 0b30d59e..5bfd3b8e 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.pyi @@ -16,7 +16,9 @@ See the License for the specific language governing permissions and limitations under the License. """ import builtins +import collections.abc import google.protobuf.descriptor +import google.protobuf.internal.containers import google.protobuf.message from . import handle_pb2 import sys @@ -32,14 +34,33 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor class ParticipantInfo(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + @typing_extensions.final + class AttributesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + SID_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int IDENTITY_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int sid: builtins.str name: builtins.str identity: builtins.str metadata: builtins.str + @property + def attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... def __init__( self, *, @@ -47,8 +68,9 @@ class ParticipantInfo(google.protobuf.message.Message): name: builtins.str = ..., identity: builtins.str = ..., metadata: builtins.str = ..., + attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["identity", b"identity", "metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "identity", b"identity", "metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> None: ... global___ParticipantInfo = ParticipantInfo diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index fa97be84..73ed35ee 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -20,7 +20,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"P\n\x1aUpdateLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\"/\n\x1bUpdateLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"/\n\x1bUpdateLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UpdateLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"+\n\x17UpdateLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"+\n\x17UpdateLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\xbb\x0c\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x12 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x13 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x15 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x17 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x18 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x19 \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1a \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"7\n\x08RoomInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"2\n\x17ParticipantDisconnected\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"d\n\x0eTrackPublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"D\n\x10TrackUnpublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"T\n\x0fTrackSubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"?\n\x11TrackUnsubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"T\n\x17TrackSubscriptionFailed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"8\n\nTrackMuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\":\n\x0cTrackUnmuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Z\n\x10\x45\x32\x65\x65StateChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"1\n\x15\x41\x63tiveSpeakersChanged\x12\x18\n\x10participant_sids\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"G\n\x1aParticipantMetadataChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"?\n\x16ParticipantNameChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"f\n\x18\x43onnectionQualityChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xf5\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12 \n\x0fparticipant_sid\x18\x03 \x01(\tB\x02\x18\x01H\x01\x88\x01\x01\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05valueB\x12\n\x10_participant_sid\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"J\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbe\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12L\n\nattributes\x18\x02 \x03(\x0b\x32\x38.livekit.proto.SetLocalAttributesRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"L\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"F\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\x92\r\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x12 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x13 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x14 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x17 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x18 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x19 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x1a \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1b \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"D\n\x08RoomInfo\x12\x10\n\x03sid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\tB\x06\n\x04_sid\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"2\n\x17ParticipantDisconnected\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"d\n\x0eTrackPublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"D\n\x10TrackUnpublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"T\n\x0fTrackSubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"?\n\x11TrackUnsubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"T\n\x17TrackSubscriptionFailed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"8\n\nTrackMuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\":\n\x0cTrackUnmuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Z\n\x10\x45\x32\x65\x65StateChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"1\n\x15\x41\x63tiveSpeakersChanged\x12\x18\n\x10participant_sids\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"G\n\x1aParticipantMetadataChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\xc9\x02\n\x1cParticipantAttributesChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12V\n\x0eold_attributes\x18\x02 \x03(\x0b\x32>.livekit.proto.ParticipantAttributesChanged.OldAttributesEntry\x12O\n\nattributes\x18\x03 \x03(\x0b\x32;.livekit.proto.ParticipantAttributesChanged.AttributesEntry\x1a\x34\n\x12OldAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"?\n\x16ParticipantNameChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"f\n\x18\x43onnectionQualityChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xf5\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12 \n\x0fparticipant_sid\x18\x03 \x01(\tB\x02\x18\x01H\x01\x88\x01\x01\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05valueB\x12\n\x10_participant_sid\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -30,18 +30,24 @@ _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._options = None _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' + _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._options = None + _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._options = None + _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._options = None + _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_DATAPACKETRECEIVED'].fields_by_name['participant_sid']._options = None _globals['_DATAPACKETRECEIVED'].fields_by_name['participant_sid']._serialized_options = b'\030\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=7287 - _globals['_ICETRANSPORTTYPE']._serialized_end=7367 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=7369 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=7436 - _globals['_CONNECTIONQUALITY']._serialized_start=7438 - _globals['_CONNECTIONQUALITY']._serialized_end=7534 - _globals['_CONNECTIONSTATE']._serialized_start=7536 - _globals['_CONNECTIONSTATE']._serialized_end=7619 - _globals['_DATAPACKETKIND']._serialized_start=7621 - _globals['_DATAPACKETKIND']._serialized_end=7672 + _globals['_ICETRANSPORTTYPE']._serialized_start=8080 + _globals['_ICETRANSPORTTYPE']._serialized_end=8160 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=8162 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=8229 + _globals['_CONNECTIONQUALITY']._serialized_start=8231 + _globals['_CONNECTIONQUALITY']._serialized_end=8327 + _globals['_CONNECTIONSTATE']._serialized_start=8329 + _globals['_CONNECTIONSTATE']._serialized_end=8412 + _globals['_DATAPACKETKIND']._serialized_start=8414 + _globals['_DATAPACKETKIND']._serialized_end=8465 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -80,104 +86,118 @@ _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_end=1815 _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_start=1817 _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_end=1895 - _globals['_UPDATELOCALMETADATAREQUEST']._serialized_start=1897 - _globals['_UPDATELOCALMETADATAREQUEST']._serialized_end=1977 - _globals['_UPDATELOCALMETADATARESPONSE']._serialized_start=1979 - _globals['_UPDATELOCALMETADATARESPONSE']._serialized_end=2026 - _globals['_UPDATELOCALMETADATACALLBACK']._serialized_start=2028 - _globals['_UPDATELOCALMETADATACALLBACK']._serialized_end=2075 - _globals['_UPDATELOCALNAMEREQUEST']._serialized_start=2077 - _globals['_UPDATELOCALNAMEREQUEST']._serialized_end=2149 - _globals['_UPDATELOCALNAMERESPONSE']._serialized_start=2151 - _globals['_UPDATELOCALNAMERESPONSE']._serialized_end=2194 - _globals['_UPDATELOCALNAMECALLBACK']._serialized_start=2196 - _globals['_UPDATELOCALNAMECALLBACK']._serialized_end=2239 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=2241 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=2310 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=2312 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=2335 - _globals['_GETSESSIONSTATSREQUEST']._serialized_start=2337 - _globals['_GETSESSIONSTATSREQUEST']._serialized_end=2382 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=2384 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=2427 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=2430 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=2604 - _globals['_VIDEOENCODING']._serialized_start=2606 - _globals['_VIDEOENCODING']._serialized_end=2665 - _globals['_AUDIOENCODING']._serialized_start=2667 - _globals['_AUDIOENCODING']._serialized_end=2703 - _globals['_TRACKPUBLISHOPTIONS']._serialized_start=2706 - _globals['_TRACKPUBLISHOPTIONS']._serialized_end=2972 - _globals['_ICESERVER']._serialized_start=2974 - _globals['_ICESERVER']._serialized_end=3035 - _globals['_RTCCONFIG']._serialized_start=3038 - _globals['_RTCCONFIG']._serialized_end=3298 - _globals['_ROOMOPTIONS']._serialized_start=3301 - _globals['_ROOMOPTIONS']._serialized_end=3525 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=3527 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=3646 - _globals['_BUFFERINFO']._serialized_start=3648 - _globals['_BUFFERINFO']._serialized_end=3696 - _globals['_OWNEDBUFFER']._serialized_start=3698 - _globals['_OWNEDBUFFER']._serialized_end=3799 - _globals['_ROOMEVENT']._serialized_start=3802 - _globals['_ROOMEVENT']._serialized_end=5397 - _globals['_ROOMINFO']._serialized_start=5399 - _globals['_ROOMINFO']._serialized_end=5454 - _globals['_OWNEDROOM']._serialized_start=5456 - _globals['_OWNEDROOM']._serialized_end=5553 - _globals['_PARTICIPANTCONNECTED']._serialized_start=5555 - _globals['_PARTICIPANTCONNECTED']._serialized_end=5624 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=5626 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=5676 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=5678 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=5718 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=5720 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=5768 - _globals['_TRACKPUBLISHED']._serialized_start=5770 - _globals['_TRACKPUBLISHED']._serialized_end=5870 - _globals['_TRACKUNPUBLISHED']._serialized_start=5872 - _globals['_TRACKUNPUBLISHED']._serialized_end=5940 - _globals['_TRACKSUBSCRIBED']._serialized_start=5942 - _globals['_TRACKSUBSCRIBED']._serialized_end=6026 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=6028 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=6091 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6093 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6177 - _globals['_TRACKMUTED']._serialized_start=6179 - _globals['_TRACKMUTED']._serialized_end=6235 - _globals['_TRACKUNMUTED']._serialized_start=6237 - _globals['_TRACKUNMUTED']._serialized_end=6295 - _globals['_E2EESTATECHANGED']._serialized_start=6297 - _globals['_E2EESTATECHANGED']._serialized_end=6387 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=6389 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=6438 - _globals['_ROOMMETADATACHANGED']._serialized_start=6440 - _globals['_ROOMMETADATACHANGED']._serialized_end=6479 - _globals['_ROOMSIDCHANGED']._serialized_start=6481 - _globals['_ROOMSIDCHANGED']._serialized_end=6510 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=6512 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=6583 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=6585 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=6648 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=6650 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=6752 - _globals['_USERPACKET']._serialized_start=6754 - _globals['_USERPACKET']._serialized_end=6838 - _globals['_SIPDTMF']._serialized_start=6840 - _globals['_SIPDTMF']._serialized_end=6893 - _globals['_DATAPACKETRECEIVED']._serialized_start=6896 - _globals['_DATAPACKETRECEIVED']._serialized_end=7141 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=7143 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=7214 - _globals['_CONNECTED']._serialized_start=7216 - _globals['_CONNECTED']._serialized_end=7227 - _globals['_DISCONNECTED']._serialized_start=7229 - _globals['_DISCONNECTED']._serialized_end=7243 - _globals['_RECONNECTING']._serialized_start=7245 - _globals['_RECONNECTING']._serialized_end=7259 - _globals['_RECONNECTED']._serialized_start=7261 - _globals['_RECONNECTED']._serialized_end=7274 - _globals['_ROOMEOS']._serialized_start=7276 - _globals['_ROOMEOS']._serialized_end=7285 + _globals['_SETLOCALMETADATAREQUEST']._serialized_start=1897 + _globals['_SETLOCALMETADATAREQUEST']._serialized_end=1974 + _globals['_SETLOCALMETADATARESPONSE']._serialized_start=1976 + _globals['_SETLOCALMETADATARESPONSE']._serialized_end=2020 + _globals['_SETLOCALMETADATACALLBACK']._serialized_start=2022 + _globals['_SETLOCALMETADATACALLBACK']._serialized_end=2096 + _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_start=2099 + _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_end=2289 + _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_start=2240 + _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_end=2289 + _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_start=2291 + _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_end=2337 + _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_start=2339 + _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_end=2415 + _globals['_SETLOCALNAMEREQUEST']._serialized_start=2417 + _globals['_SETLOCALNAMEREQUEST']._serialized_end=2486 + _globals['_SETLOCALNAMERESPONSE']._serialized_start=2488 + _globals['_SETLOCALNAMERESPONSE']._serialized_end=2528 + _globals['_SETLOCALNAMECALLBACK']._serialized_start=2530 + _globals['_SETLOCALNAMECALLBACK']._serialized_end=2600 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=2602 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=2671 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=2673 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=2696 + _globals['_GETSESSIONSTATSREQUEST']._serialized_start=2698 + _globals['_GETSESSIONSTATSREQUEST']._serialized_end=2743 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=2745 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=2788 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=2791 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=2965 + _globals['_VIDEOENCODING']._serialized_start=2967 + _globals['_VIDEOENCODING']._serialized_end=3026 + _globals['_AUDIOENCODING']._serialized_start=3028 + _globals['_AUDIOENCODING']._serialized_end=3064 + _globals['_TRACKPUBLISHOPTIONS']._serialized_start=3067 + _globals['_TRACKPUBLISHOPTIONS']._serialized_end=3333 + _globals['_ICESERVER']._serialized_start=3335 + _globals['_ICESERVER']._serialized_end=3396 + _globals['_RTCCONFIG']._serialized_start=3399 + _globals['_RTCCONFIG']._serialized_end=3659 + _globals['_ROOMOPTIONS']._serialized_start=3662 + _globals['_ROOMOPTIONS']._serialized_end=3886 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=3888 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4007 + _globals['_BUFFERINFO']._serialized_start=4009 + _globals['_BUFFERINFO']._serialized_end=4057 + _globals['_OWNEDBUFFER']._serialized_start=4059 + _globals['_OWNEDBUFFER']._serialized_end=4160 + _globals['_ROOMEVENT']._serialized_start=4163 + _globals['_ROOMEVENT']._serialized_end=5845 + _globals['_ROOMINFO']._serialized_start=5847 + _globals['_ROOMINFO']._serialized_end=5915 + _globals['_OWNEDROOM']._serialized_start=5917 + _globals['_OWNEDROOM']._serialized_end=6014 + _globals['_PARTICIPANTCONNECTED']._serialized_start=6016 + _globals['_PARTICIPANTCONNECTED']._serialized_end=6085 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=6087 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6137 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=6139 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=6179 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=6181 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=6229 + _globals['_TRACKPUBLISHED']._serialized_start=6231 + _globals['_TRACKPUBLISHED']._serialized_end=6331 + _globals['_TRACKUNPUBLISHED']._serialized_start=6333 + _globals['_TRACKUNPUBLISHED']._serialized_end=6401 + _globals['_TRACKSUBSCRIBED']._serialized_start=6403 + _globals['_TRACKSUBSCRIBED']._serialized_end=6487 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=6489 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=6552 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6554 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6638 + _globals['_TRACKMUTED']._serialized_start=6640 + _globals['_TRACKMUTED']._serialized_end=6696 + _globals['_TRACKUNMUTED']._serialized_start=6698 + _globals['_TRACKUNMUTED']._serialized_end=6756 + _globals['_E2EESTATECHANGED']._serialized_start=6758 + _globals['_E2EESTATECHANGED']._serialized_end=6848 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=6850 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=6899 + _globals['_ROOMMETADATACHANGED']._serialized_start=6901 + _globals['_ROOMMETADATACHANGED']._serialized_end=6940 + _globals['_ROOMSIDCHANGED']._serialized_start=6942 + _globals['_ROOMSIDCHANGED']._serialized_end=6971 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=6973 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7044 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7047 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=7376 + _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_start=7273 + _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_end=7325 + _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_start=2240 + _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_end=2289 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=7378 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=7441 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=7443 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=7545 + _globals['_USERPACKET']._serialized_start=7547 + _globals['_USERPACKET']._serialized_end=7631 + _globals['_SIPDTMF']._serialized_start=7633 + _globals['_SIPDTMF']._serialized_end=7686 + _globals['_DATAPACKETRECEIVED']._serialized_start=7689 + _globals['_DATAPACKETRECEIVED']._serialized_end=7934 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=7936 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=8007 + _globals['_CONNECTED']._serialized_start=8009 + _globals['_CONNECTED']._serialized_end=8020 + _globals['_DISCONNECTED']._serialized_start=8022 + _globals['_DISCONNECTED']._serialized_end=8036 + _globals['_RECONNECTING']._serialized_start=8038 + _globals['_RECONNECTING']._serialized_end=8052 + _globals['_RECONNECTED']._serialized_start=8054 + _globals['_RECONNECTED']._serialized_end=8067 + _globals['_ROOMEOS']._serialized_start=8069 + _globals['_ROOMEOS']._serialized_end=8078 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi index c6e2a9dc..0a868cf5 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -523,7 +523,7 @@ class PublishTranscriptionCallback(google.protobuf.message.Message): global___PublishTranscriptionCallback = PublishTranscriptionCallback @typing_extensions.final -class UpdateLocalMetadataRequest(google.protobuf.message.Message): +class SetLocalMetadataRequest(google.protobuf.message.Message): """Change the local participant's metadata""" DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -540,10 +540,10 @@ class UpdateLocalMetadataRequest(google.protobuf.message.Message): ) -> None: ... def ClearField(self, field_name: typing_extensions.Literal["local_participant_handle", b"local_participant_handle", "metadata", b"metadata"]) -> None: ... -global___UpdateLocalMetadataRequest = UpdateLocalMetadataRequest +global___SetLocalMetadataRequest = SetLocalMetadataRequest @typing_extensions.final -class UpdateLocalMetadataResponse(google.protobuf.message.Message): +class SetLocalMetadataResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor ASYNC_ID_FIELD_NUMBER: builtins.int @@ -555,10 +555,67 @@ class UpdateLocalMetadataResponse(google.protobuf.message.Message): ) -> None: ... def ClearField(self, field_name: typing_extensions.Literal["async_id", b"async_id"]) -> None: ... -global___UpdateLocalMetadataResponse = UpdateLocalMetadataResponse +global___SetLocalMetadataResponse = SetLocalMetadataResponse @typing_extensions.final -class UpdateLocalMetadataCallback(google.protobuf.message.Message): +class SetLocalMetadataCallback(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + async_id: builtins.int + error: builtins.str + def __init__( + self, + *, + async_id: builtins.int = ..., + error: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_error", b"_error", "error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_error", b"_error", "async_id", b"async_id", "error", b"error"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_error", b"_error"]) -> typing_extensions.Literal["error"] | None: ... + +global___SetLocalMetadataCallback = SetLocalMetadataCallback + +@typing_extensions.final +class SetLocalAttributesRequest(google.protobuf.message.Message): + """Change the local participant's attributes""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class AttributesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + LOCAL_PARTICIPANT_HANDLE_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + local_participant_handle: builtins.int + @property + def attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + local_participant_handle: builtins.int = ..., + attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "local_participant_handle", b"local_participant_handle"]) -> None: ... + +global___SetLocalAttributesRequest = SetLocalAttributesRequest + +@typing_extensions.final +class SetLocalAttributesResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor ASYNC_ID_FIELD_NUMBER: builtins.int @@ -570,10 +627,30 @@ class UpdateLocalMetadataCallback(google.protobuf.message.Message): ) -> None: ... def ClearField(self, field_name: typing_extensions.Literal["async_id", b"async_id"]) -> None: ... -global___UpdateLocalMetadataCallback = UpdateLocalMetadataCallback +global___SetLocalAttributesResponse = SetLocalAttributesResponse @typing_extensions.final -class UpdateLocalNameRequest(google.protobuf.message.Message): +class SetLocalAttributesCallback(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + async_id: builtins.int + error: builtins.str + def __init__( + self, + *, + async_id: builtins.int = ..., + error: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_error", b"_error", "error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_error", b"_error", "async_id", b"async_id", "error", b"error"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_error", b"_error"]) -> typing_extensions.Literal["error"] | None: ... + +global___SetLocalAttributesCallback = SetLocalAttributesCallback + +@typing_extensions.final +class SetLocalNameRequest(google.protobuf.message.Message): """Change the local participant's name""" DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -590,10 +667,10 @@ class UpdateLocalNameRequest(google.protobuf.message.Message): ) -> None: ... def ClearField(self, field_name: typing_extensions.Literal["local_participant_handle", b"local_participant_handle", "name", b"name"]) -> None: ... -global___UpdateLocalNameRequest = UpdateLocalNameRequest +global___SetLocalNameRequest = SetLocalNameRequest @typing_extensions.final -class UpdateLocalNameResponse(google.protobuf.message.Message): +class SetLocalNameResponse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor ASYNC_ID_FIELD_NUMBER: builtins.int @@ -605,22 +682,27 @@ class UpdateLocalNameResponse(google.protobuf.message.Message): ) -> None: ... def ClearField(self, field_name: typing_extensions.Literal["async_id", b"async_id"]) -> None: ... -global___UpdateLocalNameResponse = UpdateLocalNameResponse +global___SetLocalNameResponse = SetLocalNameResponse @typing_extensions.final -class UpdateLocalNameCallback(google.protobuf.message.Message): +class SetLocalNameCallback(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int async_id: builtins.int + error: builtins.str def __init__( self, *, async_id: builtins.int = ..., + error: builtins.str | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["async_id", b"async_id"]) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_error", b"_error", "error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_error", b"_error", "async_id", b"async_id", "error", b"error"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_error", b"_error"]) -> typing_extensions.Literal["error"] | None: ... -global___UpdateLocalNameCallback = UpdateLocalNameCallback +global___SetLocalNameCallback = SetLocalNameCallback @typing_extensions.final class SetSubscribedRequest(google.protobuf.message.Message): @@ -962,6 +1044,7 @@ class RoomEvent(google.protobuf.message.Message): ROOM_SID_CHANGED_FIELD_NUMBER: builtins.int PARTICIPANT_METADATA_CHANGED_FIELD_NUMBER: builtins.int PARTICIPANT_NAME_CHANGED_FIELD_NUMBER: builtins.int + PARTICIPANT_ATTRIBUTES_CHANGED_FIELD_NUMBER: builtins.int CONNECTION_QUALITY_CHANGED_FIELD_NUMBER: builtins.int CONNECTION_STATE_CHANGED_FIELD_NUMBER: builtins.int DISCONNECTED_FIELD_NUMBER: builtins.int @@ -1004,12 +1087,14 @@ class RoomEvent(google.protobuf.message.Message): @property def participant_name_changed(self) -> global___ParticipantNameChanged: ... @property + def participant_attributes_changed(self) -> global___ParticipantAttributesChanged: ... + @property def connection_quality_changed(self) -> global___ConnectionQualityChanged: ... @property def connection_state_changed(self) -> global___ConnectionStateChanged: ... @property def disconnected(self) -> global___Disconnected: - """Connected connected = 20;""" + """Connected connected = 21;""" @property def reconnecting(self) -> global___Reconnecting: ... @property @@ -1041,6 +1126,7 @@ class RoomEvent(google.protobuf.message.Message): room_sid_changed: global___RoomSidChanged | None = ..., participant_metadata_changed: global___ParticipantMetadataChanged | None = ..., participant_name_changed: global___ParticipantNameChanged | None = ..., + participant_attributes_changed: global___ParticipantAttributesChanged | None = ..., connection_quality_changed: global___ConnectionQualityChanged | None = ..., connection_state_changed: global___ConnectionStateChanged | None = ..., disconnected: global___Disconnected | None = ..., @@ -1050,9 +1136,9 @@ class RoomEvent(google.protobuf.message.Message): eos: global___RoomEOS | None = ..., data_packet_received: global___DataPacketReceived | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_handle", b"room_handle", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "track_published", "track_unpublished", "track_subscribed", "track_unsubscribed", "track_subscription_failed", "track_muted", "track_unmuted", "active_speakers_changed", "room_metadata_changed", "room_sid_changed", "participant_metadata_changed", "participant_name_changed", "connection_quality_changed", "connection_state_changed", "disconnected", "reconnecting", "reconnected", "e2ee_state_changed", "eos", "data_packet_received"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_attributes_changed", b"participant_attributes_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_attributes_changed", b"participant_attributes_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_handle", b"room_handle", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "track_published", "track_unpublished", "track_subscribed", "track_unsubscribed", "track_subscription_failed", "track_muted", "track_unmuted", "active_speakers_changed", "room_metadata_changed", "room_sid_changed", "participant_metadata_changed", "participant_name_changed", "participant_attributes_changed", "connection_quality_changed", "connection_state_changed", "disconnected", "reconnecting", "reconnected", "e2ee_state_changed", "eos", "data_packet_received"] | None: ... global___RoomEvent = RoomEvent @@ -1069,11 +1155,13 @@ class RoomInfo(google.protobuf.message.Message): def __init__( self, *, - sid: builtins.str = ..., + sid: builtins.str | None = ..., name: builtins.str = ..., metadata: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_sid", b"_sid", "sid", b"sid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_sid", b"_sid", "metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_sid", b"_sid"]) -> typing_extensions.Literal["sid"] | None: ... global___RoomInfo = RoomInfo @@ -1384,6 +1472,61 @@ class ParticipantMetadataChanged(google.protobuf.message.Message): global___ParticipantMetadataChanged = ParticipantMetadataChanged +@typing_extensions.final +class ParticipantAttributesChanged(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing_extensions.final + class OldAttributesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + @typing_extensions.final + class AttributesEntry(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + KEY_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + key: builtins.str + value: builtins.str + def __init__( + self, + *, + key: builtins.str = ..., + value: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... + + PARTICIPANT_SID_FIELD_NUMBER: builtins.int + OLD_ATTRIBUTES_FIELD_NUMBER: builtins.int + ATTRIBUTES_FIELD_NUMBER: builtins.int + participant_sid: builtins.str + @property + def old_attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + def __init__( + self, + *, + participant_sid: builtins.str = ..., + old_attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "old_attributes", b"old_attributes", "participant_sid", b"participant_sid"]) -> None: ... + +global___ParticipantAttributesChanged = ParticipantAttributesChanged + @typing_extensions.final class ParticipantNameChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index e3f1d171..bbb9457a 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -78,6 +78,10 @@ def identity(self) -> str: def metadata(self) -> str: return self._info.metadata + @property + def attributes(self) -> dict: + return self._info.attributes + class LocalParticipant(Participant): def __init__( diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 81aeb81e..f1c65bad 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -48,6 +48,7 @@ "room_sid_changed", "participant_metadata_changed", "participant_name_changed", + "participant_attributes_changed", "connection_quality_changed", "data_received", "sip_dtmf_received", @@ -388,6 +389,9 @@ def _on_room_event(self, event: proto_room.RoomEvent): self.emit( "participant_name_changed", participant, old_name, participant.name ) + elif which == "participant_attributes_changed": + # TODO + pass elif which == "connection_quality_changed": sid = event.connection_quality_changed.participant_sid # TODO: pass participant identity diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 4865f375..7f141130 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 4865f375463c0c0b6c6e5a080c36b4c31e2480e4 +Subproject commit 7f14113062000bf85c016ecff5c254f6c2e4d62d From 2f8d46ced37ce37a35241b60d32215d54bda1855 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 15 Jul 2024 15:27:54 -0700 Subject: [PATCH 07/23] cooking --- livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 40 ++++++------ livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi | 72 +++++++++++----------- livekit-rtc/livekit/rtc/participant.py | 31 +++++++--- livekit-rtc/rust-sdks | 2 +- 4 files changed, 80 insertions(+), 65 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 8c514643..3b7c29f2 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -19,7 +19,7 @@ from . import audio_frame_pb2 as audio__frame__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\xe3\x0c\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12G\n\x15update_local_metadata\x18\t \x01(\x0b\x32&.livekit.proto.SetLocalMetadataRequestH\x00\x12?\n\x11update_local_name\x18\n \x01(\x0b\x32\".livekit.proto.SetLocalNameRequestH\x00\x12K\n\x17update_local_attributes\x18\x0b \x01(\x0b\x32(.livekit.proto.SetLocalAttributesRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0c \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\r \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12\x33\n\tget_stats\x18\x11 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x12 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x13 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x15 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x17 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x18 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x19 \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1a \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1b \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1c \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xfd\x0c\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12H\n\x15update_local_metadata\x18\t \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataResponseH\x00\x12@\n\x11update_local_name\x18\n \x01(\x0b\x32#.livekit.proto.SetLocalNameResponseH\x00\x12L\n\x17update_local_attributes\x18\x0b \x01(\x0b\x32).livekit.proto.SetLocalAttributesResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0c \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\r \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x12 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x13 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x15 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x17 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\x8c\t\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12H\n\x15update_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12@\n\x11update_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12L\n\x17update_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\xda\x0c\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12\x44\n\x12set_local_metadata\x18\t \x01(\x0b\x32&.livekit.proto.SetLocalMetadataRequestH\x00\x12<\n\x0eset_local_name\x18\n \x01(\x0b\x32\".livekit.proto.SetLocalNameRequestH\x00\x12H\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32(.livekit.proto.SetLocalAttributesRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0c \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\r \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12\x33\n\tget_stats\x18\x11 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x12 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x13 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x15 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x17 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x18 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x19 \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1a \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1b \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1c \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xf4\x0c\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12\x45\n\x12set_local_metadata\x18\t \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataResponseH\x00\x12=\n\x0eset_local_name\x18\n \x01(\x0b\x32#.livekit.proto.SetLocalNameResponseH\x00\x12I\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32).livekit.proto.SetLocalAttributesResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0c \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\r \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x12 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x13 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x15 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x17 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\x83\t\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12\x45\n\x12set_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12=\n\x0eset_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12I\n\x14set_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,24 +27,24 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_LOGLEVEL']._serialized_start=4963 - _globals['_LOGLEVEL']._serialized_end=5046 + _globals['_LOGLEVEL']._serialized_start=4936 + _globals['_LOGLEVEL']._serialized_end=5019 _globals['_FFIREQUEST']._serialized_start=104 - _globals['_FFIREQUEST']._serialized_end=1739 - _globals['_FFIRESPONSE']._serialized_start=1742 - _globals['_FFIRESPONSE']._serialized_end=3403 - _globals['_FFIEVENT']._serialized_start=3406 - _globals['_FFIEVENT']._serialized_end=4570 - _globals['_DISPOSEREQUEST']._serialized_start=4572 - _globals['_DISPOSEREQUEST']._serialized_end=4603 - _globals['_DISPOSERESPONSE']._serialized_start=4605 - _globals['_DISPOSERESPONSE']._serialized_end=4658 - _globals['_DISPOSECALLBACK']._serialized_start=4660 - _globals['_DISPOSECALLBACK']._serialized_end=4695 - _globals['_LOGRECORD']._serialized_start=4698 - _globals['_LOGRECORD']._serialized_end=4880 - _globals['_LOGBATCH']._serialized_start=4882 - _globals['_LOGBATCH']._serialized_end=4935 - _globals['_PANIC']._serialized_start=4937 - _globals['_PANIC']._serialized_end=4961 + _globals['_FFIREQUEST']._serialized_end=1730 + _globals['_FFIRESPONSE']._serialized_start=1733 + _globals['_FFIRESPONSE']._serialized_end=3385 + _globals['_FFIEVENT']._serialized_start=3388 + _globals['_FFIEVENT']._serialized_end=4543 + _globals['_DISPOSEREQUEST']._serialized_start=4545 + _globals['_DISPOSEREQUEST']._serialized_end=4576 + _globals['_DISPOSERESPONSE']._serialized_start=4578 + _globals['_DISPOSERESPONSE']._serialized_end=4631 + _globals['_DISPOSECALLBACK']._serialized_start=4633 + _globals['_DISPOSECALLBACK']._serialized_end=4668 + _globals['_LOGRECORD']._serialized_start=4671 + _globals['_LOGRECORD']._serialized_end=4853 + _globals['_LOGBATCH']._serialized_start=4855 + _globals['_LOGBATCH']._serialized_end=4908 + _globals['_PANIC']._serialized_start=4910 + _globals['_PANIC']._serialized_end=4934 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi index 2c8d78cf..75f13ce7 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi @@ -98,9 +98,9 @@ class FfiRequest(google.protobuf.message.Message): UNPUBLISH_TRACK_FIELD_NUMBER: builtins.int PUBLISH_DATA_FIELD_NUMBER: builtins.int SET_SUBSCRIBED_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_METADATA_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_NAME_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int + SET_LOCAL_METADATA_FIELD_NUMBER: builtins.int + SET_LOCAL_NAME_FIELD_NUMBER: builtins.int + SET_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int PUBLISH_TRANSCRIPTION_FIELD_NUMBER: builtins.int CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int @@ -132,11 +132,11 @@ class FfiRequest(google.protobuf.message.Message): @property def set_subscribed(self) -> room_pb2.SetSubscribedRequest: ... @property - def update_local_metadata(self) -> room_pb2.SetLocalMetadataRequest: ... + def set_local_metadata(self) -> room_pb2.SetLocalMetadataRequest: ... @property - def update_local_name(self) -> room_pb2.SetLocalNameRequest: ... + def set_local_name(self) -> room_pb2.SetLocalNameRequest: ... @property - def update_local_attributes(self) -> room_pb2.SetLocalAttributesRequest: ... + def set_local_attributes(self) -> room_pb2.SetLocalAttributesRequest: ... @property def get_session_stats(self) -> room_pb2.GetSessionStatsRequest: ... @property @@ -180,9 +180,9 @@ class FfiRequest(google.protobuf.message.Message): unpublish_track: room_pb2.UnpublishTrackRequest | None = ..., publish_data: room_pb2.PublishDataRequest | None = ..., set_subscribed: room_pb2.SetSubscribedRequest | None = ..., - update_local_metadata: room_pb2.SetLocalMetadataRequest | None = ..., - update_local_name: room_pb2.SetLocalNameRequest | None = ..., - update_local_attributes: room_pb2.SetLocalAttributesRequest | None = ..., + set_local_metadata: room_pb2.SetLocalMetadataRequest | None = ..., + set_local_name: room_pb2.SetLocalNameRequest | None = ..., + set_local_attributes: room_pb2.SetLocalAttributesRequest | None = ..., get_session_stats: room_pb2.GetSessionStatsRequest | None = ..., publish_transcription: room_pb2.PublishTranscriptionRequest | None = ..., create_video_track: track_pb2.CreateVideoTrackRequest | None = ..., @@ -199,9 +199,9 @@ class FfiRequest(google.protobuf.message.Message): remix_and_resample: audio_frame_pb2.RemixAndResampleRequest | None = ..., e2ee: e2ee_pb2.E2eeRequest | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "update_local_metadata", "update_local_name", "update_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... global___FfiRequest = FfiRequest @@ -218,9 +218,9 @@ class FfiResponse(google.protobuf.message.Message): UNPUBLISH_TRACK_FIELD_NUMBER: builtins.int PUBLISH_DATA_FIELD_NUMBER: builtins.int SET_SUBSCRIBED_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_METADATA_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_NAME_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int + SET_LOCAL_METADATA_FIELD_NUMBER: builtins.int + SET_LOCAL_NAME_FIELD_NUMBER: builtins.int + SET_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int PUBLISH_TRANSCRIPTION_FIELD_NUMBER: builtins.int CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int @@ -252,11 +252,11 @@ class FfiResponse(google.protobuf.message.Message): @property def set_subscribed(self) -> room_pb2.SetSubscribedResponse: ... @property - def update_local_metadata(self) -> room_pb2.SetLocalMetadataResponse: ... + def set_local_metadata(self) -> room_pb2.SetLocalMetadataResponse: ... @property - def update_local_name(self) -> room_pb2.SetLocalNameResponse: ... + def set_local_name(self) -> room_pb2.SetLocalNameResponse: ... @property - def update_local_attributes(self) -> room_pb2.SetLocalAttributesResponse: ... + def set_local_attributes(self) -> room_pb2.SetLocalAttributesResponse: ... @property def get_session_stats(self) -> room_pb2.GetSessionStatsResponse: ... @property @@ -300,9 +300,9 @@ class FfiResponse(google.protobuf.message.Message): unpublish_track: room_pb2.UnpublishTrackResponse | None = ..., publish_data: room_pb2.PublishDataResponse | None = ..., set_subscribed: room_pb2.SetSubscribedResponse | None = ..., - update_local_metadata: room_pb2.SetLocalMetadataResponse | None = ..., - update_local_name: room_pb2.SetLocalNameResponse | None = ..., - update_local_attributes: room_pb2.SetLocalAttributesResponse | None = ..., + set_local_metadata: room_pb2.SetLocalMetadataResponse | None = ..., + set_local_name: room_pb2.SetLocalNameResponse | None = ..., + set_local_attributes: room_pb2.SetLocalAttributesResponse | None = ..., get_session_stats: room_pb2.GetSessionStatsResponse | None = ..., publish_transcription: room_pb2.PublishTranscriptionResponse | None = ..., create_video_track: track_pb2.CreateVideoTrackResponse | None = ..., @@ -319,9 +319,9 @@ class FfiResponse(google.protobuf.message.Message): remix_and_resample: audio_frame_pb2.RemixAndResampleResponse | None = ..., e2ee: e2ee_pb2.E2eeResponse | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_convert", b"video_convert"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "update_local_metadata", "update_local_name", "update_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... global___FfiResponse = FfiResponse @@ -346,9 +346,9 @@ class FfiEvent(google.protobuf.message.Message): PUBLISH_DATA_FIELD_NUMBER: builtins.int PUBLISH_TRANSCRIPTION_FIELD_NUMBER: builtins.int CAPTURE_AUDIO_FRAME_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_METADATA_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_NAME_FIELD_NUMBER: builtins.int - UPDATE_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int + SET_LOCAL_METADATA_FIELD_NUMBER: builtins.int + SET_LOCAL_NAME_FIELD_NUMBER: builtins.int + SET_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_STATS_FIELD_NUMBER: builtins.int LOGS_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int @@ -378,11 +378,11 @@ class FfiEvent(google.protobuf.message.Message): @property def capture_audio_frame(self) -> audio_frame_pb2.CaptureAudioFrameCallback: ... @property - def update_local_metadata(self) -> room_pb2.SetLocalMetadataCallback: ... + def set_local_metadata(self) -> room_pb2.SetLocalMetadataCallback: ... @property - def update_local_name(self) -> room_pb2.SetLocalNameCallback: ... + def set_local_name(self) -> room_pb2.SetLocalNameCallback: ... @property - def update_local_attributes(self) -> room_pb2.SetLocalAttributesCallback: ... + def set_local_attributes(self) -> room_pb2.SetLocalAttributesCallback: ... @property def get_stats(self) -> track_pb2.GetStatsCallback: ... @property @@ -406,17 +406,17 @@ class FfiEvent(google.protobuf.message.Message): publish_data: room_pb2.PublishDataCallback | None = ..., publish_transcription: room_pb2.PublishTranscriptionCallback | None = ..., capture_audio_frame: audio_frame_pb2.CaptureAudioFrameCallback | None = ..., - update_local_metadata: room_pb2.SetLocalMetadataCallback | None = ..., - update_local_name: room_pb2.SetLocalNameCallback | None = ..., - update_local_attributes: room_pb2.SetLocalAttributesCallback | None = ..., + set_local_metadata: room_pb2.SetLocalMetadataCallback | None = ..., + set_local_name: room_pb2.SetLocalNameCallback | None = ..., + set_local_attributes: room_pb2.SetLocalAttributesCallback | None = ..., get_stats: track_pb2.GetStatsCallback | None = ..., logs: global___LogBatch | None = ..., get_session_stats: room_pb2.GetSessionStatsCallback | None = ..., panic: global___Panic | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "update_local_attributes", b"update_local_attributes", "update_local_metadata", b"update_local_metadata", "update_local_name", b"update_local_name", "video_stream_event", b"video_stream_event"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "update_local_metadata", "update_local_name", "update_local_attributes", "get_stats", "logs", "get_session_stats", "panic"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "set_local_metadata", "set_local_name", "set_local_attributes", "get_stats", "logs", "get_session_stats", "panic"] | None: ... global___FfiEvent = FfiEvent diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index bbb9457a..f0c9e762 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -79,8 +79,8 @@ def metadata(self) -> str: return self._info.metadata @property - def attributes(self) -> dict: - return self._info.attributes + def attributes(self) -> dict[str, str]: + return dict(self._info.attributes) class LocalParticipant(Participant): @@ -166,10 +166,10 @@ async def publish_transcription(self, transcription: Transcription) -> None: if cb.publish_transcription.error: raise PublishTranscriptionError(cb.publish_transcription.error) - async def update_metadata(self, metadata: str) -> None: + async def set_metadata(self, metadata: str) -> None: req = proto_ffi.FfiRequest() - req.update_local_metadata.local_participant_handle = self._ffi_handle.handle - req.update_local_metadata.metadata = metadata + req.set_local_metadata.local_participant_handle = self._ffi_handle.handle + req.set_local_metadata.metadata = metadata queue = FfiClient.instance.queue.subscribe() try: @@ -181,10 +181,10 @@ async def update_metadata(self, metadata: str) -> None: finally: FfiClient.instance.queue.unsubscribe(queue) - async def update_name(self, name: str) -> None: + async def set_name(self, name: str) -> None: req = proto_ffi.FfiRequest() - req.update_local_name.local_participant_handle = self._ffi_handle.handle - req.update_local_name.name = name + req.set_local_name.local_participant_handle = self._ffi_handle.handle + req.set_local_name.name = name queue = FfiClient.instance.queue.subscribe() try: @@ -196,6 +196,21 @@ async def update_name(self, name: str) -> None: finally: FfiClient.instance.queue.unsubscribe(queue) + async def set_attributes(self, attributes: dict[str, str]) -> None: + req = proto_ffi.FfiRequest() + req.set_local_attributes.local_participant_handle = self._ffi_handle.handle + req.set_local_attributes.attributes.update(attributes) + + queue = FfiClient.instance.queue.subscribe() + try: + resp = FfiClient.instance.request(req) + await queue.wait_for( + lambda e: e.set_local_attributes.async_id + == resp.set_local_attributes.async_id + ) + finally: + FfiClient.instance.queue.unsubscribe(queue) + async def publish_track( self, track: LocalTrack, options: TrackPublishOptions = TrackPublishOptions() ) -> LocalTrackPublication: diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 7f141130..a2d0382c 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 7f14113062000bf85c016ecff5c254f6c2e4d62d +Subproject commit a2d0382c51ae7eb5c33872142b3044857ba0a3dd From 9ff19ff47f35764063d90a2b40af05a6bd87617d Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 15 Jul 2024 15:48:19 -0700 Subject: [PATCH 08/23] sid changed --- livekit-rtc/livekit/rtc/room.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index f1c65bad..a74a787a 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -45,7 +45,6 @@ "track_unmuted", "active_speakers_changed", "room_metadata_changed", - "room_sid_changed", "participant_metadata_changed", "participant_name_changed", "participant_attributes_changed", @@ -116,14 +115,18 @@ def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: self.participants: Dict[str, RemoteParticipant] = {} self.participants_by_identity: Dict[str, RemoteParticipant] = {} self.connection_state = ConnectionState.CONN_DISCONNECTED + self._first_sid_future = asyncio.Future[str]() def __del__(self) -> None: if self._ffi_handle is not None: FfiClient.instance.queue.unsubscribe(self._ffi_queue) @property - def sid(self) -> str: - return self._info.sid + async def sid(self) -> str: + if self._info.sid: + return self._info.sid + + return await self._first_sid_future @property def name(self) -> str: @@ -363,9 +366,10 @@ def _on_room_event(self, event: proto_room.RoomEvent): self._info.metadata = event.room_metadata_changed.metadata self.emit("room_metadata_changed", old_metadata, self.metadata) elif which == "room_sid_changed": - old_sid = self.sid + if not self._info.sid: + self._first_sid_future.set_result(event.room_sid_changed.sid) self._info.sid = event.room_sid_changed.sid - self.emit("room_sid_changed", old_sid, self.sid) + # This is an internal event, not exposed to users elif which == "participant_metadata_changed": sid = event.participant_metadata_changed.participant_sid # TODO: pass participant identity From 0de5eb91ada4a8842769e6b3a44221380501ffd4 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Tue, 16 Jul 2024 12:11:01 -0700 Subject: [PATCH 09/23] working --- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 134 ++++++++++---------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 123 +++++++++--------- livekit-rtc/livekit/rtc/room.py | 84 ++++++------ livekit-rtc/rust-sdks | 2 +- 4 files changed, 161 insertions(+), 182 deletions(-) diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index 73ed35ee..530c36ba 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -20,7 +20,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"J\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbe\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12L\n\nattributes\x18\x02 \x03(\x0b\x32\x38.livekit.proto.SetLocalAttributesRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"L\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"F\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\x92\r\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x12 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x13 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x14 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x17 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x18 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x19 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x1a \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1b \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"D\n\x08RoomInfo\x12\x10\n\x03sid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\tB\x06\n\x04_sid\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"2\n\x17ParticipantDisconnected\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"d\n\x0eTrackPublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"D\n\x10TrackUnpublished\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"T\n\x0fTrackSubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"?\n\x11TrackUnsubscribed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"T\n\x17TrackSubscriptionFailed\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"8\n\nTrackMuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\":\n\x0cTrackUnmuted\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Z\n\x10\x45\x32\x65\x65StateChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"1\n\x15\x41\x63tiveSpeakersChanged\x12\x18\n\x10participant_sids\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"G\n\x1aParticipantMetadataChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\xc9\x02\n\x1cParticipantAttributesChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12V\n\x0eold_attributes\x18\x02 \x03(\x0b\x32>.livekit.proto.ParticipantAttributesChanged.OldAttributesEntry\x12O\n\nattributes\x18\x03 \x03(\x0b\x32;.livekit.proto.ParticipantAttributesChanged.AttributesEntry\x1a\x34\n\x12OldAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"?\n\x16ParticipantNameChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"f\n\x18\x43onnectionQualityChanged\x12\x17\n\x0fparticipant_sid\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xf5\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12 \n\x0fparticipant_sid\x18\x03 \x01(\tB\x02\x18\x01H\x01\x88\x01\x01\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05valueB\x12\n\x10_participant_sid\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"J\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbe\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12L\n\nattributes\x18\x02 \x03(\x0b\x32\x38.livekit.proto.SetLocalAttributesRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"L\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"F\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\x92\r\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x12 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x13 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x14 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x17 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x18 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x19 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x1a \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1b \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"D\n\x08RoomInfo\x12\x10\n\x03sid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\tB\x06\n\x04_sid\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"7\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"i\n\x0eTrackPublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"I\n\x10TrackUnpublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"Y\n\x0fTrackSubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"D\n\x11TrackUnsubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Y\n\x17TrackSubscriptionFailed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"=\n\nTrackMuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"?\n\x0cTrackUnmuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"_\n\x10\x45\x32\x65\x65StateChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"7\n\x15\x41\x63tiveSpeakersChanged\x12\x1e\n\x16participant_identities\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"L\n\x1aParticipantMetadataChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\xce\x02\n\x1cParticipantAttributesChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12V\n\x0eold_attributes\x18\x02 \x03(\x0b\x32>.livekit.proto.ParticipantAttributesChanged.OldAttributesEntry\x12O\n\nattributes\x18\x03 \x03(\x0b\x32;.livekit.proto.ParticipantAttributesChanged.AttributesEntry\x1a\x34\n\x12OldAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"k\n\x18\x43onnectionQualityChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xbf\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05value\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -36,18 +36,16 @@ _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._options = None _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_DATAPACKETRECEIVED'].fields_by_name['participant_sid']._options = None - _globals['_DATAPACKETRECEIVED'].fields_by_name['participant_sid']._serialized_options = b'\030\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=8080 - _globals['_ICETRANSPORTTYPE']._serialized_end=8160 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=8162 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=8229 - _globals['_CONNECTIONQUALITY']._serialized_start=8231 - _globals['_CONNECTIONQUALITY']._serialized_end=8327 - _globals['_CONNECTIONSTATE']._serialized_start=8329 - _globals['_CONNECTIONSTATE']._serialized_end=8412 - _globals['_DATAPACKETKIND']._serialized_start=8414 - _globals['_DATAPACKETKIND']._serialized_end=8465 + _globals['_ICETRANSPORTTYPE']._serialized_start=8097 + _globals['_ICETRANSPORTTYPE']._serialized_end=8177 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=8179 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=8246 + _globals['_CONNECTIONQUALITY']._serialized_start=8248 + _globals['_CONNECTIONQUALITY']._serialized_end=8344 + _globals['_CONNECTIONSTATE']._serialized_start=8346 + _globals['_CONNECTIONSTATE']._serialized_end=8429 + _globals['_DATAPACKETKIND']._serialized_start=8431 + _globals['_DATAPACKETKIND']._serialized_end=8482 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -143,61 +141,61 @@ _globals['_PARTICIPANTCONNECTED']._serialized_start=6016 _globals['_PARTICIPANTCONNECTED']._serialized_end=6085 _globals['_PARTICIPANTDISCONNECTED']._serialized_start=6087 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6137 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=6139 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=6179 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=6181 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=6229 - _globals['_TRACKPUBLISHED']._serialized_start=6231 - _globals['_TRACKPUBLISHED']._serialized_end=6331 - _globals['_TRACKUNPUBLISHED']._serialized_start=6333 - _globals['_TRACKUNPUBLISHED']._serialized_end=6401 - _globals['_TRACKSUBSCRIBED']._serialized_start=6403 - _globals['_TRACKSUBSCRIBED']._serialized_end=6487 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=6489 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=6552 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6554 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6638 - _globals['_TRACKMUTED']._serialized_start=6640 - _globals['_TRACKMUTED']._serialized_end=6696 - _globals['_TRACKUNMUTED']._serialized_start=6698 - _globals['_TRACKUNMUTED']._serialized_end=6756 - _globals['_E2EESTATECHANGED']._serialized_start=6758 - _globals['_E2EESTATECHANGED']._serialized_end=6848 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=6850 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=6899 - _globals['_ROOMMETADATACHANGED']._serialized_start=6901 - _globals['_ROOMMETADATACHANGED']._serialized_end=6940 - _globals['_ROOMSIDCHANGED']._serialized_start=6942 - _globals['_ROOMSIDCHANGED']._serialized_end=6971 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=6973 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7044 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7047 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=7376 - _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_start=7273 - _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_end=7325 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6142 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=6144 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=6184 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=6186 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=6234 + _globals['_TRACKPUBLISHED']._serialized_start=6236 + _globals['_TRACKPUBLISHED']._serialized_end=6341 + _globals['_TRACKUNPUBLISHED']._serialized_start=6343 + _globals['_TRACKUNPUBLISHED']._serialized_end=6416 + _globals['_TRACKSUBSCRIBED']._serialized_start=6418 + _globals['_TRACKSUBSCRIBED']._serialized_end=6507 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=6509 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=6577 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6579 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6668 + _globals['_TRACKMUTED']._serialized_start=6670 + _globals['_TRACKMUTED']._serialized_end=6731 + _globals['_TRACKUNMUTED']._serialized_start=6733 + _globals['_TRACKUNMUTED']._serialized_end=6796 + _globals['_E2EESTATECHANGED']._serialized_start=6798 + _globals['_E2EESTATECHANGED']._serialized_end=6893 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=6895 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=6950 + _globals['_ROOMMETADATACHANGED']._serialized_start=6952 + _globals['_ROOMMETADATACHANGED']._serialized_end=6991 + _globals['_ROOMSIDCHANGED']._serialized_start=6993 + _globals['_ROOMSIDCHANGED']._serialized_end=7022 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=7024 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7100 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7103 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=7437 + _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_start=7334 + _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_end=7386 _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_start=2240 _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_end=2289 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=7378 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=7441 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=7443 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=7545 - _globals['_USERPACKET']._serialized_start=7547 - _globals['_USERPACKET']._serialized_end=7631 - _globals['_SIPDTMF']._serialized_start=7633 - _globals['_SIPDTMF']._serialized_end=7686 - _globals['_DATAPACKETRECEIVED']._serialized_start=7689 - _globals['_DATAPACKETRECEIVED']._serialized_end=7934 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=7936 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=8007 - _globals['_CONNECTED']._serialized_start=8009 - _globals['_CONNECTED']._serialized_end=8020 - _globals['_DISCONNECTED']._serialized_start=8022 - _globals['_DISCONNECTED']._serialized_end=8036 - _globals['_RECONNECTING']._serialized_start=8038 - _globals['_RECONNECTING']._serialized_end=8052 - _globals['_RECONNECTED']._serialized_start=8054 - _globals['_RECONNECTED']._serialized_end=8067 - _globals['_ROOMEOS']._serialized_start=8069 - _globals['_ROOMEOS']._serialized_end=8078 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=7439 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=7507 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=7509 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=7616 + _globals['_USERPACKET']._serialized_start=7618 + _globals['_USERPACKET']._serialized_end=7702 + _globals['_SIPDTMF']._serialized_start=7704 + _globals['_SIPDTMF']._serialized_end=7757 + _globals['_DATAPACKETRECEIVED']._serialized_start=7760 + _globals['_DATAPACKETRECEIVED']._serialized_end=7951 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=7953 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=8024 + _globals['_CONNECTED']._serialized_start=8026 + _globals['_CONNECTED']._serialized_end=8037 + _globals['_DISCONNECTED']._serialized_start=8039 + _globals['_DISCONNECTED']._serialized_end=8053 + _globals['_RECONNECTING']._serialized_start=8055 + _globals['_RECONNECTING']._serialized_end=8069 + _globals['_RECONNECTED']._serialized_start=8071 + _globals['_RECONNECTED']._serialized_end=8084 + _globals['_ROOMEOS']._serialized_start=8086 + _globals['_ROOMEOS']._serialized_end=8095 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi index 0a868cf5..29323a5e 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -1207,14 +1207,14 @@ global___ParticipantConnected = ParticipantConnected class ParticipantDisconnected(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int + participant_identity: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity"]) -> None: ... global___ParticipantDisconnected = ParticipantDisconnected @@ -1255,19 +1255,19 @@ global___LocalTrackUnpublished = LocalTrackUnpublished class TrackPublished(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int PUBLICATION_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str @property def publication(self) -> track_pb2.OwnedTrackPublication: ... def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., publication: track_pb2.OwnedTrackPublication | None = ..., ) -> None: ... def HasField(self, field_name: typing_extensions.Literal["publication", b"publication"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "publication", b"publication"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "publication", b"publication"]) -> None: ... global___TrackPublished = TrackPublished @@ -1275,17 +1275,17 @@ global___TrackPublished = TrackPublished class TrackUnpublished(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int PUBLICATION_SID_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str publication_sid: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., publication_sid: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "publication_sid", b"publication_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "publication_sid", b"publication_sid"]) -> None: ... global___TrackUnpublished = TrackUnpublished @@ -1297,19 +1297,19 @@ class TrackSubscribed(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int TRACK_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str @property def track(self) -> track_pb2.OwnedTrack: ... def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., track: track_pb2.OwnedTrack | None = ..., ) -> None: ... def HasField(self, field_name: typing_extensions.Literal["track", b"track"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "track", b"track"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "track", b"track"]) -> None: ... global___TrackSubscribed = TrackSubscribed @@ -1317,18 +1317,18 @@ global___TrackSubscribed = TrackSubscribed class TrackUnsubscribed(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int TRACK_SID_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str """The FFI language can dispose/remove the VideoSink here""" track_sid: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., track_sid: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "track_sid", b"track_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "track_sid", b"track_sid"]) -> None: ... global___TrackUnsubscribed = TrackUnsubscribed @@ -1336,20 +1336,20 @@ global___TrackUnsubscribed = TrackUnsubscribed class TrackSubscriptionFailed(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int TRACK_SID_FIELD_NUMBER: builtins.int ERROR_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str track_sid: builtins.str error: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., track_sid: builtins.str = ..., error: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["error", b"error", "participant_sid", b"participant_sid", "track_sid", b"track_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["error", b"error", "participant_identity", b"participant_identity", "track_sid", b"track_sid"]) -> None: ... global___TrackSubscriptionFailed = TrackSubscriptionFailed @@ -1357,17 +1357,17 @@ global___TrackSubscriptionFailed = TrackSubscriptionFailed class TrackMuted(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int TRACK_SID_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str track_sid: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., track_sid: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "track_sid", b"track_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "track_sid", b"track_sid"]) -> None: ... global___TrackMuted = TrackMuted @@ -1375,17 +1375,17 @@ global___TrackMuted = TrackMuted class TrackUnmuted(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int TRACK_SID_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str track_sid: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., track_sid: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "track_sid", b"track_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "track_sid", b"track_sid"]) -> None: ... global___TrackUnmuted = TrackUnmuted @@ -1393,18 +1393,18 @@ global___TrackUnmuted = TrackUnmuted class E2eeStateChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int STATE_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str """Using sid instead of identity for ffi communication""" state: e2ee_pb2.EncryptionState.ValueType def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., state: e2ee_pb2.EncryptionState.ValueType = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "state", b"state"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "state", b"state"]) -> None: ... global___E2eeStateChanged = E2eeStateChanged @@ -1412,15 +1412,15 @@ global___E2eeStateChanged = E2eeStateChanged class ActiveSpeakersChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SIDS_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITIES_FIELD_NUMBER: builtins.int @property - def participant_sids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def participant_identities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... def __init__( self, *, - participant_sids: collections.abc.Iterable[builtins.str] | None = ..., + participant_identities: collections.abc.Iterable[builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sids", b"participant_sids"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identities", b"participant_identities"]) -> None: ... global___ActiveSpeakersChanged = ActiveSpeakersChanged @@ -1458,17 +1458,17 @@ global___RoomSidChanged = RoomSidChanged class ParticipantMetadataChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int METADATA_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str metadata: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., metadata: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "participant_sid", b"participant_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["metadata", b"metadata", "participant_identity", b"participant_identity"]) -> None: ... global___ParticipantMetadataChanged = ParticipantMetadataChanged @@ -1508,10 +1508,10 @@ class ParticipantAttributesChanged(google.protobuf.message.Message): ) -> None: ... def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int OLD_ATTRIBUTES_FIELD_NUMBER: builtins.int ATTRIBUTES_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str @property def old_attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... @property @@ -1519,11 +1519,11 @@ class ParticipantAttributesChanged(google.protobuf.message.Message): def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., old_attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "old_attributes", b"old_attributes", "participant_sid", b"participant_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "old_attributes", b"old_attributes", "participant_identity", b"participant_identity"]) -> None: ... global___ParticipantAttributesChanged = ParticipantAttributesChanged @@ -1531,17 +1531,17 @@ global___ParticipantAttributesChanged = ParticipantAttributesChanged class ParticipantNameChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str name: builtins.str def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., name: builtins.str = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "participant_sid", b"participant_sid"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "participant_identity", b"participant_identity"]) -> None: ... global___ParticipantNameChanged = ParticipantNameChanged @@ -1549,17 +1549,17 @@ global___ParticipantNameChanged = ParticipantNameChanged class ConnectionQualityChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTICIPANT_SID_FIELD_NUMBER: builtins.int + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int QUALITY_FIELD_NUMBER: builtins.int - participant_sid: builtins.str + participant_identity: builtins.str quality: global___ConnectionQuality.ValueType def __init__( self, *, - participant_sid: builtins.str = ..., + participant_identity: builtins.str = ..., quality: global___ConnectionQuality.ValueType = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["participant_sid", b"participant_sid", "quality", b"quality"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["participant_identity", b"participant_identity", "quality", b"quality"]) -> None: ... global___ConnectionQualityChanged = ConnectionQualityChanged @@ -1610,14 +1610,11 @@ class DataPacketReceived(google.protobuf.message.Message): KIND_FIELD_NUMBER: builtins.int PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int - PARTICIPANT_SID_FIELD_NUMBER: builtins.int USER_FIELD_NUMBER: builtins.int SIP_DTMF_FIELD_NUMBER: builtins.int kind: global___DataPacketKind.ValueType participant_identity: builtins.str """Can be empty if the data is sent a server SDK""" - participant_sid: builtins.str - """Can be empty if the data is sent a server SDK""" @property def user(self) -> global___UserPacket: ... @property @@ -1627,15 +1624,11 @@ class DataPacketReceived(google.protobuf.message.Message): *, kind: global___DataPacketKind.ValueType = ..., participant_identity: builtins.str = ..., - participant_sid: builtins.str | None = ..., user: global___UserPacket | None = ..., sip_dtmf: global___SipDTMF | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["_participant_sid", b"_participant_sid", "participant_sid", b"participant_sid", "sip_dtmf", b"sip_dtmf", "user", b"user", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["_participant_sid", b"_participant_sid", "kind", b"kind", "participant_identity", b"participant_identity", "participant_sid", b"participant_sid", "sip_dtmf", b"sip_dtmf", "user", b"user", "value", b"value"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing_extensions.Literal["_participant_sid", b"_participant_sid"]) -> typing_extensions.Literal["participant_sid"] | None: ... - @typing.overload + def HasField(self, field_name: typing_extensions.Literal["sip_dtmf", b"sip_dtmf", "user", b"user", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["kind", b"kind", "participant_identity", b"participant_identity", "sip_dtmf", b"sip_dtmf", "user", b"user", "value", b"value"]) -> None: ... def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["user", "sip_dtmf"] | None: ... global___DataPacketReceived = DataPacketReceived diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index a74a787a..0e8442b8 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -113,7 +113,6 @@ def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: self._info = proto_room.RoomInfo() self.participants: Dict[str, RemoteParticipant] = {} - self.participants_by_identity: Dict[str, RemoteParticipant] = {} self.connection_state = ConnectionState.CONN_DISCONNECTED self._first_sid_future = asyncio.Future[str]() @@ -270,9 +269,8 @@ def _on_room_event(self, event: proto_room.RoomEvent): ) self.emit("participant_connected", rparticipant) elif which == "participant_disconnected": - sid = event.participant_disconnected.participant_sid - rparticipant = self.participants.pop(sid) - self.participants_by_identity.pop(rparticipant.identity) + identity = event.participant_disconnected.participant_identity + rparticipant = self.participants.pop(identity) self.emit("participant_disconnected", rparticipant) elif which == "local_track_published": sid = event.local_track_published.track_sid @@ -284,12 +282,14 @@ def _on_room_event(self, event: proto_room.RoomEvent): lpublication = self.local_participant.tracks[sid] self.emit("local_track_unpublished", lpublication) elif which == "track_published": - rparticipant = self.participants[event.track_published.participant_sid] + rparticipant = self.participants[event.track_published.participant_identity] rpublication = RemoteTrackPublication(event.track_published.publication) rparticipant.tracks[rpublication.sid] = rpublication self.emit("track_published", rpublication, rparticipant) elif which == "track_unpublished": - rparticipant = self.participants[event.track_unpublished.participant_sid] + rparticipant = self.participants[ + event.track_unpublished.participant_identity + ] rpublication = rparticipant.tracks.pop( event.track_unpublished.publication_sid ) @@ -297,7 +297,9 @@ def _on_room_event(self, event: proto_room.RoomEvent): elif which == "track_subscribed": owned_track_info = event.track_subscribed.track track_info = owned_track_info.info - rparticipant = self.participants[event.track_subscribed.participant_sid] + rparticipant = self.participants[ + event.track_subscribed.participant_identity + ] rpublication = rparticipant.tracks[track_info.sid] rpublication.subscribed = True if track_info.kind == TrackKind.KIND_VIDEO: @@ -313,16 +315,16 @@ def _on_room_event(self, event: proto_room.RoomEvent): "track_subscribed", remote_audio_track, rpublication, rparticipant ) elif which == "track_unsubscribed": - sid = event.track_unsubscribed.participant_sid - rparticipant = self.participants[sid] + identity = event.track_unsubscribed.participant_identity + rparticipant = self.participants[identity] rpublication = rparticipant.tracks[event.track_unsubscribed.track_sid] track = rpublication.track rpublication.track = None rpublication.subscribed = False self.emit("track_unsubscribed", track, rpublication, rparticipant) elif which == "track_subscription_failed": - sid = event.track_subscription_failed.participant_sid - rparticipant = self.participants[sid] + identity = event.track_subscription_failed.participant_identity + rparticipant = self.participants[identity] error = event.track_subscription_failed.error self.emit( "track_subscription_failed", @@ -331,9 +333,9 @@ def _on_room_event(self, event: proto_room.RoomEvent): error, ) elif which == "track_muted": - sid = event.track_muted.participant_sid + identity = event.track_muted.participant_identity # TODO: pass participant identity - participant = self._retrieve_participant(sid, "") + participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) publication = participant.tracks[event.track_muted.track_sid] publication._info.muted = True @@ -342,9 +344,9 @@ def _on_room_event(self, event: proto_room.RoomEvent): self.emit("track_muted", participant, publication) elif which == "track_unmuted": - sid = event.track_unmuted.participant_sid + identity = event.track_unmuted.participant_identity # TODO: pass participant identity - participant = self._retrieve_participant(sid, "") + participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) publication = participant.tracks[event.track_unmuted.track_sid] publication._info.muted = False @@ -355,8 +357,8 @@ def _on_room_event(self, event: proto_room.RoomEvent): elif which == "active_speakers_changed": speakers: list[Participant] = [] # TODO: pass participant identity - for sid in event.active_speakers_changed.participant_sids: - participant = self._retrieve_participant(sid, "") + for identity in event.active_speakers_changed.participant_identities: + participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) speakers.append(participant) @@ -371,9 +373,9 @@ def _on_room_event(self, event: proto_room.RoomEvent): self._info.sid = event.room_sid_changed.sid # This is an internal event, not exposed to users elif which == "participant_metadata_changed": - sid = event.participant_metadata_changed.participant_sid + identity = event.participant_metadata_changed.participant_identity # TODO: pass participant identity - participant = self._retrieve_participant(sid, "") + participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) old_metadata = participant.metadata participant._info.metadata = event.participant_metadata_changed.metadata @@ -384,9 +386,9 @@ def _on_room_event(self, event: proto_room.RoomEvent): participant.metadata, ) elif which == "participant_name_changed": - sid = event.participant_name_changed.participant_sid + identity = event.participant_name_changed.participant_identity # TODO: pass participant identity - participant = self._retrieve_participant(sid, "") + participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) old_name = participant.name participant._info.name = event.participant_name_changed.name @@ -397,9 +399,9 @@ def _on_room_event(self, event: proto_room.RoomEvent): # TODO pass elif which == "connection_quality_changed": - sid = event.connection_quality_changed.participant_sid + identity = event.connection_quality_changed.participant_identity # TODO: pass participant identity - participant = self._retrieve_participant(sid, "") + participant = self._retrieve_participant(identity) self.emit( "connection_quality_changed", participant, @@ -420,9 +422,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): FfiHandle(owned_buffer_info.handle.id) rparticipant = cast( RemoteParticipant, - self._retrieve_remote_participant( - packet.participant_sid, packet.participant_identity - ), + self._retrieve_remote_participant(packet.participant_identity), ) self.emit( "data_received", @@ -436,9 +436,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): elif which_val == "sip_dtmf": rparticipant = cast( RemoteParticipant, - self._retrieve_remote_participant( - packet.participant_sid, packet.participant_identity - ), + self._retrieve_remote_participant(packet.participant_identity), ) self.emit( "sip_dtmf_received", @@ -450,11 +448,11 @@ def _on_room_event(self, event: proto_room.RoomEvent): ) elif which == "e2ee_state_changed": - sid = event.e2ee_state_changed.participant_sid + identity = event.e2ee_state_changed.participant_identity e2ee_state = event.e2ee_state_changed.state # TODO: pass participant identity self.emit( - "e2ee_state_changed", self._retrieve_participant(sid, ""), e2ee_state + "e2ee_state_changed", self._retrieve_participant(identity), e2ee_state ) elif which == "connection_state_changed": connection_state = event.connection_state_changed.state @@ -470,35 +468,25 @@ def _on_room_event(self, event: proto_room.RoomEvent): self.emit("reconnected") def _retrieve_remote_participant( - self, sid: str, identity: str + self, identity: str ) -> Optional[RemoteParticipant]: """Retrieve a remote participant by sid or identity""" - participant = None - if identity: - participant = self.participants_by_identity[identity] - if not participant and sid in self.participants: - participant = self.participants[sid] - return participant + return self.participants.get(identity, None) - def _retrieve_participant(self, sid: str, identity: str) -> Optional[Participant]: + def _retrieve_participant(self, identity: str) -> Optional[Participant]: """Retrieve a participant by sid or identity, returns the LocalParticipant if sid or identity matches""" if identity and identity == self.local_participant.identity: return self.local_participant - if sid and sid == self.local_participant.sid: - return self.local_participant - else: - return self._retrieve_remote_participant(sid, identity) + + return self._retrieve_remote_participant(identity) def _create_remote_participant( self, owned_info: proto_participant.OwnedParticipant ) -> RemoteParticipant: - if owned_info.info.sid in self.participants: - raise Exception("participant already exists") - if owned_info.info.identity in self.participants_by_identity: + if owned_info.info.identity in self.participants: raise Exception("participant already exists") participant = RemoteParticipant(owned_info) - self.participants[participant.sid] = participant - self.participants_by_identity[participant.identity] = participant + self.participants[participant.identity] = participant return participant diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index a2d0382c..a748f36a 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit a2d0382c51ae7eb5c33872142b3044857ba0a3dd +Subproject commit a748f36a9f1f744814b67bef40332002a15468d6 From 9535a976b3bfbc361c240153353df9f0c0c9ec79 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Tue, 16 Jul 2024 16:35:51 -0700 Subject: [PATCH 10/23] api updates --- README.md | 2 +- livekit-rtc/livekit/rtc/participant.py | 10 +++--- livekit-rtc/livekit/rtc/room.py | 47 ++++++++++++++------------ livekit-rtc/rust-sdks | 2 +- 4 files changed, 32 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index dc11e36b..40fa8cf6 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ async def main(): # participants and tracks that are already available in the room # participant_connected and track_published events will *not* be emitted for them for participant in room.participants.items(): - for publication in participant.tracks.items(): + for publication in participant.trackPublications.items(): print("track publication: %s", publication.sid) ``` diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index f0c9e762..fe4fa0b5 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -60,7 +60,7 @@ class Participant: def __init__(self, owned_info: proto_participant.OwnedParticipant) -> None: self._info = owned_info.info self._ffi_handle = FfiHandle(owned_info.handle.id) - self.tracks: dict[str, TrackPublication] = {} + self.trackPublications: dict[str, TrackPublication] = {} @property def sid(self) -> str: @@ -91,7 +91,7 @@ def __init__( ) -> None: super().__init__(owned_info) self._room_queue = room_queue - self.tracks: dict[str, LocalTrackPublication] = {} # type: ignore + self.trackPublications: dict[str, LocalTrackPublication] = {} # type: ignore async def publish_data( self, @@ -232,7 +232,7 @@ async def publish_track( track_publication = LocalTrackPublication(cb.publish_track.publication) track_publication.track = track track._info.sid = track_publication.sid - self.tracks[track_publication.sid] = track_publication + self.trackPublications[track_publication.sid] = track_publication queue.task_done() return track_publication @@ -254,7 +254,7 @@ async def unpublish_track(self, track_sid: str) -> None: if cb.unpublish_track.error: raise UnpublishTrackError(cb.unpublish_track.error) - publication = self.tracks.pop(track_sid) + publication = self.trackPublications.pop(track_sid) publication.track = None queue.task_done() finally: @@ -264,4 +264,4 @@ async def unpublish_track(self, track_sid: str) -> None: class RemoteParticipant(Participant): def __init__(self, owned_info: proto_participant.OwnedParticipant) -> None: super().__init__(owned_info) - self.tracks: dict[str, RemoteTrackPublication] = {} # type: ignore + self.trackPublications: dict[str, RemoteTrackPublication] = {} # type: ignore diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 0e8442b8..ec80ca11 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -112,7 +112,7 @@ def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None: self._room_queue = BroadcastQueue[proto_ffi.FfiEvent]() self._info = proto_room.RoomInfo() - self.participants: Dict[str, RemoteParticipant] = {} + self.remote_participants: Dict[str, RemoteParticipant] = {} self.connection_state = ConnectionState.CONN_DISCONNECTED self._first_sid_future = asyncio.Future[str]() @@ -215,7 +215,7 @@ async def connect( # add the initial remote participant tracks for owned_publication_info in pt.publications: publication = RemoteTrackPublication(owned_publication_info) - rp.tracks[publication.sid] = publication + rp.trackPublications[publication.sid] = publication # start listening to room events self._task = self._loop.create_task(self._listen_task()) @@ -270,37 +270,39 @@ def _on_room_event(self, event: proto_room.RoomEvent): self.emit("participant_connected", rparticipant) elif which == "participant_disconnected": identity = event.participant_disconnected.participant_identity - rparticipant = self.participants.pop(identity) + rparticipant = self.remote_participants.pop(identity) self.emit("participant_disconnected", rparticipant) elif which == "local_track_published": sid = event.local_track_published.track_sid - lpublication = self.local_participant.tracks[sid] + lpublication = self.local_participant.trackPublications[sid] track = lpublication.track self.emit("local_track_published", lpublication, track) elif which == "local_track_unpublished": sid = event.local_track_unpublished.publication_sid - lpublication = self.local_participant.tracks[sid] + lpublication = self.local_participant.trackPublications[sid] self.emit("local_track_unpublished", lpublication) elif which == "track_published": - rparticipant = self.participants[event.track_published.participant_identity] + rparticipant = self.remote_participants[ + event.track_published.participant_identity + ] rpublication = RemoteTrackPublication(event.track_published.publication) - rparticipant.tracks[rpublication.sid] = rpublication + rparticipant.trackPublications[rpublication.sid] = rpublication self.emit("track_published", rpublication, rparticipant) elif which == "track_unpublished": - rparticipant = self.participants[ + rparticipant = self.remote_participants[ event.track_unpublished.participant_identity ] - rpublication = rparticipant.tracks.pop( + rpublication = rparticipant.trackPublications.pop( event.track_unpublished.publication_sid ) self.emit("track_unpublished", rpublication, rparticipant) elif which == "track_subscribed": owned_track_info = event.track_subscribed.track track_info = owned_track_info.info - rparticipant = self.participants[ + rparticipant = self.remote_participants[ event.track_subscribed.participant_identity ] - rpublication = rparticipant.tracks[track_info.sid] + rpublication = rparticipant.trackPublications[track_info.sid] rpublication.subscribed = True if track_info.kind == TrackKind.KIND_VIDEO: remote_video_track = RemoteVideoTrack(owned_track_info) @@ -316,15 +318,17 @@ def _on_room_event(self, event: proto_room.RoomEvent): ) elif which == "track_unsubscribed": identity = event.track_unsubscribed.participant_identity - rparticipant = self.participants[identity] - rpublication = rparticipant.tracks[event.track_unsubscribed.track_sid] + rparticipant = self.remote_participants[identity] + rpublication = rparticipant.trackPublications[ + event.track_unsubscribed.track_sid + ] track = rpublication.track rpublication.track = None rpublication.subscribed = False self.emit("track_unsubscribed", track, rpublication, rparticipant) elif which == "track_subscription_failed": identity = event.track_subscription_failed.participant_identity - rparticipant = self.participants[identity] + rparticipant = self.remote_participants[identity] error = event.track_subscription_failed.error self.emit( "track_subscription_failed", @@ -337,7 +341,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): # TODO: pass participant identity participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) - publication = participant.tracks[event.track_muted.track_sid] + publication = participant.trackPublications[event.track_muted.track_sid] publication._info.muted = True if publication.track: publication.track._info.muted = True @@ -348,7 +352,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): # TODO: pass participant identity participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) - publication = participant.tracks[event.track_unmuted.track_sid] + publication = participant.trackPublications[event.track_unmuted.track_sid] publication._info.muted = False if publication.track: publication.track._info.muted = False @@ -470,12 +474,11 @@ def _on_room_event(self, event: proto_room.RoomEvent): def _retrieve_remote_participant( self, identity: str ) -> Optional[RemoteParticipant]: - """Retrieve a remote participant by sid or identity""" - return self.participants.get(identity, None) + """Retrieve a remote participant by identity""" + return self.remote_participants.get(identity, None) def _retrieve_participant(self, identity: str) -> Optional[Participant]: - """Retrieve a participant by sid or identity, - returns the LocalParticipant if sid or identity matches""" + """Retrieve a local or remote participant by identity""" if identity and identity == self.local_participant.identity: return self.local_participant @@ -484,9 +487,9 @@ def _retrieve_participant(self, identity: str) -> Optional[Participant]: def _create_remote_participant( self, owned_info: proto_participant.OwnedParticipant ) -> RemoteParticipant: - if owned_info.info.identity in self.participants: + if owned_info.info.identity in self.remote_participants: raise Exception("participant already exists") participant = RemoteParticipant(owned_info) - self.participants[participant.identity] = participant + self.remote_participants[participant.identity] = participant return participant diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index a748f36a..07963c3a 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit a748f36a9f1f744814b67bef40332002a15468d6 +Subproject commit 07963c3afd28b04eb57a5e5cf79617ca2bcb5b63 From 69c703921afcebbe86af4a23a0332ea7e6a8bf67 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Tue, 16 Jul 2024 16:38:11 -0700 Subject: [PATCH 11/23] update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5dcc36ed..0cae2d61 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ async def main(): # participants and tracks that are already available in the room # participant_connected and track_published events will *not* be emitted for them for participant in room.participants.items(): - for publication in participant.tracks.items(): + for publication in participant.trackPublications.items(): print("track publication: %s", publication.sid) ``` From 2cead687547b6d71b8c90186c6f6a9a616695598 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Tue, 16 Jul 2024 16:40:46 -0700 Subject: [PATCH 12/23] use python naming --- README.md | 2 +- livekit-rtc/livekit/rtc/participant.py | 10 +++++----- livekit-rtc/livekit/rtc/room.py | 18 +++++++++--------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 0cae2d61..28421ba0 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ async def main(): # participants and tracks that are already available in the room # participant_connected and track_published events will *not* be emitted for them for participant in room.participants.items(): - for publication in participant.trackPublications.items(): + for publication in participant.track_publications.items(): print("track publication: %s", publication.sid) ``` diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index fe4fa0b5..a0aa749a 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -60,7 +60,7 @@ class Participant: def __init__(self, owned_info: proto_participant.OwnedParticipant) -> None: self._info = owned_info.info self._ffi_handle = FfiHandle(owned_info.handle.id) - self.trackPublications: dict[str, TrackPublication] = {} + self.track_publications: dict[str, TrackPublication] = {} @property def sid(self) -> str: @@ -91,7 +91,7 @@ def __init__( ) -> None: super().__init__(owned_info) self._room_queue = room_queue - self.trackPublications: dict[str, LocalTrackPublication] = {} # type: ignore + self.track_publications: dict[str, LocalTrackPublication] = {} # type: ignore async def publish_data( self, @@ -232,7 +232,7 @@ async def publish_track( track_publication = LocalTrackPublication(cb.publish_track.publication) track_publication.track = track track._info.sid = track_publication.sid - self.trackPublications[track_publication.sid] = track_publication + self.track_publications[track_publication.sid] = track_publication queue.task_done() return track_publication @@ -254,7 +254,7 @@ async def unpublish_track(self, track_sid: str) -> None: if cb.unpublish_track.error: raise UnpublishTrackError(cb.unpublish_track.error) - publication = self.trackPublications.pop(track_sid) + publication = self.track_publications.pop(track_sid) publication.track = None queue.task_done() finally: @@ -264,4 +264,4 @@ async def unpublish_track(self, track_sid: str) -> None: class RemoteParticipant(Participant): def __init__(self, owned_info: proto_participant.OwnedParticipant) -> None: super().__init__(owned_info) - self.trackPublications: dict[str, RemoteTrackPublication] = {} # type: ignore + self.track_publications: dict[str, RemoteTrackPublication] = {} # type: ignore diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index ec80ca11..5f7f0ae8 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -215,7 +215,7 @@ async def connect( # add the initial remote participant tracks for owned_publication_info in pt.publications: publication = RemoteTrackPublication(owned_publication_info) - rp.trackPublications[publication.sid] = publication + rp.track_publications[publication.sid] = publication # start listening to room events self._task = self._loop.create_task(self._listen_task()) @@ -274,25 +274,25 @@ def _on_room_event(self, event: proto_room.RoomEvent): self.emit("participant_disconnected", rparticipant) elif which == "local_track_published": sid = event.local_track_published.track_sid - lpublication = self.local_participant.trackPublications[sid] + lpublication = self.local_participant.track_publications[sid] track = lpublication.track self.emit("local_track_published", lpublication, track) elif which == "local_track_unpublished": sid = event.local_track_unpublished.publication_sid - lpublication = self.local_participant.trackPublications[sid] + lpublication = self.local_participant.track_publications[sid] self.emit("local_track_unpublished", lpublication) elif which == "track_published": rparticipant = self.remote_participants[ event.track_published.participant_identity ] rpublication = RemoteTrackPublication(event.track_published.publication) - rparticipant.trackPublications[rpublication.sid] = rpublication + rparticipant.track_publications[rpublication.sid] = rpublication self.emit("track_published", rpublication, rparticipant) elif which == "track_unpublished": rparticipant = self.remote_participants[ event.track_unpublished.participant_identity ] - rpublication = rparticipant.trackPublications.pop( + rpublication = rparticipant.track_publications.pop( event.track_unpublished.publication_sid ) self.emit("track_unpublished", rpublication, rparticipant) @@ -302,7 +302,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): rparticipant = self.remote_participants[ event.track_subscribed.participant_identity ] - rpublication = rparticipant.trackPublications[track_info.sid] + rpublication = rparticipant.track_publications[track_info.sid] rpublication.subscribed = True if track_info.kind == TrackKind.KIND_VIDEO: remote_video_track = RemoteVideoTrack(owned_track_info) @@ -319,7 +319,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): elif which == "track_unsubscribed": identity = event.track_unsubscribed.participant_identity rparticipant = self.remote_participants[identity] - rpublication = rparticipant.trackPublications[ + rpublication = rparticipant.track_publications[ event.track_unsubscribed.track_sid ] track = rpublication.track @@ -341,7 +341,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): # TODO: pass participant identity participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) - publication = participant.trackPublications[event.track_muted.track_sid] + publication = participant.track_publications[event.track_muted.track_sid] publication._info.muted = True if publication.track: publication.track._info.muted = True @@ -352,7 +352,7 @@ def _on_room_event(self, event: proto_room.RoomEvent): # TODO: pass participant identity participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) - publication = participant.trackPublications[event.track_unmuted.track_sid] + publication = participant.track_publications[event.track_unmuted.track_sid] publication._info.muted = False if publication.track: publication.track._info.muted = False From d423882dc909eea6a5a3874819e3db4010a28756 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Wed, 17 Jul 2024 09:57:54 -0700 Subject: [PATCH 13/23] DataPublishOptions --- livekit-rtc/livekit/rtc/participant.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index a0aa749a..b9441301 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -15,6 +15,7 @@ from __future__ import annotations import ctypes +from dataclasses import dataclass, field from typing import List, Union from ._ffi_client import FfiClient, FfiHandle @@ -96,9 +97,7 @@ def __init__( async def publish_data( self, payload: Union[bytes, str], - reliable: bool = True, - destination_identities: List[Union[str, "RemoteParticipant"]] = [], - topic: str = "", + options: DataPublishOptions, ) -> None: if isinstance(payload, str): payload = payload.encode("utf-8") @@ -110,17 +109,9 @@ async def publish_data( req.publish_data.local_participant_handle = self._ffi_handle.handle req.publish_data.data_ptr = ctypes.addressof(cdata) req.publish_data.data_len = data_len - req.publish_data.reliable = reliable - req.publish_data.topic = topic - - sids = [] - for p in destination_identities: - if isinstance(p, RemoteParticipant): - sids.append(p.sid) - else: - sids.append(p) - - req.publish_data.destination_identities.extend(sids) + req.publish_data.reliable = options.reliable + req.publish_data.topic = options.topic + req.publish_data.destination_identities.extend(options.destination_identities) queue = FfiClient.instance.queue.subscribe() try: @@ -265,3 +256,10 @@ class RemoteParticipant(Participant): def __init__(self, owned_info: proto_participant.OwnedParticipant) -> None: super().__init__(owned_info) self.track_publications: dict[str, RemoteTrackPublication] = {} # type: ignore + + +@dataclass +class DataPublishOptions: + reliable: bool = True + topic: str = "" + destination_identities: List[str] = field(default_factory=list) From d8b33a70bc3a6c97af56e298077ac56270458d40 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Wed, 17 Jul 2024 10:27:55 -0700 Subject: [PATCH 14/23] expose + chat --- livekit-rtc/livekit/rtc/__init__.py | 7 ++++++- livekit-rtc/livekit/rtc/chat.py | 7 +++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/livekit-rtc/livekit/rtc/__init__.py b/livekit-rtc/livekit/rtc/__init__.py index c04d96a0..632790e7 100644 --- a/livekit-rtc/livekit/rtc/__init__.py +++ b/livekit-rtc/livekit/rtc/__init__.py @@ -38,7 +38,12 @@ KeyProvider, KeyProviderOptions, ) -from .participant import LocalParticipant, Participant, RemoteParticipant +from .participant import ( + DataPublishOptions, + LocalParticipant, + Participant, + RemoteParticipant, +) from .room import ConnectError, DataPacket, Room, RoomOptions, RtcConfiguration, SipDTMF from .track import ( AudioTrack, diff --git a/livekit-rtc/livekit/rtc/chat.py b/livekit-rtc/livekit/rtc/chat.py index f266d9d4..c6d42ebf 100644 --- a/livekit-rtc/livekit/rtc/chat.py +++ b/livekit-rtc/livekit/rtc/chat.py @@ -19,6 +19,7 @@ from typing import Any, Dict, Literal, Optional from .room import Room, Participant, DataPacket +from .participant import DataPublishOptions from ._event_emitter import EventEmitter from ._utils import generate_random_base62 @@ -60,8 +61,7 @@ async def send_message(self, message: str) -> "ChatMessage": ) await self._lp.publish_data( payload=json.dumps(msg.asjsondict()), - reliable=True, - topic=_CHAT_TOPIC, + options=DataPublishOptions(topic=_CHAT_TOPIC), ) return msg @@ -73,8 +73,7 @@ async def update_message(self, message: "ChatMessage"): """ await self._lp.publish_data( payload=json.dumps(message.asjsondict()), - reliable=True, - topic=_CHAT_UPDATE_TOPIC, + options=DataPublishOptions(topic=_CHAT_UPDATE_TOPIC), ) def _on_data_received(self, dp: DataPacket): From 56b54456c893cc4d361bffa7f9fd092fbf7ff211 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Wed, 17 Jul 2024 10:34:08 -0700 Subject: [PATCH 15/23] fix ruff --- livekit-rtc/livekit/rtc/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/livekit-rtc/livekit/rtc/__init__.py b/livekit-rtc/livekit/rtc/__init__.py index 632790e7..a81d930d 100644 --- a/livekit-rtc/livekit/rtc/__init__.py +++ b/livekit-rtc/livekit/rtc/__init__.py @@ -92,6 +92,7 @@ "LocalParticipant", "Participant", "RemoteParticipant", + "DataPublishOptions", "ConnectError", "Room", "RoomOptions", From 50299f4f477fcc076ea3ece6fcb81e09711e5bb0 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Wed, 17 Jul 2024 12:06:36 -0700 Subject: [PATCH 16/23] use kwargs instead --- livekit-rtc/livekit/rtc/__init__.py | 2 -- livekit-rtc/livekit/rtc/chat.py | 5 ++--- livekit-rtc/livekit/rtc/participant.py | 22 ++++++++++------------ 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/livekit-rtc/livekit/rtc/__init__.py b/livekit-rtc/livekit/rtc/__init__.py index a81d930d..57d27f70 100644 --- a/livekit-rtc/livekit/rtc/__init__.py +++ b/livekit-rtc/livekit/rtc/__init__.py @@ -39,7 +39,6 @@ KeyProviderOptions, ) from .participant import ( - DataPublishOptions, LocalParticipant, Participant, RemoteParticipant, @@ -92,7 +91,6 @@ "LocalParticipant", "Participant", "RemoteParticipant", - "DataPublishOptions", "ConnectError", "Room", "RoomOptions", diff --git a/livekit-rtc/livekit/rtc/chat.py b/livekit-rtc/livekit/rtc/chat.py index c6d42ebf..032fdd2a 100644 --- a/livekit-rtc/livekit/rtc/chat.py +++ b/livekit-rtc/livekit/rtc/chat.py @@ -19,7 +19,6 @@ from typing import Any, Dict, Literal, Optional from .room import Room, Participant, DataPacket -from .participant import DataPublishOptions from ._event_emitter import EventEmitter from ._utils import generate_random_base62 @@ -61,7 +60,7 @@ async def send_message(self, message: str) -> "ChatMessage": ) await self._lp.publish_data( payload=json.dumps(msg.asjsondict()), - options=DataPublishOptions(topic=_CHAT_TOPIC), + topic=_CHAT_TOPIC, ) return msg @@ -73,7 +72,7 @@ async def update_message(self, message: "ChatMessage"): """ await self._lp.publish_data( payload=json.dumps(message.asjsondict()), - options=DataPublishOptions(topic=_CHAT_UPDATE_TOPIC), + topic=_CHAT_UPDATE_TOPIC, ) def _on_data_received(self, dp: DataPacket): diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index b9441301..e01202c2 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -15,7 +15,6 @@ from __future__ import annotations import ctypes -from dataclasses import dataclass, field from typing import List, Union from ._ffi_client import FfiClient, FfiHandle @@ -97,11 +96,17 @@ def __init__( async def publish_data( self, payload: Union[bytes, str], - options: DataPublishOptions, + *, + reliable: bool = True, + destination_identities: List[str] | None = None, + topic: str = "", ) -> None: if isinstance(payload, str): payload = payload.encode("utf-8") + if destination_identities is None: + destination_identities = [] + data_len = len(payload) cdata = (ctypes.c_byte * data_len)(*payload) @@ -109,9 +114,9 @@ async def publish_data( req.publish_data.local_participant_handle = self._ffi_handle.handle req.publish_data.data_ptr = ctypes.addressof(cdata) req.publish_data.data_len = data_len - req.publish_data.reliable = options.reliable - req.publish_data.topic = options.topic - req.publish_data.destination_identities.extend(options.destination_identities) + req.publish_data.reliable = reliable + req.publish_data.topic = topic + req.publish_data.destination_identities.extend(destination_identities) queue = FfiClient.instance.queue.subscribe() try: @@ -256,10 +261,3 @@ class RemoteParticipant(Participant): def __init__(self, owned_info: proto_participant.OwnedParticipant) -> None: super().__init__(owned_info) self.track_publications: dict[str, RemoteTrackPublication] = {} # type: ignore - - -@dataclass -class DataPublishOptions: - reliable: bool = True - topic: str = "" - destination_identities: List[str] = field(default_factory=list) From 6183b2302e813d32cd21163326e8d3d66b05009f Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Wed, 17 Jul 2024 12:14:19 -0700 Subject: [PATCH 17/23] use empty list because we own it --- livekit-rtc/livekit/rtc/participant.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index e01202c2..729bf86a 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -98,15 +98,12 @@ async def publish_data( payload: Union[bytes, str], *, reliable: bool = True, - destination_identities: List[str] | None = None, + destination_identities: List[str] = [], topic: str = "", ) -> None: if isinstance(payload, str): payload = payload.encode("utf-8") - if destination_identities is None: - destination_identities = [] - data_len = len(payload) cdata = (ctypes.c_byte * data_len)(*payload) From b473cd2975d8528e249c2e0bc09a6736a800188b Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Fri, 19 Jul 2024 17:05:17 -0700 Subject: [PATCH 18/23] Attributes --- examples/basic_room.py | 2 +- examples/participant_attributes.py | 71 ++++++ livekit-rtc/livekit/rtc/_proto/ffi_pb2.py | 40 +-- livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi | 30 ++- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 260 ++++++++++---------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 76 +++++- livekit-rtc/livekit/rtc/room.py | 17 +- livekit-rtc/rust-sdks | 2 +- 8 files changed, 330 insertions(+), 168 deletions(-) create mode 100644 examples/participant_attributes.py diff --git a/examples/basic_room.py b/examples/basic_room.py index 7d1544b5..bf5a8dde 100644 --- a/examples/basic_room.py +++ b/examples/basic_room.py @@ -139,7 +139,7 @@ def on_reconnected() -> None: ) await room.connect(os.getenv("LIVEKIT_URL"), token) logging.info("connected to room %s", room.name) - logging.info("participants: %s", room.participants) + logging.info("participants: %s", room.remote_participants) await asyncio.sleep(2) await room.local_participant.publish_data("hello world") diff --git a/examples/participant_attributes.py b/examples/participant_attributes.py new file mode 100644 index 00000000..53d24da0 --- /dev/null +++ b/examples/participant_attributes.py @@ -0,0 +1,71 @@ +import asyncio +import logging +from signal import SIGINT, SIGTERM +import os + +from livekit import api, rtc + +# ensure LIVEKIT_URL, LIVEKIT_API_KEY, and LIVEKIT_API_SECRET are set + + +async def main(room: rtc.Room) -> None: + token = ( + api.AccessToken() + .with_identity("python-bot") + .with_name("Python Bot") + .with_grants( + api.VideoGrants( + room_join=True, + room="my-room", + can_update_own_metadata=True, + ) + ) + .to_jwt() + ) + + @room.on("participant_attributes_changed") + def on_participant_attributes_changed( + participant: rtc.Participant, changed_attributes: dict[str, str] + ): + logging.info( + "participant attributes changed: %s %s", + participant.attributes, + changed_attributes, + ) + + await room.connect(os.getenv("LIVEKIT_URL"), token) + logging.info("connected to room %s", room.name) + + # Create an attribute + await room.local_participant.set_attributes({"foo": "bar"}) + # Delete an attribute + await room.local_participant.set_attributes({"foo": ""}) + + # Create another attribute + await room.local_participant.set_attributes({"baz": "qux"}) + + # Update an attribute + await room.local_participant.set_attributes({"baz": "biz"}) + + +if __name__ == "__main__": + logging.basicConfig( + level=logging.INFO, + handlers=[logging.FileHandler("basic_room.log"), logging.StreamHandler()], + ) + + loop = asyncio.get_event_loop() + room = rtc.Room(loop=loop) + + async def cleanup(): + await room.disconnect() + loop.stop() + + asyncio.ensure_future(main(room)) + for signal in [SIGINT, SIGTERM]: + loop.add_signal_handler(signal, lambda: asyncio.ensure_future(cleanup())) + + try: + loop.run_forever() + finally: + loop.close() diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index 3b7c29f2..77a1c26c 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -19,7 +19,7 @@ from . import audio_frame_pb2 as audio__frame__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\xda\x0c\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12\x44\n\x12set_local_metadata\x18\t \x01(\x0b\x32&.livekit.proto.SetLocalMetadataRequestH\x00\x12<\n\x0eset_local_name\x18\n \x01(\x0b\x32\".livekit.proto.SetLocalNameRequestH\x00\x12H\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32(.livekit.proto.SetLocalAttributesRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0c \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\r \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12\x33\n\tget_stats\x18\x11 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x12 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x13 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x15 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x17 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x18 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x19 \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1a \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1b \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1c \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xf4\x0c\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12\x45\n\x12set_local_metadata\x18\t \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataResponseH\x00\x12=\n\x0eset_local_name\x18\n \x01(\x0b\x32#.livekit.proto.SetLocalNameResponseH\x00\x12I\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32).livekit.proto.SetLocalAttributesResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0c \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\r \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x12 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x13 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x15 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x17 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\x83\t\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12\x45\n\x12set_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12=\n\x0eset_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12I\n\x14set_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\"\x9c\r\n\nFfiRequest\x12\x30\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1d.livekit.proto.DisposeRequestH\x00\x12\x30\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.ConnectRequestH\x00\x12\x36\n\ndisconnect\x18\x04 \x01(\x0b\x32 .livekit.proto.DisconnectRequestH\x00\x12;\n\rpublish_track\x18\x05 \x01(\x0b\x32\".livekit.proto.PublishTrackRequestH\x00\x12?\n\x0funpublish_track\x18\x06 \x01(\x0b\x32$.livekit.proto.UnpublishTrackRequestH\x00\x12\x39\n\x0cpublish_data\x18\x07 \x01(\x0b\x32!.livekit.proto.PublishDataRequestH\x00\x12=\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32#.livekit.proto.SetSubscribedRequestH\x00\x12\x44\n\x12set_local_metadata\x18\t \x01(\x0b\x32&.livekit.proto.SetLocalMetadataRequestH\x00\x12<\n\x0eset_local_name\x18\n \x01(\x0b\x32\".livekit.proto.SetLocalNameRequestH\x00\x12H\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32(.livekit.proto.SetLocalAttributesRequestH\x00\x12\x42\n\x11get_session_stats\x18\x0c \x01(\x0b\x32%.livekit.proto.GetSessionStatsRequestH\x00\x12K\n\x15publish_transcription\x18\r \x01(\x0b\x32*.livekit.proto.PublishTranscriptionRequestH\x00\x12@\n\x10publish_sip_dtmf\x18\x0e \x01(\x0b\x32$.livekit.proto.PublishSipDtmfRequestH\x00\x12\x44\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32&.livekit.proto.CreateVideoTrackRequestH\x00\x12\x44\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32&.livekit.proto.CreateAudioTrackRequestH\x00\x12\x33\n\tget_stats\x18\x11 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x12 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x13 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x15 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12@\n\x10new_audio_stream\x18\x17 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x18 \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x19 \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1a \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1b \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1c \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x42\t\n\x07message\"\xb7\r\n\x0b\x46\x66iResponse\x12\x31\n\x07\x64ispose\x18\x02 \x01(\x0b\x32\x1e.livekit.proto.DisposeResponseH\x00\x12\x31\n\x07\x63onnect\x18\x03 \x01(\x0b\x32\x1e.livekit.proto.ConnectResponseH\x00\x12\x37\n\ndisconnect\x18\x04 \x01(\x0b\x32!.livekit.proto.DisconnectResponseH\x00\x12<\n\rpublish_track\x18\x05 \x01(\x0b\x32#.livekit.proto.PublishTrackResponseH\x00\x12@\n\x0funpublish_track\x18\x06 \x01(\x0b\x32%.livekit.proto.UnpublishTrackResponseH\x00\x12:\n\x0cpublish_data\x18\x07 \x01(\x0b\x32\".livekit.proto.PublishDataResponseH\x00\x12>\n\x0eset_subscribed\x18\x08 \x01(\x0b\x32$.livekit.proto.SetSubscribedResponseH\x00\x12\x45\n\x12set_local_metadata\x18\t \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataResponseH\x00\x12=\n\x0eset_local_name\x18\n \x01(\x0b\x32#.livekit.proto.SetLocalNameResponseH\x00\x12I\n\x14set_local_attributes\x18\x0b \x01(\x0b\x32).livekit.proto.SetLocalAttributesResponseH\x00\x12\x43\n\x11get_session_stats\x18\x0c \x01(\x0b\x32&.livekit.proto.GetSessionStatsResponseH\x00\x12L\n\x15publish_transcription\x18\r \x01(\x0b\x32+.livekit.proto.PublishTranscriptionResponseH\x00\x12\x41\n\x10publish_sip_dtmf\x18\x0e \x01(\x0b\x32%.livekit.proto.PublishSipDtmfResponseH\x00\x12\x45\n\x12\x63reate_video_track\x18\x0f \x01(\x0b\x32\'.livekit.proto.CreateVideoTrackResponseH\x00\x12\x45\n\x12\x63reate_audio_track\x18\x10 \x01(\x0b\x32\'.livekit.proto.CreateAudioTrackResponseH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x12 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x13 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x14 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x15 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x16 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x17 \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x18 \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12G\n\x13new_audio_resampler\x18\x19 \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1a \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18\x1b \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x42\t\n\x07message\"\xc6\t\n\x08\x46\x66iEvent\x12.\n\nroom_event\x18\x01 \x01(\x0b\x32\x18.livekit.proto.RoomEventH\x00\x12\x30\n\x0btrack_event\x18\x02 \x01(\x0b\x32\x19.livekit.proto.TrackEventH\x00\x12=\n\x12video_stream_event\x18\x03 \x01(\x0b\x32\x1f.livekit.proto.VideoStreamEventH\x00\x12=\n\x12\x61udio_stream_event\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.AudioStreamEventH\x00\x12\x31\n\x07\x63onnect\x18\x05 \x01(\x0b\x32\x1e.livekit.proto.ConnectCallbackH\x00\x12\x37\n\ndisconnect\x18\x07 \x01(\x0b\x32!.livekit.proto.DisconnectCallbackH\x00\x12\x31\n\x07\x64ispose\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.DisposeCallbackH\x00\x12<\n\rpublish_track\x18\t \x01(\x0b\x32#.livekit.proto.PublishTrackCallbackH\x00\x12@\n\x0funpublish_track\x18\n \x01(\x0b\x32%.livekit.proto.UnpublishTrackCallbackH\x00\x12:\n\x0cpublish_data\x18\x0b \x01(\x0b\x32\".livekit.proto.PublishDataCallbackH\x00\x12L\n\x15publish_transcription\x18\x0c \x01(\x0b\x32+.livekit.proto.PublishTranscriptionCallbackH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\r \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameCallbackH\x00\x12\x45\n\x12set_local_metadata\x18\x0e \x01(\x0b\x32\'.livekit.proto.SetLocalMetadataCallbackH\x00\x12=\n\x0eset_local_name\x18\x0f \x01(\x0b\x32#.livekit.proto.SetLocalNameCallbackH\x00\x12I\n\x14set_local_attributes\x18\x10 \x01(\x0b\x32).livekit.proto.SetLocalAttributesCallbackH\x00\x12\x34\n\tget_stats\x18\x11 \x01(\x0b\x32\x1f.livekit.proto.GetStatsCallbackH\x00\x12\'\n\x04logs\x18\x12 \x01(\x0b\x32\x17.livekit.proto.LogBatchH\x00\x12\x43\n\x11get_session_stats\x18\x13 \x01(\x0b\x32&.livekit.proto.GetSessionStatsCallbackH\x00\x12%\n\x05panic\x18\x14 \x01(\x0b\x32\x14.livekit.proto.PanicH\x00\x12\x41\n\x10publish_sip_dtmf\x18\x15 \x01(\x0b\x32%.livekit.proto.PublishSipDtmfCallbackH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\"5\n\x0f\x44isposeResponse\x12\x15\n\x08\x61sync_id\x18\x01 \x01(\x04H\x00\x88\x01\x01\x42\x0b\n\t_async_id\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xb6\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x01(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x01(\t\x12\x18\n\x0bmodule_path\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04\x66ile\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04line\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x0f\n\x07message\x18\x06 \x01(\tB\x0e\n\x0c_module_pathB\x07\n\x05_fileB\x07\n\x05_line\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x01(\t*S\n\x08LogLevel\x12\r\n\tLOG_ERROR\x10\x00\x12\x0c\n\x08LOG_WARN\x10\x01\x12\x0c\n\x08LOG_INFO\x10\x02\x12\r\n\tLOG_DEBUG\x10\x03\x12\r\n\tLOG_TRACE\x10\x04\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -27,24 +27,24 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_LOGLEVEL']._serialized_start=4936 - _globals['_LOGLEVEL']._serialized_end=5019 + _globals['_LOGLEVEL']._serialized_start=5136 + _globals['_LOGLEVEL']._serialized_end=5219 _globals['_FFIREQUEST']._serialized_start=104 - _globals['_FFIREQUEST']._serialized_end=1730 - _globals['_FFIRESPONSE']._serialized_start=1733 - _globals['_FFIRESPONSE']._serialized_end=3385 - _globals['_FFIEVENT']._serialized_start=3388 - _globals['_FFIEVENT']._serialized_end=4543 - _globals['_DISPOSEREQUEST']._serialized_start=4545 - _globals['_DISPOSEREQUEST']._serialized_end=4576 - _globals['_DISPOSERESPONSE']._serialized_start=4578 - _globals['_DISPOSERESPONSE']._serialized_end=4631 - _globals['_DISPOSECALLBACK']._serialized_start=4633 - _globals['_DISPOSECALLBACK']._serialized_end=4668 - _globals['_LOGRECORD']._serialized_start=4671 - _globals['_LOGRECORD']._serialized_end=4853 - _globals['_LOGBATCH']._serialized_start=4855 - _globals['_LOGBATCH']._serialized_end=4908 - _globals['_PANIC']._serialized_start=4910 - _globals['_PANIC']._serialized_end=4934 + _globals['_FFIREQUEST']._serialized_end=1796 + _globals['_FFIRESPONSE']._serialized_start=1799 + _globals['_FFIRESPONSE']._serialized_end=3518 + _globals['_FFIEVENT']._serialized_start=3521 + _globals['_FFIEVENT']._serialized_end=4743 + _globals['_DISPOSEREQUEST']._serialized_start=4745 + _globals['_DISPOSEREQUEST']._serialized_end=4776 + _globals['_DISPOSERESPONSE']._serialized_start=4778 + _globals['_DISPOSERESPONSE']._serialized_end=4831 + _globals['_DISPOSECALLBACK']._serialized_start=4833 + _globals['_DISPOSECALLBACK']._serialized_end=4868 + _globals['_LOGRECORD']._serialized_start=4871 + _globals['_LOGRECORD']._serialized_end=5053 + _globals['_LOGBATCH']._serialized_start=5055 + _globals['_LOGBATCH']._serialized_end=5108 + _globals['_PANIC']._serialized_start=5110 + _globals['_PANIC']._serialized_end=5134 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi index 75f13ce7..65914ace 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi @@ -103,6 +103,7 @@ class FfiRequest(google.protobuf.message.Message): SET_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int PUBLISH_TRANSCRIPTION_FIELD_NUMBER: builtins.int + PUBLISH_SIP_DTMF_FIELD_NUMBER: builtins.int CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int CREATE_AUDIO_TRACK_FIELD_NUMBER: builtins.int GET_STATS_FIELD_NUMBER: builtins.int @@ -142,6 +143,8 @@ class FfiRequest(google.protobuf.message.Message): @property def publish_transcription(self) -> room_pb2.PublishTranscriptionRequest: ... @property + def publish_sip_dtmf(self) -> room_pb2.PublishSipDtmfRequest: ... + @property def create_video_track(self) -> track_pb2.CreateVideoTrackRequest: """Track""" @property @@ -185,6 +188,7 @@ class FfiRequest(google.protobuf.message.Message): set_local_attributes: room_pb2.SetLocalAttributesRequest | None = ..., get_session_stats: room_pb2.GetSessionStatsRequest | None = ..., publish_transcription: room_pb2.PublishTranscriptionRequest | None = ..., + publish_sip_dtmf: room_pb2.PublishSipDtmfRequest | None = ..., create_video_track: track_pb2.CreateVideoTrackRequest | None = ..., create_audio_track: track_pb2.CreateAudioTrackRequest | None = ..., get_stats: track_pb2.GetStatsRequest | None = ..., @@ -199,9 +203,9 @@ class FfiRequest(google.protobuf.message.Message): remix_and_resample: audio_frame_pb2.RemixAndResampleRequest | None = ..., e2ee: e2ee_pb2.E2eeRequest | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "publish_sip_dtmf", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... global___FfiRequest = FfiRequest @@ -223,6 +227,7 @@ class FfiResponse(google.protobuf.message.Message): SET_LOCAL_ATTRIBUTES_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int PUBLISH_TRANSCRIPTION_FIELD_NUMBER: builtins.int + PUBLISH_SIP_DTMF_FIELD_NUMBER: builtins.int CREATE_VIDEO_TRACK_FIELD_NUMBER: builtins.int CREATE_AUDIO_TRACK_FIELD_NUMBER: builtins.int GET_STATS_FIELD_NUMBER: builtins.int @@ -262,6 +267,8 @@ class FfiResponse(google.protobuf.message.Message): @property def publish_transcription(self) -> room_pb2.PublishTranscriptionResponse: ... @property + def publish_sip_dtmf(self) -> room_pb2.PublishSipDtmfResponse: ... + @property def create_video_track(self) -> track_pb2.CreateVideoTrackResponse: """Track""" @property @@ -305,6 +312,7 @@ class FfiResponse(google.protobuf.message.Message): set_local_attributes: room_pb2.SetLocalAttributesResponse | None = ..., get_session_stats: room_pb2.GetSessionStatsResponse | None = ..., publish_transcription: room_pb2.PublishTranscriptionResponse | None = ..., + publish_sip_dtmf: room_pb2.PublishSipDtmfResponse | None = ..., create_video_track: track_pb2.CreateVideoTrackResponse | None = ..., create_audio_track: track_pb2.CreateAudioTrackResponse | None = ..., get_stats: track_pb2.GetStatsResponse | None = ..., @@ -319,9 +327,9 @@ class FfiResponse(google.protobuf.message.Message): remix_and_resample: audio_frame_pb2.RemixAndResampleResponse | None = ..., e2ee: e2ee_pb2.E2eeResponse | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "connect", b"connect", "create_audio_track", b"create_audio_track", "create_video_track", b"create_video_track", "disconnect", b"disconnect", "dispose", b"dispose", "e2ee", b"e2ee", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "message", b"message", "new_audio_resampler", b"new_audio_resampler", "new_audio_source", b"new_audio_source", "new_audio_stream", b"new_audio_stream", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "remix_and_resample", b"remix_and_resample", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "set_subscribed", b"set_subscribed", "unpublish_track", b"unpublish_track", "video_convert", b"video_convert"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["dispose", "connect", "disconnect", "publish_track", "unpublish_track", "publish_data", "set_subscribed", "set_local_metadata", "set_local_name", "set_local_attributes", "get_session_stats", "publish_transcription", "publish_sip_dtmf", "create_video_track", "create_audio_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "new_audio_stream", "new_audio_source", "capture_audio_frame", "new_audio_resampler", "remix_and_resample", "e2ee"] | None: ... global___FfiResponse = FfiResponse @@ -353,6 +361,7 @@ class FfiEvent(google.protobuf.message.Message): LOGS_FIELD_NUMBER: builtins.int GET_SESSION_STATS_FIELD_NUMBER: builtins.int PANIC_FIELD_NUMBER: builtins.int + PUBLISH_SIP_DTMF_FIELD_NUMBER: builtins.int @property def room_event(self) -> room_pb2.RoomEvent: ... @property @@ -391,6 +400,8 @@ class FfiEvent(google.protobuf.message.Message): def get_session_stats(self) -> room_pb2.GetSessionStatsCallback: ... @property def panic(self) -> global___Panic: ... + @property + def publish_sip_dtmf(self) -> room_pb2.PublishSipDtmfCallback: ... def __init__( self, *, @@ -413,10 +424,11 @@ class FfiEvent(google.protobuf.message.Message): logs: global___LogBatch | None = ..., get_session_stats: room_pb2.GetSessionStatsCallback | None = ..., panic: global___Panic | None = ..., + publish_sip_dtmf: room_pb2.PublishSipDtmfCallback | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "set_local_metadata", "set_local_name", "set_local_attributes", "get_stats", "logs", "get_session_stats", "panic"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["audio_stream_event", b"audio_stream_event", "capture_audio_frame", b"capture_audio_frame", "connect", b"connect", "disconnect", b"disconnect", "dispose", b"dispose", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "logs", b"logs", "message", b"message", "panic", b"panic", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "room_event", b"room_event", "set_local_attributes", b"set_local_attributes", "set_local_metadata", b"set_local_metadata", "set_local_name", b"set_local_name", "track_event", b"track_event", "unpublish_track", b"unpublish_track", "video_stream_event", b"video_stream_event"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["room_event", "track_event", "video_stream_event", "audio_stream_event", "connect", "disconnect", "dispose", "publish_track", "unpublish_track", "publish_data", "publish_transcription", "capture_audio_frame", "set_local_metadata", "set_local_name", "set_local_attributes", "get_stats", "logs", "get_session_stats", "panic", "publish_sip_dtmf"] | None: ... global___FfiEvent = FfiEvent diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index 530c36ba..20fbe0fa 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -20,7 +20,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"J\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbe\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12L\n\nattributes\x18\x02 \x03(\x0b\x32\x38.livekit.proto.SetLocalAttributesRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"L\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"F\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\x92\r\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x12 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x13 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x14 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x17 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x18 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x19 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x1a \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1b \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"D\n\x08RoomInfo\x12\x10\n\x03sid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\tB\x06\n\x04_sid\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"7\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"i\n\x0eTrackPublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"I\n\x10TrackUnpublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"Y\n\x0fTrackSubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"D\n\x11TrackUnsubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Y\n\x17TrackSubscriptionFailed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"=\n\nTrackMuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"?\n\x0cTrackUnmuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"_\n\x10\x45\x32\x65\x65StateChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"7\n\x15\x41\x63tiveSpeakersChanged\x12\x1e\n\x16participant_identities\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"L\n\x1aParticipantMetadataChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\xce\x02\n\x1cParticipantAttributesChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12V\n\x0eold_attributes\x18\x02 \x03(\x0b\x32>.livekit.proto.ParticipantAttributesChanged.OldAttributesEntry\x12O\n\nattributes\x18\x03 \x03(\x0b\x32;.livekit.proto.ParticipantAttributesChanged.AttributesEntry\x1a\x34\n\x12OldAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"k\n\x18\x43onnectionQualityChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xbf\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05value\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"v\n\x15PublishSipDtmfRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04\x63ode\x18\x02 \x01(\r\x12\r\n\x05\x64igit\x18\x03 \x01(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x04 \x03(\t\"*\n\x16PublishSipDtmfResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16PublishSipDtmfCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"J\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbe\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12L\n\nattributes\x18\x02 \x03(\x0b\x32\x38.livekit.proto.SetLocalAttributesRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"L\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"F\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\x92\r\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x12 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x13 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x14 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x17 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x18 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x19 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x1a \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1b \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"D\n\x08RoomInfo\x12\x10\n\x03sid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\tB\x06\n\x04_sid\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"7\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"i\n\x0eTrackPublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"I\n\x10TrackUnpublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"Y\n\x0fTrackSubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"D\n\x11TrackUnsubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Y\n\x17TrackSubscriptionFailed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"=\n\nTrackMuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"?\n\x0cTrackUnmuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"_\n\x10\x45\x32\x65\x65StateChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"7\n\x15\x41\x63tiveSpeakersChanged\x12\x1e\n\x16participant_identities\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"L\n\x1aParticipantMetadataChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\xda\x02\n\x1cParticipantAttributesChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12O\n\nattributes\x18\x02 \x03(\x0b\x32;.livekit.proto.ParticipantAttributesChanged.AttributesEntry\x12^\n\x12\x63hanged_attributes\x18\x03 \x03(\x0b\x32\x42.livekit.proto.ParticipantAttributesChanged.ChangedAttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x38\n\x16\x43hangedAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"k\n\x18\x43onnectionQualityChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xbf\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05value\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -32,20 +32,20 @@ _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._options = None _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._options = None - _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._options = None _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=8097 - _globals['_ICETRANSPORTTYPE']._serialized_end=8177 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=8179 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=8246 - _globals['_CONNECTIONQUALITY']._serialized_start=8248 - _globals['_CONNECTIONQUALITY']._serialized_end=8344 - _globals['_CONNECTIONSTATE']._serialized_start=8346 - _globals['_CONNECTIONSTATE']._serialized_end=8429 - _globals['_DATAPACKETKIND']._serialized_start=8431 - _globals['_DATAPACKETKIND']._serialized_end=8482 + _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._options = None + _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_ICETRANSPORTTYPE']._serialized_start=8347 + _globals['_ICETRANSPORTTYPE']._serialized_end=8427 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=8429 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=8496 + _globals['_CONNECTIONQUALITY']._serialized_start=8498 + _globals['_CONNECTIONQUALITY']._serialized_end=8594 + _globals['_CONNECTIONSTATE']._serialized_start=8596 + _globals['_CONNECTIONSTATE']._serialized_end=8679 + _globals['_DATAPACKETKIND']._serialized_start=8681 + _globals['_DATAPACKETKIND']._serialized_end=8732 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -84,118 +84,124 @@ _globals['_PUBLISHTRANSCRIPTIONRESPONSE']._serialized_end=1815 _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_start=1817 _globals['_PUBLISHTRANSCRIPTIONCALLBACK']._serialized_end=1895 - _globals['_SETLOCALMETADATAREQUEST']._serialized_start=1897 - _globals['_SETLOCALMETADATAREQUEST']._serialized_end=1974 - _globals['_SETLOCALMETADATARESPONSE']._serialized_start=1976 - _globals['_SETLOCALMETADATARESPONSE']._serialized_end=2020 - _globals['_SETLOCALMETADATACALLBACK']._serialized_start=2022 - _globals['_SETLOCALMETADATACALLBACK']._serialized_end=2096 - _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_start=2099 - _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_end=2289 - _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_start=2240 - _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_end=2289 - _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_start=2291 - _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_end=2337 - _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_start=2339 - _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_end=2415 - _globals['_SETLOCALNAMEREQUEST']._serialized_start=2417 - _globals['_SETLOCALNAMEREQUEST']._serialized_end=2486 - _globals['_SETLOCALNAMERESPONSE']._serialized_start=2488 - _globals['_SETLOCALNAMERESPONSE']._serialized_end=2528 - _globals['_SETLOCALNAMECALLBACK']._serialized_start=2530 - _globals['_SETLOCALNAMECALLBACK']._serialized_end=2600 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=2602 - _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=2671 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=2673 - _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=2696 - _globals['_GETSESSIONSTATSREQUEST']._serialized_start=2698 - _globals['_GETSESSIONSTATSREQUEST']._serialized_end=2743 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=2745 - _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=2788 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=2791 - _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=2965 - _globals['_VIDEOENCODING']._serialized_start=2967 - _globals['_VIDEOENCODING']._serialized_end=3026 - _globals['_AUDIOENCODING']._serialized_start=3028 - _globals['_AUDIOENCODING']._serialized_end=3064 - _globals['_TRACKPUBLISHOPTIONS']._serialized_start=3067 - _globals['_TRACKPUBLISHOPTIONS']._serialized_end=3333 - _globals['_ICESERVER']._serialized_start=3335 - _globals['_ICESERVER']._serialized_end=3396 - _globals['_RTCCONFIG']._serialized_start=3399 - _globals['_RTCCONFIG']._serialized_end=3659 - _globals['_ROOMOPTIONS']._serialized_start=3662 - _globals['_ROOMOPTIONS']._serialized_end=3886 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=3888 - _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4007 - _globals['_BUFFERINFO']._serialized_start=4009 - _globals['_BUFFERINFO']._serialized_end=4057 - _globals['_OWNEDBUFFER']._serialized_start=4059 - _globals['_OWNEDBUFFER']._serialized_end=4160 - _globals['_ROOMEVENT']._serialized_start=4163 - _globals['_ROOMEVENT']._serialized_end=5845 - _globals['_ROOMINFO']._serialized_start=5847 - _globals['_ROOMINFO']._serialized_end=5915 - _globals['_OWNEDROOM']._serialized_start=5917 - _globals['_OWNEDROOM']._serialized_end=6014 - _globals['_PARTICIPANTCONNECTED']._serialized_start=6016 - _globals['_PARTICIPANTCONNECTED']._serialized_end=6085 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=6087 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6142 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=6144 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=6184 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=6186 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=6234 - _globals['_TRACKPUBLISHED']._serialized_start=6236 - _globals['_TRACKPUBLISHED']._serialized_end=6341 - _globals['_TRACKUNPUBLISHED']._serialized_start=6343 - _globals['_TRACKUNPUBLISHED']._serialized_end=6416 - _globals['_TRACKSUBSCRIBED']._serialized_start=6418 - _globals['_TRACKSUBSCRIBED']._serialized_end=6507 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=6509 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=6577 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6579 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6668 - _globals['_TRACKMUTED']._serialized_start=6670 - _globals['_TRACKMUTED']._serialized_end=6731 - _globals['_TRACKUNMUTED']._serialized_start=6733 - _globals['_TRACKUNMUTED']._serialized_end=6796 - _globals['_E2EESTATECHANGED']._serialized_start=6798 - _globals['_E2EESTATECHANGED']._serialized_end=6893 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=6895 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=6950 - _globals['_ROOMMETADATACHANGED']._serialized_start=6952 - _globals['_ROOMMETADATACHANGED']._serialized_end=6991 - _globals['_ROOMSIDCHANGED']._serialized_start=6993 - _globals['_ROOMSIDCHANGED']._serialized_end=7022 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=7024 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7100 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7103 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=7437 - _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_start=7334 - _globals['_PARTICIPANTATTRIBUTESCHANGED_OLDATTRIBUTESENTRY']._serialized_end=7386 - _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_start=2240 - _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_end=2289 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=7439 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=7507 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=7509 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=7616 - _globals['_USERPACKET']._serialized_start=7618 - _globals['_USERPACKET']._serialized_end=7702 - _globals['_SIPDTMF']._serialized_start=7704 - _globals['_SIPDTMF']._serialized_end=7757 - _globals['_DATAPACKETRECEIVED']._serialized_start=7760 - _globals['_DATAPACKETRECEIVED']._serialized_end=7951 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=7953 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=8024 - _globals['_CONNECTED']._serialized_start=8026 - _globals['_CONNECTED']._serialized_end=8037 - _globals['_DISCONNECTED']._serialized_start=8039 - _globals['_DISCONNECTED']._serialized_end=8053 - _globals['_RECONNECTING']._serialized_start=8055 - _globals['_RECONNECTING']._serialized_end=8069 - _globals['_RECONNECTED']._serialized_start=8071 - _globals['_RECONNECTED']._serialized_end=8084 - _globals['_ROOMEOS']._serialized_start=8086 - _globals['_ROOMEOS']._serialized_end=8095 + _globals['_PUBLISHSIPDTMFREQUEST']._serialized_start=1897 + _globals['_PUBLISHSIPDTMFREQUEST']._serialized_end=2015 + _globals['_PUBLISHSIPDTMFRESPONSE']._serialized_start=2017 + _globals['_PUBLISHSIPDTMFRESPONSE']._serialized_end=2059 + _globals['_PUBLISHSIPDTMFCALLBACK']._serialized_start=2061 + _globals['_PUBLISHSIPDTMFCALLBACK']._serialized_end=2133 + _globals['_SETLOCALMETADATAREQUEST']._serialized_start=2135 + _globals['_SETLOCALMETADATAREQUEST']._serialized_end=2212 + _globals['_SETLOCALMETADATARESPONSE']._serialized_start=2214 + _globals['_SETLOCALMETADATARESPONSE']._serialized_end=2258 + _globals['_SETLOCALMETADATACALLBACK']._serialized_start=2260 + _globals['_SETLOCALMETADATACALLBACK']._serialized_end=2334 + _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_start=2337 + _globals['_SETLOCALATTRIBUTESREQUEST']._serialized_end=2527 + _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_start=2478 + _globals['_SETLOCALATTRIBUTESREQUEST_ATTRIBUTESENTRY']._serialized_end=2527 + _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_start=2529 + _globals['_SETLOCALATTRIBUTESRESPONSE']._serialized_end=2575 + _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_start=2577 + _globals['_SETLOCALATTRIBUTESCALLBACK']._serialized_end=2653 + _globals['_SETLOCALNAMEREQUEST']._serialized_start=2655 + _globals['_SETLOCALNAMEREQUEST']._serialized_end=2724 + _globals['_SETLOCALNAMERESPONSE']._serialized_start=2726 + _globals['_SETLOCALNAMERESPONSE']._serialized_end=2766 + _globals['_SETLOCALNAMECALLBACK']._serialized_start=2768 + _globals['_SETLOCALNAMECALLBACK']._serialized_end=2838 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_start=2840 + _globals['_SETSUBSCRIBEDREQUEST']._serialized_end=2909 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_start=2911 + _globals['_SETSUBSCRIBEDRESPONSE']._serialized_end=2934 + _globals['_GETSESSIONSTATSREQUEST']._serialized_start=2936 + _globals['_GETSESSIONSTATSREQUEST']._serialized_end=2981 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_start=2983 + _globals['_GETSESSIONSTATSRESPONSE']._serialized_end=3026 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_start=3029 + _globals['_GETSESSIONSTATSCALLBACK']._serialized_end=3203 + _globals['_VIDEOENCODING']._serialized_start=3205 + _globals['_VIDEOENCODING']._serialized_end=3264 + _globals['_AUDIOENCODING']._serialized_start=3266 + _globals['_AUDIOENCODING']._serialized_end=3302 + _globals['_TRACKPUBLISHOPTIONS']._serialized_start=3305 + _globals['_TRACKPUBLISHOPTIONS']._serialized_end=3571 + _globals['_ICESERVER']._serialized_start=3573 + _globals['_ICESERVER']._serialized_end=3634 + _globals['_RTCCONFIG']._serialized_start=3637 + _globals['_RTCCONFIG']._serialized_end=3897 + _globals['_ROOMOPTIONS']._serialized_start=3900 + _globals['_ROOMOPTIONS']._serialized_end=4124 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_start=4126 + _globals['_TRANSCRIPTIONSEGMENT']._serialized_end=4245 + _globals['_BUFFERINFO']._serialized_start=4247 + _globals['_BUFFERINFO']._serialized_end=4295 + _globals['_OWNEDBUFFER']._serialized_start=4297 + _globals['_OWNEDBUFFER']._serialized_end=4398 + _globals['_ROOMEVENT']._serialized_start=4401 + _globals['_ROOMEVENT']._serialized_end=6083 + _globals['_ROOMINFO']._serialized_start=6085 + _globals['_ROOMINFO']._serialized_end=6153 + _globals['_OWNEDROOM']._serialized_start=6155 + _globals['_OWNEDROOM']._serialized_end=6252 + _globals['_PARTICIPANTCONNECTED']._serialized_start=6254 + _globals['_PARTICIPANTCONNECTED']._serialized_end=6323 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=6325 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6380 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=6382 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=6422 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=6424 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=6472 + _globals['_TRACKPUBLISHED']._serialized_start=6474 + _globals['_TRACKPUBLISHED']._serialized_end=6579 + _globals['_TRACKUNPUBLISHED']._serialized_start=6581 + _globals['_TRACKUNPUBLISHED']._serialized_end=6654 + _globals['_TRACKSUBSCRIBED']._serialized_start=6656 + _globals['_TRACKSUBSCRIBED']._serialized_end=6745 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=6747 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=6815 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6817 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6906 + _globals['_TRACKMUTED']._serialized_start=6908 + _globals['_TRACKMUTED']._serialized_end=6969 + _globals['_TRACKUNMUTED']._serialized_start=6971 + _globals['_TRACKUNMUTED']._serialized_end=7034 + _globals['_E2EESTATECHANGED']._serialized_start=7036 + _globals['_E2EESTATECHANGED']._serialized_end=7131 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=7133 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=7188 + _globals['_ROOMMETADATACHANGED']._serialized_start=7190 + _globals['_ROOMMETADATACHANGED']._serialized_end=7229 + _globals['_ROOMSIDCHANGED']._serialized_start=7231 + _globals['_ROOMSIDCHANGED']._serialized_end=7260 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=7262 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7338 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7341 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=7687 + _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_start=2478 + _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_end=2527 + _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_start=7631 + _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_end=7687 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=7689 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=7757 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=7759 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=7866 + _globals['_USERPACKET']._serialized_start=7868 + _globals['_USERPACKET']._serialized_end=7952 + _globals['_SIPDTMF']._serialized_start=7954 + _globals['_SIPDTMF']._serialized_end=8007 + _globals['_DATAPACKETRECEIVED']._serialized_start=8010 + _globals['_DATAPACKETRECEIVED']._serialized_end=8201 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=8203 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=8274 + _globals['_CONNECTED']._serialized_start=8276 + _globals['_CONNECTED']._serialized_end=8287 + _globals['_DISCONNECTED']._serialized_start=8289 + _globals['_DISCONNECTED']._serialized_end=8303 + _globals['_RECONNECTING']._serialized_start=8305 + _globals['_RECONNECTING']._serialized_end=8319 + _globals['_RECONNECTED']._serialized_start=8321 + _globals['_RECONNECTED']._serialized_end=8334 + _globals['_ROOMEOS']._serialized_start=8336 + _globals['_ROOMEOS']._serialized_end=8345 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi index 29323a5e..57dd9513 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -522,6 +522,68 @@ class PublishTranscriptionCallback(google.protobuf.message.Message): global___PublishTranscriptionCallback = PublishTranscriptionCallback +@typing_extensions.final +class PublishSipDtmfRequest(google.protobuf.message.Message): + """Publish Sip DTMF messages to other participants""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + LOCAL_PARTICIPANT_HANDLE_FIELD_NUMBER: builtins.int + CODE_FIELD_NUMBER: builtins.int + DIGIT_FIELD_NUMBER: builtins.int + DESTINATION_IDENTITIES_FIELD_NUMBER: builtins.int + local_participant_handle: builtins.int + code: builtins.int + digit: builtins.str + @property + def destination_identities(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + local_participant_handle: builtins.int = ..., + code: builtins.int = ..., + digit: builtins.str = ..., + destination_identities: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["code", b"code", "destination_identities", b"destination_identities", "digit", b"digit", "local_participant_handle", b"local_participant_handle"]) -> None: ... + +global___PublishSipDtmfRequest = PublishSipDtmfRequest + +@typing_extensions.final +class PublishSipDtmfResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + async_id: builtins.int + def __init__( + self, + *, + async_id: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["async_id", b"async_id"]) -> None: ... + +global___PublishSipDtmfResponse = PublishSipDtmfResponse + +@typing_extensions.final +class PublishSipDtmfCallback(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ASYNC_ID_FIELD_NUMBER: builtins.int + ERROR_FIELD_NUMBER: builtins.int + async_id: builtins.int + error: builtins.str + def __init__( + self, + *, + async_id: builtins.int = ..., + error: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_error", b"_error", "error", b"error"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_error", b"_error", "async_id", b"async_id", "error", b"error"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["_error", b"_error"]) -> typing_extensions.Literal["error"] | None: ... + +global___PublishSipDtmfCallback = PublishSipDtmfCallback + @typing_extensions.final class SetLocalMetadataRequest(google.protobuf.message.Message): """Change the local participant's metadata""" @@ -1477,7 +1539,7 @@ class ParticipantAttributesChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing_extensions.final - class OldAttributesEntry(google.protobuf.message.Message): + class AttributesEntry(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor KEY_FIELD_NUMBER: builtins.int @@ -1493,7 +1555,7 @@ class ParticipantAttributesChanged(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... @typing_extensions.final - class AttributesEntry(google.protobuf.message.Message): + class ChangedAttributesEntry(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor KEY_FIELD_NUMBER: builtins.int @@ -1509,21 +1571,21 @@ class ParticipantAttributesChanged(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ... PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int - OLD_ATTRIBUTES_FIELD_NUMBER: builtins.int ATTRIBUTES_FIELD_NUMBER: builtins.int + CHANGED_ATTRIBUTES_FIELD_NUMBER: builtins.int participant_identity: builtins.str @property - def old_attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... - @property def attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... + @property + def changed_attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... def __init__( self, *, participant_identity: builtins.str = ..., - old_attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + changed_attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., ) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "old_attributes", b"old_attributes", "participant_identity", b"participant_identity"]) -> None: ... + def ClearField(self, field_name: typing_extensions.Literal["attributes", b"attributes", "changed_attributes", b"changed_attributes", "participant_identity", b"participant_identity"]) -> None: ... global___ParticipantAttributesChanged = ParticipantAttributesChanged diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 5f7f0ae8..925570cd 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -391,7 +391,6 @@ def _on_room_event(self, event: proto_room.RoomEvent): ) elif which == "participant_name_changed": identity = event.participant_name_changed.participant_identity - # TODO: pass participant identity participant = self._retrieve_participant(identity) assert isinstance(participant, Participant) old_name = participant.name @@ -400,8 +399,20 @@ def _on_room_event(self, event: proto_room.RoomEvent): "participant_name_changed", participant, old_name, participant.name ) elif which == "participant_attributes_changed": - # TODO - pass + identity = event.participant_attributes_changed.participant_identity + attributes = event.participant_attributes_changed.attributes + changed_attributes = dict( + event.participant_attributes_changed.changed_attributes + ) + participant = self._retrieve_participant(identity) + assert isinstance(participant, Participant) + participant._info.attributes.clear() + participant._info.attributes.update(attributes) + self.emit( + "participant_attributes_changed", + participant, + changed_attributes, + ) elif which == "connection_quality_changed": identity = event.connection_quality_changed.participant_identity # TODO: pass participant identity diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index 07963c3a..bb5c2c09 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit 07963c3afd28b04eb57a5e5cf79617ca2bcb5b63 +Subproject commit bb5c2c0903ccdcc272c1d5a2c48d429cd383d752 From 436a5f5f8008c5ad989062fd40f71a8cd32ee751 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Fri, 19 Jul 2024 17:07:22 -0700 Subject: [PATCH 19/23] rust sdks --- livekit-rtc/rust-sdks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index bb5c2c09..b4a4b397 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit bb5c2c0903ccdcc272c1d5a2c48d429cd383d752 +Subproject commit b4a4b397417a424f6f2883bc83c8f1d8b856cead From 50caf9503e21f002fab21474db110157be96ae5e Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 22 Jul 2024 17:21:23 -0700 Subject: [PATCH 20/23] transcription work --- examples/participant_attributes.py | 2 +- livekit-protocol/livekit/protocol/agent.py | 94 +++++------- livekit-protocol/livekit/protocol/agent.pyi | 74 +--------- livekit-protocol/livekit/protocol/room.py | 92 ++++++------ livekit-protocol/livekit/protocol/room.pyi | 6 +- livekit-protocol/protocol | 2 +- livekit-rtc/livekit/rtc/_proto/room_pb2.py | 150 ++++++++++---------- livekit-rtc/livekit/rtc/_proto/room_pb2.pyi | 37 ++++- livekit-rtc/livekit/rtc/participant.py | 2 +- livekit-rtc/livekit/rtc/room.py | 36 ++++- livekit-rtc/livekit/rtc/transcription.py | 2 +- livekit-rtc/rust-sdks | 2 +- 12 files changed, 243 insertions(+), 256 deletions(-) diff --git a/examples/participant_attributes.py b/examples/participant_attributes.py index 53d24da0..cf203948 100644 --- a/examples/participant_attributes.py +++ b/examples/participant_attributes.py @@ -25,7 +25,7 @@ async def main(room: rtc.Room) -> None: @room.on("participant_attributes_changed") def on_participant_attributes_changed( - participant: rtc.Participant, changed_attributes: dict[str, str] + changed_attributes: dict[str, str], participant: rtc.Participant ): logging.info( "participant attributes changed: %s %s", diff --git a/livekit-protocol/livekit/protocol/agent.py b/livekit-protocol/livekit/protocol/agent.py index 327e4cd9..df9f9718 100644 --- a/livekit-protocol/livekit/protocol/agent.py +++ b/livekit-protocol/livekit/protocol/agent.py @@ -15,7 +15,7 @@ from . import models as _models_ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\"P\n\x1a\x43reateAgentDispatchRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\"9\n\x11RoomAgentDispatch\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"1\n\x1a\x44\x65leteAgentDispatchRequest\x12\x13\n\x0b\x64ispatch_id\x18\x01 \x01(\t\">\n\x19ListAgentDispatchRequesst\x12\x13\n\x0b\x64ispatch_id\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\"M\n\x19ListAgentDispatchResponse\x12\x30\n\x10\x61gent_dispatches\x18\x01 \x03(\x0b\x32\x16.livekit.AgentDispatch\"{\n\rAgentDispatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0c\n\x04room\x18\x03 \x01(\t\x12\x10\n\x08metadata\x18\x04 \x01(\t\x12*\n\x05state\x18\x05 \x01(\x0b\x32\x1b.livekit.AgentDispatchState\"X\n\x12\x41gentDispatchState\x12\x1a\n\x04jobs\x18\x01 \x03(\x0b\x32\x0c.livekit.Job\x12\x12\n\ncreated_at\x18\x02 \x01(\x03\x12\x12\n\ndeleted_at\x18\x03 \x01(\x03\"\xf1\x01\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x15\n\tnamespace\x18\x05 \x01(\tB\x02\x18\x01\x12\x10\n\x08metadata\x18\x06 \x01(\t\x12\x12\n\nagent_name\x18\x07 \x01(\t\x12 \n\x05state\x18\x08 \x01(\x0b\x32\x11.livekit.JobStateB\x0e\n\x0c_participant\"w\n\x08JobState\x12\"\n\x06status\x18\x01 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x04 \x01(\x03\x12\x12\n\nupdated_at\x18\x05 \x01(\x03\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\x88\x02\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12.\n\x0btermination\x18\x05 \x01(\x0b\x32\x17.livekit.JobTerminationH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xe4\x01\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x12\n\nagent_name\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermissionB\x0c\n\n_namespace\"U\n\x16RegisterWorkerResponse\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\"$\n\x11MigrateJobRequest\x12\x0f\n\x07job_ids\x18\x02 \x03(\t\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xa8\x01\n\x14\x41vailabilityResponse\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\"T\n\x0fUpdateJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\"\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"l\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x12\x11\n\tjob_count\x18\x04 \x01(\x05\x42\t\n\x07_status\"S\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05token\x18\x03 \x01(\tB\x06\n\x04_url\" \n\x0eJobTermination\x12\x0e\n\x06job_id\x18\x01 \x01(\t*(\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*J\n\tJobStatus\x12\x0e\n\nJS_PENDING\x10\x00\x12\x0e\n\nJS_RUNNING\x10\x01\x12\x0e\n\nJS_SUCCESS\x10\x02\x12\r\n\tJS_FAILED\x10\x03\x32\x84\x02\n\x0c\x41gentService\x12M\n\x0e\x43reateDispatch\x12#.livekit.CreateAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12M\n\x0e\x44\x65leteDispatch\x12#.livekit.DeleteAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12V\n\x0cListDispatch\x12\".livekit.ListAgentDispatchRequesst\x1a\".livekit.ListAgentDispatchResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\"\x86\x02\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0b\x64ispatch_id\x18\t \x01(\t\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x15\n\tnamespace\x18\x05 \x01(\tB\x02\x18\x01\x12\x10\n\x08metadata\x18\x06 \x01(\t\x12\x12\n\nagent_name\x18\x07 \x01(\t\x12 \n\x05state\x18\x08 \x01(\x0b\x32\x11.livekit.JobStateB\x0e\n\x0c_participant\"w\n\x08JobState\x12\"\n\x06status\x18\x01 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x04 \x01(\x03\x12\x12\n\nupdated_at\x18\x05 \x01(\x03\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\x88\x02\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12.\n\x0btermination\x18\x05 \x01(\x0b\x32\x17.livekit.JobTerminationH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xd6\x01\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x12\n\nagent_name\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermissionB\x0c\n\n_namespace\"U\n\x16RegisterWorkerResponse\x12\x11\n\tworker_id\x18\x01 \x01(\t\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\"$\n\x11MigrateJobRequest\x12\x0f\n\x07job_ids\x18\x02 \x03(\t\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xa8\x01\n\x14\x41vailabilityResponse\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\"T\n\x0fUpdateJobStatus\x12\x0e\n\x06job_id\x18\x01 \x01(\t\x12\"\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"l\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x12\x11\n\tjob_count\x18\x04 \x01(\x05\x42\t\n\x07_status\"S\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05token\x18\x03 \x01(\tB\x06\n\x04_url\" \n\x0eJobTermination\x12\x0e\n\x06job_id\x18\x01 \x01(\t*(\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*J\n\tJobStatus\x12\x0e\n\nJS_PENDING\x10\x00\x12\x0e\n\nJS_RUNNING\x10\x01\x12\x0e\n\nJS_SUCCESS\x10\x02\x12\r\n\tJS_FAILED\x10\x03\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -25,58 +25,42 @@ _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' _globals['_JOB'].fields_by_name['namespace']._options = None _globals['_JOB'].fields_by_name['namespace']._serialized_options = b'\030\001' - _globals['_JOBTYPE']._serialized_start=2746 - _globals['_JOBTYPE']._serialized_end=2786 - _globals['_WORKERSTATUS']._serialized_start=2788 - _globals['_WORKERSTATUS']._serialized_end=2833 - _globals['_JOBSTATUS']._serialized_start=2835 - _globals['_JOBSTATUS']._serialized_end=2909 - _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_start=54 - _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_end=134 - _globals['_ROOMAGENTDISPATCH']._serialized_start=136 - _globals['_ROOMAGENTDISPATCH']._serialized_end=193 - _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_start=195 - _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_end=244 - _globals['_LISTAGENTDISPATCHREQUESST']._serialized_start=246 - _globals['_LISTAGENTDISPATCHREQUESST']._serialized_end=308 - _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_start=310 - _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_end=387 - _globals['_AGENTDISPATCH']._serialized_start=389 - _globals['_AGENTDISPATCH']._serialized_end=512 - _globals['_AGENTDISPATCHSTATE']._serialized_start=514 - _globals['_AGENTDISPATCHSTATE']._serialized_end=602 - _globals['_JOB']._serialized_start=605 - _globals['_JOB']._serialized_end=846 - _globals['_JOBSTATE']._serialized_start=848 - _globals['_JOBSTATE']._serialized_end=967 - _globals['_WORKERMESSAGE']._serialized_start=970 - _globals['_WORKERMESSAGE']._serialized_end=1346 - _globals['_SERVERMESSAGE']._serialized_start=1349 - _globals['_SERVERMESSAGE']._serialized_end=1613 - _globals['_SIMULATEJOBREQUEST']._serialized_start=1616 - _globals['_SIMULATEJOBREQUEST']._serialized_end=1744 - _globals['_WORKERPING']._serialized_start=1746 - _globals['_WORKERPING']._serialized_end=1777 - _globals['_WORKERPONG']._serialized_start=1779 - _globals['_WORKERPONG']._serialized_end=1834 - _globals['_REGISTERWORKERREQUEST']._serialized_start=1837 - _globals['_REGISTERWORKERREQUEST']._serialized_end=2065 - _globals['_REGISTERWORKERRESPONSE']._serialized_start=2067 - _globals['_REGISTERWORKERRESPONSE']._serialized_end=2152 - _globals['_MIGRATEJOBREQUEST']._serialized_start=2154 - _globals['_MIGRATEJOBREQUEST']._serialized_end=2190 - _globals['_AVAILABILITYREQUEST']._serialized_start=2192 - _globals['_AVAILABILITYREQUEST']._serialized_end=2258 - _globals['_AVAILABILITYRESPONSE']._serialized_start=2261 - _globals['_AVAILABILITYRESPONSE']._serialized_end=2429 - _globals['_UPDATEJOBSTATUS']._serialized_start=2431 - _globals['_UPDATEJOBSTATUS']._serialized_end=2515 - _globals['_UPDATEWORKERSTATUS']._serialized_start=2517 - _globals['_UPDATEWORKERSTATUS']._serialized_end=2625 - _globals['_JOBASSIGNMENT']._serialized_start=2627 - _globals['_JOBASSIGNMENT']._serialized_end=2710 - _globals['_JOBTERMINATION']._serialized_start=2712 - _globals['_JOBTERMINATION']._serialized_end=2744 - _globals['_AGENTSERVICE']._serialized_start=2912 - _globals['_AGENTSERVICE']._serialized_end=3172 + _globals['_JOBTYPE']._serialized_start=2203 + _globals['_JOBTYPE']._serialized_end=2243 + _globals['_WORKERSTATUS']._serialized_start=2245 + _globals['_WORKERSTATUS']._serialized_end=2290 + _globals['_JOBSTATUS']._serialized_start=2292 + _globals['_JOBSTATUS']._serialized_end=2366 + _globals['_JOB']._serialized_start=55 + _globals['_JOB']._serialized_end=317 + _globals['_JOBSTATE']._serialized_start=319 + _globals['_JOBSTATE']._serialized_end=438 + _globals['_WORKERMESSAGE']._serialized_start=441 + _globals['_WORKERMESSAGE']._serialized_end=817 + _globals['_SERVERMESSAGE']._serialized_start=820 + _globals['_SERVERMESSAGE']._serialized_end=1084 + _globals['_SIMULATEJOBREQUEST']._serialized_start=1087 + _globals['_SIMULATEJOBREQUEST']._serialized_end=1215 + _globals['_WORKERPING']._serialized_start=1217 + _globals['_WORKERPING']._serialized_end=1248 + _globals['_WORKERPONG']._serialized_start=1250 + _globals['_WORKERPONG']._serialized_end=1305 + _globals['_REGISTERWORKERREQUEST']._serialized_start=1308 + _globals['_REGISTERWORKERREQUEST']._serialized_end=1522 + _globals['_REGISTERWORKERRESPONSE']._serialized_start=1524 + _globals['_REGISTERWORKERRESPONSE']._serialized_end=1609 + _globals['_MIGRATEJOBREQUEST']._serialized_start=1611 + _globals['_MIGRATEJOBREQUEST']._serialized_end=1647 + _globals['_AVAILABILITYREQUEST']._serialized_start=1649 + _globals['_AVAILABILITYREQUEST']._serialized_end=1715 + _globals['_AVAILABILITYRESPONSE']._serialized_start=1718 + _globals['_AVAILABILITYRESPONSE']._serialized_end=1886 + _globals['_UPDATEJOBSTATUS']._serialized_start=1888 + _globals['_UPDATEJOBSTATUS']._serialized_end=1972 + _globals['_UPDATEWORKERSTATUS']._serialized_start=1974 + _globals['_UPDATEWORKERSTATUS']._serialized_end=2082 + _globals['_JOBASSIGNMENT']._serialized_start=2084 + _globals['_JOBASSIGNMENT']._serialized_end=2167 + _globals['_JOBTERMINATION']._serialized_start=2169 + _globals['_JOBTERMINATION']._serialized_end=2201 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent.pyi b/livekit-protocol/livekit/protocol/agent.pyi index fee3b5a9..4d7cdf46 100644 --- a/livekit-protocol/livekit/protocol/agent.pyi +++ b/livekit-protocol/livekit/protocol/agent.pyi @@ -32,71 +32,10 @@ JS_RUNNING: JobStatus JS_SUCCESS: JobStatus JS_FAILED: JobStatus -class CreateAgentDispatchRequest(_message.Message): - __slots__ = ("agent_name", "room", "metadata") - AGENT_NAME_FIELD_NUMBER: _ClassVar[int] - ROOM_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - agent_name: str - room: str - metadata: str - def __init__(self, agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ... - -class RoomAgentDispatch(_message.Message): - __slots__ = ("agent_name", "metadata") - AGENT_NAME_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - agent_name: str - metadata: str - def __init__(self, agent_name: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ... - -class DeleteAgentDispatchRequest(_message.Message): - __slots__ = ("dispatch_id",) - DISPATCH_ID_FIELD_NUMBER: _ClassVar[int] - dispatch_id: str - def __init__(self, dispatch_id: _Optional[str] = ...) -> None: ... - -class ListAgentDispatchRequesst(_message.Message): - __slots__ = ("dispatch_id", "room") - DISPATCH_ID_FIELD_NUMBER: _ClassVar[int] - ROOM_FIELD_NUMBER: _ClassVar[int] - dispatch_id: str - room: str - def __init__(self, dispatch_id: _Optional[str] = ..., room: _Optional[str] = ...) -> None: ... - -class ListAgentDispatchResponse(_message.Message): - __slots__ = ("agent_dispatches",) - AGENT_DISPATCHES_FIELD_NUMBER: _ClassVar[int] - agent_dispatches: _containers.RepeatedCompositeFieldContainer[AgentDispatch] - def __init__(self, agent_dispatches: _Optional[_Iterable[_Union[AgentDispatch, _Mapping]]] = ...) -> None: ... - -class AgentDispatch(_message.Message): - __slots__ = ("id", "agent_name", "room", "metadata", "state") - ID_FIELD_NUMBER: _ClassVar[int] - AGENT_NAME_FIELD_NUMBER: _ClassVar[int] - ROOM_FIELD_NUMBER: _ClassVar[int] - METADATA_FIELD_NUMBER: _ClassVar[int] - STATE_FIELD_NUMBER: _ClassVar[int] - id: str - agent_name: str - room: str - metadata: str - state: AgentDispatchState - def __init__(self, id: _Optional[str] = ..., agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ..., state: _Optional[_Union[AgentDispatchState, _Mapping]] = ...) -> None: ... - -class AgentDispatchState(_message.Message): - __slots__ = ("jobs", "created_at", "deleted_at") - JOBS_FIELD_NUMBER: _ClassVar[int] - CREATED_AT_FIELD_NUMBER: _ClassVar[int] - DELETED_AT_FIELD_NUMBER: _ClassVar[int] - jobs: _containers.RepeatedCompositeFieldContainer[Job] - created_at: int - deleted_at: int - def __init__(self, jobs: _Optional[_Iterable[_Union[Job, _Mapping]]] = ..., created_at: _Optional[int] = ..., deleted_at: _Optional[int] = ...) -> None: ... - class Job(_message.Message): - __slots__ = ("id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state") + __slots__ = ("id", "dispatch_id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state") ID_FIELD_NUMBER: _ClassVar[int] + DISPATCH_ID_FIELD_NUMBER: _ClassVar[int] TYPE_FIELD_NUMBER: _ClassVar[int] ROOM_FIELD_NUMBER: _ClassVar[int] PARTICIPANT_FIELD_NUMBER: _ClassVar[int] @@ -105,6 +44,7 @@ class Job(_message.Message): AGENT_NAME_FIELD_NUMBER: _ClassVar[int] STATE_FIELD_NUMBER: _ClassVar[int] id: str + dispatch_id: str type: JobType room: _models.Room participant: _models.ParticipantInfo @@ -112,7 +52,7 @@ class Job(_message.Message): metadata: str agent_name: str state: JobState - def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ..., metadata: _Optional[str] = ..., agent_name: _Optional[str] = ..., state: _Optional[_Union[JobState, _Mapping]] = ...) -> None: ... + def __init__(self, id: _Optional[str] = ..., dispatch_id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ..., metadata: _Optional[str] = ..., agent_name: _Optional[str] = ..., state: _Optional[_Union[JobState, _Mapping]] = ...) -> None: ... class JobState(_message.Message): __slots__ = ("status", "error", "started_at", "ended_at", "updated_at") @@ -185,22 +125,20 @@ class WorkerPong(_message.Message): def __init__(self, last_timestamp: _Optional[int] = ..., timestamp: _Optional[int] = ...) -> None: ... class RegisterWorkerRequest(_message.Message): - __slots__ = ("type", "agent_name", "version", "name", "ping_interval", "namespace", "allowed_permissions") + __slots__ = ("type", "agent_name", "version", "ping_interval", "namespace", "allowed_permissions") TYPE_FIELD_NUMBER: _ClassVar[int] AGENT_NAME_FIELD_NUMBER: _ClassVar[int] VERSION_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] PING_INTERVAL_FIELD_NUMBER: _ClassVar[int] NAMESPACE_FIELD_NUMBER: _ClassVar[int] ALLOWED_PERMISSIONS_FIELD_NUMBER: _ClassVar[int] type: JobType agent_name: str version: str - name: str ping_interval: int namespace: str allowed_permissions: _models.ParticipantPermission - def __init__(self, type: _Optional[_Union[JobType, str]] = ..., agent_name: _Optional[str] = ..., version: _Optional[str] = ..., name: _Optional[str] = ..., ping_interval: _Optional[int] = ..., namespace: _Optional[str] = ..., allowed_permissions: _Optional[_Union[_models.ParticipantPermission, _Mapping]] = ...) -> None: ... + def __init__(self, type: _Optional[_Union[JobType, str]] = ..., agent_name: _Optional[str] = ..., version: _Optional[str] = ..., ping_interval: _Optional[int] = ..., namespace: _Optional[str] = ..., allowed_permissions: _Optional[_Union[_models.ParticipantPermission, _Mapping]] = ...) -> None: ... class RegisterWorkerResponse(_message.Message): __slots__ = ("worker_id", "server_info") diff --git a/livekit-protocol/livekit/protocol/room.py b/livekit-protocol/livekit/protocol/room.py index 2bb3b2f3..0dabbae7 100644 --- a/livekit-protocol/livekit/protocol/room.py +++ b/livekit-protocol/livekit/protocol/room.py @@ -14,10 +14,10 @@ from . import models as _models_ from . import egress as _egress_ -from . import agent as _agent_ +import agent_dispatch as _agent__dispatch_ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12livekit_room.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14livekit_egress.proto\x1a\x13livekit_agent.proto\"\xd1\x02\n\x11\x43reateRoomRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x63onfig_name\x18\x0c \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\n \x01(\r\x12\x18\n\x10max_participants\x18\x03 \x01(\r\x12\x0f\n\x07node_id\x18\x04 \x01(\t\x12\x10\n\x08metadata\x18\x05 \x01(\t\x12#\n\x06\x65gress\x18\x06 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x0b \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x12\x16\n\x0ereplay_enabled\x18\r \x01(\x08\"\x9e\x01\n\nRoomEgress\x12\x31\n\x04room\x18\x01 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequest\x12\x33\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x1e.livekit.AutoParticipantEgress\x12(\n\x06tracks\x18\x02 \x01(\x0b\x32\x18.livekit.AutoTrackEgress\";\n\tRoomAgent\x12.\n\ndispatches\x18\x01 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\"!\n\x10ListRoomsRequest\x12\r\n\x05names\x18\x01 \x03(\t\"1\n\x11ListRoomsResponse\x12\x1c\n\x05rooms\x18\x01 \x03(\x0b\x32\r.livekit.Room\"!\n\x11\x44\x65leteRoomRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteRoomResponse\"\'\n\x17ListParticipantsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"J\n\x18ListParticipantsResponse\x12.\n\x0cparticipants\x18\x01 \x03(\x0b\x32\x18.livekit.ParticipantInfo\"9\n\x17RoomParticipantIdentity\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\"\x1b\n\x19RemoveParticipantResponse\"X\n\x14MuteRoomTrackRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x11\n\ttrack_sid\x18\x03 \x01(\t\x12\r\n\x05muted\x18\x04 \x01(\x08\":\n\x15MuteRoomTrackResponse\x12!\n\x05track\x18\x01 \x01(\x0b\x32\x12.livekit.TrackInfo\"\x88\x02\n\x18UpdateParticipantRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\x12\x32\n\npermission\x18\x04 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x45\n\nattributes\x18\x06 \x03(\x0b\x32\x31.livekit.UpdateParticipantRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9b\x01\n\x1aUpdateSubscriptionsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntrack_sids\x18\x03 \x03(\t\x12\x11\n\tsubscribe\x18\x04 \x01(\x08\x12\x36\n\x12participant_tracks\x18\x05 \x03(\x0b\x32\x1a.livekit.ParticipantTracks\"\x1d\n\x1bUpdateSubscriptionsResponse\"\xb1\x01\n\x0fSendDataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.DataPacket.Kind\x12\x1c\n\x10\x64\x65stination_sids\x18\x04 \x03(\tB\x02\x18\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x06 \x03(\t\x12\x12\n\x05topic\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"\x12\n\x10SendDataResponse\";\n\x19UpdateRoomMetadataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\x81\x02\n\x11RoomConfiguration\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\x03 \x01(\r\x12\x18\n\x10max_participants\x18\x04 \x01(\r\x12#\n\x06\x65gress\x18\x05 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x06 \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x32\xe6\x06\n\x0bRoomService\x12\x37\n\nCreateRoom\x12\x1a.livekit.CreateRoomRequest\x1a\r.livekit.Room\x12\x42\n\tListRooms\x12\x19.livekit.ListRoomsRequest\x1a\x1a.livekit.ListRoomsResponse\x12\x45\n\nDeleteRoom\x12\x1a.livekit.DeleteRoomRequest\x1a\x1b.livekit.DeleteRoomResponse\x12W\n\x10ListParticipants\x12 .livekit.ListParticipantsRequest\x1a!.livekit.ListParticipantsResponse\x12L\n\x0eGetParticipant\x12 .livekit.RoomParticipantIdentity\x1a\x18.livekit.ParticipantInfo\x12Y\n\x11RemoveParticipant\x12 .livekit.RoomParticipantIdentity\x1a\".livekit.RemoveParticipantResponse\x12S\n\x12MutePublishedTrack\x12\x1d.livekit.MuteRoomTrackRequest\x1a\x1e.livekit.MuteRoomTrackResponse\x12P\n\x11UpdateParticipant\x12!.livekit.UpdateParticipantRequest\x1a\x18.livekit.ParticipantInfo\x12`\n\x13UpdateSubscriptions\x12#.livekit.UpdateSubscriptionsRequest\x1a$.livekit.UpdateSubscriptionsResponse\x12?\n\x08SendData\x12\x18.livekit.SendDataRequest\x1a\x19.livekit.SendDataResponse\x12G\n\x12UpdateRoomMetadata\x12\".livekit.UpdateRoomMetadataRequest\x1a\r.livekit.RoomBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12livekit_room.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14livekit_egress.proto\x1a\x1clivekit_agent_dispatch.proto\"\xd1\x02\n\x11\x43reateRoomRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x63onfig_name\x18\x0c \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\n \x01(\r\x12\x18\n\x10max_participants\x18\x03 \x01(\r\x12\x0f\n\x07node_id\x18\x04 \x01(\t\x12\x10\n\x08metadata\x18\x05 \x01(\t\x12#\n\x06\x65gress\x18\x06 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x0b \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x12\x16\n\x0ereplay_enabled\x18\r \x01(\x08\"\x9e\x01\n\nRoomEgress\x12\x31\n\x04room\x18\x01 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequest\x12\x33\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x1e.livekit.AutoParticipantEgress\x12(\n\x06tracks\x18\x02 \x01(\x0b\x32\x18.livekit.AutoTrackEgress\";\n\tRoomAgent\x12.\n\ndispatches\x18\x01 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\"!\n\x10ListRoomsRequest\x12\r\n\x05names\x18\x01 \x03(\t\"1\n\x11ListRoomsResponse\x12\x1c\n\x05rooms\x18\x01 \x03(\x0b\x32\r.livekit.Room\"!\n\x11\x44\x65leteRoomRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteRoomResponse\"\'\n\x17ListParticipantsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"J\n\x18ListParticipantsResponse\x12.\n\x0cparticipants\x18\x01 \x03(\x0b\x32\x18.livekit.ParticipantInfo\"9\n\x17RoomParticipantIdentity\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\"\x1b\n\x19RemoveParticipantResponse\"X\n\x14MuteRoomTrackRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x11\n\ttrack_sid\x18\x03 \x01(\t\x12\r\n\x05muted\x18\x04 \x01(\x08\":\n\x15MuteRoomTrackResponse\x12!\n\x05track\x18\x01 \x01(\x0b\x32\x12.livekit.TrackInfo\"\x88\x02\n\x18UpdateParticipantRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\x12\x32\n\npermission\x18\x04 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x45\n\nattributes\x18\x06 \x03(\x0b\x32\x31.livekit.UpdateParticipantRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9b\x01\n\x1aUpdateSubscriptionsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntrack_sids\x18\x03 \x03(\t\x12\x11\n\tsubscribe\x18\x04 \x01(\x08\x12\x36\n\x12participant_tracks\x18\x05 \x03(\x0b\x32\x1a.livekit.ParticipantTracks\"\x1d\n\x1bUpdateSubscriptionsResponse\"\xb1\x01\n\x0fSendDataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.DataPacket.Kind\x12\x1c\n\x10\x64\x65stination_sids\x18\x04 \x03(\tB\x02\x18\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x06 \x03(\t\x12\x12\n\x05topic\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"\x12\n\x10SendDataResponse\";\n\x19UpdateRoomMetadataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\x81\x02\n\x11RoomConfiguration\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\x03 \x01(\r\x12\x18\n\x10max_participants\x18\x04 \x01(\r\x12#\n\x06\x65gress\x18\x05 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x06 \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x32\xe6\x06\n\x0bRoomService\x12\x37\n\nCreateRoom\x12\x1a.livekit.CreateRoomRequest\x1a\r.livekit.Room\x12\x42\n\tListRooms\x12\x19.livekit.ListRoomsRequest\x1a\x1a.livekit.ListRoomsResponse\x12\x45\n\nDeleteRoom\x12\x1a.livekit.DeleteRoomRequest\x1a\x1b.livekit.DeleteRoomResponse\x12W\n\x10ListParticipants\x12 .livekit.ListParticipantsRequest\x1a!.livekit.ListParticipantsResponse\x12L\n\x0eGetParticipant\x12 .livekit.RoomParticipantIdentity\x1a\x18.livekit.ParticipantInfo\x12Y\n\x11RemoveParticipant\x12 .livekit.RoomParticipantIdentity\x1a\".livekit.RemoveParticipantResponse\x12S\n\x12MutePublishedTrack\x12\x1d.livekit.MuteRoomTrackRequest\x1a\x1e.livekit.MuteRoomTrackResponse\x12P\n\x11UpdateParticipant\x12!.livekit.UpdateParticipantRequest\x1a\x18.livekit.ParticipantInfo\x12`\n\x13UpdateSubscriptions\x12#.livekit.UpdateSubscriptionsRequest\x1a$.livekit.UpdateSubscriptionsResponse\x12?\n\x08SendData\x12\x18.livekit.SendDataRequest\x1a\x19.livekit.SendDataResponse\x12G\n\x12UpdateRoomMetadata\x12\".livekit.UpdateRoomMetadataRequest\x1a\r.livekit.RoomBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -29,48 +29,48 @@ _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_SENDDATAREQUEST'].fields_by_name['destination_sids']._options = None _globals['_SENDDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' - _globals['_CREATEROOMREQUEST']._serialized_start=97 - _globals['_CREATEROOMREQUEST']._serialized_end=434 - _globals['_ROOMEGRESS']._serialized_start=437 - _globals['_ROOMEGRESS']._serialized_end=595 - _globals['_ROOMAGENT']._serialized_start=597 - _globals['_ROOMAGENT']._serialized_end=656 - _globals['_LISTROOMSREQUEST']._serialized_start=658 - _globals['_LISTROOMSREQUEST']._serialized_end=691 - _globals['_LISTROOMSRESPONSE']._serialized_start=693 - _globals['_LISTROOMSRESPONSE']._serialized_end=742 - _globals['_DELETEROOMREQUEST']._serialized_start=744 - _globals['_DELETEROOMREQUEST']._serialized_end=777 - _globals['_DELETEROOMRESPONSE']._serialized_start=779 - _globals['_DELETEROOMRESPONSE']._serialized_end=799 - _globals['_LISTPARTICIPANTSREQUEST']._serialized_start=801 - _globals['_LISTPARTICIPANTSREQUEST']._serialized_end=840 - _globals['_LISTPARTICIPANTSRESPONSE']._serialized_start=842 - _globals['_LISTPARTICIPANTSRESPONSE']._serialized_end=916 - _globals['_ROOMPARTICIPANTIDENTITY']._serialized_start=918 - _globals['_ROOMPARTICIPANTIDENTITY']._serialized_end=975 - _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_start=977 - _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_end=1004 - _globals['_MUTEROOMTRACKREQUEST']._serialized_start=1006 - _globals['_MUTEROOMTRACKREQUEST']._serialized_end=1094 - _globals['_MUTEROOMTRACKRESPONSE']._serialized_start=1096 - _globals['_MUTEROOMTRACKRESPONSE']._serialized_end=1154 - _globals['_UPDATEPARTICIPANTREQUEST']._serialized_start=1157 - _globals['_UPDATEPARTICIPANTREQUEST']._serialized_end=1421 - _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_start=1372 - _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_end=1421 - _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_start=1424 - _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_end=1579 - _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_start=1581 - _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_end=1610 - _globals['_SENDDATAREQUEST']._serialized_start=1613 - _globals['_SENDDATAREQUEST']._serialized_end=1790 - _globals['_SENDDATARESPONSE']._serialized_start=1792 - _globals['_SENDDATARESPONSE']._serialized_end=1810 - _globals['_UPDATEROOMMETADATAREQUEST']._serialized_start=1812 - _globals['_UPDATEROOMMETADATAREQUEST']._serialized_end=1871 - _globals['_ROOMCONFIGURATION']._serialized_start=1874 - _globals['_ROOMCONFIGURATION']._serialized_end=2131 - _globals['_ROOMSERVICE']._serialized_start=2134 - _globals['_ROOMSERVICE']._serialized_end=3004 + _globals['_CREATEROOMREQUEST']._serialized_start=106 + _globals['_CREATEROOMREQUEST']._serialized_end=443 + _globals['_ROOMEGRESS']._serialized_start=446 + _globals['_ROOMEGRESS']._serialized_end=604 + _globals['_ROOMAGENT']._serialized_start=606 + _globals['_ROOMAGENT']._serialized_end=665 + _globals['_LISTROOMSREQUEST']._serialized_start=667 + _globals['_LISTROOMSREQUEST']._serialized_end=700 + _globals['_LISTROOMSRESPONSE']._serialized_start=702 + _globals['_LISTROOMSRESPONSE']._serialized_end=751 + _globals['_DELETEROOMREQUEST']._serialized_start=753 + _globals['_DELETEROOMREQUEST']._serialized_end=786 + _globals['_DELETEROOMRESPONSE']._serialized_start=788 + _globals['_DELETEROOMRESPONSE']._serialized_end=808 + _globals['_LISTPARTICIPANTSREQUEST']._serialized_start=810 + _globals['_LISTPARTICIPANTSREQUEST']._serialized_end=849 + _globals['_LISTPARTICIPANTSRESPONSE']._serialized_start=851 + _globals['_LISTPARTICIPANTSRESPONSE']._serialized_end=925 + _globals['_ROOMPARTICIPANTIDENTITY']._serialized_start=927 + _globals['_ROOMPARTICIPANTIDENTITY']._serialized_end=984 + _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_start=986 + _globals['_REMOVEPARTICIPANTRESPONSE']._serialized_end=1013 + _globals['_MUTEROOMTRACKREQUEST']._serialized_start=1015 + _globals['_MUTEROOMTRACKREQUEST']._serialized_end=1103 + _globals['_MUTEROOMTRACKRESPONSE']._serialized_start=1105 + _globals['_MUTEROOMTRACKRESPONSE']._serialized_end=1163 + _globals['_UPDATEPARTICIPANTREQUEST']._serialized_start=1166 + _globals['_UPDATEPARTICIPANTREQUEST']._serialized_end=1430 + _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_start=1381 + _globals['_UPDATEPARTICIPANTREQUEST_ATTRIBUTESENTRY']._serialized_end=1430 + _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_start=1433 + _globals['_UPDATESUBSCRIPTIONSREQUEST']._serialized_end=1588 + _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_start=1590 + _globals['_UPDATESUBSCRIPTIONSRESPONSE']._serialized_end=1619 + _globals['_SENDDATAREQUEST']._serialized_start=1622 + _globals['_SENDDATAREQUEST']._serialized_end=1799 + _globals['_SENDDATARESPONSE']._serialized_start=1801 + _globals['_SENDDATARESPONSE']._serialized_end=1819 + _globals['_UPDATEROOMMETADATAREQUEST']._serialized_start=1821 + _globals['_UPDATEROOMMETADATAREQUEST']._serialized_end=1880 + _globals['_ROOMCONFIGURATION']._serialized_start=1883 + _globals['_ROOMCONFIGURATION']._serialized_end=2140 + _globals['_ROOMSERVICE']._serialized_start=2143 + _globals['_ROOMSERVICE']._serialized_end=3013 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/room.pyi b/livekit-protocol/livekit/protocol/room.pyi index c2029123..bfbfebdb 100644 --- a/livekit-protocol/livekit/protocol/room.pyi +++ b/livekit-protocol/livekit/protocol/room.pyi @@ -1,6 +1,6 @@ from . import models as _models from . import egress as _egress -from . import agent as _agent +import agent_dispatch as _agent_dispatch from google.protobuf.internal import containers as _containers from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -51,8 +51,8 @@ class RoomEgress(_message.Message): class RoomAgent(_message.Message): __slots__ = ("dispatches",) DISPATCHES_FIELD_NUMBER: _ClassVar[int] - dispatches: _containers.RepeatedCompositeFieldContainer[_agent.RoomAgentDispatch] - def __init__(self, dispatches: _Optional[_Iterable[_Union[_agent.RoomAgentDispatch, _Mapping]]] = ...) -> None: ... + dispatches: _containers.RepeatedCompositeFieldContainer[_agent_dispatch.RoomAgentDispatch] + def __init__(self, dispatches: _Optional[_Iterable[_Union[_agent_dispatch.RoomAgentDispatch, _Mapping]]] = ...) -> None: ... class ListRoomsRequest(_message.Message): __slots__ = ("names",) diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 9e23fdbd..0df8e893 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 9e23fdbd08859769a29ea4319a973e35ac01d0bc +Subproject commit 0df8e893874b50337a6de88bd7f1b8a6afc7b48e diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.py b/livekit-rtc/livekit/rtc/_proto/room_pb2.py index 20fbe0fa..a8c9cbb2 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -20,7 +20,7 @@ from . import stats_pb2 as stats__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"v\n\x15PublishSipDtmfRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04\x63ode\x18\x02 \x01(\r\x12\r\n\x05\x64igit\x18\x03 \x01(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x04 \x03(\t\"*\n\x16PublishSipDtmfResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16PublishSipDtmfCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"J\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbe\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12L\n\nattributes\x18\x02 \x03(\x0b\x32\x38.livekit.proto.SetLocalAttributesRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"L\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"F\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\x92\r\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x12 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x13 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x14 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x17 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x18 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x19 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x1a \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1b \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x42\t\n\x07message\"D\n\x08RoomInfo\x12\x10\n\x03sid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\tB\x06\n\x04_sid\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"7\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"i\n\x0eTrackPublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"I\n\x10TrackUnpublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"Y\n\x0fTrackSubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"D\n\x11TrackUnsubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Y\n\x17TrackSubscriptionFailed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"=\n\nTrackMuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"?\n\x0cTrackUnmuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"_\n\x10\x45\x32\x65\x65StateChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"7\n\x15\x41\x63tiveSpeakersChanged\x12\x1e\n\x16participant_identities\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"L\n\x1aParticipantMetadataChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\xda\x02\n\x1cParticipantAttributesChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12O\n\nattributes\x18\x02 \x03(\x0b\x32;.livekit.proto.ParticipantAttributesChanged.AttributesEntry\x12^\n\x12\x63hanged_attributes\x18\x03 \x03(\x0b\x32\x42.livekit.proto.ParticipantAttributesChanged.ChangedAttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x38\n\x16\x43hangedAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"k\n\x18\x43onnectionQualityChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xbf\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05value\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\nroom.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0chandle.proto\x1a\x11participant.proto\x1a\x0btrack.proto\x1a\x11video_frame.proto\x1a\x0bstats.proto\"Y\n\x0e\x43onnectRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\r\n\x05token\x18\x02 \x01(\t\x12+\n\x07options\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xfd\x02\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12&\n\x04room\x18\x03 \x01(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x04 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x05 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracks\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x01(\x04\x12\x33\n\x07options\x18\x03 \x01(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x39\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationB\x08\n\x06_error\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x01(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xc8\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x01(\x04\x12\x10\n\x08reliable\x18\x04 \x01(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\x12\n\x05topic\x18\x06 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\tB\x08\n\x06_topic\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"E\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12\x10\n\x08track_id\x18\x03 \x01(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"N\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"v\n\x15PublishSipDtmfRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04\x63ode\x18\x02 \x01(\r\x12\r\n\x05\x64igit\x18\x03 \x01(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x04 \x03(\t\"*\n\x16PublishSipDtmfResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"H\n\x16PublishSipDtmfCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x10\n\x08metadata\x18\x02 \x01(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"J\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"\xbe\x01\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12L\n\nattributes\x18\x02 \x03(\x0b\x32\x38.livekit.proto.SetLocalAttributesRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"L\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x01(\x04\x12\x0c\n\x04name\x18\x02 \x01(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"F\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x01(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x01(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"\xae\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x30\n\x0fpublisher_stats\x18\x03 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x04 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\x08\n\x06_error\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\x12\x15\n\rmax_framerate\x18\x02 \x01(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x01(\x04\"\x8a\x02\n\x13TrackPublishOptions\x12\x34\n\x0evideo_encoding\x18\x01 \x01(\x0b\x32\x1c.livekit.proto.VideoEncoding\x12\x34\n\x0e\x61udio_encoding\x18\x02 \x01(\x0b\x32\x1c.livekit.proto.AudioEncoding\x12.\n\x0bvideo_codec\x18\x03 \x01(\x0e\x32\x19.livekit.proto.VideoCodec\x12\x0b\n\x03\x64tx\x18\x04 \x01(\x08\x12\x0b\n\x03red\x18\x05 \x01(\x08\x12\x11\n\tsimulcast\x18\x06 \x01(\x08\x12*\n\x06source\x18\x07 \x01(\x0e\x32\x1a.livekit.proto.TrackSource\"=\n\tIceServer\x12\x0c\n\x04urls\x18\x01 \x03(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\x84\x02\n\tRtcConfig\x12@\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportTypeH\x00\x88\x01\x01\x12P\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicyH\x01\x88\x01\x01\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServerB\x15\n\x13_ice_transport_typeB\x1d\n\x1b_continual_gathering_policy\"\xe0\x01\n\x0bRoomOptions\x12\x16\n\x0e\x61uto_subscribe\x18\x01 \x01(\x08\x12\x17\n\x0f\x61\x64\x61ptive_stream\x18\x02 \x01(\x08\x12\x10\n\x08\x64ynacast\x18\x03 \x01(\x08\x12-\n\x04\x65\x32\x65\x65\x18\x04 \x01(\x0b\x32\x1a.livekit.proto.E2eeOptionsH\x00\x88\x01\x01\x12\x31\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfigH\x01\x88\x01\x01\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\rB\x07\n\x05_e2eeB\r\n\x0b_rtc_config\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x12\n\nstart_time\x18\x03 \x01(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x01(\x04\x12\r\n\x05\x66inal\x18\x05 \x01(\x08\x12\x10\n\x08language\x18\x06 \x01(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x01(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x01(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.livekit.proto.BufferInfo\"\xda\r\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x01(\x04\x12\x44\n\x15participant_connected\x18\x02 \x01(\x0b\x32#.livekit.proto.ParticipantConnectedH\x00\x12J\n\x18participant_disconnected\x18\x03 \x01(\x0b\x32&.livekit.proto.ParticipantDisconnectedH\x00\x12\x43\n\x15local_track_published\x18\x04 \x01(\x0b\x32\".livekit.proto.LocalTrackPublishedH\x00\x12G\n\x17local_track_unpublished\x18\x05 \x01(\x0b\x32$.livekit.proto.LocalTrackUnpublishedH\x00\x12\x38\n\x0ftrack_published\x18\x06 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x07 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\x08 \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\t \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\n \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0b \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\x0c \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\r \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0e \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x0f \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x10 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x11 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x12 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x13 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x14 \x01(\x0b\x32%.livekit.proto.ConnectionStateChangedH\x00\x12\x33\n\x0c\x64isconnected\x18\x16 \x01(\x0b\x32\x1b.livekit.proto.DisconnectedH\x00\x12\x33\n\x0creconnecting\x18\x17 \x01(\x0b\x32\x1b.livekit.proto.ReconnectingH\x00\x12\x31\n\x0breconnected\x18\x18 \x01(\x0b\x32\x1a.livekit.proto.ReconnectedH\x00\x12=\n\x12\x65\x32\x65\x65_state_changed\x18\x19 \x01(\x0b\x32\x1f.livekit.proto.E2eeStateChangedH\x00\x12%\n\x03\x65os\x18\x1a \x01(\x0b\x32\x16.livekit.proto.RoomEOSH\x00\x12\x41\n\x14\x64\x61ta_packet_received\x18\x1b \x01(\x0b\x32!.livekit.proto.DataPacketReceivedH\x00\x12\x46\n\x16transcription_received\x18\x1c \x01(\x0b\x32$.livekit.proto.TranscriptionReceivedH\x00\x42\t\n\x07message\"D\n\x08RoomInfo\x12\x10\n\x03sid\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\tB\x06\n\x04_sid\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x01(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x01(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x01(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"7\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x01(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x01(\t\"i\n\x0eTrackPublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x39\n\x0bpublication\x18\x02 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublication\"I\n\x10TrackUnpublished\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x01(\t\"Y\n\x0fTrackSubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12(\n\x05track\x18\x02 \x01(\x0b\x32\x19.livekit.proto.OwnedTrack\"D\n\x11TrackUnsubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"Y\n\x17TrackSubscriptionFailed\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"=\n\nTrackMuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"?\n\x0cTrackUnmuted\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\"_\n\x10\x45\x32\x65\x65StateChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.livekit.proto.EncryptionState\"7\n\x15\x41\x63tiveSpeakersChanged\x12\x1e\n\x16participant_identities\x18\x01 \x03(\t\"\'\n\x13RoomMetadataChanged\x12\x10\n\x08metadata\x18\x01 \x01(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x01(\t\"L\n\x1aParticipantMetadataChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\xda\x02\n\x1cParticipantAttributesChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12O\n\nattributes\x18\x02 \x03(\x0b\x32;.livekit.proto.ParticipantAttributesChanged.AttributesEntry\x12^\n\x12\x63hanged_attributes\x18\x03 \x03(\x0b\x32\x42.livekit.proto.ParticipantAttributesChanged.ChangedAttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x38\n\x16\x43hangedAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"k\n\x18\x43onnectionQualityChanged\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x31\n\x07quality\x18\x02 \x01(\x0e\x32 .livekit.proto.ConnectionQuality\"T\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\x12\n\x05topic\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"5\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x01(\r\x12\x12\n\x05\x64igit\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_digit\"\xbf\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x01(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x01(\t\x12)\n\x04user\x18\x04 \x01(\x0b\x32\x19.livekit.proto.UserPacketH\x00\x12*\n\x08sip_dtmf\x18\x05 \x01(\x0b\x32\x16.livekit.proto.SipDTMFH\x00\x42\x07\n\x05value\"\xb0\x01\n\x15TranscriptionReceived\x12!\n\x14participant_identity\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\ttrack_sid\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x35\n\x08segments\x18\x03 \x03(\x0b\x32#.livekit.proto.TranscriptionSegmentB\x17\n\x15_participant_identityB\x0c\n\n_track_sid\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x01(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"\x0e\n\x0c\x44isconnected\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS*P\n\x10IceTransportType\x12\x13\n\x0fTRANSPORT_RELAY\x10\x00\x12\x14\n\x10TRANSPORT_NOHOST\x10\x01\x12\x11\n\rTRANSPORT_ALL\x10\x02*C\n\x18\x43ontinualGatheringPolicy\x12\x0f\n\x0bGATHER_ONCE\x10\x00\x12\x16\n\x12GATHER_CONTINUALLY\x10\x01*`\n\x11\x43onnectionQuality\x12\x10\n\x0cQUALITY_POOR\x10\x00\x12\x10\n\x0cQUALITY_GOOD\x10\x01\x12\x15\n\x11QUALITY_EXCELLENT\x10\x02\x12\x10\n\x0cQUALITY_LOST\x10\x03*S\n\x0f\x43onnectionState\x12\x15\n\x11\x43ONN_DISCONNECTED\x10\x00\x12\x12\n\x0e\x43ONN_CONNECTED\x10\x01\x12\x15\n\x11\x43ONN_RECONNECTING\x10\x02*3\n\x0e\x44\x61taPacketKind\x12\x0e\n\nKIND_LOSSY\x10\x00\x12\x11\n\rKIND_RELIABLE\x10\x01\x42\x10\xaa\x02\rLiveKit.Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -36,16 +36,16 @@ _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_options = b'8\001' _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._options = None _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=8347 - _globals['_ICETRANSPORTTYPE']._serialized_end=8427 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=8429 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=8496 - _globals['_CONNECTIONQUALITY']._serialized_start=8498 - _globals['_CONNECTIONQUALITY']._serialized_end=8594 - _globals['_CONNECTIONSTATE']._serialized_start=8596 - _globals['_CONNECTIONSTATE']._serialized_end=8679 - _globals['_DATAPACKETKIND']._serialized_start=8681 - _globals['_DATAPACKETKIND']._serialized_end=8732 + _globals['_ICETRANSPORTTYPE']._serialized_start=8598 + _globals['_ICETRANSPORTTYPE']._serialized_end=8678 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=8680 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=8747 + _globals['_CONNECTIONQUALITY']._serialized_start=8749 + _globals['_CONNECTIONQUALITY']._serialized_end=8845 + _globals['_CONNECTIONSTATE']._serialized_start=8847 + _globals['_CONNECTIONSTATE']._serialized_end=8930 + _globals['_DATAPACKETKIND']._serialized_start=8932 + _globals['_DATAPACKETKIND']._serialized_end=8983 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -139,69 +139,71 @@ _globals['_OWNEDBUFFER']._serialized_start=4297 _globals['_OWNEDBUFFER']._serialized_end=4398 _globals['_ROOMEVENT']._serialized_start=4401 - _globals['_ROOMEVENT']._serialized_end=6083 - _globals['_ROOMINFO']._serialized_start=6085 - _globals['_ROOMINFO']._serialized_end=6153 - _globals['_OWNEDROOM']._serialized_start=6155 - _globals['_OWNEDROOM']._serialized_end=6252 - _globals['_PARTICIPANTCONNECTED']._serialized_start=6254 - _globals['_PARTICIPANTCONNECTED']._serialized_end=6323 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=6325 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6380 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=6382 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=6422 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=6424 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=6472 - _globals['_TRACKPUBLISHED']._serialized_start=6474 - _globals['_TRACKPUBLISHED']._serialized_end=6579 - _globals['_TRACKUNPUBLISHED']._serialized_start=6581 - _globals['_TRACKUNPUBLISHED']._serialized_end=6654 - _globals['_TRACKSUBSCRIBED']._serialized_start=6656 - _globals['_TRACKSUBSCRIBED']._serialized_end=6745 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=6747 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=6815 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6817 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6906 - _globals['_TRACKMUTED']._serialized_start=6908 - _globals['_TRACKMUTED']._serialized_end=6969 - _globals['_TRACKUNMUTED']._serialized_start=6971 - _globals['_TRACKUNMUTED']._serialized_end=7034 - _globals['_E2EESTATECHANGED']._serialized_start=7036 - _globals['_E2EESTATECHANGED']._serialized_end=7131 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=7133 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=7188 - _globals['_ROOMMETADATACHANGED']._serialized_start=7190 - _globals['_ROOMMETADATACHANGED']._serialized_end=7229 - _globals['_ROOMSIDCHANGED']._serialized_start=7231 - _globals['_ROOMSIDCHANGED']._serialized_end=7260 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=7262 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7338 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7341 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=7687 + _globals['_ROOMEVENT']._serialized_end=6155 + _globals['_ROOMINFO']._serialized_start=6157 + _globals['_ROOMINFO']._serialized_end=6225 + _globals['_OWNEDROOM']._serialized_start=6227 + _globals['_OWNEDROOM']._serialized_end=6324 + _globals['_PARTICIPANTCONNECTED']._serialized_start=6326 + _globals['_PARTICIPANTCONNECTED']._serialized_end=6395 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=6397 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6452 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=6454 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=6494 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=6496 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=6544 + _globals['_TRACKPUBLISHED']._serialized_start=6546 + _globals['_TRACKPUBLISHED']._serialized_end=6651 + _globals['_TRACKUNPUBLISHED']._serialized_start=6653 + _globals['_TRACKUNPUBLISHED']._serialized_end=6726 + _globals['_TRACKSUBSCRIBED']._serialized_start=6728 + _globals['_TRACKSUBSCRIBED']._serialized_end=6817 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=6819 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=6887 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=6889 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=6978 + _globals['_TRACKMUTED']._serialized_start=6980 + _globals['_TRACKMUTED']._serialized_end=7041 + _globals['_TRACKUNMUTED']._serialized_start=7043 + _globals['_TRACKUNMUTED']._serialized_end=7106 + _globals['_E2EESTATECHANGED']._serialized_start=7108 + _globals['_E2EESTATECHANGED']._serialized_end=7203 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=7205 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=7260 + _globals['_ROOMMETADATACHANGED']._serialized_start=7262 + _globals['_ROOMMETADATACHANGED']._serialized_end=7301 + _globals['_ROOMSIDCHANGED']._serialized_start=7303 + _globals['_ROOMSIDCHANGED']._serialized_end=7332 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=7334 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7410 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7413 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=7759 _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_start=2478 _globals['_PARTICIPANTATTRIBUTESCHANGED_ATTRIBUTESENTRY']._serialized_end=2527 - _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_start=7631 - _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_end=7687 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=7689 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=7757 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=7759 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=7866 - _globals['_USERPACKET']._serialized_start=7868 - _globals['_USERPACKET']._serialized_end=7952 - _globals['_SIPDTMF']._serialized_start=7954 - _globals['_SIPDTMF']._serialized_end=8007 - _globals['_DATAPACKETRECEIVED']._serialized_start=8010 - _globals['_DATAPACKETRECEIVED']._serialized_end=8201 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=8203 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=8274 - _globals['_CONNECTED']._serialized_start=8276 - _globals['_CONNECTED']._serialized_end=8287 - _globals['_DISCONNECTED']._serialized_start=8289 - _globals['_DISCONNECTED']._serialized_end=8303 - _globals['_RECONNECTING']._serialized_start=8305 - _globals['_RECONNECTING']._serialized_end=8319 - _globals['_RECONNECTED']._serialized_start=8321 - _globals['_RECONNECTED']._serialized_end=8334 - _globals['_ROOMEOS']._serialized_start=8336 - _globals['_ROOMEOS']._serialized_end=8345 + _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_start=7703 + _globals['_PARTICIPANTATTRIBUTESCHANGED_CHANGEDATTRIBUTESENTRY']._serialized_end=7759 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=7761 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=7829 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=7831 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=7938 + _globals['_USERPACKET']._serialized_start=7940 + _globals['_USERPACKET']._serialized_end=8024 + _globals['_SIPDTMF']._serialized_start=8026 + _globals['_SIPDTMF']._serialized_end=8079 + _globals['_DATAPACKETRECEIVED']._serialized_start=8082 + _globals['_DATAPACKETRECEIVED']._serialized_end=8273 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=8276 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=8452 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=8454 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=8525 + _globals['_CONNECTED']._serialized_start=8527 + _globals['_CONNECTED']._serialized_end=8538 + _globals['_DISCONNECTED']._serialized_start=8540 + _globals['_DISCONNECTED']._serialized_end=8554 + _globals['_RECONNECTING']._serialized_start=8556 + _globals['_RECONNECTING']._serialized_end=8570 + _globals['_RECONNECTED']._serialized_start=8572 + _globals['_RECONNECTED']._serialized_end=8585 + _globals['_ROOMEOS']._serialized_start=8587 + _globals['_ROOMEOS']._serialized_end=8596 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi index 57dd9513..e00409da 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -1115,6 +1115,7 @@ class RoomEvent(google.protobuf.message.Message): E2EE_STATE_CHANGED_FIELD_NUMBER: builtins.int EOS_FIELD_NUMBER: builtins.int DATA_PACKET_RECEIVED_FIELD_NUMBER: builtins.int + TRANSCRIPTION_RECEIVED_FIELD_NUMBER: builtins.int room_handle: builtins.int @property def participant_connected(self) -> global___ParticipantConnected: ... @@ -1168,6 +1169,8 @@ class RoomEvent(google.protobuf.message.Message): """The stream of room events has ended""" @property def data_packet_received(self) -> global___DataPacketReceived: ... + @property + def transcription_received(self) -> global___TranscriptionReceived: ... def __init__( self, *, @@ -1197,10 +1200,11 @@ class RoomEvent(google.protobuf.message.Message): e2ee_state_changed: global___E2eeStateChanged | None = ..., eos: global___RoomEOS | None = ..., data_packet_received: global___DataPacketReceived | None = ..., + transcription_received: global___TranscriptionReceived | None = ..., ) -> None: ... - def HasField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_attributes_changed", b"participant_attributes_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_attributes_changed", b"participant_attributes_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_handle", b"room_handle", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed"]) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "track_published", "track_unpublished", "track_subscribed", "track_unsubscribed", "track_subscription_failed", "track_muted", "track_unmuted", "active_speakers_changed", "room_metadata_changed", "room_sid_changed", "participant_metadata_changed", "participant_name_changed", "participant_attributes_changed", "connection_quality_changed", "connection_state_changed", "disconnected", "reconnecting", "reconnected", "e2ee_state_changed", "eos", "data_packet_received"] | None: ... + def HasField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_attributes_changed", b"participant_attributes_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed", "transcription_received", b"transcription_received"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["active_speakers_changed", b"active_speakers_changed", "connection_quality_changed", b"connection_quality_changed", "connection_state_changed", b"connection_state_changed", "data_packet_received", b"data_packet_received", "disconnected", b"disconnected", "e2ee_state_changed", b"e2ee_state_changed", "eos", b"eos", "local_track_published", b"local_track_published", "local_track_unpublished", b"local_track_unpublished", "message", b"message", "participant_attributes_changed", b"participant_attributes_changed", "participant_connected", b"participant_connected", "participant_disconnected", b"participant_disconnected", "participant_metadata_changed", b"participant_metadata_changed", "participant_name_changed", b"participant_name_changed", "reconnected", b"reconnected", "reconnecting", b"reconnecting", "room_handle", b"room_handle", "room_metadata_changed", b"room_metadata_changed", "room_sid_changed", b"room_sid_changed", "track_muted", b"track_muted", "track_published", b"track_published", "track_subscribed", b"track_subscribed", "track_subscription_failed", b"track_subscription_failed", "track_unmuted", b"track_unmuted", "track_unpublished", b"track_unpublished", "track_unsubscribed", b"track_unsubscribed", "transcription_received", b"transcription_received"]) -> None: ... + def WhichOneof(self, oneof_group: typing_extensions.Literal["message", b"message"]) -> typing_extensions.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "track_published", "track_unpublished", "track_subscribed", "track_unsubscribed", "track_subscription_failed", "track_muted", "track_unmuted", "active_speakers_changed", "room_metadata_changed", "room_sid_changed", "participant_metadata_changed", "participant_name_changed", "participant_attributes_changed", "connection_quality_changed", "connection_state_changed", "disconnected", "reconnecting", "reconnected", "e2ee_state_changed", "eos", "data_packet_received", "transcription_received"] | None: ... global___RoomEvent = RoomEvent @@ -1695,6 +1699,33 @@ class DataPacketReceived(google.protobuf.message.Message): global___DataPacketReceived = DataPacketReceived +@typing_extensions.final +class TranscriptionReceived(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + PARTICIPANT_IDENTITY_FIELD_NUMBER: builtins.int + TRACK_SID_FIELD_NUMBER: builtins.int + SEGMENTS_FIELD_NUMBER: builtins.int + participant_identity: builtins.str + track_sid: builtins.str + @property + def segments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TranscriptionSegment]: ... + def __init__( + self, + *, + participant_identity: builtins.str | None = ..., + track_sid: builtins.str | None = ..., + segments: collections.abc.Iterable[global___TranscriptionSegment] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing_extensions.Literal["_participant_identity", b"_participant_identity", "_track_sid", b"_track_sid", "participant_identity", b"participant_identity", "track_sid", b"track_sid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing_extensions.Literal["_participant_identity", b"_participant_identity", "_track_sid", b"_track_sid", "participant_identity", b"participant_identity", "segments", b"segments", "track_sid", b"track_sid"]) -> None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_participant_identity", b"_participant_identity"]) -> typing_extensions.Literal["participant_identity"] | None: ... + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal["_track_sid", b"_track_sid"]) -> typing_extensions.Literal["track_sid"] | None: ... + +global___TranscriptionReceived = TranscriptionReceived + @typing_extensions.final class ConnectionStateChanged(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index 729bf86a..beeeb2fa 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -144,7 +144,7 @@ async def publish_transcription(self, transcription: Transcription) -> None: req.publish_transcription.local_participant_handle = self._ffi_handle.handle req.publish_transcription.participant_identity = transcription.participant_identity req.publish_transcription.segments.extend(proto_segments) - req.publish_transcription.track_id = transcription.track_id + req.publish_transcription.track_id = transcription.track_sid # fmt: on queue = FfiClient.instance.queue.subscribe() try: diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 925570cd..0a3215f0 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -11,6 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +from __future__ import annotations import asyncio import ctypes @@ -29,7 +30,8 @@ from .e2ee import E2EEManager, E2EEOptions from .participant import LocalParticipant, Participant, RemoteParticipant from .track import RemoteAudioTrack, RemoteVideoTrack -from .track_publication import RemoteTrackPublication +from .track_publication import TrackPublication, RemoteTrackPublication +from .transcription import TranscriptionSegment EventTypes = Literal[ "participant_connected", @@ -51,6 +53,7 @@ "connection_quality_changed", "data_received", "sip_dtmf_received", + "transcription_received", "e2ee_state_changed", "connection_state_changed", "connected", @@ -410,8 +413,8 @@ def _on_room_event(self, event: proto_room.RoomEvent): participant._info.attributes.update(attributes) self.emit( "participant_attributes_changed", - participant, changed_attributes, + participant, ) elif which == "connection_quality_changed": identity = event.connection_quality_changed.participant_identity @@ -461,6 +464,35 @@ def _on_room_event(self, event: proto_room.RoomEvent): participant=rparticipant, ), ) + elif which_val == "transcription": + transcription = packet.transcription + participant = self._retrieve_participant( + transcription.transcribed_participant_identity + ) + publication: TrackPublication | None = None + if participant: + publication = participant.track_publications.get( + transcription.track_id + ) + + segments = [ + TranscriptionSegment( + id=seg.id, + text=seg.text, + start_time=seg.start_time, + end_time=seg.end_time, + language=seg.language, + final=seg.final, + ) + for seg in transcription.segments + ] + self.emit( + "transcription_received", + segments, + participant, + publication, + ) + pass elif which == "e2ee_state_changed": identity = event.e2ee_state_changed.participant_identity diff --git a/livekit-rtc/livekit/rtc/transcription.py b/livekit-rtc/livekit/rtc/transcription.py index c36e56b0..7403f6bd 100644 --- a/livekit-rtc/livekit/rtc/transcription.py +++ b/livekit-rtc/livekit/rtc/transcription.py @@ -5,7 +5,7 @@ @dataclass class Transcription: participant_identity: str - track_id: str + track_sid: str segments: List["TranscriptionSegment"] diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index b4a4b397..8a009e5d 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit b4a4b397417a424f6f2883bc83c8f1d8b856cead +Subproject commit 8a009e5d19c6d578081c1467d24f7161c0183ccf From 848ab4352ad38b74dc9e9068f45af8ffb7e08a8b Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 22 Jul 2024 17:51:56 -0700 Subject: [PATCH 21/23] agent dispatch --- livekit-protocol/generate_proto.sh | 1 + .../protocol/livekit_agent_dispatch_pb2.py | 42 +++++++++++ .../protocol/livekit_agent_dispatch_pb2.pyi | 69 +++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.py create mode 100644 livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.pyi diff --git a/livekit-protocol/generate_proto.sh b/livekit-protocol/generate_proto.sh index 692ec7a5..0e16b1d3 100755 --- a/livekit-protocol/generate_proto.sh +++ b/livekit-protocol/generate_proto.sh @@ -31,6 +31,7 @@ protoc \ $API_PROTOCOL/livekit_ingress.proto \ $API_PROTOCOL/livekit_models.proto \ $API_PROTOCOL/livekit_agent.proto \ + $API_PROTOCOL/livekit_agent_dispatch.proto \ $API_PROTOCOL/livekit_sip.proto \ $API_PROTOCOL/livekit_analytics.proto diff --git a/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.py b/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.py new file mode 100644 index 00000000..d4daa6a1 --- /dev/null +++ b/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: livekit_agent_dispatch.proto +# Protobuf Python Version: 4.25.3 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from . import agent as _agent_ + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1clivekit_agent_dispatch.proto\x12\x07livekit\x1a\x13livekit_agent.proto\"P\n\x1a\x43reateAgentDispatchRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\"9\n\x11RoomAgentDispatch\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"1\n\x1a\x44\x65leteAgentDispatchRequest\x12\x13\n\x0b\x64ispatch_id\x18\x01 \x01(\t\">\n\x19ListAgentDispatchRequesst\x12\x13\n\x0b\x64ispatch_id\x18\x01 \x01(\t\x12\x0c\n\x04room\x18\x02 \x01(\t\"M\n\x19ListAgentDispatchResponse\x12\x30\n\x10\x61gent_dispatches\x18\x01 \x03(\x0b\x32\x16.livekit.AgentDispatch\"{\n\rAgentDispatch\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0c\n\x04room\x18\x03 \x01(\t\x12\x10\n\x08metadata\x18\x04 \x01(\t\x12*\n\x05state\x18\x05 \x01(\x0b\x32\x1b.livekit.AgentDispatchState\"X\n\x12\x41gentDispatchState\x12\x1a\n\x04jobs\x18\x01 \x03(\x0b\x32\x0c.livekit.Job\x12\x12\n\ncreated_at\x18\x02 \x01(\x03\x12\x12\n\ndeleted_at\x18\x03 \x01(\x03\x32\x8c\x02\n\x14\x41gentDispatchService\x12M\n\x0e\x43reateDispatch\x12#.livekit.CreateAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12M\n\x0e\x44\x65leteDispatch\x12#.livekit.DeleteAgentDispatchRequest\x1a\x16.livekit.AgentDispatch\x12V\n\x0cListDispatch\x12\".livekit.ListAgentDispatchRequesst\x1a\".livekit.ListAgentDispatchResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'agent_dispatch', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' + _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_start=62 + _globals['_CREATEAGENTDISPATCHREQUEST']._serialized_end=142 + _globals['_ROOMAGENTDISPATCH']._serialized_start=144 + _globals['_ROOMAGENTDISPATCH']._serialized_end=201 + _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_start=203 + _globals['_DELETEAGENTDISPATCHREQUEST']._serialized_end=252 + _globals['_LISTAGENTDISPATCHREQUESST']._serialized_start=254 + _globals['_LISTAGENTDISPATCHREQUESST']._serialized_end=316 + _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_start=318 + _globals['_LISTAGENTDISPATCHRESPONSE']._serialized_end=395 + _globals['_AGENTDISPATCH']._serialized_start=397 + _globals['_AGENTDISPATCH']._serialized_end=520 + _globals['_AGENTDISPATCHSTATE']._serialized_start=522 + _globals['_AGENTDISPATCHSTATE']._serialized_end=610 + _globals['_AGENTDISPATCHSERVICE']._serialized_start=613 + _globals['_AGENTDISPATCHSERVICE']._serialized_end=881 +# @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.pyi b/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.pyi new file mode 100644 index 00000000..a1d463e4 --- /dev/null +++ b/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.pyi @@ -0,0 +1,69 @@ +from . import agent as _agent +from google.protobuf.internal import containers as _containers +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class CreateAgentDispatchRequest(_message.Message): + __slots__ = ("agent_name", "room", "metadata") + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + ROOM_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + agent_name: str + room: str + metadata: str + def __init__(self, agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ... + +class RoomAgentDispatch(_message.Message): + __slots__ = ("agent_name", "metadata") + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + agent_name: str + metadata: str + def __init__(self, agent_name: _Optional[str] = ..., metadata: _Optional[str] = ...) -> None: ... + +class DeleteAgentDispatchRequest(_message.Message): + __slots__ = ("dispatch_id",) + DISPATCH_ID_FIELD_NUMBER: _ClassVar[int] + dispatch_id: str + def __init__(self, dispatch_id: _Optional[str] = ...) -> None: ... + +class ListAgentDispatchRequesst(_message.Message): + __slots__ = ("dispatch_id", "room") + DISPATCH_ID_FIELD_NUMBER: _ClassVar[int] + ROOM_FIELD_NUMBER: _ClassVar[int] + dispatch_id: str + room: str + def __init__(self, dispatch_id: _Optional[str] = ..., room: _Optional[str] = ...) -> None: ... + +class ListAgentDispatchResponse(_message.Message): + __slots__ = ("agent_dispatches",) + AGENT_DISPATCHES_FIELD_NUMBER: _ClassVar[int] + agent_dispatches: _containers.RepeatedCompositeFieldContainer[AgentDispatch] + def __init__(self, agent_dispatches: _Optional[_Iterable[_Union[AgentDispatch, _Mapping]]] = ...) -> None: ... + +class AgentDispatch(_message.Message): + __slots__ = ("id", "agent_name", "room", "metadata", "state") + ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + ROOM_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + STATE_FIELD_NUMBER: _ClassVar[int] + id: str + agent_name: str + room: str + metadata: str + state: AgentDispatchState + def __init__(self, id: _Optional[str] = ..., agent_name: _Optional[str] = ..., room: _Optional[str] = ..., metadata: _Optional[str] = ..., state: _Optional[_Union[AgentDispatchState, _Mapping]] = ...) -> None: ... + +class AgentDispatchState(_message.Message): + __slots__ = ("jobs", "created_at", "deleted_at") + JOBS_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + DELETED_AT_FIELD_NUMBER: _ClassVar[int] + jobs: _containers.RepeatedCompositeFieldContainer[_agent.Job] + created_at: int + deleted_at: int + def __init__(self, jobs: _Optional[_Iterable[_Union[_agent.Job, _Mapping]]] = ..., created_at: _Optional[int] = ..., deleted_at: _Optional[int] = ...) -> None: ... From b944945e4f3d178b27660675e221f61aa2e41b4d Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 22 Jul 2024 17:53:31 -0700 Subject: [PATCH 22/23] agent dispatch --- livekit-protocol/generate_proto.sh | 4 +++- .../{livekit_agent_dispatch_pb2.py => agent_dispatch.py} | 0 .../{livekit_agent_dispatch_pb2.pyi => agent_dispatch.pyi} | 0 livekit-protocol/livekit/protocol/room.py | 2 +- livekit-protocol/livekit/protocol/room.pyi | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) rename livekit-protocol/livekit/protocol/{livekit_agent_dispatch_pb2.py => agent_dispatch.py} (100%) rename livekit-protocol/livekit/protocol/{livekit_agent_dispatch_pb2.pyi => agent_dispatch.pyi} (100%) diff --git a/livekit-protocol/generate_proto.sh b/livekit-protocol/generate_proto.sh index 0e16b1d3..8781ec22 100755 --- a/livekit-protocol/generate_proto.sh +++ b/livekit-protocol/generate_proto.sh @@ -59,11 +59,13 @@ mv "$API_OUT_PYTHON/livekit_models_pb2.py" "$API_OUT_PYTHON/models.py" mv "$API_OUT_PYTHON/livekit_models_pb2.pyi" "$API_OUT_PYTHON/models.pyi" mv "$API_OUT_PYTHON/livekit_agent_pb2.py" "$API_OUT_PYTHON/agent.py" mv "$API_OUT_PYTHON/livekit_agent_pb2.pyi" "$API_OUT_PYTHON/agent.pyi" +mv "$API_OUT_PYTHON/livekit_agent_dispatch_pb2.py" "$API_OUT_PYTHON/agent_dispatch.py" +mv "$API_OUT_PYTHON/livekit_agent_dispatch_pb2.pyi" "$API_OUT_PYTHON/agent_dispatch.pyi" mv "$API_OUT_PYTHON/livekit_analytics_pb2.py" "$API_OUT_PYTHON/analytics.py" mv "$API_OUT_PYTHON/livekit_analytics_pb2.pyi" "$API_OUT_PYTHON/analytics.pyi" mv "$API_OUT_PYTHON/livekit_sip_pb2.py" "$API_OUT_PYTHON/sip.py" mv "$API_OUT_PYTHON/livekit_sip_pb2.pyi" "$API_OUT_PYTHON/sip.pyi" -perl -i -pe 's|^(import (livekit_egress_pb2\|livekit_room_pb2\|livekit_webhook_pb2\|livekit_ingress_pb2\|livekit_models_pb2\|livekit_agent_pb2\|livekit_analytics_pb2\|livekit_sip_pb2))|from . $1|g' "$API_OUT_PYTHON"/*.py "$API_OUT_PYTHON"/*.pyi +perl -i -pe 's|^(import (livekit_egress_pb2\|livekit_room_pb2\|livekit_webhook_pb2\|livekit_ingress_pb2\|livekit_models_pb2\|livekit_agent_pb2\|livekit_agent_dispatch_pb2\|livekit_analytics_pb2\|livekit_sip_pb2))|from . $1|g' "$API_OUT_PYTHON"/*.py "$API_OUT_PYTHON"/*.pyi perl -i -pe 's|livekit_(\w+)_pb2|${1}|g' "$API_OUT_PYTHON"/*.py "$API_OUT_PYTHON"/*.pyi diff --git a/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.py b/livekit-protocol/livekit/protocol/agent_dispatch.py similarity index 100% rename from livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.py rename to livekit-protocol/livekit/protocol/agent_dispatch.py diff --git a/livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.pyi b/livekit-protocol/livekit/protocol/agent_dispatch.pyi similarity index 100% rename from livekit-protocol/livekit/protocol/livekit_agent_dispatch_pb2.pyi rename to livekit-protocol/livekit/protocol/agent_dispatch.pyi diff --git a/livekit-protocol/livekit/protocol/room.py b/livekit-protocol/livekit/protocol/room.py index 0dabbae7..dcb52b33 100644 --- a/livekit-protocol/livekit/protocol/room.py +++ b/livekit-protocol/livekit/protocol/room.py @@ -14,7 +14,7 @@ from . import models as _models_ from . import egress as _egress_ -import agent_dispatch as _agent__dispatch_ +from . import agent_dispatch as _agent__dispatch_ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12livekit_room.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14livekit_egress.proto\x1a\x1clivekit_agent_dispatch.proto\"\xd1\x02\n\x11\x43reateRoomRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x63onfig_name\x18\x0c \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\n \x01(\r\x12\x18\n\x10max_participants\x18\x03 \x01(\r\x12\x0f\n\x07node_id\x18\x04 \x01(\t\x12\x10\n\x08metadata\x18\x05 \x01(\t\x12#\n\x06\x65gress\x18\x06 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x0b \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x12\x16\n\x0ereplay_enabled\x18\r \x01(\x08\"\x9e\x01\n\nRoomEgress\x12\x31\n\x04room\x18\x01 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequest\x12\x33\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x1e.livekit.AutoParticipantEgress\x12(\n\x06tracks\x18\x02 \x01(\x0b\x32\x18.livekit.AutoTrackEgress\";\n\tRoomAgent\x12.\n\ndispatches\x18\x01 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\"!\n\x10ListRoomsRequest\x12\r\n\x05names\x18\x01 \x03(\t\"1\n\x11ListRoomsResponse\x12\x1c\n\x05rooms\x18\x01 \x03(\x0b\x32\r.livekit.Room\"!\n\x11\x44\x65leteRoomRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"\x14\n\x12\x44\x65leteRoomResponse\"\'\n\x17ListParticipantsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\"J\n\x18ListParticipantsResponse\x12.\n\x0cparticipants\x18\x01 \x03(\x0b\x32\x18.livekit.ParticipantInfo\"9\n\x17RoomParticipantIdentity\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\"\x1b\n\x19RemoveParticipantResponse\"X\n\x14MuteRoomTrackRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x11\n\ttrack_sid\x18\x03 \x01(\t\x12\r\n\x05muted\x18\x04 \x01(\x08\":\n\x15MuteRoomTrackResponse\x12!\n\x05track\x18\x01 \x01(\x0b\x32\x12.livekit.TrackInfo\"\x88\x02\n\x18UpdateParticipantRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x10\n\x08metadata\x18\x03 \x01(\t\x12\x32\n\npermission\x18\x04 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x45\n\nattributes\x18\x06 \x03(\x0b\x32\x31.livekit.UpdateParticipantRequest.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9b\x01\n\x1aUpdateSubscriptionsRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x12\n\ntrack_sids\x18\x03 \x03(\t\x12\x11\n\tsubscribe\x18\x04 \x01(\x08\x12\x36\n\x12participant_tracks\x18\x05 \x03(\x0b\x32\x1a.livekit.ParticipantTracks\"\x1d\n\x1bUpdateSubscriptionsResponse\"\xb1\x01\n\x0fSendDataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12&\n\x04kind\x18\x03 \x01(\x0e\x32\x18.livekit.DataPacket.Kind\x12\x1c\n\x10\x64\x65stination_sids\x18\x04 \x03(\tB\x02\x18\x01\x12\x1e\n\x16\x64\x65stination_identities\x18\x06 \x03(\t\x12\x12\n\x05topic\x18\x05 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_topic\"\x12\n\x10SendDataResponse\";\n\x19UpdateRoomMetadataRequest\x12\x0c\n\x04room\x18\x01 \x01(\t\x12\x10\n\x08metadata\x18\x02 \x01(\t\"\x81\x02\n\x11RoomConfiguration\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x15\n\rempty_timeout\x18\x02 \x01(\r\x12\x19\n\x11\x64\x65parture_timeout\x18\x03 \x01(\r\x12\x18\n\x10max_participants\x18\x04 \x01(\r\x12#\n\x06\x65gress\x18\x05 \x01(\x0b\x32\x13.livekit.RoomEgress\x12!\n\x05\x61gent\x18\x06 \x01(\x0b\x32\x12.livekit.RoomAgent\x12\x19\n\x11min_playout_delay\x18\x07 \x01(\r\x12\x19\n\x11max_playout_delay\x18\x08 \x01(\r\x12\x14\n\x0csync_streams\x18\t \x01(\x08\x32\xe6\x06\n\x0bRoomService\x12\x37\n\nCreateRoom\x12\x1a.livekit.CreateRoomRequest\x1a\r.livekit.Room\x12\x42\n\tListRooms\x12\x19.livekit.ListRoomsRequest\x1a\x1a.livekit.ListRoomsResponse\x12\x45\n\nDeleteRoom\x12\x1a.livekit.DeleteRoomRequest\x1a\x1b.livekit.DeleteRoomResponse\x12W\n\x10ListParticipants\x12 .livekit.ListParticipantsRequest\x1a!.livekit.ListParticipantsResponse\x12L\n\x0eGetParticipant\x12 .livekit.RoomParticipantIdentity\x1a\x18.livekit.ParticipantInfo\x12Y\n\x11RemoveParticipant\x12 .livekit.RoomParticipantIdentity\x1a\".livekit.RemoveParticipantResponse\x12S\n\x12MutePublishedTrack\x12\x1d.livekit.MuteRoomTrackRequest\x1a\x1e.livekit.MuteRoomTrackResponse\x12P\n\x11UpdateParticipant\x12!.livekit.UpdateParticipantRequest\x1a\x18.livekit.ParticipantInfo\x12`\n\x13UpdateSubscriptions\x12#.livekit.UpdateSubscriptionsRequest\x1a$.livekit.UpdateSubscriptionsResponse\x12?\n\x08SendData\x12\x18.livekit.SendDataRequest\x1a\x19.livekit.SendDataResponse\x12G\n\x12UpdateRoomMetadata\x12\".livekit.UpdateRoomMetadataRequest\x1a\r.livekit.RoomBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') diff --git a/livekit-protocol/livekit/protocol/room.pyi b/livekit-protocol/livekit/protocol/room.pyi index bfbfebdb..a3962f4b 100644 --- a/livekit-protocol/livekit/protocol/room.pyi +++ b/livekit-protocol/livekit/protocol/room.pyi @@ -1,6 +1,6 @@ from . import models as _models from . import egress as _egress -import agent_dispatch as _agent_dispatch +from . import agent_dispatch as _agent_dispatch from google.protobuf.internal import containers as _containers from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message From 1ea9f37da5ed6f75d3cff5362c2dd4ef38fc553a Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 22 Jul 2024 18:06:24 -0700 Subject: [PATCH 23/23] match js --- livekit-rtc/livekit/rtc/room.py | 48 +++++++++++++-------------------- 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/livekit-rtc/livekit/rtc/room.py b/livekit-rtc/livekit/rtc/room.py index 0a3215f0..0254edcc 100644 --- a/livekit-rtc/livekit/rtc/room.py +++ b/livekit-rtc/livekit/rtc/room.py @@ -425,6 +425,24 @@ def _on_room_event(self, event: proto_room.RoomEvent): participant, event.connection_quality_changed.quality, ) + elif which == "transcription_received": + transcription = event.transcription_received + segments = [ + TranscriptionSegment( + id=s.id, + text=s.text, + final=s.final, + start_time=s.start_time, + end_time=s.end_time, + language=s.language, + ) + for s in transcription.segments + ] + part = self._retrieve_participant(transcription.participant_identity) + pub: TrackPublication | None = None + if part: + pub = part.track_publications.get(transcription.track_sid) + self.emit("transcription_received", segments, part, pub) elif which == "data_packet_received": packet = event.data_packet_received which_val = packet.WhichOneof("value") @@ -464,36 +482,6 @@ def _on_room_event(self, event: proto_room.RoomEvent): participant=rparticipant, ), ) - elif which_val == "transcription": - transcription = packet.transcription - participant = self._retrieve_participant( - transcription.transcribed_participant_identity - ) - publication: TrackPublication | None = None - if participant: - publication = participant.track_publications.get( - transcription.track_id - ) - - segments = [ - TranscriptionSegment( - id=seg.id, - text=seg.text, - start_time=seg.start_time, - end_time=seg.end_time, - language=seg.language, - final=seg.final, - ) - for seg in transcription.segments - ] - self.emit( - "transcription_received", - segments, - participant, - publication, - ) - pass - elif which == "e2ee_state_changed": identity = event.e2ee_state_changed.participant_identity e2ee_state = event.e2ee_state_changed.state