diff --git a/.github/workflows/build-rtc.yml b/.github/workflows/build-rtc.yml index 093fb39b..f43d534f 100644 --- a/.github/workflows/build-rtc.yml +++ b/.github/workflows/build-rtc.yml @@ -36,9 +36,9 @@ jobs: - uses: actions/setup-python@v4 - name: Install Protoc - uses: arduino/setup-protoc@v2 + uses: arduino/setup-protoc@v3 with: - version: "25.1" + version: "26.x" repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Install deps @@ -55,7 +55,6 @@ jobs: default_author: github_actions message: generated protobuf - build_wheels: name: Build RTC wheels (${{ matrix.archs }}) runs-on: ${{ matrix.os }} diff --git a/livekit-rtc/generate_proto.sh b/livekit-rtc/generate_proto.sh index 14defb6d..71cf1849 100755 --- a/livekit-rtc/generate_proto.sh +++ b/livekit-rtc/generate_proto.sh @@ -34,10 +34,11 @@ protoc \ $FFI_PROTOCOL/video_frame.proto \ $FFI_PROTOCOL/e2ee.proto \ $FFI_PROTOCOL/stats.proto \ + $FFI_PROTOCOL/track_publication.proto \ $FFI_PROTOCOL/rpc.proto touch -a "$FFI_OUT_PYTHON/__init__.py" for f in "$FFI_OUT_PYTHON"/*.py "$FFI_OUT_PYTHON"/*.pyi; do - perl -i -pe 's|^(import (audio_frame_pb2\|ffi_pb2\|handle_pb2\|participant_pb2\|room_pb2\|track_pb2\|video_frame_pb2\|e2ee_pb2\|stats_pb2\|rpc_pb2))|from . $1|g' "$f" + perl -i -pe 's|^(import (audio_frame_pb2\|ffi_pb2\|handle_pb2\|participant_pb2\|room_pb2\|track_pb2\|video_frame_pb2\|e2ee_pb2\|stats_pb2\|rpc_pb2\|track_publication_pb2))|from . $1|g' "$f" done diff --git a/livekit-rtc/livekit/rtc/__init__.py b/livekit-rtc/livekit/rtc/__init__.py index bfecba2b..b6784af7 100644 --- a/livekit-rtc/livekit/rtc/__init__.py +++ b/livekit-rtc/livekit/rtc/__init__.py @@ -16,7 +16,7 @@ from ._proto import stats_pb2 as stats from ._proto.e2ee_pb2 import EncryptionState, EncryptionType -from ._proto.participant_pb2 import ParticipantKind +from ._proto.participant_pb2 import ParticipantKind, DisconnectReason from ._proto.room_pb2 import ( ConnectionQuality, ConnectionState, @@ -98,6 +98,7 @@ "LocalParticipant", "Participant", "ParticipantKind", + "DisconnectReason", "RemoteParticipant", "ConnectError", "Room", diff --git a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py index e16f0176..503e58ae 100644 --- a/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/audio_frame_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: audio_frame.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -21,8 +21,8 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'audio_frame_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_SOXRESAMPLERDATATYPE']._serialized_start=3385 _globals['_SOXRESAMPLERDATATYPE']._serialized_end=3459 diff --git a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py index 0b5f8554..482deb8a 100644 --- a/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/e2ee_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: e2ee.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -19,8 +19,8 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'e2ee_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_ENCRYPTIONTYPE']._serialized_start=2856 _globals['_ENCRYPTIONTYPE']._serialized_end=2903 diff --git a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py index a96586f1..5cc9e307 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: ffi.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -14,38 +14,39 @@ from . import e2ee_pb2 as e2ee__pb2 from . import track_pb2 as track__pb2 +from . import track_publication_pb2 as track__publication__pb2 from . import room_pb2 as room__pb2 from . import video_frame_pb2 as video__frame__pb2 from . import audio_frame_pb2 as audio__frame__pb2 from . import rpc_pb2 as rpc__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\x1a\trpc.proto\"\xa6\x15\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@\n\x10local_track_mute\x18\x11 \x01(\x0b\x32$.livekit.proto.LocalTrackMuteRequestH\x00\x12\x46\n\x13\x65nable_remote_track\x18\x12 \x01(\x0b\x32\'.livekit.proto.EnableRemoteTrackRequestH\x00\x12\x33\n\tget_stats\x18\x13 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x14 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x15 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x16 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x17 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12Y\n\x1dvideo_stream_from_participant\x18\x18 \x01(\x0b\x32\x30.livekit.proto.VideoStreamFromParticipantRequestH\x00\x12@\n\x10new_audio_stream\x18\x19 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x1a \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x1b \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x44\n\x12\x63lear_audio_buffer\x18\x1c \x01(\x0b\x32&.livekit.proto.ClearAudioBufferRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1d \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1e \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1f \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x12Y\n\x1d\x61udio_stream_from_participant\x18 \x01(\x0b\x32\x30.livekit.proto.AudioStreamFromParticipantRequestH\x00\x12\x42\n\x11new_sox_resampler\x18! \x01(\x0b\x32%.livekit.proto.NewSoxResamplerRequestH\x00\x12\x44\n\x12push_sox_resampler\x18\" \x01(\x0b\x32&.livekit.proto.PushSoxResamplerRequestH\x00\x12\x46\n\x13\x66lush_sox_resampler\x18# \x01(\x0b\x32\'.livekit.proto.FlushSoxResamplerRequestH\x00\x12\x42\n\x11send_chat_message\x18$ \x01(\x0b\x32%.livekit.proto.SendChatMessageRequestH\x00\x12\x42\n\x11\x65\x64it_chat_message\x18% \x01(\x0b\x32%.livekit.proto.EditChatMessageRequestH\x00\x12\x37\n\x0bperform_rpc\x18& \x01(\x0b\x32 .livekit.proto.PerformRpcRequestH\x00\x12\x46\n\x13register_rpc_method\x18\' \x01(\x0b\x32\'.livekit.proto.RegisterRpcMethodRequestH\x00\x12J\n\x15unregister_rpc_method\x18( \x01(\x0b\x32).livekit.proto.UnregisterRpcMethodRequestH\x00\x12[\n\x1erpc_method_invocation_response\x18) \x01(\x0b\x32\x31.livekit.proto.RpcMethodInvocationResponseRequestH\x00\x42\t\n\x07message\"\x8a\x15\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\x41\n\x10local_track_mute\x18\x11 \x01(\x0b\x32%.livekit.proto.LocalTrackMuteResponseH\x00\x12G\n\x13\x65nable_remote_track\x18\x12 \x01(\x0b\x32(.livekit.proto.EnableRemoteTrackResponseH\x00\x12\x34\n\tget_stats\x18\x13 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x14 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x15 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x16 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x17 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12Z\n\x1dvideo_stream_from_participant\x18\x18 \x01(\x0b\x32\x31.livekit.proto.VideoStreamFromParticipantResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x19 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x1a \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x1b \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12\x45\n\x12\x63lear_audio_buffer\x18\x1c \x01(\x0b\x32\'.livekit.proto.ClearAudioBufferResponseH\x00\x12G\n\x13new_audio_resampler\x18\x1d \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1e \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12Z\n\x1d\x61udio_stream_from_participant\x18\x1f \x01(\x0b\x32\x31.livekit.proto.AudioStreamFromParticipantResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18 \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x12\x43\n\x11new_sox_resampler\x18! \x01(\x0b\x32&.livekit.proto.NewSoxResamplerResponseH\x00\x12\x45\n\x12push_sox_resampler\x18\" \x01(\x0b\x32\'.livekit.proto.PushSoxResamplerResponseH\x00\x12G\n\x13\x66lush_sox_resampler\x18# \x01(\x0b\x32(.livekit.proto.FlushSoxResamplerResponseH\x00\x12\x43\n\x11send_chat_message\x18$ \x01(\x0b\x32&.livekit.proto.SendChatMessageResponseH\x00\x12\x38\n\x0bperform_rpc\x18% \x01(\x0b\x32!.livekit.proto.PerformRpcResponseH\x00\x12G\n\x13register_rpc_method\x18& \x01(\x0b\x32(.livekit.proto.RegisterRpcMethodResponseH\x00\x12K\n\x15unregister_rpc_method\x18\' \x01(\x0b\x32*.livekit.proto.UnregisterRpcMethodResponseH\x00\x12\\\n\x1erpc_method_invocation_response\x18( \x01(\x0b\x32\x32.livekit.proto.RpcMethodInvocationResponseResponseH\x00\x42\t\n\x07message\"\x8a\x0b\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\x12>\n\x0c\x63hat_message\x18\x16 \x01(\x0b\x32&.livekit.proto.SendChatMessageCallbackH\x00\x12\x38\n\x0bperform_rpc\x18\x17 \x01(\x0b\x32!.livekit.proto.PerformRpcCallbackH\x00\x12H\n\x15rpc_method_invocation\x18\x18 \x01(\x0b\x32\'.livekit.proto.RpcMethodInvocationEventH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x02(\x08\"#\n\x0f\x44isposeResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\x85\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x02(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x02(\t\x12\x13\n\x0bmodule_path\x18\x03 \x01(\t\x12\x0c\n\x04\x66ile\x18\x04 \x01(\t\x12\x0c\n\x04line\x18\x05 \x01(\r\x12\x0f\n\x07message\x18\x06 \x02(\t\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x02(\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.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\tffi.proto\x12\rlivekit.proto\x1a\ne2ee.proto\x1a\x0btrack.proto\x1a\x17track_publication.proto\x1a\nroom.proto\x1a\x11video_frame.proto\x1a\x11\x61udio_frame.proto\x1a\trpc.proto\"\xf7\x16\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@\n\x10local_track_mute\x18\x11 \x01(\x0b\x32$.livekit.proto.LocalTrackMuteRequestH\x00\x12\x46\n\x13\x65nable_remote_track\x18\x12 \x01(\x0b\x32\'.livekit.proto.EnableRemoteTrackRequestH\x00\x12\x33\n\tget_stats\x18\x13 \x01(\x0b\x32\x1e.livekit.proto.GetStatsRequestH\x00\x12@\n\x10new_video_stream\x18\x14 \x01(\x0b\x32$.livekit.proto.NewVideoStreamRequestH\x00\x12@\n\x10new_video_source\x18\x15 \x01(\x0b\x32$.livekit.proto.NewVideoSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_video_frame\x18\x16 \x01(\x0b\x32\'.livekit.proto.CaptureVideoFrameRequestH\x00\x12;\n\rvideo_convert\x18\x17 \x01(\x0b\x32\".livekit.proto.VideoConvertRequestH\x00\x12Y\n\x1dvideo_stream_from_participant\x18\x18 \x01(\x0b\x32\x30.livekit.proto.VideoStreamFromParticipantRequestH\x00\x12@\n\x10new_audio_stream\x18\x19 \x01(\x0b\x32$.livekit.proto.NewAudioStreamRequestH\x00\x12@\n\x10new_audio_source\x18\x1a \x01(\x0b\x32$.livekit.proto.NewAudioSourceRequestH\x00\x12\x46\n\x13\x63\x61pture_audio_frame\x18\x1b \x01(\x0b\x32\'.livekit.proto.CaptureAudioFrameRequestH\x00\x12\x44\n\x12\x63lear_audio_buffer\x18\x1c \x01(\x0b\x32&.livekit.proto.ClearAudioBufferRequestH\x00\x12\x46\n\x13new_audio_resampler\x18\x1d \x01(\x0b\x32\'.livekit.proto.NewAudioResamplerRequestH\x00\x12\x44\n\x12remix_and_resample\x18\x1e \x01(\x0b\x32&.livekit.proto.RemixAndResampleRequestH\x00\x12*\n\x04\x65\x32\x65\x65\x18\x1f \x01(\x0b\x32\x1a.livekit.proto.E2eeRequestH\x00\x12Y\n\x1d\x61udio_stream_from_participant\x18 \x01(\x0b\x32\x30.livekit.proto.AudioStreamFromParticipantRequestH\x00\x12\x42\n\x11new_sox_resampler\x18! \x01(\x0b\x32%.livekit.proto.NewSoxResamplerRequestH\x00\x12\x44\n\x12push_sox_resampler\x18\" \x01(\x0b\x32&.livekit.proto.PushSoxResamplerRequestH\x00\x12\x46\n\x13\x66lush_sox_resampler\x18# \x01(\x0b\x32\'.livekit.proto.FlushSoxResamplerRequestH\x00\x12\x42\n\x11send_chat_message\x18$ \x01(\x0b\x32%.livekit.proto.SendChatMessageRequestH\x00\x12\x42\n\x11\x65\x64it_chat_message\x18% \x01(\x0b\x32%.livekit.proto.EditChatMessageRequestH\x00\x12\x37\n\x0bperform_rpc\x18& \x01(\x0b\x32 .livekit.proto.PerformRpcRequestH\x00\x12\x46\n\x13register_rpc_method\x18\' \x01(\x0b\x32\'.livekit.proto.RegisterRpcMethodRequestH\x00\x12J\n\x15unregister_rpc_method\x18( \x01(\x0b\x32).livekit.proto.UnregisterRpcMethodRequestH\x00\x12[\n\x1erpc_method_invocation_response\x18) \x01(\x0b\x32\x31.livekit.proto.RpcMethodInvocationResponseRequestH\x00\x12]\n\x1f\x65nable_remote_track_publication\x18* \x01(\x0b\x32\x32.livekit.proto.EnableRemoteTrackPublicationRequestH\x00\x12p\n)update_remote_track_publication_dimension\x18+ \x01(\x0b\x32;.livekit.proto.UpdateRemoteTrackPublicationDimensionRequestH\x00\x42\t\n\x07message\"\xdd\x16\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\x41\n\x10local_track_mute\x18\x11 \x01(\x0b\x32%.livekit.proto.LocalTrackMuteResponseH\x00\x12G\n\x13\x65nable_remote_track\x18\x12 \x01(\x0b\x32(.livekit.proto.EnableRemoteTrackResponseH\x00\x12\x34\n\tget_stats\x18\x13 \x01(\x0b\x32\x1f.livekit.proto.GetStatsResponseH\x00\x12\x41\n\x10new_video_stream\x18\x14 \x01(\x0b\x32%.livekit.proto.NewVideoStreamResponseH\x00\x12\x41\n\x10new_video_source\x18\x15 \x01(\x0b\x32%.livekit.proto.NewVideoSourceResponseH\x00\x12G\n\x13\x63\x61pture_video_frame\x18\x16 \x01(\x0b\x32(.livekit.proto.CaptureVideoFrameResponseH\x00\x12<\n\rvideo_convert\x18\x17 \x01(\x0b\x32#.livekit.proto.VideoConvertResponseH\x00\x12Z\n\x1dvideo_stream_from_participant\x18\x18 \x01(\x0b\x32\x31.livekit.proto.VideoStreamFromParticipantResponseH\x00\x12\x41\n\x10new_audio_stream\x18\x19 \x01(\x0b\x32%.livekit.proto.NewAudioStreamResponseH\x00\x12\x41\n\x10new_audio_source\x18\x1a \x01(\x0b\x32%.livekit.proto.NewAudioSourceResponseH\x00\x12G\n\x13\x63\x61pture_audio_frame\x18\x1b \x01(\x0b\x32(.livekit.proto.CaptureAudioFrameResponseH\x00\x12\x45\n\x12\x63lear_audio_buffer\x18\x1c \x01(\x0b\x32\'.livekit.proto.ClearAudioBufferResponseH\x00\x12G\n\x13new_audio_resampler\x18\x1d \x01(\x0b\x32(.livekit.proto.NewAudioResamplerResponseH\x00\x12\x45\n\x12remix_and_resample\x18\x1e \x01(\x0b\x32\'.livekit.proto.RemixAndResampleResponseH\x00\x12Z\n\x1d\x61udio_stream_from_participant\x18\x1f \x01(\x0b\x32\x31.livekit.proto.AudioStreamFromParticipantResponseH\x00\x12+\n\x04\x65\x32\x65\x65\x18 \x01(\x0b\x32\x1b.livekit.proto.E2eeResponseH\x00\x12\x43\n\x11new_sox_resampler\x18! \x01(\x0b\x32&.livekit.proto.NewSoxResamplerResponseH\x00\x12\x45\n\x12push_sox_resampler\x18\" \x01(\x0b\x32\'.livekit.proto.PushSoxResamplerResponseH\x00\x12G\n\x13\x66lush_sox_resampler\x18# \x01(\x0b\x32(.livekit.proto.FlushSoxResamplerResponseH\x00\x12\x43\n\x11send_chat_message\x18$ \x01(\x0b\x32&.livekit.proto.SendChatMessageResponseH\x00\x12\x38\n\x0bperform_rpc\x18% \x01(\x0b\x32!.livekit.proto.PerformRpcResponseH\x00\x12G\n\x13register_rpc_method\x18& \x01(\x0b\x32(.livekit.proto.RegisterRpcMethodResponseH\x00\x12K\n\x15unregister_rpc_method\x18\' \x01(\x0b\x32*.livekit.proto.UnregisterRpcMethodResponseH\x00\x12\\\n\x1erpc_method_invocation_response\x18( \x01(\x0b\x32\x32.livekit.proto.RpcMethodInvocationResponseResponseH\x00\x12^\n\x1f\x65nable_remote_track_publication\x18) \x01(\x0b\x32\x33.livekit.proto.EnableRemoteTrackPublicationResponseH\x00\x12q\n)update_remote_track_publication_dimension\x18* \x01(\x0b\x32<.livekit.proto.UpdateRemoteTrackPublicationDimensionResponseH\x00\x42\t\n\x07message\"\x8a\x0b\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\x12>\n\x0c\x63hat_message\x18\x16 \x01(\x0b\x32&.livekit.proto.SendChatMessageCallbackH\x00\x12\x38\n\x0bperform_rpc\x18\x17 \x01(\x0b\x32!.livekit.proto.PerformRpcCallbackH\x00\x12H\n\x15rpc_method_invocation\x18\x18 \x01(\x0b\x32\'.livekit.proto.RpcMethodInvocationEventH\x00\x42\t\n\x07message\"\x1f\n\x0e\x44isposeRequest\x12\r\n\x05\x61sync\x18\x01 \x02(\x08\"#\n\x0f\x44isposeResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x01(\x04\"#\n\x0f\x44isposeCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\x85\x01\n\tLogRecord\x12&\n\x05level\x18\x01 \x02(\x0e\x32\x17.livekit.proto.LogLevel\x12\x0e\n\x06target\x18\x02 \x02(\t\x12\x13\n\x0bmodule_path\x18\x03 \x01(\t\x12\x0c\n\x04\x66ile\x18\x04 \x01(\t\x12\x0c\n\x04line\x18\x05 \x01(\r\x12\x0f\n\x07message\x18\x06 \x02(\t\"5\n\x08LogBatch\x12)\n\x07records\x18\x01 \x03(\x0b\x32\x18.livekit.proto.LogRecord\"\x18\n\x05Panic\x12\x0f\n\x07message\x18\x01 \x02(\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.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'ffi_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_LOGLEVEL']._serialized_start=7289 - _globals['_LOGLEVEL']._serialized_end=7372 - _globals['_FFIREQUEST']._serialized_start=115 - _globals['_FFIREQUEST']._serialized_end=2841 - _globals['_FFIRESPONSE']._serialized_start=2844 - _globals['_FFIRESPONSE']._serialized_end=5542 - _globals['_FFIEVENT']._serialized_start=5545 - _globals['_FFIEVENT']._serialized_end=6963 - _globals['_DISPOSEREQUEST']._serialized_start=6965 - _globals['_DISPOSEREQUEST']._serialized_end=6996 - _globals['_DISPOSERESPONSE']._serialized_start=6998 - _globals['_DISPOSERESPONSE']._serialized_end=7033 - _globals['_DISPOSECALLBACK']._serialized_start=7035 - _globals['_DISPOSECALLBACK']._serialized_end=7070 - _globals['_LOGRECORD']._serialized_start=7073 - _globals['_LOGRECORD']._serialized_end=7206 - _globals['_LOGBATCH']._serialized_start=7208 - _globals['_LOGBATCH']._serialized_end=7261 - _globals['_PANIC']._serialized_start=7263 - _globals['_PANIC']._serialized_end=7287 + _globals['_LOGLEVEL']._serialized_start=7734 + _globals['_LOGLEVEL']._serialized_end=7817 + _globals['_FFIREQUEST']._serialized_start=140 + _globals['_FFIREQUEST']._serialized_end=3075 + _globals['_FFIRESPONSE']._serialized_start=3078 + _globals['_FFIRESPONSE']._serialized_end=5987 + _globals['_FFIEVENT']._serialized_start=5990 + _globals['_FFIEVENT']._serialized_end=7408 + _globals['_DISPOSEREQUEST']._serialized_start=7410 + _globals['_DISPOSEREQUEST']._serialized_end=7441 + _globals['_DISPOSERESPONSE']._serialized_start=7443 + _globals['_DISPOSERESPONSE']._serialized_end=7478 + _globals['_DISPOSECALLBACK']._serialized_start=7480 + _globals['_DISPOSECALLBACK']._serialized_end=7515 + _globals['_LOGRECORD']._serialized_start=7518 + _globals['_LOGRECORD']._serialized_end=7651 + _globals['_LOGBATCH']._serialized_start=7653 + _globals['_LOGBATCH']._serialized_end=7706 + _globals['_PANIC']._serialized_start=7708 + _globals['_PANIC']._serialized_end=7732 # @@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 5799ce3f..45c2e073 100644 --- a/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/ffi_pb2.pyi @@ -28,6 +28,7 @@ from . import room_pb2 from . import rpc_pb2 import sys from . import track_pb2 +from . import track_publication_pb2 import typing from . import video_frame_pb2 @@ -133,6 +134,8 @@ class FfiRequest(google.protobuf.message.Message): REGISTER_RPC_METHOD_FIELD_NUMBER: builtins.int UNREGISTER_RPC_METHOD_FIELD_NUMBER: builtins.int RPC_METHOD_INVOCATION_RESPONSE_FIELD_NUMBER: builtins.int + ENABLE_REMOTE_TRACK_PUBLICATION_FIELD_NUMBER: builtins.int + UPDATE_REMOTE_TRACK_PUBLICATION_DIMENSION_FIELD_NUMBER: builtins.int @property def dispose(self) -> global___DisposeRequest: ... @property @@ -223,6 +226,12 @@ class FfiRequest(google.protobuf.message.Message): def unregister_rpc_method(self) -> rpc_pb2.UnregisterRpcMethodRequest: ... @property def rpc_method_invocation_response(self) -> rpc_pb2.RpcMethodInvocationResponseRequest: ... + @property + def enable_remote_track_publication(self) -> track_publication_pb2.EnableRemoteTrackPublicationRequest: + """Track Publication""" + + @property + def update_remote_track_publication_dimension(self) -> track_publication_pb2.UpdateRemoteTrackPublicationDimensionRequest: ... def __init__( self, *, @@ -266,10 +275,12 @@ class FfiRequest(google.protobuf.message.Message): register_rpc_method: rpc_pb2.RegisterRpcMethodRequest | None = ..., unregister_rpc_method: rpc_pb2.UnregisterRpcMethodRequest | None = ..., rpc_method_invocation_response: rpc_pb2.RpcMethodInvocationResponseRequest | None = ..., + enable_remote_track_publication: track_publication_pb2.EnableRemoteTrackPublicationRequest | None = ..., + update_remote_track_publication_dimension: track_publication_pb2.UpdateRemoteTrackPublicationDimensionRequest | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.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", "local_track_mute", "enable_remote_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "video_stream_from_participant", "new_audio_stream", "new_audio_source", "capture_audio_frame", "clear_audio_buffer", "new_audio_resampler", "remix_and_resample", "e2ee", "audio_stream_from_participant", "new_sox_resampler", "push_sox_resampler", "flush_sox_resampler", "send_chat_message", "edit_chat_message", "perform_rpc", "register_rpc_method", "unregister_rpc_method", "rpc_method_invocation_response"] | None: ... + def HasField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "update_remote_track_publication_dimension", b"update_remote_track_publication_dimension", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "edit_chat_message", b"edit_chat_message", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "update_remote_track_publication_dimension", b"update_remote_track_publication_dimension", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.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", "local_track_mute", "enable_remote_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "video_stream_from_participant", "new_audio_stream", "new_audio_source", "capture_audio_frame", "clear_audio_buffer", "new_audio_resampler", "remix_and_resample", "e2ee", "audio_stream_from_participant", "new_sox_resampler", "push_sox_resampler", "flush_sox_resampler", "send_chat_message", "edit_chat_message", "perform_rpc", "register_rpc_method", "unregister_rpc_method", "rpc_method_invocation_response", "enable_remote_track_publication", "update_remote_track_publication_dimension"] | None: ... global___FfiRequest = FfiRequest @@ -318,6 +329,8 @@ class FfiResponse(google.protobuf.message.Message): REGISTER_RPC_METHOD_FIELD_NUMBER: builtins.int UNREGISTER_RPC_METHOD_FIELD_NUMBER: builtins.int RPC_METHOD_INVOCATION_RESPONSE_FIELD_NUMBER: builtins.int + ENABLE_REMOTE_TRACK_PUBLICATION_FIELD_NUMBER: builtins.int + UPDATE_REMOTE_TRACK_PUBLICATION_DIMENSION_FIELD_NUMBER: builtins.int @property def dispose(self) -> global___DisposeResponse: ... @property @@ -406,6 +419,12 @@ class FfiResponse(google.protobuf.message.Message): def unregister_rpc_method(self) -> rpc_pb2.UnregisterRpcMethodResponse: ... @property def rpc_method_invocation_response(self) -> rpc_pb2.RpcMethodInvocationResponseResponse: ... + @property + def enable_remote_track_publication(self) -> track_publication_pb2.EnableRemoteTrackPublicationResponse: + """Track Publication""" + + @property + def update_remote_track_publication_dimension(self) -> track_publication_pb2.UpdateRemoteTrackPublicationDimensionResponse: ... def __init__( self, *, @@ -448,10 +467,12 @@ class FfiResponse(google.protobuf.message.Message): register_rpc_method: rpc_pb2.RegisterRpcMethodResponse | None = ..., unregister_rpc_method: rpc_pb2.UnregisterRpcMethodResponse | None = ..., rpc_method_invocation_response: rpc_pb2.RpcMethodInvocationResponseResponse | None = ..., + enable_remote_track_publication: track_publication_pb2.EnableRemoteTrackPublicationResponse | None = ..., + update_remote_track_publication_dimension: track_publication_pb2.UpdateRemoteTrackPublicationDimensionResponse | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "enable_remote_track", b"enable_remote_track", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "enable_remote_track", b"enable_remote_track", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.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", "local_track_mute", "enable_remote_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "video_stream_from_participant", "new_audio_stream", "new_audio_source", "capture_audio_frame", "clear_audio_buffer", "new_audio_resampler", "remix_and_resample", "audio_stream_from_participant", "e2ee", "new_sox_resampler", "push_sox_resampler", "flush_sox_resampler", "send_chat_message", "perform_rpc", "register_rpc_method", "unregister_rpc_method", "rpc_method_invocation_response"] | None: ... + def HasField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "update_remote_track_publication_dimension", b"update_remote_track_publication_dimension", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["audio_stream_from_participant", b"audio_stream_from_participant", "capture_audio_frame", b"capture_audio_frame", "capture_video_frame", b"capture_video_frame", "clear_audio_buffer", b"clear_audio_buffer", "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", "enable_remote_track", b"enable_remote_track", "enable_remote_track_publication", b"enable_remote_track_publication", "flush_sox_resampler", b"flush_sox_resampler", "get_session_stats", b"get_session_stats", "get_stats", b"get_stats", "local_track_mute", b"local_track_mute", "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_sox_resampler", b"new_sox_resampler", "new_video_source", b"new_video_source", "new_video_stream", b"new_video_stream", "perform_rpc", b"perform_rpc", "publish_data", b"publish_data", "publish_sip_dtmf", b"publish_sip_dtmf", "publish_track", b"publish_track", "publish_transcription", b"publish_transcription", "push_sox_resampler", b"push_sox_resampler", "register_rpc_method", b"register_rpc_method", "remix_and_resample", b"remix_and_resample", "rpc_method_invocation_response", b"rpc_method_invocation_response", "send_chat_message", b"send_chat_message", "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", "unregister_rpc_method", b"unregister_rpc_method", "update_remote_track_publication_dimension", b"update_remote_track_publication_dimension", "video_convert", b"video_convert", "video_stream_from_participant", b"video_stream_from_participant"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.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", "local_track_mute", "enable_remote_track", "get_stats", "new_video_stream", "new_video_source", "capture_video_frame", "video_convert", "video_stream_from_participant", "new_audio_stream", "new_audio_source", "capture_audio_frame", "clear_audio_buffer", "new_audio_resampler", "remix_and_resample", "audio_stream_from_participant", "e2ee", "new_sox_resampler", "push_sox_resampler", "flush_sox_resampler", "send_chat_message", "perform_rpc", "register_rpc_method", "unregister_rpc_method", "rpc_method_invocation_response", "enable_remote_track_publication", "update_remote_track_publication_dimension"] | None: ... global___FfiResponse = FfiResponse diff --git a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py index 2ae2db78..98d253b4 100644 --- a/livekit-rtc/livekit/rtc/_proto/handle_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/handle_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: handle.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -19,8 +19,8 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'handle_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_FFIOWNEDHANDLE']._serialized_start=31 _globals['_FFIOWNEDHANDLE']._serialized_end=59 diff --git a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py index 83812df2..b4425bd1 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: participant.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -15,22 +15,24 @@ from . import handle_pb2 as handle__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11participant.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"\xf5\x01\n\x0fParticipantInfo\x12\x0b\n\x03sid\x18\x01 \x02(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\x12\x10\n\x08identity\x18\x03 \x02(\t\x12\x10\n\x08metadata\x18\x04 \x02(\t\x12\x42\n\nattributes\x18\x05 \x03(\x0b\x32..livekit.proto.ParticipantInfo.AttributesEntry\x12,\n\x04kind\x18\x06 \x02(\x0e\x32\x1e.livekit.proto.ParticipantKind\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 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.ParticipantInfo*\xa1\x01\n\x0fParticipantKind\x12\x1d\n\x19PARTICIPANT_KIND_STANDARD\x10\x00\x12\x1c\n\x18PARTICIPANT_KIND_INGRESS\x10\x01\x12\x1b\n\x17PARTICIPANT_KIND_EGRESS\x10\x02\x12\x18\n\x14PARTICIPANT_KIND_SIP\x10\x03\x12\x1a\n\x16PARTICIPANT_KIND_AGENT\x10\x04\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11participant.proto\x12\rlivekit.proto\x1a\x0chandle.proto\"\xb1\x02\n\x0fParticipantInfo\x12\x0b\n\x03sid\x18\x01 \x02(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\x12\x10\n\x08identity\x18\x03 \x02(\t\x12\x10\n\x08metadata\x18\x04 \x02(\t\x12\x42\n\nattributes\x18\x05 \x03(\x0b\x32..livekit.proto.ParticipantInfo.AttributesEntry\x12,\n\x04kind\x18\x06 \x02(\x0e\x32\x1e.livekit.proto.ParticipantKind\x12:\n\x11\x64isconnect_reason\x18\x07 \x02(\x0e\x32\x1f.livekit.proto.DisconnectReason\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 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12,\n\x04info\x18\x02 \x02(\x0b\x32\x1e.livekit.proto.ParticipantInfo*\xa1\x01\n\x0fParticipantKind\x12\x1d\n\x19PARTICIPANT_KIND_STANDARD\x10\x00\x12\x1c\n\x18PARTICIPANT_KIND_INGRESS\x10\x01\x12\x1b\n\x17PARTICIPANT_KIND_EGRESS\x10\x02\x12\x18\n\x14PARTICIPANT_KIND_SIP\x10\x03\x12\x1a\n\x16PARTICIPANT_KIND_AGENT\x10\x04*\xac\x02\n\x10\x44isconnectReason\x12\x12\n\x0eUNKNOWN_REASON\x10\x00\x12\x14\n\x10\x43LIENT_INITIATED\x10\x01\x12\x16\n\x12\x44UPLICATE_IDENTITY\x10\x02\x12\x13\n\x0fSERVER_SHUTDOWN\x10\x03\x12\x17\n\x13PARTICIPANT_REMOVED\x10\x04\x12\x10\n\x0cROOM_DELETED\x10\x05\x12\x12\n\x0eSTATE_MISMATCH\x10\x06\x12\x10\n\x0cJOIN_FAILURE\x10\x07\x12\r\n\tMIGRATION\x10\x08\x12\x10\n\x0cSIGNAL_CLOSE\x10\t\x12\x0f\n\x0bROOM_CLOSED\x10\n\x12\x14\n\x10USER_UNAVAILABLE\x10\x0b\x12\x11\n\rUSER_REJECTED\x10\x0c\x12\x15\n\x11SIP_TRUNK_FAILURE\x10\rB\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'participant_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._options = None + _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._loaded_options = None _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_options = b'8\001' - _globals['_PARTICIPANTKIND']._serialized_start=412 - _globals['_PARTICIPANTKIND']._serialized_end=573 + _globals['_PARTICIPANTKIND']._serialized_start=472 + _globals['_PARTICIPANTKIND']._serialized_end=633 + _globals['_DISCONNECTREASON']._serialized_start=636 + _globals['_DISCONNECTREASON']._serialized_end=936 _globals['_PARTICIPANTINFO']._serialized_start=51 - _globals['_PARTICIPANTINFO']._serialized_end=296 - _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_start=247 - _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_end=296 - _globals['_OWNEDPARTICIPANT']._serialized_start=298 - _globals['_OWNEDPARTICIPANT']._serialized_end=409 + _globals['_PARTICIPANTINFO']._serialized_end=356 + _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_start=307 + _globals['_PARTICIPANTINFO_ATTRIBUTESENTRY']._serialized_end=356 + _globals['_OWNEDPARTICIPANT']._serialized_start=358 + _globals['_OWNEDPARTICIPANT']._serialized_end=469 # @@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 be5975d7..45332b50 100644 --- a/livekit-rtc/livekit/rtc/_proto/participant_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/participant_pb2.pyi @@ -54,6 +54,71 @@ PARTICIPANT_KIND_SIP: ParticipantKind.ValueType # 3 PARTICIPANT_KIND_AGENT: ParticipantKind.ValueType # 4 global___ParticipantKind = ParticipantKind +class _DisconnectReason: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + +class _DisconnectReasonEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DisconnectReason.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + UNKNOWN_REASON: _DisconnectReason.ValueType # 0 + CLIENT_INITIATED: _DisconnectReason.ValueType # 1 + """the client initiated the disconnect""" + DUPLICATE_IDENTITY: _DisconnectReason.ValueType # 2 + """another participant with the same identity has joined the room""" + SERVER_SHUTDOWN: _DisconnectReason.ValueType # 3 + """the server instance is shutting down""" + PARTICIPANT_REMOVED: _DisconnectReason.ValueType # 4 + """RoomService.RemoveParticipant was called""" + ROOM_DELETED: _DisconnectReason.ValueType # 5 + """RoomService.DeleteRoom was called""" + STATE_MISMATCH: _DisconnectReason.ValueType # 6 + """the client is attempting to resume a session, but server is not aware of it""" + JOIN_FAILURE: _DisconnectReason.ValueType # 7 + """client was unable to connect fully""" + MIGRATION: _DisconnectReason.ValueType # 8 + """Cloud-only, the server requested Participant to migrate the connection elsewhere""" + SIGNAL_CLOSE: _DisconnectReason.ValueType # 9 + """the signal websocket was closed unexpectedly""" + ROOM_CLOSED: _DisconnectReason.ValueType # 10 + """the room was closed, due to all Standard and Ingress participants having left""" + USER_UNAVAILABLE: _DisconnectReason.ValueType # 11 + """SIP callee did not respond in time""" + USER_REJECTED: _DisconnectReason.ValueType # 12 + """SIP callee rejected the call (busy)""" + SIP_TRUNK_FAILURE: _DisconnectReason.ValueType # 13 + """SIP protocol failure or unexpected response""" + +class DisconnectReason(_DisconnectReason, metaclass=_DisconnectReasonEnumTypeWrapper): ... + +UNKNOWN_REASON: DisconnectReason.ValueType # 0 +CLIENT_INITIATED: DisconnectReason.ValueType # 1 +"""the client initiated the disconnect""" +DUPLICATE_IDENTITY: DisconnectReason.ValueType # 2 +"""another participant with the same identity has joined the room""" +SERVER_SHUTDOWN: DisconnectReason.ValueType # 3 +"""the server instance is shutting down""" +PARTICIPANT_REMOVED: DisconnectReason.ValueType # 4 +"""RoomService.RemoveParticipant was called""" +ROOM_DELETED: DisconnectReason.ValueType # 5 +"""RoomService.DeleteRoom was called""" +STATE_MISMATCH: DisconnectReason.ValueType # 6 +"""the client is attempting to resume a session, but server is not aware of it""" +JOIN_FAILURE: DisconnectReason.ValueType # 7 +"""client was unable to connect fully""" +MIGRATION: DisconnectReason.ValueType # 8 +"""Cloud-only, the server requested Participant to migrate the connection elsewhere""" +SIGNAL_CLOSE: DisconnectReason.ValueType # 9 +"""the signal websocket was closed unexpectedly""" +ROOM_CLOSED: DisconnectReason.ValueType # 10 +"""the room was closed, due to all Standard and Ingress participants having left""" +USER_UNAVAILABLE: DisconnectReason.ValueType # 11 +"""SIP callee did not respond in time""" +USER_REJECTED: DisconnectReason.ValueType # 12 +"""SIP callee rejected the call (busy)""" +SIP_TRUNK_FAILURE: DisconnectReason.ValueType # 13 +"""SIP protocol failure or unexpected response""" +global___DisconnectReason = DisconnectReason + @typing.final class ParticipantInfo(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -81,11 +146,13 @@ class ParticipantInfo(google.protobuf.message.Message): METADATA_FIELD_NUMBER: builtins.int ATTRIBUTES_FIELD_NUMBER: builtins.int KIND_FIELD_NUMBER: builtins.int + DISCONNECT_REASON_FIELD_NUMBER: builtins.int sid: builtins.str name: builtins.str identity: builtins.str metadata: builtins.str kind: global___ParticipantKind.ValueType + disconnect_reason: global___DisconnectReason.ValueType @property def attributes(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ... def __init__( @@ -97,9 +164,10 @@ class ParticipantInfo(google.protobuf.message.Message): metadata: builtins.str | None = ..., attributes: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., kind: global___ParticipantKind.ValueType | None = ..., + disconnect_reason: global___DisconnectReason.ValueType | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["identity", b"identity", "kind", b"kind", "metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "identity", b"identity", "kind", b"kind", "metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> None: ... + def HasField(self, field_name: typing.Literal["disconnect_reason", b"disconnect_reason", "identity", b"identity", "kind", b"kind", "metadata", b"metadata", "name", b"name", "sid", b"sid"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "disconnect_reason", b"disconnect_reason", "identity", b"identity", "kind", b"kind", "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 0e0b910d..b1462331 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: room.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -20,28 +20,28 @@ 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 \x02(\t\x12\r\n\x05token\x18\x02 \x02(\t\x12+\n\x07options\x18\x03 \x02(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\xbf\x03\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x37\n\x06result\x18\x03 \x01(\x0b\x32%.livekit.proto.ConnectCallback.ResultH\x00\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublication\x1a\xb8\x01\n\x06Result\x12&\n\x04room\x18\x01 \x02(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x03 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracksB\t\n\x07message\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x02(\x04\x12\x33\n\x07options\x18\x03 \x02(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12;\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationH\x00\x42\t\n\x07message\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x02(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"9\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\xb9\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x02(\x04\x12\x10\n\x08reliable\x18\x04 \x02(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\r\n\x05topic\x18\x06 \x01(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\t\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"6\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\x12\x10\n\x08track_id\x18\x03 \x02(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"?\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"v\n\x15PublishSipDtmfRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0c\n\x04\x63ode\x18\x02 \x02(\r\x12\r\n\x05\x64igit\x18\x03 \x02(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x04 \x03(\t\"*\n\x16PublishSipDtmfResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"9\n\x16PublishSipDtmfCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x10\n\x08metadata\x18\x02 \x02(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x84\x01\n\x16SendChatMessageRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0f\n\x07message\x18\x02 \x02(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x01(\t\"\xbc\x01\n\x16\x45\x64itChatMessageRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tedit_text\x18\x02 \x02(\t\x12\x34\n\x10original_message\x18\x03 \x02(\x0b\x32\x1a.livekit.proto.ChatMessage\x12\x1e\n\x16\x64\x65stination_identities\x18\x04 \x03(\t\x12\x17\n\x0fsender_identity\x18\x05 \x01(\t\"+\n\x17SendChatMessageResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"{\n\x17SendChatMessageCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x32\n\x0c\x63hat_message\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.ChatMessageH\x00\x42\t\n\x07message\"q\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\nattributes\x18\x02 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\"-\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"=\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0c\n\x04name\x18\x02 \x02(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"7\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x02(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x02(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\xf7\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12?\n\x06result\x18\x03 \x01(\x0b\x32-.livekit.proto.GetSessionStatsCallback.ResultH\x00\x1am\n\x06Result\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\t\n\x07message\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x02(\x04\x12\x15\n\rmax_framerate\x18\x02 \x02(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x02(\x04\"\x9a\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\x12\x0e\n\x06stream\x18\x08 \x01(\t\"=\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\"\xc4\x01\n\tRtcConfig\x12;\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportType\x12K\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicy\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServer\"\xbe\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.E2eeOptions\x12,\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfig\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\r\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x02(\t\x12\x0c\n\x04text\x18\x02 \x02(\t\x12\x12\n\nstart_time\x18\x03 \x02(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x02(\x04\x12\r\n\x05\x66inal\x18\x05 \x02(\x08\x12\x10\n\x08language\x18\x06 \x02(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x02(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x02(\x0b\x32\x19.livekit.proto.BufferInfo\"\xdd\x0e\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x02(\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\x45\n\x16local_track_subscribed\x18\x06 \x01(\x0b\x32#.livekit.proto.LocalTrackSubscribedH\x00\x12\x38\n\x0ftrack_published\x18\x07 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x08 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\t \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\n \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\x0b \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0c \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\r \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\x0e \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0f \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x10 \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x11 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x12 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x13 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x14 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x15 \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\x12:\n\x0c\x63hat_message\x18\x1d \x01(\x0b\x32\".livekit.proto.ChatMessageReceivedH\x00\x42\t\n\x07message\"7\n\x08RoomInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\x12\x10\n\x08metadata\x18\x03 \x02(\t\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x02(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"7\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x02(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x02(\t\")\n\x14LocalTrackSubscribed\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"i\n\x0eTrackPublished\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x39\n\x0bpublication\x18\x02 \x02(\x0b\x32$.livekit.proto.OwnedTrackPublication\"I\n\x10TrackUnpublished\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x02(\t\"Y\n\x0fTrackSubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12(\n\x05track\x18\x02 \x02(\x0b\x32\x19.livekit.proto.OwnedTrack\"D\n\x11TrackUnsubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"Y\n\x17TrackSubscriptionFailed\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\x12\r\n\x05\x65rror\x18\x03 \x02(\t\"=\n\nTrackMuted\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"?\n\x0cTrackUnmuted\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"_\n\x10\x45\x32\x65\x65StateChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12-\n\x05state\x18\x02 \x02(\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 \x02(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x02(\t\"L\n\x1aParticipantMetadataChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x10\n\x08metadata\x18\x02 \x02(\t\"\xac\x01\n\x1cParticipantAttributesChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\nattributes\x18\x02 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\x12:\n\x12\x63hanged_attributes\x18\x03 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\"k\n\x18\x43onnectionQualityChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x31\n\x07quality\x18\x02 \x02(\x0e\x32 .livekit.proto.ConnectionQuality\"E\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\r\n\x05topic\x18\x02 \x01(\t\"y\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x0f\n\x07message\x18\x03 \x02(\t\x12\x16\n\x0e\x65\x64it_timestamp\x18\x04 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x11\n\tgenerated\x18\x06 \x01(\x08\"`\n\x13\x43hatMessageReceived\x12+\n\x07message\x18\x01 \x02(\x0b\x32\x1a.livekit.proto.ChatMessage\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\"&\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x02(\r\x12\r\n\x05\x64igit\x18\x02 \x01(\t\"\xbf\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x02(\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\"\x7f\n\x15TranscriptionReceived\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x35\n\x08segments\x18\x03 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"?\n\x0c\x44isconnected\x12/\n\x06reason\x18\x01 \x02(\x0e\x32\x1f.livekit.proto.DisconnectReason\"\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*\xec\x01\n\x10\x44isconnectReason\x12\x12\n\x0eUNKNOWN_REASON\x10\x00\x12\x14\n\x10\x43LIENT_INITIATED\x10\x01\x12\x16\n\x12\x44UPLICATE_IDENTITY\x10\x02\x12\x13\n\x0fSERVER_SHUTDOWN\x10\x03\x12\x17\n\x13PARTICIPANT_REMOVED\x10\x04\x12\x10\n\x0cROOM_DELETED\x10\x05\x12\x12\n\x0eSTATE_MISMATCH\x10\x06\x12\x10\n\x0cJOIN_FAILURE\x10\x07\x12\r\n\tMIGRATION\x10\x08\x12\x10\n\x0cSIGNAL_CLOSE\x10\t\x12\x0f\n\x0bROOM_CLOSED\x10\nB\x10\xaa\x02\rLiveKit.Proto') +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 \x02(\t\x12\r\n\x05token\x18\x02 \x02(\t\x12+\n\x07options\x18\x03 \x02(\x0b\x32\x1a.livekit.proto.RoomOptions\"#\n\x0f\x43onnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\xbf\x03\n\x0f\x43onnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x37\n\x06result\x18\x03 \x01(\x0b\x32%.livekit.proto.ConnectCallback.ResultH\x00\x1a\x89\x01\n\x15ParticipantWithTracks\x12\x34\n\x0bparticipant\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12:\n\x0cpublications\x18\x02 \x03(\x0b\x32$.livekit.proto.OwnedTrackPublication\x1a\xb8\x01\n\x06Result\x12&\n\x04room\x18\x01 \x02(\x0b\x32\x18.livekit.proto.OwnedRoom\x12:\n\x11local_participant\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\x12J\n\x0cparticipants\x18\x03 \x03(\x0b\x32\x34.livekit.proto.ConnectCallback.ParticipantWithTracksB\t\n\x07message\"(\n\x11\x44isconnectRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\"&\n\x12\x44isconnectResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"&\n\x12\x44isconnectCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\x82\x01\n\x13PublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x14\n\x0ctrack_handle\x18\x02 \x02(\x04\x12\x33\n\x07options\x18\x03 \x02(\x0b\x32\".livekit.proto.TrackPublishOptions\"(\n\x14PublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\x81\x01\n\x14PublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12;\n\x0bpublication\x18\x03 \x01(\x0b\x32$.livekit.proto.OwnedTrackPublicationH\x00\x42\t\n\x07message\"g\n\x15UnpublishTrackRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\x12\x19\n\x11stop_on_unpublish\x18\x03 \x02(\x08\"*\n\x16UnpublishTrackResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"9\n\x16UnpublishTrackCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\xb9\x01\n\x12PublishDataRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_ptr\x18\x02 \x02(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x03 \x02(\x04\x12\x10\n\x08reliable\x18\x04 \x02(\x08\x12\x1c\n\x10\x64\x65stination_sids\x18\x05 \x03(\tB\x02\x18\x01\x12\r\n\x05topic\x18\x06 \x01(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x07 \x03(\t\"\'\n\x13PublishDataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"6\n\x13PublishDataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\xa6\x01\n\x1bPublishTranscriptionRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\x12\x10\n\x08track_id\x18\x03 \x02(\t\x12\x35\n\x08segments\x18\x04 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"0\n\x1cPublishTranscriptionResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"?\n\x1cPublishTranscriptionCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"v\n\x15PublishSipDtmfRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0c\n\x04\x63ode\x18\x02 \x02(\r\x12\r\n\x05\x64igit\x18\x03 \x02(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x04 \x03(\t\"*\n\x16PublishSipDtmfResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"9\n\x16PublishSipDtmfCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"M\n\x17SetLocalMetadataRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x10\n\x08metadata\x18\x02 \x02(\t\",\n\x18SetLocalMetadataResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\";\n\x18SetLocalMetadataCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"\x84\x01\n\x16SendChatMessageRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0f\n\x07message\x18\x02 \x02(\t\x12\x1e\n\x16\x64\x65stination_identities\x18\x03 \x03(\t\x12\x17\n\x0fsender_identity\x18\x04 \x01(\t\"\xbc\x01\n\x16\x45\x64itChatMessageRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x11\n\tedit_text\x18\x02 \x02(\t\x12\x34\n\x10original_message\x18\x03 \x02(\x0b\x32\x1a.livekit.proto.ChatMessage\x12\x1e\n\x16\x64\x65stination_identities\x18\x04 \x03(\t\x12\x17\n\x0fsender_identity\x18\x05 \x01(\t\"+\n\x17SendChatMessageResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"{\n\x17SendChatMessageCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x32\n\x0c\x63hat_message\x18\x03 \x01(\x0b\x32\x1a.livekit.proto.ChatMessageH\x00\x42\t\n\x07message\"q\n\x19SetLocalAttributesRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x32\n\nattributes\x18\x02 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\"-\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\".\n\x1aSetLocalAttributesResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"=\n\x1aSetLocalAttributesCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"E\n\x13SetLocalNameRequest\x12 \n\x18local_participant_handle\x18\x01 \x02(\x04\x12\x0c\n\x04name\x18\x02 \x02(\t\"(\n\x14SetLocalNameResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"7\n\x14SetLocalNameCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\r\n\x05\x65rror\x18\x02 \x01(\t\"E\n\x14SetSubscribedRequest\x12\x11\n\tsubscribe\x18\x01 \x02(\x08\x12\x1a\n\x12publication_handle\x18\x02 \x02(\x04\"\x17\n\x15SetSubscribedResponse\"-\n\x16GetSessionStatsRequest\x12\x13\n\x0broom_handle\x18\x01 \x02(\x04\"+\n\x17GetSessionStatsResponse\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\"\xf7\x01\n\x17GetSessionStatsCallback\x12\x10\n\x08\x61sync_id\x18\x01 \x02(\x04\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12?\n\x06result\x18\x03 \x01(\x0b\x32-.livekit.proto.GetSessionStatsCallback.ResultH\x00\x1am\n\x06Result\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.livekit.proto.RtcStats\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.livekit.proto.RtcStatsB\t\n\x07message\";\n\rVideoEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x02(\x04\x12\x15\n\rmax_framerate\x18\x02 \x02(\x01\"$\n\rAudioEncoding\x12\x13\n\x0bmax_bitrate\x18\x01 \x02(\x04\"\x9a\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\x12\x0e\n\x06stream\x18\x08 \x01(\t\"=\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\"\xc4\x01\n\tRtcConfig\x12;\n\x12ice_transport_type\x18\x01 \x01(\x0e\x32\x1f.livekit.proto.IceTransportType\x12K\n\x1a\x63ontinual_gathering_policy\x18\x02 \x01(\x0e\x32\'.livekit.proto.ContinualGatheringPolicy\x12-\n\x0bice_servers\x18\x03 \x03(\x0b\x32\x18.livekit.proto.IceServer\"\xbe\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.E2eeOptions\x12,\n\nrtc_config\x18\x05 \x01(\x0b\x32\x18.livekit.proto.RtcConfig\x12\x14\n\x0cjoin_retries\x18\x06 \x01(\r\"w\n\x14TranscriptionSegment\x12\n\n\x02id\x18\x01 \x02(\t\x12\x0c\n\x04text\x18\x02 \x02(\t\x12\x12\n\nstart_time\x18\x03 \x02(\x04\x12\x10\n\x08\x65nd_time\x18\x04 \x02(\x04\x12\r\n\x05\x66inal\x18\x05 \x02(\x08\x12\x10\n\x08language\x18\x06 \x02(\t\"0\n\nBufferInfo\x12\x10\n\x08\x64\x61ta_ptr\x18\x01 \x02(\x04\x12\x10\n\x08\x64\x61ta_len\x18\x02 \x02(\x04\"e\n\x0bOwnedBuffer\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12\'\n\x04\x64\x61ta\x18\x02 \x02(\x0b\x32\x19.livekit.proto.BufferInfo\"\xd1\x0f\n\tRoomEvent\x12\x13\n\x0broom_handle\x18\x01 \x02(\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\x45\n\x16local_track_subscribed\x18\x06 \x01(\x0b\x32#.livekit.proto.LocalTrackSubscribedH\x00\x12\x38\n\x0ftrack_published\x18\x07 \x01(\x0b\x32\x1d.livekit.proto.TrackPublishedH\x00\x12<\n\x11track_unpublished\x18\x08 \x01(\x0b\x32\x1f.livekit.proto.TrackUnpublishedH\x00\x12:\n\x10track_subscribed\x18\t \x01(\x0b\x32\x1e.livekit.proto.TrackSubscribedH\x00\x12>\n\x12track_unsubscribed\x18\n \x01(\x0b\x32 .livekit.proto.TrackUnsubscribedH\x00\x12K\n\x19track_subscription_failed\x18\x0b \x01(\x0b\x32&.livekit.proto.TrackSubscriptionFailedH\x00\x12\x30\n\x0btrack_muted\x18\x0c \x01(\x0b\x32\x19.livekit.proto.TrackMutedH\x00\x12\x34\n\rtrack_unmuted\x18\r \x01(\x0b\x32\x1b.livekit.proto.TrackUnmutedH\x00\x12G\n\x17\x61\x63tive_speakers_changed\x18\x0e \x01(\x0b\x32$.livekit.proto.ActiveSpeakersChangedH\x00\x12\x43\n\x15room_metadata_changed\x18\x0f \x01(\x0b\x32\".livekit.proto.RoomMetadataChangedH\x00\x12\x39\n\x10room_sid_changed\x18\x10 \x01(\x0b\x32\x1d.livekit.proto.RoomSidChangedH\x00\x12Q\n\x1cparticipant_metadata_changed\x18\x11 \x01(\x0b\x32).livekit.proto.ParticipantMetadataChangedH\x00\x12I\n\x18participant_name_changed\x18\x12 \x01(\x0b\x32%.livekit.proto.ParticipantNameChangedH\x00\x12U\n\x1eparticipant_attributes_changed\x18\x13 \x01(\x0b\x32+.livekit.proto.ParticipantAttributesChangedH\x00\x12M\n\x1a\x63onnection_quality_changed\x18\x14 \x01(\x0b\x32\'.livekit.proto.ConnectionQualityChangedH\x00\x12I\n\x18\x63onnection_state_changed\x18\x15 \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\x12:\n\x0c\x63hat_message\x18\x1d \x01(\x0b\x32\".livekit.proto.ChatMessageReceivedH\x00\x12\x39\n\rstream_header\x18\x1e \x01(\x0b\x32 .livekit.proto.DataStream.HeaderH\x00\x12\x37\n\x0cstream_chunk\x18\x1f \x01(\x0b\x32\x1f.livekit.proto.DataStream.ChunkH\x00\x42\t\n\x07message\"7\n\x08RoomInfo\x12\x0b\n\x03sid\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\x12\x10\n\x08metadata\x18\x03 \x02(\t\"a\n\tOwnedRoom\x12-\n\x06handle\x18\x01 \x02(\x0b\x32\x1d.livekit.proto.FfiOwnedHandle\x12%\n\x04info\x18\x02 \x02(\x0b\x32\x17.livekit.proto.RoomInfo\"E\n\x14ParticipantConnected\x12-\n\x04info\x18\x01 \x02(\x0b\x32\x1f.livekit.proto.OwnedParticipant\"7\n\x17ParticipantDisconnected\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\"(\n\x13LocalTrackPublished\x12\x11\n\ttrack_sid\x18\x01 \x02(\t\"0\n\x15LocalTrackUnpublished\x12\x17\n\x0fpublication_sid\x18\x01 \x02(\t\")\n\x14LocalTrackSubscribed\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"i\n\x0eTrackPublished\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x39\n\x0bpublication\x18\x02 \x02(\x0b\x32$.livekit.proto.OwnedTrackPublication\"I\n\x10TrackUnpublished\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x17\n\x0fpublication_sid\x18\x02 \x02(\t\"Y\n\x0fTrackSubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12(\n\x05track\x18\x02 \x02(\x0b\x32\x19.livekit.proto.OwnedTrack\"D\n\x11TrackUnsubscribed\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"Y\n\x17TrackSubscriptionFailed\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\x12\r\n\x05\x65rror\x18\x03 \x02(\t\"=\n\nTrackMuted\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"?\n\x0cTrackUnmuted\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x11\n\ttrack_sid\x18\x02 \x02(\t\"_\n\x10\x45\x32\x65\x65StateChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12-\n\x05state\x18\x02 \x02(\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 \x02(\t\"\x1d\n\x0eRoomSidChanged\x12\x0b\n\x03sid\x18\x01 \x02(\t\"L\n\x1aParticipantMetadataChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x10\n\x08metadata\x18\x02 \x02(\t\"\xac\x01\n\x1cParticipantAttributesChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x32\n\nattributes\x18\x02 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\x12:\n\x12\x63hanged_attributes\x18\x03 \x03(\x0b\x32\x1e.livekit.proto.AttributesEntry\"D\n\x16ParticipantNameChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x0c\n\x04name\x18\x02 \x02(\t\"k\n\x18\x43onnectionQualityChanged\x12\x1c\n\x14participant_identity\x18\x01 \x02(\t\x12\x31\n\x07quality\x18\x02 \x02(\x0e\x32 .livekit.proto.ConnectionQuality\"E\n\nUserPacket\x12(\n\x04\x64\x61ta\x18\x01 \x02(\x0b\x32\x1a.livekit.proto.OwnedBuffer\x12\r\n\x05topic\x18\x02 \x01(\t\"y\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\x0f\n\x07message\x18\x03 \x02(\t\x12\x16\n\x0e\x65\x64it_timestamp\x18\x04 \x01(\x03\x12\x0f\n\x07\x64\x65leted\x18\x05 \x01(\x08\x12\x11\n\tgenerated\x18\x06 \x01(\x08\"`\n\x13\x43hatMessageReceived\x12+\n\x07message\x18\x01 \x02(\x0b\x32\x1a.livekit.proto.ChatMessage\x12\x1c\n\x14participant_identity\x18\x02 \x02(\t\"&\n\x07SipDTMF\x12\x0c\n\x04\x63ode\x18\x01 \x02(\r\x12\r\n\x05\x64igit\x18\x02 \x01(\t\"\xbf\x01\n\x12\x44\x61taPacketReceived\x12+\n\x04kind\x18\x01 \x02(\x0e\x32\x1d.livekit.proto.DataPacketKind\x12\x1c\n\x14participant_identity\x18\x02 \x02(\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\"\x7f\n\x15TranscriptionReceived\x12\x1c\n\x14participant_identity\x18\x01 \x01(\t\x12\x11\n\ttrack_sid\x18\x02 \x01(\t\x12\x35\n\x08segments\x18\x03 \x03(\x0b\x32#.livekit.proto.TranscriptionSegment\"G\n\x16\x43onnectionStateChanged\x12-\n\x05state\x18\x01 \x02(\x0e\x32\x1e.livekit.proto.ConnectionState\"\x0b\n\tConnected\"?\n\x0c\x44isconnected\x12/\n\x06reason\x18\x01 \x02(\x0e\x32\x1f.livekit.proto.DisconnectReason\"\x0e\n\x0cReconnecting\"\r\n\x0bReconnected\"\t\n\x07RoomEOS\"\x92\x06\n\nDataStream\x1a\xaa\x01\n\nTextHeader\x12?\n\x0eoperation_type\x18\x01 \x02(\x0e\x32\'.livekit.proto.DataStream.OperationType\x12\x0f\n\x07version\x18\x02 \x02(\x05\x12\x1a\n\x12reply_to_stream_id\x18\x03 \x02(\t\x12\x1b\n\x13\x61ttached_stream_ids\x18\x04 \x03(\t\x12\x11\n\tgenerated\x18\x05 \x02(\x08\x1a\x1f\n\nFileHeader\x12\x11\n\tfile_name\x18\x01 \x02(\t\x1a\x81\x03\n\x06Header\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\x12\r\n\x05topic\x18\x03 \x02(\t\x12\x11\n\tmime_type\x18\x04 \x02(\t\x12\x14\n\x0ctotal_length\x18\x05 \x01(\x04\x12\x14\n\x0ctotal_chunks\x18\x06 \x01(\x04\x12\x44\n\nextensions\x18\x07 \x03(\x0b\x32\x30.livekit.proto.DataStream.Header.ExtensionsEntry\x12;\n\x0btext_header\x18\x08 \x01(\x0b\x32$.livekit.proto.DataStream.TextHeaderH\x00\x12;\n\x0b\x66ile_header\x18\t \x01(\x0b\x32$.livekit.proto.DataStream.FileHeaderH\x00\x1a\x31\n\x0f\x45xtensionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x10\n\x0e\x63ontent_header\x1ao\n\x05\x43hunk\x12\x11\n\tstream_id\x18\x01 \x02(\t\x12\x13\n\x0b\x63hunk_index\x18\x02 \x02(\x04\x12\x0f\n\x07\x63ontent\x18\x03 \x02(\x0c\x12\x10\n\x08\x63omplete\x18\x04 \x02(\x08\x12\x0f\n\x07version\x18\x05 \x02(\x05\x12\n\n\x02iv\x18\x06 \x01(\x0c\"A\n\rOperationType\x12\n\n\x06\x43REATE\x10\x00\x12\n\n\x06UPDATE\x10\x01\x12\n\n\x06\x44\x45LETE\x10\x02\x12\x0c\n\x08REACTION\x10\x03*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.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'room_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_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']._loaded_options = None _globals['_PUBLISHDATAREQUEST'].fields_by_name['destination_sids']._serialized_options = b'\030\001' - _globals['_ICETRANSPORTTYPE']._serialized_start=9177 - _globals['_ICETRANSPORTTYPE']._serialized_end=9257 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=9259 - _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=9326 - _globals['_CONNECTIONQUALITY']._serialized_start=9328 - _globals['_CONNECTIONQUALITY']._serialized_end=9424 - _globals['_CONNECTIONSTATE']._serialized_start=9426 - _globals['_CONNECTIONSTATE']._serialized_end=9509 - _globals['_DATAPACKETKIND']._serialized_start=9511 - _globals['_DATAPACKETKIND']._serialized_end=9562 - _globals['_DISCONNECTREASON']._serialized_start=9565 - _globals['_DISCONNECTREASON']._serialized_end=9801 + _globals['_DATASTREAM_HEADER_EXTENSIONSENTRY']._loaded_options = None + _globals['_DATASTREAM_HEADER_EXTENSIONSENTRY']._serialized_options = b'8\001' + _globals['_ICETRANSPORTTYPE']._serialized_start=10082 + _globals['_ICETRANSPORTTYPE']._serialized_end=10162 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_start=10164 + _globals['_CONTINUALGATHERINGPOLICY']._serialized_end=10231 + _globals['_CONNECTIONQUALITY']._serialized_start=10233 + _globals['_CONNECTIONQUALITY']._serialized_end=10329 + _globals['_CONNECTIONSTATE']._serialized_start=10331 + _globals['_CONNECTIONSTATE']._serialized_end=10414 + _globals['_DATAPACKETKIND']._serialized_start=10416 + _globals['_DATAPACKETKIND']._serialized_end=10467 _globals['_CONNECTREQUEST']._serialized_start=119 _globals['_CONNECTREQUEST']._serialized_end=208 _globals['_CONNECTRESPONSE']._serialized_start=210 @@ -147,73 +147,87 @@ _globals['_OWNEDBUFFER']._serialized_start=4699 _globals['_OWNEDBUFFER']._serialized_end=4800 _globals['_ROOMEVENT']._serialized_start=4803 - _globals['_ROOMEVENT']._serialized_end=6688 - _globals['_ROOMINFO']._serialized_start=6690 - _globals['_ROOMINFO']._serialized_end=6745 - _globals['_OWNEDROOM']._serialized_start=6747 - _globals['_OWNEDROOM']._serialized_end=6844 - _globals['_PARTICIPANTCONNECTED']._serialized_start=6846 - _globals['_PARTICIPANTCONNECTED']._serialized_end=6915 - _globals['_PARTICIPANTDISCONNECTED']._serialized_start=6917 - _globals['_PARTICIPANTDISCONNECTED']._serialized_end=6972 - _globals['_LOCALTRACKPUBLISHED']._serialized_start=6974 - _globals['_LOCALTRACKPUBLISHED']._serialized_end=7014 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7016 - _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7064 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7066 - _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7107 - _globals['_TRACKPUBLISHED']._serialized_start=7109 - _globals['_TRACKPUBLISHED']._serialized_end=7214 - _globals['_TRACKUNPUBLISHED']._serialized_start=7216 - _globals['_TRACKUNPUBLISHED']._serialized_end=7289 - _globals['_TRACKSUBSCRIBED']._serialized_start=7291 - _globals['_TRACKSUBSCRIBED']._serialized_end=7380 - _globals['_TRACKUNSUBSCRIBED']._serialized_start=7382 - _globals['_TRACKUNSUBSCRIBED']._serialized_end=7450 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=7452 - _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=7541 - _globals['_TRACKMUTED']._serialized_start=7543 - _globals['_TRACKMUTED']._serialized_end=7604 - _globals['_TRACKUNMUTED']._serialized_start=7606 - _globals['_TRACKUNMUTED']._serialized_end=7669 - _globals['_E2EESTATECHANGED']._serialized_start=7671 - _globals['_E2EESTATECHANGED']._serialized_end=7766 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=7768 - _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=7823 - _globals['_ROOMMETADATACHANGED']._serialized_start=7825 - _globals['_ROOMMETADATACHANGED']._serialized_end=7864 - _globals['_ROOMSIDCHANGED']._serialized_start=7866 - _globals['_ROOMSIDCHANGED']._serialized_end=7895 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=7897 - _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=7973 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=7976 - _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8148 - _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8150 - _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8218 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8220 - _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8327 - _globals['_USERPACKET']._serialized_start=8329 - _globals['_USERPACKET']._serialized_end=8398 - _globals['_CHATMESSAGE']._serialized_start=8400 - _globals['_CHATMESSAGE']._serialized_end=8521 - _globals['_CHATMESSAGERECEIVED']._serialized_start=8523 - _globals['_CHATMESSAGERECEIVED']._serialized_end=8619 - _globals['_SIPDTMF']._serialized_start=8621 - _globals['_SIPDTMF']._serialized_end=8659 - _globals['_DATAPACKETRECEIVED']._serialized_start=8662 - _globals['_DATAPACKETRECEIVED']._serialized_end=8853 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=8855 - _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=8982 - _globals['_CONNECTIONSTATECHANGED']._serialized_start=8984 - _globals['_CONNECTIONSTATECHANGED']._serialized_end=9055 - _globals['_CONNECTED']._serialized_start=9057 - _globals['_CONNECTED']._serialized_end=9068 - _globals['_DISCONNECTED']._serialized_start=9070 - _globals['_DISCONNECTED']._serialized_end=9133 - _globals['_RECONNECTING']._serialized_start=9135 - _globals['_RECONNECTING']._serialized_end=9149 - _globals['_RECONNECTED']._serialized_start=9151 - _globals['_RECONNECTED']._serialized_end=9164 - _globals['_ROOMEOS']._serialized_start=9166 - _globals['_ROOMEOS']._serialized_end=9175 + _globals['_ROOMEVENT']._serialized_end=6804 + _globals['_ROOMINFO']._serialized_start=6806 + _globals['_ROOMINFO']._serialized_end=6861 + _globals['_OWNEDROOM']._serialized_start=6863 + _globals['_OWNEDROOM']._serialized_end=6960 + _globals['_PARTICIPANTCONNECTED']._serialized_start=6962 + _globals['_PARTICIPANTCONNECTED']._serialized_end=7031 + _globals['_PARTICIPANTDISCONNECTED']._serialized_start=7033 + _globals['_PARTICIPANTDISCONNECTED']._serialized_end=7088 + _globals['_LOCALTRACKPUBLISHED']._serialized_start=7090 + _globals['_LOCALTRACKPUBLISHED']._serialized_end=7130 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_start=7132 + _globals['_LOCALTRACKUNPUBLISHED']._serialized_end=7180 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_start=7182 + _globals['_LOCALTRACKSUBSCRIBED']._serialized_end=7223 + _globals['_TRACKPUBLISHED']._serialized_start=7225 + _globals['_TRACKPUBLISHED']._serialized_end=7330 + _globals['_TRACKUNPUBLISHED']._serialized_start=7332 + _globals['_TRACKUNPUBLISHED']._serialized_end=7405 + _globals['_TRACKSUBSCRIBED']._serialized_start=7407 + _globals['_TRACKSUBSCRIBED']._serialized_end=7496 + _globals['_TRACKUNSUBSCRIBED']._serialized_start=7498 + _globals['_TRACKUNSUBSCRIBED']._serialized_end=7566 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_start=7568 + _globals['_TRACKSUBSCRIPTIONFAILED']._serialized_end=7657 + _globals['_TRACKMUTED']._serialized_start=7659 + _globals['_TRACKMUTED']._serialized_end=7720 + _globals['_TRACKUNMUTED']._serialized_start=7722 + _globals['_TRACKUNMUTED']._serialized_end=7785 + _globals['_E2EESTATECHANGED']._serialized_start=7787 + _globals['_E2EESTATECHANGED']._serialized_end=7882 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_start=7884 + _globals['_ACTIVESPEAKERSCHANGED']._serialized_end=7939 + _globals['_ROOMMETADATACHANGED']._serialized_start=7941 + _globals['_ROOMMETADATACHANGED']._serialized_end=7980 + _globals['_ROOMSIDCHANGED']._serialized_start=7982 + _globals['_ROOMSIDCHANGED']._serialized_end=8011 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_start=8013 + _globals['_PARTICIPANTMETADATACHANGED']._serialized_end=8089 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_start=8092 + _globals['_PARTICIPANTATTRIBUTESCHANGED']._serialized_end=8264 + _globals['_PARTICIPANTNAMECHANGED']._serialized_start=8266 + _globals['_PARTICIPANTNAMECHANGED']._serialized_end=8334 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_start=8336 + _globals['_CONNECTIONQUALITYCHANGED']._serialized_end=8443 + _globals['_USERPACKET']._serialized_start=8445 + _globals['_USERPACKET']._serialized_end=8514 + _globals['_CHATMESSAGE']._serialized_start=8516 + _globals['_CHATMESSAGE']._serialized_end=8637 + _globals['_CHATMESSAGERECEIVED']._serialized_start=8639 + _globals['_CHATMESSAGERECEIVED']._serialized_end=8735 + _globals['_SIPDTMF']._serialized_start=8737 + _globals['_SIPDTMF']._serialized_end=8775 + _globals['_DATAPACKETRECEIVED']._serialized_start=8778 + _globals['_DATAPACKETRECEIVED']._serialized_end=8969 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_start=8971 + _globals['_TRANSCRIPTIONRECEIVED']._serialized_end=9098 + _globals['_CONNECTIONSTATECHANGED']._serialized_start=9100 + _globals['_CONNECTIONSTATECHANGED']._serialized_end=9171 + _globals['_CONNECTED']._serialized_start=9173 + _globals['_CONNECTED']._serialized_end=9184 + _globals['_DISCONNECTED']._serialized_start=9186 + _globals['_DISCONNECTED']._serialized_end=9249 + _globals['_RECONNECTING']._serialized_start=9251 + _globals['_RECONNECTING']._serialized_end=9265 + _globals['_RECONNECTED']._serialized_start=9267 + _globals['_RECONNECTED']._serialized_end=9280 + _globals['_ROOMEOS']._serialized_start=9282 + _globals['_ROOMEOS']._serialized_end=9291 + _globals['_DATASTREAM']._serialized_start=9294 + _globals['_DATASTREAM']._serialized_end=10080 + _globals['_DATASTREAM_TEXTHEADER']._serialized_start=9309 + _globals['_DATASTREAM_TEXTHEADER']._serialized_end=9479 + _globals['_DATASTREAM_FILEHEADER']._serialized_start=9481 + _globals['_DATASTREAM_FILEHEADER']._serialized_end=9512 + _globals['_DATASTREAM_HEADER']._serialized_start=9515 + _globals['_DATASTREAM_HEADER']._serialized_end=9900 + _globals['_DATASTREAM_HEADER_EXTENSIONSENTRY']._serialized_start=9833 + _globals['_DATASTREAM_HEADER_EXTENSIONSENTRY']._serialized_end=9882 + _globals['_DATASTREAM_CHUNK']._serialized_start=9902 + _globals['_DATASTREAM_CHUNK']._serialized_end=10013 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_start=10015 + _globals['_DATASTREAM_OPERATIONTYPE']._serialized_end=10080 # @@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 fd5f7859..f78a2403 100644 --- a/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/room_pb2.pyi @@ -124,59 +124,6 @@ KIND_LOSSY: DataPacketKind.ValueType # 0 KIND_RELIABLE: DataPacketKind.ValueType # 1 global___DataPacketKind = DataPacketKind -class _DisconnectReason: - ValueType = typing.NewType("ValueType", builtins.int) - V: typing_extensions.TypeAlias = ValueType - -class _DisconnectReasonEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_DisconnectReason.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNKNOWN_REASON: _DisconnectReason.ValueType # 0 - CLIENT_INITIATED: _DisconnectReason.ValueType # 1 - """the client initiated the disconnect""" - DUPLICATE_IDENTITY: _DisconnectReason.ValueType # 2 - """another participant with the same identity has joined the room""" - SERVER_SHUTDOWN: _DisconnectReason.ValueType # 3 - """the server instance is shutting down""" - PARTICIPANT_REMOVED: _DisconnectReason.ValueType # 4 - """RoomService.RemoveParticipant was called""" - ROOM_DELETED: _DisconnectReason.ValueType # 5 - """RoomService.DeleteRoom was called""" - STATE_MISMATCH: _DisconnectReason.ValueType # 6 - """the client is attempting to resume a session, but server is not aware of it""" - JOIN_FAILURE: _DisconnectReason.ValueType # 7 - """client was unable to connect fully""" - MIGRATION: _DisconnectReason.ValueType # 8 - """Cloud-only, the server requested Participant to migrate the connection elsewhere""" - SIGNAL_CLOSE: _DisconnectReason.ValueType # 9 - """the signal websocket was closed unexpectedly""" - ROOM_CLOSED: _DisconnectReason.ValueType # 10 - """the room was closed, due to all Standard and Ingress participants having left""" - -class DisconnectReason(_DisconnectReason, metaclass=_DisconnectReasonEnumTypeWrapper): ... - -UNKNOWN_REASON: DisconnectReason.ValueType # 0 -CLIENT_INITIATED: DisconnectReason.ValueType # 1 -"""the client initiated the disconnect""" -DUPLICATE_IDENTITY: DisconnectReason.ValueType # 2 -"""another participant with the same identity has joined the room""" -SERVER_SHUTDOWN: DisconnectReason.ValueType # 3 -"""the server instance is shutting down""" -PARTICIPANT_REMOVED: DisconnectReason.ValueType # 4 -"""RoomService.RemoveParticipant was called""" -ROOM_DELETED: DisconnectReason.ValueType # 5 -"""RoomService.DeleteRoom was called""" -STATE_MISMATCH: DisconnectReason.ValueType # 6 -"""the client is attempting to resume a session, but server is not aware of it""" -JOIN_FAILURE: DisconnectReason.ValueType # 7 -"""client was unable to connect fully""" -MIGRATION: DisconnectReason.ValueType # 8 -"""Cloud-only, the server requested Participant to migrate the connection elsewhere""" -SIGNAL_CLOSE: DisconnectReason.ValueType # 9 -"""the signal websocket was closed unexpectedly""" -ROOM_CLOSED: DisconnectReason.ValueType # 10 -"""the room was closed, due to all Standard and Ingress participants having left""" -global___DisconnectReason = DisconnectReason - @typing.final class ConnectRequest(google.protobuf.message.Message): """Connect to a new LiveKit room""" @@ -1317,6 +1264,8 @@ class RoomEvent(google.protobuf.message.Message): DATA_PACKET_RECEIVED_FIELD_NUMBER: builtins.int TRANSCRIPTION_RECEIVED_FIELD_NUMBER: builtins.int CHAT_MESSAGE_FIELD_NUMBER: builtins.int + STREAM_HEADER_FIELD_NUMBER: builtins.int + STREAM_CHUNK_FIELD_NUMBER: builtins.int room_handle: builtins.int @property def participant_connected(self) -> global___ParticipantConnected: ... @@ -1378,6 +1327,10 @@ class RoomEvent(google.protobuf.message.Message): def transcription_received(self) -> global___TranscriptionReceived: ... @property def chat_message(self) -> global___ChatMessageReceived: ... + @property + def stream_header(self) -> global___DataStream.Header: ... + @property + def stream_chunk(self) -> global___DataStream.Chunk: ... def __init__( self, *, @@ -1410,10 +1363,12 @@ class RoomEvent(google.protobuf.message.Message): data_packet_received: global___DataPacketReceived | None = ..., transcription_received: global___TranscriptionReceived | None = ..., chat_message: global___ChatMessageReceived | None = ..., + stream_header: global___DataStream.Header | None = ..., + stream_chunk: global___DataStream.Chunk | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["active_speakers_changed", b"active_speakers_changed", "chat_message", b"chat_message", "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_subscribed", b"local_track_subscribed", "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"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["active_speakers_changed", b"active_speakers_changed", "chat_message", b"chat_message", "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_subscribed", b"local_track_subscribed", "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.Literal["message", b"message"]) -> typing.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "local_track_subscribed", "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", "chat_message"] | None: ... + def HasField(self, field_name: typing.Literal["active_speakers_changed", b"active_speakers_changed", "chat_message", b"chat_message", "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_subscribed", b"local_track_subscribed", "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", "stream_chunk", b"stream_chunk", "stream_header", b"stream_header", "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.Literal["active_speakers_changed", b"active_speakers_changed", "chat_message", b"chat_message", "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_subscribed", b"local_track_subscribed", "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", "stream_chunk", b"stream_chunk", "stream_header", b"stream_header", "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.Literal["message", b"message"]) -> typing.Literal["participant_connected", "participant_disconnected", "local_track_published", "local_track_unpublished", "local_track_subscribed", "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", "chat_message", "stream_header", "stream_chunk"] | None: ... global___RoomEvent = RoomEvent @@ -2009,11 +1964,11 @@ class Disconnected(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor REASON_FIELD_NUMBER: builtins.int - reason: global___DisconnectReason.ValueType + reason: participant_pb2.DisconnectReason.ValueType def __init__( self, *, - reason: global___DisconnectReason.ValueType | None = ..., + reason: participant_pb2.DisconnectReason.ValueType | None = ..., ) -> None: ... def HasField(self, field_name: typing.Literal["reason", b"reason"]) -> builtins.bool: ... def ClearField(self, field_name: typing.Literal["reason", b"reason"]) -> None: ... @@ -2049,3 +2004,184 @@ class RoomEOS(google.protobuf.message.Message): ) -> None: ... global___RoomEOS = RoomEOS + +@typing.final +class DataStream(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _OperationType: + ValueType = typing.NewType("ValueType", builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _OperationTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DataStream._OperationType.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + CREATE: DataStream._OperationType.ValueType # 0 + UPDATE: DataStream._OperationType.ValueType # 1 + DELETE: DataStream._OperationType.ValueType # 2 + REACTION: DataStream._OperationType.ValueType # 3 + + class OperationType(_OperationType, metaclass=_OperationTypeEnumTypeWrapper): + """enum for operation types (specific to TextHeader)""" + + CREATE: DataStream.OperationType.ValueType # 0 + UPDATE: DataStream.OperationType.ValueType # 1 + DELETE: DataStream.OperationType.ValueType # 2 + REACTION: DataStream.OperationType.ValueType # 3 + + @typing.final + class TextHeader(google.protobuf.message.Message): + """header properties specific to text streams""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + OPERATION_TYPE_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + REPLY_TO_STREAM_ID_FIELD_NUMBER: builtins.int + ATTACHED_STREAM_IDS_FIELD_NUMBER: builtins.int + GENERATED_FIELD_NUMBER: builtins.int + operation_type: global___DataStream.OperationType.ValueType + version: builtins.int + """Optional: Version for updates/edits""" + reply_to_stream_id: builtins.str + """Optional: Reply to specific message""" + generated: builtins.bool + """true if the text has been generated by an agent from a participant's audio transcription""" + @property + def attached_stream_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + """file attachments for text streams""" + + def __init__( + self, + *, + operation_type: global___DataStream.OperationType.ValueType | None = ..., + version: builtins.int | None = ..., + reply_to_stream_id: builtins.str | None = ..., + attached_stream_ids: collections.abc.Iterable[builtins.str] | None = ..., + generated: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["generated", b"generated", "operation_type", b"operation_type", "reply_to_stream_id", b"reply_to_stream_id", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["attached_stream_ids", b"attached_stream_ids", "generated", b"generated", "operation_type", b"operation_type", "reply_to_stream_id", b"reply_to_stream_id", "version", b"version"]) -> None: ... + + @typing.final + class FileHeader(google.protobuf.message.Message): + """header properties specific to file or image streams""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + FILE_NAME_FIELD_NUMBER: builtins.int + file_name: builtins.str + """name of the file""" + def __init__( + self, + *, + file_name: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["file_name", b"file_name"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["file_name", b"file_name"]) -> None: ... + + @typing.final + class Header(google.protobuf.message.Message): + """main DataStream.Header that contains a oneof for specific headers""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + @typing.final + class ExtensionsEntry(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 | None = ..., + value: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + + STREAM_ID_FIELD_NUMBER: builtins.int + TIMESTAMP_FIELD_NUMBER: builtins.int + TOPIC_FIELD_NUMBER: builtins.int + MIME_TYPE_FIELD_NUMBER: builtins.int + TOTAL_LENGTH_FIELD_NUMBER: builtins.int + TOTAL_CHUNKS_FIELD_NUMBER: builtins.int + EXTENSIONS_FIELD_NUMBER: builtins.int + TEXT_HEADER_FIELD_NUMBER: builtins.int + FILE_HEADER_FIELD_NUMBER: builtins.int + stream_id: builtins.str + """unique identifier for this data stream""" + timestamp: builtins.int + """using int64 for Unix timestamp""" + topic: builtins.str + mime_type: builtins.str + total_length: builtins.int + """only populated for finite streams, if it's a stream of unknown size this stays empty""" + total_chunks: builtins.int + """only populated for finite streams, if it's a stream of unknown size this stays empty""" + @property + def extensions(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: + """user defined extensions map that can carry additional info""" + + @property + def text_header(self) -> global___DataStream.TextHeader: ... + @property + def file_header(self) -> global___DataStream.FileHeader: ... + def __init__( + self, + *, + stream_id: builtins.str | None = ..., + timestamp: builtins.int | None = ..., + topic: builtins.str | None = ..., + mime_type: builtins.str | None = ..., + total_length: builtins.int | None = ..., + total_chunks: builtins.int | None = ..., + extensions: collections.abc.Mapping[builtins.str, builtins.str] | None = ..., + text_header: global___DataStream.TextHeader | None = ..., + file_header: global___DataStream.FileHeader | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["content_header", b"content_header", "file_header", b"file_header", "mime_type", b"mime_type", "stream_id", b"stream_id", "text_header", b"text_header", "timestamp", b"timestamp", "topic", b"topic", "total_chunks", b"total_chunks", "total_length", b"total_length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["content_header", b"content_header", "extensions", b"extensions", "file_header", b"file_header", "mime_type", b"mime_type", "stream_id", b"stream_id", "text_header", b"text_header", "timestamp", b"timestamp", "topic", b"topic", "total_chunks", b"total_chunks", "total_length", b"total_length"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["content_header", b"content_header"]) -> typing.Literal["text_header", "file_header"] | None: ... + + @typing.final + class Chunk(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + STREAM_ID_FIELD_NUMBER: builtins.int + CHUNK_INDEX_FIELD_NUMBER: builtins.int + CONTENT_FIELD_NUMBER: builtins.int + COMPLETE_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int + IV_FIELD_NUMBER: builtins.int + stream_id: builtins.str + """unique identifier for this data stream to map it to the correct header""" + chunk_index: builtins.int + content: builtins.bytes + """content as binary (bytes)""" + complete: builtins.bool + """true only if this is the last chunk of this stream - can also be sent with empty content""" + version: builtins.int + """a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced""" + iv: builtins.bytes + """optional, initialization vector for AES-GCM encryption""" + def __init__( + self, + *, + stream_id: builtins.str | None = ..., + chunk_index: builtins.int | None = ..., + content: builtins.bytes | None = ..., + complete: builtins.bool | None = ..., + version: builtins.int | None = ..., + iv: builtins.bytes | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["chunk_index", b"chunk_index", "complete", b"complete", "content", b"content", "iv", b"iv", "stream_id", b"stream_id", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["chunk_index", b"chunk_index", "complete", b"complete", "content", b"content", "iv", b"iv", "stream_id", b"stream_id", "version", b"version"]) -> None: ... + + def __init__( + self, + ) -> None: ... + +global___DataStream = DataStream diff --git a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py index eeb1f9ff..1b6302cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/rpc_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: rpc.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -19,8 +19,8 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'rpc_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_RPCERROR']._serialized_start=28 _globals['_RPCERROR']._serialized_end=83 diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py index 149afabb..2cbdb1cd 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: stats.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -14,106 +14,110 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bstats.proto\x12\rlivekit.proto\"\xd9\x17\n\x08RtcStats\x12.\n\x05\x63odec\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.RtcStats.CodecH\x00\x12\x39\n\x0binbound_rtp\x18\x04 \x01(\x0b\x32\".livekit.proto.RtcStats.InboundRtpH\x00\x12;\n\x0coutbound_rtp\x18\x05 \x01(\x0b\x32#.livekit.proto.RtcStats.OutboundRtpH\x00\x12\x46\n\x12remote_inbound_rtp\x18\x06 \x01(\x0b\x32(.livekit.proto.RtcStats.RemoteInboundRtpH\x00\x12H\n\x13remote_outbound_rtp\x18\x07 \x01(\x0b\x32).livekit.proto.RtcStats.RemoteOutboundRtpH\x00\x12;\n\x0cmedia_source\x18\x08 \x01(\x0b\x32#.livekit.proto.RtcStats.MediaSourceH\x00\x12=\n\rmedia_playout\x18\t \x01(\x0b\x32$.livekit.proto.RtcStats.MediaPlayoutH\x00\x12\x41\n\x0fpeer_connection\x18\n \x01(\x0b\x32&.livekit.proto.RtcStats.PeerConnectionH\x00\x12;\n\x0c\x64\x61ta_channel\x18\x0b \x01(\x0b\x32#.livekit.proto.RtcStats.DataChannelH\x00\x12\x36\n\ttransport\x18\x0c \x01(\x0b\x32!.livekit.proto.RtcStats.TransportH\x00\x12?\n\x0e\x63\x61ndidate_pair\x18\r \x01(\x0b\x32%.livekit.proto.RtcStats.CandidatePairH\x00\x12\x41\n\x0flocal_candidate\x18\x0e \x01(\x0b\x32&.livekit.proto.RtcStats.LocalCandidateH\x00\x12\x43\n\x10remote_candidate\x18\x0f \x01(\x0b\x32\'.livekit.proto.RtcStats.RemoteCandidateH\x00\x12:\n\x0b\x63\x65rtificate\x18\x10 \x01(\x0b\x32#.livekit.proto.RtcStats.CertificateH\x00\x12.\n\x05track\x18\x11 \x01(\x0b\x32\x1d.livekit.proto.RtcStats.TrackH\x00\x1a[\n\x05\x43odec\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12(\n\x05\x63odec\x18\x02 \x02(\x0b\x32\x19.livekit.proto.CodecStats\x1a\xd5\x01\n\nInboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12\x37\n\x08received\x18\x03 \x02(\x0b\x32%.livekit.proto.ReceivedRtpStreamStats\x12\x35\n\x07inbound\x18\x04 \x02(\x0b\x32$.livekit.proto.InboundRtpStreamStats\x1a\xd0\x01\n\x0bOutboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12/\n\x04sent\x18\x03 \x02(\x0b\x32!.livekit.proto.SentRtpStreamStats\x12\x37\n\x08outbound\x18\x04 \x02(\x0b\x32%.livekit.proto.OutboundRtpStreamStats\x1a\xe8\x01\n\x10RemoteInboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12\x37\n\x08received\x18\x03 \x02(\x0b\x32%.livekit.proto.ReceivedRtpStreamStats\x12\x42\n\x0eremote_inbound\x18\x04 \x02(\x0b\x32*.livekit.proto.RemoteInboundRtpStreamStats\x1a\xe3\x01\n\x11RemoteOutboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12/\n\x04sent\x18\x03 \x02(\x0b\x32!.livekit.proto.SentRtpStreamStats\x12\x44\n\x0fremote_outbound\x18\x04 \x02(\x0b\x32+.livekit.proto.RemoteOutboundRtpStreamStats\x1a\xc8\x01\n\x0bMediaSource\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12/\n\x06source\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.MediaSourceStats\x12.\n\x05\x61udio\x18\x03 \x02(\x0b\x32\x1f.livekit.proto.AudioSourceStats\x12.\n\x05video\x18\x04 \x02(\x0b\x32\x1f.livekit.proto.VideoSourceStats\x1aq\n\x0cMediaPlayout\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x37\n\raudio_playout\x18\x02 \x02(\x0b\x32 .livekit.proto.AudioPlayoutStats\x1aj\n\x0ePeerConnection\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12.\n\x02pc\x18\x02 \x02(\x0b\x32\".livekit.proto.PeerConnectionStats\x1a\x64\n\x0b\x44\x61taChannel\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12+\n\x02\x64\x63\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataChannelStats\x1ag\n\tTransport\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x30\n\ttransport\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.TransportStats\x1at\n\rCandidatePair\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x39\n\x0e\x63\x61ndidate_pair\x18\x02 \x02(\x0b\x32!.livekit.proto.CandidatePairStats\x1ao\n\x0eLocalCandidate\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x33\n\tcandidate\x18\x02 \x02(\x0b\x32 .livekit.proto.IceCandidateStats\x1ap\n\x0fRemoteCandidate\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x33\n\tcandidate\x18\x02 \x02(\x0b\x32 .livekit.proto.IceCandidateStats\x1am\n\x0b\x43\x65rtificate\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x34\n\x0b\x63\x65rtificate\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.CertificateStats\x1a\x07\n\x05TrackB\x07\n\x05stats\"-\n\x0cRtcStatsData\x12\n\n\x02id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\"\x88\x01\n\nCodecStats\x12\x14\n\x0cpayload_type\x18\x01 \x02(\r\x12\x14\n\x0ctransport_id\x18\x02 \x02(\t\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\x12\n\nclock_rate\x18\x04 \x02(\r\x12\x10\n\x08\x63hannels\x18\x05 \x02(\r\x12\x15\n\rsdp_fmtp_line\x18\x06 \x02(\t\"T\n\x0eRtpStreamStats\x12\x0c\n\x04ssrc\x18\x01 \x02(\r\x12\x0c\n\x04kind\x18\x02 \x02(\t\x12\x14\n\x0ctransport_id\x18\x03 \x02(\t\x12\x10\n\x08\x63odec_id\x18\x04 \x02(\t\"X\n\x16ReceivedRtpStreamStats\x12\x18\n\x10packets_received\x18\x01 \x02(\x04\x12\x14\n\x0cpackets_lost\x18\x02 \x02(\x03\x12\x0e\n\x06jitter\x18\x03 \x02(\x01\"\x82\x0c\n\x15InboundRtpStreamStats\x12\x18\n\x10track_identifier\x18\x01 \x02(\t\x12\x0b\n\x03mid\x18\x02 \x02(\t\x12\x11\n\tremote_id\x18\x03 \x02(\t\x12\x16\n\x0e\x66rames_decoded\x18\x04 \x02(\r\x12\x1a\n\x12key_frames_decoded\x18\x05 \x02(\r\x12\x17\n\x0f\x66rames_rendered\x18\x06 \x02(\r\x12\x16\n\x0e\x66rames_dropped\x18\x07 \x02(\r\x12\x13\n\x0b\x66rame_width\x18\x08 \x02(\r\x12\x14\n\x0c\x66rame_height\x18\t \x02(\r\x12\x19\n\x11\x66rames_per_second\x18\n \x02(\x01\x12\x0e\n\x06qp_sum\x18\x0b \x02(\x04\x12\x19\n\x11total_decode_time\x18\x0c \x02(\x01\x12\x1f\n\x17total_inter_frame_delay\x18\r \x02(\x01\x12\'\n\x1ftotal_squared_inter_frame_delay\x18\x0e \x02(\x01\x12\x13\n\x0bpause_count\x18\x0f \x02(\r\x12\x1c\n\x14total_pause_duration\x18\x10 \x02(\x01\x12\x14\n\x0c\x66reeze_count\x18\x11 \x02(\r\x12\x1d\n\x15total_freeze_duration\x18\x12 \x02(\x01\x12&\n\x1elast_packet_received_timestamp\x18\x13 \x02(\x01\x12\x1d\n\x15header_bytes_received\x18\x14 \x02(\x04\x12\x19\n\x11packets_discarded\x18\x15 \x02(\x04\x12\x1a\n\x12\x66\x65\x63_bytes_received\x18\x16 \x02(\x04\x12\x1c\n\x14\x66\x65\x63_packets_received\x18\x17 \x02(\x04\x12\x1d\n\x15\x66\x65\x63_packets_discarded\x18\x18 \x02(\x04\x12\x16\n\x0e\x62ytes_received\x18\x19 \x02(\x04\x12\x12\n\nnack_count\x18\x1a \x02(\r\x12\x11\n\tfir_count\x18\x1b \x02(\r\x12\x11\n\tpli_count\x18\x1c \x02(\r\x12\x1e\n\x16total_processing_delay\x18\x1d \x02(\x01\x12#\n\x1b\x65stimated_playout_timestamp\x18\x1e \x02(\x01\x12\x1b\n\x13jitter_buffer_delay\x18\x1f \x02(\x01\x12\"\n\x1ajitter_buffer_target_delay\x18 \x02(\x01\x12#\n\x1bjitter_buffer_emitted_count\x18! \x02(\x04\x12#\n\x1bjitter_buffer_minimum_delay\x18\" \x02(\x01\x12\x1e\n\x16total_samples_received\x18# \x02(\x04\x12\x19\n\x11\x63oncealed_samples\x18$ \x02(\x04\x12 \n\x18silent_concealed_samples\x18% \x02(\x04\x12\x1a\n\x12\x63oncealment_events\x18& \x02(\x04\x12)\n!inserted_samples_for_deceleration\x18\' \x02(\x04\x12(\n removed_samples_for_acceleration\x18( \x02(\x04\x12\x13\n\x0b\x61udio_level\x18) \x02(\x01\x12\x1a\n\x12total_audio_energy\x18* \x02(\x01\x12\x1e\n\x16total_samples_duration\x18+ \x02(\x01\x12\x17\n\x0f\x66rames_received\x18, \x02(\x04\x12\x1e\n\x16\x64\x65\x63oder_implementation\x18- \x02(\t\x12\x12\n\nplayout_id\x18. \x02(\t\x12\x1f\n\x17power_efficient_decoder\x18/ \x02(\x08\x12.\n&frames_assembled_from_multiple_packets\x18\x30 \x02(\x04\x12\x1b\n\x13total_assembly_time\x18\x31 \x02(\x01\x12&\n\x1eretransmitted_packets_received\x18\x32 \x02(\x04\x12$\n\x1cretransmitted_bytes_received\x18\x33 \x02(\x04\x12\x10\n\x08rtx_ssrc\x18\x34 \x02(\r\x12\x10\n\x08\x66\x65\x63_ssrc\x18\x35 \x02(\r\">\n\x12SentRtpStreamStats\x12\x14\n\x0cpackets_sent\x18\x01 \x02(\x04\x12\x12\n\nbytes_sent\x18\x02 \x02(\x04\"\xd1\x07\n\x16OutboundRtpStreamStats\x12\x0b\n\x03mid\x18\x01 \x02(\t\x12\x17\n\x0fmedia_source_id\x18\x02 \x02(\t\x12\x11\n\tremote_id\x18\x03 \x02(\t\x12\x0b\n\x03rid\x18\x04 \x02(\t\x12\x19\n\x11header_bytes_sent\x18\x05 \x02(\x04\x12\"\n\x1aretransmitted_packets_sent\x18\x06 \x02(\x04\x12 \n\x18retransmitted_bytes_sent\x18\x07 \x02(\x04\x12\x10\n\x08rtx_ssrc\x18\x08 \x02(\r\x12\x16\n\x0etarget_bitrate\x18\t \x02(\x01\x12\"\n\x1atotal_encoded_bytes_target\x18\n \x02(\x04\x12\x13\n\x0b\x66rame_width\x18\x0b \x02(\r\x12\x14\n\x0c\x66rame_height\x18\x0c \x02(\r\x12\x19\n\x11\x66rames_per_second\x18\r \x02(\x01\x12\x13\n\x0b\x66rames_sent\x18\x0e \x02(\r\x12\x18\n\x10huge_frames_sent\x18\x0f \x02(\r\x12\x16\n\x0e\x66rames_encoded\x18\x10 \x02(\r\x12\x1a\n\x12key_frames_encoded\x18\x11 \x02(\r\x12\x0e\n\x06qp_sum\x18\x12 \x02(\x04\x12\x19\n\x11total_encode_time\x18\x13 \x02(\x01\x12\x1f\n\x17total_packet_send_delay\x18\x14 \x02(\x01\x12I\n\x19quality_limitation_reason\x18\x15 \x02(\x0e\x32&.livekit.proto.QualityLimitationReason\x12k\n\x1cquality_limitation_durations\x18\x16 \x03(\x0b\x32\x45.livekit.proto.OutboundRtpStreamStats.QualityLimitationDurationsEntry\x12-\n%quality_limitation_resolution_changes\x18\x17 \x02(\r\x12\x12\n\nnack_count\x18\x18 \x02(\r\x12\x11\n\tfir_count\x18\x19 \x02(\r\x12\x11\n\tpli_count\x18\x1a \x02(\r\x12\x1e\n\x16\x65ncoder_implementation\x18\x1b \x02(\t\x12\x1f\n\x17power_efficient_encoder\x18\x1c \x02(\x08\x12\x0e\n\x06\x61\x63tive\x18\x1d \x02(\x08\x12\x18\n\x10scalability_mode\x18\x1e \x02(\t\x1a\x41\n\x1fQualityLimitationDurationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"\xa4\x01\n\x1bRemoteInboundRtpStreamStats\x12\x10\n\x08local_id\x18\x01 \x02(\t\x12\x17\n\x0fround_trip_time\x18\x02 \x02(\x01\x12\x1d\n\x15total_round_trip_time\x18\x03 \x02(\x01\x12\x15\n\rfraction_lost\x18\x04 \x02(\x01\x12$\n\x1cround_trip_time_measurements\x18\x05 \x02(\x04\"\xbe\x01\n\x1cRemoteOutboundRtpStreamStats\x12\x10\n\x08local_id\x18\x01 \x02(\t\x12\x18\n\x10remote_timestamp\x18\x02 \x02(\x01\x12\x14\n\x0creports_sent\x18\x03 \x02(\x04\x12\x17\n\x0fround_trip_time\x18\x04 \x02(\x01\x12\x1d\n\x15total_round_trip_time\x18\x05 \x02(\x01\x12$\n\x1cround_trip_time_measurements\x18\x06 \x02(\x04\":\n\x10MediaSourceStats\x12\x18\n\x10track_identifier\x18\x01 \x02(\t\x12\x0c\n\x04kind\x18\x02 \x02(\t\"\xa2\x02\n\x10\x41udioSourceStats\x12\x13\n\x0b\x61udio_level\x18\x01 \x02(\x01\x12\x1a\n\x12total_audio_energy\x18\x02 \x02(\x01\x12\x1e\n\x16total_samples_duration\x18\x03 \x02(\x01\x12\x18\n\x10\x65\x63ho_return_loss\x18\x04 \x02(\x01\x12$\n\x1c\x65\x63ho_return_loss_enhancement\x18\x05 \x02(\x01\x12 \n\x18\x64ropped_samples_duration\x18\x06 \x02(\x01\x12\x1e\n\x16\x64ropped_samples_events\x18\x07 \x02(\r\x12\x1b\n\x13total_capture_delay\x18\x08 \x02(\x01\x12\x1e\n\x16total_samples_captured\x18\t \x02(\x04\"\\\n\x10VideoSourceStats\x12\r\n\x05width\x18\x01 \x02(\r\x12\x0e\n\x06height\x18\x02 \x02(\r\x12\x0e\n\x06\x66rames\x18\x03 \x02(\r\x12\x19\n\x11\x66rames_per_second\x18\x04 \x02(\x01\"\xc5\x01\n\x11\x41udioPlayoutStats\x12\x0c\n\x04kind\x18\x01 \x02(\t\x12$\n\x1csynthesized_samples_duration\x18\x02 \x02(\x01\x12\"\n\x1asynthesized_samples_events\x18\x03 \x02(\r\x12\x1e\n\x16total_samples_duration\x18\x04 \x02(\x01\x12\x1b\n\x13total_playout_delay\x18\x05 \x02(\x01\x12\x1b\n\x13total_samples_count\x18\x06 \x02(\x04\"Q\n\x13PeerConnectionStats\x12\x1c\n\x14\x64\x61ta_channels_opened\x18\x01 \x02(\r\x12\x1c\n\x14\x64\x61ta_channels_closed\x18\x02 \x02(\r\"\xe2\x01\n\x10\x44\x61taChannelStats\x12\r\n\x05label\x18\x01 \x02(\t\x12\x10\n\x08protocol\x18\x02 \x02(\t\x12\x1f\n\x17\x64\x61ta_channel_identifier\x18\x03 \x02(\x05\x12.\n\x05state\x18\x04 \x01(\x0e\x32\x1f.livekit.proto.DataChannelState\x12\x15\n\rmessages_sent\x18\x05 \x02(\r\x12\x12\n\nbytes_sent\x18\x06 \x02(\x04\x12\x19\n\x11messages_received\x18\x07 \x02(\r\x12\x16\n\x0e\x62ytes_received\x18\x08 \x02(\x04\"\x9c\x04\n\x0eTransportStats\x12\x14\n\x0cpackets_sent\x18\x01 \x02(\x04\x12\x18\n\x10packets_received\x18\x02 \x02(\x04\x12\x12\n\nbytes_sent\x18\x03 \x02(\x04\x12\x16\n\x0e\x62ytes_received\x18\x04 \x02(\x04\x12(\n\x08ice_role\x18\x05 \x02(\x0e\x32\x16.livekit.proto.IceRole\x12#\n\x1bice_local_username_fragment\x18\x06 \x02(\t\x12\x35\n\ndtls_state\x18\x07 \x01(\x0e\x32!.livekit.proto.DtlsTransportState\x12\x33\n\tice_state\x18\x08 \x01(\x0e\x32 .livekit.proto.IceTransportState\x12\"\n\x1aselected_candidate_pair_id\x18\t \x02(\t\x12\x1c\n\x14local_certificate_id\x18\n \x02(\t\x12\x1d\n\x15remote_certificate_id\x18\x0b \x02(\t\x12\x13\n\x0btls_version\x18\x0c \x02(\t\x12\x13\n\x0b\x64tls_cipher\x18\r \x02(\t\x12*\n\tdtls_role\x18\x0e \x02(\x0e\x32\x17.livekit.proto.DtlsRole\x12\x13\n\x0bsrtp_cipher\x18\x0f \x02(\t\x12\'\n\x1fselected_candidate_pair_changes\x18\x10 \x02(\r\"\xa4\x05\n\x12\x43\x61ndidatePairStats\x12\x14\n\x0ctransport_id\x18\x01 \x02(\t\x12\x1a\n\x12local_candidate_id\x18\x02 \x02(\t\x12\x1b\n\x13remote_candidate_id\x18\x03 \x02(\t\x12\x33\n\x05state\x18\x04 \x01(\x0e\x32$.livekit.proto.IceCandidatePairState\x12\x11\n\tnominated\x18\x05 \x02(\x08\x12\x14\n\x0cpackets_sent\x18\x06 \x02(\x04\x12\x18\n\x10packets_received\x18\x07 \x02(\x04\x12\x12\n\nbytes_sent\x18\x08 \x02(\x04\x12\x16\n\x0e\x62ytes_received\x18\t \x02(\x04\x12\"\n\x1alast_packet_sent_timestamp\x18\n \x02(\x01\x12&\n\x1elast_packet_received_timestamp\x18\x0b \x02(\x01\x12\x1d\n\x15total_round_trip_time\x18\x0c \x02(\x01\x12\x1f\n\x17\x63urrent_round_trip_time\x18\r \x02(\x01\x12\"\n\x1a\x61vailable_outgoing_bitrate\x18\x0e \x02(\x01\x12\"\n\x1a\x61vailable_incoming_bitrate\x18\x0f \x02(\x01\x12\x19\n\x11requests_received\x18\x10 \x02(\x04\x12\x15\n\rrequests_sent\x18\x11 \x02(\x04\x12\x1a\n\x12responses_received\x18\x12 \x02(\x04\x12\x16\n\x0eresponses_sent\x18\x13 \x02(\x04\x12\x1d\n\x15\x63onsent_requests_sent\x18\x14 \x02(\x04\x12!\n\x19packets_discarded_on_send\x18\x15 \x02(\r\x12\x1f\n\x17\x62ytes_discarded_on_send\x18\x16 \x02(\x04\"\x89\x03\n\x11IceCandidateStats\x12\x14\n\x0ctransport_id\x18\x01 \x02(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x02(\t\x12\x0c\n\x04port\x18\x03 \x02(\x05\x12\x10\n\x08protocol\x18\x04 \x02(\t\x12\x37\n\x0e\x63\x61ndidate_type\x18\x05 \x01(\x0e\x32\x1f.livekit.proto.IceCandidateType\x12\x10\n\x08priority\x18\x06 \x02(\x05\x12\x0b\n\x03url\x18\x07 \x02(\t\x12\x41\n\x0erelay_protocol\x18\x08 \x01(\x0e\x32).livekit.proto.IceServerTransportProtocol\x12\x12\n\nfoundation\x18\t \x02(\t\x12\x17\n\x0frelated_address\x18\n \x02(\t\x12\x14\n\x0crelated_port\x18\x0b \x02(\x05\x12\x19\n\x11username_fragment\x18\x0c \x02(\t\x12\x34\n\x08tcp_type\x18\r \x01(\x0e\x32\".livekit.proto.IceTcpCandidateType\"\x81\x01\n\x10\x43\x65rtificateStats\x12\x13\n\x0b\x66ingerprint\x18\x01 \x02(\t\x12\x1d\n\x15\x66ingerprint_algorithm\x18\x02 \x02(\t\x12\x1a\n\x12\x62\x61se64_certificate\x18\x03 \x02(\t\x12\x1d\n\x15issuer_certificate_id\x18\x04 \x02(\t*Q\n\x10\x44\x61taChannelState\x12\x11\n\rDC_CONNECTING\x10\x00\x12\x0b\n\x07\x44\x43_OPEN\x10\x01\x12\x0e\n\nDC_CLOSING\x10\x02\x12\r\n\tDC_CLOSED\x10\x03*r\n\x17QualityLimitationReason\x12\x13\n\x0fLIMITATION_NONE\x10\x00\x12\x12\n\x0eLIMITATION_CPU\x10\x01\x12\x18\n\x14LIMITATION_BANDWIDTH\x10\x02\x12\x14\n\x10LIMITATION_OTHER\x10\x03*C\n\x07IceRole\x12\x0f\n\x0bICE_UNKNOWN\x10\x00\x12\x13\n\x0fICE_CONTROLLING\x10\x01\x12\x12\n\x0eICE_CONTROLLED\x10\x02*\x9f\x01\n\x12\x44tlsTransportState\x12\x16\n\x12\x44TLS_TRANSPORT_NEW\x10\x00\x12\x1d\n\x19\x44TLS_TRANSPORT_CONNECTING\x10\x01\x12\x1c\n\x18\x44TLS_TRANSPORT_CONNECTED\x10\x02\x12\x19\n\x15\x44TLS_TRANSPORT_CLOSED\x10\x03\x12\x19\n\x15\x44TLS_TRANSPORT_FAILED\x10\x04*\xd4\x01\n\x11IceTransportState\x12\x15\n\x11ICE_TRANSPORT_NEW\x10\x00\x12\x1a\n\x16ICE_TRANSPORT_CHECKING\x10\x01\x12\x1b\n\x17ICE_TRANSPORT_CONNECTED\x10\x02\x12\x1b\n\x17ICE_TRANSPORT_COMPLETED\x10\x03\x12\x1e\n\x1aICE_TRANSPORT_DISCONNECTED\x10\x04\x12\x18\n\x14ICE_TRANSPORT_FAILED\x10\x05\x12\x18\n\x14ICE_TRANSPORT_CLOSED\x10\x06*>\n\x08\x44tlsRole\x12\x0f\n\x0b\x44TLS_CLIENT\x10\x00\x12\x0f\n\x0b\x44TLS_SERVER\x10\x01\x12\x10\n\x0c\x44TLS_UNKNOWN\x10\x02*u\n\x15IceCandidatePairState\x12\x0f\n\x0bPAIR_FROZEN\x10\x00\x12\x10\n\x0cPAIR_WAITING\x10\x01\x12\x14\n\x10PAIR_IN_PROGRESS\x10\x02\x12\x0f\n\x0bPAIR_FAILED\x10\x03\x12\x12\n\x0ePAIR_SUCCEEDED\x10\x04*=\n\x10IceCandidateType\x12\x08\n\x04HOST\x10\x00\x12\t\n\x05SRFLX\x10\x01\x12\t\n\x05PRFLX\x10\x02\x12\t\n\x05RELAY\x10\x03*U\n\x1aIceServerTransportProtocol\x12\x11\n\rTRANSPORT_UDP\x10\x00\x12\x11\n\rTRANSPORT_TCP\x10\x01\x12\x11\n\rTRANSPORT_TLS\x10\x02*T\n\x13IceTcpCandidateType\x12\x14\n\x10\x43\x41NDIDATE_ACTIVE\x10\x00\x12\x15\n\x11\x43\x41NDIDATE_PASSIVE\x10\x01\x12\x10\n\x0c\x43\x41NDIDATE_SO\x10\x02\x42\x10\xaa\x02\rLiveKit.Proto') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bstats.proto\x12\rlivekit.proto\"\xeb\x18\n\x08RtcStats\x12.\n\x05\x63odec\x18\x03 \x01(\x0b\x32\x1d.livekit.proto.RtcStats.CodecH\x00\x12\x39\n\x0binbound_rtp\x18\x04 \x01(\x0b\x32\".livekit.proto.RtcStats.InboundRtpH\x00\x12;\n\x0coutbound_rtp\x18\x05 \x01(\x0b\x32#.livekit.proto.RtcStats.OutboundRtpH\x00\x12\x46\n\x12remote_inbound_rtp\x18\x06 \x01(\x0b\x32(.livekit.proto.RtcStats.RemoteInboundRtpH\x00\x12H\n\x13remote_outbound_rtp\x18\x07 \x01(\x0b\x32).livekit.proto.RtcStats.RemoteOutboundRtpH\x00\x12;\n\x0cmedia_source\x18\x08 \x01(\x0b\x32#.livekit.proto.RtcStats.MediaSourceH\x00\x12=\n\rmedia_playout\x18\t \x01(\x0b\x32$.livekit.proto.RtcStats.MediaPlayoutH\x00\x12\x41\n\x0fpeer_connection\x18\n \x01(\x0b\x32&.livekit.proto.RtcStats.PeerConnectionH\x00\x12;\n\x0c\x64\x61ta_channel\x18\x0b \x01(\x0b\x32#.livekit.proto.RtcStats.DataChannelH\x00\x12\x36\n\ttransport\x18\x0c \x01(\x0b\x32!.livekit.proto.RtcStats.TransportH\x00\x12?\n\x0e\x63\x61ndidate_pair\x18\r \x01(\x0b\x32%.livekit.proto.RtcStats.CandidatePairH\x00\x12\x41\n\x0flocal_candidate\x18\x0e \x01(\x0b\x32&.livekit.proto.RtcStats.LocalCandidateH\x00\x12\x43\n\x10remote_candidate\x18\x0f \x01(\x0b\x32\'.livekit.proto.RtcStats.RemoteCandidateH\x00\x12:\n\x0b\x63\x65rtificate\x18\x10 \x01(\x0b\x32#.livekit.proto.RtcStats.CertificateH\x00\x12\x30\n\x06stream\x18\x11 \x01(\x0b\x32\x1e.livekit.proto.RtcStats.StreamH\x00\x12.\n\x05track\x18\x12 \x01(\x0b\x32\x1d.livekit.proto.RtcStats.TrackH\x00\x1a[\n\x05\x43odec\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12(\n\x05\x63odec\x18\x02 \x02(\x0b\x32\x19.livekit.proto.CodecStats\x1a\xd5\x01\n\nInboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12\x37\n\x08received\x18\x03 \x02(\x0b\x32%.livekit.proto.ReceivedRtpStreamStats\x12\x35\n\x07inbound\x18\x04 \x02(\x0b\x32$.livekit.proto.InboundRtpStreamStats\x1a\xd0\x01\n\x0bOutboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12/\n\x04sent\x18\x03 \x02(\x0b\x32!.livekit.proto.SentRtpStreamStats\x12\x37\n\x08outbound\x18\x04 \x02(\x0b\x32%.livekit.proto.OutboundRtpStreamStats\x1a\xe8\x01\n\x10RemoteInboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12\x37\n\x08received\x18\x03 \x02(\x0b\x32%.livekit.proto.ReceivedRtpStreamStats\x12\x42\n\x0eremote_inbound\x18\x04 \x02(\x0b\x32*.livekit.proto.RemoteInboundRtpStreamStats\x1a\xe3\x01\n\x11RemoteOutboundRtp\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12-\n\x06stream\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.RtpStreamStats\x12/\n\x04sent\x18\x03 \x02(\x0b\x32!.livekit.proto.SentRtpStreamStats\x12\x44\n\x0fremote_outbound\x18\x04 \x02(\x0b\x32+.livekit.proto.RemoteOutboundRtpStreamStats\x1a\xc8\x01\n\x0bMediaSource\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12/\n\x06source\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.MediaSourceStats\x12.\n\x05\x61udio\x18\x03 \x02(\x0b\x32\x1f.livekit.proto.AudioSourceStats\x12.\n\x05video\x18\x04 \x02(\x0b\x32\x1f.livekit.proto.VideoSourceStats\x1aq\n\x0cMediaPlayout\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x37\n\raudio_playout\x18\x02 \x02(\x0b\x32 .livekit.proto.AudioPlayoutStats\x1aj\n\x0ePeerConnection\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12.\n\x02pc\x18\x02 \x02(\x0b\x32\".livekit.proto.PeerConnectionStats\x1a\x64\n\x0b\x44\x61taChannel\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12+\n\x02\x64\x63\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.DataChannelStats\x1ag\n\tTransport\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x30\n\ttransport\x18\x02 \x02(\x0b\x32\x1d.livekit.proto.TransportStats\x1at\n\rCandidatePair\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x39\n\x0e\x63\x61ndidate_pair\x18\x02 \x02(\x0b\x32!.livekit.proto.CandidatePairStats\x1ao\n\x0eLocalCandidate\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x33\n\tcandidate\x18\x02 \x02(\x0b\x32 .livekit.proto.IceCandidateStats\x1ap\n\x0fRemoteCandidate\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x33\n\tcandidate\x18\x02 \x02(\x0b\x32 .livekit.proto.IceCandidateStats\x1am\n\x0b\x43\x65rtificate\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12\x34\n\x0b\x63\x65rtificate\x18\x02 \x02(\x0b\x32\x1f.livekit.proto.CertificateStats\x1a^\n\x06Stream\x12(\n\x03rtc\x18\x01 \x02(\x0b\x32\x1b.livekit.proto.RtcStatsData\x12*\n\x06stream\x18\x02 \x02(\x0b\x32\x1a.livekit.proto.StreamStats\x1a\x07\n\x05TrackB\x07\n\x05stats\"-\n\x0cRtcStatsData\x12\n\n\x02id\x18\x01 \x02(\t\x12\x11\n\ttimestamp\x18\x02 \x02(\x03\"\x88\x01\n\nCodecStats\x12\x14\n\x0cpayload_type\x18\x01 \x02(\r\x12\x14\n\x0ctransport_id\x18\x02 \x02(\t\x12\x11\n\tmime_type\x18\x03 \x02(\t\x12\x12\n\nclock_rate\x18\x04 \x02(\r\x12\x10\n\x08\x63hannels\x18\x05 \x02(\r\x12\x15\n\rsdp_fmtp_line\x18\x06 \x02(\t\"T\n\x0eRtpStreamStats\x12\x0c\n\x04ssrc\x18\x01 \x02(\r\x12\x0c\n\x04kind\x18\x02 \x02(\t\x12\x14\n\x0ctransport_id\x18\x03 \x02(\t\x12\x10\n\x08\x63odec_id\x18\x04 \x02(\t\"X\n\x16ReceivedRtpStreamStats\x12\x18\n\x10packets_received\x18\x01 \x02(\x04\x12\x14\n\x0cpackets_lost\x18\x02 \x02(\x03\x12\x0e\n\x06jitter\x18\x03 \x02(\x01\"\x82\x0c\n\x15InboundRtpStreamStats\x12\x18\n\x10track_identifier\x18\x01 \x02(\t\x12\x0b\n\x03mid\x18\x02 \x02(\t\x12\x11\n\tremote_id\x18\x03 \x02(\t\x12\x16\n\x0e\x66rames_decoded\x18\x04 \x02(\r\x12\x1a\n\x12key_frames_decoded\x18\x05 \x02(\r\x12\x17\n\x0f\x66rames_rendered\x18\x06 \x02(\r\x12\x16\n\x0e\x66rames_dropped\x18\x07 \x02(\r\x12\x13\n\x0b\x66rame_width\x18\x08 \x02(\r\x12\x14\n\x0c\x66rame_height\x18\t \x02(\r\x12\x19\n\x11\x66rames_per_second\x18\n \x02(\x01\x12\x0e\n\x06qp_sum\x18\x0b \x02(\x04\x12\x19\n\x11total_decode_time\x18\x0c \x02(\x01\x12\x1f\n\x17total_inter_frame_delay\x18\r \x02(\x01\x12\'\n\x1ftotal_squared_inter_frame_delay\x18\x0e \x02(\x01\x12\x13\n\x0bpause_count\x18\x0f \x02(\r\x12\x1c\n\x14total_pause_duration\x18\x10 \x02(\x01\x12\x14\n\x0c\x66reeze_count\x18\x11 \x02(\r\x12\x1d\n\x15total_freeze_duration\x18\x12 \x02(\x01\x12&\n\x1elast_packet_received_timestamp\x18\x13 \x02(\x01\x12\x1d\n\x15header_bytes_received\x18\x14 \x02(\x04\x12\x19\n\x11packets_discarded\x18\x15 \x02(\x04\x12\x1a\n\x12\x66\x65\x63_bytes_received\x18\x16 \x02(\x04\x12\x1c\n\x14\x66\x65\x63_packets_received\x18\x17 \x02(\x04\x12\x1d\n\x15\x66\x65\x63_packets_discarded\x18\x18 \x02(\x04\x12\x16\n\x0e\x62ytes_received\x18\x19 \x02(\x04\x12\x12\n\nnack_count\x18\x1a \x02(\r\x12\x11\n\tfir_count\x18\x1b \x02(\r\x12\x11\n\tpli_count\x18\x1c \x02(\r\x12\x1e\n\x16total_processing_delay\x18\x1d \x02(\x01\x12#\n\x1b\x65stimated_playout_timestamp\x18\x1e \x02(\x01\x12\x1b\n\x13jitter_buffer_delay\x18\x1f \x02(\x01\x12\"\n\x1ajitter_buffer_target_delay\x18 \x02(\x01\x12#\n\x1bjitter_buffer_emitted_count\x18! \x02(\x04\x12#\n\x1bjitter_buffer_minimum_delay\x18\" \x02(\x01\x12\x1e\n\x16total_samples_received\x18# \x02(\x04\x12\x19\n\x11\x63oncealed_samples\x18$ \x02(\x04\x12 \n\x18silent_concealed_samples\x18% \x02(\x04\x12\x1a\n\x12\x63oncealment_events\x18& \x02(\x04\x12)\n!inserted_samples_for_deceleration\x18\' \x02(\x04\x12(\n removed_samples_for_acceleration\x18( \x02(\x04\x12\x13\n\x0b\x61udio_level\x18) \x02(\x01\x12\x1a\n\x12total_audio_energy\x18* \x02(\x01\x12\x1e\n\x16total_samples_duration\x18+ \x02(\x01\x12\x17\n\x0f\x66rames_received\x18, \x02(\x04\x12\x1e\n\x16\x64\x65\x63oder_implementation\x18- \x02(\t\x12\x12\n\nplayout_id\x18. \x02(\t\x12\x1f\n\x17power_efficient_decoder\x18/ \x02(\x08\x12.\n&frames_assembled_from_multiple_packets\x18\x30 \x02(\x04\x12\x1b\n\x13total_assembly_time\x18\x31 \x02(\x01\x12&\n\x1eretransmitted_packets_received\x18\x32 \x02(\x04\x12$\n\x1cretransmitted_bytes_received\x18\x33 \x02(\x04\x12\x10\n\x08rtx_ssrc\x18\x34 \x02(\r\x12\x10\n\x08\x66\x65\x63_ssrc\x18\x35 \x02(\r\">\n\x12SentRtpStreamStats\x12\x14\n\x0cpackets_sent\x18\x01 \x02(\x04\x12\x12\n\nbytes_sent\x18\x02 \x02(\x04\"\xd1\x07\n\x16OutboundRtpStreamStats\x12\x0b\n\x03mid\x18\x01 \x02(\t\x12\x17\n\x0fmedia_source_id\x18\x02 \x02(\t\x12\x11\n\tremote_id\x18\x03 \x02(\t\x12\x0b\n\x03rid\x18\x04 \x02(\t\x12\x19\n\x11header_bytes_sent\x18\x05 \x02(\x04\x12\"\n\x1aretransmitted_packets_sent\x18\x06 \x02(\x04\x12 \n\x18retransmitted_bytes_sent\x18\x07 \x02(\x04\x12\x10\n\x08rtx_ssrc\x18\x08 \x02(\r\x12\x16\n\x0etarget_bitrate\x18\t \x02(\x01\x12\"\n\x1atotal_encoded_bytes_target\x18\n \x02(\x04\x12\x13\n\x0b\x66rame_width\x18\x0b \x02(\r\x12\x14\n\x0c\x66rame_height\x18\x0c \x02(\r\x12\x19\n\x11\x66rames_per_second\x18\r \x02(\x01\x12\x13\n\x0b\x66rames_sent\x18\x0e \x02(\r\x12\x18\n\x10huge_frames_sent\x18\x0f \x02(\r\x12\x16\n\x0e\x66rames_encoded\x18\x10 \x02(\r\x12\x1a\n\x12key_frames_encoded\x18\x11 \x02(\r\x12\x0e\n\x06qp_sum\x18\x12 \x02(\x04\x12\x19\n\x11total_encode_time\x18\x13 \x02(\x01\x12\x1f\n\x17total_packet_send_delay\x18\x14 \x02(\x01\x12I\n\x19quality_limitation_reason\x18\x15 \x02(\x0e\x32&.livekit.proto.QualityLimitationReason\x12k\n\x1cquality_limitation_durations\x18\x16 \x03(\x0b\x32\x45.livekit.proto.OutboundRtpStreamStats.QualityLimitationDurationsEntry\x12-\n%quality_limitation_resolution_changes\x18\x17 \x02(\r\x12\x12\n\nnack_count\x18\x18 \x02(\r\x12\x11\n\tfir_count\x18\x19 \x02(\r\x12\x11\n\tpli_count\x18\x1a \x02(\r\x12\x1e\n\x16\x65ncoder_implementation\x18\x1b \x02(\t\x12\x1f\n\x17power_efficient_encoder\x18\x1c \x02(\x08\x12\x0e\n\x06\x61\x63tive\x18\x1d \x02(\x08\x12\x18\n\x10scalability_mode\x18\x1e \x02(\t\x1a\x41\n\x1fQualityLimitationDurationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\"\xa4\x01\n\x1bRemoteInboundRtpStreamStats\x12\x10\n\x08local_id\x18\x01 \x02(\t\x12\x17\n\x0fround_trip_time\x18\x02 \x02(\x01\x12\x1d\n\x15total_round_trip_time\x18\x03 \x02(\x01\x12\x15\n\rfraction_lost\x18\x04 \x02(\x01\x12$\n\x1cround_trip_time_measurements\x18\x05 \x02(\x04\"\xbe\x01\n\x1cRemoteOutboundRtpStreamStats\x12\x10\n\x08local_id\x18\x01 \x02(\t\x12\x18\n\x10remote_timestamp\x18\x02 \x02(\x01\x12\x14\n\x0creports_sent\x18\x03 \x02(\x04\x12\x17\n\x0fround_trip_time\x18\x04 \x02(\x01\x12\x1d\n\x15total_round_trip_time\x18\x05 \x02(\x01\x12$\n\x1cround_trip_time_measurements\x18\x06 \x02(\x04\":\n\x10MediaSourceStats\x12\x18\n\x10track_identifier\x18\x01 \x02(\t\x12\x0c\n\x04kind\x18\x02 \x02(\t\"\xa2\x02\n\x10\x41udioSourceStats\x12\x13\n\x0b\x61udio_level\x18\x01 \x02(\x01\x12\x1a\n\x12total_audio_energy\x18\x02 \x02(\x01\x12\x1e\n\x16total_samples_duration\x18\x03 \x02(\x01\x12\x18\n\x10\x65\x63ho_return_loss\x18\x04 \x02(\x01\x12$\n\x1c\x65\x63ho_return_loss_enhancement\x18\x05 \x02(\x01\x12 \n\x18\x64ropped_samples_duration\x18\x06 \x02(\x01\x12\x1e\n\x16\x64ropped_samples_events\x18\x07 \x02(\r\x12\x1b\n\x13total_capture_delay\x18\x08 \x02(\x01\x12\x1e\n\x16total_samples_captured\x18\t \x02(\x04\"\\\n\x10VideoSourceStats\x12\r\n\x05width\x18\x01 \x02(\r\x12\x0e\n\x06height\x18\x02 \x02(\r\x12\x0e\n\x06\x66rames\x18\x03 \x02(\r\x12\x19\n\x11\x66rames_per_second\x18\x04 \x02(\x01\"\xc5\x01\n\x11\x41udioPlayoutStats\x12\x0c\n\x04kind\x18\x01 \x02(\t\x12$\n\x1csynthesized_samples_duration\x18\x02 \x02(\x01\x12\"\n\x1asynthesized_samples_events\x18\x03 \x02(\r\x12\x1e\n\x16total_samples_duration\x18\x04 \x02(\x01\x12\x1b\n\x13total_playout_delay\x18\x05 \x02(\x01\x12\x1b\n\x13total_samples_count\x18\x06 \x02(\x04\"Q\n\x13PeerConnectionStats\x12\x1c\n\x14\x64\x61ta_channels_opened\x18\x01 \x02(\r\x12\x1c\n\x14\x64\x61ta_channels_closed\x18\x02 \x02(\r\"\xe2\x01\n\x10\x44\x61taChannelStats\x12\r\n\x05label\x18\x01 \x02(\t\x12\x10\n\x08protocol\x18\x02 \x02(\t\x12\x1f\n\x17\x64\x61ta_channel_identifier\x18\x03 \x02(\x05\x12.\n\x05state\x18\x04 \x01(\x0e\x32\x1f.livekit.proto.DataChannelState\x12\x15\n\rmessages_sent\x18\x05 \x02(\r\x12\x12\n\nbytes_sent\x18\x06 \x02(\x04\x12\x19\n\x11messages_received\x18\x07 \x02(\r\x12\x16\n\x0e\x62ytes_received\x18\x08 \x02(\x04\"\x9c\x04\n\x0eTransportStats\x12\x14\n\x0cpackets_sent\x18\x01 \x02(\x04\x12\x18\n\x10packets_received\x18\x02 \x02(\x04\x12\x12\n\nbytes_sent\x18\x03 \x02(\x04\x12\x16\n\x0e\x62ytes_received\x18\x04 \x02(\x04\x12(\n\x08ice_role\x18\x05 \x02(\x0e\x32\x16.livekit.proto.IceRole\x12#\n\x1bice_local_username_fragment\x18\x06 \x02(\t\x12\x35\n\ndtls_state\x18\x07 \x01(\x0e\x32!.livekit.proto.DtlsTransportState\x12\x33\n\tice_state\x18\x08 \x01(\x0e\x32 .livekit.proto.IceTransportState\x12\"\n\x1aselected_candidate_pair_id\x18\t \x02(\t\x12\x1c\n\x14local_certificate_id\x18\n \x02(\t\x12\x1d\n\x15remote_certificate_id\x18\x0b \x02(\t\x12\x13\n\x0btls_version\x18\x0c \x02(\t\x12\x13\n\x0b\x64tls_cipher\x18\r \x02(\t\x12*\n\tdtls_role\x18\x0e \x02(\x0e\x32\x17.livekit.proto.DtlsRole\x12\x13\n\x0bsrtp_cipher\x18\x0f \x02(\t\x12\'\n\x1fselected_candidate_pair_changes\x18\x10 \x02(\r\"\xa4\x05\n\x12\x43\x61ndidatePairStats\x12\x14\n\x0ctransport_id\x18\x01 \x02(\t\x12\x1a\n\x12local_candidate_id\x18\x02 \x02(\t\x12\x1b\n\x13remote_candidate_id\x18\x03 \x02(\t\x12\x33\n\x05state\x18\x04 \x01(\x0e\x32$.livekit.proto.IceCandidatePairState\x12\x11\n\tnominated\x18\x05 \x02(\x08\x12\x14\n\x0cpackets_sent\x18\x06 \x02(\x04\x12\x18\n\x10packets_received\x18\x07 \x02(\x04\x12\x12\n\nbytes_sent\x18\x08 \x02(\x04\x12\x16\n\x0e\x62ytes_received\x18\t \x02(\x04\x12\"\n\x1alast_packet_sent_timestamp\x18\n \x02(\x01\x12&\n\x1elast_packet_received_timestamp\x18\x0b \x02(\x01\x12\x1d\n\x15total_round_trip_time\x18\x0c \x02(\x01\x12\x1f\n\x17\x63urrent_round_trip_time\x18\r \x02(\x01\x12\"\n\x1a\x61vailable_outgoing_bitrate\x18\x0e \x02(\x01\x12\"\n\x1a\x61vailable_incoming_bitrate\x18\x0f \x02(\x01\x12\x19\n\x11requests_received\x18\x10 \x02(\x04\x12\x15\n\rrequests_sent\x18\x11 \x02(\x04\x12\x1a\n\x12responses_received\x18\x12 \x02(\x04\x12\x16\n\x0eresponses_sent\x18\x13 \x02(\x04\x12\x1d\n\x15\x63onsent_requests_sent\x18\x14 \x02(\x04\x12!\n\x19packets_discarded_on_send\x18\x15 \x02(\r\x12\x1f\n\x17\x62ytes_discarded_on_send\x18\x16 \x02(\x04\"\x89\x03\n\x11IceCandidateStats\x12\x14\n\x0ctransport_id\x18\x01 \x02(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x02(\t\x12\x0c\n\x04port\x18\x03 \x02(\x05\x12\x10\n\x08protocol\x18\x04 \x02(\t\x12\x37\n\x0e\x63\x61ndidate_type\x18\x05 \x01(\x0e\x32\x1f.livekit.proto.IceCandidateType\x12\x10\n\x08priority\x18\x06 \x02(\x05\x12\x0b\n\x03url\x18\x07 \x02(\t\x12\x41\n\x0erelay_protocol\x18\x08 \x01(\x0e\x32).livekit.proto.IceServerTransportProtocol\x12\x12\n\nfoundation\x18\t \x02(\t\x12\x17\n\x0frelated_address\x18\n \x02(\t\x12\x14\n\x0crelated_port\x18\x0b \x02(\x05\x12\x19\n\x11username_fragment\x18\x0c \x02(\t\x12\x34\n\x08tcp_type\x18\r \x01(\x0e\x32\".livekit.proto.IceTcpCandidateType\"\x81\x01\n\x10\x43\x65rtificateStats\x12\x13\n\x0b\x66ingerprint\x18\x01 \x02(\t\x12\x1d\n\x15\x66ingerprint_algorithm\x18\x02 \x02(\t\x12\x1a\n\x12\x62\x61se64_certificate\x18\x03 \x02(\t\x12\x1d\n\x15issuer_certificate_id\x18\x04 \x02(\t\"4\n\x0bStreamStats\x12\n\n\x02id\x18\x01 \x02(\t\x12\x19\n\x11stream_identifier\x18\x02 \x02(\t*Q\n\x10\x44\x61taChannelState\x12\x11\n\rDC_CONNECTING\x10\x00\x12\x0b\n\x07\x44\x43_OPEN\x10\x01\x12\x0e\n\nDC_CLOSING\x10\x02\x12\r\n\tDC_CLOSED\x10\x03*r\n\x17QualityLimitationReason\x12\x13\n\x0fLIMITATION_NONE\x10\x00\x12\x12\n\x0eLIMITATION_CPU\x10\x01\x12\x18\n\x14LIMITATION_BANDWIDTH\x10\x02\x12\x14\n\x10LIMITATION_OTHER\x10\x03*C\n\x07IceRole\x12\x0f\n\x0bICE_UNKNOWN\x10\x00\x12\x13\n\x0fICE_CONTROLLING\x10\x01\x12\x12\n\x0eICE_CONTROLLED\x10\x02*\x9f\x01\n\x12\x44tlsTransportState\x12\x16\n\x12\x44TLS_TRANSPORT_NEW\x10\x00\x12\x1d\n\x19\x44TLS_TRANSPORT_CONNECTING\x10\x01\x12\x1c\n\x18\x44TLS_TRANSPORT_CONNECTED\x10\x02\x12\x19\n\x15\x44TLS_TRANSPORT_CLOSED\x10\x03\x12\x19\n\x15\x44TLS_TRANSPORT_FAILED\x10\x04*\xd4\x01\n\x11IceTransportState\x12\x15\n\x11ICE_TRANSPORT_NEW\x10\x00\x12\x1a\n\x16ICE_TRANSPORT_CHECKING\x10\x01\x12\x1b\n\x17ICE_TRANSPORT_CONNECTED\x10\x02\x12\x1b\n\x17ICE_TRANSPORT_COMPLETED\x10\x03\x12\x1e\n\x1aICE_TRANSPORT_DISCONNECTED\x10\x04\x12\x18\n\x14ICE_TRANSPORT_FAILED\x10\x05\x12\x18\n\x14ICE_TRANSPORT_CLOSED\x10\x06*>\n\x08\x44tlsRole\x12\x0f\n\x0b\x44TLS_CLIENT\x10\x00\x12\x0f\n\x0b\x44TLS_SERVER\x10\x01\x12\x10\n\x0c\x44TLS_UNKNOWN\x10\x02*u\n\x15IceCandidatePairState\x12\x0f\n\x0bPAIR_FROZEN\x10\x00\x12\x10\n\x0cPAIR_WAITING\x10\x01\x12\x14\n\x10PAIR_IN_PROGRESS\x10\x02\x12\x0f\n\x0bPAIR_FAILED\x10\x03\x12\x12\n\x0ePAIR_SUCCEEDED\x10\x04*=\n\x10IceCandidateType\x12\x08\n\x04HOST\x10\x00\x12\t\n\x05SRFLX\x10\x01\x12\t\n\x05PRFLX\x10\x02\x12\t\n\x05RELAY\x10\x03*U\n\x1aIceServerTransportProtocol\x12\x11\n\rTRANSPORT_UDP\x10\x00\x12\x11\n\rTRANSPORT_TCP\x10\x01\x12\x11\n\rTRANSPORT_TLS\x10\x02*T\n\x13IceTcpCandidateType\x12\x14\n\x10\x43\x41NDIDATE_ACTIVE\x10\x00\x12\x15\n\x11\x43\x41NDIDATE_PASSIVE\x10\x01\x12\x10\n\x0c\x43\x41NDIDATE_SO\x10\x02\x42\x10\xaa\x02\rLiveKit.Proto') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'stats_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' - _globals['_OUTBOUNDRTPSTREAMSTATS_QUALITYLIMITATIONDURATIONSENTRY']._options = None + _globals['_OUTBOUNDRTPSTREAMSTATS_QUALITYLIMITATIONDURATIONSENTRY']._loaded_options = None _globals['_OUTBOUNDRTPSTREAMSTATS_QUALITYLIMITATIONDURATIONSENTRY']._serialized_options = b'8\001' - _globals['_DATACHANNELSTATE']._serialized_start=9082 - _globals['_DATACHANNELSTATE']._serialized_end=9163 - _globals['_QUALITYLIMITATIONREASON']._serialized_start=9165 - _globals['_QUALITYLIMITATIONREASON']._serialized_end=9279 - _globals['_ICEROLE']._serialized_start=9281 - _globals['_ICEROLE']._serialized_end=9348 - _globals['_DTLSTRANSPORTSTATE']._serialized_start=9351 - _globals['_DTLSTRANSPORTSTATE']._serialized_end=9510 - _globals['_ICETRANSPORTSTATE']._serialized_start=9513 - _globals['_ICETRANSPORTSTATE']._serialized_end=9725 - _globals['_DTLSROLE']._serialized_start=9727 - _globals['_DTLSROLE']._serialized_end=9789 - _globals['_ICECANDIDATEPAIRSTATE']._serialized_start=9791 - _globals['_ICECANDIDATEPAIRSTATE']._serialized_end=9908 - _globals['_ICECANDIDATETYPE']._serialized_start=9910 - _globals['_ICECANDIDATETYPE']._serialized_end=9971 - _globals['_ICESERVERTRANSPORTPROTOCOL']._serialized_start=9973 - _globals['_ICESERVERTRANSPORTPROTOCOL']._serialized_end=10058 - _globals['_ICETCPCANDIDATETYPE']._serialized_start=10060 - _globals['_ICETCPCANDIDATETYPE']._serialized_end=10144 + _globals['_DATACHANNELSTATE']._serialized_start=9282 + _globals['_DATACHANNELSTATE']._serialized_end=9363 + _globals['_QUALITYLIMITATIONREASON']._serialized_start=9365 + _globals['_QUALITYLIMITATIONREASON']._serialized_end=9479 + _globals['_ICEROLE']._serialized_start=9481 + _globals['_ICEROLE']._serialized_end=9548 + _globals['_DTLSTRANSPORTSTATE']._serialized_start=9551 + _globals['_DTLSTRANSPORTSTATE']._serialized_end=9710 + _globals['_ICETRANSPORTSTATE']._serialized_start=9713 + _globals['_ICETRANSPORTSTATE']._serialized_end=9925 + _globals['_DTLSROLE']._serialized_start=9927 + _globals['_DTLSROLE']._serialized_end=9989 + _globals['_ICECANDIDATEPAIRSTATE']._serialized_start=9991 + _globals['_ICECANDIDATEPAIRSTATE']._serialized_end=10108 + _globals['_ICECANDIDATETYPE']._serialized_start=10110 + _globals['_ICECANDIDATETYPE']._serialized_end=10171 + _globals['_ICESERVERTRANSPORTPROTOCOL']._serialized_start=10173 + _globals['_ICESERVERTRANSPORTPROTOCOL']._serialized_end=10258 + _globals['_ICETCPCANDIDATETYPE']._serialized_start=10260 + _globals['_ICETCPCANDIDATETYPE']._serialized_end=10344 _globals['_RTCSTATS']._serialized_start=31 - _globals['_RTCSTATS']._serialized_end=3064 - _globals['_RTCSTATS_CODEC']._serialized_start=974 - _globals['_RTCSTATS_CODEC']._serialized_end=1065 - _globals['_RTCSTATS_INBOUNDRTP']._serialized_start=1068 - _globals['_RTCSTATS_INBOUNDRTP']._serialized_end=1281 - _globals['_RTCSTATS_OUTBOUNDRTP']._serialized_start=1284 - _globals['_RTCSTATS_OUTBOUNDRTP']._serialized_end=1492 - _globals['_RTCSTATS_REMOTEINBOUNDRTP']._serialized_start=1495 - _globals['_RTCSTATS_REMOTEINBOUNDRTP']._serialized_end=1727 - _globals['_RTCSTATS_REMOTEOUTBOUNDRTP']._serialized_start=1730 - _globals['_RTCSTATS_REMOTEOUTBOUNDRTP']._serialized_end=1957 - _globals['_RTCSTATS_MEDIASOURCE']._serialized_start=1960 - _globals['_RTCSTATS_MEDIASOURCE']._serialized_end=2160 - _globals['_RTCSTATS_MEDIAPLAYOUT']._serialized_start=2162 - _globals['_RTCSTATS_MEDIAPLAYOUT']._serialized_end=2275 - _globals['_RTCSTATS_PEERCONNECTION']._serialized_start=2277 - _globals['_RTCSTATS_PEERCONNECTION']._serialized_end=2383 - _globals['_RTCSTATS_DATACHANNEL']._serialized_start=2385 - _globals['_RTCSTATS_DATACHANNEL']._serialized_end=2485 - _globals['_RTCSTATS_TRANSPORT']._serialized_start=2487 - _globals['_RTCSTATS_TRANSPORT']._serialized_end=2590 - _globals['_RTCSTATS_CANDIDATEPAIR']._serialized_start=2592 - _globals['_RTCSTATS_CANDIDATEPAIR']._serialized_end=2708 - _globals['_RTCSTATS_LOCALCANDIDATE']._serialized_start=2710 - _globals['_RTCSTATS_LOCALCANDIDATE']._serialized_end=2821 - _globals['_RTCSTATS_REMOTECANDIDATE']._serialized_start=2823 - _globals['_RTCSTATS_REMOTECANDIDATE']._serialized_end=2935 - _globals['_RTCSTATS_CERTIFICATE']._serialized_start=2937 - _globals['_RTCSTATS_CERTIFICATE']._serialized_end=3046 - _globals['_RTCSTATS_TRACK']._serialized_start=3048 - _globals['_RTCSTATS_TRACK']._serialized_end=3055 - _globals['_RTCSTATSDATA']._serialized_start=3066 - _globals['_RTCSTATSDATA']._serialized_end=3111 - _globals['_CODECSTATS']._serialized_start=3114 - _globals['_CODECSTATS']._serialized_end=3250 - _globals['_RTPSTREAMSTATS']._serialized_start=3252 - _globals['_RTPSTREAMSTATS']._serialized_end=3336 - _globals['_RECEIVEDRTPSTREAMSTATS']._serialized_start=3338 - _globals['_RECEIVEDRTPSTREAMSTATS']._serialized_end=3426 - _globals['_INBOUNDRTPSTREAMSTATS']._serialized_start=3429 - _globals['_INBOUNDRTPSTREAMSTATS']._serialized_end=4967 - _globals['_SENTRTPSTREAMSTATS']._serialized_start=4969 - _globals['_SENTRTPSTREAMSTATS']._serialized_end=5031 - _globals['_OUTBOUNDRTPSTREAMSTATS']._serialized_start=5034 - _globals['_OUTBOUNDRTPSTREAMSTATS']._serialized_end=6011 - _globals['_OUTBOUNDRTPSTREAMSTATS_QUALITYLIMITATIONDURATIONSENTRY']._serialized_start=5946 - _globals['_OUTBOUNDRTPSTREAMSTATS_QUALITYLIMITATIONDURATIONSENTRY']._serialized_end=6011 - _globals['_REMOTEINBOUNDRTPSTREAMSTATS']._serialized_start=6014 - _globals['_REMOTEINBOUNDRTPSTREAMSTATS']._serialized_end=6178 - _globals['_REMOTEOUTBOUNDRTPSTREAMSTATS']._serialized_start=6181 - _globals['_REMOTEOUTBOUNDRTPSTREAMSTATS']._serialized_end=6371 - _globals['_MEDIASOURCESTATS']._serialized_start=6373 - _globals['_MEDIASOURCESTATS']._serialized_end=6431 - _globals['_AUDIOSOURCESTATS']._serialized_start=6434 - _globals['_AUDIOSOURCESTATS']._serialized_end=6724 - _globals['_VIDEOSOURCESTATS']._serialized_start=6726 - _globals['_VIDEOSOURCESTATS']._serialized_end=6818 - _globals['_AUDIOPLAYOUTSTATS']._serialized_start=6821 - _globals['_AUDIOPLAYOUTSTATS']._serialized_end=7018 - _globals['_PEERCONNECTIONSTATS']._serialized_start=7020 - _globals['_PEERCONNECTIONSTATS']._serialized_end=7101 - _globals['_DATACHANNELSTATS']._serialized_start=7104 - _globals['_DATACHANNELSTATS']._serialized_end=7330 - _globals['_TRANSPORTSTATS']._serialized_start=7333 - _globals['_TRANSPORTSTATS']._serialized_end=7873 - _globals['_CANDIDATEPAIRSTATS']._serialized_start=7876 - _globals['_CANDIDATEPAIRSTATS']._serialized_end=8552 - _globals['_ICECANDIDATESTATS']._serialized_start=8555 - _globals['_ICECANDIDATESTATS']._serialized_end=8948 - _globals['_CERTIFICATESTATS']._serialized_start=8951 - _globals['_CERTIFICATESTATS']._serialized_end=9080 + _globals['_RTCSTATS']._serialized_end=3210 + _globals['_RTCSTATS_CODEC']._serialized_start=1024 + _globals['_RTCSTATS_CODEC']._serialized_end=1115 + _globals['_RTCSTATS_INBOUNDRTP']._serialized_start=1118 + _globals['_RTCSTATS_INBOUNDRTP']._serialized_end=1331 + _globals['_RTCSTATS_OUTBOUNDRTP']._serialized_start=1334 + _globals['_RTCSTATS_OUTBOUNDRTP']._serialized_end=1542 + _globals['_RTCSTATS_REMOTEINBOUNDRTP']._serialized_start=1545 + _globals['_RTCSTATS_REMOTEINBOUNDRTP']._serialized_end=1777 + _globals['_RTCSTATS_REMOTEOUTBOUNDRTP']._serialized_start=1780 + _globals['_RTCSTATS_REMOTEOUTBOUNDRTP']._serialized_end=2007 + _globals['_RTCSTATS_MEDIASOURCE']._serialized_start=2010 + _globals['_RTCSTATS_MEDIASOURCE']._serialized_end=2210 + _globals['_RTCSTATS_MEDIAPLAYOUT']._serialized_start=2212 + _globals['_RTCSTATS_MEDIAPLAYOUT']._serialized_end=2325 + _globals['_RTCSTATS_PEERCONNECTION']._serialized_start=2327 + _globals['_RTCSTATS_PEERCONNECTION']._serialized_end=2433 + _globals['_RTCSTATS_DATACHANNEL']._serialized_start=2435 + _globals['_RTCSTATS_DATACHANNEL']._serialized_end=2535 + _globals['_RTCSTATS_TRANSPORT']._serialized_start=2537 + _globals['_RTCSTATS_TRANSPORT']._serialized_end=2640 + _globals['_RTCSTATS_CANDIDATEPAIR']._serialized_start=2642 + _globals['_RTCSTATS_CANDIDATEPAIR']._serialized_end=2758 + _globals['_RTCSTATS_LOCALCANDIDATE']._serialized_start=2760 + _globals['_RTCSTATS_LOCALCANDIDATE']._serialized_end=2871 + _globals['_RTCSTATS_REMOTECANDIDATE']._serialized_start=2873 + _globals['_RTCSTATS_REMOTECANDIDATE']._serialized_end=2985 + _globals['_RTCSTATS_CERTIFICATE']._serialized_start=2987 + _globals['_RTCSTATS_CERTIFICATE']._serialized_end=3096 + _globals['_RTCSTATS_STREAM']._serialized_start=3098 + _globals['_RTCSTATS_STREAM']._serialized_end=3192 + _globals['_RTCSTATS_TRACK']._serialized_start=3194 + _globals['_RTCSTATS_TRACK']._serialized_end=3201 + _globals['_RTCSTATSDATA']._serialized_start=3212 + _globals['_RTCSTATSDATA']._serialized_end=3257 + _globals['_CODECSTATS']._serialized_start=3260 + _globals['_CODECSTATS']._serialized_end=3396 + _globals['_RTPSTREAMSTATS']._serialized_start=3398 + _globals['_RTPSTREAMSTATS']._serialized_end=3482 + _globals['_RECEIVEDRTPSTREAMSTATS']._serialized_start=3484 + _globals['_RECEIVEDRTPSTREAMSTATS']._serialized_end=3572 + _globals['_INBOUNDRTPSTREAMSTATS']._serialized_start=3575 + _globals['_INBOUNDRTPSTREAMSTATS']._serialized_end=5113 + _globals['_SENTRTPSTREAMSTATS']._serialized_start=5115 + _globals['_SENTRTPSTREAMSTATS']._serialized_end=5177 + _globals['_OUTBOUNDRTPSTREAMSTATS']._serialized_start=5180 + _globals['_OUTBOUNDRTPSTREAMSTATS']._serialized_end=6157 + _globals['_OUTBOUNDRTPSTREAMSTATS_QUALITYLIMITATIONDURATIONSENTRY']._serialized_start=6092 + _globals['_OUTBOUNDRTPSTREAMSTATS_QUALITYLIMITATIONDURATIONSENTRY']._serialized_end=6157 + _globals['_REMOTEINBOUNDRTPSTREAMSTATS']._serialized_start=6160 + _globals['_REMOTEINBOUNDRTPSTREAMSTATS']._serialized_end=6324 + _globals['_REMOTEOUTBOUNDRTPSTREAMSTATS']._serialized_start=6327 + _globals['_REMOTEOUTBOUNDRTPSTREAMSTATS']._serialized_end=6517 + _globals['_MEDIASOURCESTATS']._serialized_start=6519 + _globals['_MEDIASOURCESTATS']._serialized_end=6577 + _globals['_AUDIOSOURCESTATS']._serialized_start=6580 + _globals['_AUDIOSOURCESTATS']._serialized_end=6870 + _globals['_VIDEOSOURCESTATS']._serialized_start=6872 + _globals['_VIDEOSOURCESTATS']._serialized_end=6964 + _globals['_AUDIOPLAYOUTSTATS']._serialized_start=6967 + _globals['_AUDIOPLAYOUTSTATS']._serialized_end=7164 + _globals['_PEERCONNECTIONSTATS']._serialized_start=7166 + _globals['_PEERCONNECTIONSTATS']._serialized_end=7247 + _globals['_DATACHANNELSTATS']._serialized_start=7250 + _globals['_DATACHANNELSTATS']._serialized_end=7476 + _globals['_TRANSPORTSTATS']._serialized_start=7479 + _globals['_TRANSPORTSTATS']._serialized_end=8019 + _globals['_CANDIDATEPAIRSTATS']._serialized_start=8022 + _globals['_CANDIDATEPAIRSTATS']._serialized_end=8698 + _globals['_ICECANDIDATESTATS']._serialized_start=8701 + _globals['_ICECANDIDATESTATS']._serialized_end=9094 + _globals['_CERTIFICATESTATS']._serialized_start=9097 + _globals['_CERTIFICATESTATS']._serialized_end=9226 + _globals['_STREAMSTATS']._serialized_start=9228 + _globals['_STREAMSTATS']._serialized_end=9280 # @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/stats_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/stats_pb2.pyi index 03553831..09c81a99 100644 --- a/livekit-rtc/livekit/rtc/_proto/stats_pb2.pyi +++ b/livekit-rtc/livekit/rtc/_proto/stats_pb2.pyi @@ -534,6 +534,25 @@ class RtcStats(google.protobuf.message.Message): def HasField(self, field_name: typing.Literal["certificate", b"certificate", "rtc", b"rtc"]) -> builtins.bool: ... def ClearField(self, field_name: typing.Literal["certificate", b"certificate", "rtc", b"rtc"]) -> None: ... + @typing.final + class Stream(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + RTC_FIELD_NUMBER: builtins.int + STREAM_FIELD_NUMBER: builtins.int + @property + def rtc(self) -> global___RtcStatsData: ... + @property + def stream(self) -> global___StreamStats: ... + def __init__( + self, + *, + rtc: global___RtcStatsData | None = ..., + stream: global___StreamStats | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["rtc", b"rtc", "stream", b"stream"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["rtc", b"rtc", "stream", b"stream"]) -> None: ... + @typing.final class Track(google.protobuf.message.Message): """Deprecated""" @@ -558,6 +577,7 @@ class RtcStats(google.protobuf.message.Message): LOCAL_CANDIDATE_FIELD_NUMBER: builtins.int REMOTE_CANDIDATE_FIELD_NUMBER: builtins.int CERTIFICATE_FIELD_NUMBER: builtins.int + STREAM_FIELD_NUMBER: builtins.int TRACK_FIELD_NUMBER: builtins.int @property def codec(self) -> global___RtcStats.Codec: ... @@ -588,6 +608,8 @@ class RtcStats(google.protobuf.message.Message): @property def certificate(self) -> global___RtcStats.Certificate: ... @property + def stream(self) -> global___RtcStats.Stream: ... + @property def track(self) -> global___RtcStats.Track: ... def __init__( self, @@ -606,11 +628,12 @@ class RtcStats(google.protobuf.message.Message): local_candidate: global___RtcStats.LocalCandidate | None = ..., remote_candidate: global___RtcStats.RemoteCandidate | None = ..., certificate: global___RtcStats.Certificate | None = ..., + stream: global___RtcStats.Stream | None = ..., track: global___RtcStats.Track | None = ..., ) -> None: ... - def HasField(self, field_name: typing.Literal["candidate_pair", b"candidate_pair", "certificate", b"certificate", "codec", b"codec", "data_channel", b"data_channel", "inbound_rtp", b"inbound_rtp", "local_candidate", b"local_candidate", "media_playout", b"media_playout", "media_source", b"media_source", "outbound_rtp", b"outbound_rtp", "peer_connection", b"peer_connection", "remote_candidate", b"remote_candidate", "remote_inbound_rtp", b"remote_inbound_rtp", "remote_outbound_rtp", b"remote_outbound_rtp", "stats", b"stats", "track", b"track", "transport", b"transport"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["candidate_pair", b"candidate_pair", "certificate", b"certificate", "codec", b"codec", "data_channel", b"data_channel", "inbound_rtp", b"inbound_rtp", "local_candidate", b"local_candidate", "media_playout", b"media_playout", "media_source", b"media_source", "outbound_rtp", b"outbound_rtp", "peer_connection", b"peer_connection", "remote_candidate", b"remote_candidate", "remote_inbound_rtp", b"remote_inbound_rtp", "remote_outbound_rtp", b"remote_outbound_rtp", "stats", b"stats", "track", b"track", "transport", b"transport"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["stats", b"stats"]) -> typing.Literal["codec", "inbound_rtp", "outbound_rtp", "remote_inbound_rtp", "remote_outbound_rtp", "media_source", "media_playout", "peer_connection", "data_channel", "transport", "candidate_pair", "local_candidate", "remote_candidate", "certificate", "track"] | None: ... + def HasField(self, field_name: typing.Literal["candidate_pair", b"candidate_pair", "certificate", b"certificate", "codec", b"codec", "data_channel", b"data_channel", "inbound_rtp", b"inbound_rtp", "local_candidate", b"local_candidate", "media_playout", b"media_playout", "media_source", b"media_source", "outbound_rtp", b"outbound_rtp", "peer_connection", b"peer_connection", "remote_candidate", b"remote_candidate", "remote_inbound_rtp", b"remote_inbound_rtp", "remote_outbound_rtp", b"remote_outbound_rtp", "stats", b"stats", "stream", b"stream", "track", b"track", "transport", b"transport"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["candidate_pair", b"candidate_pair", "certificate", b"certificate", "codec", b"codec", "data_channel", b"data_channel", "inbound_rtp", b"inbound_rtp", "local_candidate", b"local_candidate", "media_playout", b"media_playout", "media_source", b"media_source", "outbound_rtp", b"outbound_rtp", "peer_connection", b"peer_connection", "remote_candidate", b"remote_candidate", "remote_inbound_rtp", b"remote_inbound_rtp", "remote_outbound_rtp", b"remote_outbound_rtp", "stats", b"stats", "stream", b"stream", "track", b"track", "transport", b"transport"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["stats", b"stats"]) -> typing.Literal["codec", "inbound_rtp", "outbound_rtp", "remote_inbound_rtp", "remote_outbound_rtp", "media_source", "media_playout", "peer_connection", "data_channel", "transport", "candidate_pair", "local_candidate", "remote_candidate", "certificate", "stream", "track"] | None: ... global___RtcStats = RtcStats @@ -1469,3 +1492,23 @@ class CertificateStats(google.protobuf.message.Message): def ClearField(self, field_name: typing.Literal["base64_certificate", b"base64_certificate", "fingerprint", b"fingerprint", "fingerprint_algorithm", b"fingerprint_algorithm", "issuer_certificate_id", b"issuer_certificate_id"]) -> None: ... global___CertificateStats = CertificateStats + +@typing.final +class StreamStats(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + ID_FIELD_NUMBER: builtins.int + STREAM_IDENTIFIER_FIELD_NUMBER: builtins.int + id: builtins.str + stream_identifier: builtins.str + """required int64 timestamp = 3;""" + def __init__( + self, + *, + id: builtins.str | None = ..., + stream_identifier: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["id", b"id", "stream_identifier", b"stream_identifier"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["id", b"id", "stream_identifier", b"stream_identifier"]) -> None: ... + +global___StreamStats = StreamStats diff --git a/livekit-rtc/livekit/rtc/_proto/track_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_pb2.py index 866397e7..fcf32b38 100644 --- a/livekit-rtc/livekit/rtc/_proto/track_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/track_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: track.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -22,8 +22,8 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'track_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_TRACKKIND']._serialized_start=1418 _globals['_TRACKKIND']._serialized_end=1479 diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py new file mode 100644 index 00000000..22a19081 --- /dev/null +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: track_publication.proto +# Protobuf Python Version: 5.26.1 +"""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() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17track_publication.proto\x12\rlivekit.proto\"X\n#EnableRemoteTrackPublicationRequest\x12 \n\x18track_publication_handle\x18\x01 \x02(\x04\x12\x0f\n\x07\x65nabled\x18\x02 \x02(\x08\"&\n$EnableRemoteTrackPublicationResponse\"o\n,UpdateRemoteTrackPublicationDimensionRequest\x12 \n\x18track_publication_handle\x18\x01 \x02(\x04\x12\r\n\x05width\x18\x02 \x02(\r\x12\x0e\n\x06height\x18\x03 \x02(\r\"/\n-UpdateRemoteTrackPublicationDimensionResponseB\x10\xaa\x02\rLiveKit.Proto') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'track_publication_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' + _globals['_ENABLEREMOTETRACKPUBLICATIONREQUEST']._serialized_start=42 + _globals['_ENABLEREMOTETRACKPUBLICATIONREQUEST']._serialized_end=130 + _globals['_ENABLEREMOTETRACKPUBLICATIONRESPONSE']._serialized_start=132 + _globals['_ENABLEREMOTETRACKPUBLICATIONRESPONSE']._serialized_end=170 + _globals['_UPDATEREMOTETRACKPUBLICATIONDIMENSIONREQUEST']._serialized_start=172 + _globals['_UPDATEREMOTETRACKPUBLICATIONDIMENSIONREQUEST']._serialized_end=283 + _globals['_UPDATEREMOTETRACKPUBLICATIONDIMENSIONRESPONSE']._serialized_start=285 + _globals['_UPDATEREMOTETRACKPUBLICATIONDIMENSIONRESPONSE']._serialized_end=332 +# @@protoc_insertion_point(module_scope) diff --git a/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.pyi b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.pyi new file mode 100644 index 00000000..c39bb80d --- /dev/null +++ b/livekit-rtc/livekit/rtc/_proto/track_publication_pb2.pyi @@ -0,0 +1,89 @@ +""" +@generated by mypy-protobuf. Do not edit manually! +isort:skip_file +Copyright 2023 LiveKit, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +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. +""" + +import builtins +import google.protobuf.descriptor +import google.protobuf.message +import typing + +DESCRIPTOR: google.protobuf.descriptor.FileDescriptor + +@typing.final +class EnableRemoteTrackPublicationRequest(google.protobuf.message.Message): + """Enable/Disable a remote track publication""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRACK_PUBLICATION_HANDLE_FIELD_NUMBER: builtins.int + ENABLED_FIELD_NUMBER: builtins.int + track_publication_handle: builtins.int + enabled: builtins.bool + def __init__( + self, + *, + track_publication_handle: builtins.int | None = ..., + enabled: builtins.bool | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["enabled", b"enabled", "track_publication_handle", b"track_publication_handle"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["enabled", b"enabled", "track_publication_handle", b"track_publication_handle"]) -> None: ... + +global___EnableRemoteTrackPublicationRequest = EnableRemoteTrackPublicationRequest + +@typing.final +class EnableRemoteTrackPublicationResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___EnableRemoteTrackPublicationResponse = EnableRemoteTrackPublicationResponse + +@typing.final +class UpdateRemoteTrackPublicationDimensionRequest(google.protobuf.message.Message): + """update a remote track publication dimension""" + + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + TRACK_PUBLICATION_HANDLE_FIELD_NUMBER: builtins.int + WIDTH_FIELD_NUMBER: builtins.int + HEIGHT_FIELD_NUMBER: builtins.int + track_publication_handle: builtins.int + width: builtins.int + height: builtins.int + def __init__( + self, + *, + track_publication_handle: builtins.int | None = ..., + width: builtins.int | None = ..., + height: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["height", b"height", "track_publication_handle", b"track_publication_handle", "width", b"width"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["height", b"height", "track_publication_handle", b"track_publication_handle", "width", b"width"]) -> None: ... + +global___UpdateRemoteTrackPublicationDimensionRequest = UpdateRemoteTrackPublicationDimensionRequest + +@typing.final +class UpdateRemoteTrackPublicationDimensionResponse(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__( + self, + ) -> None: ... + +global___UpdateRemoteTrackPublicationDimensionResponse = UpdateRemoteTrackPublicationDimensionResponse diff --git a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py index 4bdbbf4c..ba410f44 100644 --- a/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py +++ b/livekit-rtc/livekit/rtc/_proto/video_frame_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: video_frame.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -21,8 +21,8 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'video_frame_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'\252\002\rLiveKit.Proto' _globals['_VIDEOCODEC']._serialized_start=2452 _globals['_VIDEOCODEC']._serialized_end=2501 diff --git a/livekit-rtc/livekit/rtc/participant.py b/livekit-rtc/livekit/rtc/participant.py index 351182b8..96976857 100644 --- a/livekit-rtc/livekit/rtc/participant.py +++ b/livekit-rtc/livekit/rtc/participant.py @@ -107,6 +107,33 @@ def kind(self) -> proto_participant.ParticipantKind.ValueType: """Participant's kind (e.g., regular participant, ingress, egress, sip, agent).""" return self._info.kind + @property + def disconnect_reason( + self, + ) -> Optional[proto_participant.DisconnectReason.ValueType]: + """Reason for the participant's disconnection. + + Returns one of DisconnectReasons or None if the participant isn't disconnected. Common reasons are: + - CLIENT_INITIATED - the client initiated the disconnect + - DUPLICATE_IDENTITY - another participant with the same identity has joined the room + - SERVER_SHUTDOWN - the server instance is shutting down + - PARTICIPANT_REMOVED - RoomService.RemoveParticipant was called + - ROOM_DELETED - RoomService.DeleteRoom was called + - STATE_MISMATCH - the client is attempting to resume a session, but server is not aware of it + - JOIN_FAILURE - client was unable to connect fully + + When dialing a participant via SIP, you may see the following reasons: + - USER_UNAVAILABLE - SIP callee did not respond in time + - USER_REJECTED - SIP callee rejected the call (busy) + - SIP_TRUNK_FAILURE - SIP protocol failure or unexpected response + """ + if ( + self._info.disconnect_reason + == proto_participant.DisconnectReason.UNKNOWN_REASON + ): + return None + return self._info.disconnect_reason + class LocalParticipant(Participant): """Represents the local participant in a room.""" @@ -413,7 +440,9 @@ async def run_handler(): response_error = error except Exception as error: logger.exception( - f"Uncaught error returned by RPC handler for {method}. Returning APPLICATION_ERROR instead. Original error: {error}", + f"Uncaught error returned by RPC handler for {method}. " + "Returning APPLICATION_ERROR instead. " + f"Original error: {error}" ) response_error = RpcError._built_in( RpcError.ErrorCode.APPLICATION_ERROR @@ -431,9 +460,8 @@ async def run_handler(): res = FfiClient.instance.request(req) if res.rpc_method_invocation_response.error: - logger.exception( - f"error sending rpc method invocation response: {res.rpc_method_invocation_response.error}" - ) + message = res.rpc_method_invocation_response.error + logger.exception(f"error sending rpc method invocation response: {message}") async def set_metadata(self, metadata: str) -> None: """ diff --git a/livekit-rtc/livekit/rtc/version.py b/livekit-rtc/livekit/rtc/version.py index 30e65e30..11ac8e1a 100644 --- a/livekit-rtc/livekit/rtc/version.py +++ b/livekit-rtc/livekit/rtc/version.py @@ -1 +1 @@ -__version__ = "0.18.3" +__version__ = "0.19.0" diff --git a/livekit-rtc/rust-sdks b/livekit-rtc/rust-sdks index b41861c7..cc889daa 160000 --- a/livekit-rtc/rust-sdks +++ b/livekit-rtc/rust-sdks @@ -1 +1 @@ -Subproject commit b41861c7b71762d5d85b3de07ae67ffcae7c3fa2 +Subproject commit cc889daa26c2ea50258932708a24e095dcc850cc diff --git a/livekit-rtc/setup.py b/livekit-rtc/setup.py index 5643dc20..20bbb1b8 100644 --- a/livekit-rtc/setup.py +++ b/livekit-rtc/setup.py @@ -58,7 +58,7 @@ def finalize_options(self): license="Apache-2.0", packages=setuptools.find_namespace_packages(include=["livekit.*"]), python_requires=">=3.9.0", - install_requires=["protobuf>=3", "types-protobuf>=3"], + install_requires=["protobuf>=5.26.1", "types-protobuf>=3"], package_data={ "livekit.rtc": ["_proto/*.py", "py.typed", "*.pyi", "**/*.pyi"], "livekit.rtc.resources": ["*.so", "*.dylib", "*.dll", "LICENSE.md", "*.h"],